| .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. |