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

  1.  
  2. ; *******************************************************
  3. ; *                            *
  4. ; *     Turbo Pascal Run-time Library                   *
  5. ; *    File Utility Routines                *
  6. ; *                            *
  7. ; *     Copyright (c) 1988,92 Borland International     *
  8. ; *                            *
  9. ; *******************************************************
  10.  
  11.     TITLE    FDIR
  12.  
  13.     INCLUDE    SE.ASM
  14.  
  15. DATA    SEGMENT    WORD PUBLIC
  16.  
  17. ; Externals
  18.  
  19.     EXTRN    InOutRes:WORD
  20.  
  21. DATA    ENDS
  22.  
  23.     IF WindowsVersion
  24.  
  25. ; Windows entry points
  26.  
  27.     EXTRN    AnsiToOem:FAR
  28.  
  29.     ENDIF
  30.  
  31. CODE    SEGMENT    BYTE PUBLIC
  32.  
  33.     ASSUME    CS:CODE,DS:DATA
  34.  
  35. ; Publics
  36.  
  37.     PUBLIC    EraseFile,RenameFile,RenameFileC
  38.  
  39. ; Erase standard procedure
  40.  
  41. EraseFile:
  42.  
  43.     MOV    BX,SP
  44.     PUSH    DS
  45.     LDS    DX,SS:[BX+4]
  46.     ADD    DX,OFFSET fName
  47.     MOV    AH,dosDelete
  48.     INT    DOS
  49.     POP    DS
  50.     JNC    @@1
  51.     MOV    InOutRes,AX
  52. @@1:    RETF    4
  53.  
  54. ; Rename standard procedure (PChar)
  55.  
  56. RenameFileC:
  57.  
  58.     DB    0BAH            ;MOV DX,immed
  59.  
  60. ; Rename standard procedure (String)
  61.  
  62. RenameFile:
  63.  
  64.     ARG    FileP,DWORD,1
  65.     ARG    NameP,DWORD,1
  66.     LOC    NewName,BYTE,80
  67.  
  68.     XOR    DX,DX
  69.     ENTRY    FAR
  70.     PUSH    DS
  71.     LDS    SI,NameP
  72.     LEA    DI,NewName
  73.     PUSH    SS
  74.     POP    ES
  75.     IF WindowsVersion
  76.     PUSH    ES
  77.     PUSH    DI
  78.     PUSH    ES
  79.     PUSH    DI
  80.     ENDIF
  81.     CLD
  82.     MOV    CX,79
  83.     OR    DX,DX
  84.     JNE    @@0
  85.     LODSB
  86.     CMP    CL,AL
  87.     JBE    @@0
  88.     MOV    CL,AL
  89.     JCXZ    @@1
  90. @@0:    LODSB
  91.     OR    AL,AL
  92.     JE    @@1
  93.     STOSB
  94.     LOOP    @@0
  95. @@1:    XOR    AL,AL
  96.     STOSB
  97.     IF WindowsVersion
  98.     CALL    AnsiToOem
  99.     ENDIF
  100.     LDS    DX,FileP
  101.     ADD    DX,OFFSET fName
  102.     LEA    DI,NewName
  103.     MOV    AH,dosRename
  104.     INT    DOS
  105.     POP    DS
  106.     JNC    @@2
  107.     MOV    InOutRes,AX
  108.     JMP    SHORT @@4
  109. @@2:    PUSH    DS
  110.     LEA    SI,NewName
  111.     PUSH    SS
  112.     POP    DS
  113.     LES    DI,FileP
  114.     ADD    DI,OFFSET fName
  115.     CLD
  116. @@3:    LODSB
  117.     STOSB
  118.     OR    AL,AL
  119.     JNE    @@3
  120.     POP    DS
  121. @@4:    EXIT
  122.  
  123. CODE    ENDS
  124.  
  125.     END
  126.