mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-08-15 08:27:29 +00:00
Added *CDIR/*MKDIR handling.
This commit is contained in:
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
@@ -231,7 +231,9 @@ FILEHND PHX
|
|||||||
CMP #$FF
|
CMP #$FF
|
||||||
BEQ :LOAD ; A=FF -> LOAD
|
BEQ :LOAD ; A=FF -> LOAD
|
||||||
CMP #$06
|
CMP #$06
|
||||||
BEQ :DELETE ; A=06 -> DELET
|
BEQ :DELETE ; A=06 -> DELETE
|
||||||
|
CMP #$08
|
||||||
|
BEQ :MKDIR ; A=08 -> MKDIR
|
||||||
LDA #<OSFILEM ; If not implemented, print msg
|
LDA #<OSFILEM ; If not implemented, print msg
|
||||||
LDY #>OSFILEM
|
LDY #>OSFILEM
|
||||||
JSR PRSTR
|
JSR PRSTR
|
||||||
@@ -248,6 +250,7 @@ FILEHND PHX
|
|||||||
:SAVE >>> XF2MAIN,SAVEFILE
|
:SAVE >>> XF2MAIN,SAVEFILE
|
||||||
:LOAD >>> XF2MAIN,LOADFILE
|
:LOAD >>> XF2MAIN,LOADFILE
|
||||||
:DELETE >>> XF2MAIN,DELFILE
|
:DELETE >>> XF2MAIN,DELFILE
|
||||||
|
:MKDIR >>> XF2MAIN,MAKEDIR
|
||||||
OSFILERET
|
OSFILERET
|
||||||
>>> ENTAUX
|
>>> ENTAUX
|
||||||
PHA
|
PHA
|
||||||
@@ -264,7 +267,7 @@ OSFILERET
|
|||||||
PLA
|
PLA
|
||||||
PLY ; Value of A on OSFILE entry
|
PLY ; Value of A on OSFILE entry
|
||||||
CPY #$FF ; See if command was LOAD
|
CPY #$FF ; See if command was LOAD
|
||||||
BNE :NOTLOAD ; Deal with return from SAVE
|
BNE :NOTLOAD
|
||||||
|
|
||||||
CMP #$01 ; No file found
|
CMP #$01 ; No file found
|
||||||
BNE :SL1
|
BNE :SL1
|
||||||
@@ -303,7 +306,9 @@ OSFILERET
|
|||||||
|
|
||||||
:SS2 LDA #$01 ; Return code - file found
|
:SS2 LDA #$01 ; Return code - file found
|
||||||
|
|
||||||
:NOTLS CMP #$00 ; File was not found
|
:NOTLS CPY #$06 ; Was it DELETE?
|
||||||
|
BNE :NOTLSD ; Was LOAD/SAVE/DELETE
|
||||||
|
CMP #$00 ; File was not found
|
||||||
BNE :SD1
|
BNE :SD1
|
||||||
BRK
|
BRK
|
||||||
DB $D6 ; $D6 = File not found
|
DB $D6 ; $D6 = File not found
|
||||||
@@ -319,6 +324,20 @@ OSFILERET
|
|||||||
ASC 't delete'
|
ASC 't delete'
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
|
:NOTLSD CPY #$08 ; Was it CDIR?
|
||||||
|
BNE :EXIT
|
||||||
|
CMP #$00 ; A=0 means dir was created
|
||||||
|
BEQ :SC1
|
||||||
|
|
||||||
|
BRK
|
||||||
|
DB $C0 ; Guess - IS THIS REASONABLE??
|
||||||
|
ASC 'Can'
|
||||||
|
DB $27
|
||||||
|
ASC 't create'
|
||||||
|
BRK
|
||||||
|
|
||||||
|
:SC1 LDA #$02 ; Guess I return 2 for dir??
|
||||||
|
|
||||||
:EXIT PLY
|
:EXIT PLY
|
||||||
PLX
|
PLX
|
||||||
RTS
|
RTS
|
||||||
|
25
mainmem.s
25
mainmem.s
@@ -175,6 +175,31 @@ DESTROY LDA #<MOSFILE ; Attempt to destroy file
|
|||||||
DW DESTPL
|
DW DESTPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
* ProDOS file handling to create a directory
|
||||||
|
MAKEDIR >>> ENTMAIN
|
||||||
|
LDA #<MOSFILE
|
||||||
|
STA CREATEPL+1
|
||||||
|
LDA #>MOSFILE
|
||||||
|
STA CREATEPL+2
|
||||||
|
LDA #$C3 ; 'Default access'
|
||||||
|
STA CREATEPL+3 ; ->Access
|
||||||
|
LDA #$0F ; 'Directory'
|
||||||
|
STA CREATEPL+4 ; ->File type
|
||||||
|
STZ CREATEPL+5 ; Aux type LSB
|
||||||
|
STZ CREATEPL+6 ; Aux type MSB
|
||||||
|
LDA #$0D ; 'Directory'
|
||||||
|
STA CREATEPL+7 ; ->Storage type
|
||||||
|
LDA $BF90 ; Current date
|
||||||
|
STA CREATEPL+8
|
||||||
|
LDA $BF91
|
||||||
|
STA CREATEPL+9
|
||||||
|
LDA $BF92 ; Current time
|
||||||
|
STA CREATEPL+10
|
||||||
|
LDA $BF93
|
||||||
|
STA CREATEPL+11
|
||||||
|
JSR CRTFILE
|
||||||
|
:EXIT >>> XF2AUX,OSFILERET
|
||||||
|
|
||||||
* ProDOS file handling to rename a file
|
* ProDOS file handling to rename a file
|
||||||
RENFILE >>> ENTMAIN
|
RENFILE >>> ENTMAIN
|
||||||
JSR RENAME
|
JSR RENAME
|
||||||
|
Reference in New Issue
Block a user