From 2171bad1c991cb10907d6199fabb6a271779b215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 31 May 2019 09:31:41 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 77 +++++++++++------------------ BIN/SH.S.CORE.txt | 63 ++++++++++-------------- BIN/SH.S.txt | 3 ++ SYS/KERNEL.S.STDIO.txt | 101 +++++++++++++++++++++------------------ 5 files changed, 108 insertions(+), 136 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 269226312555d02367681915d9edfd267aaa0996..d31aea9936121d213fc2de12c4fa7db303f3caa2 100644 GIT binary patch delta 36429 zcmaHU3qX`b*Z=G;iwn!b-gmh#4~U4m0^Yzoa#0ci0rOgciee!eU}^QXY{{c}ORXI3 zN|qL-iCWq{voy6E-Fxwp-OS92dV8z4tp2~5d7foa|KIn1$unop%$zxM=FFKhGiRGG z{1erT|Ju)nguI;E+qU<7h)EOjN@_ybU4QA*@DUw$SKrWNKchh~E zWg7Ecmh%ht9yZ-|hYQ>XVHT$33s+|(%EG^3*`VQ?D zVth}#rEcz0e{vQ{dY^9Cq4mUlpxrXN=6ZkLqH8l%s z77|0Jc1uH3Bhep6G4}~NdZ*UqJE`5$STlzhPKmtu)7lD3h4apt`2+5{|Pys>@h0r)~}j`I_DVmH zI)LPSN00B+W?yq270qenUHcwQ8Gg`iX{ugIOh0P3RM*e-C#MW5B<3#dmN^R-`;+s$ zdASt@#Q0M;KYnI~{)0kGtBLU!z!%r~z1c+nU%-=p)zZ&&?&uPwoc*_+d>dcWL`=V{ z4Gk+K*8c_il3SVExBoH{{)g6^O<5NVe+qWF|Dx{|I$iO9Yk5EH|7g?w=>MGS24t?T zy)w6WN&#^bYTBiBg=usgB}q#M?9zICAv%nFH5+-SUe{v)^J;76Tt|$dx&SYF>9!EF zL0}b3EAx&os3gX)K)yX(*FD&cO$~FGEG9-{AlqQlafbAc3~GnIwM!fAiwYn)EU2S6 zKi4~62vTKDV-qo2kq=??W)i&(G??tVEsGjJbV@b^*a3*$se>?ZSf00HYEfn01mbX^ z9Sl&nKsMGAy&Kr!(K>GqWg=*ZVcbX@K(b?XOy1Z?t_hZ6j7DD5_I7Qh<*!YfUwi$~ z;Wv&PJ@)2XZ|^L59`o(TO#^f$twu*RyCQzt9;!>Vcy`8nwodbqm)cYJobF2WY@tyZ zI=3Tgkmv2x;%}uYPixB7RF*y3bDWOM&<)poOK;534aA?vGIT>VZ_`s5y6CZ6`?tro zns$Hexqd*qbx&tUXzSYDof*2~X-N#4UA5;!v(+;)xy!UQ#J#)oTe6|^$gz%Jv#UI7 zdwcFr_Uxd;GIfhXp7-p0fj*h3%e5wt?b07J|L(3@75>C68J^Rg_1nEVZFt0KUx%*v zyOiQ#)FA8P3^$~lj_C+1{x|I}>+&@T^mPcw7>1F|kcqq&7Xu|ik5FH5&O-F}FuXLjM4Ke}#`BM!-S+MB^DW=Eeuc5ogRvv&>v!m;jkr1a zXhFx&BfG!q@_O)H(vi--CH9@)k-)y4M?GC3=nVSYx(4LUNNd*>pB!9#lulix8yk)u z_d@P(o=51zt8`LCUHbZ{-50uSyZ`pwOy32DW;`{o)_L(~%xYblrkU2R*2VStyf1ju z9(U+>!6e(GzaQ}6b8-55gNNs>{|Y?*oIbf)mt_3BZ}YF4yYw9J$!cA~6<_wEm6{hnwKJ9?l?-?#Y+v^KW&?1s)&Ri21`?O`onvp?FFuNYQ)=*kJ3 zH+I%m?dj~&KfasMc@R@zb3f0t{vNqMeYMu=pkpn%UbOjJYY44fi`llBKC)I}+Ix?!E}LhQ>P`NC7Lc;vrY$$J;N^hXZ#?)Yuz0Z+?? zov+fz@6?r=-ssb&*}8{K;&9IuG-SPQOyn7FtABUraK@|R-@SD5dY#?NWwF`3=X_V_ zqvyAM-yFJQpJ(TO&(>R5$z#hewEQLi-m2Msp(A8f@fk18xLaqZkFD2bxX*Zx9BCt4 zPcytvmjB)I51TiCcl=3zTCc0s{&ygqxj`4BNu@Vz(0NMsr#6S~?kxHTQgp6w$Gh$- z*4FYLT7E>bYxvPo9evTp`Hp0kOgdWCHOo_&-EL>S-^~7b^oMOfZhamtRSC+!+MpX7 z^JQNq>?v)8W1zmRt&A3%r<9J~sPm)g0~;ZI=je|cb-wuDz35_zCpEi0?Px`Zq3xg6 zyEb$-XB;i-$nl(`tMAhFivnfOx31pZ*`*b&9J))FIN*0LQ14_cL-}w<_ErNU1PlZq zb=&u>^=;?bzo^G@w=P->*7m8(-XPvo|rH++0#+fN%l-qr>1wyv#Tfq>;-w0ybz ztCp|Z4itZo&N>&v8wB5f-rB?n{BF;QGs^#%$}=$q4-(hv3<&jn zI%xgRO!T*&K|$6m{{WyhYQx9uPbB{Qm5#5LFWEm|unPK)IU3)UeAL~QxK(>JuFG=N z)e(kFUX;&~J)OgkbzIm8j(~^l&L>d7-4V5Fra2sFm|1;63Fj8F+q8@qiA-!_w#tlr z+bZ<6-PC%P4QN<%n2U9jRaC$#a&=iz+3;27P*x<15#RiUr;x7Sq)Y4bK{|NNP+c6e z7cfmqlLx}0QIE)`pKa1Pd?1DYzo1)u7f19HC}8WajIFAue;X_>JF-1Hb39wuF={)Q zIf-5JcQ2}(KD~-wRAosSU*$SJ*=b9koYGS|9Bo4%6e_- z42y-@;`$2elICu)yT>q6wq~&Qyub|9p;Vy_R55kfWvcKzLw};W;`x^r4EetbLIXyE zjjsCkM=bt~DRn-P!UL5L>>c_ixs1 zcYqSF*}_mlpgYy9sate6`_81_0eivoLw0){TicGtb%d!iz{p0u^(#v!A9IMQgN=Dy zN93vu1Egv=ld0mr(%W8#A_jd{R20E5;yZe+Dr#m@)pi(JC}`kNC+gHQ1ChyZYi|8^L+6goo}F8Gg@cZ*3OBGmg{NK1 z))^)&i97D~?7WX>yG46@bK1jO&ra^#(7ES)bKkaC8D)LDe%rC#v-2^IcV6Imhqr$r z@L2vQN3ZJmfNS5kJ?D&lyE1n??b-PZ@acy8bkZbX+*|y6cI&s$ToJA3z}B;w_>b|3 zl@4qD4pcpH%l#hFUQT;q>suI%sE*Oi*`9Mb?ZcWg*`Ev!-E@CMa`w5tX;p2_;3#1_ z_2^Yyzp{$9Hh;$xU$ewL&0ny3kA}7nd-UA4@7O8?R?fUXVtilZp5kK6b<_u~glVZQ zzmOvbLOOo&%o{a<6?~$0)MEPP{SgPWMJ06A0}(fDYBIU^-LJbNL9=cDs^@i&hiEG3 zpjUKxnt$!T@fBUEHmrpl*?po#lQEXo9n{734?9}i)%3Xe`k1Pn#CkNm>jT(h*Lb#n zvyBw}(?Ygs@UP|!=?FQa>6*Yw#P)BGV3?+^6ks*Ki{i15o8z}>H=bzKY}0Kxabz1| z|7bRxfZ0eZ4(jqk9`3yVL3-~&o!9bwXP5EVG4pSpO`UDU7`0aV?}NIeUJrNv@L=aH zZ&A%_I$O%A&hGzx)A>#3pPetg&^f`g{A6=4{!ww#W2V`!=_=gYPOMKa{_VR7Z6Rk) z4Da}}w#swwxpw#3+4PaubiQ6Ej(>6d`{TdSzOU;x8hj@h_trMk*Iw84vvr=>s(C5V z-eov@I;rE=wp**#eMB{fbU9kxNjmb7PSSYkHHUO=-|~~~kuxC452%t{TeV!W(} zuBt_+O{d&@v_%6tLOhRulU;xKBr_+pU8$a4-?S&q@SHk%Q@eAwwr^C;1N2wW6pAY1 zJ^#=lhjsmkNpKF{K_<7v+e^goAnuZFDsZ0$Pw>>E07)QHd8ofynJv|TY<$xA!8AJIh` zU+xM!d-il#$A8;y-S@H1Z5~s3{MU1%&%bm2hx3&`&i<(6qr}eG&JR9X`%(4335h#i zdA#BHzmDI1yzTgi6Imx_omg;!@c%n|D&ey$J|pA`I`xb$-t^CjaVPtn{QQLRBq5Id z{xiBJ{l4?M`E$**m`q3=X2h;#L7$gXQ*89cvXGHhH*pP6;ola%oSI;zhsr`~%-;-D zq0#v-r`jS{44)jbfB0m*bv}GHC|vfe{tS1;tQh{Be*f_2LJ!|!JkjE2W8V^8+q`dR zum9?{5AWsK?`|@k)of}txwp^i^+QN#XlSpy?))I5m%D0R%{h;YW?W(TRdbg1nP?aj zw(a<~>C2b*_ zJ~d9&#L;P=8fTdsj;}XQ*mj-g@2_enY^(KD?tlGLW2R<%r}5x^cPs12qv*(k5!#6S zfz!N`24#6GNb-x+ud%vq1?A8sXHuLep9!5;Oz6eN|JM! zwzWoNYu=z=v__=(j%sTQm(eopGj3#1dyyJ>Wa?7XVPh|y(d=v=zx&Gwd z8JQU*a+{jU%*Z5>+q+Z9dn}M*n2)Qe42IdJ-QrWLLGsB!CPUq!rg)`0yHm(}Dv)BB zyVMk~v^|i@%p|VeD*2OgD<`butnMd~h&@1JY#%TLiM>i99p6tY-vhyuXO!+`Fm@xM3J0fOirqYK)O}2dFG=2JQd3pZf zeqx!9&s_f~f6Baheh4SA%}@Xt{*uy44ho;i&@24IN!ToX`Yh(ajK7LL9BqlqyIQY0 z?V_sm+zVDz>Sfi0&(noq}snmprb1t7O#5-}~ncY1nJ{qXd3V!alLD&|Rqb|dBKqpzE*qV4 zt*PI_D~YY~lKNtsM14%}<>uw}%euY3=0;K2yhQczil+28fF%2k+ARy}m&t;pTC{Q{ zu`cadM<$70Mh9MJa);i8645u)N%)4N?(^$RcIUqUGT+*x0CD-~`s++iUo&&dS5D9M z&nPRZU%Z5=9^&?23M^}CAg0?z9my$q8N{(1T)4!k+M<1cSY_^FXP$m<&MNL)T_Ger zab>{yzJ_yj2KD~#itKd<9OLlnZm%;L_PZZ7eXF_49O2r2gDE|_ve*<}Sv-jSGnoC8 z#s2XYmyX}>xjODN!|Szut4V7-u`}ss&-|~MwZCt4dLEobV}gBC;9snT(0BaM2Al#N(&;^)e+I zZ(~3<8~WT%5A`yo#x55CJ{wx_tSr(x0`Q7s;bgLZ)NrDx*9Kv4#@0}qps%_o@5cj zi;O2riTx$U0F>UhJ?fz_^J~@Q`rc^<*tw&u?5uFbu3b_4ckMFYINoNzLdUr`qYTqK zYk8x;xReh4&79(MmIPi%56 zg9E{G;;vINvRi5vE{3>bJp~_#yIw~vTcaGlsKtV>eDpGj>3ZFknnevb3!68OL^TBS zmROpCQNe1{k|1Qu4Z+CB)!zt;ElYLYK@^?C(g5+mtXu|y*c=*6EH~-4_`0)D#C3Ck zT5uktZY2x z{@Kg8fu&!K(qU`3Fv!HQ79|vE7^sTF&^v=zoVA<@gbxzYA41!t44uDzQImgJO;b<< z#I|1WUY$#~HxlDURudFhCb8TVTq)S>xVtAhrXJ2NH;IWBMT4+m5%@M=f}F%Bs^MNy zz;a)30aPD-|K&8Ti25_i1dhV3zhyfCwd;m zSmA&=avM8pD?S9r#vPEcZ_O&YxzN_9-2$e#LC}?b4+)6MB@tamk!HHI0qX z$-4C0nI+BIAYr?8!ctDyqnqeur@Mfz?l%2uMf;Y$qT?|B8lmWJBVkV~l)Ii`g!t#z zG|lm+sZ8lh-1`7Vb#XymVdg3c-!BNyBhs^U(*<+VxaS0b_vCqet39#4fJ6@y+VLWT z1WahwChY2$l%BqPNl#zt(bEG;Pvc)zdb;j1#MaL)|HL zB3ch))=IFE$Y_$ z)G}I_8QDU@-cxuV`95QvzoKGJb$ub}{Q*t++ni$jkO7%-Gxj4|@wa)5?_&Yr4E_Y) z0S14HglgO@Zfd9^#(y)2*Xyk!(Vc>11+gAeE2%xfBSiT0RvNXRGpx&7ojU?&}09D-D z@i$fx*Ec+=8f}e@@nGpZSZ!wk2Qy*8Oert%i<=|8zolLOm{Y>fDFQX-yL%EWqcz{( zbCo4t^TRziTRhq>9sTS>v-6(47E8oWs$wP1|J>7IaYX#00J4bV*L!}l*iFAFfXpnC z`af#bSbF>Z07zUWin_q%MJzvA#Q2wz1GV^fa1QjA@gL+dMW0DxH6h;2tWAN%DQkJf z;_5jy2SU6gLK~tOfmp$GA#CARDn}KP9_0pa8pc+KG+_|+y}cS5yB2HNB2YAjM1-O| zzkLE~dZ~4hjIaWwo{GP;?{)I7_DWXCW2m}wMd#sx=?Fz&5cru4kiY32*0Fc zu!z4#E3(*XG6>gMLZBnrI5q+2_cF?7KR#eB=Yj|I0$53eUp%+cn{6iS>oJD$iqb`fx0{|kMvJQ@r+IM zn$SpRia)nuzJGDUBBn`e<`QEHD9zc#H+Q{5xN)17O1JAQeSCdFxJ9KdXe264>3U91 zOCG#|=^@;tGW25u01Ljq=%$Jf3qERqAcc>@AYvG(U}ju`8J`)92|IOu4J{6_7$dV7 zd>L#9jBN5?S`%WCl7@uv4Qtv&uh1J;Oe*WYv@bCX74(-6qmPGJCTp_kA0d`_Urq@3 zT&c+3d}1Gd5vU03;)si2`T4{)@*-F|?q?KBn2c6DAPb*lr+) zfrYt(;;3;U0rHAgk*K`xWImGl-APayRnVOTk&%Vn$zn2ae0OTfDz=1EN2n!Xz=V)3 zi)*Xpis~C`mM~7XwS^ zouL+QVkxhXI456R#ROd2%dVg&LM_7*reG%0#dXVMtaJX^*kJ_P_7nG1n%T?Z%9+L{ z52Ris%c16eUQjPk1Rrs%5u3_6tG->k!lKWVDp%DBdjq*an&`2um!NN zba72Ru`EG?eFe7pHvrI!FNIg#NN0yxX3bm*h`RhmEMtX}{cK%y-GpytDJ=3=FIn2O zY;g_L|IGm~7QuN6@RlCHy6X8@K>GiSMu%JaX>O$j;gFcLE!Yyf<+vrE(mQ>B{^g_6$AZBQC|VEtf5FyPd3k|xsyMoS;f3cA5)N$s_gBUIBxMoY}52um+* z+8y+BmcNRIMOYFCt>*dtmyXKJ8Z>x_AA6>yqf!op%ppjIbmWY-A(M3@bib*ojsS zChogK*lxABcpTtt=)8r+x#KH{>z<3@mD9@#NX#axF2hx%LNz9#kvAISp~OVzzdZw^EqtBuh`P)SnH^LsnwA41=GFVwBge3m+*EE#dnvsP~Mce`WC;2+}- zndBE}b(BR)c!_aTv;_NgC7-=7E9`W?LLZK@xOyKzf7#g-Ux*vUwnzBsUPTV)=dgqH zWRzuS>}vwRx%fK1RW3RXh0yn&G}=ZU2C#=oYkh-3m@W@E;*W3~)z-r;?CQB-?@>t0 zNsCQ$jBYSn9N}*&Tuyk4wwtjKz8zo^mpLxJ)^`KUWb}KBh^-@lHnm|vQ;j!=guTzL z6m0fBQ2HJHAqapNag5+iQ}jp35Kv|;H~O0vDGtkz!&wn-)PF*+v{=T(ekuT*6aU6{ zfD@g96Qhm;*pm|{7$lezu9F-mz=<0f$za8)5b95lwIzRsIX%5Uo6yWuYUHFfLDPnv zRz>i0I@D@O@O=^JbvJWtUj>*WSOH18n@CjRcfoli>U@u6-|y+qR!f@i2fm)jJ@#GpuI|PI^7)fG z-G2sqFiwSaINBiL|6wUM1c|@ki%;%(EGLa?Kt;Uzjvx{L6^MLje#N&K8Yd2genYC~ z2>ecW*(}cR|EUc9gT8A6L;n;Eh4@7NrJ8$%`F)A~Z)9LqhtUDWRaDBfmh&GdOE_{= z&v;=m+$rzP_u9BruW8iSSZ}I z;6g=B&2?m8FDlzDUZa7*7%#?z(O2x2(Y|m2;C(jYTNOuV1QJ3Fv4Y-MTT?%WNth`B zE%q;(HxG+r6|qJ#V6c2Tqc~bXJ{v(o6$vvl4>~AIu&`q>M%Ts~W{F*NE*4>Bo^@=& zajmNcKPI!?sH}PdBw?$Ay3@$x?(Gceb9$S#6D(=491$F-7sU$9%e(tcu z*2E}&<%)uWiC!$;u&pCvSySwRL^g?v7YB@KUO1-vlE_5nv}VV)UL3wgc=X(!_GV=e zQTGX!U41w;VYYWDY?KqE*A$LyyK96Q{pz#jeR#{Ab(0YqEXvT%WU3 zTe)Ci4Sdqdjf%=5oYmM)X!DA_wRy#WE0;pdCm9HiZuRQMDV8p-saMjr&sdsYC0V8v zaeS`jPfCjFoAMUURq$M22w*KX%vX-{Et$7M-1KmMCE#Thh0JhXDWI;e1r*3d^^gDs z*>*;N*`pV=v2VITrHhruoOsQ|URg0bRH0V-t$<=lqMz=wn|$ACClpn9YtdQdB8%-j zhvYHGmQug%dk*4Ms4V$W3td}Vq_V)$#nYurnv~lsmY+DFprJtlSbye#vIUE4l$NCb zXp7QHz3_krSe?}}Fu&l+fn`Ny1xuIC${>bc#OZL-f9ab2c8~d2cDn~Na-FvT$78=~ z>F0Yi3G%b{?aw;GN7vP@WExL>%7e`(G2-=>&_P6h4oBUF@7OD_WyFBTTiCr4172=5 zEvqKcKWOO#uQ^;29&atKt0sE9+hUKk#1;{!bUzC^QvRc*AHU|1#%>BBr(a{_Z(KbK9<8m2|rn=`{ap(~>2>uGM7+d1A?8<_0+1wb`i3st_fn%J)s zdbo1Y6l|>;@~Rtah`tU8#)WLEg9`MuUQATOBK`i%(b{^=_QQ_QF*Oi>Vulf+9;D$! zmDs*l(^wh!jKMQFY~$Yi0X?vAVF!-`jh~f89S`6B6M{px zUoNT9_1_TMHOy(BVE;9!ctuT9LH!NH_*=jzF#S&$1^mHR*dHP3o5kZd;SbYaK<&|g zvE4HL3AOoPGz4gwQmP3y=I#nyeF5vF1NWGrD3!6Fto4(sf zd?-&96>?X)Dj|@@yr!ij!GM8*vP|}+49-|yR*jQzc!goqHY{OoL}M7TnHzBsu^2H_ z5NCFEsuJh=#2CSbpFcQ^j@0A)E%*tX&@;pmrASPkpoSRDiXec$7Iess^`ARG$oeJ{iqHDf)59QGXXL?>q^zcBpc;hzmZH#~gA&%-q%qDI7yNF9+qqGZJGl=M_x z>cN!7BN|5(dhgCE_jU{zoN;f)yg@%_yq|e2bC}nhRhju^<^^wC=4S(jX8bZB-a9^P zSC(#Y(%^}MHxJ%F_}jsIhwU9!F!aQ*KZZH7XAMmpmN?Aq8yS{vOOH=a;{WwaADEso za_GoIIUnX6&#@0r8eTZ^mXRAqZX5Z^$iGKk7aEsZq zBH2Sz*{h4LzU+m>hEDciX#jr+@fB{{vsWCQoq^;Zo~S|1Gd;7so`&A-2is`KpN_2F z&w6$~=h+&{?&jNf@B}LrrhMXMp7|xuNILUR$F(^(OT}4In=ZSGJ-6%972A^W!VFLL zJdY>0PZIC;3Xg_#jq@B&Zv7G$?azxRGCSfPTYugfv(M>#Iog-Sy-{n3>W$K`C77h^ zh;Vz}Nw`U%x|*2=Sx>m$GHoEj@!Mx$A7a~hDc)TKdTl8&-!1UiJ)+76Z3+ z4RrL%@X$2FCLlxE87Sdm?A%P47-K4wHPp;ourya@D$==ymbIGgR`b20O69bRIPRmL z|7Ew^?q`%gAZpS-h=lVYUchH=Rmc;^W5oEdLVE@Y+e(z#`3Mmj@lioS{5DQP!P1&J z-n@$GCHzG%EDrWf4BJs5GshoO3Oz0gCA0~;3o17npuF(-~%aLa>vZ~dGuDY~P-T_nxFoWdKYO0+b1mr^>f*cgbYk((>|pQcIqDfEWt?t_i8_6s8iptSb^2hIGfs1ezL4dN z^&KYSJue%0FsQ7&s06C!22#&j&G6Z$t%LHJvQAO6F``gU+ngiODq^aRK1?=s2g zP`dM;(w+B%h|D5U3qA;<5lh^M-QD>p7?XA9<6u;_9)5zh#BqlHQ%2ao3A8&?`r(~K zb?zP)GLm_MzC6g8;X5gkk*8FV@n)_juFu$ra@zrHC~B;@aY56ZT4Fq{aA7DOlcRpq z7erZ(^ZF3umr6%rD}RMd^VbTW#I0XqJfjddgy_FPe$-hu{ywpsPeb`{mGWTJIadC= z;PTUm@qBmr?^*dD7}rJd0u=vIDLxps3M>9oaB(~||GB&Pe^~Kf2#$m1__#Gu*a!P@ zrF;%9H~tC)*Kdj-Fq^Ru4%+epw&{xaU9AU?sQ(8%`yT}NB)Ig8hxQO()1RdKdWrRd z7^ZIXC+05{$=JmBOQ#HVMx`46RvO1epnt$qjF^FFxFXPNG+3s!8t+g_AGWw{I+sp! zx7)6D>1pXur=!3gsu6~lBCqUqxxN?5m<$?aa7LkbVZdU0CDyxehLg&Fs(wmTvz1-3d%F zo%Al`N4Pb@jGCTHT+#UEm*!@aU0K~wQoWG=Gt8+UW{&|}wUrd>#1Jc(6dtcp1wBEd z2)aHI6-RrhXPDC+nuPBZiH;uTOioM=s%J`lqcEEcDWWDRl{OD^CYAIFLV~5jEvqy} zH1iY?Ltk{84N|%?Nc~t_{WX|0+!~yo+p-uwAO8*2bxUgSNP_-2%;_BNMV;)@m72>h z9vTK}_*xU2p;2`*S2-&phRG>#fGh--v~K0L!|FSCsd>SqlWnL1(|6)0pI-Lp%fIy%Q0ot(!itz^*%0t=VY{i)5JWHXR}@C8qV%w4Homo#5M`l6c?}tl>I8PmIQT#0g1B= z5XSBvc>2j8!%&WT>J}4|u_7>}&Ptjz-08@f0ti!~S;T#1U_7V#i@k-DD!qI^?3kv3 z;!@hjr9OTQ*g2iP`@P;VVg{(gS^X*SXVg{?N%E2KeTHvq-bsML>G5@or0 z1;o+Rv(x-4k$wqK%{OS6xz0vM$m5Md9<}zR)Z*9M`YluX1Z{N_tNLb5_XPxY=~aIV zpwa)*K!wxEL!GuM##@z+BG1Q4G;6%WDBD;lT{8NC!0t=J?{&K(8NBW2Az0g1iZ(dF920#NNW^+XPt*RQO6&#~AJq5Zh|#nt*RdSY&I!M+kEGT2&1h)`{^= zx|5nlIX#i<6{bNEJ2pb`o{qBl?h=es@62284&vK9xNV5>o^F0@LhlR+RKs@G#?9Tm z-U7Je-k_4$PI8VL@9Qpnzh(t7JrI!VTs&vdZ1JfBkxASSDXdW?9@=_h!E|D4WlZ8T ziCNI&rW6v#!$EB|F6M8N@W`dRtw%tR^HHU~9!2%rG!GEhc2*_hJAHhH)70DkSWtb6 zeh+_KWuv|gwM9R{w7DzX@T4+lcF>1LI}?06(I}fEIey~Wb@@rsuFy4@n0Bl4qXJgL z9>CfBz~tGB7EDhE%@Nx(j3Pyk@rOu6zYj>p{V2qA#4y}AMp`mI$0mm`Maufz4(nB^ z72^8>5L_?vwK~rD65yOr68Vb47$N@$g!~V+zZ%2@g{Kh*QHn2?ImGx{chj$<=IBFw z3JAmCFf$A$IgX$T5eueU`x=i1C^8)j>Z0S#pf2KYioNn8`nOokZ?g%+C)Y&dJ4$Ix zu6L2==(t=H?*U14&hWli9*rOH3Bo))`VUdg{gGyq*6j@YSPY-%6Z-a8XQJuTKtWe0 z=YwPX@gO$jRxTy)DAl+xVYAo$gWlkE zm&{}CCfBcAkaVu!#PVQ|_+2f-tWh-L`a@7N*#2h_HR53dFk$rD=s<&kIr3!3F3H!E=|us;Vw;F1?o76OPo-pukm_IWU)d zss2V(U_b>)VcIS9`~YV{YPb>!s=`}X*1vX!Lu_FljxICHYSA*EO16^db6tS2pn>Cfzv&pPj^vQT2I>8t16hz5q$$F`)PsmyiV(w zLwA=%+p=79FI&J?BMLCfQ#?T;`gtJ0Jzq=zX>>Z$T(y@kx8S03k5%1j((WsEy6lMW z^zEinC%|>i1x&g{E7qzk* z1j4L$bSJsqAm&v;kg543YIS$IJfB$Lz*2hUWsfL`8E!288k6+{Q=ORM(o!+lF3Jkm zRv^s`V`7D8D*%~LR9HzY@NuaSZh>0i=TZS|E}~($xdM>VG63N3QUE@_dnFclyi^o6 z*2D^LmkJmMY9|sK?S?4fz$}})K|ElaeM>hWzo0O8N^vD&o-nm0b~I=`G) z;S*C4xKo%!!9k`%iVBGZelj&#QZNmDeyAHzTw00|hVx9tC@4ncxF~qfR6t=7iQ7uA z-wF2({AVhZRRrCFdq=KEFM_hIDK4yRW0J_`cTwqTUP^qE`0Y$0FU|1g!gXkaw=D=6 zl1&_ss~``r%v(AIHxBG=Dl`BjPMZ6a(^j2J98dPl%tR65+|d)5#p`kGyc9~}p91a7 z6+W(Dd{N0dMo=I{l6TREo^ndMc0BBV_$g;X9ByQ~;I>n-@bY*He|QYm?4f@@<#Z0* zdzsu4;({OVl0q{G-e2YIa;9kZ(b`>3k7hr;W0x~7_gR6<48)2hvxymQJyw>bCoQQX zX882fbpC=Hi1~%?H0%!c7XHjGr(}N#9h*=(3D3e&n0=7smuXzPQ?kB-oU)2ct~l_Q zBp#q;?btKDN*A@mfp?Iu0hZ=9x(k1NuZ!AoWOhinxS|e|yb6p~QRPOqnY6v3CfPl( zb^I9Wh`@9nWm&kCCk`y2yy_P;5i1;jeD}rWfoB0l%zT25G z7;eA7KG_N1pK4eJ9?}y%Jb}ar_aDd0AiY1NFYR`wq{7P=JF4I7}Im75&IYP;XO{<+%FaGeHH9H%**G4Ni1*&vXbm@m9x{%{DBvdW<3kW zFpb9FrCnK2P9otIRJSKtB<37_@P>$J2V8>zSCC>Q+t1TiKMk>kGS{H<2YSt3r$h52 z{bw(hBrE)Z0d#JaNI%imz0M@fe>g&_`In2h#(aT-GzbA+&_e%2|H^RPn%}7VX{Yx( zcmavye{kAgjA!^m;liJa4DsUYgx7;O;Q3Sb@a$=}uwJ?Mk6F%xh!tKx)p%##=R9K9 z(A`fvZCah!D^`YFv{%#znR#Nb7#gsYxgXE~KOldW7bZ+aA=#o++!g3B(hXmR*nGAK zwO~t;c&SD7CK!s=NM*w`s3otdp>6sKNff{d7spBC>m(Q-o7Sz8Gn+kaU z?bgc>U}Fu~S*IuS@Rh2w*dcJSTemY`A$D8AjoIDYf1vDggxzk0-;h5IfO9$qwYp-d z8D~qrIDq-ap}SY{$hN~#s61~A^eZ9}xXk<<3TxWK`jhm3^d~|BHXF8~F!_>MKT<9p zJY#Q7fxyWo5vf3DyGDi%_aZT-!Ks_Ei5*w#`?BJ2CaPnvY(?N!tZu9$$^GfMeNHK5 z0I(vx7!CGdmA`v54pbvZ=k1QGV} z*zF5PIy4@?K20nWgwqliPz1nLL|dPQAi%dM1cA7Uxd%jbCbKO7d*$Ywq+-a*1i)=) zqAx*138jG@eja=Hx*Shrkjdu*-UpN^n!MOy9CQEyUQMh{^55&?w|2u8IEiyfe073F>#jiwK9i+L6F8-Y9ya$P*Jm z>|U+QE*=%f&2;h$PP_LOpo<}~!im_E!$u!675`8(YtqkM`F(B+Vqo`OiQ9p!_=T1O z+0jBf&;V}Q!~O5j+E-HlEfF@~9mon_#U={#WgAvAHdo`FEUU6|Mh~aCZ5;;+PrBlP zx)a3>>ltTpP`!cuT}<>F0gSop|Hnti-Rk55Gpyjo3U2M(qc|cq(bgB8@h12bm99Fr zh{Y!P-ku|Dy)UTSe6exezv(5XGvNV76FiCBC;3pI9(^m|j)(d3GQ+tQ@a{!b85aE` zKyf`9SYdF1xJgW_ImEb4sR@VFa1LIy2rvo3TLKc(Mjw9389nHUK(nSDf^2^8#k#Yb zg^E^vN;r7jyXf~XIb9=nv#G5rUbg7stZ@%2W2$|K;t|BTI6L6bKLcvR_p!x?9b6-3 z&DfWn(O1F=*vP_W2YfaB2>Usuj=?1IdEsnVboL7hrSLJlc)61Lml#i8rn_EtI&)qD z`HF%-u;~Lx1^KEgp^^*8<(!7@gEaGi(>coaI$P!fW-FU??n7uF=UB@82+TI~8+-s) zu&dAP3ZnZ6o&1W^6@5(MCM;=q3z_=n4noh{)c=Yz@#=S!E-058xP#EuacL6>I&FZ9 zkco)veZiVw3XpAuk1%)~usQjN{{4#68UL}EyX`I*NtvjR8FCN<)P|0k@Yt~@vq ziRIsnRP_!+Iik^Y1_YQrNJi{*#@Q1+Yf~#a$vKvh@R>SUIA^jmWTE6l5Ow2eW$>UT znUm4^1zVvUF<%0V(}mz36(9gSaelq&Ri|VA8KBy~=}|Gyww%3~;%_ga_#8?az7u?R zo$pZtwk<7uB7ZL?a_kSZ{cvb>KO?-2T%+X>+fRzt3$iwU7R-lEO#g)*c-7h0_g}PO z{FOBfy8@QPZ>&vt7TGq5dll_}Fiji82k_GPCy1IohrM67UQlI#GYOf7zu18d{{F4u zcXf^bC~QOA7!A8b$i&D1-y);mXV3|kojXJe22P%W9h$mTn7jo0EVEwmLKS;?+6p&g zK%_au05>B)A%u&Ovm{K^7#ptTemibx)BC+UOU=c_YZytvf? z2W1c-i^OLv~ z)EL!U3zgVSWGZW=j~1tM{C*F-l|5-9Hh3x(m08y0YY;bO(iJlC?6;q|g=*{%5Yxk$ zZ39rJ!7DC?Mhy%i7nf!-g2=@cpiG6_EMmzDA~%a2S`I=UTcdH{Gni31MCTs5Wi-_68G(xM~{J`CP{YbPRjZ%Jg zK(0Z|JU?E<;k{0EUEQJ^{a3(#ZdybvhS7?oj1d&X)Afg((fYh%l8{R`9CF5M#<4%{ zUd$y$;`4YykM|e}`TR4Kc~KJz__qgMAYv#K6@`yy6N;Hqh6w_aRYY?SJ2N#`(8j~g z0h)>Q;ls|sam8A8^2t||)jWjT=-!R98fMi?r1vEH(_v>yP6@~0VG4m!;g@En^sc>X zc<&0YL}E)trgCt)lGh-LOJ%g=4Q#Y0)5UK%V>RV;%^S{S#5!$%!`Ww8rIwwk3)ia> z&2X-C8!=1~q&lzEGVjlNUR}z~?E7CJXey07;!N>P)4~I^Ny)<}vSO#J;o@5Gd~#Ct zbv6E?CN?#$B!(HH&ZwCz0xK_7R3Z_>ECDuO#bRxV+Pvsd#MMd^I((b1QNHsKu+Chi zBz)ZOERm>c1;D({NX}N0>=YTvIcgGXfkZ6u!t=I8pHVmb?;J3R)eX-(PjFW=Lgmd@ z(^HXaf+wEmmLn0hz^A5Q6#^B}*hFRldKGz{l7caVYU|V#b1x%}h-@6Uf;pE_SG|&E zu4QB|Qj*-UjO@i~8g6AIuNO(5#I8gk-JoPMZxBi&f*Y@#JCxC5gl`j#@n4q!K7zJ! z0COfw#EO`0JgK;nK|BJuaR{UqDTHq0sX`VH(7a4ZO`T8;w=S510B$_Hs1Q}(tR$G< z7s*?cBwNOjL|`{jFPz6Hd8?8vEJB~+y4>qa^aL;s?nt%kE z?p6|(0W(nXJxB@mL~o+6z6mcF-QV?{)ttV+>N{)e|M_o6%Jwdo!QstpsfX5UnBU*e zwIHq_trkanKJyx}m^1G+<^{2>70Q&Im?&pbR`fEk&EvIEIJ=Bn+1DnGY*(Du{k7DvNm}5cSWSyNWH5 zY6;i20GVw29QduE?cJQYt{wX^t*B4XUZ zYMI0Q5{8{(G15N;WY;c6c)-?D8%=6g24wp$u8_o_Un#mRkNNs$E1}1BqXzpP9^%om zS7o9I)|m7(mH&2m+|MwI_63=9N)z;&zg^KjZXzg-bp3M-_4!LtiR}eew`%soK@P+J zMa8~Q3VU9@w455kksYk-UtyIWxCkkp{}|J&s&SzfVE2y>;uJgaAD7c-d;Q{UVm>VT zs*arD4KddCBi&=GJ|i_871KNVSa%)8a_L9~_=`&w3VB;SX3cjQh)P=TduT(2~PNxOmd34sRq zzM9>z5MD9YUE*1d&(7ivs9q)ICXx}c1{Ck1nW}GXg+4GK&;Z-c7`Nar+YrHiy;sC- ziMmgqDt5FLAqIp<2X-6}h(|#d#2H`=W{AE9W>;Gux)|5g8uXmU@UVz~Vc4p?=6M92 zihh*6=HU(kxEk03O&o~X$7Vkln38+}v{nUT=PAd$M#S#pN&;qa1>*M+GXnN0V#AMp zjfmaH5x{zc>LWJ9=~MF6Q((t@pkUzDruc<8eJzj&E}#~j+Z%o@zWZFqV*An4I=9;x z_|Yj(9lic3t&RG0?ue9y2%V*JU-|Jf`2Xsa_<)Oa_mhE(=`Pf#xt^7ZF-)vkR+LYq zhD`={QfMREkeX;8e1|O&KiZXW1D$Me$7`1&1X#M$Msu|8Sf4Q-)beuyqEA4XutXMr zYbpG_9;8f3y6)dBvr2)!s_aVc=0*z8&AkH{f?KJA71(3z`yf9l4V5pgmKQhF+^}HL zl1Bd=8n1Vot$l&Exb8OQ*4C#3&(n{N(Yq5P`UhxB7(lPpyW>N>$Q?M4uGPD}z6|7I z7KjBBC*k@`WLmRWh)1TW)rHhJC{T-jFfby9C^5-!Q$#-$0P`?4TpN2JkKjJpj0MYx zEl0<;v^=7W@-t}G;oYcV;^)*{BXsn=6L!bgkwN1HXELOMSVm#A7B$ES^|4@{KWP*( zjaK;yKaXjQ8cz`k$5^`C?6wUs=PJKWru@L0W8CF_hb#|dyYqGY7FmH9-4TWKw@~-+ znd1Y!H5I9i;Role2-~UZKk*A^#)-gW3nE0hn6Y6}07DEO;(2lfhQTXEesUQTvm~vv zobKx7c8si0YtPFdw#oq2foXsUo|ne@MfgsH;}L{U6NC?&P7}56q2p%=!h22|1mh$o z#NQ0817<|vWc?rx7FjZAM)PTgh?4w5x6Xwal5V@sb*qk+4RzYJ4j(;jaNB1hJ|sdF zt3l~{-YSc_4e(-d0~V(h?%RU~6ut`fCNd9$>R5gmLR|Y_({5v(^4H<&7)+G@wd@WV(Ibu|BGBmg1JJ(qhc8q4)e4%IFTCwjCANA5+E!tAyHF$K#h0LG*3Fj(Q>(8wTWM5D`#vY=qloc`DGjeiw>5 z+S%;3Yj)FrA$R5;9Y5zkxr-kA%JcE23YgqTGku}wIGVEEMcps;K4z-3q zANVCgM1N$_*!#aoe~fVV)4r^u8%m=g|F1wSH-|d32XyoYM|8B#bx=%@G}~)IEStB8 zg@m%bE{JBVVAqA9wUZ7pj@j(|6$g*pfqU?X-$-0<2-auX5wG#$akU-2q#^_2II?%f z$#01vNU*uXHSf?&sJw;mUWSkQ4#x2JdNTa|%OE;GRDiGq*@hPqTY|UxA6-I${$n-{ zpNMhzl#j!}e=FnAdC@o=SH|IlG7cxjIBbt}Yln9`L-nUnV;Dj*^7q90(@5Dq=d(a? zkHw#a8wZgX`Othx3oY(`1HTsZ_IRIiCLk@5XTi?EL8$9nFCuGHD6>1shd_+XOk~!bs*@ZcB7%Mv6#v z<|xsiA}Tz3BQq#i^hQ3ftry$0dK)Savnx;2!<~T;bS@Esu8*7cwYyV&(JDQ-+kq0M zScHjFe^NFoP6SaDOd-a2;IjP(mhS}M8WM$xZT0jZj%{)f#gPXKki_=FmJD7%-KSl_ zXB3OeqEA5$w%+p@U7VE#-jY(Vo)}Wm6?TS!2#)-~Ax#i$?~C9)d_@~DbTtB9u+60- zJpdcLnrU$cwDk)B2d%E<%Z;-?&2YFKaRUN5nXA#3zhcTbL?xYw+oKLIt#-KWVFN{D z=^6A^hr6#U6GR%b&~4>r!62mFgF|R8#>R(8j>=kN9NLXC3@GO89vmTt9MLD^aQtN( znW4lmLTqG=BQgH@1>>fSC)UwDN`a5gF=AM|e-(js(12Ksup*trntO2p_c%nKI_Plt z^m!n|kgsfI3Y4u(A%NELfjy`4^Th_lSLDJ}q)>^-ik!-9yb}`ysB)(-X4Os-;~rMR z|H^PvUqr|4^z=!D<0})wYnUwX-R0Eea=Q{Mf;NGH-(ap3g6x}GodFo;C>FPn0^)p%O;US8+^#_0MYHra zX7#XXTC`hKZP^pTjC;OH^Xtfly-J%;2kPi<^O*n)ZSp0Gw;+E~kcmb(=v`5tYaJt%8Bi`cM?IQFvNcCjsV zJ;7{VezmqRBj~oX6jPY&PXF1jeIWTkmv&<#7;gOj7+hG!Ka8-(od|fsm{xQ`TM$72@i2d zan8cUNW$M>u4A^ax^Ptkt>wd+xS6j?#}tC!6a-6e1&9;xUF2ZS14ImPA+ohF`W^b> zD{gmxcoF%&2)|yl96u&e?Vp1qOa3sUL+L;!3s4;UJ`Q3x9dx+TK7h}&u|b}V0N@J| z1aL7Aqj6tYIS^eu_)o!6pW|YVDsoO?$0ms(bCTjIt)|3xLm0(1EmmzN;w1%ZqRr} z@z+DZzY*kll)zG4z~uw(?FXXc%9t1MkfP7u=rM=big`p;romMkjw;Ic*v0tnH`N96 zEzC*7+scCZj!wI}B!Im#s+rdlfR}3&zfds9oXOuDc=Ayn3!&zlb{WfS#wVY!_irW}s zq1k>adaM*YO8spj3{kKWnVw6d5@TFxh##o#>m7(KOr|KUd<~|~_c3@AO|)H>(2xH zVJZv|A+n@_tj9fjb)02vMh3k))-#giaImI#a&Hi*}SN(T!L#0}x`qwwk{v0%-` zipw}Oz?Xz<`nD$~eqs(F%-qPvnPY!HGl*cvD%?WMzyP-*M+LZrqZK0yAt?3@hB1Om z{l?NENipd@gbobqHRi8=96Ax6$NI`|9U*)m+XUzlFOXOZd-M%88^$XU|0XDL#EL|} zVz1!+DlF;|7mH~)Vw@Q0mA=@AT1^NR*iCpz55h|WgzL+IYM9Ii1yK$Zswx;&m6uR8 zMWO0Sg{rB7s^n=RT9*>^Wo6x5de!R=Yx;Dh%{~Kg6=p_vlQU7fahCEMRGB3DDiLwb zYP=daY#1PV*8nH3ioW`~BQ~s>^$aJCIs2rT@>_d5#ZQ#+Un6Dzgmi>zNGu^Qr}nYq zXPDSWntlI`tuc4_e2D&B$bO{?cA@cQg#uhwI-rCkEAW<t^Zm7QQAK4%9o5n+@$UfHiO;n0*t zkh8zXD8fBF9D#ThkAVAqu5##*s7P}no(Q21v9K9F5`wD#7z~d8gvCJP!I*W>-SkdR zY)r_%^|*wk*=%;@-HspY5OUldh*|kvEd6m5k37Nal0~F$!zm#|;hzQc(P=#kE;vq> zVr3~#mf~e8L6#C_$swRQoSrKlBLD6biFJ!$Wo&$HObNvS-L@%Zj_~^vb0Q=Zjz;&W$6}K`j;%-DoZ|D zYL+FxEZrtcx69IUS!$6bS(aAF(n?vnLzY&_(rQ^+BTH*#X`L+HDNE~RX@e|nl%>05 z>26uNN0v6p5|yRRvb05(?vY;(U3%gqCpEqrJ@&?ltO4~7^N!> zp*Xj=z4zX3@57xl{yse4pPkk&E7;m?g;=3hm=$hCSbMC!R-_eWMO!getQBX)TM1U8 zm1HGbDOReLW~EyhR;HC@Wm`E`u9auyTLo63Rb&-gC040bW|dp}tO~2rsaY%5N35fP3RtE9oPbU^5htNDPR1!X6{q2J zoPjPl6KA0-x}iJHMh~2Wb8#Nd#|5|$7vW-Df}ZGw-spqlkG|-K{gWcoxrL3Z~+Dyntz#ju-I~UdAh! zfth#}uicG45sXDxj3o%f$5@I_uneE# zGc3pF_yQ}i607hfR$~p;;wyZOZ}2U?!}nN+AMhi7!p~Tb4cLfH_yxaWGk!x5e#al! zfDGpihr>U+pz=x;eYJJE(BvYLJ*2Dgd+lbuosbtLNsC!i#Wt10f|ULGE$I= zG^8T~naDyma*&HWM2?V;?F|i7Hg12DPX|JsQx6CN!f3t=NwPIEXg1 Q;}AM<7)JtvbTlCM7y`l6EC2ui delta 36370 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 diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 0c823f2d..c80d81c4 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -136,7 +136,6 @@ CMD.CD.YA >SYSCALL realpath ldy #$ff .2 iny - lda (ZPPtr1),y lda (ZPPtr2),y bne .2 @@ -551,6 +550,7 @@ CMD.FUNC lda (ZPArgVBufPtr) >SYSCALL SListNewKey bcs .99 jsr CORE.StkPushYA + bcs .99 lda #$C0+C.FUNC jsr CORE.StkPush @@ -608,17 +608,13 @@ CMD.CALL.YAX stx M32.ACC X=Code to Execute jsr CORE.StkCheck bcs CMD.CALL.RTS - lda ZPInputBuf - jsr CORE.StkPush + >LDYA ZPInputBuf + jsr CORE.StkPushYA + bcs CMD.CALL.9 - lda ZPInputBuf+1 - jsr CORE.StkPush - - lda ZPInputBufPtr - jsr CORE.StkPush - - lda ZPInputBufPtr+1 - jsr CORE.StkPush + >LDYA ZPInputBufPtr + jsr CORE.StkPushYA + bcs CMD.CALL.9 ldy #S.PS.ARGC lda (pPS),y @@ -645,9 +641,8 @@ CMD.CALL.YAX stx M32.ACC X=Code to Execute >STYA ZPInputBufPtr lda #$C0 - jsr CORE.StkPush - - clc + jmp CORE.StkPush + CMD.CALL.9 rts *-------------------------------------- CMD.EXIT lda (ZPArgVBufPtr) @@ -704,11 +699,7 @@ CMD.EXIT.A sta M32.ACC ldy #S.PS.ARGC sta (pPS),y - jsr CORE.StkPull - sta ZPInputBufPtr+1 - - jsr CORE.StkPull - sta ZPInputBufPtr + jsr CORE.StkPullInputBufPtr jsr CORE.StkPull sta ZPInputBuf+1 @@ -736,7 +727,6 @@ CMD.EXIT.POP and #$3F jsr CORE.StkPull >SYSCALL freemem - clc rts .9 lda #E.STACKERROR @@ -904,31 +894,20 @@ CMD.FOR jsr CORE.StkGetCtx jsr CORE.ArgV.Next beq CMD.END.CSYN - jsr ToUpperCase - cmp #'I' - bne CMD.END.CSYN - - ldy #1 - lda (ZPArgVBufPtr),y - beq CMD.END.CSYN - - jsr ToUpperCase - cmp #'N' - bne CMD.END.CSYN - - iny - lda (ZPArgVBufPtr),y - bne CMD.END.CSYN + >PUSHW ZPArgVBufPtr + >LDYA L.IN + >SYSCALL StrCaseCmp + bcs CMD.END.CSYN jsr CORE.ArgV.Next beq CMD.END.CSYN - lda #8 + lda #8 Make sure 8 bytes free on stack jsr CORE.StkCheck bcs .9 - sec - jsr CORE.StkPushPtr Push CmdPtr AFTER FOR + >LDYA ZPInputBufPtr + jsr CORE.StkPushYA Push CmdPtr AFTER FOR lda (ZPArgVBufPtr) cmp #'(' @@ -944,11 +923,8 @@ FOR.LIST >LDYA ZPArgVBufPtr >SYSCALL strdup bcs .9 - jsr CORE.StkPushYA Push listPtr + jsr CORE.StkPushYAX Push listPtr,hList - txa - jsr CORE.StkPush Push hLIST - >LDYA ZPVarNamePtr >SYSCALL strdup bcs .9 @@ -1070,8 +1046,8 @@ FOR.EXEC jsr CORE.ArgV.NextChar skip "`" .9 rts *-------------------------------------- CMD.NEXT jsr CORE.StkGet Y = StkPtr - bcs .9 + and #$3F cmp #C.FOR bne .9 @@ -1105,12 +1081,13 @@ CMD.NEXT.LIST lda (pData),y Y = StkPtr sec sbc #6 tay + >DEBUG lda (pData),y - sta ZPInputBufPtr+1 + sta ZPInputBufPtr dey lda (pData),y - sta ZPInputBufPtr + sta ZPInputBufPtr+1 clc rts @@ -1244,10 +1221,10 @@ CMD.NEXT.EXEC lda (pData),y Y = StkPtr tay lda (pData),y - sta ZPInputBufPtr+1 + sta ZPInputBufPtr dey lda (pData),y - sta ZPInputBufPtr + sta ZPInputBufPtr+1 clc rts @@ -1318,8 +1295,8 @@ CMD.IF jsr CORE.StkGetCtx cmp #C.WHILE bne .8 - clc - jsr CORE.StkPushPtr Push BEFORE WHILE/IF + >LDYA ZPInputBufPtr + jsr CORE.StkPushYA Push BEFORE WHILE/IF bcs .9 .8 >LDA.G CORE.Test @@ -1347,7 +1324,7 @@ CMD.LOOP jsr CORE.StkPull clc rts -.8 jmp CORE.StkPullPtr +.8 jmp CORE.StkPullInputBufPtr .9 lda #E.NOWHILE sec diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 882ea298..28f0133e 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -677,28 +677,27 @@ CORE.SkipCharsA clc CORE.StkCheck sec adc (pData) StackPtr cmp #CORE.STACK.MAX + lda #E.STKOVERFLOW rts *-------------------------------------- -CORE.StkPushPtr bcs .1 - lda ZPInputCmdPtr - ldx ZPInputCmdPtr+1 - bra .2 +CORE.StkPushYAX phx + jsr CORE.StkPushYA + bcs CORE.StkPushYA.9 -.1 lda ZPInputBufPtr - ldx ZPInputBufPtr+1 - -.2 jsr CORE.StkPush - bcs CORE.StkPullPtr.9 - txa - bra CORE.StkPush + bra CORE.StkPush.1 *-------------------------------------- CORE.StkPushYA phy jsr CORE.StkPush - pla + bcc CORE.StkPush.1 + +CORE.StkPushYA.9 + plx + rts *-------------------------------------- CORE.StkPush pha - lda (pData) StackPtr + +CORE.StkPush.1 lda (pData) StackPtr inc cmp #CORE.STACK.MAX beq .9 @@ -714,26 +713,6 @@ CORE.StkPush pha * sec rts *-------------------------------------- -CORE.StkGetPtr lda (pData) StackPtr - beq CORE.StkErr - dec - beq CORE.StkErr - - tay - - lda (pData),y - sta ZPInputBufPtr - iny - lda (pData),y - sta ZPInputBufPtr+1 - - clc - rts - -CORE.StkErr lda #E.STACKERROR - sec - rts -*-------------------------------------- CORE.StkGetCtx jsr CORE.StkGet tax bcs .1 no context... @@ -751,14 +730,16 @@ CORE.StkGetCtx jsr CORE.StkGet txa rts *-------------------------------------- -CORE.StkPullPtr jsr CORE.StkPull - bcs CORE.StkPullPtr.9 - sta ZPInputBufPtr+1 +CORE.StkPullInputBufPtr + jsr CORE.StkPull - bcs CORE.StkPullPtr.9 + bcs .9 sta ZPInputBufPtr -CORE.StkPullPtr.9 - rts + jsr CORE.StkPull + bcs .9 + sta ZPInputBufPtr+1 + +.9 rts *-------------------------------------- CORE.StkPull jsr CORE.StkGet bcs .9 @@ -778,6 +759,10 @@ CORE.StkGet lda (pData) StackPtr clc rts *-------------------------------------- +CORE.StkErr lda #E.STACKERROR + sec + rts +*-------------------------------------- MAN SAVE USR/SRC/BIN/SH.S.CORE LOAD USR/SRC/BIN/SH.S diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 31406a9a..655b5f20 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -123,6 +123,7 @@ J.ESC .DA CL.BS left arrow .DA HIS.GetNext .DA HIS.GetPrev .DA CL.NAK right arow +L.IN .DA IN L.CMD .DA CMD J.CMD .DA CMD... .DA CMD.. @@ -599,6 +600,8 @@ HOME.PROFILE .AZ "${HOME}PROFILE" PS1 .AZ "${PS1}" .HS 00 To Make It ArgV *-------------------------------------- +IN .AZ "IN" +*-------------------------------------- CMD .AZ ".." .AZ "." .AZ "CD" diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 61024bd8..5a363e97 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -839,86 +839,93 @@ K.FGetS jsr PFT.CheckNodeA bcs PrintF.GetByte.9 lda (pStack) - sta ZPPtr2 s + sta ZPPtr2 s LO ldy #1 lda (pStack),y - sta ZPPtr2+1 s + sta ZPPtr2+1 s HI iny + lda (pStack),y n LO + sta ZPPtr1 - lda (pStack),y n -* clc - sbc #1 - eor #$ff - sta ZPPtr1 !(n-2) - iny - - lda (pStack),y n - sbc #0 - eor #$ff - sta ZPPtr1+1 !(n-2) - - >PUSHWI 1 + lda (pStack),y n HI + sta ZPPtr1+1 + bmi .3 already something in buffer + +.1 >PUSHWI 1 >PUSHWI K.IOBuf jsr IO.READ.I - bcs .7 + bcc .2 - lda K.IOBuf - cmp #C.LF Discard any leading LF - beq .3 + cmp #MLI.E.EOF + beq .9 + + tay + bpl .9 IO error + + inc NO DATA -> BLOCKING + rts .2 lda K.IOBuf + cmp #C.LF Discard any leading LF + beq .1 + + cmp #C.CR + beq .8 empty string + + jsr MEM.PutCharPtr2 + + lda ZPPtr1 + eor #$ff + sta ZPPtr1 + + lda ZPPtr1+1 + eor #$ff + sta ZPPtr1+1 + +.3 inc ZPPtr1 + bne .4 + inc ZPPtr1+1 + beq .8 Buffer full + +.4 >PUSHWI 1 + >PUSHWI K.IOBuf + jsr IO.READ.I + bcs .5 + + lda K.IOBuf cmp #C.CR beq .8 jsr MEM.PutCharPtr2 + bra .3 - inc ZPPtr1 - bne .3 - inc ZPPtr1+1 - beq .8 Buffer full - -.3 >PUSHWI 1 - >PUSHWI K.IOBuf - jsr IO.READ.I - bcc .2 another char... - - cmp #MLI.E.EOF - beq .8 +.5 cmp #MLI.E.EOF + beq .8 String terminated by EOF tay bpl .9 I/O error - lda ZPPtr2 + lda ZPPtr2 NO DATA, but string not yet terminated sta (pStack) s - lda ZPPtr2+1 ldy #1 + lda ZPPtr2+1 sta (pStack),y s + iny lda ZPPtr1 - eor #$ff -* sec - adc #1 - iny - sta (pStack),y !(n+2) + sta (pStack),y !n LO - lda ZPPtr1+1 - eor #$ff - adc #0 iny - sta (pStack),y !(n+2) + lda ZPPtr1+1 + sta (pStack),y !n HI lda #0 BLOCKING sec rts - -.7 tay - bpl .9 - inc FF - rts BLOCKING .8 lda #0 sta (ZPPtr2) terminate string