home *** CD-ROM | disk | FTP | other *** search
- ;
- ; SYSLIB Module Name: SRENAM
- ; Author: Richard Conn
- ; SYSLIB Version Number: 2.0
- ; Module Version Number: 1.0
- ; Module Entry Points:
- ; F$RENAME
- ; Module External References:
- ; BDOS FILLB MOVEB
- ;
-
- ;
- ; 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::
- JMP START
-
- ;
- ; FCB FOR RENAME
- ;
- RENFCB:
- DS 36 ; JUST NEED THE SPACE
-
- ;
- ; START OF ROUTINE
- ;
- START:
- PUSH H ; SAVE REGS
- PUSH D
- PUSH B
- PUSH D ; SAVE OLD NAME PTR
- PUSH H ; SAVE NEW NAME PTR
- LXI H,RENFCB ; INIT THE FCB
- XRA A ; STORE ZEROES
- MVI B,36 ; 36 BYTES
- CALL FILLB
- POP H ; GET PTR TO NEW NAME
- LXI D,RENFCB+17 ; PT TO FN PART OF FCB2
- INX H ; PT TO FN
- MVI B,11 ; 11 BYTES
- CALL MOVEB
- POP H ; PT TO 1ST FN
- LXI D,RENFCB+1 ; PT TO FN PART OF FCB1
- INX H ; PT TO FN
- MVI B,11 ; 11 BYTES
- CALL MOVEB
- LXI D,RENFCB ; DO THE RENAME
- MVI C,23 ; BDOS FCT 23
- CALL BDOS
- POP B ; RESTORE REGS
- POP D
- POP H
- CPI 0FFH ; ERROR?
- JZ RENERR
- MVI A,0FFH ; SET NO ERROR
- ORA A ; SET FLAGS
- RET
- RENERR:
- XRA A ; SET ERROR
- RET
-
- END
-