home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l040 / 13.ddi / RTLDOS.ZIP / ENVV.ASM < prev    next >
Encoding:
Assembly Source File  |  1992-10-28  |  1.3 KB  |  98 lines

  1.  
  2. ; *******************************************************
  3. ; *                            *
  4. ; *    Turbo Pascal Runtime Library Version 5.5    *
  5. ; *    Environment Variable Routine            *
  6. ; *                            *
  7. ; *    Copyright (C) 1988,89 Borland International    *
  8. ; *                            *
  9. ; *******************************************************
  10.  
  11.     TITLE    ENVV
  12.  
  13.     LOCALS    @@
  14.  
  15. DATA    SEGMENT    WORD PUBLIC
  16.  
  17.     EXTRN    PrefixSeg:WORD
  18.  
  19. DATA    ENDS
  20.  
  21. CODE    SEGMENT    BYTE PUBLIC
  22.  
  23.     ASSUME    CS:CODE,DS:DATA
  24.  
  25.     PUBLIC    GetEnv
  26.  
  27. GetEnv        PROC    FAR
  28.  
  29. EnvStrP        EQU    (DWORD PTR [BP+10])
  30. EnvVarP        EQU    (DWORD PTR [BP+6])
  31. VarName        EQU    (BYTE PTR [BP-32])
  32.  
  33.     PUSH    BP
  34.     MOV    BP,SP
  35.     SUB    SP,32
  36.     PUSH    DS
  37.     CLD
  38.     LDS    SI,EnvVarP
  39.     LEA    DI,VarName
  40.     PUSH    SS
  41.     POP    ES
  42.     LODSB
  43.     CMP    AL,31
  44.     JBE    @@1
  45.     MOV    AL,31
  46. @@1:    CBW
  47.     MOV    CX,AX
  48.     INC    AX
  49.     MOV    DX,AX
  50.     JCXZ    @@4
  51. @@2:    LODSB
  52.     CMP    AL,'a'
  53.     JB    @@3
  54.     CMP    AL,'z'
  55.     JA    @@3
  56.     SUB    AL,20H
  57. @@3:    STOSB
  58.     LOOP    @@2
  59. @@4:    MOV    AL,'='
  60.     STOSB
  61.     POP    DS
  62.     PUSH    DS
  63.     MOV    DS,PrefixSeg
  64.     MOV    DS,DS:[2CH]
  65.     XOR    SI,SI
  66. @@5:    CMP    BYTE PTR [SI],0
  67.     JE    @@7
  68.     LEA    DI,VarName
  69.     MOV    CX,DX
  70.     REP    CMPSB
  71.     JE    @@7
  72.     DEC    SI
  73. @@6:    LODSB
  74.     OR    AL,AL
  75.     JNE    @@6
  76.     JMP    @@5
  77. @@7:    MOV    DI,SI
  78.     PUSH    DS
  79.     POP    ES
  80.     XOR    AL,AL
  81.     MOV    CX,256
  82.     REPNE    SCASB
  83.     NOT    CL
  84.     LES    DI,EnvStrP
  85.     MOV    AL,CL
  86.     STOSB
  87.     REP    MOVSB
  88.     POP    DS
  89.     MOV    SP,BP
  90.     POP    BP
  91.     RET    4
  92.  
  93. GetEnv        ENDP
  94.  
  95. CODE    ENDS
  96.  
  97.     END
  98.