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 INTERRUPT Statement Details
  QuickSCREEN      Details      Example      Contents      Index
──────────────────────────────────────────────────────────────────────────────
CALL INTERRUPT Statement Details
 
Syntax
  CALL INTERRUPT  (interruptnum, inregs, outregs)
  CALL INTERRUPTX (interruptnum, inregs, outregs)
 
  Argument       Description
  interruptnum   The DOS interrupt number. It is an integer between
                 0 and 255. See your DOS documentation for informa-
                 tion about interrupts.
  inregs         The inregs variable contains the register values
                 used when the interrupt is performed. It is declared
                 as type RegType. The user-defined type RegType is
                 described below.
  outregs        The outregs variable contains the register values
                 after the interrupt is performed. It is declared
                 as type RegType. The user-defined type RegType is
                 described below.
 
The CALL INTERRUPT and CALL INTERRUPTX statements replace the INT86
and INT86X routines used in earlier versions of BASIC. They provide
a more convenient way for BASIC programs to use DOS interrupts and
services.
 
CALL INTERRUPT and CALL INTERRUPTX are shipped in a Quick Library
(QB.QLB) and in a conventional library (QB.LIB) on the QuickBASIC
Utilities 1 distribution disk. There is also a header file (QB.BI)
on the disks with the necessary declarations for using these procedures.
 
To use CALL INTERRUPT or CALL INTERRUPTX when running a program
within the QuickBASIC environment, the Quick library QB.QLB must be
loaded with QuickBASIC. For information on how to do this, see the
QB command line options table.
 
The register values before and after the interrupt are passed in
variables declared as type RegType. The following statement defines
the RegType user-defined type:
 
  TYPE RegType
     AX AS INTEGER
     BX AS INTEGER
     CX AS INTEGER
     DX AS INTEGER
     BP AS INTEGER
     SI AS INTEGER
 
  DI AS INTEGER
     FLAGS AS INTEGER
     DS AS INTEGER
     ES AS INTEGER
  END TYPE
 
Each element of the type corresponds to a CPU register.
 
INTERRUPTX uses the values in the DS and ES registers. To use the
current values of these registers, set the record elements to -1.