From bf228856009b7354b089b2029a79a75ebedd6fed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 1 Apr 2017 23:01:28 +0200 Subject: [PATCH] Kernel version 0.9 : KERNEL.S.ENV.txt, MAJOR bur fix in $?,$$...system vars --- A2OSX.BUILD.po | Bin 819200 -> 819200 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/A2osX.I.txt | 2 +- README.md | 3 +- SBIN/SHELL.S.CMD.txt | 7 -- SYS/KERNEL.S.ENV.txt | 258 +++++++++++++++++++++-------------------- SYS/KERNEL.S.INIT2.txt | 8 +- SYS/KERNEL.S.txt | 42 +++---- 8 files changed, 162 insertions(+), 158 deletions(-) diff --git a/A2OSX.BUILD.po b/A2OSX.BUILD.po index c21fa5114bbcc8b67aad670150d60e8b77c982f8..aabf54ae5d967424f8ca1281b42448a78c0eccb2 100644 GIT binary patch delta 1597 zcmX|Be@qj16u?SN_u23^;vqlRKzqJ(T1HZ!3l;Nf(WyZ)q1t26VWM*J~l-z&*3dG~$q^FE*V zF7MtQ!7EEzw_uHM%pF67Qz`~9c|v&i1SYp( za^}y0D96eJYWB7@##y5rb2+e|O&y4H!U(Gk91zrSjO$RKm|d2z#X0L7$1FopBB~U6 zPsBOfmN>^8Z5Q*B`uUl6ppW~iK7~WEAVI!oRy;q8J2AH$HvR5Z*k-wb7{U;DV3sq( zOMHjY8FzE=B=1eNNLvYbJ81U>OYD*0CSsU})Aq7ZbxSDd2VF#;4|Edk>=PIYy0I=o zWp+jj=FTvMYi$Oyi=Dp(U-8(bf(3%YSpvU?yJ13j6M+n8C&Ptrj1QmtD?qcvXd3%4IeR6_jgO`a zQj}l>^cGZRI34t^@DoBFsw407VbcUFZD;3EA{2xnyDeN-w}lxEYJlZxm#-1h$2sp(~=w421G0Le?VLgc7(U zwt!t5smR1a&eY3lpRr5buAF!F*mp(_;|2D6ky>I?WNMSWGD_iB?9I`J{F~u%AGM>v zdMjMNu;5g>vn={n%JWUkn&e%H=H)j;P`_+H4BTK}xCp2m@yehf>^Tw>mQOX&?dF4OdL2y<0UUo} zvMYh%LOCvbSQ|+@j)_+zY=_$lAXz}IqN=I&)R$C5H>XSJcs+06OX4M4sb=b~?q_v> zQMPtQJFWdi{j&Cs=7wgV=rDE6v9TEBDr$7zRJ1S)og^By!SQ)9(BUyhZ!xIE-*#Lt z2F<43I&T&{MEXhL;pxItBos*Jl1>V-Cw0zaK9cQFnJdj_ojpEM$d5|cC2-R5i4JHL z)B4b~9_ymP*i-g#S%Iv^PL6&2k z0eC*r7+rf2W+`i>IVbMId~{%YM@nG77u3NXUjHqx@4iY4+2aU@?40PQAwO|~H!$~Y zyy0V47gBpFV1GHZtZX&8FuzGKPV#y-w{Mu&Pn+1xcJ>k6X#}R1G)6kbWkyxZt`Eh#hj&~zf+9TV_}2&~5P7T==$7&ZVZL&g#^}+*ehSt< zAQ4SMgC>$U1Xc@q6GG95=&_HYxKO`Ha_tk#P4SLHG+2XQbNot!ov5j?3_x@=l!0X} zsOlF9Q3!T?DL80&lT0=TSG)NitlZku`~ll0_z~5d)YENLD2VOBVy-9Ov?* zo=?3+OrrjpW|1%S_~}5Va4)Zm?nA9QX{2E1{In2K4c$TyAwz4Id!Y(YR%JDYR<%4! z{5fMSWLj=p)fgD68k0<#R3?LZr9oY8P**f9sa?CF0d7+lR;j6`A@ZptjJG|1CP79Z XlOjt&mWoV*lGgtKsnyd} delta 1674 zcmXX`e@qis9DnzEm4f`J8%PIPd>$vz>rsvlwPS2*oNi2TDrv9tldX`Mp?54{?)GkPQNA{d`cPgdEgI# z8mMgjK-Ecw&>t$rER+5}yL8DwRsV}g#GteL^j4x^AbR>sEu57H>VN!)RG<4U?96SL zlI)r$*aK2~CZwK8$qjmeXPOgF&xp#Z67blo7u={At+?3Ih0*X1qb&m$=8q(`4?z+Tu%_61-E z*)0BzQ@x;*G}ye?tTsE*1k|c&YSm;c^=eOG$^Er=d_lvs2Az=&wjdA)5xI!~5Q^K= zg))DNF$0~wW7js3Hjj2xBP-fr{jAm2lJfm0$ug6-W-YxuOI|O(D3@-MUzWGZUIN>D zK$-^xfl}=T_{G3+kk)krh|@K|4%*?Lgcn7WjhN(RXHF=u!b1+9_1_aXQ9E=&C*E)A zK6S6lP_bt8b%Qv>NOi`b#}9_Wn7H-!si7j zX8NS@{)?ke{xsT}uN&4wkEZRSvv_P}#;oj4xT_k*fp!=R~<2L*xE>Q&vRVUw*58lHr9X8 zSXWbjpl)yD_Ub(cYWAxH7U~*b{jhpx&FSBXN0u|Cgl>AngXCjCy{b?%dTTkNtV|WN zjoHDpGY^da80U;}Q=E+#JuG^kImBp~oAjl8wm>O}6x^ma7ZCYVD=z0BV@|p@7sBlH z*Ny%pyw&D9DEyt)yXp#|k(hP$6hbSp$91a^?zA|J{!H{a6{M8u-ntS#96Dy91Q+WLP7np}Vg4jIba*Vj7K@@QxH`dG6fA;5SCN2WCGiG}yw6 zMJ*augDepmY`D@U7sbNgww0Sb^$47^mo#ybx6l*Bac{{9&htDDyvBL#COja(3Dxb3 zgpd8O0(HktN8_fh8=R6ggn1<1RpVqFM~=r?KHe606&FFnlDJ9C?mHVdUAKrC&Ef;p z?0TaJE+gWugGKOL!tBa1!*?(`WQLZ<%FWy&j}7;>Jw^3SP}_#jLu zl?x`%LACm|xNA2D*AP+H4;OEc9UK4_pU8DExNg@a{R zHNRSNOIX^%(oeB;DNCO)V ztuh6z2U=?D4J!5&{p#1&dfQf8kJh$+t!=$pduXkG|7YfXHyg12)a=g8^UO0d&pgL} zp1tfc-({Ei9&~D!w6uszE1snn%}+bAP|KgqlOmfP-NM!3csG)488~5?^O;uCcKKjm zKyU6|?q`ng@xxn!J9ST!&g?(nhpD5uj-@^xx!&y#pW=td#shlAXj@=BFt>V=&3RG{ zkqylDKm2g-U@vq1kRJ~8_3FhN0-=^&Tek*7Ea@ply1A>Xr`yYt|2KxN%FFCOGAQbp z^T)9x(Wm`{A7=KaK@jenAYrthq9N%S?(vG=(FrBD{aHiqMrM1CA08NJS=+{+SQGTUp={xaH!gSuw{(|(3o5`T`)=p0LbVQvnyy<$xA z>dZ-gX)^PJ*{=*{KBm0}W~r}Z6J6oNHxx;6Nn;&LdGquwwf`Dap@8ne%6|i@p!d+LQ$ z5ZY4Pt!lo7w~43M@rH^9=DuC6ZB=L(THu@CfK#yFF}=E@kiPoPNJURo_FbyAea!}s ze{u|JGuF(sucJTjSY)^-*YOR0*t5c~`&wDi-4W4KxZs=7hJtVL7_zR8wgZEGlX|h= z(}jOK+L-;G=+L5jBk%VVhVN4wQZd@)CmqgyAeKS%6{O)S+BdeWU&fpd(h4p%zGBVJ zhh{YRnDh9IhI*EKf*;;K79tW~TYD?h9>yxNAE7BBRl}5jJUqJwO2TG;E2MykiQhKWst#)P9YX=2R^J6}5w2|SD3~`*b%h3o z!FzB|U~)_!42+HIz5Rg@vwz>9fJ)&`Gxy`9QiHfn(W7ArPta-7y~%u%houdO+1B=n zfpJWS`_0_A+_XheQk<#{x0{4_;95&jymc%CSDGxzX1-4mj5fWO_IYn>f z@V*}T@XETyFdAEW$6%Ln?O`*R6J~;TutG{-KbNJ!SSZUq6&&u<4pEwvcD6hxBZD9?hB&n&qkAv z+5Tee|GR4cwf8VZ$@`>KbR8gzcy)+7B6U|=MRFh4EX5y)=ZAPI8WNX&c-mU*e>M0* zVgCj`2_JD!lNby3GRNQXsp$|-crUa4L+w!JKO>i3onil%ai+x|^T_R27Z!e^dei>R z=}_7R#(D!GLj&sBf=~J3qX*0KXbaU2?lVT{y}Lr8Ag&RP@rL7Rng4;h2YU~wK~W_s z`;13wkC#|J=aKct3+kE0^ps9+k-krjCzD~Z$onE2=8->(v*1W(MeaUclA)n5*sC+A zRZ*$!o;O!~ek0E;2XVXw7pqr^D2Wp+M_8iW0&5`+N*yatjFg-xbI(z;#GF@YQsjaY zB^MZHWY)c{3xenl<}I#x{DEcOCR}t%5AeN2{1!=Vi9@+2P|ay=YC%cCy2ZJKHujcj)F>d;BNfc{PD2XBW@xI{GV% z=4tbx+x~h2PtBe`v)j|=_4p$-Z@e7uY(tN~XH)ahH@C#GqQ}MPQeNmhMQTPtYu6ZA zwu~o4AQG2mNqun>#!8u3h7;&2VmJcO7&6 z=#1`!A2Zk}x+B_87y_54#oT6|+xSyOL_sJnR>m{T2tsSi_b=NuIH-38#`~8r`?HXO z!fu#{=Rm#mdGY0DzQp;$X|lg4WuN1C3DbA2_pjL0%+g*KOA9Tj**}Yw$Uh!x9i3#_ z&%tZ%FGNubui&r9ar{*gXyNYCU!o`RSH_CUYs*>6YxHG8Uq41MJEApK__{dK!V8>l z7_z|_ya}q(UyGl%@RE$*Flm~m$7^q)cm8k1>{dRH|6ZKk%JZ#nqsje$BGAfRgMTpi zG&1dvXtupW3?`WSPfCg?BMR34JiSlM{uhIAK1+X>XeJL(ShI-!SLH1%EM)fgFoNvW zJf^)5)>$8j-?Z|~*&iyxLr1My*1w`X=Wn9ms5P5^B+fo+&2#<3T)wBA75r1qc&v>l z*aJgB-77<+PjOO}fw=)KpIP^&;wlH%IyrK;{E~U0hPPjHPT*!Q(2=^5A%LXj?P0 z_hRG*8j4-(gDZ3fxzcgNZLyrKpg~?k=D2xu6uuwPOnuJ?4v}fw$a(g27;hOH4H&+8 zJDMwY2)>q=hlj}fQ+h!RjNqFB^WFtLFpBC6628Rm2G1N<8f-< zMNWTwBEW3Bv9_^6X4^xN#stfrP@-1EOclR!Xta7_F3Y)CJh+x;^Dl{K*7DNYOAxfT zHOI?nr8{p{=`?4ujma?K(u%8g9qJ>t#B%sex%XV1z58gj9ZBhHCB`zaSvL2|GR+ zV9rCaVI0J<3y4DrE-v#|!7uNy*uIYEmLE|(loMz6n@MPBZas6}LZQ78fp{P7=AT=w zu4IN~3hO4`KU;I-UU^f+=q6rQpN7x&bh=e)P4Mt6Hxq;F4pAC)#`R%2Sw!fr=om(5 z&a`Zz&%t=_AxMAk{SQ3&(D4%wKl13w$G&lQWn25EpGLUlbHUG@^?prWuCfqnBYboB zwyU7G3tkgfFK^n`%#joR5c1&Q!0DvvHNXO0q#kQ)J$TZ(ye%EZd^c=nufb~rc^ z!hPJjl~q)TvGaJD%Q08lm%R{-X_Xk9UnTB2kLQJ}(JpU9Jxld4kI#2#rb5_im5sC4 zMdfjO*%|p$ijUf2HOWygXM}~ojPo#~cRtwHEA~+<6owhvBKHnSUnm&Bwhs*J0eyEM zw1lNJfCa6verhr}c50S~X$!z8x6#~%lJfn-Bh~s=%5C%!j9kJpn+zJCZ;JZH#z#Uy zNxBfE6=xZun*xZ3&*$ljbIv}knXID{i)o8MmyOs+K^oqvu^j`W`gs4qm`Y7+mWtX7 zcvaZZYzpgTwJpjMouMwsr6d(C5=+!4gX567suiTtcX}anXecmPtrwMisYoB29ER1= zG1bV9YMPg62oP9(yD`;#45w^)aAZ$7*cZ!r7^b~iH_|A~#I$7~%vsJn_1;5Dg)S}M zKi$8CIaU}#%&%j4E184#p@#$8aKb^Bv+2Kx0>_oL`M)i|ajqdG z?o{>p%rjpghdm%+k}z$Xz6bj_Fua?N3OhJ7vOB163H0t@+6AsC3VxbH$<65a-$P5lfmUz(!RH{aB1vXj+;P*C3k z>7q6xbHF%+#yVUMQX>FA_`|gAVB5IkzsrKl2we_Nh`x(>>YPE0UNi(DXu|@+8{lqn zF>LauyDAxvU}*8Ecm zssntvb+^1SVlu$%+~H z*Edx+>sv!3L-1GA^J$krPWz=sj6cO}UuH59&Iq&EdmcTS%*&L_6gsG&QAHfgu9M*K ztpIZNvM>~DA0l^^3B_`f@g;NZHYX=~d^Ky#(k@c7np>_pYbFQ48 z|BSHkDhx=tn${AQN&P{!mdvlrSj)7{O1#GO8H7Jx8(l!sb!NK?Yp*wY5UbvRDH0=Q zcQeRtoF==;Y~OsL42KU*(+Q&cs@Z=b=nkWk+!*%j2+4gj>9!1KZ($PZOZXbCgwP?| zt*XU#n_5ur?PBp(o}Hh2$Bc!UKGW0U*AeU;6@?gN$+=UUi@z;*%^XV>Zl4_4z~aBo zDr*T2@z_>gne$E6B!R^EZ?Verh_LJ)aPQhBc8+jY z$6i7T7j0PV3<1-NN2VOnZ)k2hp;2n$HnGtylVN0 z(?(SzjC`0WpzaZ46Jeeo1&RG6&8C91$7oZ(jp#xKo_XI9&urtlYrkvGj(e&XEhS(eCdnS)(@;GbR4OJhMeOv&W6;5M?6$W<^hk#(t#YPnt{tC8Ig-hcs7CPS#Uq z`xLBEKN-QI4b9z)ide;u#L<3UZv8PvSN%jh-_I-g)8dnUUSLIH&FY^K1q0ldi|l!9 zOYbx!y;tt3J{TNk<t(gJ+UXI_pQ(*i z!7$yz-5CE4cadtOy(({m7~0PB(|;4IQg0b5<@>F;b36BD{SGp?e-HIKZTj@L z#e3U%8vldPcJNXwrQWsgh`Jrz6aEv<44Ana*|vPIgZ-f-uw!#OOG45eT_e(JB;L&V zp4uC^ZUPS7?<>OE7((X51GUaF5zre=+F=ZZv$FibNnAkkX3$p%g3 z%Bs(CRVWo=NO7PfQUU@w9b9E*5>mGy7pjaC?+o&};aO;>i-%Qf{6>~!jmd!OnSHjA zK_NG?#rA-uJwDo}B~Z3z=bm{p^FgOWWm+as%WR1XhS%nRAT^157SEqSfxG2Oo=HO& z+i4*1DaMTRndSn63^$?b>8@0KcBaMVias$k#7hzzVwn5HtwR8Y8pMx=c=5u-Lc$5i z22na%L=1{&&dY2i2FPD(-LsVu1#RU^DOuMTj2t6yKJQ;;rm6c+F0%8F*=^=gD?&dR9ghXvos z-6{5Y*asC3X!9XdQG@xqpq?9C&IQ0t$jcfk$m$zK{3!QrXrfh1*lr={($C`XC5Ah0 zr;v>TC1yL@Skxk8Q7Mb%qSgX zyfmlX5WG=lBXXhD`p#Vgu6IZzSnmcy>B7+DKT3e)aOz9ew!<)6-YJ9|S6n(3NpT#xiXp zT|H;KcG=b&c*_Qfx6Fuvvd%G(lhdP9mc0=gCR2hb#LUC-R#tg(R)~KZSJsaNiDKRy zjF8ypIdqaJCfL`tYph>}*(`Ijc;X3bhUHu?9{RH-wHUCSp%h8L;z+e62`mNhI8xT4 zi^SWzd0`kJoMG&!I>8ATZhA1?YoKt_K%zVWAl&p&>H{FBl3S($iem}eOt{Ss;7uaJ z`d7}Rsy40`(+HGH3MttQW~F0-pR$%X0nEuD3g&nhMiuN94X3R6835)~ zjL|e@WXr)&Xe7jrP4K?3d}g^I`X&&4E=a!!Zm4zbnx5{pow~ohwWnk48hs&4MBd}+ z?C|&KYuB){Ee754E{|V6&qPuF_8RjeE9*5MBLLyYi~^$HUK3Ws+Pti+&m4wFfY@O^ z3^PU{&JRwD8at}JE;_0m&(g@1JZ)=Z9vv2!c+sA=4U1~;?q1uyaCsNrU`O=umVs?7 zz8}Mv;eCfPqiH&NasVB@k7R6*61J>a<&~t863LRHL^2dZi6xknL$Q>;C}jeYBv6XS z-{8$C(rJ10O}_1ta2taaVf9(80LO%yb-UN=Ec< zbb9U&G z#`rg_VOjwu$sj*bXJ%B3F~!nr7iFw(r>|o$Yf}~VL=;WZfj3-cTZRM+E$hbH$tX?t{2N_ zRM+R&HF1{k>3d~sQhd|kR&b^CX#eVwz94hLp(uCM>5;rr7b$Gq9JZ;MVjp-J5;b#4 zj4bUvS4>N=)I6xh8HR;v&Dbzk%Zv?!J7CGJGdDYHT<}WMcsIyUh5+v*O-kbw5ZQs@ZF(Irx}r{T^Yw9s z@vGII6s-|Y;cLrUb##VNc6KS*lvyX!x^CL+cE=7ypXP^rg*~ETH!mn%Z_cSRZ3EhK z;a_5XgpYj0qc_AoYzy0yR3HkJ-aDBWrgn|?1;&H)kz~PIvN6tq-q<7fc9nY|Rt@EsaIc1xTkje_DbHQHP$%PN;lJ1S^qpx*Qr;i^1iJ8V@7!Aq)E z!M@>b95tAaU_dXNmIo{fYQ@{P#^uL*nY_knKC#Zh-JQ;P2IQf4daznQbIzZEVSu`U zq+MVh5Yrm*-PJ_VKPkV7`m==##n5eWP2sc9?KoR41{|3kxU*b2f_R|M%(lcxn3v*9 zax-PS#0NtWOsBR0tdwtHCSNq#TcaFofQ@Cji-{aVzGdK3vRq*-KoU!DkIN3P00kX< zJyf?t?HNL8_eu#HPa8hGSS7Dg`)1al**aB9sI3Ougf$FV13it>qdooAy3m}oPO-%G zpsdnHa4bR?r(fk@6`RAdV=hbTQOu2j_Vpx|%%z+gh@X)IQQ~Sp2YvFun6?pfWNso@ zl+eqHm7b0@J#;vDox7abHY-FW{aj{RC{O!FvP1w8yll>Skj)<5(1quVjyvL-oWM<0 zpu)5Z!QFR}h};q9P=+cE`1LrvBCcu2luw6+2L6v^FMPIC~{ zPIzwPQcJC28Gt&YE^XPsV9*~7gnIj#9X?ww*vD$ND~*{vb~Ns}axralWqpVHt7P;H zpV%`n6r|_$Bg$bm*zg86IylPgcmOlDFYRklv(o8Vwz>z8jR?8zw_*V8p^s(UCf*pG zmF~TRp7Elx%DK{y#>_<+<}#X)X?Mb0rQRiWW;0jsK{p)P0=N+Rdp-4@PDj!Kv zWlh4}u`E&c6Zh_%m05hhVKHGyAAkf@=s3e2r9Y%Z z2_KJ&qMg9NIS-o_UrO}I8B;nQjgjc&8Qlrrj!N_$L!$3a`?l`(=BOB}{mXrxwv$Pr zSsw!Z=+;V|2&m-UHw!riRUt?25a~$v0w=XxL7>n*XFgRTw-uL z2lh?ITFy&jT1d8(FUK&JLmc60sj~IR=tr5(jJ<{}FR7cizh`5Qeym4pSwfH_J@HRX zTaXi1twtnJ0Q*-G@VlsIfNGgOg<$`^B}_ zSktoz+dsXZ%F8kih*Rh<0M;)h1Q>n=G%f)sKiQs2rV*x}d9@g>w5I39AC$g9M}YxA zM_De(Y}Y6YUVE*mzSio=y-s~~Uq8d3OJPcG5PPn*7W0U>{xyqhj^jo{dC5H9BxJSG zp&0cw?}a8HLg81%+efSgX9KmTvz<;45&_;zOGd@w?wgg1igwd+-l8Nb{+d{E#99=0 zE2}(qoi(9~0$}%TGo_?0ao&E~ol3hy%Eph%3a8>bAx+|4YEl_u+rO?h7lE~Qj70s0 z6m`|zXNdaESW&-qrl{IIAWykBW_~$A+I>oZ`=tQZ2iT1){Xucr&DJ#ULzo)xOVM+e zNkHmxvSQzl+SHC57oAh+!^gjo{-miajo zpB=TPFCfqrK}s61Rsvs(>!(6N`LGIN7H^StK?ro?;93%9aZiH;I2LH4^G<6+o>djE z6jOOx6m~@+3}9DQ8ZU0Y(^?WvPO&d7dc~~_hU6=z8{KnKCGw-tD>fJC ztDF;0sq$6h*j?6~+1dmK&YcwFr>qtH;z+@z?j+lnRN|>!f-c{s;?yatmw#FO6|hYh z6;06qB?fD>U8YDf_aZ-2MgO7T&RxN=anvyYS5gH{uKgTg?F_e`HWkA#ipbgzKvar1 z@NRcGgh;;vqo}-4-1LMsDfdd_8+kL*^L?Y!fZJ6HaJ!m|otl=KMMX^sUy<8@cZGy& zOlO~cok$p+l~r@S^7*MZO#6I_p)MyKNs6c+YBbeN!MCu~o5Z@&S#H}Q0uV--^T3nV z15eIA@TBd)lkvx%OgJjy`|Ope*$BZ6v{nH@KzsZrSM}K+al-aGj_tPJ;xdwx#6Ozq zq?e0%DUP{e?Olj#dr#>>()%iKF-L!3jxK`oeTWS*-XQ-9nxwzc&QAX@=p*B(VU_<* zEdOD!{O3%T|B7Y#G4D|N0hRnjfh4Yf$DEETI<$_b-@(sSmT4YFuvB@=nK z%^1HS5b6vLdsa7Z#QR3n)7lcG-)By{^0*b7*GV*XF0(n{YVo^*q{JEXyXKe!)i_xE z#3W2%{<_M6LUp;v3y`a#Se;d*h;!YJ@){JUOHr}8C`)HH6r|Iml>;^D(O&`>Rq1&d z;sLiKH*7>g>K9fBg9xyl{?VE(TXC?R76j$wS)%5$ePc%teiet{WD9*{iHMA(_o8C; i6of~ou|#|%pQI5Og~n&$=O@K7Jb(^9e=N^FX9E}j delta 15073 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 ExpandPStrYA >STYA ZPPtr1 phx - lda #'(' - >SYSCALL PutCA - >LDYA ZPPtr1 - >SYSCALL PPRintFYA - lda #')' - >SYSCALL PutCA - ldy #1 ldx #0 ARGS len diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index b7c73133..1bd3cac6 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -13,19 +13,21 @@ AUTO 6 *\-------------------------------------- K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string... -.11 >STYA ZPPtr2 +.1 >STYA ZPPtr2 stz KrnBuf256 init Expanded String len=0 stz K.ExpandPStr.bFound No var found yet + stz K.ExpandPStr.bNoExp Reset no expand flag ldy #0 -.10 stz K.ExpandPStr.Start +.10 stz K.ExpandPStr.Name + stz K.ExpandPStr.bInVar -.1 tya +.11 tya cmp (ZPPtr2) End of PSTR? - beq .6 + beq .8 iny lda (ZPPtr2),y @@ -36,55 +38,75 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string... lda K.ExpandPStr.bNoExp eor #$ff sta K.ExpandPStr.bNoExp toggle flag - bra .1 + bra .11 .21 bit K.ExpandPStr.bNoExp - bmi .22 + bpl .23 - ldx K.ExpandPStr.Start - bne .3 already in a var? +.22 ldx KrnBuf256 + inx + beq .8 + sta KrnBuf256,x + stx KrnBuf256 + bra .11 + +.23 ldx K.ExpandPStr.bInVar already in a var? + bne .3 yes.... cmp #'$' no, found one ? - beq .2 + bne .22 no, store.... -.22 inc KrnBuf256 no, copy char - ldx KrnBuf256 - sta KrnBuf256,x - bra .1 + sta K.ExpandPStr.bFound Toggle flag + sta K.ExpandPStr.bInVar -.2 sec - ror K.ExpandPStr.bFound Toggle flag - - sty K.ExpandPStr.Start save var start - stz K.ExpandPStr.End - bra .1 skip this char + bra .11 skip this char .3 cmp #'{' we are in var, "{" after "$"? - beq .2 - - cmp #'}' end of var? - beq .5 - - jsr K.ExpandPStr.VC we are in var, is char valid? - bcs .5 no, end here - sty K.ExpandPStr.End yes, save end - bra .1 + bne .31 + ldx K.ExpandPStr.Name No char in var yet ? + beq .11 normal, "${" syntax is ok,skip -.5 lda K.ExpandPStr.End get end - beq .1 empty {} or $/ + bne .5 not allowed char in varname, end of var - phy save current index - jsr K.ExpandPStr.AV +.31 cmp #'}' end of var? + beq .50 + + jsr K.ExpandPStrValidChar + bcc .32 yes, add to varname + + ldx K.ExpandPStr.Name + bne .5 varname has already chars...end of var + + inx must be a $? or ?x.....go expand + stx K.ExpandPStr.Name + sta K.ExpandPStr.Name+1 + bra .51 + +.32 ldx K.ExpandPStr.Name + inx + cpx #16 + beq .11 varname longer than 15....ignore + sta K.ExpandPStr.Name,x + stx K.ExpandPStr.Name + bra .11 + +.5 dey last char was invalid...move back + +.50 ldx K.ExpandPStr.Name + bne .51 + jmp .1 var name is empty...start over + +.51 phy save current index + jsr K.ExpandPStrGetValue ply restore index in string... - bra .10 reset start flag and continue + jmp .10 reset start flag and continue -.6 sty K.ExpandPStr.End end of PSTR - lda K.ExpandPStr.Start are we in a var? - beq .8 no...exit... +.8 ldx K.ExpandPStr.Name end of PSTR,are we in a var? + beq .80 no...exit... - jsr K.ExpandPStr.AV yes, expand and add to STR + jsr K.ExpandPStrGetValue yes, expand and add to STR -.8 lda K.ExpandPStr.hPStr working from our temp string ? +.80 lda K.ExpandPStr.hPStr working from our temp string ? beq .81 no... jsr K.FreeMemA yes, discard.... @@ -93,63 +115,31 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string... jsr K.NewPStrYA bcs .9 stx K.ExpandPStr.hPStr save this as temp string, in case of recurse - bit K.ExpandPStr.bFound Did we expand something ? - bpl .82 - jmp .11 Yes, start over with hPStr + ldx K.ExpandPStr.bFound Did we expand something ? + beq .82 + jmp .1 Yes, start over with hPStr -.82 -* or exit with Y,A & X from K.NewPStrYA +.82 ldx K.ExpandPStr.hPStr +* or exit with Y,A from K.NewPStrYA .9 rts *-------------------------------------- -K.ExpandPStr.AV lda K.ExpandPStr.End - sec - sbc K.ExpandPStr.Start compute len of VAR End-Start+1 +K.ExpandPStrGetValue + jsr ENV.ExpandSysVar + bcc .9 - ldx KrnBuf256 - inx - sta KrnBuf256,x - - stx ZPPtr1 Make Ptr1 -> Var NAME - lda /KrnBuf256 - sta ZPPtr1+1 - - ldy K.ExpandPStr.Start - -.1 iny - inx - lda (ZPPtr2),y - sta KrnBuf256,x - cpy K.ExpandPStr.End - bne .1 - - jsr ENV.CheckSysVarPtr1 - bcc .2 Ptr3=VALUE - - jsr ENV.FindVarPtr1 + >LDYAI K.ExpandPStr.Name + jsr K.GetEnvYA bcs .9 - - jsr ENV.NextEnvPtr3 Skip NAME -.2 lda (ZPPtr3) - beq .9 in case CheckSysVarPtr1 returned a NUL string + >STYA ZPPtr3 - ldy #0 - ldx KrnBuf256 - -.3 iny - lda (ZPPtr3),y - inx - sta KrnBuf256,x - - tya - cmp (ZPPtr3) last char? - bne .3 - stx KrnBuf256 + jsr ENV.AppendPtr3ToBuf .9 rts *-------------------------------------- -K.ExpandPStr.VC cmp #'0' +K.ExpandPStrValidChar + cmp #'0' bcc .9 cmp #'9'+1 bcc .8 @@ -167,10 +157,9 @@ K.ExpandPStr.VC cmp #'0' .9 sec rts *-------------------------------------- -K.ExpandPStr.Start .BS 1 -K.ExpandPStr.End .BS 1 -K.ExpandPStr.bFound .BS 1 K.ExpandPStr.bNoExp .BS 1 +K.ExpandPStr.bInVar .BS 1 +K.ExpandPStr.bFound .BS 1 K.ExpandPStr.hPStr .BS 1 K.ExpandPStr.Name .BS 16 */-------------------------------------- @@ -315,11 +304,9 @@ K.SetEnvPtr1Ptr2 * CS : not found *\-------------------------------------- K.GetEnvYA >STYA ZPPtr1 - jsr ENV.CheckSysVarPtr1 - bcc .8 - jsr ENV.FindVarPtr1 bcs .9 + jsr ENV.NextEnvPtr3 Skip NAME >LDYA ZPPtr3 clc just in case ADC in NextEnvPtr1 disturb CC @@ -344,28 +331,33 @@ S.UnsetEnvPtr1 jsr ENV.FindVarPtr1 *-------------------------------------- * PRIVATE *-------------------------------------- -* ENV.CheckSysVarPtr1 +* ENV.ExpandSysVar * In: -* ZPPtr1 -> NAME +* K.ExpandPStr.Name * Out: * CC: Found -* ZPPtr3=YA -> VALUE +* Append VALUE to KrnBuf256 * CS: Not Found *-------------------------------------- -ENV.CheckSysVarPtr1 - lda (ZPPtr1) - cmp #1 is name 1 char? +ENV.ExpandSysVar + ldx K.ExpandPStr.Name + cpx #1 is name 1 char? bne .9 ldy #1 - lda (ZPPtr1),y + lda K.ExpandPStr.Name+1 cmp #'0'-1 $0...$9 ?? bcc .1 cmp #'9'+1 bcs .1 and #$0F jsr K.GetArgA + bcs .8 + >STYA ZPPtr3 + jmp ENV.AppendPtr3ToBuf + +.8 clc rts .1 ldx #ENV.SysVarsJmp-ENV.SysVars-1 @@ -391,22 +383,25 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs .DA ENV.SysVarsPID .DA ENV.SysVarsCPID *-------------------------------------- -ENV.SysVarsArgs lda #1 - jsr K.GetArgA Trash Ptr1 +ENV.SysVarsArgs - stz KrnOut256 - - ldx #0 + lda #1 + jsr K.GetArgA Trash Ptr1 + bcs ENV.SysVarsExit2 + + ldx KrnBuf256 .1 lda (ZPPtr1) - beq ENV.SysVarsExit + bcs ENV.SysVarsExit ldy #0 .2 iny inx + beq ENV.SysVarsExit make sure not overlapping buf 256 + lda (ZPPtr1),y - sta KrnOut256,x + sta KrnBuf256,x tya cmp (ZPPtr1) bne .2 @@ -418,7 +413,7 @@ ENV.SysVarsArgs lda #1 .3 lda #' ' inx beq ENV.SysVarsExit make sure not overlapping buf 256 - sta KrnOut256,x + sta KrnBuf256,x bra .1 ENV.SysVarsArgC jsr K.GetArgC Trash Ptr1 @@ -432,7 +427,7 @@ ENV.SysVarsPID ldy #S.PS.PID .HS 2C ENV.SysVarsCPID ldy #S.PS.CPID lda (pPS),y - + ENV.SysVarsA sta HEXBUF stz HEXBUF+1 stz HEXBUF+2 @@ -440,32 +435,30 @@ ENV.SysVarsA sta HEXBUF jsr HEX2DEC ldy #6 Start at 0000000xxx - ldx #4 len is 4 for now -.1 dex - lda ASCBUF+1,y +.1 iny + lda ASCBUF,y cmp #'0' bne .2 - iny - cpy #8 Print always ast char + + cpy #9 Print always last char bne .1 -.2 txa - sta ASCBUF,y +.2 ldx KrnBuf256 + +.3 inx + beq ENV.SysVarsExit2 - tya - clc - adc #ASCBUF - tay - lda /ASCBUF - adc #0 + sta KrnBuf256,x + iny + cpy #10 + beq ENV.SysVarsExit - bra ENV.SysVarsExit2 - -ENV.SysVarsExit stx KrnOut256 - >LDYAI KrnOut256 + lda ASCBUF,y + bra .3 + +ENV.SysVarsExit stx KrnBuf256 ENV.SysVarsExit2 - >STYA ZPPtr3 clc rts *-------------------------------------- @@ -554,6 +547,23 @@ ENV.NextEnvPtr3 lda ZPPtr3 inc ZPPtr3+1 .8 rts *-------------------------------------- +ENV.AppendPtr3ToBuf + ldy #0 + ldx KrnBuf256 + +.1 iny + lda (ZPPtr3),y + inx + beq .9 + sta KrnBuf256,x + + tya + cmp (ZPPtr3) last char? + bne .1 + + stx KrnBuf256 +.9 rts +*-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.ENV LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.INIT2.txt b/SYS/KERNEL.S.INIT2.txt index 1cddf641..c1dc7420 100644 --- a/SYS/KERNEL.S.INIT2.txt +++ b/SYS/KERNEL.S.INIT2.txt @@ -14,7 +14,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI A2osX.SYSCALL >STYA ZPPtr2 - >LDYAI A2osX.GP.SIZE^$FFFF + >LDYAI A2osX.GP.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -32,7 +32,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 - >LDYAI A2osX.D2.SIZE^$FFFF + >LDYAI A2osX.D2.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -50,7 +50,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 - >LDYAI A2osX.D1.SIZE^$FFFF + >LDYAI A2osX.D1.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -68,7 +68,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI $E000 >STYA ZPPtr2 - >LDYAI A2osX.E0.SIZE^$FFFF + >LDYAI A2osX.E0.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 77f604b1..ee1fb4ad 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -15,13 +15,13 @@ AUTO 6 .INB /A2OSX.BUILD/INC/MLI.ERR.I *-------------------------------------- TmpPtr1 .EQ $0 for X.PRINTF.S -ZPPtr1 .EQ ZPKERNEL Temp Ptrs for use in very limited scope -ZPPtr2 .EQ ZPKERNEL+2 (could be trashed by any JSR) +ZPPtr1 .EQ ZPKERNEL +ZPPtr2 .EQ ZPKERNEL+2 ZPPtr3 .EQ ZPKERNEL+4 ZPPtr4 .EQ ZPKERNEL+6 sei - ldx #$FF init 6502 stack to highest + ldx #$FF txs sta SETALTZP @@ -41,16 +41,14 @@ ZPPtr4 .EQ ZPKERNEL+6 * Global Page -A2osX.GP .EQ * - .PH $BD00 +A2osX.GP .PH $BD00 .INB /A2OSX.SRC/SYS/KERNEL.S.GP .EP -A2osX.GP.SIZE .EQ *-A2osX.GP +A2osX.GP.E .EQ * * LC AUX $D000 BANK1 API Calls $00-$3E -A2osX.D1 .EQ * - .PH $D000 +A2osX.D1 .PH $D000 .DA #RRAMWRAMBNK1 .INB /A2OSX.SRC/SYS/KERNEL.S.FIO .INB /A2OSX.SRC/SYS/KERNEL.S.DRV @@ -62,12 +60,11 @@ A2osX.D1 .EQ * .INB /A2OSX.SRC/SYS/KERNEL.S.PFT .INB /A2OSX.SRC/SYS/KERNEL.S.BIN .EP -A2osX.D1.SIZE .EQ *-A2osX.D1 +A2osX.D1.E .EQ * * LC AUX $D000 BANK2 API Calls $40-$8E -A2osX.D2 .EQ * - .PH $D000 +A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 .INB /A2OSX.SRC/SYS/KERNEL.S.CIO .INB /A2OSX.SRC/SYS/KERNEL.S.STR @@ -80,12 +77,11 @@ A2osX.D2 .EQ * .INB /A2OSX.SRC/SYS/KERNEL.S.EVT .INB /A2OSX.SRC/SYS/KERNEL.S.TSK .EP -A2osX.D2.SIZE .EQ *-A2osX.D2 +A2osX.D2.E .EQ * * LC AUX $E000 API Calls $80-$FE -A2osX.E0 .EQ * - .PH $E000 +A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.JMP .INB /A2OSX.SRC/SYS/KERNEL.S.DAT .INB /A2OSX.SRC/SYS/KERNEL.S.IRQ @@ -95,18 +91,22 @@ A2osX.E0 .EQ * * Make sure KERNEL.S.D01 is the last one .INB /A2OSX.SRC/SYS/KERNEL.S.D01 .EP -A2osX.E0.SIZE .EQ *-A2osX.E0 +A2osX.E0.E .EQ * * CONTROL SECTION : .LIST ON - .DO A2osX.GP.SIZE>$1E0 -* !!!!!!!!! ERROR:GP too big !!!!!!!!!! +A2osX.GP.S .EQ A2osX.GP.E-A2osX.GP +A2osX.D1.S .EQ A2osX.D1.E-A2osX.D1 +A2osX.D2.S .EQ A2osX.D2.E-A2osX.D2 +A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 + .DO A2osX.GP.S>$1E0 +* ERROR:GP too big .FIN - .DO A2osX.D1.SIZE>$1000 -* !!!!!!!!! ERROR:BNK1 too big !!!!!!!! + .DO A2osX.D1.S>$1000 +* ERROR:BNK1 too big .FIN - .DO A2osX.D2.SIZE>$1000 -* !!!!!!!!! ERROR:BNK2 too big !!!!!!!! + .DO A2osX.D2.S>$1000 +* ERROR:BNK2 too big .FIN .LIST OFF MAN