Added *RENAME.

This commit is contained in:
Bobbi Webber-Manners 2021-08-22 15:53:05 -04:00
parent b71604efdc
commit 8d220fb4dd
3 changed files with 157 additions and 75 deletions

Binary file not shown.

View File

@ -22,7 +22,7 @@ CLIHND PHX
INC ZP1+1
BRA :L1
:TRIMMED CMP #'|' ; | is comment
BEQ :IEXIT
BEQ :IEXIT2
CMP #$0D ; Carriage return
BEQ :IEXIT
LDA #<:QUIT
@ -32,7 +32,7 @@ CLIHND PHX
JSR STRCMP
BCS :S1
JSR STARQUIT
BRA :IEXIT
:IEXIT2 BRA :IEXIT
:S1 LDA #<:CAT
STA ZP2
LDA #>:CAT
@ -72,7 +72,6 @@ CLIHND PHX
JSR STRCMP
BCS :S6
JSR STARSAVE
:IEXIT BRA :EXIT
:S6 LDA #<:RUN
STA ZP2
LDA #>:RUN
@ -81,6 +80,7 @@ CLIHND PHX
BCS :S7
JSR STARRUN
BRA :EXIT
:IEXIT BRA :EXIT
:S7 LDA #<:DELETE
STA ZP2
LDA #>:DELETE
@ -89,7 +89,15 @@ CLIHND PHX
BCS :S8
JSR STARDEL
BRA :EXIT
:S8 LDA #<:HELP
:S8 LDA #<:RENAME
STA ZP2
LDA #>:RENAME
STA ZP2+1
JSR STRCMP
BCS :S9
JSR STARREN
BRA :EXIT
:S9 LDA #<:HELP
STA ZP2
LDA #>:HELP
STA ZP2+1
@ -149,6 +157,8 @@ CLIHND PHX
DB $00
:DELETE ASC 'DELETE'
DB $00
:RENAME ASC 'RENAME'
DB $00
:HELP ASC 'HELP'
DB $00
:OSCLIM ASC 'OSCLI('
@ -425,6 +435,50 @@ STARDEL JSR EATSPC ; Eat leading space
:ERR JSR BEEP
RTS
* Handle *RENAME command
* On entry, ZP1 points to command line
STARREN JSR EATSPC ; Eat leading space
JSR ADDZP1Y ; Advance ZP1
LDY #$00
:L1 LDA (ZP1),Y ; Copy arg1 -> MOSFILE
CMP #' '
BEQ :ENDARG1
CMP #$0D ; Carriage return
BEQ :ERR
INY
>>> WRTMAIN
STA MOSFILE,Y
>>> WRTAUX
BRA :L1
:ENDARG1 >>> WRTMAIN
STY MOSFILE ; Length of arg1
>>> WRTAUX
JSR EATSPC ; Eat space between args
JSR ADDZP1Y ; Advance ZP1
LDY #$00
:L2 LDA (ZP1),Y ; Copy arg2 -> MOSFILE
CMP #' '
BEQ :ENDARG2
CMP #$0D
BEQ :ENDARG2
INY
>>> WRTMAIN
STA MOSFILE2,Y
>>> WRTAUX
BRA :L2
:ENDARG2 >>> WRTMAIN
STY MOSFILE2 ; Length of arg2
>>> WRTAUX
>>> XF2MAIN,RENFILE
:ERR
* TODO: Handle errors
JSR BEEP
RTS
STARRENRET
>>> ENTAUX
RTS
* Clear OSFILE control block to zeros
CLRCB LDA #$00
LDX #$00

View File

@ -10,6 +10,7 @@ QUITCMD EQU $65
GTIMECMD EQU $82
CREATCMD EQU $C0
DESTCMD EQU $C1
RENCMD EQU $C2
SFILECMD EQU $C3
GINFOCMD EQU $C4
ONLNCMD EQU $C5
@ -153,6 +154,24 @@ DESTROY LDA #<MOSFILE ; Attempt to destroy file
DW DESTPL
RTS
* ProDOS file handling to rename a file
RENFILE >>> ENTMAIN
JSR RENAME
>>> XF2AUX,STARRENRET
RENAME LDA #<MOSFILE
STA RENPL+1
LDA #>MOSFILE
STA RENPL+2
LDA #<MOSFILE2
STA RENPL+3
LDA #>MOSFILE2
STA RENPL+4
JSR MLI
DB RENCMD
DW RENPL
RTS
* ProDOS file handling for MOS OSFIND OPEN call
* Options in A: $40 'r', $80 'w', $C0 'rw'
OFILE >>> ENTMAIN
@ -717,6 +736,10 @@ CREATEPL HEX 07 ; Number of parameters
DESTPL HEX 01 ; Number of parameters
DW $0000 ; Pointer to filename
RENPL HEX 02 ; Number of parameters
DW $0000 ; Pointer to existing name
DW $0000 ; Pointer to new filename
READPL HEX 04 ; Number of parameters
DB $00 ; Reference number
DW BLKBUF ; Pointer to data buffer
@ -785,7 +808,12 @@ QUITPL HEX 04 ; Number of parameters
DW $0000
* Buffer for Acorn MOS filename
MOSFILE DS 64 ; 64 bytes max prefix/file len
* Pascal string
MOSFILE DS 65 ; 64 bytes max prefix/file len
* Buffer for second filename (for rename)
* Pascal string
MOSFILE2 DS 65 ; 64 bytes max prefix/file len
* Acorn MOS format OSFILE param list
FILEBLK