From 60acd2141143a1ab7fea265f31804d3b81b092d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 15 Jul 2019 08:41:12 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes SYS/KERNEL.S.MATH.txt | 2 +- SYS/KERNEL.S.MEM.txt | 4 +- SYS/KERNEL.S.STDIO.txt | 156 ++++++++++++++++++--------------------- SYS/KERNEL.S.STDLIB.txt | 11 ++- 5 files changed, 77 insertions(+), 96 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 5bf8cdd1b1c0a5a8d9c54c119c981bbd2206a4b7..ad7e6961e9636862d37b666e1e00dbd1db68b811 100644 GIT binary patch delta 21086 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�&s_Uut_l}ZZSq!~|AK}<&G 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 delta 21688 zcmZ`>2|!d;_rEi51_p-Z4Z|{^z{n!2!{UaP3$g@?LZX>w1;QvK0s*G9!Kl2<#7|qi z@}-7TF1Ur(7g<>@uTtA+)fC0t7sQbk%NG8>``!#o_5b{S%zNi<=bU@)x#upg+CREI zYk}t9)T)lb;rt7Ksw43b#=jBewAJYa-YxotJ8pjXEqkNZ{r&H};z{&uGH9?~A4<*> zBP;Pn&V@e|a*>=%XZ9$rzM!l4dhIQx3)MC#LMivB%U5sxSMivJ^J$tztF4M?gSN?L z^bct)Y${$x>J*Kn>FhFP9oIOjmLd=6pybz*tP3WSN(6X^$&*@ zllns~voY=wX>?u_(x_PzV#s4@iajCEDr^C}TwB7PR(dKFi|DW#Wv=_8>&U2D z6S90wNY>_-7i*MD3@$HTHg;WY_A^>&@H%Ci?xky+M;=wQa#`!I9aZ9IbBkMp($`aa z`}&%YBM0=YzhrHuL$)dJR>aarwkhNF!u7|G)OH#28lCopY&QzQ$BeOb*EVHT;5XNs zeWPkK8*9}@JZg;xuQxjH3CUEh3CS~t(;v4f-_RaJ+16`K##zRLbWf8~AAI&&qw5}x z;i;64y2vAYG*3OyQ5O|9jCb8%*-;m}|GAd)P0G02ifvTCi5rHWj7{96VcWV|BO4Qq zk(XPy8W#s{Ya){Nx{O=SH?Li$s#C9Q>Z;$~wQ5^emUf_V=|$<4e!Pi`@Pw9kbgkw( zcXsV;>e{uv<EXSlp=+l#Dx1rZ*4vkyE~#p7tuvTab*k0MOX^+Q zSlz~ei^j(SJGVj+O+`t0QhhXQ3pdSsM_1C-ZnV?PeZCW^a>|=qxEVFiU%pcNV-qpr z_pGkz&{p;NNX0FLS>nL5Zj|=v=erpXma=@ka zmtEUBjHhYKJ}w+RcN#zb+d4Kpq+emktN-gu>lLH(x#oyfu3uS|#tn49J6uR2svKig z7&qK%91D@l`eXdBM;Es)GxB?`HhUrW=8d)7{`%v_tUroj{blPF&Xl#?x!C+Zc`(BQl262$yvu=J-+t%yT?B}e&x98gwu(J6Dv;aJO0V> zOUK8bNTJW7OwHjF&CVIdSC1F1cFHs2<&IV3x~<6&ZQOdIS+(w1Ygb;T4aOl?Yh#hR zOFXg7P^|u{ZMCvBW?fQ^xoz9#)7EI?`Ta;iLcMsRQDq&0_eQdhQ`nr3fRoifLz>3! z*ha!C9#<#*B-JVQ5?j#92Tn9~x2o5DMQq+j_7IyV<9y&|tL>_2ZM|s7!_ytnYWrpL zc9y^$fkdp5p&7=86L*?DVpqVy;62QE`YP19_W&1*PJTSk2xGmox2;YIU)Wa19l;;M z{wU(dH<6Fpo^NYXNPoSgzY@h**SXr|XqK&N8~?`{i2+1fAY*n`~A5^xm$|CM2FtGDrLsogwd?&bCF zC)c~4G!|aAB^?d7`5raeT)tAa1{q(x4AXq^@>fdRZ>>MDWUZAyJ@}+ed+Zp0+o(L* zl$DfcbUR7g4|2w_?k784Pd=G+vRF~5$W*2(OH>P0MT!h%rE=oQ-ha6#b5G7Yxj*7$ z24;dxio-}seXy&cm8-u;!J8VuHyY*QC7p2s%nWnVT;}PTL&ed+)c$bgb zn;fJ}YF08Y&;%_0X_AqA* z0>jSMgK`YJo`ZR6%w*oZ8hblUo+(eGSy7mE^B%{p!E#$Zq#jkEdDT_QIn zdd}(EpyjPY_y5TsjcfHjcI?;++hF6I)5rD`9SFbT@d_SW-!#so;U97@@?p0c^O`s- zDRCvn372<&NRNKV1vrT^zK%>+s+v7B)@SGT5a zIC1OYCTFJaOKp<(m}jh^l^=1l$A5crHJ`D0K4!b3jLk*HmXnz4mX*{k2%E?A8SBi& z^?~h0=11y-+Shk?8~-}=6qF4+Uu9n zSs!y@?$_JvZ?tb`{gG0?jXw7=XXH<}*Pm%GD%yR$ebr4q?#Eo(TiA*q(zz$N+-7ZirY)syej6cg(DfI&81+xLe!BG={q!Oi z%)NX0<(AHi+-GW`gL|t(HR3ZV{CsBgK6T6JeNG=e8MxqJ*Y=_Xhq{{m&fdwm+THBA z^I+GigI&81brsbgq9?9%k!wddKd)SEpwEwRE>k>Bl_Qw9R~2 zZM>m5>Fru4{Ebyz(HN0>j%JQ@UZi^(DnLFb%HXq~FOU--x`dx_apMwF-V>ecN<6Y)Qn_@kp&D~mA&7F;vz zRb~!pRl!Lnl@7bs*v)Dg%x3dJvy6AsxKYl7bx&WzRLlKuW5zN54(c_|pmRq#=L(~p z-x{q^@HJA5yscJcC5?ua&DZJ`2hMieViDXnH6j{ytDkDAeBGLj%A}`y z<$*iLg85^4jS>61yVt}XI|dJu=cuGETB?KIKT#8?Lr84e|6E6199m%+dX zJvvci+mfa6xJRW{J2^Q!Gpm#SXRL0QM*FKBO{)6WI@WLQSihyis_rP}n)CM;bEmJ} zYMptk_2 zhu^$L>@ch5fb7ZYB>@~f|8zsusp<^HKh3G|&hXAL zopjIxnt+sT9hjLAsi^j7wzG=adf~3l`nx+(Jv>$efj~-fU*5rd#>|cv~vq!{~~XWzuBLg9i8tZ?I(MB_{{`*`~l6(Y}unT zL7jFMa=XkN)>yHP>OQQEy;(o*rkyqI9?f!{rqzw{$a7hPY*}G8skblPlzuMLn%SCx zH3My{f^3=H_1imE;O~x(MvY;QX2C$)8VyWqK@j^*+M~H)C){9!M)y6M`a3t7v{nS$ z=T@G-S+BJMz_}zDKjoN?^{N+dEp-ojW>g3H!RcH*|MjY2`XE-#pTK88*$h z4mjFvbJ4BQbY8gGNNT@mB5O40?F%&KLCwU}cV%ARlYf4)Wk@U*HM*jaH5y5PUnJs= zj-n%sBr)}st(U3yZNftu;UO2{A=fPrX)7kypSLwSGZsIv*;!QgVG)C?L1yti8)H#* z0E<(ZMR53mtq+GEP_9)wND)TETeY#e5x3HBX--uF?BC*BtLdCpZ9?+*r&;+Pn^|?M z{y(?mjxn&odqk(Peb+?tR=s)ay?1Xl5o?BV+xcb>W{#`2by&OizfZqu)!tvTwX0Q; zx2vhE?ry_^9bI)}cWv*g8?#_%SKYXsJ9js#wSSr7R`>)71@?Rr!|ebknr_ zIVEOOQF`i-gxJMIeV@94c+5~YR4vXIiqbQ)(uiiJx}l(?fVj?5n?})!s!F1HK;4os zR=Gm)md1VYE&hMQ$fMzr8f?Q%8rLy6()F3;zqz+8|INeaEw4E8#4JZ*oxha$`snoTB?rM#lJw8|20$p_iI zxVVaFq7@CrrPV|ogUW`*DjMkU<9vL`fFY=%pul1pQCDrQjI}(npxjbbW+|>3MARna zjESSqe9K4I#3Ng&*H+K z(M$=IOpT>wmT42R5@Nx+%-{i)DSu8`O-0obqP`3K1>dbO4W~@4p<(gq%NCg}Mfs1J zE%|nFe8>EYV#vU;4j~ij`bv+UBI2#i>PxT{oVJrH=kgl~J4I2IA@ zRH#xKdqk5fkF5dI6b;O-di0i3WGfNt~fDjiB`McYJJ( zW~PF<9-^5g=>o0>@A->~ezshcN`Wmg*F)Uqp*kizYpw_x1B&UrCwPCSM_8fxwEP6`H>$**Ct(!PEKoEQnimtd zQqamvz;PmRFIP0kO)rih+DDPV{7VAytE2}`@V+%wps+E?nplWx{T}P(CAqM0=Cm@2 z74;&d=@vthVQbm2NKQ!^3I?lD+Agp9apV~I1agd$a>yD)uOynXr%!{+_j?MiHGVDY zIlFdKvKQu75x1v%S(_)9Yk=EYGci>0%@hjUbsb(JYrr5zVuT1~$vMtgtua_ng9% zgw9;-;7^{HqE>=G)(c7Tb+q#&ALy*Ehp0nV(eWo?N&itajLn&zn=vC32AP>XVc}e& zStA>l?s-|4lT7I|DvH6I+Y3xom{L*#(Y(Ygu9~>51&#Fydcb!bDw~=%%`&Vme$0fd z?378FQ|=+^1~ixSUoaOB%~m_OgTzad$I$C1`9XKREDIZ1E-}F7EUyj7pCI*wLt7jF zO+Nx>%yS98bft9S(naO>cBN{7=2~)J@RateK*Cf>u-_44D8H@p2SZ^)1g!Y(1 zf(c9yNg(R2kjQTvY=tu0%&CZBvzs&{EGF6}hrWqsyKKX(w?NXf_`VJ);BWy9X?mm}AaBR7|5_Q`FAzC#C}=0gvZd=kX2lA6ieXgw98oy3NtHY!#aTz?=7NvW4QKek8sAU;tvU6l zP_@rzJ>^XaE2Q2{BCcPsp2W;VG_A5xdwwYoR2E&tB@)e7=$5h);{A0$PBH!wnS3KR zW`YCy7ASdHx;!uWOlyBt6Ms~kV|mBa6se=mCb--`0T zqG$~wd`Slo*yoO2;DoxWMP-t}l|=o!VgniQheIwV>#ANYB@+J6zFHef^ndl!&6Mer z$v~pCYbvX6AD5Js&Ldu)3T3}ORw`-X573KB`S(tCcT&neDQxasqIOm`5Pyvl#@lCB z>gjVA<-ZL&S0w`c#e~-?rI1;Y8?&3%UD;4j4re!%XgyGn8LTUM)Duk@c_sBY#|Ne8 zSmV{bfeXU<6r%THT$c1TMSs0gif|?;Ps=b#EhOeno5~_JZ(4Sa_i^=6%CSYLFI{yG zZpDx8Imb_PHAv(oB+#FFp63S|1Ny0jAK*}7`by?3;{s{k1>TqDpXUuOK}u;h3J<1B z&hufBMx_)^h7KpX5C{e*9VySGQA8Wc^diMW0b%s>^SpmeID~W^%=E|xt~LUy!L$r( z@Qjq}k;@WIl-!Cs8U=JQOdI(YISrZBvC0j^dx*V*(sQPpa?_@zCqqLfSsnM}n5Je= zPD#!}U>V1{E?%yI&b`2Uc_)BRNTp5eVcmZyU3mfCe>mNIfuA^OM4y_|5t9)8$bZ(G zgnA959E!@Vs+h8H!848(;%Foeyi17{;<$UgeQK(S_HO7xiVcW*3=%bCnRQfSwSgD! z@pAQcyOq6NvR!$J#5F}}_haf*m zqTI)cDRpzO9Lt|mNd`=!cP{b)HIw@_?=Wla6vhFI_=sn=Y{Sw@7y8cu8-Dlxd#R~C zrF6M{OR;{NrhJhMn=bc-9ONfNEiI-mT;f9q-`A_48K~a&*{sNeFq-OoA%{^0JY=^aSz*4#auq$n4qJ~C?IZSD zAklm@I1=?28SIzqL|nZzYMSt608; zbkG&vuja8{@*qyn<$4<%1N@Ni8_5S3*W(J*~US2m7q*SG&|%hW|(v*Q}N+ z)~u0h(Le9tnB`hkUQ|u=FEB;*ji!nIMcK0ZgwdLp7{eIQYtgQrGA;GQQ;21WcAZ^e z=#>U!@%gW${u;-$E-xXpFWYmCBDxK79de|OLEy9T@0GHV@e1m4ZS1j-O|pfktsv`O zW&ObnBs9%5VR|~zyau+-1;ntqM@T+*e7U@7HyH1? z9DLY)4qT02k{&oomo0MI-2l@@RBF5%PggN zgg@Npy)uvJME1^fD0NUC@%>QBkUKM%O)oNApnjyJdp_p%54nG=j9xM`HhHwA61y)) zkQZAkV=R>m3kuAYSVA6EM$cwac^yNNW2THrTwY4NKIuz|Uk(rcsoWbupDD30go<)0 zf0*}H`hQMsH+Vy4t3%t;$~B63f7!?1CN8VAWMvceS5Ub2YuSQB6Nvts{)Ny*zTeV& zJ9!_M<8mh&PSCPW-p}xTpUN=GPT5o2=tiV^o$i|oJB&C(KknoQ*R;b?^Jkf(cC2*~ z+Ww&Y$I931oIE5mvrSXel2c8YM0*~l&!Po*7YDbUz12YZ_6sRPmb=t zDjUpLFod$e(et;ydLp{t`(}mO-2dp4S@&n(%xrM~1)g=?O4CrvyotR5E#c((VHnXV zyg13x$Vn*Tr{w5=Y`l*z$Dt!s9ClXwbcC92`kB{HcH*R{%L2kaJs76rXwoe{ zBn*5L7d^*9NrCuyqo}hlj}c?^l+GCdS) zL&t85W-yw9H`PRNQo!XN#YwwDaJTU!B$__g#Sb#ZKzo=PJz_byVtL1A8F3lH$-XVX zL_h7~{Y&DwXbZ--yg59#qHKXBx2iC+l(@ztLGojM33$q5X9)0v(jIbT)LnVREm6)O z`L&^VcK9{JFqVI;!%f)>!BGvT_x{NHM33O2m-O>Y9wWKvrO9wrta9R##L0dtXcS%j zBOjPJT9!YuJf{+FeF<^7%PxZ7-HZc?tG?dZFow4O$opx>%KW8}ka1M;6F(?N90amx)rq>@kV!aZhkoS<)C8Joz7EWC|TmbSJVwDGLLTwY?@64HDTQ4HWeZEIpwl@$ z3D}#QTUN0kpHT}yjj@CmTQHZg4H666SI`xLdLPJzAWNGRyjjkd34)YkuKb>g_eEtD zg~Vr`OvnO(t-_^TUPUr-I*5gGwqiQyHt(JJh@6mtgp9QN@=hcsZog9c^ljePw+vM14tu53r%tilmz*^{jf9ue?YH?b*GKI} zGOmK2xXq7MR8hZQu>-e|4*!)m;@0zhzw(h&7Ngr`kLUZi-4$X7zb>t^Aivyf8Ar5F z*fS&&pQjudED_6c%kv9Zy4%zCbnLMYuBD&;%7?pKKw=U8DB{1Aqxa6_eciRoKx6JR zfrJZm&~JR0(=+gq!OQ8S-}oTIv%QsQSJ+D@koc9<@*5wgsHc0_&wuC-zwse8YdB08 z%<)b#$%cgeQnvB%yuFTLMDqeC?f+|Dlz+7^A&EKQp~RgsPsMgQVCedFcDL6%2WuMa zUhltlueYAfF;f2FBzObrp-b-Y0}@}slPr#IlVb$f7xz9^sfxet#=lCxxWfU`RUna**2!TACWGK<>wdZ`}A2|cx?3*(tVd*@xe-+GXss*PX#QlFP z6^qv4m^wmR=pVmh%jInv{0HynvQK7u>N|AYAN;)tTi5)79n|+YX@}X-Q>Iknz5j2d z%uM3_{@-Y+sYL(5-)LDxf8cMV=|q3U~Yc>&LyX;MDU-?<<(}INJM~MdFV2zD>uTaK44^{F4vz`-GDggSqU) z6C>18S^T(}_=dI|6Det9u_c9A`j7gVdt*3w@%0r_a%+^i#NG`B~?lMzTxP> z6Ns5de@7So#g9^)ps)YM53D)K*_Y1Jo*6D0U@>!wjRh?C+T6iu{=wkL&X=-uBNA`gXAyTB zb9$Ea>~eD{(cQued%}6?+~N{5aqW^_VhVZi$CuvJ%})3U?~WP7?PocWO)Y-E;MqQ# zWLokUF0QIBH)CGDO_LQmZ{J^gQZb#(EyrdukVO4S|5E586@SqPrEajIn@&;c(xQlp<*ryV#*+Q;)YR-L zSu=@VA=6?o!!qKGsU%XVqVJ)Ul2g$ON?o|KO3IQ?4=Qy5u5wExQmvxHIAn5C(b=3X zNa?JiPjWhgzeeSlE5JIGQkuU2lKHx*q*Yvkw<{_`cmz(-qP#TMX&EioPD@K6E^aD0 zMhbRU(OaA@u*O3rMbTKSF@0lUGi?|#@G2HvWMxf&JC?}lS;_b05C%tG zJ9&m9d-C-Ar4%o3l_P4Gs>viiK0WQFl$2GPYou_-&ri;mJ1rFf{uJ|~jC9uPJ_eSV zo%^RtnWenm0mzGq0vV+`)22=(egjo~1z0Wzt;8izCC98DLC_tHOR9x<1>;S6wB&o) z?aRnAuy7@05Dil62Bn0^1Swnz#k0fMyu$F(FXrS`l)SwIAG* z(PcDxP+%wh`g4t?Nn@-x1w;51!kI}GhXy4*zXv#8%|R549;)kRKv zM8($q{g)ixCB5zR7~cZNuq}lmV0`H%3oDDTr_A1%tp%6U7FS(R?4vS4(sc!%9lG|a z#7lpbR#Amk=j*!Ap`yp=AgwN_W|6ES^u0&5O4>t+EKg6xw$$TD!0ahIq|9vQWPG21 zn?q13?V;f}Jqs5ji0hLo$K?8yN(%7;pH}rLwu<$veK#Q!i}o4}K(+v{Wu_K@k!E4S zh7Td`OPDm4^jx!fK8agOPiS=}?J`-y6f&-k>fCf=YXq4fiTn(n9U}WK$BS%NnAsK; znM(_p$voRb&BD#Txwz1kN4!=rVqb&veNM{OV{nyVA& zOLU}V%pl%tRr1keZd%$T6Q<&rgc{;T9sQO>JR9WsAku`Zmr=yyW#$*z4G7#zB5vzd zQml%*ImCT~{ds8oQsS`@B1=``7>)$If{z;D+MzmHi#+DFC#N#zb3n|law6j^o?g!C4FP%@w7Q6beD&H!39OBXB$P5Wd zz;>GBq4Q7M;gFKJ?@~$oG}2wp;N8qr*=cOuP}v{FS`vp@a6(o&XwV>{X@iv-PEY?$J=g$-idw|W~~us{;mdP3fz zT2I{|Y+MiV)CJV+x66UMJ@2E<-fgo9X)~q0&kyWHM-jgR{Ra=U&T_aNv{#XY9n?cA z919$F3@4ut@suRp@nJ^+$*IXx?;-k+(1*D1ARP#1%O`?fA0wlDEejcO(S~S_$b*bO z>M&e3$*v}vW3skgKCwF(w@;yVj5)@N=`-rX>xO7QXC%qXd_gDkx}fA%nIH|hFY)Xc za$aBIrQbO6`I=FBBLQ>ST#UhQqi8BBf9VK$R;oZ-4@oi{U)V%dPS{5y^!^?Bx|J4 z6{KdDVn$~-D@hPj z{z3on(gkb(1ecQh5r5Iadfi}J>a7c=(}Q%L0e(t#U->G`tRMvB)O61*t=>zemg8un zT0O}$m8DXfx6ZG|NiB5=6Gfx$H(jKr;fObTCUJFf+yHlRRolZ;EgHjqj}+1qy&K-- z=bq({JIla&YK#Zti|wgaNVy|%4Vv98WjA!A%SvcABzVwM&MkE#k7q|W`s!F=d2iiP zYF<>HUsVK|yd-KCyAD@YQYaJs^b*lACCH5-ueU6}tB*r|UwQ>iM)>u}&HF=cws@E! zpMz@$sO7GTC&7W#vlIFL>WkeIJmS%YWA=KShXYe&aNB2vMtyH3klheZE z>0Q3Mu$lyv)+RF1;iz#eG8FFvhN)qPZ07yPCj;8ycAelp*+{07#l$;_DFCIh21_?V z1K6L@j_Q%$^Db7obWWO`jX30Pb@Vz!7T|IW1aLwSKVY1iJ{2>-Fx4Yj&MLWGCWQBe3(JXNvYIA%dUyvB?G%)^AJONirL%JNy--u&R5dmOv9vL$ z2IQ(6-U`r-zngzg@Aw2FHSgMBtw&4FeY#NwmG^AYKv$LOrql%G6L!EWNINnqY?l~! zqs!O{CT`0SH9pBB+5#e*;!xscCTN4{Prl;>PcfG;yJg-*Gmps5qX^&e$yb!R^iz(SiKhFMcy0EWJ@CqKKPh2oi{dlAN|o)U*ox$I2J-| z58I_0|0xf)#pw4qnPg%OuafOv-ohc?PcY$OFA4E=bMhZc%$ z-_xY`dRD5rAW>2f(bhm0a%ZV)k&REWKwpy6kTWx8dk zqO$c`Ne(;@i5KXpa$TJE8Ce4m@?32g@(9`@2<={=B{ZgACG!iQ}X@Vl}<^C^mK0P`3(%H_x;5 zp3M_>z-LJ*D>M_A7wnq$dJ(c#Kpa-_3KrITzC`-o)$>_PuoTG3oY0dC3r`It^7-02 zB3kvn<|&8XBxDYnvz zN?lydHjoTWL~>d1!?~uMTvJib)U@=>`w73@UYC5hM!a{(RwJEJO*SuJJIlJA{WwE} zw~Mi~o0UX;j3xE!ptv>@>}*Og=N=-tKK)+gse!TfepNyAZ@^ZifYm-l;B??k@GtLi zs{e`l|zTj(&fiHjHc@LL=|n8^LEw zAFxIa$c@Atq#so2qFoLVX-cmHTO;JCel5p|9)SKT~zV^&%v zZX2^PGMs2Q`9`^?3I!6RZ&lcL89`2XOu&P{|KiBxY%z% zGdBhQl)A8d>4fAdlPrnE;7S)%>-<8sxaO^OL!C)$*)mk)E`PP4_5eM|Q^D41Qd{G^ zc=;|i76TP#Gn@v|d&&IE3qC30)97(~nr)bP%hhOnWFZW`^iQ;w>WBOE_{x%nVIgsq zWed#sMzC~V2+OI;)y1d zed>kr5Z0HM^x-3$#4@3Ek#OAl_%K0*mA*DELeqwc;W_DpAR5>FVLJxxV(&e zSP~z&eAUATZarP@!v}8v;69d}kHNT-1p$QlW^*}<3GlHavn9*K$vNoM`Bj!8bA_4c za7U}>QWKlBU9b0W+W~G{5=La_u>bJDGcH-)fDhmc__erX8E!9BBRDhOpl2s}2P-<) z9x@nQZp!z(jJN2ZLxx~Q7fn87(2v0Nt=?9M_9t*D?Y|J+&wW!^`@i(Gf4gN(A&zJT z(IANaf*2r(0|arPAO;FzkRS#NqEQeB31WyKh6-YsAchO#U_p!!#7IGm62xdhj1k0G zK^!88CP9o7#CSnW5X3}594d&z1aY_^ju6C=f|w+TqXcoZAl@a2cMIYeK^!ZH;{5 zO%OK=;ub;NDu~+zu}KiO3*rtz+$o5=1aY?@zAlK(g1AQz_X^@0g7~H&{!b9!62ulk zd|MFr3F13~_^u$nCy4t6@qI!3KoAcI;z2r z2;!%L_?aMnE{I0I|Rjzy!nr@jwEQ2n+>=0mFe2z(^no7zK<5?gH)x#sFi1alm*W8JGa1 z0I5J4kPh4fWB{4KL|_t-1xyB}0NFqea4#?w$OWbW(}DYd8NmI(Okfu905BVP5O@f9 z7{~+ifjK|{PzacTxxhT22q*>~0pjVcotXzJO``<>VZ|je}L7%8sK^01>i;CC15Q; zfptIw@L%9%U_Gz_*a*A=GyKi@+t|GH?aB z3S0xO10BE(pcA+W*nnF=7w{wS6Yw+e3ve6w75ELf1N;vB0sIO4rPwWYD@OkxLDYA PrintF.Cnt - clc +* clc rts *-------------------------------------- K.PrintF.CheckTBL1 @@ -448,30 +437,33 @@ PrintFTBL2.OUT .HS 08.1B.0C.0A.0D.09.0B \b\e\f\n\r\t\v .DA #'%' \% *-------------------------------------- PrintF.BB jsr PrintF.GetByte - bcs PrintF.BB.RTS + bcs PrintF.B.RTS pha jsr PrintF.B - pla - bcc PrintF.B.1 -PrintF.BB.RTS rts + plx + bcs PrintF.B.RTS + txa + bra PrintF.B.1 *-------------------------------------- PrintF.B jsr PrintF.GetByte - bcs PrintF.BB.RTS + bcs PrintF.B.RTS -PrintF.B.1 ldx #8 +PrintF.B.1 ldy #8 .1 asl - tay + pha lda #'0'/2 rol jsr PrintF.COut bcs .9 - tya - dex + pla + dey bne .1 -.9 rts +.9 ply +PrintF.B.RTS + rts *-------------------------------------- PrintF.I sec signed short .HS 90 BCC @@ -480,14 +472,10 @@ PrintF.D clc unsigned short (BYTE) ror ACC32.Sign jsr PrintF.GetByte - bcs PrintF.BB.RTS - sta ACC32 - - stz ACC32+1 + bcs PrintF.B.RTS + jsr MATH.A2ACC32 - ldx #0 one byte - - bra PrintF.DD.1 + bra PrintF.NUM PrintF.II sec signed int .HS 90 BCC @@ -496,17 +484,13 @@ PrintF.DD clc unsigned int (WORD) ror ACC32.Sign jsr PrintF.GetByte - bcs PrintF.BB.RTS - sta ACC32 + bcs PrintF.B.RTS + jsr MATH.A2ACC32 jsr PrintF.GetByte - bcs PrintF.BB.RTS + bcs PrintF.B.RTS sta ACC32+1 - ldx #1 two bytes - -PrintF.DD.1 stz ACC32+2 - stz ACC32+3 bra PrintF.NUM PrintF.L sec signed long @@ -515,14 +499,13 @@ PrintF.U clc unsigned long (DWORD) ror ACC32.Sign - ldx #$ff + ldx #0 .1 jsr PrintF.GetByte - bcs PrintF.BB.RTS - inx + bcs PrintF.B.RTS sta ACC32,x - - cpx #3 + inx + cpx #4 bne .1 PrintF.NUM ldx K.PrintF.PadL @@ -733,9 +716,7 @@ K.FGetS jsr PFT.CheckNodeA sta ZPPtr1+1 bmi .3 already something in buffer -.1 >PUSHWI 1 - >PUSHWI K.IOBuf - jsr IO.READ.I +.1 jsr STDIO.Read.1 bcc .2 cmp #MLI.E.EOF @@ -769,9 +750,7 @@ K.FGetS jsr PFT.CheckNodeA inc ZPPtr1+1 beq .8 Buffer full -.4 >PUSHWI 1 - >PUSHWI K.IOBuf - jsr IO.READ.I +.4 jsr STDIO.Read.1 bcs .5 lda K.IOBuf @@ -840,9 +819,7 @@ K.GetChar ldy #S.PS.hStdIn K.GetC jsr PFT.CheckNodeA bcs K.GetC.RTS - >PUSHWI 1 - >PUSHWI K.IOBuf - jsr IO.READ.I + jsr STDIO.Read.1 bcc .8 tay bpl K.GetC.RTS I/O error @@ -852,7 +829,14 @@ K.GetC jsr PFT.CheckNodeA .8 lda K.IOBuf -K.GetC.RTS rts +K.GetC.RTS rts +*-------------------------------------- +STDIO.Read.1 lda #0 + >PUSHA + inc read 1 byte + >PUSHA + >PUSHWI K.IOBuf + jmp IO.READ.I */-------------------------------------- * # SScanF * Read formatted data from string diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 36318231..4e0288bd 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -89,20 +89,19 @@ K.StrToUL.rts rts *\-------------------------------------- K.AToL >STYA ZPPtr2 C-String in Ptr2, Dst buffer in Ptr1 - lda #10 base 10 +* lda #10 base 10 sec signed K.AToL.I jsr MATH.Dec2ACC32 bcs .9 - phy Save Count processed - ldy #3 + ldx #3 .3 lda ACC32,y >PUSHA - dey + dex bpl .3 - pla + tya Y = A = Count processed * clc @@ -120,7 +119,7 @@ K.AToL.I jsr MATH.Dec2ACC32 * Y,A = int *\-------------------------------------- K.atoi >STYA ZPPtr2 - lda #10 base 10 +* lda #10 base 10 sec signed jsr MATH.Dec2ACC32