*INFO nearly working

This commit is contained in:
Bobbi Webber-Manners 2021-09-10 23:36:46 -04:00
parent be140d17a2
commit 964329c4a4
3 changed files with 36 additions and 3 deletions

Binary file not shown.

View File

@ -644,9 +644,14 @@ QUIT INC $3F4 ; Invalidate powerup byte
RTS
* Used for *CAT, *EX and *INFO
* On entry: A=$5x *CAT, A=$9x *EX, A=$Ax *INFO
CATALOG >>> ENTMAIN
AND #$F0
STA CATARG ; Stash argument
LDA MOSFILE ; Length of pathname
CMP #$A0 ; Is it *INFO?
BNE :NOTINFO
JMP INFO ; Handle entry for *INFO
:NOTINFO LDA MOSFILE ; Length of pathname
BEQ :NOPATH ; If zero use prefix
JSR PREPATH ; Preprocess pathname
JSR WILDONE ; Handle any wildcards
@ -687,9 +692,35 @@ CATEXIT >>> XF2AUX,STARCATRET
* PRONEBLK call returns here ...
CATALOGRET
>>> ENTMAIN
LDA CATARG
CMP #$A0 ; Is this an *INFO call?
BEQ INFOREENTRY
BRA CATREENTRY
CATARG DB $00 ; A=5 *CAT, A=9 *EX, A=10 *INFO
CATARG DB $00
* Handle *INFO
INFO JSR PREPATH ; Preprocess pathname
JSR WILDCARD ; Handle any wildcards
BCS INFEXIT
INFOREENTRY
JSR WILDNEXT
BCS INFEXIT ; No more matches
:L1 JSR WILDNEXT
BCS :DONE
LDA WILDIDX
CMP #$FF ; Finished a block?
BEQ :DONE
BRA :L1
:DONE JSR COPYAUXBLK
>>> XF2AUX,PRONEBLK
INFEXIT CMP #$4C ; EOF
BNE :EXIT
LDA #$00 ; EOF is not an error
:EXIT JSR CLSDIR ; Be sure to close it!
>>> XF2AUX,STARCATRET
* Set prefix. Used by *CHDIR to change directory
SETPFX >>> ENTMAIN

View File

@ -253,11 +253,13 @@ MATCHENT LDA #<BLKBUF+4 ; Skip pointers
BNE :S2
INC A1H
:S2 JSR MATCH ; Try wildcard match
BCC :NOMATCH
PHP
LDA A1L ; Decrement ptr again
BNE :S3
DEC A1H
:S3 DEC A1L
PLP
BCC :NOMATCH
LDY #$00 ; If matches, copy matching filename
LDA (A1L),Y ; Length of filename
AND #$0F ; Mask out other ProDOS stuff