home *** CD-ROM | disk | FTP | other *** search
- '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- '% (C) 1987 HUMBLEWARE Custom Programming Author: Lawrence A. Westhaver %
- '% 247 Paul Martin Drive, Baltimore MD 21227 (301) 799-1975 %
- '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- '% %
- '% FILENAME: HALT.SUB LAST UPDATE: 06/12/1987 %
- '% %
- '% DESCRIPTION: Terminates a QuickBASIC program and returns an error code %
- '% that can be tested by the DOS ERRORLEVEL batch statement. %
- '% %
- '% CALL: CALL HALT(ERRORLEVEL%) %
- '% %
- '% INPUTS: ERRORLEVEL% = A DOS errorlevel value between 0 and 255. %
- '% %
- '% OUTPUTS: None. %
- '% %
- '% NOTE: The Microsoft QuickBASIC INT86 assembly routine must be %
- '% linked into your program at compile time or it must be %
- '% present in the QuickBASIC USERLIB.EXE file before this %
- '% routine can be used. %
- '% %
- '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- SUB HALT(ERRORLEVEL%) Static
-
-
- 'dim parameter storage for INT86 call
-
- DIM PARMIN%(7),PARMOUT%(7)
-
-
- 'declare indexes for INT86 calls
-
- AXREG%=0 'AX register
- BXREG%=1 'BX register
- CXREG%=2 'CX register
- DXREG%=3 'DX register
- BPREG%=4 'BP register
- SIREG%=5 'SI register
- DIREG%=6 'DI register
- FLAGS%=7 'Flags
-
-
- 'restore video before exiting to DOS
-
- COLOR 7,0,0
- LOCATE ,,1,6,7
-
-
- 'return error level to DOS
-
- POKE VARPTR(PARMIN%(0))+0,ERRORLEVEL% 'set error level
- POKE VARPTR(PARMIN%(0))+1,&H4C 'set DOS function
- CALL INT86(&H21,VARPTR(PARMIN%(0)),VARPTR(PARMOUT%(0)))
-
-
- END SUB 'halt
-