From 9f16268acaf169f6364c467e287d7119482530eb Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 31 Oct 2019 22:51:35 -0400 Subject: [PATCH] FIxed bugs in line editing functions --- SOFTCARD80.ASM#040000 | 14 +++++++++----- SOFTCARD80.BIN#041000 | Bin 43011 -> 43011 bytes zapple2.po | Bin 819200 -> 819200 bytes 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/SOFTCARD80.ASM#040000 b/SOFTCARD80.ASM#040000 index 4ef2e8c..c00464a 100644 --- a/SOFTCARD80.ASM#040000 +++ b/SOFTCARD80.ASM#040000 @@ -19,12 +19,13 @@ ; ; BDOS TODOs ; ---------- -; TODO: F_READ API handles EOF incorrectly it seems. Researching this. +; TODO: PIP has issues with multi file copy, and I think it is because it only +; closes the destination files, but not the source files. +; TODO: Get STAT.COM to work. Think it is picky about arg handling. ; TODO: Need to implement the BIOS entry points and jump table (see MG's Ruby) ; 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: Get STAT.COM to work. Think it is picky about arg handling. ; TODO: Debug various failures in PIP. ; 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 @@ -36,7 +37,6 @@ ; TODO: IOBYTE doesn't do anything ; TODO: User number doesn't do anything ; TODO: Software R/O disk setting is not respected -; TODO: C_READSTR - Line editing functions ; TODO: C_WRITE - handle tabs ; Other Random TODO comments in the code ; @@ -777,7 +777,8 @@ CRSL1 PUSH HL ; Preserve HL INC (IX+1) ; Increment character count JP CRSL1 ; Loop RET ; -CRSS1 LD E,8 ; Print two backspaces (^H) +CRSS1 PUSH HL + LD E,8 ; Print two backspaces (^H) CALL C_WRITE ; ... CALL C_WRITE ; ... LD E,' ' ; Print two spaces to erase chars @@ -786,12 +787,15 @@ CRSS1 LD E,8 ; Print two backspaces (^H) LD E,8 ; Print two backspaces (^H) CALL C_WRITE ; ... CALL C_WRITE ; ... -CRSS2 LD E,' ' ; Print space to erase character + POP HL +CRSS2 PUSH HL + LD E,' ' ; Print space to erase character CALL C_WRITE ; ... LD E,8 ; Print backspace (^H) CALL C_WRITE ; ... LD A,(IX+1) ; Get character count CP 0 ; See if it is zero + POP HL JP Z,CRSL1 ; If so, back to top of loop DEC HL ; Delete previously-entered character DEC (IX+1) ; Decrement character count diff --git a/SOFTCARD80.BIN#041000 b/SOFTCARD80.BIN#041000 index 549473f59014edc612bd9ac57bbd05305f568d9b..7441de57b965e9c10309386c968c533e6ecd7605 100644 GIT binary patch delta 2627 zcmZ`*eQX1v{V@*gy!_@$O9NRp>Y(?HqMl43E z#I*yTLu3Ug`X4xThAV;XMN zv`h?2-;<$4;DN|cxPbTEjN)RX7qj=%5Se@Q zUu4YP`db-rM$LpeM0sDohsQLG*2kAxR?nHgW}fzulQab6vKd&?R-UX z8)h3U#TMle{XUy~Q|~=E$hW1e+h$*Ld>Y_MHD_Iy9hfBVM8#mWak#+-Y$^Q!F-Yj@Lk_C_VXDc4x5=x6~MS6eMuyuS7 z_h;`)4dKYwFukT$CvzR@O$*_@cppokE!r-zig2wSrP8^$r@L#c+Wtm|d6u!(H#3Mo=H7_L1pq>{z zN6lJY5GofCyK`9Ba3;BcAwodu8a3gtr)8N{H7IdVkW(Nv2ABFPj&K)u9U`(3b z`dzsuvqxzK#B;4R7wc+r`_z94RG``UtMRC9_}*L_)G*W>yoqFlCVVajwant%f#w%( z=eQLps!}etQ3e*R**Yj{Hy_kr$@R@D7jn&^`dHmXWin?~KDd8<6CAdbTU{o)P%0mQ zc|2Dt1NIIm(TW|wpaf!Ss!59m|e9UB&v;?hb6g{i0 zvYGMK^>R6Yv`{DshxnPaHM#OoKMbxA{;AZI`jw=Cz({c$Jc=>`b@vVr31KYGt~z)65#> zENsr@H7Fn>bf*T@v5sf+U8x)SzV=z=Z~0KOPyJ&)hG=JL)W_Lh=E=KoKT5Ss-jmhG zWr|&Lur`@&D>&G%9c-Jt&{x5(I@m6Gp}&Ha9BiMwaDif0mNshlkK5sf&IiU`ky*sp zMMB@XQOMjDnoG~f;Qv{fHpw|G$nA~uGTE8dU~hklG%n(w%U?=Ce?xB*SE2CMtsuLcm8cEzoVz)Ruyy4&;5bkRL2)jwuav+C*p? zKpCa1vGxQtW!3y)=%g|@R-h?ZAaVf?XQ{7fpod?yj=gLjC<$LW=L(0QbeG3UaImB1 zsPa;wT+*~4dh6|rQ}H{vX%&i-fqw+hrG=?D!%f3VS(%EvxM_{9FTXz(ujQsG&(jts zU0M8BKAwtKSrlN?J!j%>z(;M`)z5xvyKwiJI74laFFK3g_MC~kfR}=c4}Y>QeRF0H Ie(lcx0PbnN6aWAK delta 2662 zcmZ`*eQXrh5r1o+k2~XU8#l2V=l0e~Y7nByE}+ z9Jn*s@$K#H?tQ#7sIpo`2B{4SJp!qUn?~T>IAs^V)aUeQ67>?DDmzN4Rr*h>e%!kA zcK3)wTg&%8W_~mCX5P%39i1;5oiDps#W2&CtC{Aq%E}2ctOQq{t*^ox%3If1+xp7O zedTYRdVs@hD<+#I-aWyunczJWymx{fLH=gMBILgZ`CE`Sjl0G>AH5oxi@Y28B*F-X zg-PLk!5iHd)uNlkUNIz|5(QBflj57=6EoMFh0{FGa)^IyLvHqf2 zw@{4i4!F?L?Tfq%WwezDc&X>eq>#DGt?UibK9Y8)7Ra+^EkBsG-cWI@SKIBTRb@@`g-g zqy@edKG1bW2yoc8bw*$-uq?EO`*D3gCWi$&x&_iL1Ma54)=n_%k=I|8GyICYJn(r$ z7Jy^?PS7$!2CV3vMLDpVL}rii%c!~2 zcq0nVT#a@%+fj96wrFX5@>6yb@TrnbKJ%pddNh+Cf;H}seJ%|8oBqH4FNmNY2BbbB zmh`W~Y?Wo+;_NXVw%K>oKOoxbtLQy>;a6tgS1BAncii185=PiyU8NngVbOu)+1WJQ zZXNRO{{{`v4M$=apAhfaHimWg2+g(HZKikORq;k$xB3$?(1I@VEl98NBq<>y23mp8 ziu6t(vM*pr(iP)FoE1Cz?T|jh=AZVHr~WIXy)kfkUkqG65G%R7Dx?7@$wT}@K2X_Ec__8ymJR;x6&})xyz5JVHlA5@g2jf zVhx-<#vg5V$*^K41`Txgsz}qA{oaXLjnui6>gdQpHod^+f8d9^;hX}ZG&`~SaJ#gb zIfxHRZQ&UyWcmzA@*FcOjhN)g51}e9&uPy~9$=`aB~Fv1;6_T$b8bYzGm_b^UXX%a zo}*^Dam|)-QK6SXO>qe6w;+-=DDypTn^~t433gnK&)Tk4{~+B8E!Fld4>Y5r4eqUo zYdi)e*eM@1*TNVwHyZcK4Q7|x1QgE)O>(fk!BwsORiXlo&Y#<(t;3JV_d=aRUBa75 z_R*q<%24lY{BA<+>AMlD2^lRW2UiLJ(HpIUq89Tj#+1D4ih4nAUQJTN`11iUcum{a;%o>AH#Kd}_nNuL6_s~;y(LA`!Qi;^a~s z#-I=8VUtlu&|J5I>8r58d3p8-_9tzZ!1{|0=G7!0ot) zoKL*SL%$H>i?ca+1!(t!EsjHUgFE?m(!oCdx9MOHKcCLd6kIxZ_BW6%SMN*QC40!~ zoF!Qs>{7XeZdRy!?*fO}@B9z6Tm8C)(;=&o`b}8BmH>;4dc;~%+sCXG92)55>Pw}a z=~8iN4V((~<fbv|E4%Jb_zfQD=KThmwxuX6l!8KNExkM1r{HlLD z&0a~6cj10iCQ05)YWtIv_NGHymn0o2ho(BTj^x~q674q*tvfllvqU2ftv@+;fzqrj zt)Km3+735#M=&;(WD#Q*34H@cAak2(E`2u%{=br>jdU6(k}dT!NzxtBVQ+t`)X(8J zl3xl#4@B39nXEsAXuq@8+Fz230IESxEy8z20qV#*ZQP#1`V=p4O0Z z)PcO07V@Jh-7%$uPMZnc131SiG}tmkO<6U61iGyZj-_Y{rih$^!&&M}8tCEYtYhcw z1BKvA=zQuhlx}W33kN%9j;QHWA*<^?boJUVrUuuHoztK=8TcU}&0L=vWX8_HN?n*5 zEE_vFOV@9GI5k)~c8+4cZ6WE(!e9UU)L^;A0hr-BJLm%Xh|Rmv_?hjT|Lh<`ZIJcO c;+;)r2g?9UiSye(U1y)X+>b9cCAYi&10hr200000 diff --git a/zapple2.po b/zapple2.po index f736aaa5868397f1b7a3f29e0752c3cea5ae38ad..9298759850cf0be352293915c8f14a67dcc62869 100644 GIT binary patch delta 2717 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