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