home *** CD-ROM | disk | FTP | other *** search
-
- ; *******************************************************
- ; * *
- ; * Turbo Pascal Runtime Library Version 5.5 *
- ; * Directory Search Routines *
- ; * *
- ; * Copyright (C) 1988,89 Borland International *
- ; * *
- ; *******************************************************
-
- TITLE FIND
-
- LOCALS @@
-
- DATA SEGMENT WORD PUBLIC
-
- EXTRN DosError:WORD
-
- DATA ENDS
-
- CODE SEGMENT BYTE PUBLIC
-
- ASSUME CS:CODE,DS:DATA
-
- PUBLIC FindFirst
-
- FindFirst PROC FAR
-
- PathP EQU (DWORD PTR [BP+12])
- Attr EQU (WORD PTR [BP+10])
- SearchP EQU (DWORD PTR [BP+6])
- PathBuf EQU (BYTE PTR [BP-80])
-
- PUSH BP
- MOV BP,SP
- SUB SP,80
- PUSH DS
- LDS SI,PathP
- LEA DI,PathBuf
- PUSH SS
- POP ES
- CLD
- LODSB
- CMP AL,79
- JB @@1
- MOV AL,79
- @@1: CBW
- XCHG AX,CX
- REP MOVSB
- XOR AL,AL
- STOSB
- LDS DX,SearchP
- MOV AH,1AH
- INT 21H
- LEA DX,PathBuf
- PUSH SS
- POP DS
- MOV CX,Attr
- MOV AH,4EH
- INT 21H
- POP DS
- LES DI,SearchP
- CALL FindExit
- MOV SP,BP
- POP BP
- RET 10
-
- FindFirst ENDP
-
- PUBLIC FindNext
-
- FindNext PROC FAR
-
- SearchP EQU (DWORD PTR [BP+6])
-
- PUSH BP
- MOV BP,SP
- PUSH DS
- LDS DX,SearchP
- MOV AH,1AH
- INT 21H
- POP DS
- MOV AH,4FH
- INT 21H
- LES DI,SearchP
- CALL FindExit
- POP BP
- RET 4
-
- FindNext ENDP
-
- FindExit PROC NEAR
-
- JC @@1
- ADD DI,30
- PUSH DS
- PUSH ES
- POP DS
- XOR AL,AL
- MOV CX,256
- CLD
- REPNE SCASB
- NOT CL
- MOV AL,CL
- DEC DI
- MOV SI,DI
- DEC SI
- STD
- REP MOVSB
- STOSB
- CLD
- POP DS
- XOR AX,AX
- @@1: MOV DosError,AX
- RET
-
- FindExit ENDP
-
- CODE ENDS
-
- END
-