qb45advr.hlp (
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
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.