home *** CD-ROM | disk | FTP | other *** search
-
- ; *******************************************************
- ; * *
- ; * Turbo Pascal Runtime Library Version 5.5 *
- ; * Environment String Routines *
- ; * *
- ; * Copyright (C) 1988,89 Borland International *
- ; * *
- ; *******************************************************
-
- TITLE ENVS
-
- LOCALS @@
-
- DATA SEGMENT WORD PUBLIC
-
- EXTRN PrefixSeg:WORD
-
- DATA ENDS
-
- CODE SEGMENT BYTE PUBLIC
-
- ASSUME CS:CODE,DS:DATA
-
- PUBLIC EnvCount
-
- EnvCount PROC FAR
-
- XOR DX,DX
- CALL EnvStrCnt
- XCHG AX,DX
- NEG AX
- RET
-
- EnvCount ENDP
-
- PUBLIC EnvStr
-
- EnvStr PROC FAR
-
- EnvStrP EQU (DWORD PTR [BP+8])
- EnvIndex EQU (WORD PTR [BP+6])
-
- PUSH BP
- MOV BP,SP
- PUSH DS
- MOV DX,EnvIndex
- CALL EnvStrCnt
- MOV SI,DI
- PUSH ES
- POP DS
- XOR AL,AL
- MOV CX,256
- REPNE SCASB
- NOT CL
- LES DI,EnvStrP
- MOV AL,CL
- STOSB
- REP MOVSB
- POP DS
- POP BP
- RET 2
-
- EnvStr ENDP
-
- EnvStrCnt PROC NEAR
-
- MOV ES,PrefixSeg
- MOV ES,ES:[2CH]
- XOR DI,DI
- CLD
- @@1: XOR AL,AL
- CMP AL,ES:[DI]
- JE @@2
- DEC DX
- JE @@2
- MOV CX,-1
- REPNE SCASB
- JMP @@1
- @@2: RET
-
- EnvStrCnt ENDP
-
- CODE ENDS
-
- END
-