From b14b8ee71a8096fe39dac440acd0adadc44f82f1 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 9 Sep 2021 19:55:27 -0400 Subject: [PATCH] Further refactoring. --- applecorn.po | Bin 819200 -> 819200 bytes mainmem.svc.s | 20 +++++++++++++++----- mainmem.wild.s | 6 ++++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/applecorn.po b/applecorn.po index 5251d1f088728439098d1e7a50f136fce5f0e97d..daaf94252ce500067fec424a9cb6b3bd52d3e425 100644 GIT binary patch delta 2388 zcmZuy4Qv$072dt|+#fckHc2jrjK(Df&fM+IIgnn0e{dsJ$N8GNNu#!^ingF)LPMLM z{*d&?3yB>XJnrGhYz^niwV=%!=DKc49h$nnK;qmwc5)U`R8d)V)F?HQ4QsGXF+uK| zJDZrQr`dZmZ{GLb?DyWARn-brtuXdGRy79%-=_PE1@&J7=93o=IbJ&C5aF@GBf*o` zcgTT$_3?(DQ2g$0q5pksIq}r333XO=;MQAs?54tY6MB&7Nl@e0wdzR}Dgwy zXj7#gYO2ylwF8sr9mh`6-%(0;^?hXu9T$s!OOn;L3}$42{)S*-;O$QB)63|Dv)Yfp z?86U*w6QD5qouAOmt#?-Wv-x&+ny)7M1RT=Z$3wqW61+47~jB4Fwyv3vlKEx0wk!BE_9BBVh@xpy)f+1mpOds zms-;_s#w`Z;27=P^-+Qcw6~{GS->Fl6t@}u12OIg`F;;EHnCn3o;povWIg*MnPP-) zU(fzTrjpt{SJ5^{g4>TA*LGY*W%r&U%qG#(gh>)*gyl&z$+zF@$!=F-GB%k)|59Ce`F>?EL)|3fCmcASZyGV|PxD+ca z&oM#Y;$%EEi&o=4Vs7(EPC6{P;kVJSxts;V5-iyOiR@*6(@xByPz9vm0Uk0}J3Rz4 zNYfIekeU)p5;`O$-j!~jNf(oEXpT8l`sm-J=6j` z7}BFW>oRl;&-xbb@gP~sdWpIQk7&=&A+KYR3+?zE^532HY4D19mFHaN1v&V8ZEOy$ zuc-DLkHf~YVvr-t3h}RmzIKWA14EZMGkuqUmMz!O=0?D6!ELg!IpOptT>gaHpRAQ8 zhQtlVyC%IBdx8Jh4 z#H5Q0Tha-_S4H~>ZV2HIWW%eblZR8<2iMVEE4Uv){YZaI9n+?-qpvky^yB|s_by$}gw@!5g*{#`jmmnE*2$eQ z85nZ)*VsDiH0wX8^zo?NElfg0cfTlg)X5WRb-D#yb&12Ev>9v9!gbaVh!>|s%XN0a z1`%zlU4H~W8%U?se<@e4u%UF|Ym?V@hEUG#sknsoy;HMYq>zmm8BFVO0eFV5o+<+$|T1^FVw zB!k!m*_y;c&_K8(sOEROx@24xG*-fjZ;j5wx5J~%hZP~LbY&U17Z~7#c9areVX6hg zO~B_KWoa5#fGbR_qW)51YFFn`aia@(?QqNK+=d%AV3j4&B`bo^x|6izT4gP7m94>L z-IA}m@pD1Lre5}_VpwsqtwGC`yFn6LgBul=SMM7)$1{1|qH60FF5-^hykVahFUZVz zS}TK!p4U{Vy?7Iq)lUTD_+(|qHdr-S*(LN=`U)u~ucqLZ@2%{>sSS2eRVbBU$mz2?B%)LifTkic(bIpDGxtTkRXV zh3Zy|UhSXXvX}OKp~!wt6j$)YU44bC?SDtjUVF3G(d>0LdtJ?5ce8iJ@4WfD{|l;+ BxdZ?J delta 2354 zcmZuyeN0qW7Jnbyc{5amQd-9`x)%^-7~af%fX$eIz&7a)bgHQRu-(?aZtG{(U7PG5 zXmx$o!jjcX2a$bJ2FuQ>>1%r@&%~BCkuY6a%OG2)*<`aZ>xQJJiwWRk_}GdX_TCw= zn(XAgIp>~xzV7dwbDyS_X+idd9uP{!-Bm4o)Hch6PFrH=`3$HMI-Z;)O}G`CP7I_3PQq()RKyU!F69$f=?DL9+>Xnx0w0Re!XcDlr24g zXc~u@>%$11*T0?wMY4|YNv8ANpO9Hj>D4x5ddO+yA8$uEu!eM^@ly!bts(ED@eX}i z64Xe?nEv11(YGf-(ejgs2qJDrL=^EUL^4F&!M49`OKq2>w&NV_2^yjeX|{BTC@-2- zjpTTYKG+c>?Wltzr%(q^I`pX|*u3jLj=UuX|FJgwNHNWN0XNvDm~W+<3Vxu3Z1JG= zYi)dzfep+=|MOql0WMoPl5GW zi`|&2zdktyR@c$^sUq6W)dqqdH#L8#slxT{|5s5G6KP4wmtwl6W)M;srh$7YjX=TY z82AD{tanUW@}@IWK}1>sL`lCubZc9S8~dy~Sl?!TboNZRLt@T4c4^n|B8(OPkIXoRy?_0@{; zU;^Mtk9I4*g)&nf?T7e_i7hzk(XKxns(_q9ZqX5oPI)ZB!AFyf2+>JO+*SAtf*Y0S z@fdv~jjiKi?h;IK8JXbJK3TGA`hGSh^2sIF1jQbLG zbVFMYiT?W^f$KElwSltY!4rIm7+(h$s%;lE{AEIU=d8ZGx)xkG*B-nh?_hDP|r zv?jKedsXLN`WxZ*E?&WiR15Cxk6bQX?lpY4!rQ&hOL1`YRSVq}-XU#DjnY_;_Xxw3 z=*w<{N7t8oBitBWW%lu6XN7lkP@6nKJ@@cTMKD)=L9eg|IrLbJw;W&03p4>ivl$!V zEBfoVL7x4f{0S!x4jsu=6%SveRK8C+H-_AkHELRaFb6BU!r-pCgp2$u+JM3zrEzWMkJH~U5~yil2#a4uk6*uK9yL*H>1)bQo{`MY4x%8QC6jgDj_ zW+U_J!$XrrB6{gP;NR7SR71jDY?=qUkdaAQmGbXU_2=1~zkrMZ{30Tue*6j|ZT%`U0gWp8#lnq8UAu1C(hmhAi=3dNzA 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