home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ZSYS
/
SIMTEL20
/
SYSLIB
/
SLIB2.LBR
/
SFRENAME.Z80
< prev
next >
Wrap
Text File
|
2000-06-30
|
2KB
|
78 lines
;
; SYSLIB Module Name: SRENAME
; Author: Richard Conn
; SYSLIB Version Number: 3.6
; Module Version Number: 1.1
public f$rename
;
; F$REN -- RENAME FILES
; THIS ROUTINE RENAMES THE OLD FILE PTED TO BY DE TO THE NEW FILE
; PTED TO BY HL; ONLY THE FN AND FT FIELDS OF THE FCB PTED TO ARE USED,
; AND THE POINTERS POINT TO THE USER NUMBERS, SO FULL FCB'S ARE NOT NECESSARY.
; ONLY THE FIRST 12 BYTES OF AN FCB ARE REQUIRED
;
; ON ENTRY, HL PTS TO NEW FILE NAME, DE PTS TO OLD FILE NAME
; ON EXIT, ZERO FLAG SET (Z) MEANS ERROR (FILE NOT FOUND)
;
;
; EXTERNALS
;
EXT BDOS
EXT FILLB
EXT MOVEB
;
; ROUTINE
;
F$RENAME:
JP START
;
; FCB FOR RENAME
;
RENFCB:
DS 36 ; JUST NEED THE SPACE
;
; START OF ROUTINE
;
START:
PUSH HL ; SAVE REGS
PUSH DE
PUSH BC
PUSH DE ; SAVE OLD NAME PTR
PUSH HL ; SAVE NEW NAME PTR
LD HL,RENFCB ; INIT THE FCB
XOR A ; STORE ZEROES
LD B,36 ; 36 BYTES
CALL FILLB
POP HL ; GET PTR TO NEW NAME
LD DE,RENFCB+17 ; PT TO FN PART OF FCB2
INC HL ; PT TO FN
LD B,11 ; 11 BYTES
CALL MOVEB
POP HL ; PT TO 1ST FN
LD DE,RENFCB+1 ; PT TO FN PART OF FCB1
INC HL ; PT TO FN
LD B,11 ; 11 BYTES
CALL MOVEB
LD DE,RENFCB ; DO THE RENAME
LD C,23 ; BDOS FCT 23
CALL BDOS
POP BC ; RESTORE REGS
POP DE
POP HL
CP 0FFH ; ERROR?
JP Z,RENERR
LD A,0FFH ; SET NO ERROR
OR A ; SET FLAGS
RET
RENERR:
XOR A ; SET ERROR
RET
END