From c374f488a757e7c393d542f56ccf3620ad86e415 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Fri, 25 Oct 2019 23:19:24 -0400 Subject: [PATCH] Further code cleanup to parser --- SOFTCARD80.ASM#040000 | 40 ++++++++++++---------------------------- SOFTCARD80.BIN#041000 | Bin 43011 -> 43011 bytes zapple2.po | Bin 819200 -> 819200 bytes 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/SOFTCARD80.ASM#040000 b/SOFTCARD80.ASM#040000 index d03521d..809bb09 100644 --- a/SOFTCARD80.ASM#040000 +++ b/SOFTCARD80.ASM#040000 @@ -2091,61 +2091,45 @@ CSS6 RET ; Handle a non-space character in the command line ; Character is passed in A +; For all states, emit character to PATHBUF. ; State 0: Do not emit character to FILEBUF -> State 1 -; Emit character to PATHBUF ; State 1: Do not emit character to FILEBUF -; Emit character to PATHBUF ; State 2: Emit character to FILEBUF -> State 3 ; State 3: Emit character to FILEBUF ; State 4: Emit character to FILEBUF -> State 5 ; State 5: Emit character to FILEBUF -CMDNSPC EX AF,AF' ; Save character for later +CMDNSPC LD (IY+0H),A ; Emit char to PATHBUF + INC IY ; ... + INC E ; Character count for PATHBUF + EX AF,AF' ; Save character for later LD A,B ; Get parser state CP 0 ; State 0 - eat the character JP NZ,CNS1 ; - EX AF,AF' ; Get character back - LD (IY+0H),A ; Emit char to PATHBUF - INC IY ; ... - INC E ; Character count for PATHBUF INC B ; Transition to state 1 RET ; CNS1 CP 1 ; State 1 - eat the character JP NZ,CNS2 ; - EX AF,AF' ; Get character back - LD (IY+0H),A ; Emit char to PATHBUF - INC IY ; ... - INC E ; Character count for PATHBUF RET ; CNS2 CP 2 ; State 2 JP NZ,CNS3 ; - EX AF,AF' ; Get character back - LD (IX+0H),A ; Emit char to FILEBUF - INC IX ; ... - INC D ; Character count for FILEBUF INC B ; Transition to state 3 - RET ; + JP CNS7 ; Emit char to FILBUF CNS3 CP 3 ; State 3 JP NZ,CNS4 ; - EX AF,AF' ; Get character back - LD (IX+0H),A ; Emit char to FILEBUF - INC IX ; ... - INC D ; Character count for FILEBUF - RET ; + JP CNS7 ; Emit char to FILBUF CNS4 CP 4 ; State 3 JP NZ,CNS5 ; - EX AF,AF' ; Get character back - LD (IX+0H),A ; Emit char to FILEBUF - INC IX ; ... - INC D ; Character count for FILEBUF INC B ; Transition to state 5 - RET ; + JP CNS7 ; Emit char to FILBUF CNS5 CP 5 ; State 5 JP NZ,CNS6 ; - EX AF,AF' ; Get character back + JP CNS7 ; Emit char to FILBUF +CNS6 RET +CNS7 EX AF,AF' ; Get character back LD (IX+0H),A ; Emit char to FILEBUF INC IX ; ... INC D ; Character count for FILEBUF -CNS6 RET + RET ; Load and run a .COM file to 0100H ; DE is the address of the FCB describing the file to run diff --git a/SOFTCARD80.BIN#041000 b/SOFTCARD80.BIN#041000 index 03a18479bb3eb2fd24e6bec11e18392087778832..2cbb4f48102c59aa86d12917378dde60ceeea74c 100644 GIT binary patch delta 990 zcmZuvT}V?=96xuPO+{B%Yl*A1GkZxf>V{cURuuFS;Y;hSx(4-9SoE?;(87pzx9i9pjeA zRo3D;gO)`7KTnG$)LLEkY$(q4H(BGCil+@}#*k(W=|jKk${E4(oq!su5(3Z{s;CbqBRt3*Pv(g~U!wtn<7cl6sib=jmQaPPq z8zd&pk7k=gS^?4&G21-mz7kpx_1d9VDgvA#u%uMlrU@PcN4TMasTTgLY7ST076~?? zJ-pqXYt#V<7oN z^UbhpK=aMA>!s%V0FN}YbR8Mm6s3=&Vz)tWz}4t_;SfBH9`ObYH(Fq3u?Cn;^eIXk zI{ka4n})whx@GteNVlO*uQ`woqIA`|!gFk-Q@SmY5#nd{M8*>(D`kP zM{-0#+~7o_&pU*EqKCRXda%YOm%U8s2g delta 969 zcmZuvOH30{6n)bc3Ir-OSW63}kE#g}6o%AKAuJ$qV+0@ms((qEdp!=*x)U?6%j9i!CPyltgZjDn!Og? zwum>N(|c5(6cXWu*J?_{3Lcg&Tw(H2_L+0)3}X=W+NdLjz8dB%H1t)ejj8-~tXwK3 z8^T}md|yibQQz^}YG4n7I_j2~v~2f_au%YeEbuVeu&~b;Z9D|HSanw2!|F>-c*5t% zeV#Ib_mxLN?LHf`H#u_}f7xFifsy`-V-CQZQmF}%S)Lkd6{x+qZD1F$xf^H$gWxf( zNK=tX!MRGWDZ#l$uUCRI3ZsIOcSM{n^OJGEaabbbaK~TFT!yFq^QA7S1bwGwQ2|UR z`sOFK{q>FPq*UL;hNSw_>=SSVD!8nhbeL;_te6|c>_xh8oRQnpSvanddjnaD8!7ez zTGGk`=`0-A$%E;HmNMkAbQZ>4NZsmzhj!kE(ZK$^nE-8zMD?G_7hyh7Xf%tY(i5gY zl5DiYufWCpZqaxZkq+w58`3RK-+)%p)Ok0^>0Lw92qA`k$cA3O9SL%bYluejvmmE& z4GpXDj2z^0Ttg}+K~#eT{oR)!r%eKqkYiK{vL_YH7Mce+ T4JE7S+<`ywd{w9f77Bg?UZ9{y diff --git a/zapple2.po b/zapple2.po index a3f8b720d1bf2aef44ad67cc7362b267fc687384..8df1e3ceb1b496cc61321b99a8ab689006d89627 100644 GIT binary patch delta 1094 zcmZuvUuauZ7(X|?Nlw!?_HHvPyIagj2V%!WuheNeqHM4i8GSLr9&~qtzF0c(CE}os z4D51~+namtT@Qjo&59OOx(XvhHrJ&Qmdw-XVD0{Jq5kQf3=G`fOy+lzRHgXv-Sd6F z^ZUNeu;YY5*4Qxvk4S6mjDe%WDVJAFLOXM6 z#_=jVse04<#hVCg0Y_V*-bBnh)XV*ac+i>Gx*gJ_?7o3_$g7krvv3ZN3;=Kae|g7p zz`I9@$0l?5`Cxn5B)gcyYNS4H^hFa7_s(?;G0dS-=>roaZE1_&xVSVuRAOIG<30Q04q0>K5yY1bFj%#~Zla&w z1gvcabQZR7HnQqosC{cCZozTEO5BFydn<8=ePdy-Zzo-Ps=&_`lo^+wVXT06Nw2Z< z1^h-ltgJgj}rhHbp(a3hTxgFEs2pli&Qt4*o= zo?UJF$|r1j>9pPKDxb8)DVOtYz+ZL+P{m#vd4t=kB!k2|zR1FWdu-9h+xIQlFr{vb z->PBrz1a>0Nzp$3!>M*vRs0mLsz7Q3N7fK6rQy=_KO=#Tv6j>A<85zh#(3qa(^6@14zA8RW4jOlrBiEjGzUvWdCu7eVZvQU%>S$Dr*r^KyM-0`VS7x-Qs`lSW_xei^?xFw1i`o+?m zvVN$9Pb%Ga9y&uowS%d%rZd#-ywfIHvOS$_N?pTfi1B$HI^{W&KIFkP^hc2Q^nZDK z)5v>f(s_O&4R81x%S`@b8kBGyICRq5cR*?Q`xzW(Y3D6 z?u(R6Q|a3oh_?N(WQd;WD;JJuP}0i{@y*6hqkUz5b`&IoBZQ%8dp1MQ|q z&nzn}EH518K?73ZIqPEif)RU!$3-Ld7>~1=4y64RV#VXd^E zf0u7yyGAb6 zB>Q+1m1-XQbPk*Zae7x_%WI!$qEbz^$C?0JE%sCsm1vT{CxFnUX$YEnAzXwHBWqe(#?x@UJJy>T~3|oCUyF?U-O!`-auCQue>H>J=y48 z|NB4ihHp%h+!bQwQgX8+GNyTu>{f5T`cHmmOQDOw-BrWh3BYK@2o$^%FI9he0e$?o AmjD0&