
; *******************************************************
; *							*
; *	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
