qb45advr.hlp (Topic list)
CALL INTERRUPT Statement Programming Example
  QuickSCREEN      Details     Example      Contents      Index
──────────────────────────────────────────────────────────────────────────────
CALL INTERRUPT Statement Programming Example
 
This example uses INT86OLD to open a file and place some text in it.
 
' Note:  To use CALL INTERRUPT, you must load the Quick library QB.LIB
'        with QuickBASIC. The program also uses the QB.BI header file.
 
' Include header file for INT86OLD, etc.
$INCLUDE:'QB.BI'
 
DIM INARY%(7),OUTARY%(7)          'Define input and output
                                  'arrays for INT86.
'
' Define register-array indices to
' make program easier to understand.
CONST AX=0, BX=1, CX=2, DX=3, BP=4, SI=5, DI=6, FL=7
'
INARY%(AX) = &H3C00               'DOS function to create a file.
INARY%(CX) = 0                    'DOS attribute for created file.
INARY%(DX) = SADD("FOO.TXT"+CHR$(0))
                                  'Pointer to file-name string
                                  'with zero byte termination.
 
CALL INT86OLD(&H21,INARY%(),OUTARY%())
                                  'Perform the creation.
'
INARY%(BX) = OUTARY%(AX)          'Move created file handle for write.
INARY%(AX) = &H4000               'DOS function to write to file.
TEXT$ = "hello, world"+CHR$(13)+CHR$(10)
                                  'Define text to write to file.
INARY%(CX) = LEN(TEXT$)           'Get length of text string.
INARY%(DX) = SADD(TEXT$)          'Get address of text string.
CALL INT86OLD(&H21,INARY%(),OUTARY%())
                                  'Perform the write.
'
INARY%(AX) = &H3E00               'DOS function to close a file.
CALL INT86OLD(&H21,INARY%(),OUTARY%())
                                  'Perform the close.