From 0c494b00946ae968de9a7447e4f32a41c2d6fdee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 20 Jan 2020 16:24:53 +0100 Subject: [PATCH] Kernel 0.93++ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 37 +++++++++------------ BIN/SH.S.CORE.txt | 69 ++++++++++++++++++++++++--------------- BIN/SH.S.txt | 17 +++++++--- 4 files changed, 70 insertions(+), 53 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 1d61bf01ff182aaea02130176d2fe69d3bde5cba..52aa1a2eda62809f12eca586ea7722d871cc08a3 100644 GIT binary patch delta 29254 zcmaidcYIVu_xEfIo9u4d?%v%L!jb^#OBy7hNl1a{k_56;+YKQQFeD)f3bthtE(nT% z${1@zgGNDvB3KZ?jy0B_k7C1y4IhJIeN^7>%-r28RC!-tY9<*yu-3=*MfcG0``shmF))qaLjZ`{z?6uc08 zb?VeR)9L8lTElEHvheRfU)@SSv3#%XtZQC~Zu2Wh>A+5`D5;?6+Yuvdx#Pt)M_Kf5XZp z?Hx;+7yIj5nmZa+c97A((5(+?-M(K@A6y6wfyDmKI5B7v{s^Kp{|}Q;Gplymyb==q zmtb*PYgt`KT{E^Jt(ENAE z;>z%2{b7}szF)Q;qcQer*2zh(-NRfv=DNs%-f6D5)UL>_Z*R%IzdxgE7-c)jQPnTZStt-xZZj7iH<(np^hYoTV$&MCTXx>tBif zUGBPm&(S`^(}nv#%GQ10j#{2brjE*vI!3-Au7b4K{m);Zdp(_YE4p;wl^MNb@BO^{ z3)i*`*XE3_s6B7Hc4l-%i$77_|BT!E_RHOWZ+*M_FXZp|5_GQpeBBpozg+i~3>td> z0cl2%rayAJ&&()_&g>yYo{?!iN7%nI(p}L#njOd308g&{X5F_NyXe-V&fcP>UAJsK zdM_{Yp6GJjmA1v; zI+eD1h;lOQq|227{`8hU(0wu|Ed87#8NEdtqjeEEc?^%`hy^?w51s+ne_em1b1YZ8 zcKaBXUK4A4L;995;CA^=rLiVau20i@KYjppk6qcPE!yH-+SR%BXxA-!jz$|?MVY<% zU7h%u;krDtH?3#2t-nXF?{^ia8K-rhtXv)8dM1-s)wwRpY)tD7^W>%S!Y;b!=#JwU zei!W_TaPxT$vtG-iF?24{&ww&bwBJpnWMXsrf<-Vi(i=Siat=(6}ji_K8;fb6}>~i zi{C&$y=sFlA^MxN-dI;|%8Xwl`m9?{y1t?JZ_tg5{4jmXDW}}yTK8ucas5a?+@Kql z6r0hT_`;upjnGv=W+CjzmHpZx8AEbrfXDibEfKERu#8>M}IHQPW19Yj|6R>%SSO z_FG233BO!lW$e&;cqaR)_q0*ZMqPqsTSl*Wb=RlN(JZ8UuG4jo ziqGsVzV}4;53UDB_2%?E>)Dy%c{%@)6a9bmX!QLaPa1xPx#rQ;*XyQQ+T30KJx9l3 zHOZcr>ATnK@{Dcndw=cz%~ebzH|sj9%f|Mm?9jcE6a8`0xW3;H3?H}WXyxgxN3paj z`f^;ijB>T4_n|TCZ|#5A{fK1$c}FJp*}F7*PV_~wWX2J>zuwg`c8i{Mp}9eKfqp}} z>vCFmgU%j}C1L3~-E}?I$aPzfdLE|A4Z5pFpi}das=mUW)8)Ue`*n3}_iz0}dR#k_ zF%hnXV|x>i|K@6;satfplTb6~NNt}HIM9A|){z>h5On$$tM}&WL|}Q5r4PF%ecl5o-xKNYiO`5~(1>;@?l4z&#+L77=tYciJ)0=V zHB+u!98tR~nm6i-!k_mtkg@Iy_Rr@`3!w578NJd2&}>p!ref`%0A>}#v@tK_wK&eJsB()oPRE4TK>LKH`E8t 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 Y_yh1K;D3O>0DlAi(L5xd*4+9305j*j9smFU delta 28927 zcmaidcU)9Q_xEf;FYGRDckeEJ0hPYeR4|qxpb`-f*7_voqGE{%C}=drWsO{oCPqzk zE_<)4T6?X6`Ov{C(a(j_kBEXU?2CGv}O{YwMrq z!dd}cUm5j=kOxj1FVg8l%r~bE7_7ILAE+Ae_XkK`S9R)e)hS)qQxij8)4L1k-1@mh z`k%giSxYmqzoB;*(kqrU`HCl(xJ%u|H8U%S^rk-j_>e4OdrP10Yi_BXyErRnbI;pA?l6-=T4P^)Byw`u6&HwZ7zBBEPS1zoL1Wueh?h)LqlExOidR z+{MK7fxdmt+-9G61XQ z^qIcBWo0cHe5!vJRmX!Q4ImGgnzP)i7$Qo3TO>AFN-9Eil zcbe8-VX@jmzF}i$T#&vMV;S=u9kowC+Iu$8Vet3puy&=7SbosA*EY-pqP+1W@<)C9 zT<|Qp*j+Qd%u_s(n0^X$8UAyiu(+tEl$d@&Q9~UYc;c^|e6?v=-HJtx%bR_3Yn$tQ zSJpQBT9z%Z^Nl6u-%z(ns$b*I$tJGfx8J8vF#i!CCjL*Fai2a;_ZKa@Pw)2rjRFjf zO&sqik{H}MlyN@5Se?PobF;zFKBj7F&BU2SB;07=bCuduQrl9SMx-DE2Dyq@2N>Gt z)vZz&)V27u>5d%OuWIHh;*fxd%@AD|Ixy603)Yg_gn=z2BE-$TU!UL5b*m*Cnt z!$ppCO?0KEbcAksb#vC;XVN=1>_3@3$n|l0_qj99?h|K%yHA}7as{VvKJCiQ?22=} zk?#5{*Y#~Cou6rN>-HYrmT4HF3r{ROV|*_BSEb{|{U>{Z9vgi4-7Le~?y#A$WWtcF zun);6#Fd*Gdicpp4KJqA?~2!jgoLgAqV3BK9dye{xYjx`8AlGZDtpnAw1J1h6rGXb+WAE90HhVzY*zWYM{0-rTkZd=@V(GSk zKNo>N!1S%_tu)|R?b_#MIJ$ya(}uLoMg_=N?KxqtqiJ0q+=F@_Uelv5*zCNbqkYTC zjvf0?h6lME8C`F7wBu*GYi35*3!SaDGo41`8J8nfnz;LHS!;;v_6%Ot;2NE=FtzKR z@~o6jvi03? zDeIo!KXl>e(X`FdmebENY=zewioFZc4xH}!&BgvGr%w0iPkp0o2)XB)Ru>xr5Ei*Q z(z<>v&&cR}u2tXpG)sL|zP?ZD-SR^j6B&cTz^Gkc?f#k#=lAkoG8T5OEKs^#XF|c^ z5U_ec_cdqq1qz1r3#r+c3+*=R_Uzs~6TU}A?ERc>ch%)H8N zbniw(eA@dNEZuQ?C)sim4WG^Eu%O-@teyq+I_}ti@=REV#q~b@VWZ)FT`_(22E*?3 z-_pBA?>fEv8`sexUHP3S%G=V*59J*=edf1Lo$(A4n(~ZPBnP-A(A#b_Ot4IKclh?7 z9JvMKC_hBc-e|~`rn-0iy!#iIlV)r(w9m>N-sSEt?lE>;-x}3D1AjNRMs%0r?}pak z?(sbZuDwHA2kbvtc5cf_S4CRS%T9%LzxLak%$c6UvW1RQAJn%P~| zV`enG!s@-;8Vf8>v-IPx$pu}rkt07Cbk2Y^L6ib-A!JVhd+vw4)h7|9Fg08_#Q8T%Wg~E%1 z!m~q94{({&H-Du-?O}}T*c3wQneODmirO9FyirFO{ydnDjJ8kMKOZw4fyz75yX1SI z+%kK@HiUe+0~w0`WGLpyFZ3@K|%?>vr0f)0P-RR^N#H(H0sgWW*H%HH8+QgEJ|W%$kV3WZ_k=x^&kn z><1vZGaLW7e#+lGNrB4ZRf}A|WNc1iNhW~5oG*Zr^%VF|y_ak17wrQ@i^vedQ1 zx}FUBF*tkTfs=PH#0q8GMK}hK-4n8Y|H)_XIWw@lbXez81qyU~7<%p+94;L=S@7k6 z@~QNzTMY5K!!&rCAz!DbW40L_(tX2F&*{3BUbfAUhq5i(45{<=L%U3!t%@sQXqSQQ zR0mFu90`>(OYDPKVplPqUVrf!Y+S>;KHPn_JGUpa)4&+>+OAW(KgXuJ`^TWOjJ*(@ za5hc3J;58Y4dv$a@(0s9pTwL%^(AaKL_voZZa0h?iX}XNDPt^S{Og)i&{e&6muuf{ zm#a0kt3>^tt(eiS*#%t%uIGnC;CF2|j2Pf6*!BIwiyZ&%XUbX?NZMsR#?DrOudM8{o>KhWm)rG1>$AJR?;g-q$T&7&?aysY1^r45Sr>yZ z8WZ_YPBWyR?+kYZAGs%c05p@nbwH;PyQ9vz=ljur6rRzu$%b|e;yTnd=WyK)!^676 zgZ^!JSGWDXAm^c54GRv2yGzN$AtOx5F` z3lAUa&plJ(P7M!VH*$*c@W?4aPhWc2d0)^Mx|_qz&O=>66%x#;byW`q0R{jD0wh2% zAmnh>L#D3JsjkDE5ZoyYhva)`Q-?Vz{a%qY?bWxtOQueqJd=d%!_UfUUp6t{r!T2- z*LaGmJ*4n{dZfc#pzESPb(jZv59k+;U*0gcd{J}DM)$ZHUkFKU?Un^nc~ zK{WV4Odo3K3y9+*>fL3QFa0=x?h}Dd`c#+hE2|{ZXCiGqCD4~ux-XerwTW4@(&xJN z+U9y9eW7CpCy~F@af2uI5;v!$tTJnC5d>5RrAa&0&~ID91`@fZXK~aqJyEj3Z~-x`6T3s&OL%M zdaRGJ>{?%{sLM!=I;v}LZlOMpY>PUkO~?ombX?a?q{qS0RkbAM1dZEej-L1g%X<>l zVHnz<0@vrAH>38a8Lry%rui9d*aal$SzvH<^SL%X&*r+RzLwZupm#2n;Z=B1=l3eS zBxZZ?%k-ID=0SsdfPr}>ASg9;E$*@g68=MA;wqFBObvn%&^Mq>YYwf+&9SJo%i4k`F6fF_qlb(%Ay z9e?-lE?4w7{G5)CI%v+<>FCmf=A;U}a76ftVq#-8zz+jQ2xw&JOP4Jpl2Pcu_#m-n zHK|+Qw6Jy^6F(o*0>m+Zess`m_ZE44Nux$55sL~n$rA1{NUYNmV^9*hUQ1+^PC@E= zf2yJssSW;Axd*9@ffOsd!JnGI%5Ds#P-fbM)WjNJwl|wNZqhS%NoAFLa*=1^CQd{~ z5;1S~H^A>L+V6Dy-m3i`3Zyq{zb99g0O>7AF{IffdYd0-dF6z%;`JP9Q3Wblwrfo) ztI>jb15KnIf^BlUzv;NLilXY7?r~+{bLhWOv82eCJUAPUq0s;MQ#si=B=pwa6v}Q3 zq*%?{{i$qL^Nv6&2dO*t?bUsd?(`ROr2p+r0nM&JiXq+YPjRGs0x2M!ayRX{*PN{@ z+q2g!#YPYG`>xs=8hy3P7WnGx=C>R-x=C^{jeO9Yq&Mm5P4g{weX5yGe$brawdmWM z>Q@q5Xh5#UGohJTG=qeMF?StXYGL7;uMzG==B|v;3olQk@M%g`!OBP*T$N=FP0L$+ z&}sAQAe(kk;*>SnY_4glom*GAth8ZX@sfEYBHa=2-PKeT6~o=>#0aoxh0r&PdRW2H zQ8aF$B`PKQ!o{I60X)Uk#2HI3TWE1y7N=#VT$4ha@fU6>C1`_jiNQD${iOQ)ZsY#j zByFt8VnoS<=qn2?Nif~pY3-wBxrYzGz3?U7o`=j`2B-v@v&iCzB~e5Acul!imThYl z)|$0SPm6}gR^6KIS6CdntElq| zOG5h97pQ5wMw9D7#n~Cm@mXF@?AJ19we6DCqEow9A3zS*`S__7#T$ve6;AW=k|Os6 zU*H@`96rH^K=r8=C8gtu^E!GAWH{Ddph;Alo=(ZK%dvK7W46Z!+A>`q1g%V5>uJJb zOF|aZFxx+E8+yq>o%Q?-wNa3oa04$Zol!==tCH;n(NMv{E3YYoOkW*NxHuU@1@lu1 zcU#xBlr^*z;G{rIP{H7)T5nP7L)H4QJ@w&VOxI2)#8jkV!x>_nm}aS1NLWY-Qxx3q zTdK+2ctMh5f|&K1#fzHQv^E#<#UxME(>p&kTJ>@neZ`PuGn+0EL!zAyTEtO0J^Er$!`YRBIizEUs#7DsEX>)D{RHgw_P)wG8v& zp_YR-hj|*C`jsqvk};iTAGD>*GsFP77$S-SJTpkrEZTI?mgxAGHuzj(x=d@BLsDkb zyARriq+YHS=8&-3Kv&}{tBGljR+2}u=jq$kX%XtQNOhWZ&otX?`tw0sR%RV4h)_k) ze9X3EfnJL!^rIqXk=~t4>G20`>^!(wiz%%oQoUez&=RywX`rhgv<-=F)cVYC0|`E6 z;*g*wlqW5vwFjM6I{Bb8bigv!pqXV1&W&8|XGI%yGCN}1SBTx99}z)VYh=($Jv*6# zl7s=P7>=tLjv>SOLIOAQ+gOLdk?BWu?S)XSMpLI(Pmh%hlasNSnCt{&{a~`!5NVB= z+Suy?bE+P)9Xe!}O1y2(y#yXFa?o|ib#>CsNo@rk1)T*43*IPru;56+iv{l#oGSRU z;9Nn^p!6YzA)gOQE6gk$TKIa_ScYyIG^Zko7ewUwUx-ENIWt?<2fyY_XuSj8Y-5e{|Nt4XwW z&1x4d|HEFTM@->%{Eb8nQ|CG62TDyTAC{zaY`kmp>B#6qvb-WfwnY=BpZMWkvz&-C zhJN%$jf38lB44&ARo2_wH51Fmdy2Tq3`-*XD0L`Z{zCFvju8=UODRqvrsG72Xf6pq zL4qdXG+Y~MyRh^f1`(euQer!^`?qZdRY zuREWFztp!CVtOz4wt9s?1VvZlQ;7Lht*gR9;`krwwZ53Dt}cbWPRy_S8zUt7CechN zEf@z|#_|@?0%WjyBHy+WZjJPoN54bp*iUMl3GZrMVNZG=EW%DFeL#4iE9xWS9!_XrjYu(>p$;cY0*|NZV&<#ZENXqnP)A1z;_w{2U&Q5q#b|0@Ih;xN}I0YCovZJ7ve4~+|Hway)o*@--v$%GmAFBxFF8oA!SwclVNh?cMj=nxjPV@$$7VBv`>_+Y}A+`a18sZ?qIy4OwHX3%8APHty~r+`1!RFw9ghoCfOucvcokCm7*Kq@oC;bX{T1zCK|BTR1O zGwqQ}97CBaNlZ(*d;DY%tRzn<3C+<#srbbyC>M?8Jl3;KFXz+8&ji`LuHjsSSao+* zbywT7ct+2KRYAm zI#1(b*wn=hEyOWeNA;i9SVM_vj5fp(#BnjrE|le{B5i))v>6Ad5xcvPQjtRBVtRR@ zZ1?`UIv0&P?c^FYD5XRq|27CWNkkcer_ zAv6a^NR3p}bd)Vw#5^paGc_@Ql*2bQ3n{+J%H5M|Cb$`Qi>qNq*#1SgjFhc$m-=Nb zWOiVAT`ndju9iMNQjT@c5gsGkyukdhtxBAD>$JI>&&!w$(=$~}EEdqji)4H0BLAdK zgSl0^qzlv{;857;{NvJum9BZX6AKBClxFn3PW}OZ^jBgUxE0 z#uiL)OP|TKE)O8`_hDLrs@gWWl1-qHhAJRgr6I{9j;n>I)Ij8GXv8SlK6kZP^lXt< zEnC#k(#HjA_X?s|8DlNq!%eNd-K=4A+$(g~iEaYb`K2RATcAgkbM2D#qQ^c~0s18N z>o3q*W3w1j%uW;MlCHe)A)5 zV|3W`ag=&T%dy^et`+<{h~F}l|J_SZO?hc)6(4=%ts1+^-Nh4&pb3cmc91BHw19`4 znC?L1rg|pLk#`Cr;MC+BK^igb)F{j)LI2gYPbTuNUPZ|^Nxn;wpxsbJwmn=o_1j6T zclEE%_SCzDq`Erkf-!P}7Y<(kS)jVKLfrmx?meIHdAW@7GI#t6XVpono02~J|Z%^lJd zJvwR=MA{z>{ix^INz_#d1Lg5#J(KO@-3T%s+teV2*(S+s$70H+xe z)XgUCIc)`F6E1UOmno|z_UBQFc^~*@s7;CEMK&%u^`$=4Ro5+PTv3OUC{$PBc0RNo zL1Mxy^sbBL_>kB52r;i)>DemT>a_pw0yI0`@Gm>Zn|z0iBKEf~P%rVMj)p~e?B>S$ zdA_FFmW4!qM@JvO#A5Z@-xcHPM{>}67+}Qvd{%qC`e7e1O}G*Y+q0x;ItfDTgjhae zg0DIGgFZ%1$R}*2aZmrJfknY~0_N#AeI}@5@rP54f3w(LHWb?Ha} zf9Wd`Q89gua;EpN@t;O{*f(PL@`o3`V@is3Dj{gHs9`0EI?EX1@S48Y5a*Gg9~j~v zfslo4;H78R=1e~eB9pU8&@U*r{n}@m7Sy#Ysat}JeZaxzKAS|qPv0ljkxL@rr0?Yl zc7~uofyVNe;ER_>KZ5>7R>(QF4Kf;SM7WB2Lm+F2NvE0G!-!Q6BNibHQJl;8W`V0- zs9?q`qh{#mlb|3NztR9)Ohk-Cg2NUOE+R?%+9NRq!%f7QhKeDm7-G`HUg4uRvnm)p zT((*W$Qt^OUY+60-6UTW0UxdZD1@2JB{n!~11k*|J?GZKFJMIvVK#wJ6A`OcJPZX)2I?b9y;tMJSQ`mL^Oz-~-Tac~%AZ*N-I zL?pOnnK2OtH>^0=aO`%Si;-bVOl1CP@CokMrg~IQ)*MWOH22S7dZh5hbMpFo?o7=$E9cAxR@OVhf3B6yq6|6V7X+_0+f9Y#qt0#WDV-ImAAex#rF@ z<;+FMK)hWKYjmsNa5C?Eh($k2AvMrrNl=lvuX&7RftPLWYz`cj@z>Abk zoRxIS1ld8)c_Jk5a1uTR=ySIR$T3%I@Yimm}a6`{&u$R&9n3lt;sMV!41e1RqSObA4d0Y_SkXF zV74D;E{VKc4>tglV?Q+}1*Po3QAjds^*BDWsBUyxUBkRZ4GVlJph=p`?rMT~{oX3J%?Xx=>5f=E|rt7Ea4)Wmvv zZldhcEupS5+4e7Z2Kz~!5IDzDt>5Xh+Qu(yT*4fz%UXyXE<&-i%Y1{58|PnFTVGEc z&Hl_;ZAJCw08DBw$~Z+1{9d;}q3a7G9xa5&+TnjAs@yu_0f5h=VJ%&@nTb;Mz#ul#1S z54GDlGIq%K69GjhqlU>rgg@CwB&WcY6Gh*hEobXusO54w!5qtcBK*dDY&`9m~Fb8k@Zeu9|R(_vmp6FV>h@`2>o!N zGj<5ErfJ?D?iVPko&Y~hy67sksj7zUBJmmYc)2HTa8}=%3sH3%33vCenlO}Ab;O8L zYfj%59Cu7ET|GyR_T~{L_$qVC`%sYWTht&{Dhbc``@Tf)w&4T<=Oe#g9x;lf@94XF9HZ%$`eAm5eGH#e zey$1d(>azNU$sh(3ob${9(EcRkdtwBPa z)_Dy_V^zx zs51IiwMWjjuhmd%&ccb6{3_9i{vnQgADsy~#7ea+}sgKKy%k(A%$& zWqSusD~}6dkAIwgR4>Qr zPB0cn+pR3x(sxM1iSsGOJjbYK`sh+D30!d_R)k%+f1llG5)80)2NqAjljeG!PMP6} z*C)P6k8SZJ#Kj=)!neTOwu;70?1H2RvcQxLg_ey~KgC%$qX88{ZbCMGHf;TMwj zIv*^(cDg5GYS0^OR^P-Bn{cedHH@{)L+-oWTf)w1AM&-z4)R<- z{^@xm;K6o8X-Lee?TvC&shtI6fP*7unw$x0&=;s+LwH8hI{{a}{i_S0bDySD8|AF% zZ@`&la|9;;vK{d)lV|$jR?pyS#)-xT9+xL}L~>f1&#TOWIRSYL(1KtNkr2V*7SxaI zZ!HP>37La_rq(7oIp-IDL<{e~;(z5*u3`_v5}jV#jP7tKZ>X(zP>QRkm~AOS_%I?Pg-eg!3Y}cS zZiJ@TddWd$dSsa#<(28bt6=xp5zz@y=NA=wEUrs3 z)z)_}Fd@dn*9}y40`Hi5nq_MQqB=q)!dm7I6MA=AWWo?(o(n%b>&P}l3<-*Y`<2-p zLRiO-HRB|eCVcMc>GYFkIjtZ=kc6{nGxr2#Y8@An5VzlLAA;D8c0kV-6PB7oOIqZV z!d%p5r|AN&F(dOe-y74IYfCH3i9Af8F`%(^W)k zm&*ydaoo!%7c)X}`G!e*d1K>ZJb`tV=(xd(@Lj2xZ&9$xZ$NQphY6t?&0q~fXeI}n zrRLnqnnZtJE@vi}YdnC1A90u5Y`(X68mBfj)h#QoZLT9jDrwmYd9bdEHm;CkbW`ZY z6>_GohCZ}HPSs7NAFTkH)2QxBIVyJsV*{K9OLR4eWmyXVlYSISu<=jq_xVnXNlY7uiCDl_$ojXZq5 z=2&f*%PsYgg=~#8`*-Lf`rDPVyAbgdVNH{;dLb&w;)Y;I0}~2U*mjV3$zmnYSG<7;t)#-=)SV^t`5eppvP9q zaT!;NDV0`gZsS!#CPJ=)QelgqNLP!T_-p7uSPR~3neUH9(72QBy3%O%m}9lKLiQi0O80MZip*VQqgRqzZqUk z->3;uN?HmD+r)4L{I%xIejEr%Y{3QX@U6go?!*N0dv#Zt2&5>~?C|V~z=? z+MRNo)b^O8)3oRb?rcQd>JLWwd2ySDERRIpAy(lMV(QRHK!cr3w3xta4I&UF;XAuO z;%MHbVaUhHeor4xmT5ORiRmuXU?;_4B(@Xcmkpm0mp?XFcWwSU(tJpj-^y_ovgH); za%dAl4y(LvUK41eY|mtn$?}9T#2(n!K=ICYIH>;k+S{ll)x;{v&c7^y9VMB&kd}c^2XYExZg2j4L3@Q%ZaI);qh{k*q=v*ED=DuZF7!ija>& z+g=?^6|#M(4=ZtelUhX7BLUiwiBkXKHQBz=zS7EKMD(Bu`*O6DIG_{x;if-A`6{-y z0;CEbIgziX`ya*4glj}Eune86HAN>x!+jmxL~eF&hsxwKJ%YqTTXLst?*&>`i+@Z4 z6`9gx3lR@Pu4B3tnzL`W;-)4sF&)ZOLJo;vm%z3OR>^-n8CTmfcOlLwlbaV1=X%C$ zdBF8RX5Thd<^Tw1ABWkuWltV-HTpC zFeGFjTf?;HHIq#r-$freirw>oHe#l^7Ba7<=>b6~CfWL+R)~1Jc*I6b2qv>(pw#h@ zzm%P`_&YS#-u4Ka@$(3NR2wN2-4Qm|k70he+NC>ErkK4)kr#4|O)(ExAJ?}2#|1Y- zPw3cwF}-9Hd+20+LhF{#(Lx?{eiG!5`cXj+jAiZKDy{DDD|BsRncnJ-99Ns=IxF3t2?VspGSiGiX z8H*h-&XI^u*%13YEsOZ9Uj|~4p9`q~ui42G=h&IV{sr69nXF(#oY|DakDLyKl35ne z7dNe9SylAq$K{~1ufZdPPfe$L1?3y?1`qRieV{1fC~#ls zCuB$AA8bLg?aTV7HW#8T-?IJ^_?Za)t;x?hjkScHJt5n?h%qw`^ktQ#7vY^qgT9wn z8yG(#jVwnDJ!b>cJYk47_wlEM58xFTCvRYDCu|_TvcuowaejwM{unP$A{y-#s<{B) zm=R&Nz`$8#TH~f!qsP+Qd#>m`v=4fmP{aD5$JF3i5m)@cj&OB=t+|LPghUGLW?aYA zo)^W~XxNhoU)T|R6AaZt)PCy)+RUm2sr$s?O$bzL3QaQq>4ImSNZM1N5IhB{;m0&7S76S~qw!D6Il6pW z^|YL&8%9?@E$7R__3ZMVry38lHoA*yd`WmK7(aqO`!u|g1@zR@@(^7iwLBxo>PPD7 zK5M))KK3Hs1b&9C?xI<~B>WgXc;2PUE^SC6siSD^GjdAaXg#~(S>D*N;09i2aCs83 zkKvi)R<+b=ne&nY4}S(5EI; z?#;X-w;SYKA_~GL>B}l8&n~M#cDcw7pUj@$fG+l^64lL!W{U(~Ay#U?i}55eyh=+{ zR8E{)l|;g(XlZtfHHmn`5ZvYs+0{N2Bfc$?IC20L!rMGKnW37hCHVC&Jdi|un-^A1 zN2vu7Zl0<}A`IbekwB~nHD?Br7(?hRErnZdUZ6#so7d%6%8Vg_mowlgD`}_c@{ew0zs{o9EZr&q$Co7hcdhvU-$CDHb4VJ z#kB@CU`iyO&+sIkR25C-k53UU=Q()g0)+Fm)bxos|6%A0v~<~c;99695MBcHVThme zmh4!LB!cEVSz69|vUnG3>G5S?3|`oXLiU){gm*UDi&JZZc$`vJ2|>q<55a^ZzRrJ- z0v5cu;lIaV$(Rvg7YQIlSe^gQVI>yC)3p?eT6n_iOUmVCh^F(hTvRlzKtjBAm9OLv zR>zf2D67D#MBj=3LLV!&+W2k4%N(t8)K&i1ty9_KR`D=43q!G7t<}$BW5)9xjwuV= z@>=j@N2I_2%W8iDvuN@96El!#^(SVbOCJ(~zNj_+F2#e|bsQIaa(tcEAdw~3Y6&;v zRvQvCUD@u!Tvy}aU%!r&(hpaC6WNve|M@rjD@TuIB0DYzZNY6M>sGci^tZ8Y)^12? z2lA2I*h?z5p$e}fGi~eZ*RX$l+kbT=n71>{&n;v34w~_+BWqkca+ulG&%m(#N81*9 z4Id)kdZC)~?ReuiU$#ZuAxd$$2C(R)R)_tFfBW~x@Uf%XA7h2K>Z9kEk%;5k&7gpF^>|eTb_&n;1@V4}V zxR_&l5n0SCDmQkjSYi|hk7761X~fiE6qFSZQsJPch zy2{9}-NaqJ?Kx+xat(;k*ty!s!?PBzu{Zo0(Rx1BK8@-^yz4^)L|^6Wki{L+ZR{(I znZEkQ#wHT9*4R$6+vs?mbEs||U7>R(PQ2a-p=Q<-+{zV|f(_CJBR8p~jmGw6oEB^V z-0FuKkfs|D3tL5`8SF1&VlxfxWcV!l!9Zss{Zn$<9G9Yi-6y<^{arGNZoM;R z$RhSVNb#dflB+Xu|J>sAe=L%HX*1g3 z7d!u#He=9&d2tXChzk_*#bS*|5f)1yWXUc=?+O_>RZjAMBGWHaFl2}&+23PvHn9#0 ze0fsa+=+eg1wKA04H1JHokCwRI!Ad^|2dF!KUy}B%mA(afn;d|DInoP1BGJMX9tR` zxq%`-Io7;?3^QsNy&=fy3?43M!l8IykTXtSXkfQ6ZFcKOfv*o^9HaR38XThy{C%Lo zG1kDpjpHEJi~mvES!AHcudvuhhmFJMKFirt&T=;%H8_j=eEpMI#fTvl;|rkH5}?4k z?AzgZfnO%p3ID*KQAWE5IMXvO=`XuNc~~b2WW8cV9FxV!!YmaUdsrC5UP+4vI&B$M z{yg^ja0>5i4Won$9(#Q#RSP~P*U;91&Lr8>XB3)q+d9=iA2K)xm#hfLeIUecz49Lf z#jXMh&1KK`hrX}su41f~Q?BmQOC5hyXT9bhh|*Wn*^)DDXzO|1;v*QyplybAWYBi{XRtF_N2x2s>G13jsxZ90--l(1^l$ME zTIoN6?#Ns5=~fns3Ahb|ZwKw%!FGqHusXynrrb$4hB$|KcZ&X@cP+d6th}(@ffa;N z6Vo14({|Lm`1fw%h3rQQ_C=}Fz%Cl%3rLJAe2wW|G}2C8+K8cmqxXUjY=h!_px2w7 zCNHtxXXv|2ur8(hwa?IYX@u_=gxd}n{NGm|z7b)5I5~*@fk0mVM(y!Bu^tR$=51Wa zmB0L8AS-trKGs`ZQ8c-f#OMyuM@`P?_{09vtsubXshm`b@1#5=x=nwW{$O&Z)jonT ziGWk=k$+5RjmIronH~$U)pRt_BK&wimf<5yVu+>__{)5|!-?w&dac=+Q1KK~xqTd} zM0#4A>Swez&uVR;2)psKch-sYyqF>B1@SlLMf#Q58SQ;Z2$A%%$aePhqb76Jb%IIu zSNbfu`OE6+*i#JYRUu*a*Dg>P{69^|LSARn$WO3u2(~%i0+xHh}^CLurIaGhr zPnzV-NnlGa~)#a4SXZu$)k#DOsUkA8e4(x2!DE=bc~_{&5TQHsBXB!-<6 zRkfLjBskOcN+IKhS7+pI>IgkQ>h}6uBMs-*wFHSO{FCF-031M>K{Sw^9ho>ef{o0a z3aAYny;*=#3K8d8o5|?c3Hg4V5M?$x{h3(*ETlAaA;0J=Tj6?TU29<=M4^ zeLtliD~kj8KX5_|4|Qy}I^Eu=ez=JgEe_1482lB}5EJ`Pnt14TCXwRUsUG2hgnn2s zC9+E}epZ#=dSk>&iDI52ll=9){z!u}`2r2Fn502siX4M4Kt&;uhTve2d5cQDKyek$ z&*5qQu6R#GN*5$c8GN8ai78VXDIShw2^us;6KSX*SIQQDV{(l2YqK*dBG7J-ao-LX)PYI%lJmrYiFQya zDo2h-<^HR8La#t+t2cTg%tYs4%O!%Nd<6wh@{gcgj38(-&?QySKkUv#N2TZw(q^jC z8f6pr6q+YHv$CqO=7_zfcisXvuH@0UF;#FQdYW;&-Rb<-^!`&BF@ueIE_6E7Iort{ zGy7x&78x!(X;OM=zxI$)=`uEvtB7m%c84=TcR6)Aa1vD5jG?erqhgMrB6Kb%l^d38 zNZdSnnZp^Yn@_KDIO7r*V5H3Kfi7Pp7*~qV)_F?VIphk)g*{H^tzPz(Abus$FJU2T znG=e=DVN~Y;t^FTTD7aKL_#SOxFVZSl(=^K6|U&r)l)Fu&3 z(Ry0TA_(bRV>oZ}J26;jl|QP%$MtZfVl#7oz`2AkAa0>|Jm{2Tx9Zb(Fk~S&2ckE( zh&~9m&-Oo6xDA(;&deL01oUTe*29bNLje5U9^h%x1N3^IUPpg{Ev9! zwTMW!iZc1Oz$jR&nMEp_8T;-1y(avG>tNn7W+?Lkhzlp^#ny2i2FRCmCwmHrBjQfl zbHr(n(7a~SE{%1&_Z-4;0Bb|KLCkXOjeM4wdzU{N@b|$iQPZY?JjZXwPkh@Tc~E}# z+NRoNbqy`PMS=e)!nQ>dhXQ;|D^uKvmTqQJxRO|I>Ei(j-Nrm1as229H&rB1DvdqgkE_tF^; zJCg?Q)lj5lAx^e0FgVkFY$f7^gtv(I8~Izr0T`00%edzer(XN~ADe3J#lMd@_CU}+ zt+C5@;nkS`PL*a1!mSC}v(XQaID;ZOg&R)N9GkX#Y3*Z9D;%54A9D`LypKoBi1Ysc zV+nLI!Q%eEr~@?O^3l$*@Mf|dF8CmSTIwT_5B6J>pgQ;vRtcX6cs1Ex6!I{0uQH|Y zc!aN`=ts46B*CZ253P?0@k=^NEA&Z;Nymh*F$z9R-hB@H2HV_5yoOxa!meG%pP*ax zNpZRGUJB<*8}6#vp3(-<$EzIrbl)2CGu)eOHH1E^SC2aP9F2;fEfCVE&!WT&i! z@{4$mCyeYvezthqlYKTm?b@C6l!ozXdbT#yO2en=pW5?&)Wu%$1>?x)_5Ld= zH;5eT3p}ToJxSHRlx%&GXO%TTO>0@A9Fj*oUFzpmFxw(?jbiFiZLp3RM$I$q0gy-8yeq7xkW zkAK*I02KN*`(!ot@J;Sg98piw{Xe>XKIDr2pAY}N(7HG7j0VI2VgYf0ct8Tcb@+`t z6VsK{KC%=O@NySqufra)cz zsBeq}M>cUqU=vIwGRb#el%u$WGsxePB=BvhGs&Tk#9HANuRAZrP9H|;FQjMeb7)Q^F z!8Z`to{y8pS5Pi+KucePi?FMrPIKK8`wiDQB;?xw8@>|+4mzW!^Gk*$jW`Pm*|7r~ z-48-hvH$$2k2#N}DE*`z8-5m}bp9$nr5EuVG#NX2{H~4ukHZk49G$9+R+TZTGFDYC zR+S=E8K)}6s#2mVrK&PsRVJv)L{%wMl}l7*lB$%e%4AikP?btmsZy0Gs#2{gHLBuK zm8q&SO;x6=$_!PRsVcKn+Wt*yOR~4!%J5;4zRsO9i|524&RpmBSxm{K6P?Zihks>**= zWtXb#R+T-fa+j*ytty?Wa*wLqt15d{WuL0trz-cWN|&naSCs>*@_?!wRFwx+<&dfz zR+WcTA}G z1SA2H0fPX80Yd;OfK)&lARUka$OL2o+<>8gY(Nem7mx?Y2MhxY2aEs|015#k0T%&A z0Y(GH0LB6?1{49t0g3@7fKtGCzy!cVKpEf?z$8F9U^1WrPzk64OaW8_Y5*R4WI(n0oDVq2W$Xr z1l$0)5wHnx6JRr73t%hYX230gZGi0n3fKW?2mBlGAHc1E+W@x%?f`TE?gZ=v{1>nb zup6)ka2MciKqufHz`cOIfPH}b0QUpB0Q&(401p5T0v-e$0vrZB1b7(m2;fn`5x`@B zqkv<873*cA4Z-Czce*pdj`~~=1cb{@jcl-YXx3gjp diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 6f6fde53..b796e15b 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -23,7 +23,7 @@ CMD.NOHUP lda (ZPArgVBufPtr) lda #S.PS.F.NOHUP tsb CORE.PSFlags - >LDYA ZPArgVBuf + jmp CORE.ExecExtCmd *-------------------------------------- CMD.SHIFT lda (ZPArgVBufPtr) @@ -188,35 +188,27 @@ CMD.SET.1 .1 jsr CMD.IsSwitch bcs .6 - cmp #'C' + ldx #SET.VARS-SET.FLAGS + +.2 dex + bmi .4 + cmp SET.FLAGS,x bne .2 - ldy #bSET.C - bra .5 + ldy SET.VARS,x + + lda (pData),y + eor #$ff + sta (pData),y -.2 cmp #'X' - bne .3 - - ldy #bSET.X - bra .5 - -.3 cmp #'E' - bne .4 - - ldy #bSET.E bra .5 .4 cmp #'F' bne .99 jsr CORE.FUNCRESET - bra .50 -.5 lda (pData),y - eor #$ff - sta (pData),y - -.50 jsr CORE.ArgV.Next +.5 jsr CORE.ArgV.Next bne .1 clc @@ -1195,11 +1187,14 @@ CMD.FI jsr CORE.StkPull CMD.IsSwitch lda (ZPArgVBufPtr) cmp #'-' bne .9 + ldy #1 lda (ZPArgVBufPtr),y beq .9 + cmp #'0' is -0 ... -9 ? bcc .9 + cmp #'9'+1 bcc .9 @@ -1207,11 +1202,11 @@ CMD.IsSwitch lda (ZPArgVBufPtr) iny lda (ZPArgVBufPtr),y bne .9 + txa jmp ToUpperCase .9 sec -CMD.IsSwitch.RTS rts *-------------------------------------- CMD.PrintArgVBufPtr diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index a9d93ce2..db274334 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -2,14 +2,7 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -CORE.Init >LDYAI 256 - >SYSCALL GetMem - bcs .9 - >STYA ZPArgVBuf - txa - >STA.G CORE.hArgVBuf - - lda #PUSHD.STACK +CORE.Init lda #PUSHD.STACK >STA.G PUSHD.STACK .9 rts @@ -67,7 +60,8 @@ CORE.Load.YAX stx M32.ACC X = Code to Execute *-------------------------------------- * http://heirloom.sourceforge.net/sh/sh.1.html *-------------------------------------- -* Input : ZPArgVBuf (String) +* CORE.Run +* Input : ZPInputBufPtr (String) * Tokenize ZPArgVBuf * :LOOP * if CmdSep=| : @@ -102,14 +96,23 @@ CORE.Run.EOF jsr CORE.StkPull jsr IO.Reset lda #0 sec - rts Ending 0, CS,A=0 + jmp CORE.Run.Exit Ending 0, CS,A=0 .9 lda #E.UNEXPEOF sec - rts + jmp CORE.Run.Exit + +CORE.Run.RTS rts *-------------------------------------- CORE.Run jsr IO.Reset + >LDYAI 256+16 + >SYSCALL GetMem + bcs CORE.Run.RTS + >STYA ZPArgVBuf + txa + >STA.G CORE.hArgVBuf + clc .HS B0 BCS @@ -117,22 +120,22 @@ CORE.Run.1 sec coming from PIPE OUT ror >STA.G CORE.bPipeIn - >LDYA ZPInputBufPtr Save Actual cmd for looping + >LDYA ZPInputBufPtr Save Actual ptr for looping >STYA ZPInputCmdPtr - >LDYA ZPArgVBuf + >LDYA ZPArgVBuf Reset ArgV Buffer >STYA ZPArgVBufPtr - lda #0 Reset ArgV Buffer + lda #0 sta (ZPArgVBuf) - dec -* lda #$ff - sta CORE.IntCmd assume external + + sec + ror CORE.IntCmd assume external lda #S.PS.F.HOLD sta CORE.PSFlags -.3 jsr CORE.GetCharNB + jsr CORE.GetCharNB bcs CORE.Run.EOF cmp #C.CR empty line ? @@ -147,7 +150,7 @@ CORE.Run.1 sec coming from PIPE OUT .8 lda #0 clc -.9 rts EOL, CS,A=0 +.9 jmp CORE.Run.Exit EOL, CS,A=0 .4 >LDYA L.CMD internal command ? jsr CORE.LookupInputBuf @@ -188,7 +191,7 @@ CORE.Run.1 sec coming from PIPE OUT .44 jsr CORE.GetNextCharNB Skip EoL char clc -.99 rts + jmp CORE.Run.Exit *-------------------------------------- CORE.Run.5 >LDYA L.CORE.IO jsr CORE.LookupInputBuf @@ -198,7 +201,7 @@ CORE.Run.5 >LDYA L.CORE.IO jsr CORE.IO.JMP bcc CORE.Run.7 -CORE.Run.RTS rts + jmp CORE.Run.Exit CORE.Run.6 jsr CORE.ArgV.Add @@ -225,13 +228,13 @@ CORE.Run.7 jsr CORE.GetCharNB bpl .3 jsr IO.Pipe.In - bcs CORE.Run.RTS + bcs CORE.Run.Exit .3 >LDA.G CORE.bPipeOut - bpl CORE.ExecCmd + bpl .7 jsr IO.Pipe.Out - bcs CORE.Run.RTS + bcs CORE.Run.Exit lda #S.PS.F.HOLD Run in the background... trb CORE.PSFlags @@ -256,9 +259,22 @@ CORE.Run.7 jsr CORE.GetCharNB .6 pla plp - bcs CORE.Run.RTS + bcs CORE.Run.Exit jmp CORE.Run.1 Loop with Pipe IN + +.7 jsr CORE.ExecCmd +*-------------------------------------- +CORE.Run.Exit php + pha + >LDA.G CORE.hArgVBuf + >SYSCALL freemem + + >STZ.G CORE.hArgVBuf + + pla + plp + rts *-------------------------------------- * Input : ZPArgVBuf *-------------------------------------- @@ -267,10 +283,9 @@ CORE.ExecCmd lda #0 >LDYA ZPArgVBuf >STYA ZPArgVBufPtr - lda CORE.IntCmd + ldx CORE.IntCmd bmi CORE.ExecExtCmd - tax jmp (J.CMD,x) CORE.ExecExtCmd >PUSHB CORE.PSFlags diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 4cdb7379..9d58acf6 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -310,6 +310,7 @@ CS.RUN.INTERACTIVE >STZ.G bREAD.S dec >STA.G READ.N + .1 >SYSCALL GetChar bcs .9 I/O error .2 cmp #C.EOF ....or Ctrl-D @@ -319,6 +320,7 @@ CS.RUN.INTERACTIVE >LDA.G CL.bReady Something to execute ? bpl .1 + >PUSHBI 0 >LDYA L.MSG.PROMPTCRLF >SYSCALL printf @@ -332,14 +334,15 @@ CS.RUN.INTERACTIVE >SYSCALL strdup bcs .8 - jsr GetArgV Y,A =ARGV + jsr GetArgV Y,A=ARGV, X=strdup jsr CORE.Load.YAX Exec CL bcs .9 lda #$C0+C.CLEXEC jsr CORE.StkPush -.6 jsr CORE.Run + jsr CORE.Run + .8 jmp CS.RUN.LOOP.END .9 rts @@ -348,17 +351,18 @@ CS.RUN.BATCH >LDA.G bSET.X beq .5 ldy #$ff + .3 iny lda (ZPInputBufPtr),y - sta (ZPArgVBuf),y + sta (ZPCLBuf),y beq .4 eor #C.CR bne .3 - sta (ZPArgVBuf),y + sta (ZPCLBuf),y -.4 >PUSHW ZPArgVBuf +.4 >PUSHW ZPCLBuf >PUSHBI 2 >LDYA L.MSG.TRACE >SYSCALL printf @@ -678,6 +682,9 @@ EXP.OP.BINARY.BITS .DA #%011 EXP.OP.MATH.FPU .DA #FPU.ADD32,#FPU.SUB32,#FPU.IMUL32,#FPU.IDIV32,#FPU.IMOD32 +*-------------------------------------- +SET.FLAGS .AS "CXE" +SET.VARS .DA #bSET.C,#bSET.X,#bSET.E *-------------------------------------- .INB USR/SRC/SHARED/X.ERRORS.S *--------------------------------------