mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-12 16:29:29 +00:00
Added *RENAME.
This commit is contained in:
parent
b71604efdc
commit
8d220fb4dd
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
|
@ -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
|
||||
|
|
30
mainmem.s
30
mainmem.s
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user