home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / asm_kit / rendir4.asm < prev    next >
Assembly Source File  |  1985-02-24  |  2KB  |  94 lines

  1.  
  2.     TITLE      RENDIR - RENAME A SUBDIRECTORY
  3.     PAGE 81,132
  4. ;    RENDIR.ASM
  5. ;
  6. ;    RENDIR    RENAMES A SUBDIRECTORY FILE
  7. ;
  8. ;    SYNTAX:
  9. ;
  10. ;    RENDIR    olddirname[.ext] newdirname[.ext]
  11. ;
  12. ;    AUTHOR: DREW A. COPELAND
  13. ;
  14. ;    DATE OF LAST REVISION: SEPT. 16, 1984
  15. ;
  16. ;    MNEMONIC NAMES FOR SPECIAL CHARACTER VALUES
  17. LF    EQU    0AH
  18. CR    EQU    0DH
  19. MARK    EQU    '$'
  20. ;
  21. ;    DEFINE    THE CODE SEGMENT AND SET FOR A COM PROGRAM
  22. CSEG    SEGMENT PARA PUBLIC 'CODE'
  23.     ASSUME    CS:CSEG, DS:CSEG
  24.     ORG 05CH
  25. FCB1    LABEL BYTE
  26.     ORG 06CH
  27. FCB2    LABEL BYTE
  28. ;
  29. ;    END OF    PSP, START OF PROGRAM
  30.     ORG    100H
  31. START:    JMP    MAIN               ;JUMP AROUND DATA AREA
  32. ;
  33. ;    PUT DATA WHERE ITS EASY TO FIND
  34. MSG1        DB   'Requires DOS 2.X',MARK
  35. MSG2        DB   'Syntax Error - RENDIR oldname[.ext] newname[.ext]',MARK
  36. MSG4        DB   'Subdirectory Name Not Found',MARK
  37. FDIR        DB   0FFH,5 DUP(0H),10H
  38. FBUFOLD        DB   0H,11 DUP(' '),5 DUP (0H)
  39. FBUFNEW        DB   11 DUP(' ')
  40. ;
  41. ;
  42. MAIN    PROC    NEAR
  43. ;
  44. ;    GET DOS VERSION
  45.     MOV    AH,30H
  46.     INT    21H
  47.     CMP    AL,02H
  48.     JNB    OK
  49.     MOV    DX,OFFSET MSG1
  50.     JMP    MESS
  51. ;
  52. ;    CHECK FOR PRESENCE OF NAMES
  53. OK:    MOV    AL,[FCB1+1]
  54.     CMP    AL,20H
  55.     JZ    MESS2
  56.     MOV    AL,[FCB2+2]
  57.     CMP    AL,20H
  58.     JNZ    GO
  59. MESS2:    MOV    DX,OFFSET MSG2
  60.     JMP    MESS
  61. ;
  62. ;    MOVE OLD DIRECTORY NAME TO BUFFER
  63. GO:    CLD
  64.     MOV    SI,OFFSET FCB1+1
  65.     MOV    DI,OFFSET FBUFOLD+1
  66.     XOR    CX,CX
  67.     MOV    CL,0BH
  68.     REPZ    MOVSB
  69. ;
  70. ;    MOVE NEW DIRECTORY NAME TO BUFFER
  71.     MOV    SI,OFFSET FCB2+1
  72.     MOV    DI,OFFSET FBUFNEW
  73.     XOR    CX,CX
  74.     MOV    CL,0BH
  75.     REPZ    MOVSB
  76. ;
  77. ;    POINT TO EXTENDED FCB AND USE RENAME FUNCTION
  78.     MOV    DX,OFFSET FDIR
  79.     MOV    AH,17H
  80.     INT    21H
  81.     CMP    AL,0FFH      ;FF MEANS NO MATCH
  82.     JNZ    EXIT
  83. ;
  84. ;    PRINT MSG
  85.     MOV    DX,OFFSET MSG4
  86. MESS:    MOV    AH,09H
  87.     INT    21H
  88. EXIT:    INT    20H
  89. MAIN    ENDP
  90. ;
  91. ;    END OF    SEGMENT
  92. CSEG    ENDS
  93.     END    START
  94.