qb45advr.hlp (Topic list)
CALL ABSOLUTE Statement Details
  QuickSCREEN      Details      Example      Contents      Index
──────────────────────────────────────────────────────────────────────────────
CALL ABSOLUTE Statement Details
 
Syntax
  CALL ABSOLUTE([argumentlist,]integervariable)
 
  Argument          Description
  argumentlist      Optional arguments passed to a machine-language
                    procedure.
  integervariable   An integer variable containing a value that is
                    the offset from the beginning of the current
                    code segment, set by DEF SEG, to the starting
                    location of the procedure. The integervariable
                    argument is not passed to the procedure. Your
                    program may need to execute a DEF SEG statement
                    before executing CALL ABSOLUTE to set the code
                    segment for the called routine.
 
                    Using a noninteger value for integervariable
                    produces unpredictable results.
 
Arguments in argumentlist are passed to the machine-language program
as offsets (near pointers) from the current data segment. Although
arguments are passed as offsets, the machine-language program is
invoked with a far call.
 
  Note: The CALL ABSOLUTE statement is provided to maintain
        compatibility with earlier versions of BASIC. Mixed-language
        programming using the CALL statement extensions and the new
        DECLARE statement provide a simpler way to use assembly
        language with BASIC.
 
        Also, in order to use CALL ABSOLUTE you must start QuickBASIC
        with the correct Quick library, link your program with QB.LIB,
        or use the QB.QLB Quick library. See the disk-contents list
        for the locations of these files.
 
Differences from BASICA
 
Assembly-language programs that are invoked from BASICA and that have
string arguments must be changed because string descriptors are now
four bytes long. The four bytes are the low byte and high byte of the
string length followed by the low byte and high byte of the string
address.