mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-02-15 14:32:22 +00:00
Finally have *INFO working! OMG, what a nightmare.
This commit is contained in:
parent
f75d7cce86
commit
e91b5a3991
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
@ -711,12 +711,12 @@ INFO JSR PREPATH ; Preprocess pathname
|
|||||||
** it does not go well ;)
|
** it does not go well ;)
|
||||||
|
|
||||||
INFOREENTRY
|
INFOREENTRY
|
||||||
JSR WILDNEXT ; Start of new block
|
JSR WILDNEXT2 ; Start of new block
|
||||||
BCS INFOEXIT ; No more matches
|
BCS INFOEXIT ; No more matches
|
||||||
INFOFIRST LDA WILDIDX
|
INFOFIRST LDA WILDIDX
|
||||||
CMP #$FF ; Is WILDNEXT about to read new blk?
|
CMP #$FF ; Is WILDNEXT about to read new blk?
|
||||||
BEQ :DONEBLK ; If so, print this blk first
|
BEQ :DONEBLK ; If so, print this blk first
|
||||||
JSR WILDNEXT
|
JSR WILDNEXT2
|
||||||
BCS :DONEBLK ; If no more matches
|
BCS :DONEBLK ; If no more matches
|
||||||
BRA INFOFIRST
|
BRA INFOFIRST
|
||||||
:DONEBLK JSR COPYAUXBLK
|
:DONEBLK JSR COPYAUXBLK
|
||||||
|
@ -59,16 +59,42 @@ WILDCARD STZ :LAST
|
|||||||
* Caller should check WILDIDX and call again if value is $FF
|
* Caller should check WILDIDX and call again if value is $FF
|
||||||
WILDNEXT LDX MFTEMP ; Length of MFTEMP
|
WILDNEXT LDX MFTEMP ; Length of MFTEMP
|
||||||
:L1 CPX #$00 ; Find final segment (previous match)
|
:L1 CPX #$00 ; Find final segment (previous match)
|
||||||
BEQ :S1
|
BEQ :AGAIN
|
||||||
LDA MFTEMP,X
|
LDA MFTEMP,X
|
||||||
CMP #'/'
|
CMP #'/'
|
||||||
BNE :S2
|
BNE :S2
|
||||||
DEX
|
DEX
|
||||||
STX MFTEMP ; Trim MFTEMP
|
STX MFTEMP ; Trim MFTEMP
|
||||||
BRA :S1
|
BRA :AGAIN
|
||||||
:S2 DEX
|
:S2 DEX
|
||||||
BRA :L1
|
BRA :L1
|
||||||
:S1 JSR SRCHBLK
|
:AGAIN JSR SRCHBLK
|
||||||
|
BCC :NOMATCH
|
||||||
|
JSR APPMATCH ; Append MATCHBUF to MFTEMP
|
||||||
|
JSR TMPtoMF ; Copy back to MOSFILE
|
||||||
|
CLC
|
||||||
|
RTS
|
||||||
|
:NOMATCH LDA WILDIDX ; See if there are more blocks
|
||||||
|
CMP #$FF
|
||||||
|
BEQ :AGAIN ; Yes, go again
|
||||||
|
SEC
|
||||||
|
RTS
|
||||||
|
|
||||||
|
* Different version of WILDNEXT which is used by the *INFO handler
|
||||||
|
* Because it needs to intercept each block.
|
||||||
|
* TODO: Once this works, refactor/cleanup
|
||||||
|
WILDNEXT2 LDX MFTEMP ; Length of MFTEMP
|
||||||
|
:L1 CPX #$00 ; Find final segment (previous match)
|
||||||
|
BEQ :AGAIN
|
||||||
|
LDA MFTEMP,X
|
||||||
|
CMP #'/'
|
||||||
|
BNE :S2
|
||||||
|
DEX
|
||||||
|
STX MFTEMP ; Trim MFTEMP
|
||||||
|
BRA :AGAIN
|
||||||
|
:S2 DEX
|
||||||
|
BRA :L1
|
||||||
|
:AGAIN JSR SRCHBLK
|
||||||
BCC :NOMATCH
|
BCC :NOMATCH
|
||||||
JSR APPMATCH ; Append MATCHBUF to MFTEMP
|
JSR APPMATCH ; Append MATCHBUF to MFTEMP
|
||||||
JSR TMPtoMF ; Copy back to MOSFILE
|
JSR TMPtoMF ; Copy back to MOSFILE
|
||||||
@ -184,7 +210,7 @@ SRCHBLK LDA WILDIDX
|
|||||||
:EOF
|
:EOF
|
||||||
:BADDIR
|
:BADDIR
|
||||||
:NODIR
|
:NODIR
|
||||||
SEC ; No match, caller checks WILDIDX ..
|
CLC ; No match, caller checks WILDIDX ..
|
||||||
RTS ; .. to see if another block
|
RTS ; .. to see if another block
|
||||||
|
|
||||||
:CONT JSR SRCHBLK2 ; Handle one block
|
:CONT JSR SRCHBLK2 ; Handle one block
|
||||||
|
Loading…
x
Reference in New Issue
Block a user