From e6abb0017dc395a4fd7558ce2983148fe3f6b0b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 2 Sep 2019 17:34:10 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CSH.S.CORE.txt | 36 ++++++++++++++++++++-- INC/A2osX.I.txt | 2 +- SYS/KERNEL.S.GP.txt | 3 +- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.STDIO.txt | 63 +++++++++++++++++++-------------------- SYS/KERNEL.S.STDLIB.txt | 5 ++++ 7 files changed, 73 insertions(+), 38 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 90f19245e3b6368b79a88ee3efda64a2b454814e..5378ef24150aa8be3626ccfc91fb8c8506f5d952 100644 GIT binary patch delta 31831 zcmbt-d0f=R8~^Nu3k&RgSe9MxXPz0>{PmA@ z4WRccqdrc#_8a3eV`5q|y|%%013psewWmy(`dH=KjDQrqOL?R^V8yU&X>imdABUX( z2EA@Hxim31l#owbCh%O3RQI14Mw{l5gjAa?iF`_2yog7tKl@vUG9Ib^;?HST$Cspb zZmqkvtD~-MX64m;t4HZ}#_y@qT{B&`mtDI$j4;_d+#|z-`MSBS6Fvwk9B+S?zekd zAMTI3XLo;({#E>ASToueIRwq)T3P=-L$v+MxgRvOG%dZWzvt-9%?Dk%U-cO(V_4wx zhKXs{9Xw%rjsCV~tgGOwjY0RiRvg^CbIr(IDQi;q&+kh_(i4e0%tvl#ZOee^GjUQ!6LV^~j+$u|2J>N7%>D8{&d|RYf0ULC+f| z{D0MzJlfTCu=kI9cK!4A(Gx-Q?s;|h(JPw|uCCwJQGdzmgO411{ouO?4-pRKNmWFeHQ^XV`Xg(BxgtOf+EB3x-4wP@i6Z>#+@eKYwIAVd}c| z*qUE=?zr>b)LUFzzgUx!zuEaf^TB(Zi%oC$Z`SuEU)6l@hWzIKJCE#eyFPk)yK%=j z{zINH=uQlK)pgUM%|F*W>$m@twVhm9b;xzz!QOG*q(}EKIT3e%)uCPg^qFpWo16%L zbvHR-Me5#|yGHLgas0&{eV;q)@7i(Vj~92G_~ov9d5q!Jz8~s&OGi$2U3KV>-t>)Y zOg!jvm46A+l@|>ax@LCHi-wW-x#C5`B>cSdqQPx^@9@pd%=D5WeeRLNCxTvkjsCi; zGQYCsASdSMZex$hb?9*KH{ZQ?c+KOx{&6DWlJ5^M)-~xW^riY1<8tF7-DG{IUe`bH ze^7r=e_a1FM-NYSo%7|IVb2_8>Pv=c&gYM89#u&XOx|VuqJLc9pNr~UrQi1^UbT{a z{gUC`kV!{Mzkag63xNOG|6Vo}nr}MtaQ_$mSKZ8%R}8~#zZ}`2dnP{og!$M<34Oop zx~zWFNmliWVQg09(YqeMhHTf}^~4rZ-~D*c6L%yY`YD`IYZHjV^KhcAOXG zn#S&X#W2np@ZpX}UF4JAA2_c!*+1Oz4;XITKXT`*hET%^$M&rU4AU}WKU@>Hp)c>5 zQ*{5xzVO#xdu`*1R9EbWuRTK)Ab!K=F?{wt>I&bx;((!odY1HOy%%{P_rTNxAz!aO z(0ZWe@btq!9(drui-!mq)4!yDeg8H6yZWE)pMB)4BP);e93kSr2fzL7TgP{Vcn%XX z^8IBWod3a+4|v2qz{&q!|L*ngB9ESbbn?+tN3xE(kG38qMAsM77u7ee&)e7CcVFKF zec$)pzjxx7hG&gCzcJ_y-p?Q2^PS<8Zs!TZWrit%*?U@zr*vw&aZkHxW|U`VdhZ|m zllp>P`_p@k`$PJEt=yl!Kjg&k`!5A-_Y4FX?bicDfr zao;G{skF^uJT$^poYb4X>rz)mdT&Dg4jsouAcf)BnxD{w6B|#MU+en{SZ6)2X1itg zp?fcBbyZfRPu{NIeaJPUB7M6KzZL0=fCJ&qdNjD_6aLSqG7o6)b?kTb*<8JB%@wAI zph4m7SD12#BV3O7VqSM4Sk#-p(e+Yl@96IDdcNnRXY3z;A|8B6aP{szb%iN7C;%)8 zbG^x|TTQt^NH7cy_Mr5sTTLS(gEN}H?)iF6z!%5*^j{q3`3v`F^#vk&%T`kiPwoIK zI5B&-n)1UCp1|vj=3QXf`IT!n(=n4R#*ooF#x*mwx1N_UcYoH2Df=@{l!KCD*Fl!e zOm^dSX|A2Df|;U6y3%{?JXvVvSIKvMoo#Ws(l-b6>cOzh&YfQ^>iK$65B@#AsOMPy zcH-L4u4Sg-y8Y}qX3C~Fq^}9-KGt)5d+;u@<&bOR-hY^>$_0JMsvkFfA++uKaZi}` zj(Z|t`uS(=Jn@ln^ROMOUF7LCrX4Hs)0=+hi6;s(_Zv^d?br9w?K(a+xAe<@o%Q^e z|9?%tlU?N;Hda^2UUCk*V^m@06DP^bKyT>#1>N*ke*H@)`bv9F-urZ6<_=ND^(P^f zf7vAx?L6^JVP+J2!#OO0Jrg-BcxTkG7(;b0-7{v`DT6w0*v@fgYA|jw@0nuu>U8aF z?Nsx{YNc7N3{)$Fc2-){fc8c0B<2OSIUp{|74f2O+mg->@3f-2$?npMS<|XY^Kyy# zW!<*+mUa^U3d?!hVw?7=Zrg&3I=z#s-8E%(Gi#>1E9$0IudP60V%o3UMx3wdwzV`h zc#BF(@^am^i!W$hSAoKa?Z3Kh&21gtqMAt>o`nC8Z9$RF*HL6g123|AdDrx|E|G*p zy~&<_+Y%Yrr_0=zI)cQ##g4vhiJkMdZku~@tv9!%r?{fdTU1<2%RK-1)A>Xx_G9ahEr_Bzw;Xmfv*hAo2*;#ZG(?>e_loRG5TfjV*!gAI!IhCyDi@ytE*$r z3nb%!FLeDX7Yh2py zO)7C$mJ`c-e}wg1e?(nTF|nNIk1?N*n3hIjsW-X{7+Bs-%nh>qhi@c&Beq;c`52?Z1k2e=kZ_~ zc$q9B(!+9&2Rp0QAQIfrIuK#)Ho9||=)|<5G-BzIWubFTDvw^Tb!6JS zG%(z`fhos>BWgl6`p^x?bA>;T^-3RpwMc%Is7Wm;@h)EIZE0K4+|k(3*-V12=G^9- zHEl*E&Mn50>q6{-*GS5vuDw1kBr@T;fl{ycm0G|{joB(oWzW~y?ODutBMG{}SDtyB zY@7K;lm!_Rc9URaZN)tF=SKF@m%-!r=tEx8?J~q zIIg4JndG(<9YN!k`Z#S8wh)k&Ydgr43dB@mA&?#(0I@K zGiBoj9cCJ2A0+6_WzUL}QJ=q6pJx2Cykc}HvK zI1+lbE_3a|h2A;dv%GUj$Yx#Ux@-grd0-0yIo>(ry%P{JUn8@JT+54|S;ECFiMoyl zDn#H4uETt_64Uj(nOoT%FNCJ1GklwG&~58#fH>aBnE+c{KO_?M4I11Td%Je3A z%j=q3T1esLY+knYEXziYOY)YGge%zX*;be5N{J|{okl{g!gpq7MeDfCOcJ&UfqLF= zon0Nx4NL1u#MK-#0Xy)LqRL9|!Y-6sPwbmz0a6cpXBAb>EF<nGrn&`L*DPUSFVL_M%XKC>yb6f(dUk$})#2Id$5?JK30ItLqm&^ zwYIEms=H)n4T&yc6USJi5=(hI8ikB4GYQ=kI?0!=Y4>O8B~B&J17ooQRws)n9C z?}Alb&7E1^+)-XA_RfTa1Y((K66+zXK!Rt10xos)b4cPGHhQczVe&jwn!9xZm@2v) zzqMs`(~4@Q63aPSy9!9ee2~aBs#HS7WplY6vYe|GS3n%+v0KMlBVx|ivgBi4)|;SA z8hq@xH?qF5*6{gF7|wE8#aA8;3pzqdSVy!QOmx#VB=j6CAWM}7FM_5`oijV*JrEF!sHLkc-BEZd-`q-(g}6QC3??rzvwSbjCO@QM&M11fh`(Ny6*4E!Pm)-sx3!0u^)- zPhRUCM*>%9vm$mSa~D`+=B?sf>O?R5n?}MfHpyu(mkI6Vr5VJ033|0*C9z&=+O`DT zPj}~Jt;`^%%fMK>hfjz>(xRqp5^=8Ka>N!{QA5JLL&Qc&Y1u3ixt8@6Se^EDGOD(& z6jfGKmDSX&tDMemf5sHS=%|p$y(7n2l}S^rp;8IR1u9XjQiI4K^qq}DuF2JOP219v z21uYlMW@N7Fo@hF@4}Y0hAt9qW0!cXQI>Fyb2J7v=n?Rsa!>^_LdiwxN9pWO(!(X zr!w=iheJ`srL#jQ%b9`1VVOJ*8W*IyE9)>^Tv^Pz&KmC=q46u!%~|1X=~&#_wUDHa zWaaCuDVA)Gg$JzF= zL)fH=?0k(&(FL4KGQD55HFu$f#59gKe>_X;wkCVd;w>s1)S?*`)9Xn11i7a}5j9oQ zgeZaFltYH^eTsOlVjt5{=x6nB?{(7NHdBz(RPTULO?)w65r zNZ5HkT*0WE?#il3Bi!k@ySPN!1#cya+6cTkK0)oIAD~imAM+W^MW;{1%mDkfbFnZ@o29*TQD4wgGa())wZH;M?^g>Av7>lDdP1ZMUZA?qK=bt*L=` z>c#4w-nI9F?beODoja^%0~E^Ed#y2+o%j%wIqhzicCR%x`W}f8lX(}ueUmxjUK8_< zP{Jec19CtYb%@mpWZwNIwtJq%Hu?cgskk15j;s-}SMn8Ub$Ok;WKnbDh1CsRi@;CI zLsHwgvGCf>j@)Z?Onlg#B>Cuu39C!&Ki1)83p^`if)E1Ulim_=q2fpYjUt!nTg34PEub@*~H(-EP+U zHjUKB{LIdNn?|u~-lncmF~5TCAJL+C7sih%$0; z3Y49i1A=A2x$c}zon5Q6YI5CWD;IaUOIo{-%9b~T0w9Tf)afXsvyPFg4{fbx9jnz= z+1A+5Vjyt^%zc2y28`3KC$Zz%i~}?#1ZrGt1#+>un!r{cpixa{V@sa9RT^DV(nv6L zwzSb?6H~G7CK4gE^=gc8jU&|!O_d}93Y&9jFcwP&sBfZ_OR`|~;-fQzjF`lJJ3zC- zE97Ef9=6ibUPLmcu>ALFdcag<8(zs4zE3k1Xl+sdC}M)TCJ|Na_V=kh0BV_}&0tTz zPg6b6zC?k-<(npdEf(loVG0~eY_ra&$u=9Y+|DtkCnbBOcVECn5;<4r9>oSs(#?&z zVuMbCp>svr0vMj4Xh|saDz8gMN9fLFyFaG(d}vm=Z5v=r39&%C3i?N5FU0ADBIT)I zmaMHVDk&oo3wVRV14cLL+@l%uen#!==m#`978-JBgD&tlX!K$hagdG*Sb_qb7qaSu z)REev#g4)JUn=b*!L7jY9qEcrR1m9&a&DP61oZtu$--82b@EKSEFLS zS>_yrrHNQC(YeP;<4_tORIoOQ_}uJt5_p-=#$G}_C?i`Ndh?NL4N~!qYHl`(UdsyS z&`3}4I^cwX7bSP2HZF?Ge2xqRA;K#Nu0uJtHW4(EXcSu05}Oi7}goC3c& zDR?7r!eD^)+m$-G*G*fQ);)jarpAc41N2^_cTSkC9vuDgx>ei$=rJL(y6J4@@Q zS<`nwsB;_3>;ZLUzEcbXqTD4L2$e9qV{unA3ErvI4x@qj9w}3UcLB#4g62lt$8PV( zw7ehX=Rd%n?x$lt4@&uyE(Ic2aL!&GH*N^+;uEM`oCWUIW!}J7VCIMA$}Id5-Qf0Y z;Fe7Dquip|K&+3+iJ^%(=N?qk+^7yOhS8(3ZFy^#Fn^HnsJ%nV;G=>>KaSzt)W~js zCp3JF^$ATtio+LTev+F&8;JQSX$mzxjkcJd(RLlrO2XovW5H)qd%iO*K0!>W5ux**G=t0W|N55 zv9-M+B7FE8nk?`w6yB7{B#*R(f~k)S_P3bxLmK12xz*5R$2%Y@_FXm=krD6l+d`j=~meyJUfo~9i>)RMr|Z~BO9hmU31{+3GZ@X482XopWh zlk%C?G{1KETxy3e&yd*}$E0>Rj%>rflG@>Gt$t{SZ-9>YR%(au@SXO()D9|G z`k@{E=5+oeQw?YbqGu;RqPBq1di@af5NFh%rXEasUyDW$(=*3Gnm5d>hXf4Nvl$0z zL|Tv*&lQA4FAV6x!NBh7zlK51_NKRa~p5+{-&h#7vlw6Q9L`UQyIcF18plK9R#EfS9KBLj2$Ljx8N96O; zH62kPnAT0=$LTd4!Dg5gyCrbE7U4LHWq(d1^o4r%$6=Z_Yy!$3F;UOb`|0rMXY0>Y z4#i>w5T!&mZ9qAcYSnV(P|k@FqDh_&q91+Blwv*zi0N|h z(6W)U8YfcuBBOz(81`FF-NciR<0#U5!EL&s^ZYYjx zP_Fq}-ccBT*KuJ}ghQ?CkwA(Q^H$jvK{xR3;@wHN`8q?AX1-DDtea#rVsB=#U(*aMoc?EP0Ss>@+&H?z-UY%`Rsyu`WgLtLZ9X3tk%xhkpDSZj%A;05e{%mod40g^Dt*t z4%zNv6a0c~#!ww^dr=GlS)y=JB9Sk#rQcGg>t$J{))2TmPhY;21im6V&`XkDWp{mx z;k%!``Yo-S@|r-eC9(hYbxavQ?q6Tt*3sDPO)MLplbcAa{~N+z`noS|xv+4KdXrPg zc7IPD?9%V3Gq6uek(9UCt>4k)sc%D<8Soj68@n!GWcN%w+Q2W!uFAzVgrW{*l~Xhda^%}#U)82E_e)1!#D?8 z%ByC=eC}PbxTVG0)CMzWY1v#7_UWL)c?x3t?98G+$6#@O!9q_^N8p#JCFU3(Rd4MH zb$Bet!5==R@`>pyM47*qGTQVF0^#5OizN6?<83YpI>9G6_gpZYMCza)pc923j{Qep zSITiB_-+14oAf`+NgwqK60sLg(1`F~5NSEkW_2~h6v(p#8Tcqst2rjx!u|p^o?xw593qDx zjU^O?=93V11uP0>IH#Tc}nF~=Ij!oU;CtV^Q}V`7k6`ymS(1k3ypnP?+ragjT3IERPfE@ZDkc+iE)uk?B+k5l zFTgwseY>&&$B~Hl+bP_W!CvziNlfxsLp96$i6(gR|Gf-T0odXi=O@{nv(ay-!@&+L zFhz4n`1m1|iQaae_3s6m3nfwJ36cWaL{YW}OB0@N6JKH3&X(iY#}Vi~TalaxgBGpk zV%~g=$r6xgE9HIA=o5_G;$SHQ1$@|`-^-E2K1p`2R;sk|TPDjy9!x!DiY!A~O)%H& zQ%^6HPryo)6*SF11gC35unK6Un)kLaGM2fEXTnu*2FS*G&ROH*ps#y-AZXSRbFJh; zguc$e5{_a-Dl;XOzH@P6oi#`T%fJG~@q8PdX0q|n>Bys@#l zvy%jN7^EvgSSO-f1|?-`xEu9cT;T{|cnCUm!! zzUTA`kenZYsDqPZV5F^Q-rr%t-vD*uxSVSVKCh)uN=G z80>{4T#&9p60t+VdK(iP+t2XLK=F-wK~F`Mx4EOEtpg@mWRJN<3^#RpmAAC0uE;xL zg15Lb9X@sy(3`7VJf>BbLqfM{#FV&8YKZejEh4|C zd1*UTEUbcyTQ4BdHyc=QJ&o|>66>v!Gn!%zxy>Nmvfx5QtlI~3hbTJ+Ck3-Y?iiF< zxpQ!0KF96?&B{)$Rk#S!DzMxQlDPO8MU;CyqUl-`vN(46>BVwrVRMIf;c__enC|7h zai2ju4H?=S_ah5eIHL)DP}1i+>I{8oFfS~NB6ez6!aO&Ko4IJbec#aJS*wu2{2w`htuG8pokJpDWV%x{JPsq?{IX1e z`%_~1;a?I(zRJ@$b6=DAB~MTzo|X*FhtrADHhsq z$Xv(0-gx08@Q5bU;*PSaziDjlhqC$Fk@i{=_>tBG$H$xkL6tY%$C?b{{Dj^5H+5J( zmGr^Q=`*(PZ<@d+K4o!cgnh}WaU%YXvd?B0Dzh zH($s4CPmmEhJn&I3WwxBrC@jbb$z@N5q!$vb94>=`}!iqHuawY1TmgrgA3Qe%O1yb zGpAQzUgAMm#H5fUIYik=DTFXg_@%r18WQ&R8xXZ@b0oT8wO!N$sVKETQ z`1TEius{TS%CNnw13nKy90Q++dJ<{zM;2EM?B2lnV1ERTk$m0~5h1`1_ogg{n`Gyr zwvH}gHBdr<^#I)j^a9wt2(`*|6+m#ifsaG)#bV%C$Cbc-*DLY* zL?at{fJPg#l8x;452=$?8f;{1|=of4HVY`1tcb$eQZ#ol^kHW2+kqtdAMaEPlKHm zqL6(?H>}OL{187{mhU@MU)Rvu*0l(Fq78+irZEFGS;lHrYBAXN;Pv?Pk=H*H;=s^pu~D`KZzSieTm(r@Yg#HRZ&60 zaa(Ck1EHB4xj<(>37-_Vu% z9WR_q*#xuVaPpf?aQL*g4U_@8N4B%2X2tDVW)y~32W~d`%NRJ5FI>)^GAn24RtP21l`Ngg3_(g}FzzaeS)EH_H?V>rB_{ZCt?V3< zu#q(cDXwtbRpL@&5CP+^V%G;L1-Y9v2_JGbmq9RFwKumCWitZ&%kQ4IMM|g=a_%)- zEz10Ju0_}<--EA{kzDXQuE)0~>npqs%U5=-YHx9d?IE(7-}Mlqhy`DOx|Z)NE~;wk3*CQ{XIspHOmg)g_Oc=pD$hH zu3Nd6VS{gZ__R;)Kg0XhD>IU?XAu%*_y@*wJYG1F?_+IN zC86|ri4d!R|KQs(FBydgYS7C*p1s0OS}~(vWt1x6 zlU|c!nHvGSJGNBxj3ATPU-vV5pzU#Q@`+Wo&FYBlCXs!-ywzUZh^lK? z(9#T_hf>Vml_dIYb{kcqbnmbysgfP=o=C<{P6-d!Cmmn`ijr9VzQ!fz2fWeVa=x(~ zyabIp2)sb@MM6Zw>w@^`mWkAZc^3H{A|!Uf zDktX}9L6NizUNuQg7XCXISeb#lM*3#_5;5CJo^!WGkEsX08-=G&m1$DXO3S)8b8lg za2F*o?N^{rU!X<)mUS8nIn`a5j)A}XM(!V+1)?!mGUWwoTV(&!&!+)~+D{E(s7O!j zfAf@L)(V7}wPA!`Sd!s_jochz*TMZ7YZ^bAA0|c{*t~EhD&ENNt2KIkYemzLU`7DD zHe5-M7{>2-HL63l9pQoOt#HMb807Qcw!o7by;a__ymJu=3g#i+5%D1`z^=q)g-V3z z2rIsQ9T7$m7|LNhJYZKMg2FW4>v$V$M+u&AzZZFEguJYmE-opBI}m|2p_FOjHW7(% z;!5728)fB{@HHbrkv_L`bCgM__1I|BpltFYyH6RC~ixFY+(tRn8@lQlnI_Bi4aXr#<#D@5h)1Bu?JPRVo`HzBOgJj zer%<;ZQ;VsX1IQbrE%oo@fVRUlKID9C$6T|lfVqlEKnAg>ASCXjTlaz;NhHY(k;U> z0$ky{dmOQi#O*D4)lcJM_L*EX<=~!ISgyF;SXo)rBS|IZJd^OYQATMom6|uIX*5qi z1~>Ki`KGv~n9Hvp29HJA;+!*^1m|;l_(2c0x8wM5gG1zaEgqgGjzWIxF(P0Bc;B^p zk5f5&0zGc?xzao86VqIlz16dnnc;J-8PbK_XVlGv2Rkesmf`qaAPy3(S<WGrfO98$7I1jfqh%1M^xY~dQS9oaN-Rsh zP@$I5@W>a#d*T>2@j_*SZY;a(LS=GGzQl_zFTl62%WdPh3%~GqEcO=TsyBA8yttl&oi!eNZ^$)f z4vuxF$qvLByE1)nQtXc`RXk3Z&urC0^I_d=nnB?2SL18k%t|+O$NG-wuFf73SgUnh za2;5aP2j4o03wrLLvme zR^r>oudr1JNPbmt;|6%MT3`k-Y%!1*3x?%bFCo6g1vkC~Ug{gLm!VI=+r^ut3#m4A z>>j~7&zhmE^P)A5wQ?-Vw_N=DH_N&KR(2y9?E$y=w9;hNFqJcbgss==3%h?AHY?W%UWA8Ti+Hg=@SWDAUB|vzrliJP4<_-K0TxYbUJ9MyEr*HRD~O5Q z%G@1_b2!uZ7Ip*Lf%RJpzt^;pi$UwQA#>b*BU{#?gfF>?2m?as%>=$d9WXL-d$i+L zZJeRAaQmaZp|uG@gV=8KO>?ai;asy_vQ>7HSaFzc2YZzrzPm=!C{5DuVBdErX`}8$ zWXN4w@%*Ggxtj-kJ54SH?m>}UJHRNi3#l{jWm7tp4BdUKt5X@7em_w52MCtqLLAh( zt83khN@kbh3_vSLIwrF!YpC6$^bVl|=Qg`J0T1(}5GI@e(<8tHJxZ_{=R0TfV+5<4 zmBhAZFkQKP3vSyh1AY}pySD|)b({csM-tO(5XQFu%Blx7#`HfF9{oC-zg&qbdy}}wXz!hj z#M>o(TBqRX_${Ogc^l&fw%?>QHzMEB=o?E+?{fOyjo5)ZJamMaOm_t}x{(O@8*!N+p<`x=2aNIF9teU!eeQo#O?34Mf;CT$o4-WgYHsS;Y!vMD%x@ zvhPo$EDw}Lz}UY+v1gtfpvC;7M#fLt@6Ynr^a~1c{>u7RC=T6k?AQvdH~wJTS1Qr* z@=m4~EpsOl%U_r!*<1OF%7oi|B;jw?uu^fkaEVWL9r`txXineUX&#sPh+D5?x35&P zrWz2i7ZgnIETacV9 zqx^gl9*jEya#7Y76$qnUNJ;+z#DFPVsoeL-4h;yNhTz2L5EX4JXChy43 zwx!Koi!kpnm_rhL7kR+>*hF^eY9%Hh32lfe`deDTEQt{52k0!g3J0`X?d7$|Q+Dmb9LX^p$isNJiNN+vMFnB;}WZ)u&MushD zP-;nmBY1FSTpx3{8e$HSv^YX}G;ZqSRz4mF$R?qC4VNjWYCUi@nl`NpcjB$wbr^5n zDSj_QA2&&Om>=hB4KdlcPhmKB7H%g_yL25K)LgkDzzqx%;gGq-x=gT{zhD=EyBC=4 zk@D$1!6EUmU8JNpBZ^)AHU>$w4BBG^`FI%yk9%zF>{`he3HDgYg~3nMkTBfF;1>8v zRk#}3R*E+Qg5$OND=SE_OZbQv*Lsm1S2W~l1>fk)XMBi)yBb<{?x>kEhnR73LvS)# zlA@&O{bgUlovp{DvYGEFqc2F4)F4v2cot8eikW1_Wewp^ogw*a&P0de;Kqh)8hqz9 z$TiZG1#Zz1ym(Qo?2@+q+?gZDmaEpo{tYe0y<1|D)~Y zXUoZLc~N`$D4WE;%tp4_;ykZtn{@2kUzLyk*!J^H`hZx%0JguzcmJ3_oVnAA<_Ixt z`7g5aMH4)>Ugz%)@q;m+EFpz70fL*$#liL2}WUM}X(E#Xz9w-7VPvQtwwy=Yn) zF~2R}2o930?#*-!lKw|*u~ zS9oWrstOjV&*eKqpz;eeAP!SE`j`nTQ!&p$Upbg6}nga&t&Lp52`i9=G5Jprl`n<0nv{-IV0l zGZ%=(FA4uy;|t#;V29VVyq(y7!NWk9c7v3+;Hpc$R-kcI1 zWBQAa8TQs&0d`Z|DHGPmo3U6ZSw|xOmV@aGCY%1@T}lGP4KR6nV%7(U*%V|5&~~zB zV*va3VcoVpmEq=liz@>|$=MD<*0|QXXhK**WyYe6r5R6WB&VmQk4eu@pY;Fuzbx~3 z#>h-I<(KfRVeuI$8KW}B?Y;Du@E=Ed!U*>-S&1XvSq&X^IJJUl6^=99*2Nzltiuy+ zu$&N!Ui06;LdL*7jEwNA(AG9^nGw&56N?FnB)d%kNE87#JzhlhI053%`C$@Tf;Dd_C^5J%iv>zPu~;=MoS-PMd_rP_p`dn4m@FAX z-U7d6Y3d<1xGVGNt?4U|IF+;yM8k!7P_$6r4(Ui_c51$CktjSQihFZuWm@6BEc9@# zP{Y=kAweZ}Xptl+&gW%niMMHf#9m@{NjH}K1hy>|Zwe){w^HrVDM=C=lWgGpC~9g# zH$iFe_Y`~`=1gTu8XombV<*$?5&Fn?0-lgP+(WmTX=)H^3584hnbV$|es=RLI}#G{J|N zgpA^Th+-Lod*EYa?+%b3Hr7`G8dTcQ)j%Q(4A*ZDiO?sFV`99FAjC3A)vij2L2fCQW%8Ra+|f83j>f{0Ik%{X(@=@? zj0kudb6gU?&@Jc{)Y;&5ERxRlbJ979v))k$uj7HyUb(ol3;iYXSSkiOV+!w#sYodd zH@?pB`yXp(;?rfnCswif8TJHtQ1HGrM9wgkQftwTB%zQtTb1 ziiH)rlCPRnvD$#IF?Tl@xqvOmw7cPIyd~3~8Q3JT3C--qOuK9H1-u~1*9tGzbc=jk zuJDc_5sL>xgL-0#4?EBk7mA+Hx8N<8gJBN6V<|gtxIMztCJ3v>G0v=pmgUV=t#Yb{ zwew*xSo&F(fdQJ~ri1rXCmITAI8bYF7gBIJ!|x|A=VRw0Ilc!ca;z9K7(G&oVGp|! z86sBs9AW*XasdZNW6^$?KH*=CjkjokGGU5iDpB=oRNS$0<{Jc(tiNZ1D7!0=5- z^W}1ixi_+Rv+N^0SAZ7Fm6CN3uOXYXzJo2DgkODHZrBCPoB1fh?-s3H*Jzc&;rBYN z)i^cE<}Sjg^@n3C$25osg1J8c*9L6O2)nVGiIK@?HDqtga$yz{9s|KQ_!#LW5%4GW z4Jtpgi4A_mr%&OV#K3{C#Wy4Dkwv#?vL4>WB>FbaGfsq1iG%rS<{rj;FMhjBZ{8u9 znt2B+cVmNlCu?`xlLGJ3SiO_o?6$jfce7{Q5YYFaZ0<44CF5yA3m(H5SNF-L`|0L` z?2|~9< zJkEzHe^+%d1!i~*3+vyLyf0xqd`hDTV-yaf749mmDQVMloTPo6i-K9t3rgd- zbFdhKwim?gENNTXj@NKE39?^gCr8>NGGCG@l$S+{;wsol@x0guVurV{u%f&wTOIdb zmXmFd_52TLzH$`&beC6F71a^T>jRX$0ZL4L{GYctt#50kydz7Y?{RKU;4l2~*Wrle z0CH+N^nKoj4}7zS9vmPDJ5gdjBub)qZd~hzex#2(!j5pNj{X}}9}ZCU5hv&q{?DiQ z$NZT_)#tLPVPA5pNa!&PT0t82y~K2!r~FDw`L#y>H-o6ci|+JW5%vha)lRM?^t*us zwUcW|==THRN)mcvAT)_sPY#5zPPhIr5S)bIj|0K78N~Y2KyZ2)p+647-@iS?HO zL{$x;zYYY;5LSL02v-*2bd~--2!RCVzqFQ~k}Wm=EeD3>A9ycIS#BoMjg0EVE6`ll zW7pY0oO%yDiz-Wt+>^vK6RG*i#%vJpjKe?(mjf>H3rLtr^B8OAYFn)S0=P39X8158 z=F2K#Hp4p(cZwZ>TFQCV7;BYXtp3NC5{aBNvgs!cc zRaR48IU6Pm6vwNf+LPAs)8#rdK1?>It^JyRYl6k*C*2$_2@SKK(S)D~NxQ>gWS%^` zJQ87V7sMjKgCAhcwRBqA_Y;IV&;lT<{+3o69>ccQ5(pQBFKzw_0SFhEqI#=Rts zd&&64%ESSmTs}{6YC4E}=MhUPvI^ZwOz_o(#R2JIGIwU6DqN;Ny$en7*Cl57=L%Vn zrSW_OkWRPX(^X^j+&yFLI{gK8xY=eNsWmiPaGn7alKs!{hB}ZfWSk?d;m+ z3p)3i-0%;ODIB8&E3m|=s>UL5gILyL5jom;3ke$I^IVJ^%XFh5;`235FmOZ zspzb#7BAgf#v@)^MxOEbiCVR1`>L%d9b9b@ueR7KwewHtrdR}h$u{H z(x^aSfDSxFT3wM_*x1&Yo6hMOh-qx?Dnv6v7B6(A<2%E3afr*sk$~Yj;}N)2{lKn% z5V7+E$Cx>t&5N-!gqhEo>o+Bq&8et!*Wz5P2s;R89>=fbwoN~to0XiSIDXX-{9L}1 z9F4*f#;}S|rz>DAzLWD=Tc|T>b^*6ZLN1Tfo)sAHw=A2_(r$?taylk(Yw6$`;Y^Nl zBPI^5k7IL5N)bCA>P!y611)593A0(9qjaS#q19?TSG>p4i8GB!vH{XS%9~X?hu9~} zo9=^<(}=kOSN2zS;vy=~fu(F^O;KgtylO(Hf>tcAG#-$uY3y;UvtTE6_6C(oo9Ni? zygmDzzvy=U#~Eanruve~J^yq5rrY_3)8%R6UV<>r%0~byrdQPE5n6>(<)0tP&c;%Y zRu2uEW}s0@jid!v{Ut5@#g{JLthzIrHI49hU-&j@P_rOJXX&k?UFO-+njAledA@VT z>E`0;17~F6JZ}6Q=-c(e{K(I$qs|!;Q-l~St$B=jzO=!op38pv&Y2Q;o-BC8`7H5! zyarj%s=jw7#^Ko)@3e-+tzJA_Y5#pLeE?`%G?{r2sBF)m}on78$ zJo|{}2)Y(|xrbnK6WjN_GYK!i2<>WJ$W8GTJ5M;ntR2fHU(?vqM20UC?Aof2Oo?8M zPyCGmo(9q42}xpF0`?{1QFMJ|!uS@AX-of&X|4apv^F^wvX-%%^^wB^I{47+WUuQZ z9kaX6C^KwYE_s1>pk{R7Ih62%4Lp%}<;_{FS7XvD>Aydg3x@)9KF>x)aZ z69DZ!7>9?gF+@f<*62&BYRcRdH8ZBQH8pQ=i&KS2FMGfc>5N({BkLC9_1or-ob0Y1 z86UBZeQ1cZJGuwr5vgU4>0uUQWb_nOMpia-c2(C_l&V1$7ICVv0tyxEbh2) zGVD+-%^jQgJkBI|RYpWcF?O~oG7^u=h+xV#J^L_4mlS)W3|nr(feB~v7-GIzqS9}{ zYg=i$)bv|rIPx}mqLVa6dn$SIyuvZri&m3pyfnjks0Kvt42X&f;LEAVo3Fnu#Ob*O zYMn2huoJtLuZwPzi>=`8M$KA=8Fsr|h&gu1l>%Rm__o#9UYhTa`rmXX@`v2zyW4?3 z6=B|~tqks#nmy;z{%f?n*d^|s=Jqs)rG`);PlVKuKSHV-YxYOT%WW*e<8!U zBoLPY#5grSs4W&A(lRXX>bwHm^UBJ(MI?-03-D(}3^DK4D0x`R_K3^|opmMOAF&U0 zApy#xTB65fqJ%x{RAF3vq6L=%G$Tv!~@w&2;aF{=;;~!~bFbWW+kxJ1&da>$oiT_<9eaH|w?y{M`{4Gj16a#-Gr@Su5XH z;LQ3qoT*y2%TsV{tyod-%NF8INq(HDy&A4O!QcQ zgFAI9jZ2j4`q|y~CU8&MlDqXG8i&c7wN-tIEWh(Wkbd5^ADqXA6bt>&vX^%=( zm9AIm29;i}(v2#;LZw%#^eUBZQt8zy-K^3rD!oRf*Q)e7m0qvXttw?Iy+NhhRC=RI zZ&K;aD!oOex2p6um2Ow*?JC`&(mPaor%LZq=}wj2tBqSB)({ZOSJsq|x&exlM(Rr;AqKUe7&D*aNW$5eV;rC+J^ zYn6VZ(r;Dzol3t~=?RsdROt^Y{ZXYqsq|-+{-V-fRr;Gse^==rD*aQXf2s78O8-{r zKO3oT6V(Cq00Y1XFaZJp!vJPLARq`}0R#g=0HFXYfag~LVE`K-9AF1T02}}(AQBJ- zhz7&}VgYf0cz_F#07wKR0g?eJfK)&lARUka$OH@rWC2D1+<=jQY(Nem7mx=S1sDw& z0~ia)2NVFt0mcK)0u%x!044&?1{48`0VRM^KpCJMFbOajPyv_%mD$Cz89} z2{eag1{{{RH@H*fPz?*$oh3HSl1T0}8xgaQl zg)vq{Md4XujruIuMSY45X<|n~MeJRE-hzIdkUB%sDe>&J1h* zI&E14=sgjn&lq~`H$lsSVvt!O{Rw{hpZgB?KYiT zr+fI5unXUmHjW~f#pi?*^4W?BtlYzuM@|iu>gJNTVK!R=`HXlNk%uck|3?QZ4_6-h zbDA;iOOn>pH+Q6NXKYC6+~TXf#nXM+xsTQ8t|`|&La*JS%P>8+>y#%qe*3-aU)iDS zdu50Il_#Xk5Hfa{EOVOi$r(fYZk=a%d#>TmBX{++_8DS=bT9R7{jXt_LH7(bKWn&t z)H6rEJ@M@c>o=YS`yVpxzI5FFrW4N`c@)6@|Ko`_{RuVumjU^>NTBaOYuGpDp(7FZ zJb0vA|0@1t*dF@eJKas&$u4VGc(-NEs6mM=M<9(J*<*;bE@)h^^sXb_M{k~g(35jw zpP|f6L!UEDOx}9%l<_s`w>4utc_%i8?Dn)D+_G~`=B}hQ!}iYG7muu`;&+%nyp=9{ z-rx+n`=IAGdew7=1l>0J;B$sZ`ug*R;4urD7z>`hLu;bDo7kW5E`7IwRW_JO#zLTa z*FhTgoMFQMfBhjN>kjt*anG*P?;Jf9GWVWWA3S>H{DZ4&ceU1Dy7FM}!PgGHeel4+ ze-4sETMw;0^ylV_Rx45{DL7a3?;4GO(Bzaxzfj8tAlRaAx{n4AUagC9EdORgxg4eJY4W+sz zbk>W8O#E5@qG1yLy!E2N8+7pS&GV`5B}2-bPY$07dF?gn*Ii|~Wfcb*Ge36)bsIfL z5BGj^^5Ee$kMBC|Lc*m#9$unbpexlE=^KNV2QAi3*0<@6NBaLCekA-z{E??WJv`ZS z-j{2JKK&_O`;uXr?j^eKC4)nEDgE*#!+T*wCnIr80{GY!1vSGaGwhtdVa_q=e z+iBPAMVgS9jlx&ef4qNzF&4-Uc32cI`tL9n55{VcRhX$*{-|miLIoz>+$X< zJbh$GZrQs}p$j~}9cMH=Q|SG#7{*2#KHBk!hkV-m0~6|I>qk3IL$X18Gfz3U?|jt| zP7V9PR|K8D-=NqdK6>qGBJa)I_nRl;qp$FD-yZYVcI3Vz&mTGO!*f5p^usGYB>aE(fBX5j&Xa_! zJ4{IC2Tcd&9awaLCENp?_}~9d{_kY;(RoLUkLr%59wp@BzKkyo?*$orUp%z)8-u>j zaMJL%&M+l7Yv(D$<$Z>xAbeH!N@`2cV=cxR5uME`y?^XY*ca-#CZ#uMZ`i(H%dSb; z8+PjVy_W$uHl=rgCnaU~rLCUHo|lsrdmc^MqF+;fZ;9u=NgmJVNxefohvR$m*JOGA z7}lHU0j*Jc$M5qpTB*B;=SX62(ninfx;s(b zu06T68@HRc9=ddjhtZh1H)UTH%P~#RC}qf^y{Y@gGvv6vm+Twqc{zEDm39M zTT`~{@YkBM7&tKQszrmlKV|>nvJ;7SeVt|Y98cadq*o7tZE@{9vAFx|#ohSt@x|R=)ov%AYv{Gqn6A5qK1+>R zQeDcLu&%GVk8cm%MYbODRQH{x#tIKC9IbrZcnpSfjIw_06UM%=PYfx)(72<+L!P29 zx`vL?>FHmtp?BcVcK1-XOP{tw$EMx&-+#3MQ9FHK}8V?i_29`V3P{KAmnU?Vf77#IWY6(`uPX zEelr5LUxv!)y`=%%8E*7POB*L7FJA~R#8qIFX(zMYHRgP%deU26-gsYvrmENl2ni*B)-qMHA<~31!ZD;O*g)$p}EzUUo}ZfAj<0?*3!s`RW5Jm3B>sZaIJM3 zuDn@8N4!a2f5+?&eoL3OXV`EOvyXoJjyZbv+qxd_!Sbas3(NW#@b5pgz+9^KZIqrBIW4$h`AVXeb?XEcCpj9VuIWxdG$z z)dxR4W%Ts&FE({8p01QFAxtG1Jzcc#SZGpsekxypCdaAJv8>qP!FB@W$2^Z^kL)D3YIUdY;R2^<|#ov^Bb1=ym`blHK?b)v7VU9 zg17*T(}H@4y_{}69;&!2f_mB-kX9+uOw)tX_9PD{$yM~3!eudsTu zx1zFeab0U$Mh7v^(5UAU)65`98mL)7VURFM&(?^}(JGva3Pa8d^5#;;NANt3?jol1 zMP<$lf*ASIwz7uy_J-Dq)}kegmb4Scg+X>c>_s9+W@iys?e(X_9G#{*QP@3yP~i=X z*@WZ^lZm+=3^g@yh8AcNXwVp12!Oi0=K)}-M$FJsPTj&H`nA6%CQ)hFcM#Vuh1F9hdu!%Y7PAW2v{bbYSPueW8-lz! zlutS+vnw>lHVVc!SP3;RePbexb zm@$diw*>V}sGd_@m|s@r6G=HFcq^xk0e6ikYrj@2yS%+^(}c40&M1%=&K zCnXhNOJrwTqQlwo$>~G;9%u-2UMDS2Bex~#7h8+y8r5+N+(A@p7p6#Vy3R z0_sj#DXaj~m(49)aTD_@O(kX#^J@09gKNi2kll2tFc0R-paSdL*gS~3Tqym7#4&kY z`9+1k{P}Iojmz5`GUgCl=b0MMKw{R=tB%+ z^Wm|b>e&i;y{>0T6Gp%WrkJ5FuFw=SM$<;txJ^u}R?jGa(ZMX(z%})iLgR*CrAzZw zHMB2pZE71!!Z+*E)-GJ=o9#QtH;05>txH>%g^%&y0|-!)Dk$ zF8=f!BHg6x>HpsOVtAvz+eqapkgtNZsYF>n2w7QLSxkaA z7}GM@Yz(`?nC46HmDDseHj?oh>G@ffbIh9Am{acrTdvMlzITSW=667bE;FPl+J?AHKU(S*D(nZA_9 z=B7odB=}lm+B|N!ucLX{mgvswjbiNN5!W_j&xC1ZrF>@L@1)|IY57%CiJ1nnn0t(T z)+b;v-iX|lGpZ-&6Z6ds3#*+&B5yT9e2l}XUXbus=2zuUt4_~>W-#9tC}7%d6t??z zqt|azLhdj^cd|hde5WR?@Vi*6FfNuhuV^5io%q_BV+oQ55FSCC=NjprZ(PbOb3WKa zzj<>>cpmK2ozpA~VEyI^HGTt|TNqbvdTpTgaH1fq8R!E_*NgwE5Nl}8-s(=}r(_RtHoym`cVA-#Q!#nD--<;lhTtTV!V&-ZtLeF1*u^4262 zdkgZ5u<#+a1`KPl!UHe9y7_Iyx)AyD{P{|13P|uGW7-YO{z;3CQ@thC4GkBwxxR&% zmI&zvU!?VIXxPQPb4xIBh_{gz=30iEmogNa2(eA{l3YtnL9;;ciO_=Ifr+pTAA=@> zy_I1ChGAht^TJwUZ!^-m2#c+--I%tvu+TTwN95)BnGao(2nECHwyn?*S-$d$8jcEC z$+B1b#**L;ZMHpF<#a%0a$ zSYo7jvoktUiLn!Mwy$ARWPsYJDxO4KKA|+KYl=Xuw4%7GYF$xj6;aj>QYNOtqT-pv zz0OEKemBDD>N>knS@~2FL2rNB=%CWbFn3?(Sc^RA964OqGoh?#PQFhppoz@_jVBiO zRn1Ea>!6K-C7q_DWGLeV-@?Y`x^@z2rJH<~2(yjhSl2`-wAW{G7uf}ZcZ~zT{axd9 z;-i*phB9ActzYk0T^!9!DkqH2aqDPZr^N=JMci78JttBp6q7BA>F*L&`<2>Wz#hYt zGMilkEKy7>UA)#3?e=K2etl90_PQFgFC9}Tm3 zmOdY&i7hghiA@mTW>02zub~}nCdND_kg;@hmnE@t9Bbn_1KKzpt3RTQ4=g>ZDyDH0 zK+F?aF0mUsmzB!*cLRu~XG53S3eH{z6l(oZ6zC6AiMB7B1aoaUDea8i1k80rX(w`t9W)LvDOAK#ra)q{c5cXU`n#Ps!Pj>b-sov$r_R0 zRg+&%qOA1+R9ik6G*|SdcTOtGc+Rq@rqV z3f2o47pWv+2`yM}iPv3B8`fJAa~cDAOLDr{SX-M?GJHZ=DseXXQwm2yNTucL@@tw) zNK`ZZ?|MsQUW=$*TE@mT9~f7%y``lUrC^5&vbqZjtBKUclKC*Xl5f1)bvrj$T-NIG zIV5zuo@d`0bzIj{g{`Z@8@J?xkyX zTO9iPjP${|W?RVpnlbS_Kp)+0i4E-)#>9)I*F*H<-4^G>hy5lv_!0ja=uuV))<8{l zOB;yoF?@;N8jmETPjFF4#y?I+|HpF9`A-N0XX{D)4zTrKdYf_Y}QM; zv1D0NiV3@(S8LcwRNt-lTXZ^UNxdIUrI_RprSE|UEUQ)ohm;XM?X&vwhDonDO+vL4 zmOVB>nsA*y>IeGa>r#Z?@gqI=9Z8`Vz9Tt9%s&$}$?Nsj(yi}EabbzSk*VHFrk6`{ zHqoQ+NiOT}1dA%TKmH(msUQ6pp}uz|XLMNwvHVT=N^EW=94gqL{=>4aBGIRLmPi{B z9EfCWyB&I1tQ#E4e1otaDJ_+4%oSx15*bCs-o+)QWyQocL^HXiSS^%Rz-vR~p+HsF zFe@w&3fjo5aDZp%gQO50Ru^>tdy+>svmF(94;9;#=x`eMo)qPR?PhK>KiiVncSXxA z)zvwn+rdIw<4Fd0;an^2U=l=)n;aVkerRlsLBMx%}Ph4 z(oOG6ZdaNpsfpQ?uBB$sr;wU8d|)c*#$-a|+NkknZyr!ZVN*M?XHn07N%7Dqx1L0gVK(i#t0jj7EtCrZajy!tM`P)2`=yBZbFj0{ z*(N+aNy#J>##cD9vWRhl?k3`xNTrV@yY5{2{eH>r%tsStm|DI965XCkh8NQ452OsG zSQzfP*z>jtw_0imJ^uqKWymBHOP@^ld@QA9z|`^@MiS!`pdB!=Ot$`Zdn@Y}V4VOv zOOmJ2Pd<=_O@=)sGEC^8O3kpK-03)m*kC8woF7oJ4Th3CB1U&7Wp()W44FvWGib#D zjLMl>N*~+BB*`N0%YbyoDg_TBP%i&gQ)&21iXn8J6)R z6xNUD9}S(cL^wM_F9MGFMn_}tU(5=_?D5@bP8NLj7dJJpZ1O=*VP~V;_L&qtq?zSu zp(hVY&dz1Jp1QV1VuEF3n+9VW(roQQy4qMTt}Z0u%Q335xAFaIHVK8ph*!WQ3cnGt zbm+WegtIM~jj2@u21xK~ZcBYcx&$P$w1GDdnczX1AIt}57Kyx^UUf){U~VGeR|erV zAROV-(eFN!Ttn9~p4aJU_~(*iahH}WJCB&UH6f_LaR)J0Q5$rcbG0M6YhK6X$-*DR zs>&wLO`>u9v}1BZM~)Z;p;w|j^JB3lUBznNtm~m~nPhu9FndAg^dk$O*2|ZaF3SJc_Tf2SaRrYqK+d{%Fvrp-|$;>)c1vyu0xQ(5y>`VJGu}a zQ~7q$Kxpz=txMV)Nazl&V(isTcM3%qdKYj^AZV`RZs=94_I)F}v&I*c!H-m0K8YCb zK^3{X=)oh>82fH9s#AngV|K@NFYM7V$H|G!_XnOqO({egvZv?u!(WDRmu2u}{lEtdBCLmegt6%C15< zb01?)$vR@{6VA!#$N!ZV<`#gv_6cog@T6co=D*Oy)q?j;1N5+Fq@JSkQArv3v|qT| z{e~hi18567?_RELWVJW=$xZcG)+1xr3YmZ&x`b~qf)HrWv%(u%tJ;j zuLuci(s1k**1q#KO<(w}{p%u|R=Hr!_y$w^{|nd=Z`MY>-yUH6-yCc?iSaEk7QL^( zNcP47E#{WzZB~;tVDNxr*6LlqsdiL*4xM3Y4r^I(&SE^m zOwEVF)EpJ2<|8mAe|(099R7(gHJ=H=5779jp9@p-1&XB~6Q<@%tp=EyuYh(O7xD`9 zi7+)Mkd*wjFg4$>O20j$Qu9gBVdq;gHK)$1*!DeAnXVXMYJL=^<|i$MX_22nIs6wv zSu-`ip3M$S&2J*lU?$DKYfXWv`GfKJr^wZBYW_N#7&A5h2vZYH^k4G?p6;q0q3_g!K`oy5JCqIwltyi^ruqH&@h%KTu;9{ z2u)$p3sWQMg{hH|XtV0MA=d^pH#Ii>KvSb=H86?VQ389KL8itT;D7|<03GgSm>M@o z3^X+n$Q0r?HBoxH`H;?COEKMd#_$^Hqaztg* z*FTpcXO7VStDzamDu81-8-`{S7fBb19jza1XuN~%%or`7GgrUuh-BC2>8bOGlssfC zsvACzuK7aB=sZU+yzaC5HH&EiI+GcliK4CjM(13O31)N(SdXtFp@qQtjZQI$oo#eV zP+jgMy*D=tmUfkYwGHL7E`L1z?uZnpOxE)S)<9Dt?H$>A>!C8i=3S;;GYKW>iOQi!1Q4MG_Lo|c^Z6Q%J|BV%9 zhq{SrmR>{-%oc1r=Fo{>N_N9sjEagAl1uM7k1qRCik0UHDVoj~`CJ#!+rN~Yx(n$O zUrI@pwPGatO(hAhgRuGV?uM(vRL>f_ikKQSA`A6=(_&ksX$j53!m`IKX3bee;|#L1 z%ybcJz$&aO(J{e|ehDuXEZdqfsKm0b*jrtbj}xfi7UW^h5YsZPS*?OycN^XMmE=;| zF}S(QP3xNilDM2c{gsrUTR}hhN^Ye3hud3+=NRbWK+?Nn^-tVQMBHXI5La z*@6jljgV!?bxhu@KcwsZ14^)F+NMdHie^OLKvTY!qNE<-h00?Nt3opDMq2Z=l$3b0 z)`VhQb3EjZyV6$X;m<@9LeT0b=5`8ov(Xc+KPFmjr;vsNNl!92J)Ca@h5(t$%&I|Crb4_TidW$lTKAf}JNH+-<>j{{AK`GoZo zU3OA(mJs)6+Q`b!X>ObC1><0!dA_Wl52&rAVnz+IeQ|bO$55B+ODdm|oI}3C@2KO{ zdrFGzJfRJZTw?qhXwx@BZyLYFhjQ{?ruBE4G;>JE_iVPZQ)S~1$Q|+{%o-0-vj61o zvjGw|{jAO4U&IWK_?2Z!g*VY#EzY8FYS>kXAwz7xi6MZ1H~(>HgoG!y3K67)amMafufP#kbc3>vi%g!Xqrq?vk3Mmf^j|y#g zR01teXT8Hcg9u`nQ9?{rU>mCzz)rm$1&o_wkdRM)H9T6==I9i)8#qT^yCFu+3O}|KKx(534FVYm_A{ zLXw)P^c!|BEe85rRETY6*fK-f+Bq5dV|{HtVr@lkL}HBhwJoo&Z)iibPn$uU`&-+Q zh88)@(F*r#v8L}2RyDCjG}x9uwENfxTgLZ6CRuo*FLMi#!e zz;YF{7<)TqD^P4#oY!4i;cIBcdJbMu6py-=4=1&}!dH}ElkXco!RH?)#B`lDXRb#^ z>ox-q`3q$y1LBM-iPGtRNQn_QXw_wt@EbK|3cZC@#B~$B`VYyezr{d%Yr%OAvD_va zt{Jzm?FJFC1lvh0w-0PQk?$Co6|xAsb3kVKu7R1^oY@H;<-3`FXZl5}z!V1rKW6Zb;$hVTx-7Ae{_&@jkoY(<1V6$1 zOeOXwQBv!)Onss{Hmd64x83O${_FF`)@@sqLtSL=>+U>{H|-$8_3MI zp#KxYE9@<%q`5ZEBJulZ`QK7p?AwqomXl%cFikBy5hVCsO|3<|M>qd1xtG2VB>*k# zt4CzIZ((cmQeSoZg3=}uvL6Xtg*iXKuUZ`X`k(@Nwv^OywIuX_$iP+FLHzcsG}j@P zKM*UX6@unEEL2vf^$1kfAT1UCp&@M@3maqPN$^okXT^L3O9AEzf!)M+q}ATaYVTsf zq5QFsi*`=DmIQyIwaxh{V~w*rP-DA31A0;e-T9AXHGj^s@OYvx=nMZyaT&)1f;Z<& z{Ps7;`V~F~2g4nw(rHQ2pAhXCVg357_Ixv_J>P2Wi9V^dXET*wkZj{^--)Rq8p(Gd z_V2}VV(=9Df#rj~LLB9fLK#K>M4vh>MRoonR8JOU*FQLZ6@$Y1yMIvlC!F<9jR98I zMjj&kmr(i6zYPPc+@K95^FIcE7^-qwRE5ac1-@*t$}&$Si1`*_s)|ngIlyox&K-LF+w#OpllbPn z5{%!0UJ1d6-)^?Fx7HG~nPFJ40&#~15(`Q>r}fRto7yo1!)UEews(djJ>8eI1R;xU zi+Y#*MgVRDE)-G7zB zm)up|Qdi&Ln@B=4wDjy87SH#vK~4(K)GkBh!POhoL!}_u8BWYOz%o6bO;ScubC8@o zWE3ts#Ez!9L2`_1Og|ZOu2w#qj2KIsg5(_CIC^`KoT(d6-wu-FCr%7v+Y}geoOtmO z1`iq>CgyWB8Y77*UtGK~6=)Z53X#N2#Ry_A=9hbdOT;~#s7bWKC`TGggJ9sO=X)Hu zv)e&p3uD3UAhsdpihKl-aY-n!*&M;FD!VOYF2_WGWrPuo#f>3Rw7YqEyRUhn58*Ms zW-XAM#7__6Cf1vqp54`g+d>Tskl5f`+T7aUt7~0^80D&NjBQi|0#8rxj*+Hu6pmu?s$Pe)|)p&@c~CvFxo7otD2 zw}>d`pMffcMY`Y&Tu~9RU3dnrjM!?=K+Pbwx-(Fdi88+*)yY(W7pK`a+&vn^2>iPX z1jm+!pa6TN8;NCM|7Q_C7xjOFQ_JH1PcRw2r2n&wWM0(&HDe>wc=YF?7-qPs#I};v zbt@WJtiP{q$?68;TpC1sTVzG=YNGij+39N5*lFn}0>(3!(H4{J^|W#t#Mv(T{fq;W z@hj*vCixsJu>UmS{@rT-Js$2e8_q&MO_#7iiTxq&8?oUed<7%8ui!EaAhsZb|D}`N zOX7NbjbO*=>u0ALZGsnALB|!HDEl>A_$* zL${s|36ax6H=rsu)pJPn74)1CIVyCcR(Upw+e8QpK5flucq0TMcg-Q8S*PDaX|q&@>{^_0+M4{8FE$?N!dX|!sKM#9W*CQ9yat&o}rFPVRA&UsE4H7 zMc1+{JL&E)Id;U|JWEE$`0Sh!BS*17$&T@fdx91c=RLfQWr#IL6A?to;uc}ob_Ma> zpkCQc<#5>+`5zEqA@)ADsKOnv;CnUoAA2927%sVTAb-Yeo}@e?2EJzb88KpiG*D@0VPkV!17Gnt z`$SH${3vf&Ik^PwBKF5w=6a~2lK#BPlgJC5?q?5i{KWYbMtpxOHux91Py3e{&#(dH z6I6)xS$q{XEU7uGZOd?{kntz8H5rH&(^&x^c#J@Nv6`-iFZ zMSKieB|2ZC&st=M?qzO=ZNabjd*D^ZFKZM1*d{wN_XdR0-%j`IVoot9WLF#FV;jH; zm&*TWz9cK|H~*zj%sw{9KR#e~#&i+)+l<0$AMQ=n)Xi^ffD5Pyilu`@z8gf}e0zvX zpZy+vT9UJL`{_wZj?jHTgJn5B{(vSm*Fn}$UkTg94O~M<9HP@?*=;^7K4y6uPmA2cdC1>1>0MjlM$ z%_H`2{9VL{D7#D7MS{Q8MB_e5pR&rX#P7f@FTq!fZNBzqJ|juUDI|zB?DzCHt2{B{ z2Z7+S`4PVZviXV2=A55_8!Ve&7-pbsoWJrs0okl%aZeD=Z%jB!!tZCuhVj*oDHr^Q zf7Ja+57^|G^uGd)?U#!EpFvXLZ6fy5G)|F~6dk*1#8KY7jm!;V*CVbP%cKCBof}35 z(eo8KBG$-mp4I!W!B~b2`b-^4w<&VUR1>?1Rj&@(vnV0`^?)G1z8GxwM`?#5UK)e3 zq;YxMViFR@zSw+?4X43&IcA1MAh>)b{PxS&D&u3Y7_AHw*qbg~$SBs5V4D_k9jh=l zcs=wJ2sYDf4@8lNJH_ohaR*6pApurcs4ae_h&bHzS-WhX8R3sJH$@t`<2pLZI3S<6 zq%V9;r4_^!jT>uhFCU{_;)-R>PQqu=Z#!gVYzj*pIKUjKJbPe(wc&CZ1e3-D172d% znPAwBGd{gKLo=9MLrq$&;dtpS-5>AZt7`b%0636#vI(!vX0>Q70b%*?N|_eEY8=h-kHK9)c9_X89!_Vs2Sal~n;&Xskneq%JK}scj`Cd2~ zcl9c2h@4KahypY0cn?=Ah$n;obCDeD8BWCB*5O6uJodKjtu@VMnf%X;GUCmo4=j@H zwCZBnWzJ$bct>W_9|OR%{V->GVdJqCC3n#}HeIeJnDZb<=4a5gSD3IRxu#&N#dBv7S9` zfd?@x<8gfe7elmj_J|4exklNon@A7iPv^OWxdB*bGR_c9E#x)Ti#sP}-csTyB)oex z$}`HmY|$E0MEFsUj~I)|b;MFacnAvLN#UN-ByoShe@sTqlbO^JikwB{(t%mitKepw z!VhR-IdDywt0>Qhe2EYAXB+tNye`n4FZ=cB#{z=71138O#gU3D_iDz}g9IYG9 znM<#1lE*wH+TqaHVWH z03j{sm;sVo0^|xVxd_Wj;$I3dzf5q4f9S5F%`LJcZS}v&?2^GUyA;iEUPd24{_4y7 zW!4F_v<6~f(?`=kLw&5Z#JU#42VJ-%;5-Xnr!`*cVhv*}lEzA0`ypA~)U`~`G^-5F z1TbYity(6R)@~38E`TfW+b@8qjrh=(0Hwax2D~b;qCvYYByZwroFOh7_mv#smrW~b z)h-)d#pR<|HzNbTkn2ANO1_%Lx5~phw?J_0s{i6?4NIBpp=5buqmQ%f-pa}ZwhZia z!&lh6pn(Kmqe<6#E!yv|Y$LN+mg@%T1pD;_R<5kHAdm|)-?WWz*F-oaJ*^jjs5h56 z)15uqxI`*lzSI4y|>Fzq!e;I{dOH#+%Vg@-65ke%(hqs7Se$Cbh}Q zBX2`u*mjLP+x*Hq*oS}1n~ivoJ3x{d4tQtoMDDb^=$bY;mF>RTX*p>8N?P&nC@l#+{a34n{ng)z=S+Na2CXNu9u(9&`?u!A_K;9zQ@x1u$Qd=7P1=XSyx9I59|0lLqhjV7AH#>GPt0-uw*LtN zj}@=vNv)Fq4weOUqwT4|bwsmDp4KWsl<_mHl4nIF>3ir;?eI4}NBFuX<9V9ATuu*u zL3~EMNY7giYw!}3x$R|9(E!ekuYgkIs{}47E{m-01^*68kIW?a9P_#CZtC`T!I|4iFrvuu!1ngLLf*OrAqb2CLL~Z)QB4 zn$lsdcwTo?Gp?Q(kD!qK!@<=I&w()QNBxXvCU?bWisGRkX~lC<-^Z*4p9m3~J{5l_ ze&!!snp&Za9dalgu~JS*{T%s2zW@Q|D`fx>pJ8=eQ zBfy#C>%p99tbNnZn(3s*)py$8Q{u1jd(d?KfLnhZbt=TS5WTp-hsJ>fnfN0Ju=$mj z*In1{qv;)Tw(e(oeutbY|B88)wT&&$jK6_I-0zfj$evi-9~6Cyjt~7)tDgnY|AkE6 zzggMH^WofY<*!wsBJ@-|G5&*8^J#Qc7Q$;Vg@`}Synnjr0zu{`y|@NpG3eNH65Jn) znCloLK6AFwttl2~XXp@QXZ9~QmncIAT+kB)Nu-I@z?PxVThLfV%UjkJ%3D>cBWp3PA;8S&RSqZ&0#S${nYVlve zC~0kIfMP+&kQN%xAB?EPGiJnOMQ}XZHrTXF9*St4%T9-{mYqcoepg0i+CDzBt$Arf z`(hj?#1oTK+>bHh`XLE%>omWh4Hpd=D}njCio`_H4Xfc4j`H6%Lf=H=x*^v-+1;Yc z`$=aa#vCLgVsRycwk+;Y+t`$vjiJ%%Yv{mxR7MYyqvCY@e0i1HU(@(Z=HkM8AMxxa zAtp@1Kwe5ljpi;Dn$J%f$gS&UNs28YX6E0?O zjs2at_GQNH3_c=J9d2b1(+?UeKZ^c#{KT$k`yVvI-V(YWgnwZj%dK7@paxen*x`Lk zXEnc&BjHj8tD8HWS;e@H!74W6E(VM5Vqv4Wks*2;6A^XW{vJ?-KYE8L$ap%f@kB&q zpF^hyPcVx7O*cPJb^{Bpm-I`LC~^Sj zZwWD4S%jpG#WA-K7rVGoU(a4v@MmDPi%T31hbYZG|6IiE)jkLAaxfhsu&l)l8)6dI zI!LOU-tZ0vNQ7YB9?4n9n?ZO%1lN~3*ows-B_uF#Crj8(52nv1Rp6#=a}i!82*rI5 zhQW51gvK(#dkd<4DDFXIB|qZn-v|>qE>N7smL_4q<5~!pVuD~rPSgizZ(?!aqm$@@ zcjZx?!vr@-6j7-K+OvzfPcM2CWG2x;JQ-HR#v*J39?1G4t!N_w8SF-oIOv6DI z6UXRf^3G%*ONcQGAFgax;eoOYPo0jCU46mt$-ge`3n{Svq6;Y!4=a!98u3_>wLUCK zslgj;{s&a?H|XmS9ici>GR!UE);uBc$tKhK4b!cC8>ZVjqB_|^7!R45pY!_?i1dQy ziVEv76I`-=Z9Cgz#XSk+bC(74byt$D$cg-ftsHovMlAK;JJD_$P5z2<+K zNV86GroGO*8klRWGtQZoKbxy|^BXA3mUtNNZ?gB0*!iMgLlNaI@Wgfl?2d}2#@zep zGfg(vxOb2QQvNrls*20=rxg>^yTY?%d=HM4@b{T_iu-GFa7A#x@KCuwpmMX#Iv6e4{hYimnRa8tSA;-jXN8s{HG$0O>I`TLkn}Rqn6L7ZLRjs+k z*^2<-UmJI}*baqpD<+&z_HU>(MNz`O^)r%1?BCIBpgK=!mF8rV*dO=L3zoMK+pl<<2-6P^5C3Ao z{2K^~Gh>td2Yg+KJ~jRc8AktQgh_ZU|q4iHnjZ!w^2tLV|{98+4O#2>s+C-OZ1cDW=^8a&R~~*Gb44&svWZXN{9n zho|PG`cl75{x11+vMxpXfBZir?f%rCQt6aml#HQYrTmg&Of~mi_KWgkW~xFEC8D)c z^LY`oUW?xK5tBj0nB)d+OR5ZfWQB@A8ZW#aVF>@SBJA3~H`FLwL?~{s zq(v9o5z5Al@Z3svu!3pCHg9&Th`}0!G~2Z3o9tj>L|is;+6^=tZ+}iVI`9?dM0B^< z(BNJ+!mims;ti_7=_Ij6_(_71qPq4v;zrQ*zdjI|5KXU3wa2H#o=GFjqm@X^#uJfo zECQ&5IOFNjRJ&tbB8w@6-NsD?K4y8X<|Kd27?wp~Qb8CtkJFix-_4jP!`T3WH!>kx z1tHixX_nv`-QY@N;&$jG(rHVY-90v=U%JDYbiF9S-4XtNGiCxEk`;*8&KBJmpF>|r zv&ZR1@ZQrS;{KE0oQ{jl2)))Of_2PU9hIkb)L4HEb>nSp{fbj{Jq=CKA3CoR+VRl>P_O3{`2s>ZYHjWAK&G-_q@A z!IMNv++>=bVfVyNVZ?;sO0jkgM?|&%Ycz3`3E58bBl~4r&Sh(er~q>ZtZPsemvmFCQn7IZ7G;hWX);)-%W}b51Ief&0B9xlj z6L!NCanwYaBgQN;b+W0)b2;ZS%BwgdfhR|?O+zF#am*8utJ=tB`LR?pBc7VK8U90r zRAcK&%ol1^Ve?aqg7!Ktd%g`pMLs?{P4h*7TGRrAmp(V#?v88_;fx^*14C$$Chf)a z=izqGuqFN$5bMSMuJGpP9z1?C{u5EV2pQ-X^j>|>_gKc*V5IQ_6YYnAv05#NJC&W_sOKG z^uA1cDk3;O$h0SPZqVd-1s_hOZG13gZQw^KY{=DkOUf$pYlwRz8jZ!QH@lk!VP?Rw zn!#e)h;b9@bYA)IW8*5MDF~Gg=sf?(xLOloCq^9Nr%A}xz%7Dnw6AYX}8ctrvC`qG56COvhC5G4*<=4TLZhqjPPhb zXNZj^#)sK|5DE>SpGM^|K}C9;NteH<%U(kx<|j~6EH#V>fF>dT_0KEmseXpACnBb& zIVFhc8LeBMMgEvQ{kibA8;=I{Y%J)X)hRAIthbE$f?FyWZ;OgT1^i?d$)po?J$xw+DV#k??o=zspGY zyZv92h~>ThFDw@=@ArRBD(=K3zy9yy>BRCu|7UqIkq-2K=Huwma4ny$RvU3?+Te%Q8!Vy-^);ePN&< zjj%g9kMV$9V*XN-d>%opGB=AUEo>gLU@_BiHu~WuI>AOezQ1NSiRy^+8!hMDN(?z( zAb-eZ3@ z&>KhEqi6mS;L-G};K=&hS-k!(cy#_DYJneo5O05Ky!|EWaQ$PT`N4Ka)@f09F!8@q ztrM|u4n2RHo4=UGTd1-r>oU-zkY18G2%!+%NePz&3$}xhhKSdV8OiVqyF%&HqwLP8Fop{k5tt^6c+A=;0qK&1IEN8d1ml2yu#G3G zcrZ+G7-6TLT)R6HQNOIGoled$mLwIGSfOFsabJ$n6?6+cb^ZuGcLe=D*Y4_!)cDUO z_Gl5n!Fr{%O}sKs%rPv~gDG@kM6fRj@v!&f8Q-Qj!J{c&t2V)3ZE4ZKY7<$tJocBl zh1>}HWqprc;VWi(I@ca@L2`hJCUF87~l3{2PlSMDhvq#4ua@e25dzmGc7m(N-ULE!2*&TUnarIBowvY7F zE^p}Igpk*T0AoK5koTvMn9;lnH)4+c$pfp1$ff6e73wzTF_JXPrYZnXY{C1BSwx3YvC`hro@ZCV?FiblZxgw%xj9z@YJV{3k&oA;}{-Rt_Hr* z@!459W5$KCWrC+{JfkuK+4uvrp8BTt@gv63`}f-&7YNKk)KpoD3}@EENhK9!fJPGh zI;><;Lk9BlKMV0+jSH3$xp)?qp5a-TI?h9%`oJEU&D*lL6?H5Uw^VRRB`j>oLQe|l zrFt$2^KioWNY5UJkIS}&$6Tczu&W0gI}bQVm*QXIz%%2sOKZF=?l&Kf30DsDG<6KZ zGlzw11jDZygr5Vv5s#9PxKVU=xXUwSG=3+Jp_hld5@zKxUl>$xo_5C`4~}Tw9n(1N zuJt*{?i$a$bOUQdtTyO6@Bqoc`WQBcB%Mot3wI?B$w$di1vK7*i>+}Mm+b;#D#rcv zHh9rX1pmS>$68fAo7g9btKtKY(}-y@N_4a#s)CikYPPH@zpQ3%C6T6pRV=JD(U6KV z`ijMsXIbDwup2ymV#is!Q*!n8h3s+t!e06e+4;OHq|fw*>o=XLhh5%IEX>;Zrpwb= zURpDPNadg?kXcz+-$@mNzm1h>k33!Qfs6Bk4^x%ar0TPpG>zEt5((Q84QSGA{wxV= zl4+*!U&hX&n@_r8bhGJwCtYsa9OiBe^!DuaC{Ld~iKCN~Ctabz=L!GruzA$*ohvC= zdyQoH1vL9Ryi$B2z2G}nysnn|zH>$4AN9KRJD1BnU!Ue%y1cEOpLF095q5~3FfE-VeqpY@=r?#L-FHlTiP_W zp|z=@Q7dfQpkd3F%->%WBea z*3BHp8hoWFX}y|bSVJ`o-c8}lgov&5pCGq8_ZqxI!!{pWT2;%Ni0N99!G4`St)TVd z$?!5YHneVLGdK8DR8}5j>-ND*3DoHocWkz>mRF6nC-v|diJ17`UOg9Ns%FXma zqdPhH7V+u6m40G$yBxQPbA*JPZZYv{YUaRQst$4Q91;=Xfg#=y*vo1f85A`Od2>*o zyeH^mof;pZ#z*dqkD9x)*Qi%7kJ@>8^oCAsyYcv6;2(t`=38(IrR~se#c7lIHgPFl*@ zc|^`8K0J4c=lr5})7yr`M0Wm19Ln;e8)U;<)~5T!BYgJz!Js$@;!h=uQ=kXHs#^Iwd@TY>D*4~6kBM)7}AsgpSIRv_2L9O?g8m#`Vs zTKE`mA%BZov=DCu4tUF1ew?>Zr1J*idBFO{6~y{vfG!gGzi{G5Z~K`#*^ z!_$BR2|mLKiVTdP`&oKqXpAfJIffUca8`u3p`I6_19qn=X2{Nmj6+l$s^qFlo~n#hm2s+aj;f4Tl?kdcQB}@Wm3&nxP?bVeDN>bURVh)GNvbkgRZ3N5 zimFUil`>VCrYhyCQlTo9sxnslXm1U~Z zsw!=&(yl7YRb_>$tW=c_RavDft5xL^Rk>7EE>o4uRi#r^)~Je4Ro1G?I#uaXm2Op0 zRb{=ZY*3XeRAr;8Y*LjgRplyG*{mv8tI8Ht*{UknsLHjfa-FJNuPWPAg{sO8s?wt> zH>%1_s&ccc+@dPCs>*GuvRzefSCt*Aa)+wisVaA=%1%|eTUG8+m0hZ`TUGv}D)*|& zeX4T5syv`7y{ht{syw7B539-}s`99+Jf**=s=TBsFRRKcs`9F;>{XT5RONM5c|%qHrz&r%%3G?kPgUMlm3LI- zT~&EcRo+*X{i^bTsvJ<2gQ{{!RSv7l5mot6RgS94N2>C%s(hj#efpPB*0`q zDPRgz(s(I0gZsAfF?jQparlD&PUSHWI ZPFileBufPtr >LDYA ZPFileBufPtr - >SYSCALL StrToL + ldx ZPVarType + cpx #CSH.T.UCHAR + bcc .2 + + >SYSCALL StrToUL + bra .3 + +.2 >SYSCALL StrToL +.3 bcs .9 + ldy ZPVarType + lda CSH.TYPESIZE,y + cmp #4 + beq .8 + + cmp #2 + bne .4 + + ldy #1 + >PULLA + sta (pStack),y + >PULLA + sta (pStack),y + clc + rts + +.4 >PULLA + inc pStack + inc pStack + sta (pStack) +.8 clc .9 rts *-------------------------------------- * Input : ZPFileBufPtr, A = Var Type, Value on Stack @@ -1164,8 +1193,7 @@ CSH.SIZEOF txa *-------------------------------------- CSH.EXEC jmp (J.CSH.EXEC,x) *-------------------------------------- -EXEC.printf >DEBUG - >SYSCALL printf2 +EXEC.printf >SYSCALL printf2 rts *-------------------------------------- EXEC.puts >PULLYA @@ -1176,6 +1204,8 @@ EXEC.cos >FPU COS rts *-------------------------------------- EXEC.getchar >SYSCALL getchar + >PUSHA + >DEBUG rts *-------------------------------------- MAN diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 06aca11e..4a833b39 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -228,7 +228,7 @@ SYS.AToI .EQ $72 SYS.AToL .EQ $74 SYS.StrToF .EQ $76 SYS.StrToL .EQ $78 -* .EQ $7A +SYS.StrToUL .EQ $7A SYS.RealPath .EQ $7C * .EQ $7E *-------------------------------------- diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index c543e192..522cdfb2 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -267,7 +267,8 @@ GP.SetARG ldx #FPU.SETARG .HS 2C BIT ABS GP.SetFAC ldx #FPU.SETFAC - >LDYA pStack + lda pStack + ldy pStack+1 bra GP.RomCall */-------------------------------------- * # float diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 64f7c4c6..7e64a829 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -73,7 +73,7 @@ K.SYSCALL .DA 0 $00 .DA K.AToL .DA K.StrToF .DA K.StrToL - .DA 0 + .DA K.StrToUL .DA K.RealPath .DA 0 *-------------------------------------- diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 2edbfca0..0126608f 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -245,7 +245,14 @@ PrintF.hFILE .BS 1 * `>PUSHBI 2` #bytecount * `>SYSCALL printf2` *-------------------------------------- -K.PrintF2 lda (pStack) Bytecount +K.PrintF2 >LDYAI K.IOBuf + >STYA pIOBuf + + ldy #S.PS.hStdOut + lda (pPs),y + sta PrintF.hFILE + + lda (pStack) Bytecount inc tay @@ -255,15 +262,12 @@ K.PrintF2 lda (pStack) Bytecount lda (pStack),y format HI sta ZPPtr2+1 - ldy #S.PS.hStdOut - lda (pPs),y - sta PrintF.hFILE - - >LDYAI K.IOBuf - >STYA pIOBuf bra K.PrintF2.1 -K.FPrintf2 lda (pStack) Bytecount +K.FPrintf2 >LDYAI K.IOBuf + >STYA pIOBuf + + lda (pStack) Bytecount inc tay @@ -277,8 +281,6 @@ K.FPrintf2 lda (pStack) Bytecount lda (pStack),y hFILE sta PrintF.hFILE - >LDYAI K.IOBuf - >STYA pIOBuf bra K.PrintF2.1 K.SPrintf2 lda (pStack) Bytecount @@ -300,7 +302,9 @@ K.SPrintf2 lda (pStack) Bytecount lda (pStack),y str HI sta pIOBuf+1 -K.PrintF2.1 stz PrintF.Cnt +K.PrintF2.1 sty PrintF2.Exit.Cnt+1 + + stz PrintF.Cnt stz PrintF.Cnt+1 lda pStack @@ -405,7 +409,7 @@ K.PrintF2.1 stz PrintF.Cnt .20 jsr PrintF.COut bcc .11 *-------------------------------------- -.99 bra PrintF2.LocalCleanUp +.99 bra PrintF2.Exit *-------------------------------------- .8 ldx PrintF.hFILE beq .80 Writing to buffer, append \0 @@ -428,16 +432,16 @@ K.PrintF2.1 stz PrintF.Cnt .81 >LDYA PrintF.Cnt * clc *-------------------------------------- -PrintF2.LocalCleanUp - php +PrintF2.Exit php pha - lda pLocal - sec ByteCnt byte - adc (pLocal) ... ByteCnt - sta pStack CC + lda pStack + sec +Bytecount byte +PrintF2.Exit.Cnt + adc #$ff SELF MODIFIED + sta pStack pla plp -PrintF2.LocalCleanUp.RTS + rts *-------------------------------------- K.SPrintF stz PrintF.hFILE @@ -721,25 +725,20 @@ PrintF.F clc bcc .1 bne PrintF.StrNum.RTS -.1 tya - sec +1 +.1 sta PrintF.LocalGetByte+1 + + tya + sec +1 for bytecount byte adc pStack - tay - - lda pStack+1 - + ldy pStack+1 A,Y = float + ldx #FPU.SETFAC jsr GP.ROMCALL - lda PrintF.LocalGetByte+1 - clc - adc #5 - sta PrintF.LocalGetByte+1 - - ldy #A2osX.NumStrBuf + ldy #A2osX.NumStrBuf+1 FOUT.1 will do a DEY ldx #FPU.FOUT jsr GP.ROMCALL - + PrintF.StrNum ldy #0 .2 lda A2osX.NumStrBuf,y diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index c73ed73f..cb220c15 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -38,6 +38,11 @@ K.strtof pha *\-------------------------------------- K.AToF >STYA TXTPTR Ptr to source string + lda pStack + sec + sbc #5 + sta pStack + jsr CHARGOT ldx #FPU.FIN