home *** CD-ROM | disk | FTP | other *** search
-
- TITLE RENDIR - RENAME A SUBDIRECTORY
- PAGE 81,132
- ; RENDIR.ASM
- ;
- ; RENDIR RENAMES A SUBDIRECTORY FILE
- ;
- ; SYNTAX:
- ;
- ; RENDIR olddirname[.ext] newdirname[.ext]
- ;
- ; AUTHOR: DREW A. COPELAND
- ;
- ; DATE OF LAST REVISION: SEPT. 16, 1984
- ;
- ; MNEMONIC NAMES FOR SPECIAL CHARACTER VALUES
- LF EQU 0AH
- CR EQU 0DH
- MARK EQU '$'
- ;
- ; DEFINE THE CODE SEGMENT AND SET FOR A COM PROGRAM
- CSEG SEGMENT PARA PUBLIC 'CODE'
- ASSUME CS:CSEG, DS:CSEG
- ORG 05CH
- FCB1 LABEL BYTE
- ORG 06CH
- FCB2 LABEL BYTE
- ;
- ; END OF PSP, START OF PROGRAM
- ORG 100H
- START: JMP MAIN ;JUMP AROUND DATA AREA
- ;
- ; PUT DATA WHERE ITS EASY TO FIND
- MSG1 DB 'Requires DOS 2.X',MARK
- MSG2 DB 'Syntax Error - RENDIR oldname[.ext] newname[.ext]',MARK
- MSG4 DB 'Subdirectory Name Not Found',MARK
- FDIR DB 0FFH,5 DUP(0H),10H
- FBUFOLD DB 0H,11 DUP(' '),5 DUP (0H)
- FBUFNEW DB 11 DUP(' ')
- ;
- ;
- MAIN PROC NEAR
- ;
- ; GET DOS VERSION
- MOV AH,30H
- INT 21H
- CMP AL,02H
- JNB OK
- MOV DX,OFFSET MSG1
- JMP MESS
- ;
- ; CHECK FOR PRESENCE OF NAMES
- OK: MOV AL,[FCB1+1]
- CMP AL,20H
- JZ MESS2
- MOV AL,[FCB2+2]
- CMP AL,20H
- JNZ GO
- MESS2: MOV DX,OFFSET MSG2
- JMP MESS
- ;
- ; MOVE OLD DIRECTORY NAME TO BUFFER
- GO: CLD
- MOV SI,OFFSET FCB1+1
- MOV DI,OFFSET FBUFOLD+1
- XOR CX,CX
- MOV CL,0BH
- REPZ MOVSB
- ;
- ; MOVE NEW DIRECTORY NAME TO BUFFER
- MOV SI,OFFSET FCB2+1
- MOV DI,OFFSET FBUFNEW
- XOR CX,CX
- MOV CL,0BH
- REPZ MOVSB
- ;
- ; POINT TO EXTENDED FCB AND USE RENAME FUNCTION
- MOV DX,OFFSET FDIR
- MOV AH,17H
- INT 21H
- CMP AL,0FFH ;FF MEANS NO MATCH
- JNZ EXIT
- ;
- ; PRINT MSG
- MOV DX,OFFSET MSG4
- MESS: MOV AH,09H
- INT 21H
- EXIT: INT 20H
- MAIN ENDP
- ;
- ; END OF SEGMENT
- CSEG ENDS
- END START