From 8e0c6fc3e2cea8c9b03fe9db9db3c4dece68c4a7 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 31 Oct 2019 17:21:09 -0400 Subject: [PATCH] Fixed F_SNEXT so it doesn't need FCB in DE --- SOFTCARD80.ASM#040000 | 14 ++++++-------- SOFTCARD80.BIN#041000 | Bin 43011 -> 43011 bytes zapple2.po | Bin 819200 -> 819200 bytes 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/SOFTCARD80.ASM#040000 b/SOFTCARD80.ASM#040000 index c81fda8..1f56cbb 100644 --- a/SOFTCARD80.ASM#040000 +++ b/SOFTCARD80.ASM#040000 @@ -23,9 +23,7 @@ ; TODO: Needs proper boot / warm boot entry points ; TODO: NAME2FCB needs to generate size information in some cases but not ; others. Right now this functionality is just commented out. -; TODO: PIP wildcards only get first file, so there must be a problem with -; F_SFIRST/F_SNEXT still -; TODO: Get STAT.COM to work +; TODO: Get STAT.COM to work. Think it is picky about arg handling. ; TODO: F_WRITE bug turns out to be bug in ProDOS 2.5.0a7 (SET_MARK) ; TODO: Maybe I should eliminate use of "EX AF,AF'" in BDOS since CP/M apps ; may expect exclusive use of alternate register set. @@ -967,12 +965,11 @@ FSFS2 LD A,0FFH ; No match RET ; Search for next match of filename in directory -; DE is the address of the FCB describing the file to look for +; The address of the FCB describing the file to look for is in TEMPWORD ; Returns error codes in A and L: 0 for success, 0FFH for not found ; The matching FCB is always in slot 0, so success return code always 0 ; TODO: Should handle '?' in extent field also -F_SNEXT LD (TEMPWORD),DE ; Store pointer to search FCB - LD HL,(CDBPTR) ; Pointer into current block +F_SNEXT LD HL,(CDBPTR) ; Pointer into current block LD A,(CDBCOUNT) ; File count for current block FSNL1 LD DE,(TEMPWORD) ; Get ptr to search FCB back CALL CHKDIRBLK ; Search directory block @@ -1962,7 +1959,7 @@ PRHEX PUSH AF ; Very simple CCP ; ; Commands: -; - d - Change default drive (A:, B: etc.) +; - d: - Change default drive (A:, B: etc.) ; - DIR - Show directory (DIR, DIR A:, DIR FOO.TXT, DIR F???????.???) ; - ERA - Erase file(s) (ERA FOO.TXT, ERA F???????.???) ; - REN - Rename file (REN BAR.TXT=FOO.TXT) @@ -1972,12 +1969,13 @@ PRHEX PUSH AF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; TODO: Sanity check / validate number of command args for builtins -; TODO: Not handling case where there are no args propertly. If PIP is started +; TODO: Not handling case where there are no args properly. If PIP is started ; without arguments then it should go to interactive mode. Zeroing FILEBUF ; does the trick! ; TODO: Make unadorned drives expand to x:????????.??? or something so ; DIR A: works. Or just special case it in DIRECT ... ; Need to handle this differently for eg: ERA A: vs DIR A: !! +; TODO: For some reason ERA B:????????.??? doesn't work ; TODO: Parse * wildcard and generate FCB with ?s ; TODO: Implement REN, SAVE commands diff --git a/SOFTCARD80.BIN#041000 b/SOFTCARD80.BIN#041000 index f471c51e3c304ecb42f30762863bf991d645a9ee..624c693b78175fa5e99905eb8746d0c05dd05559 100644 GIT binary patch delta 2508 zcmZ`*eQaA-6~E8%5+`w-xX!ZSK;jn{F;XoO55_XDdtKVKOruRwKK^RAMu@c9q6*>6$c~noafVFQ;s81-8|HI>U~R7^Fik)hc;% zQL)zxT>{sK7}V7|@GFgdgW9$c?h;}PS}h*n+H}^V12*W_NlmH6JM*=8B-V#mY&4^> z*4Tm`5PHH5uR(LC5WA|mJMR=&tn)%|GN1;B`7v+`X~F!ikhl1CYY;23n>h=Dt9$M?UDI&oOJrPt6M53XDO6^ibFvAIB%LF9 z(!~D8J4&-xrGc!&VV)#wwL7Zt50Os4H^bU^rcda%chp{cRIcGx=$&o$Ud;L}aM60uLC|2f9t?Y>i&@!J_7-dR_g73xn-Lmhf-BuWvedRdvN6S%jSoQ$}?~$YCZkZpV za5>tHsBlWQH{v5QKkS>dn+h+vI$o;uG;C9gBkLN(E`ajik8ZZRuqMMQ8i+W{cKnKb zEwS1;wzj7SO>SsTqG;$Sl;cP8q}>i;wWciHz;R=QFXB z$d1u@8ofKRkNji?y8KdR=ujw2evxy;NJupknNhfsx1${i``Ain)}FZ1nSD1BH~*6% z+q3KmR4rF}P&1-Jg@?0LEK+zNOM*F*&62}e82Jdy@Sq&As_a&yTB}t0kQI$4!1&Yp zQ`yfY<5|mQ@EchlIgopSgKn`sTfJC~mF>mj4H`Ii;U^m_%WlT|VR0a5K?#+k-4@hGO+T93n4Hh;2%p8T<)Wbu zQ_Jy)CR6aF!9JfOIk*gbK1WWeW>BTru{ySrBdZN8S;tm$%j*s7hjr|e+%nSYx?&v* zsLS7@n3I#i=`R^>xZ$k?WBXJVF>V1szB5yhr#&=r230u!ew99}KhSrn;b1}~kIX>o z3GV-eU|OG4AL=@%2KOTR?x73hoNB(VFRG#Y-&cA60$x=6I!Gy1vHFIpbT)sd)>T2{ zJZRv5sa7zdGuqwBhcsaE;W*vQsowiE@&x#-ffJ8X66`v=fkMNNVA`QdRZtB;e+m~4 zX#1cBOQ~Wd>OTsv-)^l^w5$mF&4nX#6D=e2CKMS19|CCcrMU@aWF9D-ol8!5M&_sK zVrh16qHScJ3OSOLaOB_q<=jM*!vLwm;@pH6@F|z~&gEN{%YTNgsSWZ$o%rqbxd{)* XQt)!^Q@Ysts)L{D)<5c2ANBqhYml7} delta 2548 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 delta 2638 zcmZ`*4{Q_H8Gjf196L^&IDv#ERmjCus7aSe*8YGS%(gV4Xh0APl`80xb1WAbLOczGXqouWCAkFb7po2 z6Pj&c+18r6g$x-;cvlZQiTveSwxd>GI~Qh$YuU@8`)^9zpCzKj+*dO0s~NYFajO|F zh`L)5hfwzh)ZLD9A$beWdU|oh9{ol1Rh(S%Z?zbiGP3m4lxGCbf zAg%ZuZbzE4qyg(`N)slr;%m&V__{ouh?~z?(6G&OL3RjiYkM_vP~8>r+>{K{yCU4Y z>=oFKKy%vJoF?lcbbNb?SmGcUi*VO7OfRx^&&RXwtMTOn_aSl;IBGPK`(Y%jcvqF> z@7{-c=Hs5*xfdda{>8iWb1xb?1+q5+`?5rxK~&`Q-3GW&Wn-3TzCaR`UlXNFkb!L6 z#?E~h$!8BMc{n7cP%IVw4);GK_qsgbXCX~*%QXtwBsdA(;r(t>y*3NF12kPYY#&xQZ*`D1Dt z282If^Smf=ME9(79#NNdwmrJ$c}XtD*)Ik3v~Y(jS+VovcT>7!BX#q_cSj614Fkd(WA{jR z8)fU+-WV$yHolTD&dx}6TkPJccBI`kX?oP-1<5G+iuzgzJ&oz*?|dP>y8P`MPsEl7 zOlj_4G#hJ$@EUau1Hxz5BD?K4fb)oY#$Z^i1q!V;N8@0ZpghQP=%Jt&tlDeAb*~OYHLoz zRfjf4?6e&B#i0#wdtbN@PFOMtxuMwF}q4F%c?nT%VR&3Xd@pdWgW6+|x6 zcB3`mUm2nZp&gzpnRDvLfWzmrxJQA{t++>p&%foHDR#L18;MO1Kfe@E$c6;eta6O( zOB^GQCY~qz{H(Kg)1x{ zO0#u=qoSfQ_)XDD#*;_g&^C68<+%d11vm-XTt`Gmv3I~NX1v4hWX8MOoyz3jEtwVA z+brms@CSG69@Jm7s;(hy#y3Hj#rEW#jso0|?;&l$>vTB%s#NO6cUZU$|DL8#wWT26f_NWfDm`pQ0+BHN~ne+~pO zoeiWAHdcx=L|F<58Gth`|Lg^JYv5wac@WWu5nUn|Q@OLLGVmSfdu329!R@l0S3gX7 z>(Ar4ly0u1boS}I+fFqj8TdgU zST6kGj^(wFz%0edUn`T}-vaX>OTp{Ruh-`JhS@rqy|r%2bcO}80M!Cnfowo^v!*ll HmG}M&gd4<+