diff --git a/applecorn.po b/applecorn.po index 5251d1f..daaf942 100644 Binary files a/applecorn.po and b/applecorn.po differ diff --git a/mainmem.svc.s b/mainmem.svc.s index cfa4fdf..64f3a7a 100644 --- a/mainmem.svc.s +++ b/mainmem.svc.s @@ -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 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 diff --git a/mainmem.wild.s b/mainmem.wild.s index bde0ff5..dcdb5ee 100644 --- a/mainmem.wild.s +++ b/mainmem.wild.s @@ -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