home *** CD-ROM | disk | FTP | other *** search
- TITLE env_adrs.asm
- NAME env_adrs
-
- ; $Header: E:/mark/envircat/env_adrs.asv 1.0 27 Nov 1990 00:14:18 Mark_Gardner $
-
- ;* environment address
- ;
- ; a routine to determine the address of the environment of the master
- ; COMMAND.COM invocation under DOS. Does not work with some versions,
- ; typically 4.00.
- ;
- ; this routine was taken from an article by Scott Robert Ladd in the
- ; book "MS-DOS SYSTEM PROGRAMMING", edited by Robert Ward, R&D Publications,
- ; 260-1 Iowa Street, Lawrence, KS 66046. My thanks to him, since I was
- ; desperate for a longer path statement, and this was the key.
- ;
- ; I hope he will forgive me for leaving out all the comments. Even though
- ; he put the program in the public domain, R&D might get a few more orders
- ; this way for a very useful book. I received the book as a 'bonus' for
- ; subscribing to TechSpecialist, which, in spite of its title, is targeted
- ; at specialist programmers in MS-DOS, and is at least as useful as most
- ; other of my subscriptions.
- ;
- ;>
-
-
- .MODEL LARGE
-
- .CODE
-
- PUBLIC _findmenv
-
- _findmenv PROC FAR
-
- push es
- push bx
- push cx
-
- mov ah, 52h
- int 21h
-
- mov ax, word ptr es:[bx-2]
- mov es, ax
- mov bx, 3
-
- add ax, word ptr es:[bx]
- inc ax
- inc ax
- mov es, ax
- mov bx, 44
-
- mov ax, word ptr es:[bx]
- cmp ax, 0
-
- jne fge_1
-
- mov ax, es
- dec ax
- mov es, ax
- mov bx, 3
- add ax, es:[bx]
- inc ax
-
- fge_1:
-
- dec ax
- mov es, ax
- mov bx, 3
-
- mov dx, es:[bx]
- mov cl, 4
- shl dx, cl
- mov cx, dx
-
- inc ax
- mov dx, ax
- xor ax, ax
-
- pop cx
- pop bx
- pop es
-
- ret
-
- _findmenv ENDP
-
- ;-
-
- END
-