From 6df7ea631611de2be5805d56ec7a0753b157f676 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sat, 28 Aug 2021 16:13:31 -0400 Subject: [PATCH] *DIR ^/^/^/FOO/BAR/BAZ now works. Phew! --- applecorn.po | Bin 819200 -> 819200 bytes mainmem.s | 24 ++++++++++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/applecorn.po b/applecorn.po index d854eccefe2b0f74202a0973e6f76397642069f4..b069c24dc063db49cfe72448bfa97a9e69d86524 100644 GIT binary patch delta 2310 zcma)6e^6A{6@G8u-eng75mfL;@Dc%8_AH8-c4$Y8O0CpJ1cjE=R2Rfdsxp#xQUB6M z$E9ZCWoQ|_V`uGbXhyRMZ?l362|@tZRiKC~aXS4&t<-^%*2OJu5^Xf?dHX=qKicW? zF5jMW&pqGSbH4jzd9^IB_BQKvaf!_*^_ePkYj974SQ2&SX;7iTQ4P*&a7}{;@oXpw`|#1T%NmK(7Sa+IAwSqw%8)h(+TGFB_*$H zEZn-SScrZM9$m7~@#3>Ey3~@C*nY@xm+;=TQhIZ3TnTrrm1ujSE>-+xLPvtQ!YQ6> z7Il9=m7+@!bv*q8@lHdl*wCu$XqDbFbe@Z85|8c!(8!k$dhxv9 z@9GMSj^ggfgYft}JkTy}+B|D9ms;)R!0>thK))JudHnu(WIS5R#PoyEY`vIAWuK`T zyT^NMGSiBA9C z`yaGo-=1`ol9ZSgJ1k8LTZEqLG;E}yr<3yMatv*JN^gHU+AXj5d&~rMS#qzDMlJiN*hu-sT?H7Cexa4CMFeuN05S4S=Gxn0u_1#-|Kwx8qtel6&H7sj8Z#G2RE=6)xCZSw%>Z{`|zo7 z+t~tjVXefpamq89D>fxdpaJ{fCs||D?3I1scq3 zd@u8^5Hz?2SDDN=?;>f7=D~?1!2EO7&Q}m0-Mm4R{?Sh*TFQu>X+Z$Aqh6i`LTTne&5WA@a6x8Shyb{{^>)TeBRlY&wPCq<>4 z+bT)6SjXS0B$kDCt>>{ocUZhNn)Fb0LzQIlOHTmvreWt^Q#sXr1YDyS3Hu>!tg zH_1M#w_*^nI$l<8n{h+AW5!v#1;++=m7_3~&hu-haQfbKnM~a>%g6FDG_(d(wmarf z0U(<^;g*Z!bTwAHuk}T8@-wT6xY3r}ViEnbneNGcV@62O7~&(lNfNfl1X{CWztQhn zt>0>sqb+Ao!TC>ceg)32!TB#xcEaE~vt(p?Yb<`Uy*iUIUT;OyNvuwT)fr<|o0FrK zq3N>}P!3G6q8^xNRmy?stWL?QF3d8H7Fq9pIKjcT@>JP!@@j*Cg zsKEMBpn%$;)(d?GspJ{>#Ef4-mOiP6nk@e977hGZbwcWX!? zav!N7_eI2g2M84tW(X!V0)D!dq$T(?QqAY%fm+gn^}O*W$w|?|Jt3*#jAu$}_+85q x^|fc=^#{nZ&Ve_{>bTBIzbG1cStBw3D(5)CWxy4K%ZST_E4DM|_?$m}`ETc+p??4X delta 2228 zcma)6ZBSEJ8onPn0ipy26|@!)^^1^KD>_xCD}La(r79m)w2tmNLBzT{B|$o~_1AjY zF>E{aWZY%+j5~2R!w>CcIY}xAH9~6Ojy3MhQ(qi*HWEcznJAZ2&l(xmPm@x_KbafN;$nBTD2<#* zmdq!Z;oGV@v8qmLtdl=B($CMz@0QfJdoJKJfiw8d@OKg7`LgqxC(zM%rLUJi_qTfj zo!@j1aF5=x@!{`B|AoiL@ZB*I=xFcn9Psp9@Aq8p90>MzUg9nt_al+P(QzD(4E==J z7x-%5^-JAXI?ociqh3BjO%3u!da^+-S*eGw#RGj8`vSP@yV1KNgE(;gA|4ux;Cmxu zQBBSXu{G-99yyU}NfbzYzUv$ORL=Ng+nKOeZz-0}ry z8*Th8`aw+00k0qjF&0G&9-Vz zJsC7oj9#C|?G+mJN-c?1fPZK8e$vM8nq#hzTr)tg?MF$OjC;KUWQ(@(S|RvXaO~R* zekB>Du^+{zYQeSuD+iJX z>>!YQU==_LG{@e}zi?dn!m(T6D&owWK{4vgUI+NI53x_$_)X&4SRNb~SUwyVSpl_` zpmfneKQ2MmS$4hV2EavDf0-^luDYHQG-t&F;BixV<#uS5dspMXxE=giY!{FSu-!oJ z0gHe$hdcmw51bpwLz=t~EsA|ESK3mFFv{gJ57Xc8Lm6BT{~?VPc8i2t;g+Qk2NcBZFRS!!PPxuGd>D zaMUEv;!Njk0zZ4f6{}j0CegVWL)YhK z;Bp`n!1X{L0V@FV7~D^QWj#;ZHaaeoqBh>|()V5-Ra|c6$2fXKb-BEug`5vuE_6Ry z7&Ez>cI-#S^(Df^baF zZ812m7+|m)Fj2O|5~a^hj4YNdCC< zb~srEUCWekuN`c4KBy5!_=>5;0Vn-1+@<_@l!xb&oH?$=52qY3tVCRPYCM2`ZSa9; zZz?>1{%GLmt?zv_Pqfpq_Yt3^bIZ_n4i#l+J%@%ev=8%RkJ@%B>kbh^+fh5X98tSl z2rkoR+~u^^juz29c9bxs9L|a4Ae@s(1wCX(nPPOYTnuY0GwCu1O5lv^9B2bi;D`f_ zh#U_dL|8OWvJC4i^dA){)$G%m^*JB?ssh#Ur0gG{j6~ht8ri=v4Zxsc`086P1&jC{oK5z9v$AEu^^kEVS6@ZV7?dAI-o diff --git a/mainmem.s b/mainmem.s index a95e9d0..0594958 100644 --- a/mainmem.s +++ b/mainmem.s @@ -813,27 +813,28 @@ CATALOGRET * Preprocess path in MOSFILE, handling '^' character * '^' means parent dir (eg: '^/SOMEDIR')) * Carry set on error, clear otherwise -PREPATH LDA MOSFILE+1 ; First char of dirname +PREPATH JSR GETPREF ; Current pfx -> MOSFILE2 +:REENTER LDA MOSFILE+1 ; First char of dirname CMP #$5E ; '^' char BEQ :CARET ; If '^' - CMP #$3A ; ':' char - BEQ :COLON - BRA :EXIT ; Nothing to do -:CARET JSR GETPREF ; Current prfx -> MOSFILE2 - JSR PARENT ; Parent dir -> MOSFILE2 + CMP #$2F ; '/' char - abs path + BEQ :EXIT ; Nothing to do + BRA :PARENT +:CARET JSR PARENT ; Parent dir -> MOSFILE2 JSR DEL1CHAR ; Delete '^' from MOSFILE LDA MOSFILE ; Is there more? BEQ :PARENT ; Only '^' + CMP #$02 ; Len at least two? + BCC :ERR ; Nope! LDA MOSFILE+1 ; What is next char? CMP #$2F ; Is it slash? - BNE :ERR + BNE :ERR ; Nope! + JSR DEL1CHAR ; Delete '/' from MOSFILE + BRA :REENTER ; Go again! :PARENT JSR APPMF2 ; Append MOSFILE->MOSFILE2 JSR COPYMF2 ; Copy back to MOSFILE :EXIT CLC RTS -:COLON -* TODO: Handle :SD for slot/drive here - BRA :ERR :ERR SEC RTS @@ -900,8 +901,7 @@ PARENT LDX MOSFILE2 ; Length of string CPX #$01 BNE :L1 BRA :EXIT ; No slash found -:FOUND DEX - STX MOSFILE2 ; Truncate string +:FOUND STX MOSFILE2 ; Truncate string :EXIT RTS * Convert slot/drive to prefix