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

  1.  
  2. ; *******************************************************
  3. ; *                            *
  4. ; *    Turbo Pascal Runtime Library Version 5.5    *
  5. ; *    Program Execution Routines            *
  6. ; *                            *
  7. ; *    Copyright (C) 1988,89 Borland International    *
  8. ; *                            *
  9. ; *******************************************************
  10.  
  11.     TITLE    EXEC
  12.  
  13.     LOCALS    @@
  14.  
  15. DATA    SEGMENT    WORD PUBLIC
  16.  
  17.     EXTRN    DosError:WORD,PrefixSeg:WORD
  18.  
  19. SaveSP        DW    ?
  20. SaveSS        DW    ?
  21.  
  22. DATA    ENDS
  23.  
  24. CODE    SEGMENT    BYTE PUBLIC
  25.  
  26.     ASSUME    CS:CODE,DS:DATA
  27.  
  28.     PUBLIC    Exec
  29.  
  30. Exec        PROC    FAR
  31.  
  32. PathArg        EQU    DWORD PTR [BP+10]
  33. CmdLineArg    EQU    DWORD PTR [BP+6]
  34. FileSeg2    EQU    WORD PTR [BP-2]
  35. FileOfs2    EQU    WORD PTR [BP-4]
  36. FileSeg1    EQU    WORD PTR [BP-6]
  37. FileOfs1    EQU    WORD PTR [BP-8]
  38. CmdLineSeg    EQU    WORD PTR [BP-10]
  39. CmdLineOfs    EQU    WORD PTR [BP-12]
  40. EnvironSeg    EQU    WORD PTR [BP-14]
  41. FileBlock1    EQU    BYTE PTR [BP-30]
  42. FileBlock2    EQU    BYTE PTR [BP-46]
  43. Path        EQU    BYTE PTR [BP-126]
  44. CmdLine        EQU    BYTE PTR [BP-254]
  45.  
  46.     PUSH    BP
  47.     MOV    BP,SP
  48.     MOV    SaveSP,SP
  49.     MOV    SaveSS,SS
  50.     SUB    SP,254
  51.     MOV    DS,PrefixSeg
  52.     MOV    AX,WORD PTR DS:2CH
  53.     MOV    EnvironSeg,AX
  54.     PUSH    SS
  55.     POP    ES
  56.     CLD
  57.     LDS    SI,PathArg
  58.     LEA    DI,Path
  59.     LODSB
  60.     CMP    AL,79
  61.     JB    @@1
  62.     MOV    AL,79
  63. @@1:    CBW
  64.     XCHG    AX,CX
  65.     REP    MOVSB
  66.     XOR    AL,AL
  67.     STOSB
  68.     LDS    SI,CmdLineArg
  69.     LEA    DI,CmdLine
  70.     LODSB
  71.     CMP    AL,126
  72.     JB    @@2
  73.     MOV    AL,126
  74. @@2:    STOSB
  75.     CBW
  76.     XCHG    AX,CX
  77.     REP    MOVSB
  78.     MOV    AL,0DH
  79.     STOSB
  80.     PUSH    SS
  81.     POP    DS
  82.     LEA    SI,CmdLine
  83.     MOV    CmdLineOfs,SI
  84.     MOV    CmdLineSeg,DS
  85.     INC    SI
  86.     LEA    DI,FileBlock1
  87.     MOV    FileOfs1,DI
  88.     MOV    FileSeg1,ES
  89.     MOV    AX,2901H
  90.     INT    21H
  91.     LEA    DI,FileBlock2
  92.     MOV    FileOfs2,DI
  93.     MOV    FileSeg2,ES
  94.     MOV    AX,2901H
  95.     INT    21H
  96.     LEA    DX,Path
  97.     LEA    BX,EnvironSeg
  98.     MOV    AX,4B00H
  99.     INT    21H
  100.     JC    @@3
  101.     XOR    AX,AX
  102. @@3:    MOV    DX,SEG DATA
  103.     MOV    DS,DX
  104.     CLI
  105.     MOV    SP,SaveSP
  106.     MOV    SS,SaveSS
  107.     STI
  108.     MOV    DosError,AX
  109.     POP    BP
  110.     RET    8
  111.  
  112. Exec        ENDP
  113.  
  114.     PUBLIC    DosExitCode
  115.  
  116. DosExitCode    PROC    FAR
  117.  
  118.     MOV    AH,4DH
  119.     INT    21H
  120.     RET
  121.  
  122. DosExitCode    ENDP
  123.  
  124. CODE    ENDS
  125.  
  126.     END
  127.