Article: Q28446
Product(s): See article
Version(s): 6.00 6.00b 7.00
Operating System(s): OS/2
Keyword(s): ENDUSER | | mspl13_basic
Last Modified: 2-FEB-1990
Below is a sample program that invokes the OS/2 function DosGetEnv.
' The function declarations are found in file BSEDOSPC.BI
DECLARE FUNCTION DosGetEnv%(_
SEG P1 AS INTEGER,_
SEG P2 AS INTEGER)
cls
x=DosGetEnv(y%,z%)
IF (x) then
Print "An error occurred. The error number is ";x
ELSE
Print "Address to Place Segment Handle : ";y%
Print "Address to Place Command Line Start : ",z%
END IF
def seg = y%
PRINT "THE INFORMATION IN THE ENVIRONMENT TABLE :" : PRINT
For i = 0 to z%-20
t%=peek(i)
IF t%=42 THEN
hold%=i
END IF
IF t% = 0 THEN
print " "
ELSE
print chr$(t%);
END IF
next i
print
i = 0
PRINT "The Command Line Argument is : ";
DO
t%=peek(z%+i)
print chr$(t%);
i = i + 1
LOOP WHILE t% <> 0
PRINT " "
print
PRINT "POKING SOME INFORMATION INTO THE ENVIRONMENT TABLE... " : print
PRINT
IF hold%<>0 THEN
for i = 0 to 9
poke hold%-i, 74-i
next i
def seg
PRINT "The information was poked into the environment variable FOO;"
PRINT "which was previously set to **********"
print "The NEW contents of FOO : ";environ$("FOO") : print
Print "When the program is exited, notice the environment table";
Print "isn't changed."
PRINT "BASCOM uses only a copy of the actual DOS environment table"
print
ELSE
print "The FOO environment variable is not set. "
print "To have the complete demo, set the FOO=**********"
END IF
END