From 76ffedf6de0d65b115e4ff84e7f22d60b631b174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 21 Jul 2017 16:46:25 +0200 Subject: [PATCH] Kernel version 0.9 : 'C-Style' Script Engine... --- .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/SHELL.S.CSH.txt | 407 +++++++++++++++++++++++++++++++++------ SBIN/SHELL.S.txt | 61 +++--- 5 files changed, 385 insertions(+), 83 deletions(-) diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index b680ca1c8b76e29f8c9641a02aadbf8f2db8a740..217aa6ddc9020cd6b31a3c129c034868b15dfb2a 100644 GIT binary patch delta 7963 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 delta 7470 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 aQ>{WY!bKTG&mKQ!5IspWmed+VlK%z8`>C1$ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a1c3323d1538513c839b4d3ff1e28ecdff7da212..23efc05c3b2ce5f8c114c4ecb87f23f19530c16e 100644 GIT binary patch delta 2242 zcmYjS4{Q_H8NYkB^A{&3;g6TB<>fhlZ0Bs>9ZljSg;FuHr1BsPS~R-RLtU8Db!F?S zF)c8ky4b32z~X?oFa>(Mk`SjjJ3G?Ys%2x*ihR-Nj-YCgkTud!6gJx4AT3oliM@Ab zY_|N~@B9DW_rCA5DDtAnYu|9#KS7M^#D0gz{!c`ePrl*MY1cCpbq8^!9_nut^$BV! zpWI(KZ>RevH?5+Tic;!U1$6|uT|^9t^?!V$6^QZkc_-&!*LKFpWqpZKUXwa{I z7gAF?ZFXF)O;Lljc$H&b(C!%b!mkD7-+MvzuCjpkf|AT2SE2eVtgL+n&Lg8!Ig>%A zEizDp&5&|3iD0=$Yf)du8hN!9Sc$U8^`S2|h~OSi7MTn1wZMqy9D--%fDa(LQttMF z)`kzgnj1^Y@=Aqy4UghX`rU#aG3+TSEOaVw$`d~WZYP{)w6$s$M}dE2{Of`Uxbht>MJZ6Ui=>=OB7B39BvKx6Yb0gV;-3G1 zZmFb|-32?v%FZmP-o?*18e#BS>`x)&8_$o7gSb%WZr#sC?Tw0f6rndpNf`%}o z8fKY+f8Y{>_k3CjY0Tr})ZuQJ4U6xScB$V8YGYR8I;{Fp#&8cmgron1=N>_UC|eZ} zZ|QGVlniqBG#~pblgpr0DRZy^PUcbG+O~F3%#HRiyNi0IRrs7Za zZx%+w$5m>y_4r$q+_e!r6(iStMfVyn!SjsP11lP}7YS>h?lblf*0Xw_u|0i*ch2$7 zdER-GH$9l09;eK*&h%Rpe4a_;9(bOK;-BVC9U)tdpwc8Y>#(hDSzN(cG$pfW#`rtt z;);!h1qWD!EG~<`btSE-!Qh20l6}ahGe;J&;WC^f&Wc zAiptqQzN7vX)D6;4SslzAD-ujZ}I|M#|*^wDkB*b{*J_H&-Masr*b}nIw!94N3QYO zR`mf9j^UPIlWn;>5^Joauk#p2JMl6^O8ZAxcj_7*L!DDM_~ethz| z3(?f!Fdmz3VWjy#&gaQeG|Sq?qE|N?k5tKP;D;(F z?NVYT(1xMBz6msZF^uPO>qxlkfl)HjidTCo5*D&yJn|g@d2bV_sXhP`?8LWVf>Wrg z`2Qq#X|-`b9fff=-7BAJ0<(!Q7!BKAm!r*~*}laCx5#QUIJ(BZwe#t(+Pb#ywnuhs z|FWYavg7I9a|e*o<1 Bg(?65 delta 2311 zcmah}4{Q_H8GrX2C&7uEkc42;Nj%QMXP@o!T{3~=H0dB|8h1|Wk#s|h!ex*uY9V3_ zu?b4;tck~1$Kn)mWD4!|MA8Js>DiHBW1|X2s&bLaE|iWD8k7AIVry1TD=JevX?xFJ zr>RvHOTPE}zVG+_dEfiqi$-gr(HiwxbKZTrzVg*Bvpw%4y0&8axLKo0YXMlMg(5rn zGXVGLy2|OUg4=o2XVVSElw4*3zSZCuZ7U^aM7*cNlmDW!?k|U@E{3P5Pk)%70>;-A za53zFzoK?sD;@{rw->#OKHPAX_IaQ5hP<8Lz208$HP3sVo1P4p@n!hC{9*6Q-rJu2 z8@Dl2%&7CM^WesLX3(+E`I4iPsq|iPU2(OsZLFVdU>RZ9d)^BGT9$g9urrcyqAPB- zD6tMr+K|$Wz-3X6CTaZz*_vbxGdk>6cgyi4U0R@Az(%zVWoW%sKAWTsQ|S1H2{1&< zr{Xj!v#XnxeVCD>JwPTpMVJ2F6&a$@4tt6=7SRXpQTsU>yyG>jwBr*XO40=5n6k!k`U=6Naw23I~kqlCYC_ezF4bDcNV%qDpp<0FDsVSMjw#uxp^$&9Z@8Nxn^&1iBH8mR5B zQ2kOxL4d!b{RTxC`HG0``eHoQY`5asiGn~Y5P=-~4q;YT;%=jdi z4+=hqz~?I>jwve7k#8d7(<|isB&(dlVs=JUQ)q?}M?i7nj!*ij4{D87f>xrhm%&7_ z62>gGd?D*WO6!sH<1AXHZQ{i5{3M$3(BJD25?(avL7{VYtdRzJxYM5TX$?lzoZ+}k zkp9UMWrT7p*MuhU5V7#@E9kWkWNAzCkh$F{0hEu#&V%)D9 z;>U5SIFCK_zod9$(UwQ{Che<%p2!i094F~)qC7P5@9a8;=e-p7hf>av{uG^%$Kvz^ zkl&2cB0BDpu|3=0fyetBWq{0XwMRRq7o%lX-HjI5^Dk~k=z>eL8g4vAGZBNq}!XT zqn&OQMvKvYw_1RH!m9YPVy}oOgV`C2A>d#*uNj*M@8ib3Q$1=Qs>WZMd=t;2?6MOt zN{E~ll}*_yznP@Rd*Y3=M!^|!Y&hmievxR6!oYZ(PB!Lh%My)80^>dNjr#wnxaczS zc9oFhvgGntxuv%@L1udZKLGWkfhQi*Eu-~MH0XH~A-|Xk;P(YrSgLIqEYiL^ScosO zNjoa~MUBTGfWbS}L)BBeP>i42jbgYD^Soi6oms6vOo(WJPjpG#W_bPdCDW$7COc}9 z0+&p$NDG%t*JFM-<~RLVn*5Ea^TOMvN$PZrGF$0t9#ylnHQ0ij!bR6_O*g6OZ~SsC zw0y7o`+Zy;sGJ8iEn2QbV9 z+qd@lw$wb`v7PJK*5nHXw~~KnQ#csrI=C&{!XU!jT9Mb(@+4puR-`qzcL3)0inNw( zZGidUb6Vspt84A(1kT0Jd0$BjHnoL;BeOCu446A#W%w{zt z(WLQ6o1e7xZsXC`qqbV_tM>5hVcUPTR$E)O^=R#V+5W%t-uvwV?ZNEaQUgbXG(<^3tTuy}#oS>iV)F}DDWiF4)>!;xb#Q&?Hw-2`i zvGB^9!VldPc5L}K^T0O#1)PBn5s(k*KvgzB%65 z(AsJp>Twy#*J#oPq}C-y8_D-NO>XHKNkyU)1B0oaZQaA9{~VLOZ_wn0Bf}~1*x20A z+0sVtH))c2x7RS=!pxz5%q0Dnm{IU6n(Q9vO;s$YTTAY@r!e$uV0eC$#PS^*;?0{< zf>F}n0oeDhBwVqvdw9)`ty>erWV}a{J^ej2`?sLk+oQ0J-_hh~_c*!VmlFhyrBO0J zkXX>F>qE7|<_7YAlqGCDF&Z1#xrmJ4)8x>$Au|5J|8|r9F>~-oCODqTa9{;?85PyW zUxC!$O~&8&UrhQtO=365_=nt#(tp~Uv8JJ`vH8HU`y5qCn)L$*W2MOWp+oFh$&Vb3 z@#e^xiQ&P9#>T@VqnARh%@O=f-d7#ixb!!K@%}g$QbXRKx>{~#b7XDb0DqI~=MHRqPbyMhN8w*Mr2NcQe0=+s z!Tyns(P8qw$?)`+SB;bYmSd8PUxFdnYQe7@Vs{!k*Tu>8Hq#qPB_s9qr2iUd!QaT? zikgY8%^k7S(p39e;JqX91lqem3%r-LIGe9n`L|P7Hh$-j8}>ftcs}6aFi6FL45ERj>4tFKUlt5+J_M+{|aWPbH@Og|57Io zYWg>f&;3d6xmx@m>(+Z6m3cvOSQqcj^CulSypX9un8d}Y$STtFz>Ir_V{&zC)8+~Z zE=Q!k&Fa}cl&VPxjJngYDkZ>R9*jL z4>n9)s&J#j%-Skz$(7EE{*tqxkeZ`nm1up|G9zT3t(I9u?sMz~I=Xj^B>ANxWjg zDk$x|X-Yd^oziY~&bENbP>*%~Y%Q4V6`o0%%t#MQO5Vg&W?frtz0{I^0j3vhQ@W@; ztCGwC-@Q!2MR2i^(!&RGgn}1?p}M1dwrm(X zg^qoQ`x zG-|G!mGJ=0cgwV4{Z=eie4Ewb(Tb9{J0=IQ>%#8cU(6Aij4vsLA5&I;2PXRO#I9AV zEsw6*n;60Qz02kcf$7~q@_yM?5o|{sh=Q*uo;U{Ze$`$mk#sI~5uYX$DdGEuoq z?S$|Xjbwh!UWbBTpK2nFt(|0iLs5B9ar_XNDf_0i-m8_?J*+0fz8;x6S=iU3YVu=h z^5d91=Lzc;uU3|PQccF;eTud4w4~775|7{}Y)g!dlJSh1|E!w-Eg+UY=ZMrwBacQW zHg=^J?HEdR4-XGsvY5oo11(| z5rBog46yNv;^6xV_Xhyx|Ijuo<3|!~yeh3K{9|_Nr*CNKx}I-!mgV#veWT<-tZQHM z0$}`1(S1!3cwG|EN`7t)`L*KY8&hrHKzPeh28Xk3Un+y)Q}mV^`Q@~cU#XF|r;Yqt zt@|6fZs|J?Bo`f$f-ooB<&!3;a&~y(!fi ziM4HvfCl;B&pIM9X(0pAu1Gr&_K031ljtf!sp-AlX6h2zomad{QKi~+hRMdMQGlqj&9FT*2AP#1Y)KE## z>bNAYctuENK%p>Y`M1N28m+0LKoKFwXiW^T*SlIkS5Uavy7`j4&?zNInmD41#5cEf zHJq`ZhmkX0K_#W>k@k(T&b6(ZCL)hM{=}0{J^jp2^_fm%R{mS&s}Fwnh(r7E=y;yj z^4^&DQBq8fQAwFSw=F$a3^h@3jy=@gzFsi1pstaEb8TqTh7JW?gW%AHZfI+Ytrc2X zP}e}le3kK)(~=`=`}z~9W;oi!aO#Nrx2{DMa?rg1lOyr2hR&`-J^j5@xDYusu7E|6 zXw}$aDnHJeA92igR35qY#<}Jqnv66xq^hZUv32pg+VPGh)~)Yq)n!X|j+dX_YR>PO2v%)rYw4oGsGNdt6c)%=lm2XKk8O;#b&uM17|K)YY;+CP4fL`5FMizH|u?|3M{dtk-ts6_++*WbOJcF+uQRe^61A z<-R;G?1)*5FV8DYu2qUtSrr)QicxUg6sXWquz4yJbsq|~Oo4VZY>3AwaOzYryg=}@ zDZtJWRC_4UIt3h$f$nsgXlE|S>1ih@bm+16XT^GY4(SfA|9 zE3Z3O(m@1ro;oAv^BLsRAg&SVnQ8VGJI97QrbRv0#rMys^!M5|DhBEax{(4~t?QC` ze%A#kKXL39rD&gZe=@JyaglZM&5od>-@5NM$9!!&S#K@O^ZQ62Kn8CPO6oul3|Xo2 znf}6yGi9jYFil#X{WE=SBbmg16w{0yT!I>>;7(P2!hS^Hso^%c4s?mlT{B$HQ6T}HnWym|IY z*TpQg4B#5pCjj;BV~=BB&jN1l&j@t@D8*Mna#4+74`MwwBd@@5wRN$s2g?s)c-A43 zbsF>2g!B%#8lw2aa_bgdWBnwRS80trYIx4`UkAF#1f?sBaIus0>zT77N}_cB{23{Z zUBqyG7Be}Cj~ic$KE`5@~K=xp{H$C)l9?? zB#o!~k%N)@S;+xMm#B-9`#IZMWj)&WZN*_$?d&_?!}DFGswIuu-mDW`Ff&xI5i=J5 z!C|ex%@JB=e9ToMWYT}k1eBpa;qUa>TNi=zU*CZX;?JURR&M-->p){<{FSE;p{mXQ zqAr9ICcBW}KdcVa= zNR zQDq$txr!ajth++45=X>(F63HJalFP6PY2#Tx)6IDSltot>P(d{jGweHe)jO$1LZWQ z+H&2gmpP)=k~{TzjvDK&YIg18kfPMIrlGMM1vu;R zJN4q^Dh;e2jjV~MYF4ZycfH1e%(eEn?*xsb81Wq!feNa08b>h-Bmx@$r?f5c(e7c+ z3VN>QxlvkqlE%J8l)(>1n&YYJ>gs59P4)8X6<1bQSMedNf`n!jU&>YDBHnkme(dg< z&m^Ck5h3qtF&$TM*C9#JbFvM&o&hV!dx`{fu1ljd*bs$ctdUwU8#P3{8`iJiO!-at zv%M3+uPdfCsgRi}*JkX-+IN>;dfqw>S%fsCgS=iQr{D{+S=*u#dc~c)MUx)c)YYGAjnxbw#a1OTLBVxbz87Ht?VeFY0|uwlT9ckfJy z1yCp0DBv~Q(ixlBW&M{k%>oD_zDXBgpnMb3pxaTaGg5q_OP z$kZjWof-<|XP|5t0=bsLW(F)xg%h{sWVqz@9V!sx92FcAUZ_P_b8xn}9;|O&=yE3u z)x}UxhFiuhL635o;u2I+kk@OwSNjImeejZ|UpiFOlEZHH4g9{`t%aJaMdL^`ToaDt{nML-YhaY+LF_{iO``ky*zwqKqFTe7AB*X6?UFV!_ zImT!HF}V#Mpywj;E}FLRV&->An&05kEW%=vU>FgBd=E;ieHrG>im0G1|9BO&kx?x- zy*Mg19q(EkZr34PYvvLZjGX+n_H8dfpg%(Ta%N+NS{qT!N_+?Ftm_7yf%;Wx@%4Iu zOHWWic;)4ldt-Q59>mi||6tEWh>ct)0$02fRMXOvtTzXp^NU$>_FCrZ44sofCwhui zJnXDq(EydAR$Q_MY;jV4s+|k*Ax3_lBE1pl^-UsjQY9zr$&HRGUkva9B!D6(SWw+W z^VV7a+31*iQZokfTQI@mR}3Fgxg7QFCH*vDaN5>0gxXM6se~%mTg4;JKl_w$yeE=r7FGC17J>eJ7` zG!uE1db65yUJlv4or#eI-b%LjihxQ#AK3nGMve9i zBpf?=2PE5>0-p=1nJl>D0mx3u?CyiWu=V}(G{0kn^OL|va}-OWn2eft{*JVv?^K3< zi7<4oKpx5o+R2NwEGxo6lxL2sMd4vDwJyHH;a?Hl#YU2usLtu`X;YJGD*XK(D|OC{ zz^WAF3|v9{y1?~C;U}e6LXI|N;R!XnmV*1l>=TimQTPC%?3DYVbXu&6e>V3x@kI{<`xX-H-pRhw^+sF&UwjOr!j`qPB3=+6q4lmq9kaSU`hWH z2pPu|S4iS=MfBe}g#y<0A)#ZpV$*15x$ah-C|{QQG5;&}ez2dFm1top>An8y)TP4r zh)r1?LVjm&3Z~c-eE0K&T!TZ}m&czvPYGbJ!ZW;?kq`)#83Jc89oUY<9mW>kEQj(`}ZWPYAPn{3;Cg- z{IsO(e@5u5k<;_jr1K-=Sy_+qe@orZD9b~b#`UY4;^cWQ!!J~fr{QlyJQK;GcmT&$ z_Fa7Yz9)}4-Wbm8U^G;HpSMz7#{8KtV7TN(E4kBIT=No68Q)%bYT@M1c!jSfWZFpm z$o~U*)U%%{ihpEn@6^M~%~vszdv87oe$XwGf&1xk~}wWiCz4I+{J>A#V*QXW$7QSQ!jOvEcp{J0Zr6X!Jlm%EyAPr zUzEJ)%=jxLDE^zgb5CenL+0PpbM$}k9{e*Cy2QqYVmrJ0$@MQA2L%2Nq~IqUw)mI2 z{*xIf_^-X5~WWa9}Ibmd`4FbOVa;600rjg^;Sj-Ht_6LZ{7`HsYA zS@eq;@;ORx|bX_*PCB7~So?6mIK>YP8*1>zM2f+6dJ%bW#Tp~L#u zWzI^??XVW?a#j_3fM9rKgd5i1VF|v(9fed?DC(|3u#Y6jINY)fY zgO9HW t}$YKaWNWjwy5e+^oORbN$I+sU1Wx1rtg|;4Bb?E2WPsTj?I;PJD$BW9X zb1!ffTe~lJ7U&DO^~kzE<@6=VTxd_Dg5$Cj?y3Zw&te^%#3Fu;M;FRsz}OP&NMFL6 zuoQ&w{3|x;a%@tSJ%@~CvUXxd0AdZ-lYzb+(aVC?9Z4DeS5c4&*9di&QMxOK?+m*u zM_&n)qB?8#gfm=*ejGkdW<4q|^+$!tpCC&wbtgKkYj!(V6n#p)f}W(_23O1RvXiYh zb~{V!PT`GF-dpYrc^mA9ZacbnugOyG;1C5HxjQS6Y?_M5eL8~KwQ99>aI6b9)Q5Npk)v|Kf;^|o z-Laum)+z9jz+Rt=4hVVTQ?TcD32aVmr%)F!6P^u@$s})nn*98YVuDC{59Tf)pDv2d z5D3iSA-<=1Cf7_z-;6EwpPA7ySBtq#%{&WCDIayVZHy@x);Yptl59pgnt-Sn%|G_z zHzv3ACI&`Z2Dq+eo}VV6cLOuHB?pt2VaL{!#wzHw7do+$mL>pab6qu&keL-qYyI8B z-J^Yj169!!T7lv7b|lbGiqIV73ofu{p9D6y2{r|neaz*BX~)K`LP|2dA4C4_8MbUs zY7S&@1{nuELs>#f4PBhZDHyhw2IJ;PW@+>bQD6u66Uf=6P`l`LCD%@SHuQK2(B_Y& zJ)Kc>A{pZ#$!G6U!TWf%Ef5tPwAH~^%pt(VK2pJ_Z8)pxa2l>( z1G44US|fX$^GmN&WN_Oa!Jq8opds!Dn)_MnzCF%4o}&r_U<+Wpl)Sme8Co`(0e{YM zko3=EEdL9vd!ff0l^)UlLq#_WJ+8S$YQ=S{tw(ea-6k~?xLs&wiba1hqlzzqPVupf zRo#(ZKEPFB^z0#>GgX0DL=aJQu((ud84*o^2HnnP1o%Mcwh-U>Zp}{AJ-Jh>#!2@A zqrj)BtGF6E^n+Ya4-R7u6=GTG{_91w733kr7&T;sHF0Nniey>3A>O!V!`dno=8G|f zy9?1yVV0yhGfFj)t$WHOMHwkE_j7RV-K0C_qLf*U`txT!i)bsRd0$i$Ta(0*3fZ zELGL~Dp|JG!pp3otDK=zBO07qERL7wXCUpdV_UW>P^YZJxjD7mY(j)tbz zSeq)FdZPTzo?Fy|am&_N_t)kfzxvLMp|^~*CPqzf?Cl-!gl+f86HO^#l$gS9^Hl zxl>Dq1)@`{@M$Rp*Y{bBXQYXf`D|JY|F^OwP@F%P;r!d+yzo0V=c405|1MyG?`3rp zsVj)Q&u0MzuJ;8%?5^mBuE7>EUkt0o5xcyk4)V*OSoDfe#!U2YAs9J!$T_1Q%|L7T zVIi<7?6NZ^)twgZd{B!t)>Lv(uMy z(SPL@Oe3e`8H)@DALnr@(KLPo+Xokgo?+A+lPoL$fC2B-c*5d$vm(4-u}My&WZ*T6 ziRgI3B7V2xGFBMxR_TaLNdb)@e$RQ&f>r4Gm^KgI4XIC>fn>^NAk}?Aci#Z%@OI>Z zpJR8Jmd-DHo{C=7uOEc-Gu;xCogus*`tsQsvKU@CJq~LW4Y;l#JYPmI87wBp$$%4N zu?%=Wkr0N2j)V*3mpKzI(Dq<(eq_MwvE%``ytL%XWKdF{CN>-(8E}2V3(b>WNQcj( zP`MUK*4N3`Y_Q2eB$~F!fbZil*;t^E7iym&^Ef;Qt`gn&p-TM8?e;Q;L6>uD&806RPgdAwgwiKWE8e~^F(!*;D-JbCb&)l1ISE7 zP`Fy{0168yW31>DVX6DLT#{<*-kwPHqa}}Hx(1AzYceK*w>f^5!;K?$I3{=4w|4sa zv)859gQ=L!YDL^4EzHfS7*%J{JWY+^K5oUBv0m9ro78_{yC!}hD)Mw{lSx%8049=NJIaiCUu=p2fN&Jc_eo^00s%v~Gv6O$vRCr!4zvnBO zC~b64p=oZxm?~}bfNXv*KUoXYO(?V3D$T~cKwFX$4wQ^-66Eey0Wxne}!^%^5qTO!_6-ekvJbQL~R=T=i!n3I_!~zLzQ;TqXrB+a-=p$KVk1 zIeXcpxcZTPrY!Wc`NYTBisZ55hP}AjEOv`_z;(f2=rD)$2wym-W=d9#@ z$?>cM0t;8cRg&f4)q-VFP81s2CpPLJuVqV+7U0k{0Y04(;II|L4+2r>aA@c+w3@_(`>Kp98Sy^HVf{c3o@UgmdOe zUrW> zEY)t;_&qB)^NWz8r^osO{w_zc=t~kka7<_wo|aqMRZ1JaLlbXhGic78ippJrO2Aos zH;DVGmDoDnK1rJCR_K>s6I zJ7!mG9-V3`#$&>@koWPaJ83?F)m8rRByZ|d@idPf9-orNECQ zrJSEO8m~(0Hh!$m!cTxX@25Entdbo~HV2FGJ6yTl#?O?gy$1O!mr-ch>tdpv-`JUm z|K~E3V>Pyn$QVEThGs<%Is=WyFXZH+H*@A5koji=64SRJ65otC^S=alg}+i}Sa~KV zr{T8+q2S`**x+u=c_%%m@Ld}&UJkUZck>>o<* z!XK$|!Tn*$9B0kH&n)x@dm)iDmwv2SRS9Qt_>bD>DF09PYQ~?H&i*0-{v&Sfg`)>& z`mMqrIzQNVyYs=@jYDssspEr1^kMl4v+%om|7rXK{QWoWnT7x7KXlU`^Zc_M=0pE| z-E^EFdcBh9?!%8!r3oVGM;jfo3NkzrQsmX_esjAUs{@VbRoCx}qR?(ss0I3S3U6@Z(=0YJsT2B1r@oV-P8fM^LX zCwFlM!Yp_YNvkQ`2n&SLGypB&AW@e2ZcWBw9pDe)w3>tdFxd$XN^{dt?kOuLa~@i; zL}wTU=ku0kOVqL!q|4JY#5)Th2)h+!QTQ#V00M9YLDjccbcJKBg&8Pr1#pdOghGSr nfKZwK=GrSLBQjSAqO=P35Th&hP@oX)h0&!Ndh?EjUEBU2B^i=~ delta 14021 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 diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index dd2f7caa..c22043a8 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -5,9 +5,32 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -CSH.Reset ldy #CSH.hStack - lda (pData),y - bne .1 +CSH.TYPE.CHAR .EQ 1 +CSH.TYPE.INT .EQ 2 +CSH.TYPE.LONG .EQ 3 +CSH.TYPE.FLOAT .EQ 4 +*-------------------------------------- +CSH.Init >LDYAI 256 + >SYSCALL GetMemYA + bcs .9 + txa + ldy #CSH.hSymbols + sta (pData),y + + lda #0 + ldy #CSH.SymbolsPtr + sta (pData),y + + >LDYAI 256 + >SYSCALL GetMemYA + bcs .9 + txa + ldy #CSH.hData + sta (pData),y + + lda #0 + ldy #CSH.DataPtr + sta (pData),y >LDYAI 256 >SYSCALL GetMemYA @@ -16,18 +39,16 @@ CSH.Reset ldy #CSH.hStack ldy #CSH.hStack sta (pData),y -.1 lda #0 + lda #0 ldy #CSH.StackPtr sta (pData),y + * clc .9 rts *-------------------------------------- -CSH.Exec jsr CSH.GetBuffer +CSH.Run jsr CSH.GetBuf - ldy #CSH.hStack - lda (pData),y - >SYSCALL GetMemPtrA - >STYA ZPCSHStack + jsr CSH.GetPtrs ldy #0 @@ -68,7 +89,7 @@ CSH.Exec jsr CSH.GetBuffer sta (pData) jsr CSH.CheckKeyword - bcs .5 not an internal SCRipt keyword.... + bcs .5 not an internal CSH keyword.... lda #0 sta (pData) Reset Cmdline @@ -95,6 +116,81 @@ CSH.Exec jsr CSH.GetBuffer .80 clc .9 rts *-------------------------------------- +CSH.Quit ldy #CSH.hBuf + lda (pData),y + beq .1 + >SYSCALL FreeMemA + +.1 ldy #CSH.hStack + + lda (pData),y + beq .2 + >SYSCALL FreeMemA + +.2 ldy #CSH.hData + + lda (pData),y + beq .3 + >SYSCALL FreeMemA + +.3 ldy #CSH.hSymbols + + lda (pData),y + beq .8 + >SYSCALL FreeMemA + +.8 rts +*-------------------------------------- +CSH.GetBuf ldy #CSH.hBuf + lda (pData),y + >SYSCALL GetMemPtrA + >STYA ZPBufBase + + ldy #CSH.BufLen + lda (pData),y + clc + adc ZPBufBase + sta CSH.GetChar.LO+1 + + iny + lda (pData),y + adc ZPBufBase+1 + sta CSH.GetChar.HI+1 + +CSH.SetBufPtr ldy #CSH.BufPtr + lda (pData),y + clc + adc ZPBufBase + sta ZPBufPtr + + iny + lda (pData),y + adc ZPBufBase+1 + sta ZPBufPtr+1 + rts +*-------------------------------------- +CSH.GetPtrs ldy #CSH.hSymbols + lda (pData),y + >SYSCALL GetMemPtrA + >STYA ZPCSHSymbols + + ldy #CSH.hData + lda (pData),y + >SYSCALL GetMemPtrA + >STYA ZPCSHData + + ldy #CSH.hStack + lda (pData),y + >SYSCALL GetMemPtrA + >STYA ZPCSHStack + rts +*-------------------------------------- +CSH.SavePtr ldx ZPBufPtr + stx CSH.BufPtrSave + ldx ZPBufPtr+1 + stx CSH.BufPtrSave+1 + rts +*-------------------------------------- CSH.CheckKeyword phy >LDYA L.CSHCMDS @@ -142,40 +238,6 @@ CSH.CheckKeyword sec rts *-------------------------------------- -CSH.GetBuffer ldy #CSH.hBuf - lda (pData),y - >SYSCALL GetMemPtrA - >STYA ZPBufBase - - ldy #CSH.BufLen - lda (pData),y - clc - adc ZPBufBase - sta ZPBufEnd - - iny - lda (pData),y - adc ZPBufBase+1 - sta ZPBufEnd+1 - -CSH.SetBufPtr ldy #CSH.BufPtr - lda (pData),y - clc - adc ZPBufBase - sta ZPBufPtr - - iny - lda (pData),y - adc ZPBufBase+1 - sta ZPBufPtr+1 - rts -*-------------------------------------- -CSH.SavePtr ldx ZPBufPtr - stx CSH.BufPtrSave - ldx ZPBufPtr+1 - stx CSH.BufPtrSave+1 - rts -*-------------------------------------- CSH.WHILE CSH.IF jsr CSH.GetCharNB bcs .9 @@ -271,18 +333,69 @@ CSH.CONTINUE sec rts *-------------------------------------- -CSH.ExpEval stz CSH.ACC - stz CSH.ACC+1 - stz CSH.ACC+2 - stz CSH.ACC+3 +CSH.CHAR lda #CSH.TYPE.CHAR + bra CSH.TYPE +CSH.INT lda #CSH.TYPE.INT + bra CSH.TYPE +CSH.LONG lda #CSH.TYPE.LONG + bra CSH.TYPE +CSH.FLOAT lda #CSH.TYPE.FLOAT + +CSH.TYPE sta CSH.ACCT + + jsr CSH.GetChar + bcs .9 + cmp #' ' + bne .9 + + jsr CSH.GetIdentInCMD + bcs .9 + + jsr CSH.GetCharNB + bcs .9 + cmp #';' + beq .8 end of declaration, no value... + + cmp #'=' + bne .9 + + jsr CSH.GetNextCharNB + bcs .9 + + jsr CSH.ExpEval + bcs .9 + + jsr CSH.GetChar + bcs .9 + cmp #';' + bne .9 + +.8 jsr CSH.AddVar + bcs .99 + + jsr CSH.GetNextCharNB Skip ; + clc + rts + +.9 lda #CSHERR.SYNTAX + sec +.99 rts +*-------------------------------------- + + lda #CSHERR.SYNTAX + sec + rts +*-------------------------------------- +CSH.ExpEval jsr CSH.ZeroACC ldy #0 jsr CSH.GetCharNB - >DEBUG bcs .9 cmp #')' beq .8 + cmp #';' + beq .8 jsr CSH.IsLetter Fnc or Var ? bcs .1 @@ -303,24 +416,46 @@ CSH.ExpEval stz CSH.ACC sec .99 rts *-------------------------------------- +CSH.GetIdentInCMD + ldy #0 + + jsr CSH.GetNextCharNB + bcs .9 + jsr CSH.IsLetter + bcs .9 + +.1 iny + sta CMD,y + jsr CSH.GetNextChar + bcs .8 + + jsr CSH.IsLetterOrDigit + bcc .1 + +.8 sty CMD + clc + rts + +.9 lda #CSHERR.SYNTAX + sec + rts +*-------------------------------------- CSH.GetNumInACC ldy #0 .1 iny cpy #10 beq .9 - sta (pData),y - - jsr CSH.GetNextChar + sta ARGS,y + jsr CSH.GetNextChar bcs .8 jsr CSH.IsDigit bcc .1 -.8 tya - sta (pData) +.8 sty ARGS - >PUSHW pData >PUSHW L.CSH.ACC + >PUSHW L.ARGS >SYSCALL AToI bcs .9 rts @@ -329,6 +464,156 @@ CSH.GetNumInACC ldy #0 sec rts *-------------------------------------- +CSH.ZeroACC stz CSH.ACC + stz CSH.ACC+1 + stz CSH.ACC+2 + stz CSH.ACC+3 + rts +*-------------------------------------- +* Vars... +*-------------------------------------- +CSH.AddVar jsr CSH.FindVar + bcc .97 + + ldy #CSH.SymbolsPtr + lda (pData),y + + sec + adc ARGS + bcs .99 + + adc #2 TYPE + OFS + bcs .99 + + ldy #CSH.DataPtr + lda (pData),y + pha + + ldx CSH.ACCT +* clc + adc CSH.TSIZE,x + bcs .98 + + ldx #$ff + + ldy #CSH.SymbolsPtr + lda (pData),y + tay + +.10 inx + lda CMD,x + sta (ZPCSHSymbols),y + iny + cpx CMD + bne .10 + + lda CSH.ACCT + sta (ZPCSHSymbols),y + + iny + pla Get Back Data OFS + pha + sta (ZPCSHSymbols),y + iny + + tya + ldy #CSH.SymbolsPtr + sta (pData),y + + ply Get Back Data OFS again + + ldx CSH.ACCT + lda CSH.TSIZE,x + + ldx #0 + +.1 pha + lda CSH.ACC,x + sta (ZPCSHData),y + iny + inx + pla + dec + bne .1 + + tya + ldy #CSH.DataPtr + sta (pData),y + + clc + rts + +.97 lda #CSHERR.DUP + sec + rts + +.98 pla +.99 lda #CSHERR.OOM + sec + rts +*-------------------------------------- +CSH.SetVar + + clc + rts +*-------------------------------------- +CSH.GetVar + + clc + rts +*-------------------------------------- +CSH.FindVar >LDYA ZPCSHSymbols + >STYA ZPPTR1 + +.1 ldy #0 + + lda (ZPPTR1),y + beq .9 + + cmp CMD + bne .4 + + pha Save Name len... + + ldx #0 + +.2 iny + inx + lda (ZPPTR1),y + cmp CMD,x + bne .3 + + cpx CMD + bne .2 + + pla + sec + adc ZPPTR1 + sta ZPPTR1 + bcc .8 + inc ZPPTR1+1 + + clc +.8 rts + +.3 pla +.4 sec + adc ZPPTR1 + bcc .5 + inc ZPPTR1+1 + clc + +.5 adc #2 Skip Type+OFS + sta ZPPTR1 + bcc .1 + inc ZPPTR1+1 + bra .1 + +.9 sec + rts +*-------------------------------------- +* Stack +*-------------------------------------- CSH.Push pha ldy #CSH.StackPtr lda (pData),y @@ -383,6 +668,8 @@ CSH.CheckStack pha sec rts *-------------------------------------- +* CHAR related Subs..... +*-------------------------------------- CSH.GetCharNB jsr CSH.GetChar bcs CSH.GetNextCharNB.RTS jsr CSH.CheckCharNB @@ -426,18 +713,18 @@ CSH.GetNextChar phy inc ZPBufPtr+1 *-------------------------------------- CSH.GetChar lda ZPBufPtr - eor ZPBufEnd - bne .1 +CSH.GetChar.LO eor #$ff Self Modified + bne CSH.GetChar.8 lda ZPBufPtr+1 - eor ZPBufEnd+1 - bne .1 +CSH.GetChar.HI eor #$ff Self Modified + bne CSH.GetChar.8 lda #MLI.ERR.EOF sec rts -.1 lda (ZPBufPtr) +CSH.GetChar.8 lda (ZPBufPtr) clc rts *--------------------------------------- diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 22d94116..4e2c217c 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -15,9 +15,10 @@ AUTO 6 ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 ZPPTR3 .EQ ZPBIN+4 -ZPBufBase .EQ ZPBIN+8 -ZPBufPtr .EQ ZPBIN+10 -ZPBufEnd .EQ ZPBIN+12 +ZPBufBase .EQ ZPBIN+6 +ZPBufPtr .EQ ZPBIN+8 +ZPCSHSymbols .EQ ZPBIN+10 +ZPCSHData .EQ ZPBIN+12 ZPCSHStack .EQ ZPBIN+14 *-------------------------------------- CmdLine.MAX .EQ 127 @@ -26,6 +27,9 @@ CSH.Stack.MAX .EQ 15 CSHERR.SYNTAX .EQ $7F CSHERR.SOVERFLW .EQ $7E CSHERR.NOVERFLW .EQ $7D +CSHERR.OOM .EQ $7C +CSHERR.DUP .EQ $7B +CSHERR.UNDEF .EQ $7A *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -78,6 +82,10 @@ J.CSHCMDS .DA CSH.IF .DA CSH.WHILE .DA CSH.BREAK .DA CSH.CONTINUE + .DA CSH.CHAR + .DA CSH.INT + .DA CSH.LONG + .DA CSH.FLOAT J.CSHCMDS.END .DA CSH.IF.END .DA CSH.WHILE.END L.CSH.ACC .DA CSH.ACC @@ -121,7 +129,7 @@ CS.INIT jsr SetPWD lda #$FF sta (pData),y - jmp CSH.Reset + jmp CSH.Init .1 jsr HIS.Init bcs .9 @@ -239,13 +247,16 @@ CS.RUN.READ lda #0 plp rts *-------------------------------------- -CS.RUN.BATCH jsr CSH.Exec +CS.RUN.BATCH jsr CSH.Run bcs .9 - jsr Cmd.Normalize lda (pData) beq .8 Empty line....nothing to do.... + jsr Cmd.Normalize + lda (pData) + beq .8 + >LDYA pData jsr Cmd.ExecYA @@ -255,9 +266,12 @@ CS.RUN.BATCH jsr CSH.Exec rts .9 cmp #MLI.ERR.EOF - beq .98 + bne .7 + lda #0 + sec + rts - pha +.7 pha ldy #CSH.BufPtr+1 >PUSHB (pData),y @@ -454,18 +468,9 @@ CS.CHARIN.CTRL cpx #13 CR *-------------------------------------- CS.QUIT jsr HIS.Quit - ldy #CSH.hBuf - lda (pData),y - beq .1 - >SYSCALL FreeMemA + jsr CSH.Quit -.1 ldy #CSH.hStack - - lda (pData),y - beq .8 - >SYSCALL FreeMemA - -.8 clc + clc rts *-------------------------------------- CheckSleep ldy #Sleep+3 @@ -541,6 +546,10 @@ CSHCMDS >PSTR "IF" >PSTR "WHILE" >PSTR "BREAK" >PSTR "CONTINUE" + >PSTR "CHAR" + >PSTR "INT" + >PSTR "LONG" + >PSTR "FLOAT" .HS 00 *-------------------------------------- MSG.GREETINGS >PSTR "\r\nA2osX-Shell\r\n\r\n" @@ -561,8 +570,11 @@ ARGS .BS 256 TIME .BS S.TIME STAT .BS S.STAT bStartProc .BS 1 -CSH.ACC .BS 4 -CSH.ARG .BS 4 +CSH.TSIZE .HS 0001020405 00,CHAR,INT,LONG,FLOAT.... +CSH.ACCT .BS 1 +CSH.ACC .BS 5 +CSH.ARGT .BS 1 +CSH.ARG .BS 5 *-------------------------------------- .DUMMY .OR 0 @@ -582,11 +594,14 @@ Sleep .BS 4 CSH.hBuf .BS 1 CSH.BufPtr .BS 2 CSH.BufLen .BS 2 -CSH.CmdSave .BS 1 -CSH.SepSave .BS 1 CSH.BufPtrSave .BS 2 +CSH.hSymbols .BS 1 +CSH.SymbolsPtr .BS 1 +CSH.hData .BS 1 +CSH.DataPtr .BS 1 CSH.hStack .BS 1 CSH.StackPtr .BS 1 +CSH.CmdSave .BS 1 DS.END .ED *-------------------------------------- MAN