Further refactoring.

This commit is contained in:
Bobbi Webber-Manners 2021-09-09 19:55:27 -04:00
parent f534426793
commit b14b8ee71a
3 changed files with 21 additions and 5 deletions

Binary file not shown.

View File

@ -730,8 +730,9 @@ DRVINFO >>> ENTMAIN
* Filename in MOSFILE, flags in MOSFILE2
SETPERM >>> ENTMAIN
JSR PREPATH ; Preprocess pathname
JSR WILDONE ; Handle any wildcards
BCS :ERR
BCS :SYNERR
JSR WILDCARD ; Handle any wildcards
BCS :NONE
STZ :LFLAG
STZ :WFLAG
STZ :RFLAG
@ -739,7 +740,7 @@ SETPERM >>> ENTMAIN
INX
:L1 DEX
CPX #$00
BEQ :DONEARG
BEQ :MAINLOOP
LDA MOSFILE2,X ; Read arg2 char
CMP #'L' ; L=Locked
BNE :S1
@ -753,7 +754,12 @@ SETPERM >>> ENTMAIN
BNE :ERR2 ; Bad attribute
STA :WFLAG
BRA :L1
:DONEARG LDA #<MOSFILE
:SYNERR LDA #$40 ; Invalid pathname syn
BRA :EXIT
:NONE JSR CLSDIR
LDA #$40 ; TODO PROPER ERROR CODE
BRA :EXIT
:MAINLOOP LDA #<MOSFILE
STA GINFOPL+1
LDA #>MOSFILE
STA GINFOPL+2
@ -773,8 +779,12 @@ SETPERM >>> ENTMAIN
AND #$3D ; Turn off destroy/ren/write
:S5 STA GINFOPL+3 ; Access byte
JSR SETINFO ; SET_FILE_INFO
JSR WILDNEXT
BCS :NOMORE
BRA :MAINLOOP
:EXIT >>> XF2AUX,ACCRET
:ERR LDA #$40 ; Invalid pathname syn
:NOMORE JSR CLSDIR
LDA #$00
BRA :EXIT
:ERR2 LDA #$53 ; Invalid parameter
BRA :EXIT

View File

@ -47,6 +47,12 @@ WILDCARD STZ :LAST
RTS
:LAST DB $00 ; Flag for last segment
* Obtain subsequent wildcard matches
* WILDCARD must have been called first
* Returns with carry set if wildcard match fails, clear otherwise
WILDNEXT SEC ; Just say 'no match' for now
RTS
* Copy a segment of the path into SEGBUF
* PREPATH makes all paths absolute, so always begins with '/'
* On entry: X contains index of first char in MOSFILE to process