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: EXIST.SUB LAST UPDATE: 05/24/1987 %
- '% %
- '% DESCRIPTION: Provides a simple method of determining if a file exists. %
- '% %
- '% CALL: CALL EXIST(SEARCH$,RETCODE%) %
- '% %
- '% INPUTS: SEARCH$ = file to search for, may include drive and path. %
- '% %
- '% OUTPUTS: RETCODE% = DOS return code found in the AX register. %
- '% %
- '% Some of the possible 0 = file found %
- '% return codes: 3 = path not found %
- '% 18 = file not found %
- '% %
- '% 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 EXIST(SEARCH$,RETCODE%) 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
-
-
- 'define disk transfer area
-
- DTA$=STRING$(44," ")+""
-
-
- 'set disk transfer area
-
- PARMIN%(AXREG%)=&H1A00 'select dos function 26
- PARMIN%(DXREG%)=SADD(DTA$) 'get DTA address into reg.
- CALL INT86(&H21,VARPTR(PARMIN%(0)),VARPTR(PARMOUT%(0)))
-
-
- 'convert search string to asciiz string
-
- SEARCH$=SEARCH$+CHR$(0)
-
-
- 'find first file
-
- PARMIN%(AXREG%)=&H4E00 'select dos function 78
- PARMIN%(CXREG%)=&H0000 'search for only normal files
- PARMIN%(DXREG%)=SADD(SEARCH$) 'get address search string into reg.
- CALL INT86(&H21,VARPTR(PARMIN%(0)),VARPTR(PARMOUT%(0)))
-
-
- 'set return code
-
- RETCODE%=PARMOUT%(AXREG%)
-
-
- END SUB 'exist
-