INTERRUPT: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:
: [[CALL]] [[INTERRUPT]]({{Parameter|intNum}}, {{Parameter|inRegs}}, {{Parameter|outRegs}})
: [[CALL]] [[INTERRUPT]]({{Parameter|intNum}}, {{Parameter|inRegs}}, {{Parameter|outRegs}})


 
=== Legacy support ===
===Legacy support===
* Registers are emulated in '''QB64''' to allow older programs to be compiled. To enable mouse input in your programs, the recommended practice is to use [[_MOUSEINPUT]] and related functions.
* Registers are emulated in '''QB64''' to allow older programs to be compiled. To enable mouse input in your programs, the recommended practice is to use [[_MOUSEINPUT]] and related functions.




{{Parameters}}
{{PageParameters}}
* Registers are emulated in QB64 and there is no support for {{Parameter|intNum}} 33h mouse functions above 3 or {{Parameter|intNum}} requests other than 33.
* Registers are emulated in QB64 and there is no support for {{Parameter|intNum}} 33h mouse functions above 3 or {{Parameter|intNum}} requests other than 33.
* {{Parameter|inRegs}} are the values placed into the call and {{Parameter|outRegs}} are the register return values.
* {{Parameter|inRegs}} are the values placed into the call and {{Parameter|outRegs}} are the register return values.


 
=== QBasic/QuickBASIC ===
==QBasic/QuickBASIC==
* Available in QuickBASIC versions 4 and up and required an external library to be loaded. '''QB64''' emulates the statement without an external library.
* Available in QuickBASIC versions 4 and up and required an external library to be loaded. <!-- Command line: QB.EXE /L in QB4.5 --> '''QB64''' emulates the statement without an external library.
* {{Parameter|intNum}} is the interrupt reference vector table address. For historic reference, see: [http://www.ctyme.com/intr/cat.htm Ralf Brown's Interrupt List]
* {{Parameter|intNum}} is the interrupt reference vector table address. For historic reference, see: [http://www.ctyme.com/intr/cat.htm Ralf Brown's Interrupt List]
* The [[TYPE]] definition below will work for both [[INTERRUPT]] and INTERRUPTX statement calls
* The [[TYPE]] definition below will work for both [[INTERRUPT]] and INTERRUPTX statement calls

Latest revision as of 10:36, 29 January 2023

The INTERRUPT statement is an assembly routine for accessing computer information registers.


Syntax

CALL INTERRUPT(intNum, inRegs, outRegs)

Legacy support

  • Registers are emulated in QB64 to allow older programs to be compiled. To enable mouse input in your programs, the recommended practice is to use _MOUSEINPUT and related functions.


Parameters

  • Registers are emulated in QB64 and there is no support for intNum 33h mouse functions above 3 or intNum requests other than 33.
  • inRegs are the values placed into the call and outRegs are the register return values.

QBasic/QuickBASIC

  • Available in QuickBASIC versions 4 and up and required an external library to be loaded. QB64 emulates the statement without an external library.
  • intNum is the interrupt reference vector table address. For historic reference, see: Ralf Brown's Interrupt List
  • The TYPE definition below will work for both INTERRUPT and INTERRUPTX statement calls
  • INTERRUPT can use all of the below TYPE elements when they are required.
TYPE RegTypeX
   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
DIM SHARED inregs AS RegTypeX, outregs AS RegTypeX
QBasic's RegType.BI $INCLUDE file can be used by INTERRUPT or INTERRUPTX


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link