From bddfb2f439d5f234607a505c7fc946d98dff5e7f Mon Sep 17 00:00:00 2001 From: Anton Krotov Date: Fri, 23 Mar 2018 22:01:12 +0000 Subject: [PATCH] Oberon-07: base address 0x10000 for applications (parameter "kem" instead "kos") git-svn-id: svn://kolibrios.org@7209 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/develop/oberon07/Compiler.kex | Bin 34748 -> 34834 bytes programs/develop/oberon07/Docs/About1251.txt | 2 + programs/develop/oberon07/Docs/About866.txt | 2 + .../develop/oberon07/Lib/KolibriOS/API.ob07 | 42 +++++++++--------- .../develop/oberon07/Lib/KolibriOS/HOST.ob07 | 24 +++++++--- .../oberon07/Lib/KolibriOS/KOSAPI.ob07 | 16 +++++-- .../develop/oberon07/Source/Compiler.ob07 | 16 ++++++- programs/develop/oberon07/Source/X86.ob07 | 30 ++++++++++--- 8 files changed, 92 insertions(+), 40 deletions(-) diff --git a/programs/develop/oberon07/Compiler.kex b/programs/develop/oberon07/Compiler.kex index 54dcae25b8bc75384c7fa8ffd28e93f7bffab84a..926b99964d495f27a64c593498943a66f937cd69 100644 GIT binary patch literal 34834 zcmV(hK={8)P(w@PB?16J00001Mv*2LLXK;4&&M{gp_Z2kISrw_APP;w7#aX>y078;6TOArw3ntF%%pw1w#o1xWwfN17HPsCBD6ChuU^m%XPk~7 zZP5?b-qV97mGJaK!qzLcX4c>8ib8|)yY!bWwHLXi{Sqo3O^+jvGXMB7l7!S(^hR1V zAfpJ>Am8;QA?3Cj(?<>h?wA};dZSW@^{li1Glgi;mIU<9m6aEf`Ie5@mQ;RK=Z(Co z!A$M&hCN2OCE_$UJF?HOg~gMBI&)?^rt7UuZ~P)U?ckxt@_f#_=)Gj{vEhtuS8DQkDmzb#!=UcvtA0_&IYUr(73YqN7eAtNgjs*{YRM( zPg3b=>%Lq+K+cv-m)5i~yjRmw@Eziv>tAf6lh&-AA@7}Q0AY~GLljNq*+Leb(_p$W zaA?z-z-%~1I4B;v5a{Q6y~=D+j10t!qhcn{chwRU3=1n86wnq@-Tf!fXbR`l1Gf|c z%=3bY_w}oG!*gr&O!BfxK4!1??f zvi?j3dy_<`90sZh8*5DEeqyJp_ia~on%rp_grYkZ~BcP7Q0Bq_~Yg`zNt2?kBE>pP&L;zPfl8YJ=CcIzTlgk zvjCMjvHWa#CMH9{A|)#Ki@j&K#arNJSH$?j*y-($ag;c@X+UHK!d1S>3ZA~wFc!Wh=?2!l|yQ+&5Ci#qDpPlhIG;EmuDsn7GWKIVo@ zX#>ZYz5_L0u9}?=H52!41jP@G6b>Q|P}t%sXtrb1z>iiLXAW=Gc; z^qR=UWeh5O$duGohV+HH^-*Qp9I9thub1%>D`4Oem=g*=?)s!PRdt<3LQX*_R~z!M`c>ZhsFrt`^i8SZ*fjg@x&fwGCRe@3v7~2&jV{T5}Oex#4RXD z`D3wL8RQ}}YUFCLU5fE_)xZR+StHRsuFEKQs3@L+%N;FzfkV+l&;?{RN{^{~v8l== z-MD6Rrs%#$ls7(rfooDZ;9EBQ`eJ@*QmL|gS3Qq3$fj#pB%Dw?=wl;qH}d|?;RuU) zCloD#T+r~0r2jvcIDt3XQArSzcoPIvsiYi?ZxMRlBX0~0Lv)+%OOCT-1Qx1 zHM;?~A}ybL)A@IzmlGoMag1dP=axh8+G;Vn!lXBj>d_i+{=i!Ak$9*eUjEIOl9ERF zgzk{Q6@J5V?!~F)9-gyst#T!nwXE?sjRe@&T-(88S0gjsSur)Jn(rsvl_Ni;cFnP`6j@u^OP6xw2G{*0-u1g#8FVLC2^+629JCS#0>>hPn3y^8898z-*s$Nvni@G zX>&B`4Nht@-L>&rs**k&?K8Z2b^Ln(cL{;c1fN6Tq1ggF^L{%E!Fo|Y6c*qk^r-~L zma~uVt*{J-wBu~Cu-xcHdx@B77+dx8)}oO_ZhaOE!o@(;?*uo;eEXEe&d+v@Cl&AI z8hNIQ6LERwkx5#n7aSB8q}sqiL+7-KdnfmI!34FP*38))GS+zTMRpkcfUH5)@P2gV zH@r-0>D(Q9d`;28*i5)Re_g=rbLDA84RRLZ$OEz#5|6a$6hE$25F*e|p~^fQsbLQy z0i6uCimod#@&9Yg48~hZik!|Y{R23$jIiAq4n4&C25V@VNRi|Yf3eYrjf*q zuI}6VGk)hk-2zRg>9Uysv297Yd83!1wrdHH7gL=d0AxuHZaf>Ig`z@jVd>5|t()Fn0$zJd%G4Ow-`1p+kb)<+$X!z4X}ryH~ApDhn`$m|{;E z?V;3{kn?S?NP^Q-5)=p(xiStX*Olqs$?;#`A~DAUDg-gf!ESMiAeq^#$mg)`N^fVF zt`!PNr84Iorz%xCkpPfKya?(@LZ3ll4{WtJQbC!MT|_?R*N<$f&MdF`uEgx@nOW&@ zYpTZ#HGJ-=ZpwZ#^ z>QCb-#jNz)K#nxW0j4&~_dtG>m>JzzLyonsULejd-dkysE7v$qLA^#N7Fvz+z5O2m zM(hMh)E4ghHvOp4CklmurLU?41)-<1DMz~HXN2m4#H4Kn=Cn`J&p%(^DdSL=?iotv z-zJzSQz7HH28SXQSSOWHnbsZ}fMVlnOEFU{e`qW0}TomOcBx^VeW z!&kMcspI4P_PLXODXsujN(`z`KmHe{vgyEpOm(Nnid^<%&{b{8!4}s89Yf!$Ck@60 z&?H;?7CGR`0sZlq`o+x^U0+^P3$IlX6Do6v$m)BTcl=ENkBhWzZ9a)8%H>6-1AG3; zXPMY*N};ZXy%2+{k5>||Y8|+8zkO6D?BphmUL?(6Q5O>Q!A4y0@tY3z>{3t%aQGVa z=HQ=?CtZB(YtB0vAC?3w4T9WC{<@1`wK+5s+6}Ul*Li-%<&C??khVmv^h2|7!!4rnVEKx{{v3t2*H`!1kiC``*)2Uj1KT`kw4xDgECy2w*}{sx%lFM8LAbM7R0y6ix~#OnWyQhuOLE`P#z z0s6PeGW)LcGPU772U_iDH7d500Df_vxKb+@&RM1Yz&1}xm|eK=b}7lu;>}RafEic* z`guGnE7_XA3nY__#Sp0mbe*fp3l9!Lm+lWAlYOdk8q z&9;JjU=H$IHimUKIoB13Zjm zoz+;r2=BRG$_A`&;|d-9Iug`qp;ojxyhfjGf9vQU7fc67c*e3ziBVFemD1uc%AV3A zxs6#z-LBZAB>m2;WQ?invG#w72$^om(EtRTTN8Yg--O&9pgGkL=~gX9#FS%iEhz|R zfyiRyl`z#4(vqy~+0R+WR9MIDaqf>(0rNa%>G+#sVOtBn-Cauup*8?hEhaQr`bXiE z=SN$#JnUJ8l7I2%L|7yaE+S8yA3=}>Yo6*;a`8-|wc(@#k-G@@eqYY-xk*2lzLi$ot;_Y6`d zd@k5#Lt00jj7G+%C9BPkmyg-0C6{}->##@kSJ<7wSG0j;g>r;|YvZKz;G;dh2+YKs6MP{TqG&C-!TFPro&{3RLynAcfI-xh`an5sGUkgRDa3*;S2ZR__+4SU=7> zyBY%kM1|BdqTgv?ZeWBf#n(@?CoSJavgT@-D{1+CbtKmli$|V+quUxX-c$wAXCzJ? zgFXBe<~C2xLo#aP)W^zx_3w6b^neD4?i87!M zft1w&qUhmJfwI}wraD?e+YtvR)S)3;%JgLdyPHHMXw?-~uUYQ=MzFjgvBO60|MCH~wrf;|3~n!Sq2v+_@8mFoDbQ{D!p zRY_M{P-;N@xm3PfV!}#RlDmT}D1?z8v^EVh?Q*L~3%)Va@pkD&jTRht) zhntXJ>sy)##yTP{!12h4f^y6$h#*(XQ8R%%j>*+73j<8_3Qpokdr3V${SMb0jz-I&~2}-k7c>$AGYO z%SrYaulz0hO2%MRZIXLY?Xnt>hPp0-ZyGNHDDIHmO&qH{UW(h}z)O0?@3!!~=DkHv zvRF~~$FJ`_l^p9jPXsET7KfXI7z+`>vxmcbB?Z>$g7`VvbQYzoWw#Rj337=bMnH4~ z?alHXZ65mG^?m?L2Mu^n8~Dqxc=cHzOk6Acs#LJU(5O~sX3tv`7{!H zw$x)W#Ty{(xFKGstGLQ^#+ieBAfi&Il>gEOZNwJ07|--<^+|^6Pl+Z?g&R^?C@Ct7 z*~}BW6I@(D@ki&u$OH+0m^T?_;_d$(O6v;D0Uv?K&(<(m4o#reG zO(6hu1TyqBjcr@L>^>JWq~d)1#S@ndqLOb0{Xjh>O+GYm(fFQ+x7<7)x`=9qqhl*D zABbP};RrN2(DT#c^#EC55}*wlMlF-3+Egp2gbXPOYtIHIF;Rh_b?z!ywmdcCtq^CA zS|v(CRwqG;XQQ!Mj6hq{aTpt1Gu6VI>xLDR_9W%xVJq{8JklRq2Lxolg$O^0`Q$$A zoD^PJCY)uH1WLKTWo^ry$EL2~Pl zgEXM3@LITaW@NNGwRk~h>9e%+8?vK90%O@N z!`3r$=pe=cn(cs!gjh3N(0r(Jr$w~8XGqcZ8l6z2Z%X~!&H<*MTVc)PE{M5UhPn1Z zb;hhUATlyR@)7KVL$bENet2VJ+Wc6fj>S>3wNU3(?htTp^~HBcJG;^MVrhh#baCzA zQ~^YA5(vY?TEs*N`|3^Gc6@fiukh-~jIPkfuIKb&x0*R{ZR(@$&9ztGlTjF%+f1h& z}5hHxi(ZO4+n|xUffNcs8BP5iy5F7q5gIOx=|= zy0IKlJhhL4Sy9%$O#{`vRuIl}T z{*UKe@8%<>G4yz0R-_wM&DfUPE@E(8$xbL8hF+O@Tg4mC31I>DCp;nKUl`3!$H)xV zJgn=7E6BDL{D@O?L}bTh`{ig|vgW8@%bQD^HO#E(au9{d5#F>D;$XZ(6@Y8xHKs|V^mN31mDUy< zQNIV@;Dn@QeiR|kp=YXDyE4zvm<9!iUXMhz1u$&B4I@lAqo924mdMYV`B4A78sngR7X>8PX_ggY(VIToig zRDqv9*bE}q6!^o@r8qEP9z85V6uq%HPG|WSf#3+T-!k`;V-AkLJW;lxFikK=WE5NLahwuYrA`1!7L+TL!(kt4xuRtc*J$pd9#iQdwcyc*cXXJR z^`WMRS8H`s2WyHVG|CYpgJ}~1YCs21y3UJkCg~PUGa@l(c0taxBHap~aVuZt{+qz; zLb*|KnY3_prR=5R&>Nj{__A`$+-F2Vs6(vVEvE%~;w2;ovA1K@aL(AUQrx_G%W1o` zz5=H|naqv0&_h|xtw8*FUALa!srMThCj$R z{t%@scQ*lJQP#In^$phK&HIQQI0+JiO~nC58RVF<+Jd&D5x(LfF5GjYrD3t={r%zT ze}R#x9v;XI$_B)2+Uy~;giYLvi|IiSw=GMreP-Ft4n}PetHGJ^p$i=V+M+s{wTD@R zC%Y6?N>I0lMjyh?FotBaO=2-n4J}lglEpo^e|;j{TzvQNq6|`<4_{ThO>5$HtexAt zOb4)+%IA+mLTQFo2wa9l#(67zNbR48v5sjv%C8QG7F(trcl(7=8ss4tX|3u4Mvtiq z5+t?{LMkp~Nssl8!i6X0;4^RL?iHERtZZdeai8NOV>@$b1iGU0w0eG+MW3v%evXM-gNtU!=#?I84*Q94m49Q)S<$%Z5STEb?Jr;7 zyCm^DyjX93p@8!Qx79liKM=caA}#?{uVN!YfLRYao_BF@=6xhFS{WZ;5V*VrIS2B~ zy|;$Ith7VK;mcE8&N{^lcx6Un60Q)5w17@QO$Vd3OZ>inMZnd|96w;rhj2)?@$U3O zufv15czQmy>uLr7-b>zIT@jJp#1l9I)o{%eQ`(d82P zL{*X*)OEgAqrq>!?~?}s)KaJ=@C2iGtPNz)iAfZ=jGLGa7!}2JfBzlj8RsQwjx83B z+&&pnp|8+&X!C7YaDn(-`ie27eNnlHWG!$p{#Ls*0l#X~rV_`*+%lNr4EQ+COY(aI zb`py?L-d9|-9GAZOY?`fQ^(5!*@Vw*Z{YX@JYktbNr1NqJXFe*>kNKWVz?dhZ`~jR zlp;GCN0Y_GzlXAc53y2CcL_j$t1Oib1aa*Fdxdj@YTL}S9{LqG@Yo#=#YNhs6<@#I zd>W=}#62OT#OqRALaA<8wIll{bY-E8O($SidG9G0g+$l4>T<6n1dZr}BRWbniB%c$ ztiJ)dYMFLx3du~-zePoy-Epc{yx2g~vIs3AM^)Rvv@M04)(c4)$}d5N$rwi1olk1c ztDU}>cn+lS;bUpqX7(#!JW-kg92oj&(8zexDHML1N!J+DQQ_8OLQAEgNL)LGkz3^NUg*2#o)aosWor&)j1a7()TyO5< zIY(jhc+fRb7|{^@s@kti9V5MAy78PXe|Pfky!@5y|6@91o3L}1;C(g!uwk7^6owBR zpXK47r-xB!wrGOmczeTdfr%)Eyv_=Oji%#ov|+glBOMqXo1JG5WgZ8Yl%8OUF9wg$ zr@iy?WQbr)U9>F?Xrcd3-l{@_Z_3KLxaeQpf}<%3HMw=J{{4yW+f0xAblYVpM(>Z| z7jp(^cvh(Xc{Hz_x6T91O9*Hc1r-go|5eprb$~^2oI1G6>U6%O-zQ z|0SHo5w7s?&xXs7Ek>*Tr+A_3RE{+9>d3f@2z{rpI|8y-o6%6RarVyvMct-|G>Ve{ zH7sw@o&KN^AcqkZ)?^)_l)=iJW@@-9rmQTsCkXUP{w9lY&)yHYhXW18`mBMjq2QLjh5ncMrt5xg8+wt$ zYY}2fO37cmJ2u5TFty3)JK07bDrm^oVkb6@dT0U&%G)RsyPMlRMt-VJmem57yRY0} z)}46A-vo=#4dopo)|dFfCW_>OwW;aKx+De7X~1FCUGK~Zd{h!L`H zZpR!hS)oof@Hj-E}uA4#-y1h6TbUHI#eN_@Jx(ojBe!%IXi>+v$EN! z^#oQ<9ARU3i%NRQcG!K`W6&-oF_Z9!l+kl6VcSoK<`h3Yx#1lSu-LfC#soc zql(Ku*6Kd~f&bw6!5-mr`13w&(--x-2}&&!D>xeD{Mz@VzEwa*%@7R^&*6EWy#;rr z;f&=MqB&&^_%7-cbba#hM4yTx80FO4WfN{?;kUf<-}mR35?+{QOu7dqRxv`)%5$o= z$N8;pF+JJhw1zJaKi+^QY4T71A8|pn;NZ%jB>UyQ3>2+__00M2!!=9t z3mTDM3k_PdODq?t#J%TqD%uTWbd6Vq(s|^}r=YmhH{IdAY!-f9#tRYh)wP*R^~Ua5Mp-)6SQDPe(BjD{HfB;+H$|pcwiVRIE0-xr^Ii-fIA;sw1Jv=Ib&I5&{{hgw4`FpNHu9{l+HKzR%x>Pm8oPdKh zpU|LFf6@Hu7J=|Wvf?u(8OTwWGM2w@d9@!BF%p?99|9-L~@F;gyK4|B6X5r zz2v3NcP6P*-tUG&Okx2RRdW1{yWJBz4U5$y=Gr$}W9;uCHiE76rK(5(nHQcB==3NG zUggdUQLkNGI6Uxy(1=Q9<46KOM{?v7dw?{j7eMnNL&tx3_Foe&Ts^>ffV7$FlsB5b zj-8H=E6@A=_DniNxdGB1jnds`;S?|zy>p=Nup9w{wc0vk?tSX`o9oOXWtdVuqL%;Ey}*!MM~r4hio#ttQSN^$}Gt=7vSD!Tmj3gQ&Q>8nJscM;$t? zlDfSOdmg{kN0CV|WQeX1_>mXd4Xs}iWhQjDlGr;#S#pkTNUmUEI4gwQvn4-#Jx;}n zwfAGOdBe^8ZJA-I8PJfNoWKw&&{5`{?#ChO2h*0|1yK;>;L?!yRFSf5Q#s)Pp(+;<0&{xbGN1ihoPa?U~gg;VSqQHuIq`213GSXbotK`fuU% z5ear}ZgIxFVgmLulwSMpXMr~(w!815-s)l^cSLV~Q=7~_7~wh{=%*f^& zl%3?Nu7PbXzyLHQ=eX~j2o-@;0lSiLNi;;r^x6y3V%p?{lNuW>e!|d01X-L}MB9Bt zTWjj3;_O&QY7?Z{_LR;Us_w9=KKv$a@xXSu4*~gqqjz92frT-Ut!9>*v|zmTJQU$m z+$#+>St&u>p__-$`ywyC^nN${?u?@;G4L{8Z%{WEV2tUkP+RTtRJLfa{O%L@c2w44 z+heIW?(vxr<7Kq=6m+~k@HkT+C97bgMa`0aB@K3Gs%pyU-=*g#YW@cBJ*e5(a#tYP zclxBxCRsv{H&#ZV0~es)`~*S&1YX_ob}`+tC=#DbYB5^eR_FW(TNH!>TP6=}vaZ0E z4ejDDpMFaC6L|gT=B6%f@EvjTINps3JEVy-uCK}qG%CcwLYsa`vVt)QyrvY$4kYE6 zf`dc(wGz(%t(^frrs)xnFm%{G`w-5mrNsPMDGSn|d9#uW@%!UWQ#pppBuHAXbPwm} zRTJcAlg`WC6fsk5qvk8f0pJS4yb(sA0+Obo{ZTdDS{%o3tC!>0del3RBVHG8NT5>u zB`E*S=XMX`2_9g6{%sCpS%_8KVS>8iEaWnn`E=Kb6@kiqVM zNN&4y1rvXF_*t+)Fb109ObS2RSNjvhJpZbl(6_x2?Z`grROw`6Mujq=rS{;FG};!m zlS;y7Pfyz432&VJQ+DT3$i^*mWqLcK;1IQ=j0{OZ-YrGH~b|ap=yTVzjL#Etg@$GH|7tyNReK zS$v9c$ONNmld^SwQFTOmdUPl*=pBcVP!ESB1lGgkP?GQbKnl;Oe2E=*Cyr52@}4=S zb-DPxtWo)HK%CdGGaE{M3qXg@uU^X>i`eLTmY%MYBq1H})8aLc2FnKhRN}>=h;hd( zOLv6a2~(k2t+PMP7MU)cAP71Nt|M>aXsI@5=_{>7DkY&)t*;21-qUpM`7l>z^iiIN ztV2U#Za3U6VgK>H_(1uQ25z=`uUy!b9yYD7+Ny(2b*pikO84Y3X`qL5V}utmRtYv& zK_S1>1R-(fUsO|$ma_U;whh{LX9uL$sIpTo%V6Sa^t;FY?x`KH$ozIs&~M!gm7nmKboJEwQ;HZJo$M{;;5}SjD4-Ahqxum zfGEIzbDQ!z&c_Pu*8Q({G=lj_05F0&*UK;#0{erCH+f)$wA6sVin}HT&(vd_e zZ@_8h2U-TqJWVRUG90HVC<2%q4kBZ`vx|gca~PY=%Ryo-zkc0!a@b0pcNSR!sx1+X zRel|%)yY5;gM|I;|ArrWIiXU7{IHL^o?%t%yYiQN?seSxl3rW{^&=v7>yGLobVvr^ z2p^tKPZNRy2zvPtxiC)@8s`s;=)QX zi$J)|APRx9Njd?sV`PeCQWzI2koeOyX1iJ2-t#{aA##AYBsr1f%y9GDCE|P^E#kB< ztg;|a{xj{6)CKjuqXbTfY~dE)@I1 zhjhe83k9SMV@{bTO!0@D@8ZgljX$!*?)NT7vf0T5|&oMt;tC!u)k5{p&-L zYCIq&%p0B%5k%4XgUQ2Q?R~%|-g;z$ABdDAxtIt4b%39b1~TW)u^!CB3D=w+Kdya; zD)bA>_JC3zNhqV~WLZqdW38FYVC?lE2itz$L7^je9)T)r=}^0w0| z?BP7xUU?$boS~-HaMZr9`7cM^yIO~Sx7@41KuAC#?Gbg&v)1&d#EEB z=7+fk1hfFSWLLDHz?GEDS(DUkT>*ANXN%``kQVb=p%V2rzqK4;zvm)-6s*j2+Mr`1 zL6Tq!_=>16tV7a7^Q%2ceG%nL%nn!VJF&Ezo`D+xnaG=S!beEuGD%b$V%_U5v$oFj zxww)8n>+4z>;CamDw#l*XYWIF9GnVJ^@%n=gAkdx|2p|%A$Cunz!bebsERA^+FeoT zTu5(GVN6?&M_rFXd>Etb8K}2K`=xbsnbjM!GmGPTin#jTZKuYuj7*ATT4OxDP7lw1 zJ9o&>ud>qYpX5jNXw5Yl^G*_*Y;Rga)JGGFV4Z==3UXyU#F@B`eRh}sX1bof;O0zV zj-v!n3uw?&(-wk@?eG*~70F4>qgXINJDJRAhDiEH^)oc{{M4jl!MVlin>bC8mN)NL zzsX`861h5+c?!hEB!%M{O9k?N)&0$lQW8b{Mh_ylRD`0%SLPft=Aeo(hAC zrE;^lE14kbZwi$&V%6^(YJ85~v}E-{1k;dV3P>?6dW=YPuV%IoCz0R3FD!~f6#A?? zF?b8au~*4l96kOTlt{8?OQRm-OAg;0P-_g2K(W;@MJI_$50hJ<=Lh|x?qaie%7kK|sT;9+rWwwAz6xwUX6yxAZNH9PqFfrd(&LsD z;|cR>IOjE4E2FQ(pK2$#T}#?xncn-)R$Gu*rp$BVCyiT!2G4JDAc2{nJ0Lwh%DSa> ze3@eYk1v%dgVmxPj1)W^{(vxoZYo2{yfo85(Qof`5e0p9DXJ2ynuM&pK!BJ8@Q=8{28-$8Qzo|Jp6G4u4jINts`_;m?l5snQH}$ zm?bTf1cUKhK@Kqn;96@l_YCU%A(s)*YPI3M>A-oot;Ac=6n^Y{Wu5??H1HJ2V?SkE zpevxi(KkG-q=xz8k)K6#UhMc5Uc}R$ig-nN-wgEDs z3{sHC0+##8TnBCkhfA@G`SZqR7GKa%iSUs2;k?J}JLSVd54S<5A|mHKFjo;VZ@$q& zOyJa;4!K%GEL{TWk?;ttBtE&P3(o8LVa8BnL>AdCLea(Hb1z&Dbw%4#5iF;aC+wuq zJQ)D6^My`CsmfT*Jt@XWx+ROU8KOlfuStjwYTEK&W9TApThVGU3AHHL^X9|guIGMcRPZzb*kdw$0Y0ChX(CQw! z8ZJwhA91=esVSSn>d!d?tDN4R5h!6aik~Wq$pZ&8aPZfB)9;+Kie@Ubati6k^nTv_ zLo$Aa3;P-4ct z%|69@+88B*nVZqrV;~Tj6BDQ1&_efUgEPiG#X7AWkzr?y@hYfTSYj~07mPCkam;2| z#9zHc@*kBh5B*Qn)#~dCLEilrz+QxNJ81Es;B&o82s^c@Sa^xa(Cy!$a6R79`%xYj zc76FRYYC3Q8U}^J&E!3GIGDh{Ka#{AA_4q3w1NFcX{k4 z3oOP>0BnB$?&;B4*j19o)1m@kg9mZ3zhnu?<~KbZ4mK^XK#C4F2edD%;XD%j4cTcJ z8k{~nGa7aoLc&axZdpoRbsnScsQG*k9|2Srn%ed0I_{)OB;u+aQ0xq#QaQ2t*R9%) zSv0jYb$e!rRP#dDJe2nV9|Nh*@+07S zCD%s{J6GCqv$5yJ@ay1AoJ7QfyZLA=z}c&`MP8Ti`FA-?CYVT`9i@rdJ8ajH>FFt! z{YO^(sR(TpHf)s9xp;Eg;v(0|7&_RGFsOaDOWb0Gi69~*vd=i?I#aB8aU?aZ8c@;r-L8GSxw zS0UKRq>hs5lwyc@p@Z0F4t>Ap?cf_d?4F z_U1i19JCgk>?=o&ZC}~?iDO$!Sv63t`x?QLD+M}od6VBxq++K(*KcUffWo%cxFSfD zVc5(r6_=J2j^-%0awFx_>V*HH{3ZqwDMGT&1ea`B35##Y<)h(0^nzfM{|UHfN_qd zp$Um*vt&zeqh(4gD1dW$hASs!B%OU~(@GcJcewf+rC&GdE!qoQ7g*b#9d;IvyI@ql zagItI#78*Mp|&+NO4ZueG!s9upS+=r$IGmn2W4ZPRhwhGGlpd6noWq7XwAN8cfeRr zh_Qe~J~W~GQS5mo%vUw7wgq}XM^`&l?ZE}_Z4yDS4(V%$@kbUjcVU_&Tjv>6ao8M` z3NW%yKH$)1CTlOObztami;K^vK^5bl!wpcorc!p3hf}`-V-PMl`t}^AS#0Evqe*Gt ziTo)p`<=+sdk%<4dRXuQ2<|>r^)l~@5_qkz9JKwWW6HeIontB9D}+5^LUn2D*G}z6 zePZlUV^glCkQX&GeTjOlSXg;62z@%0F3ZhLMT)&E(VhXzpH(USfKi;I!M`UW`(e`5 z(1YKNQ`kzfkrVKiaRJK5>(U6$XCbrD`=co%X(~Uk*l-bZ`-zUSoqAb?6e>i?rxX>u z{}b?GXqn?y;rF+=qN*%FX|Jy# znKDrEqV6EUz_f9!ohNh2S@o)pJaAm#{I9cs7d>))?o*!7Xg|Y$zyJ_$sTw)_nPT@k zm=3e|pWewpBuY$ABb8Dkru1ZHgt?p34(vnM^3Dexzlyh=oEIx5b*Z*_WKa zaNJ=(P;3Jez2<_w2KO9YI4B&#iK;s5RrD9a{w$lB@Y}sB3;P*Z0tbqWan0QO1u-SoPHx7XXXp zOacwoo_ck|c$)A|#<)awTwCPK5;1%`G})tT*n)l$6Bj-oi01n!3Bx*q-dnv3GpMx0!K zF@UEK+{IH5lDP&l*p=8JH^#g;k=-S=+G6>Yt@KQ(D4Sb$f~cx5C#)IQgdW*{e<%4s zRMvRV@4506Yz=CjbuI^e&V?; zZYu?kkT(%pN%YMlPGr)F!mvH(vWz|FkI+{;B=5yM@jAA{#FZkCfqJQYmFhoE15-Zd zS==X{0^=clk%;3sbWaaIFfA_h;3cL`Vv~LYD#G&_&G{GedU^^mckcSbE)cUjV=M57 zgOoVMV!T@|PROqvWk1W1gr*(6Xt+#@EtvlT$#q=rmdd$s=2ftElMW&cPX|-&3scet zyi;x$-4#;htXk%f6NbP2zNy-PD38#kx4~6tHcSvPJ(tufg9(n8AJ%#f>!05_)>rNr z*n>mkSfd0%kfdgVqVLVUo&tlNC_SU|;``$VW^Ur4L^T zflMXivKE5vgjsx3&QOo?Xw4SG`S4vlGMEo%Q%;#7Elw8ZHDZwOv9(W_>j0LaNd+^y z;wv45^S+&_c+mJWbjST7b}Pf;3tSb0fMkjO0`i#Xf+$GFL5DH%kW`g&inuz`T^Z%h z527-t$4{#X_^Uc=g>rSv5cft}&37Fby$&S@*GySJ!R3XGGq4TKa!n+Vj(&&NlAr$s zPq-6d`G*)x!DbW7sBzS!8l&r*L?g%)-2SF)8JpU-@S2ohNi_*@fx zNUo2_S&AQfh4JrD6Mk{|FdxvyjTMDE*+PD$cD+9|cyV3YrR)L>yOzxd{AO;6%#|}F z0&~+vmfNYnx)7N%C*$7~Z@*QU9M)v@^#fL7^&l_awqO9X;}P(iRsOM2++(TbUOEw3 zQ@fTN9)iH_fAFgEt@A*rd!PsoerbtDk=ylt{UEk^VE}i)?o?fA2)f-sTFY<4I1+)e zt=rQSYAv?rNOti;?u!k0XJzTKl_l*4$UAo*O6R!qHUHjF^{0fsgP~XzJw+yCea+k% z-kvgmK&T8FpIBaue6AX7BRI~3|8QsMQqgwGBoa3R`MQUNo-ZzWf03^JeS{<|+lZ_$Iq@U25!!P#;~ z0-l*e{3XcQ+?FKGLh~J@7A{S1%!DIW3oPH)KP{wxQuEkvca|diWizTR2wiCXGSe{eONL^Zzj@{-nL>XM|`Cs6w7;BA`21bqu)vb()Cw3m;bgQ z+A$!Ue5$QH=|o9ZB<3o^mxwUaCt}yXddJe-i7lqU%%#S+vaq%6pvzZqJa}qtRm16z zfr>fy=vQ*V5dr@CRY;GQvcvQ`YHPkK&>2t_zG7_w-R%S9iHG47XO!Gbhb_XlJha>M zC7KJoqcDC%ZmZ0@kfWxKnZkBFwc4pwu<~LuE6IOaGv{(}SjSmg@7jnAf-cxjEXHTF zC3;AodS;2@?myhnfWplKad(SGY^bbnIY;-!s8pkA3}b5!Sba_mTb)1vS(2GzH&fgHOK424jLXMdN~-$LSc7AVq8)+S~mKd z9V=&=%soOMzdJ_USV%+nD*ezP*BpGJk#(%ZXnZtB0&yB)|Dr5GjSGH({V+W2=$)Xz zS>Ez@+Jx+$jBG1yc7Ld=>(B~U56_0sr{)6$kQNxLM3qv7cq&-ThaUv7*WG?$c|x$1 zCNNsyr_#^T|6=xL>A5e7?hF7iK+eDPuGeX@VvTuI+Neg?^$C`v-pQ05(F!&s-;5Wv zKfacAbagY?+e>a`ehH$H6a$uo(LBpu2r^|kCrisa6os|1FbQ|9WGropB$uF<&WU2_ zqrQg6^B@^C#UY8vS<=8S14H;E-X*2^LCYt|3uMVFz(zT_R%rwtb0y!E8$ua~8f8cY zFXiq2db6e}P}@wzlO?DG=t@>d6`UF$5C=rJQ;NTcGBWX4+9?`mD4{r~_ z@Iv)?J*@5CG?YlT+~yC!Pa?5V2F?tTOpz_khNhWHT=3V7%;^2oz*`;H-G_PU)0r2I zBJ>`wXcPM$sOk$~2zt3@#wb*N|CUtQcXq3Qf^Poh6<z5uC6h7Ev4)W zzyEa@0NYN*}y zHeSx`s_%CSOej;yf(RO!Z`C#^cojaVaW0Qw=Kg9;g6?OJY7Aq6)Wp4^&Zn+uVPc9>SgKqyWP1FA^t(8={co-Zz(S7wmKKQlu?9a9w%#t8{X%8=ERScOiZP= zaeBX~13AfY5tTbAdtcLZNcE3R2h3d)kSL?}<|8zBVb+?f)t?&wz%P5Q3F1Y6j!OYx z4&&1TL|j4NE-eg@Cz2H6xS{po60sZ`frn>+r3Uyj|I#GyPa{a+`K5vk#}kqkFoc|U ze(cVmRv8mqcvg6T1YEdeT6(79&=VvuGEP*tf*(TGt4^C;*U| zw|IM3!w?~qi)HEMAmHRVMmaHupiUGv^#bF#c`>dHSW#7nJvJ(0woLMwyz<>G!7#=s z%FJM4p5kX*WbVBuVLs<#IYu;ot2h|%VLfn0!|;)homZRzQ*gnzhHVD?{gp)%#x+Aq zrcw>WM$23%8ZW>{gaiBuMv0P5DXa63Yi^5NHeI`dTnUZ>E9nY=Q;n)KZhJvH*XU5L z?<@~&jo=Cm)r%6%CSWnBL`daZ$gXQnn zQ<;dVkOxT@Pc+EDy6;a@WqQ!~O?}RYnHIwb0y{cEXiwQAQvjr7r7uM_*@H7%#VOzN z?daG%+_OkS^Cu*i0uZ~Ze9-n;c3xB$i<2YF4k&=FH1`h{bGMo_gu@cgkhoOI@lhzc z>hN59%dQ9d`vGhXWnA*{@8l9~j9OTdc1Df&{XAKNL^pvES`xDa3|+mL{KHCz$^ zUH!W%jiJ)FNlKeGzgv4`&5M4Wp$2}q@=V!sJ{4g%WS9@-D3IRU;V;<^k<^MtX5GHI zE%6Nk4!;g=5rZ~iSx47kn)yQ11Oq3gWQ8g2Q@8bMn`)7_cBxqp!v;|!udE&>(QP08 zps*>ui^Ra9xS#T((hsIT7`%}N90Gmw1+=v?#Ki7EEkDVCM(6dVVPH#7x%5VH>rO-A zg(yPvA15Jah#owcAzQ`xqw;h2hRiY6B_S6xVS=O9Fp z?XZgYa$8Bjv?Lot$M@&Rr#&F5M7rH3iX75nqh$?@It?RDels)mP`SW4YfH2k12;I0 zAFu~^Yw%GXKx;HZ(+S#Z#HZMTrx zX?7*H6bgELR}m6_YJTQ{8~q9;&itE}1B<7BX}nt`ETN@;KzZ7!KqVDz^a*V)0aLu6 z7(oexvuNzK{}nX2x1A~+QV5dB{STM?1C=V+W=_dhxpsObZ3H1Al8F}fZj7ZB z{TlNkcQCQtH|(D>`;BMEynazN>(OYMVoA=qj3b zMU8|wATnrc+CAWL&ZB4z=GE;S`m;OFNdlng1~i)7PdHfhaE{C3D$351FTJT$?LB}d zSAx)s_JDC~3itus6L_cY{H1dFjQm|m^RXtj%#^Vbnm6RsM7p|hu1lgYiH&}LEj_VQ zWvWBExf)61{3cl_LGu&Z8|w+KUL04z)Xr))+Zv0}xdBlTKMs^OIS&q_V}s;WmJZ!8 z0#4tk?ABCiK*3e65&a=Vtm%W|Yqn6_7)0+_TGzakgFz2XVS;&@h%Q-}c%`*=#Ie}ZqIe;Uv@LIQPW3x*S-e!=* zMAIo9!Wpf1+i0)re`rPRz1F#h$dsAJXIRvvP#GY>K3k610$z;$gHr)|2Ha71=P$A} zbL$hykohkvJ-rOuJuGy?z(1%UHjLy|gQPB$r1PN0w1RCFsu_QT$hpO$*tU07tmgIj zFr)m}=&F1~rJea`UQkA~Hyk^*-7V@fv8PKH`tM!(;~V4Zai8ihon>SzL5B;ZaK=h3 zlZu)ySNKYv{z&PV8k+HBZ-JJmmCU%gWoX}+*S=LmILYL?5tHt`;ee2yoE@@Od>0+= zVM-I2tlPq+BEcH-zm5PZ-3xv5LLl-)OYqOtFP z2&U2S0*e{ANmyCdnB$^H)<4?p6NWMt%I3kpIhjJ0vUX)PkcySSBlkXC(OyS#^KtA2 zgM#YcpO>0|7gnV|3KKt$-8}{kNaEE;Cj0!RKeGQUKPoL6daE1ST{FbnI8Em9?FEz0 z)z%94UJCSeC+O8oew?Zg%cUZ+5G4_Vz)zzMioyKZ-LcjW1GM^`JW`*8q5)QL5ke;L zA-oWh(N-%}b}?3st|dU5XnAXNx=KUO0peb+?F$yTbHeH$XaKlrsJJMcHj#bgz_RX8 zrb9pka`IlC>UKw# z9H@x)R{FWLMaCPONJk@r0+R;Js8t>M|6B=0Z!m2-IQlftL>oCjx~ZRt+>_~V_u zEcra2T2!g>ltk1EhHEgArbBMx1CG==*}9Y**S$?QrXj&e1AT;rUe`6@wC!E+Oj6VP zh#)u-4M1YpzVFF*b_QSq?Rp#^qr@Jn4Kjy3JS{I3odIB)3!5Fa@yy{lSL zaoMj{n`#)ud85ApgeWV%S}4WnsS(iCvT1>1zCSDe(!t>3z_l|%O1#bd`)w^%KO65VfLM~ z;GX252uiGll>R{tgx`e#G9dVunrOjdG`oqg|5&$L<W@v48peq1*U*|jkw*hfr<+(DRsDa1Ogh7WR}s;S3Tf|C$YGfI|kuYpU!u>gB5 z9V_P1(5U^Fz>%Wk+*x6SAz4kpKX_{8oyB>;qU~#fM0MX0%d!nob_#bxKg`)7#eKWB zpTkc%$cMX=rjaV_(}y`@n7NX4KGD=@c-j>l*loT{Ivg%Y<(mej>)+)L9i>ReB4SDJ z;82w6*=H-^AE-(N2+`zIr~GjIN2CxrMjVoMpg~=UmYY(Yl$@AyV6cc`3tRMd2GFm9 z)&0MZGo94N-cvQZisOj^H2(v_p_)5aq~u#yRS_nJdkmm+sa|XMcNfLw3`#7ZVp%j{ z0qi6sYMULUcbGJ?HZzu=DxX#~;~*(V0kfLA^B3_>DdEPP9%Hv7_6{ z$4`q?KDl#I-pyheWV{x&IN=%7OkKT-0kysI8t!D)^yi9uQ?Un!2JDAat=((poG{hk zdLPygId09L2{$=Fh?pRc^C)1Y4Q%H^DJocJD@P%rrx6`94LwhCv@ldYjCQv!}? z7w=68@8*UnxPxqJ4T^N&KQ(7%tC~Qw!^%i&)hGO_wG!LJV3>T0(2R;jQ}Bq-y)% zex8h-XOZ(C({xDy`}I9$2}=2gjrCLZ7xv|RkWlf ztkGWiY7KWX{lg1$iPqU}y<}O`nV&zdmH-Ny8arV%bS~3@X#TFFCuVRaGzqeUB}f1i zLuUGJN!T}&H8BD;BIb?A;)me-Q4xYV;-bATPTAfGHcJbPf}AQdxq*<6o_#U=znQn! z@Jr*jzP5UQM2wLThvEM&FnwF41LAU!<`SNFhF4E)u9AwwW7%->&6=~`NslNL+SAJ1 zGnGT6AoC@tHY%Ob9f8@x2E_g|jhsQEs0c(vjFashmMe#~!g12{k#Z(4J4@{$VTpIKrNz!>skU*9c*Bg*-#7FQ~y$3q>$1wO`D zIM*GiP_=V=SUm120#OB4Pw}Kq6tK&KEO0`zXShS>@{@_AdsV=(lo|J{5SWykxCECX zQCu~>%+A?^k&@vxyitN&!sqZ+&-%DBo?=_z!iiMPG#Q#YbDo697Ht(FEhB5{eo2a& zgun9tCFpdwE+}J3!d8b1s7(A6_2E>prrh=PPtR|V!1WAxyU8@Ia|SdXLOGs7`z5KO zDTV+s`~ZwmR)(7m58oDZOqWeY<~+g=`RI_z812fKy%8d7oXEH|W^Hi&AhVqW4U@^{ zKR8j6=z*LGu`tLv;lD|mb3J$0m9Q<`Q5p#{uND*rT%_wzyc1*!j^;+1hY9sM+jmw? zU=;-#2W6c@Q!ZLhi;S)_z{Ode!4NlywoZpxxpMS#-HR+ve*m_QT1At4)?Zpca-ox;W%W)dzWL88z`H|B5bYgh2PAOa*v3P4UP7>o1=C_Q-6et5LpV8O`)&a3l zuN|4y9J1JtUk=Fx=e;|rX(_QeDb9x~3S)dXmm>N5Y08g=0_J+e0KEbD)b-uZ85$kU zzO`pC>$3)IKoO%#nw@Ljw~r5gmm*aV4|7=QpUZjKfy@q93bmC64bw@6rtXCty`C09 z`sS1X=w-KI>n2_b+T~x$rW+byakXY=#vZWJW1kK%_4Gt2|B>?>+FK>@bX_D=!GQbV zlg;D!Va{@!o;_nF`~WfBW7$WGOU=}=65mQNMdbT`ZWsrwQe5dB$l5j2G%?S%S&+={ zA)u*%O3gyJkvR&mHY{3M(-q9K_d;+t@|;S9!#q4u=p^@Zihr2~zG#+jZBgbU_F^>g z%V9;OkAfmGeYpQC@Kq@YG*XxoSL_YL<8vgf*w&SniJ_Ah#*(MY)Iyyy+`)I>sZU|M zjg1I!7&&QMr{8b?txuAY_Z^SK0Hx+=vW7VF4BWyf7OH41Wwt+(UWVBu{L$llevdYAiM<@Dph*l zL`4L8)nS-f@3QJ1vbl60)8 z=3l&hz_UyM8Ac%wR#_nSQcCNdZW5>3s+sscMsOXEpBOOONZJQuees*;^Oz4o%C|*~ z=fvgb1p%{)I8|<8iufF@4^nTo^~hW+6`jgU4^*8mX@;zHEPx+eKc@(SP=AM;dnd0F z_6qnv#H+tf*&xoHL0vl?EHseANooubnNz*)Qh9DD^P z&5ygSn2`7|tCFy#uf;1<3U#Nb9D7mU2nF_Id(LO9P)hCFw9R_qwTA8D0mqVi?*!iO zXbCCOLVQvnU34~l0hEKUkr{(ECu|~xmXUpa>L;-pRaHR+3FR|W4l1}2X%<)^lMd?; z*kndvNj&z!3ju7qKVsrpHAZ@+6GtG@?B)ptA04ZAIBmK29OrxabbzODHc2eDxa_LM?8$FaX;-bWVsEX!=4`NYtoH$aGa(NW3-^r=3!VO|LiIFnoACH5%gD z!=Im1YW;Q?dr=joTcLX3m{I*?sAkQ4p?Yjow@4J5lw-WHW4QC^VbNV=b)vP=YVW+EnDO-6d{w8AfJ?Fp8N!uOo=v8< zMpl69vZC}l^(j76rtQHgbYM8nSwO@#|CR?3ujidg5p;VsiZU549 z5J;a6)<*ITR~^2BWc5VyrBe{?g*skXli2lqG=2sZDSY3m(2@M-$>D-&RJ4zRL$A%Dz5yKQ0O;tOTbVDDLcvT2rk7COlWUMX=(W|*}YcE>jxtE>nYKjkEv33q@ilg>n?2nA1gGx{vYx?IB?WJHs85=k_e=}_zO=<0oLj6o|ftyKJoqKX)A#!wjHN}CxjPFS7 zb5@q3|I^u9ns(hSzv5A{r(6L;p@okAdv>E`X~!i*(-2Nf8xs?HSNMOs8cEQ~ZP(eA}aEoxjt z`1I#Bdi%%W6<#s3boAv&6l>Sgw=*9DLNjXLW)FlR(r0-7)_>j8F7GjFnVRE0aCC#- zObNKuFyw8nTjsqC@%r5M-T!!GsgBU{7L7f6f zjp>MB1>A$(V~=zX4T@mYk8uZ2mXfH0w5EmWzsVzjsdp6xa(*o-)+kzV3gp0q zllz~x-Bw3YKr<&y!Hvaw+ReU#;%*qy4`?`CqyzVN#&lAVV979xhjsAL!ITY1`Ld6^ z;E{SWt_M%9OiB~*kJeAEH~M+VqK94Yb(dTzP}_htlNJ;_kpA&3x8S&4KPSY!g5quC z>l7GgvYXxh=f2$HvFWbzULM&Yq(xsS1~lfz2H5fKm=( z*b3j*K-biDwOr;E_vUvOBPc7@i^->V?-t%OJ&+tLS8@v~G&yW7z1!M+4o^?AI1?`3 zJmU}$)Ml8*I-RAx5>%jpa!rf;MAKN#B(YT2@sSRdXX@H`sZ{3jBt7`O%ZAUF@#yr_ zFX&e02}buLWbgbS$j+F|*?lf}$Fidc-vMrp0;@y~RxrdGG{#&-?W>=d4CCU~sNTw0 z^wA(VLPq(GhQRS6>z}f7B30;$NiM<}&!k_p-y< zn8q=BoucI!Y!#JBMZ}(N%HGt@;El_!6}{!&W~SdqozUMg=Ucb~Gp9_ll7O)st7M#N z)Dp(%`~Z^_mB*MNWfBG{9Rj4_uM$5FbainR5Fa*6tfa_7y)Av* zpUWbDQ4f$dSfE_LDkH$FW5r_(X4RJ?4V5O?@p$zvO50cfdW;B$jj)8MUC}Eo-|R;A zRxlX3+5CCCgJu(co`wPaYudQm50dt5d|Q5IGRkZSAXtjmW#L*$JzS_t-KjOmDc6b) zWPs!4LF4f8>xc@FIb+e!eBxY?JwBF19fx?cq{0yE2G~>V=scqC)RQb93a2nQFH&c8-Mstj**;zyb{m=FZ2y$ZO=47OD*v>hoH=Qn8OP>0iO@J zUDc!D;)B`!#?ZES;rTmzc)w3p0^?MkjFGumx}gzA5qU&uKa=U&QN`T+gwagx%F=>T zm1B+IxkEl}hfPV}1e^*`6`*edoD;*79)_viQtP)1{jtS9WZc?2(|Bcs(l)BArr5|n zjTwG+veA?sHDjJc=2Qhnj!%qlxnVDBj-iv5hG~PHK*Vo^jHx4Bi^@nJXI0cQfrTk% z?76yr$0b(M&EMucOowVj1u^hUy|XK2%1lA_Y%>u0oxDWzmENy^ddW_*ZSH%8tu>Sg zpEigyh$lZ*2FXcNLr70(_`7SJyV%u}GGO?a+2pT3JQ(79ZXK%{JM?|fc$oLb=uTzy zDhK|JzCE2ov&dR3j?dK~N$gIOnNs5m4yn|?KGV4>G@@6>5%MbTc#V0wu1HEyciD20 zE*_rx9u8#Ne)kkj&66?MLzDRv=M1i?|09;bXiRxBbfc6osrR=eJRE*{zR^R|gtWCij$mvV=!WL+6fabTc7-=gw!v-#W<&o25VH^ANU^6#d3 z>`s;hXX(r^t`R0IX-)>(rDVNyy-M|y!{(V`6CNpeSH%jqH3kIx{v@?vW^_vrDEsVt zo>(ELJBaD@1IO#26uLBs#Fq~{lgYAx!Cb%rBMWb-YB(KIfIx#L-LovruG`CdicJ2*@90XMq^>)fX~n5S z4`2%0nUm;7E6L2*lw$SNHYr?Qm($3i| z#RpgN%*<<$?VTrc625M5KQvK3kM0G2Gz{Z5Ab`J{8fBiLYW)=!tLkiJWG~!5L08JmvKvlmoS+d{4bR^sep%o^eFW5;xJB|aA zw}Mwu7x5(&7CUK5{x@5-Yvv|^j~ z@7oA4x&=--iP=-@MWH7#ZIr)2(mFI?VV>cE@1g*0Zs?Ui4gQc?$bLca;KJ;h_QddL zdjrcNok2R2p{P)0;S=F?W|CCL9um_xxMw;?&Z32W$jMULMFo>~Myf5&{lH^x2RgwO zq=0HC>1iDV@&$RDiHMV~9KnyRklXWo|7LB26)Vt-0=ZUr0KHmlcp!E@P!R=dtZ3=R;Pu@LbT6AyFq~<6 z71$ZLM|^7(J+>;s0S}Q1C7UL_E^)ioqu&t*v&zHFdZn&!bd?7si9o#dD=J8&PkZT9 zr_|B6p6qj`J$HG_$RG#kI~u~#mmCMz@waher>oeNaLPh;pbneoP^MGqU+1XBhhd}< zh?;WkyeOm^zP{9VHw(NYq4V2Z(@j^p8=rtUi(3;14~EBqy3ALK(m0%Zg7CTju#DCP z3?o#V>oNWQHYlNCI)LVf4&^eR!U)i*4~52-W8c*^Ff&-LrvmJYno%!Yx6E~Ua zZ)&*lNp|Ct!7EdpX6vYmMZnN$eSwu`$2*9HmledEbp#c&1-8SUbhv`aP4r7M)t`uZozpWq7JB^aDTEy8 z+vjSR+J z(7A}Qcb|QWqri3!>Bv0lHRglvg3_-pq8n%P)Ebk{PrD7g<>k`C$EL|E)dFkt4dk;B zuTtnvlzkpKeF(q>@DFg1-ave=-R=fq;{Y5*XM^joj z(M))}d_2Ef6v}qu*&DT*tr>1%Ht!M1CswH8WxCC=3B5LredTUda6p|n8a~|0a*2{Y z@aL^-Bm3b0)qn@y7aIE>L9No0)pI~)gVO6#tiQWzx?FL8y%0CI!-^symk z3RV-yL=MEoQRvxMgv>6f-&b+2!}=?y7r^B`AoPyVU`- z$Gb#2DM7PJp52L7rU_>9@GQ>@7wXs9^&nA@uYPbtVXkJr=+hrm`IkeEIK!!~Zsu)u z#0M}mP-EC=B3mMbs^z$T7}~K;n*5LB$g!3ft6@5y zhM&9Jl&m>w5zK;_L8W}?ZENUwFCs4B^CvSR>I@QTx7KM@4&l1FY(7)}BKwj}-WN#AzyN zi57=;Zp2~c$nBf7Zk#(rX_nFIS=kz;|CbEcm&Nz$(bstU-yhw<5<54&vg-X>ZCPFz zYn;qDjd8mz&I1_3&v0K!V*+zXU?&ObEGyh79;i09=sotC{Jbj&;YUM)*EdmmsRTd|V zV5JIPXN}PppWs$`aH1?V1(Jee)O97FRShVp?@yOn!RFEFkgOkDW^4|D5ZVg4_fza` zZi&J)a6Q?P72ZR{Ogr$XgFUg~AEh657#@a73}NmMxGsvWi$oeL{2GV={<5*~4a;Q{>fCmfV>&l&UoJ*<09fdJQ58LG(|ezAEw4}A7)L`M zvab;#rcza_u3K)1B8qRVKev;su0C_v#Edfoqxhrz6Qi6Es=JRtwwBspe<8Z&&VTj| z2l*0b07r%wPzQW}-$2E>$+GN*?DS85eztJ^@|z8F{oWE}AF|Mk(TnGu3@4J4c_e_5TzMY&R9 z3E^g!_)vdslS2X^ zd(up-l&YNsY)F`2DU8zz^WZ`P7aZ5wvnB%{{$ag{lP&go~`)r z_q2wWrfpYQRyi|_?xNaJ>hu=@(lKE?ARTQ*iIDsZ?7c#`o|g5X_B>mY(K=clp1c z@q%VA0U`fu5;Rx1rndEuU7R6ym8ZRcJ65*PDHmIyTufiiM*SDbyAl)o(AuNR1u_n?V-806@k_QenKmjBaPSc^o2T(Z-W>rpt-3} zS}m$k)M0&SWotg(Fs0O9Ecw9rUWoobKD_NXuUvQn`0!Q zL3rD=GythIX?xrUS6!2d5SRIYs;PA#V+4VUPA{rRYM$8^hW_^R7zK^g4u@> z?875ad)((Hru;B>ukRCh?+cB%m*@CR|7N&`vol^l)FA;(geF|03DDm3kba_``38|I zH2*HJsWU7Zs9~C$QKTk7+XL%P4lA+*aGPufBW(x)d|5Fb7!e3pQPI*Qygl~kUka87 zs+qxjHr6~A>4qj}-RSiA;{Wil-s26{@vjh(Enr0)lA0_y|8#os_lP6ULi-xwdjM2; zZPq|g&wK4wRsd4|snrNg_BJj}qk*I(r5X!jdo;I$t%pI0U(JLb9>0%;w4(%872OoK zJYWn$*4#$aQ$OzTPDyL8)B-bBH!1N}V}+8kyW6yFGU?v~yNQKSoZK6y;?V z%i$W006%)X-4DXQWVp|M0VKowaG$-CI;eO;Ay5((X?;5L zK2Xgyhe;9vxJ=HI8mUm43D;mhggM2PcP98T}!AmSmCQbdWQ?^GNp#A?m zv5OKPI(%D-m7RS96}p77bH((ia;3Nv%_~V=h5nYva6Ki<oowSpT1?mi( zY5iD$TEW2g<$TZ?F-mw^eXLOj{zN>nT(vHwzU+=jv>33yj!P!Z}C>c^b@gfL1=c*6*+LSkOD8XN;E4DP*kVS~Y% z08OtBGqB5a#<#2!teG@JRS>X-w$EiAY8G$fMMVH@8BYCrNmn{Lw7@h4algHDsg`*> z#$050cA%V+Lr$mck)CSKJ;!jf`pT)++n=^!5S?3CGIDsMF2$Px6AlVE;!lc64VcKA zYO8=~@;_~xm|9?pQTlqeIEEuVk3l6S(*u)&a!j-$3EdQ^JAY+UF|0XG_oVck#5;(X zyqne|tIOFKwx9Ur?8gDxajWfLWi-h8O#Ee3Bz83|<_9G>i#3DtEO=X+JGZs^?7htO z)|BJ7xw-w%21BnYK|9r%5nHQUzy~f_ldj*K!93QY5@c4h8#G~i4ZE~yC(HAcz&!L} znWq)OPZZDzVd?h>hizZ@nK%z|ChlZ@j_Et_>PUOF%ZIBP*LJC6#G?QoGWk9p?H-LJ zO#Wwh3lF825VpY8G(0P%+(H9xB0`2X{tzQuTB(})?DrL>%LSlqy4E0$B1Ia$cI}6l zw}~?najK~l=OCfG9yI#MOt@`r>GnV?U%f>b3=@~t$`mCXhM3FIWwH|rUdiK7h>1L2 z8keEUUVUCO4OSM&RT`M!ZWO2-0|mBJAcae9nM#J$UA-2*ix>oK{Qa0oyb~e8OwBMC%n-nvSCmj6PZuiK ziSJuPgNH&pG@BEmai&=-R`y%N#O~P0NU_}W`X}$f!i=YE-S4+PTurfO%&-dhHzBBr zxKr{(xnXtUOzE9KRb-~GGpxKlQY`7}4KjN6cJB+mR!gP(`3Mt^oMj#GoOzX*CZ&^=@;1Uoxt&J_$|0WiGsv zjEnHLAVs!=af5-8LvY-K%kWw@bp%)G<-vLEbDkHq0!0P37>PoxiO7yu9y2Mn*x(#C z3sr;RSt^zBE;(Oz^8fZS-6N4vzPsD+I&JnVE^L?TrfCXKxg^tHD7#_Yt>tk#Zqk!M z7&FFbvMIU@D_%{QqxJ;&Cd9H|6e@X+$qJ(@P|Kr)j7H^Q`8jV^lo6Hpeb(~@O5^!l zw~M^iye5ZlA+_Y`-~uTN)jhfcAC4Po)_jJ!J~%uet(t2JLDd-yKHh+33dQTvdh`)9 zw8CD`@$tZ-ZWal1BF}^PED$8AN+N2!R*YoQq6c=&rl&O{MjYHMt_ll+=^+C5c{0k1 zg<==*+<>*Ta9?r|!Rs(Om4<@=nuW(B`wr6+J~u4zNtZ@kU``LB(lTCmZ*gq!)1Wu28@$%nKdI+KBHr4g zI}ilkOnbV~fl402n`?$ixLpbW$Tz{UN=&EmG(tezY||*dFuCEzt!kUs@IHsI+JYG0 z_f0|~>+K<NRRk?{Wu2kMUW+V&$=SBL0Vp2O_YbeoRc7y5|mi~e)0}pg3GzawZ zT@D%!H~&xu6}}=g$=lqHSYzyqQ%ISfN{)TW<4TK@7H9^G4wJq|jxvfjqI3o@{(0h5}JF&4CGJJs=TX z4bz9tO2>f|&SKSxZyNRMKxZf`a zn=*QIT=-;e!?eR;o|Nns7E;v<;PWfXk?4WDUN^jk2tB#;-7FR(GEGAnqf3-jnCfIM zryYg28T4J_+$0VLU=uLx;F;^u_WqsJ?!=F#l-m#jadaxVZ}PLAxwA5l%is(6d48OL zmv0ttj07^r1vy;5!h~W%!~!*$yhYffC%$iA>s$pWsf75e&hqB}+bG8NfZ2S1HYx#G z2j0E=&GitkB|(i@$C%v8wSl18TkI@55K+Gx^VZM&mHuESg4?V0 zB(cne-@BN($at@uNgW)2tm2USeL*1CfVI|nctw2gpFcQpjs1IKLT$$V9!`s{3&%@&=^Ayl> z+ZS=6+)dN2?jQOgAVUjHXAHCcuS+j$i>kQe(nr`AFT9~Mt3Qt*nkB|ooJcTCXwww* zb@%1kArFZM*u<08uD#v-zx{(a{m1y6MnFXP#(A4S#0{=ClJ#M1Nd5A-doyQk^FB@MmSU z50o5gKyU?8PL5!(X@9HT{|8Io??up~vDcExv$>w7Z1Sk3XB^%*zG;Siv0zID0Kg<+ zctZBr4MO2YS;&^>b`KP#H{TnRnIc+`ou4&YBLU97Y3tu@o9(h)XS?P#CU9= z$GEyR7a=3p#r50$K;=r?2hME-g1?<9Ants;YRY3wv*~5B`iz{g9s(20;@^}aGAiRe zUcDFEC=!OWnOFF&;(9(#n~MF(#1x&V%Y>xM*tNU`ht&;*DkpIq{?6Bj3>BOKBo6$J z;5dN~26M_Au;QDVAGBc!q2ef{N~|AG0D>FR@*B|4okL#NLWkuK*pPnO_<10`>7?V2 z;YANPXKy0PqE#+_=h?9N=Xy4^{?xaP?RDq-Q8}1c16r&ZIJ$+JKzX#(*V}B$kTa-{ zUcLa=^01l$d^C){B<4~nMd`&=XKKAs&9o%&Dck8^(cA`UY)N=!Zo{*HEB4m-h9q7$ z*>5AEy9Iyks+FQ9z7|c;68M1ge-V+U>LeVQK_dOE8%|+sAH1k&SurKOmi#DHQDZzA zwzdw_quQ@}@&W2b&kzk8a$8vdo%N%*)HlTLPURT&pS~4k<7U?*=aKGJaZ751X*0Y{ z`|F5xhBm|o)I(FN`@j5MF6oDq$ivg*UIfvS*p6sn83UT!oPM?WWO#|y8Op}V{vT!E zFQp|<wFrGc;XE&Fs0EB&p{MpDM!Hx*aieeU}(lZENlW zkl+Q{cgOlVQUrr|0GxQyU(apnkiQ@-%X4;kToakdFfUadStc8{iv%%sJA1K$oe(AS zw*dFCYocRAqC!lni~h6VvywUog}n;)qjg<NR773Ul zHZ42}Unwll*45mZbk{8nOY+y@H&5G-;F!I;N5LRW?LF(lA*#bSK_h!E!lf0vqb+8? zbaQbN34?!4J#!xcV0!9Wo5z$%MFnO+(gQMzT9!4{{six3;1<^>q37{8TaV6qN*?V*_@9W&2 zaJFYm4)xw_QsAR~jkN58w)6)kf24_3XjJnD9)pE>&9W1zjK@|`%g;o|D3*j^=+fTb zv)+^xiW#eJWZdr~fb%=6AUP*$^zZwljs;S$9FaGCEewMzAd^UaGhC7#4I`NO;I$G& z99e@&kgaM(k)RY)SX0(Go62}uS*|luGYFz6QxC2?1z}!l zxh@20`6X}cxC+aG5v4PlEa{fwNv{qe^$T6fEX$lF4A&yKdn6ZBX!``7t)0OSgQ?*7 zG+zwW$a0UdwpqNfS1j1`6EO@2Vh~7YXYI)jRCQ<0qEG;SOy59CO&UQGzB(#B5)rg- z%t>m8h<5k}UE8sohgD*$o#%D@$L)!s946zlKptXy zIW?PzCUNO;>a33y1OB--meeqU_;=5fwbt?vqA#(_}%2 z%ScQn@EA+b)>IqFXqak2Yme8fjJ!PLlzR0>?U=5 zH^y&!bZ(CzpUS85ZnK7+ zW(sj7X$^S$aYuLBPX8#m&Y{)!Stt z-G4foWehv?apHR55!Ry)i%W`&XeHt~o8GdkgvRbvg91zceRP5K3;E+hty4=4m-CJ6 zSGg68@n7mtE>SUzT45PkH8WU<-$N%R^$$-Y)3B=DwlLHb@s1SV&cL_O^;uB0C5nlgSB~Q&Qex| z5L5ClrqE%WlQduSR}};bJJDG8YF&AX9V0>A$oNlvL!_OJ-K^CWUtFRGAODMXh71G- zF$nWX{&au~aZ$RLS%@n7D!q+HNA-#Wpt=>=y)OWGpX3DpcZ}CDf?9!#!+o=(ODb29 ziYc0WZ`3xBW~wA~;1v#4i7QdL;;jXxA}3oJ8~v(yagniErB*%tOAEb@?S;C0VrX5q z*0zLfOP&+Fe;To8SA6~;untxYyjB%rrh19#MrWmffcZ{unrADA>>#I!F4aeU?1 z>8il-Ix9v&BAh@XP-}(pvwBCfqnbI5G!-;KFa0_g?XyBfk)w$xA9R5hXCmnZ-jh zT!^-{7E}6hAr6>(y<-xo)asPCJj}bD=ij(3r)FCtX|0x zF-TeIjh-=g5{^Gb@HturzHL4@q#6k-N3C9@@|qSq_fqAh5Bt5 zu1KUfI2HXYpXC7mX~!t(F8)4(2m&|3k@qPeGrq$y>Y^#_9zzQ^;2-b1wVSl9Pg=4; z){lA|hC&vut8YbS{rft(5N=zXU~LF`8bId9A8}IKE{{H7T6`>0Se2hsz*J#RYP91! zTdZqFo^n?Ik0##Cqln@4GXGRY2xcT`4c%_OyZ9>V20iAW?poSpv+cu};FH0kwRTWZ zr^+v*+7Z&THon|gUG0P8isk&UpIeTaKpr^++86!xcPBrd9Zg%$+Q2 zW8Bpdg@$*5A8p$i-^0fMayqYM_ZN4qQPzk-PhbgVqLEn5RrLag#_rJv5iY z!6)vOJm@=b3CjY)gJQ~b-(7uu=m}d-ck{D~I zf^}g*w6NYgVHOd|x68M6x_n^92^sq4q?;ReEHc+sSYh#1lY{;c4{B+SEtT82LIJN9 zhlqXaxHp<5U_M;pxDfagGbOa=)++JTWAg{#u#{z98$ALf^aQUxqmJJdppMHotK$rL zdCNfajwPyC0D?p2j)YBYD7gJY5u86pI%$Z#m-uRr-rq$8OxA9hFl5}YP^)2wk`-bU zS)#21SSFJw7$6WCXKx}I1TOZPNOgN50m_b7$^~@O?H4OPXPa()AhpXWv zB1ek73>T17z$r}X(S!dzp4J>7f*Tlt|77L;Sv^sm+0F9O20WPexid*MmGSuj7aPsF z{anvMBA33!#-$5lqtcw0Ol@Z%IHB5-rnL)nLX4h)ik0|r@75Pwv8q}tZ{T+3>g<8BZSN=)Q@)wvX|N-s_VJpcog?e!X?{gK8edfIat z@LGroN3`XW;a<>eY^J&dIpMMRvmB|+YjC{C_q26QR``?noR88pHvOPV|LUXrYzFp1 OXGF(XB&Yik0003ecD2|5 literal 34748 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 diff --git a/programs/develop/oberon07/Docs/About1251.txt b/programs/develop/oberon07/Docs/About1251.txt index e18eda5e1b..4268ea8158 100644 --- a/programs/develop/oberon07/Docs/About1251.txt +++ b/programs/develop/oberon07/Docs/About1251.txt @@ -17,6 +17,8 @@ "elf" - Linux "kos" - KolibriOS "obj" - KolibriOS DLL + "kem" - KolibriOS ñ àäðåñîì çàãðóçêè 0x10000 äëÿ âîçìîæíîãî + èñïîëíåíèÿ â ýìóëÿòîðå 3) ðàçìåð ñòýêà â ìåãàáàéòàõ, íåîáÿçàòåëüíûé ïàðàìåòð, ïî óìîë÷àíèþ - 1 Ìá, äëÿ ELF èãíîðèðóåòñÿ. Åñëè 2-é ïàðàìåòð = "obj" (KolibriOS DLL), òî 3-é ïàðàìåòð çàäàåòñÿ øåñòíàäöàòèðè÷íûì ÷èñëîì diff --git a/programs/develop/oberon07/Docs/About866.txt b/programs/develop/oberon07/Docs/About866.txt index 236c6ae047..02b992cbb4 100644 --- a/programs/develop/oberon07/Docs/About866.txt +++ b/programs/develop/oberon07/Docs/About866.txt @@ -17,6 +17,8 @@ "elf" - Linux "kos" - KolibriOS "obj" - KolibriOS DLL + "kem" - KolibriOS á  ¤à¥á®¬ § £à㧪¨ 0x10000 ¤«ï ¢®§¬®¦­®£® + ¨á¯®«­¥­¨ï ¢ í¬ã«ïâ®à¥ 3) à §¬¥à áâíª  ¢ ¬¥£ ¡ ©â å, ­¥®¡ï§ â¥«ì­ë© ¯ à ¬¥âà, ¯® 㬮«ç ­¨î - 1 Œ¡, ¤«ï ELF ¨£­®à¨àã¥âáï. …᫨ 2-© ¯ à ¬¥âà = "obj" (KolibriOS DLL), â® 3-© ¯ à ¬¥âà § ¤ ¥âáï è¥áâ­ ¤æ â¨à¨ç­ë¬ ç¨á«®¬ diff --git a/programs/develop/oberon07/Lib/KolibriOS/API.ob07 b/programs/develop/oberon07/Lib/KolibriOS/API.ob07 index ca705f15c0..84520b27d8 100644 --- a/programs/develop/oberon07/Lib/KolibriOS/API.ob07 +++ b/programs/develop/oberon07/Lib/KolibriOS/API.ob07 @@ -1,5 +1,5 @@ (* - Copyright 2016, 2017 Anton Krotov + Copyright 2016, 2017, 2018 Anton Krotov This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -24,11 +24,11 @@ CONST MAX_SIZE = 16 * 400H; HEAP_SIZE = 1 * 100000H; - + _new = 1; _dispose = 2; - + TYPE CRITICAL_SECTION = ARRAY 2 OF INTEGER; @@ -45,7 +45,7 @@ VAR PROCEDURE [stdcall] zeromem* (size, adr: INTEGER); BEGIN sys.CODE("578B7D0C8B4D0833C09CFCF3AB9D5F") -END zeromem; +END zeromem; PROCEDURE mem_commit* (adr, size: INTEGER); @@ -55,7 +55,7 @@ BEGIN FOR tmp := adr TO adr + size - 1 BY 4096 DO sys.PUT(tmp, 0) END -END mem_commit; +END mem_commit; PROCEDURE strncmp* (a, b, n: INTEGER): INTEGER; @@ -76,7 +76,7 @@ BEGIN END END RETURN Res -END strncmp; +END strncmp; PROCEDURE [stdcall] sysfunc1* (arg1: INTEGER): INTEGER; @@ -86,7 +86,7 @@ BEGIN sys.CODE("C9"); (* leave *) sys.CODE("C20400"); (* ret 04h *) RETURN 0 -END sysfunc1; +END sysfunc1; PROCEDURE [stdcall] sysfunc2* (arg1, arg2: INTEGER): INTEGER; @@ -99,7 +99,7 @@ BEGIN sys.CODE("C9"); (* leave *) sys.CODE("C20800"); (* ret 08h *) RETURN 0 -END sysfunc2; +END sysfunc2; PROCEDURE [stdcall] sysfunc3* (arg1, arg2, arg3: INTEGER): INTEGER; @@ -128,7 +128,7 @@ BEGIN sys.CODE("C9"); (* leave *) sys.CODE("C21000"); (* ret 10h *) RETURN 0 -END sysfunc4; +END sysfunc4; PROCEDURE [stdcall] sysfunc5* (arg1, arg2, arg3, arg4, arg5: INTEGER): INTEGER; @@ -247,7 +247,7 @@ BEGIN res := 0 END END; - IF res # 0 THEN + IF (res # 0) & (size <= MAX_SIZE) THEN zeromem(ASR(size, 2) - 1, res) END RETURN res @@ -274,24 +274,24 @@ END __DISPOSE; PROCEDURE NEW_DISPOSE (func, arg: INTEGER): INTEGER; VAR res: INTEGER; -BEGIN - EnterCriticalSection(CriticalSection); +BEGIN + EnterCriticalSection(CriticalSection); IF func = _new THEN res := __NEW(arg) ELSIF func = _dispose THEN res := __DISPOSE(arg) - END; + END; LeaveCriticalSection(CriticalSection) RETURN res -END NEW_DISPOSE; +END NEW_DISPOSE; PROCEDURE _NEW* (size: INTEGER): INTEGER; RETURN NEW_DISPOSE(_new, size) END _NEW; - + PROCEDURE _DISPOSE* (ptr: INTEGER): INTEGER; RETURN NEW_DISPOSE(_dispose, ptr) @@ -300,14 +300,14 @@ END _DISPOSE; PROCEDURE ExitProcess* (p1: INTEGER); BEGIN - p1 := sysfunc1(-1) -END ExitProcess; + p1 := sysfunc1(-1) +END ExitProcess; PROCEDURE ExitThread* (p1: INTEGER); BEGIN p1 := sysfunc1(-1) -END ExitThread; +END ExitThread; PROCEDURE OutChar (c: CHAR); @@ -315,7 +315,7 @@ VAR res: INTEGER; BEGIN res := sysfunc3(63, 1, ORD(c)) -END OutChar; +END OutChar; PROCEDURE DebugMsg* (lpText, lpCaption: INTEGER); @@ -347,14 +347,14 @@ BEGIN OutChar(0DX); OutChar(0AX) END -END DebugMsg; +END DebugMsg; PROCEDURE init* (p1: INTEGER); BEGIN p1 := sysfunc2(68, 11); InitializeCriticalSection(CriticalSection) -END init; +END init; END API. \ No newline at end of file diff --git a/programs/develop/oberon07/Lib/KolibriOS/HOST.ob07 b/programs/develop/oberon07/Lib/KolibriOS/HOST.ob07 index 012c4b40d6..bc232050b5 100644 --- a/programs/develop/oberon07/Lib/KolibriOS/HOST.ob07 +++ b/programs/develop/oberon07/Lib/KolibriOS/HOST.ob07 @@ -35,9 +35,9 @@ TYPE VAR - con_init : PROCEDURE [stdcall] (wnd_width, wnd_height, scr_width, scr_height, title: INTEGER); - con_exit : PROCEDURE [stdcall] (bCloseWindow: BOOLEAN); - con_write_asciiz : PROCEDURE [stdcall] (string: INTEGER); + con_init : PROCEDURE [stdcall] (wnd_width, wnd_height, scr_width, scr_height, title: INTEGER); + con_exit : PROCEDURE [stdcall] (bCloseWindow: BOOLEAN); + con_write_asciiz : PROCEDURE [stdcall] (string: INTEGER); fsize, sec*, dsec*: INTEGER; @@ -107,8 +107,8 @@ BEGIN Time(sec, dsec); Lib := API.sysfunc3(68, 19, sys.ADR("/rd/1/lib/console.obj")); IF Lib # 0 THEN - GetProc(sys.ADR(con_init), "con_init"); - GetProc(sys.ADR(con_exit), "con_exit"); + GetProc(sys.ADR(con_init), "con_init"); + GetProc(sys.ADR(con_exit), "con_exit"); GetProc(sys.ADR(con_write_asciiz), "con_write_asciiz"); IF con_init # NIL THEN con_init(-1, -1, -1, -1, sys.ADR("Oberon-07/11 for KolibriOS")) @@ -124,17 +124,27 @@ BEGIN API.ExitProcess(0) END ExitProcess; +PROCEDURE AppAdr(): INTEGER; +VAR + buf: ARRAY 1024 OF CHAR; + a: INTEGER; +BEGIN + a := API.sysfunc3(9, sys.ADR(buf), -1); + sys.GET(sys.ADR(buf) + 22, a) + RETURN a +END AppAdr; + PROCEDURE GetCommandLine*(): INTEGER; VAR param: INTEGER; BEGIN - sys.GET(28, param) + sys.GET(28 + AppAdr(), param) RETURN param END GetCommandLine; PROCEDURE GetName*(): INTEGER; VAR name: INTEGER; BEGIN - sys.GET(32, name) + sys.GET(32 + AppAdr(), name) RETURN name END GetName; diff --git a/programs/develop/oberon07/Lib/KolibriOS/KOSAPI.ob07 b/programs/develop/oberon07/Lib/KolibriOS/KOSAPI.ob07 index 0c000b74a0..632033ef17 100644 --- a/programs/develop/oberon07/Lib/KolibriOS/KOSAPI.ob07 +++ b/programs/develop/oberon07/Lib/KolibriOS/KOSAPI.ob07 @@ -1,5 +1,5 @@ (* - Copyright 2016 Anton Krotov + Copyright 2016, 2018 Anton Krotov This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -187,17 +187,27 @@ BEGIN RETURN ptr END realloc; +PROCEDURE AppAdr(): INTEGER; +VAR + buf: ARRAY 1024 OF CHAR; + a: INTEGER; +BEGIN + a := sysfunc3(9, sys.ADR(buf), -1); + sys.GET(sys.ADR(buf) + 22, a) + RETURN a +END AppAdr; + PROCEDURE GetCommandLine*(): INTEGER; VAR param: INTEGER; BEGIN - sys.GET(28, param) + sys.GET(28 + AppAdr(), param) RETURN param END GetCommandLine; PROCEDURE GetName*(): INTEGER; VAR name: INTEGER; BEGIN - sys.GET(32, name) + sys.GET(32 + AppAdr(), name) RETURN name END GetName; diff --git a/programs/develop/oberon07/Source/Compiler.ob07 b/programs/develop/oberon07/Source/Compiler.ob07 index 0c6f6f6437..9c00db1d72 100644 --- a/programs/develop/oberon07/Source/Compiler.ob07 +++ b/programs/develop/oberon07/Source/Compiler.ob07 @@ -1,5 +1,5 @@ (* - Copyright 2016, 2017 Anton Krotov + Copyright 2016, 2017, 2018 Anton Krotov This file is part of Compiler. @@ -289,6 +289,10 @@ BEGIN IntType(e1.T, coord); Load(e1); IF e.T.Len = 0 THEN + IF e1.eType = eCONST THEN + idx := FLOOR(e1.Value); + Assert(idx >= 0, coord, 159) + END; BaseT := DECL.OpenBase(e.T); X86.PushConst(BaseT.Size); X86.OpenIdx(DECL.Dim(e.T)) @@ -866,6 +870,9 @@ BEGIN X86.DropFpu(param.T.tType = TLONGREAL) END; IF (e1.T.tType = TSTRING) & (param.T.tType = TARRAY) THEN + IF param.T.Len > X86.maxstrlen THEN + X86.set_maxstrlen(param.T.Len) + END; s := DECL.GetString(e1.Value); IF s.Len = 1 THEN X86.Mono(s.Number) @@ -1885,7 +1892,11 @@ BEGIN END; UTILS.Split(SelfName, SelfPath, CName, CExt); temp := Name; - IF UTILS.streq(system, "obj") THEN + IF UTILS.streq(system, "kem") THEN + X86.setkem; + platform := 4; + UTILS.concat(temp, ".kex") + ELSIF UTILS.streq(system, "obj") THEN platform := 6; UTILS.concat(temp, ".obj") ELSIF UTILS.streq(system, "elf") THEN @@ -1924,6 +1935,7 @@ BEGIN UTILS.concat(SelfPath, "Windows32") END; UTILS.concat(SelfPath, UTILS.Slash); + X86.set_maxstrlen(0); X86.Init(platform); X86.Prolog(temp); DECL.Program(SelfPath, Path, Name, Ext, platform IN {1, 2, 3}, OpSeq, Expr, AssComp, sttypes); diff --git a/programs/develop/oberon07/Source/X86.ob07 b/programs/develop/oberon07/Source/X86.ob07 index 574da0bcaf..8313e2e7ee 100644 --- a/programs/develop/oberon07/Source/X86.ob07 +++ b/programs/develop/oberon07/Source/X86.ob07 @@ -1,5 +1,5 @@ (* - Copyright 2016, 2017 Anton Krotov + Copyright 2016, 2017, 2018 Anton Krotov This file is part of Compiler. @@ -119,7 +119,7 @@ TYPE reloc: ARRAY 1024 OF sys.CARD16 END; -VAR asmlist: UTILS.LIST; start: ASMLINE; dll, con, gui, kos, elf, obj: BOOLEAN; +VAR asmlist: UTILS.LIST; start: ASMLINE; dll, con, gui, kos, elf, obj, kem: BOOLEAN; Lcount, reccount, topstk: INTEGER; recarray: ARRAY 2048 OF INTEGER; current*: ASMLINE; callstk: ARRAY 1024, 2 OF ASMLINE; OutFile: UTILS.STRING; Code: ARRAY 4000000 OF CHAR; ccount: INTEGER; Data: ARRAY 1000000 OF CHAR; dcount: INTEGER; @@ -128,6 +128,12 @@ VAR asmlist: UTILS.LIST; start: ASMLINE; dll, con, gui, kos, elf, obj: BOOLEAN; RtlProc: ARRAY 20 OF INTEGER; OutFilePos: INTEGER; RelocSection: SECTION; fpu*: INTEGER; isfpu: BOOLEAN; maxfpu: INTEGER; fpucmd: ASMLINE; kosexp: ARRAY 65536 OF RECORD Name: SCAN.NODE; Adr, NameLabel: INTEGER END; kosexpcount: INTEGER; + maxstrlen*: INTEGER; + +PROCEDURE set_maxstrlen* (value: INTEGER); +BEGIN + maxstrlen := value +END set_maxstrlen; PROCEDURE AddRtlProc*(idx, proc: INTEGER); BEGIN @@ -567,7 +573,7 @@ BEGIN NEW(nov); UTILS.MemErr(nov = NIL); UTILS.Push(asmlist, nov); - current := nov; + current := nov END Init; PROCEDURE datastr(str: UTILS.STRING); @@ -1556,10 +1562,10 @@ BEGIN IF ~obj THEN Header.menuet01 := "MENUET01"; Header.ver := 1; - Header.start := sys.SIZE(KOSHEADER); + Header.start := sys.SIZE(KOSHEADER) + ORD(kem) * 65536; Header.size := Align(size, 4) + datasize; Header.mem := Header.size + stk + gsize + strsize * 2 + 1000H; - Header.sp := Header.size + gsize + stk; + Header.sp := Header.size + gsize + stk;// + ORD(kem) * 65536; Header.param := Header.sp; Header.path := Header.param + strsize; @@ -1768,7 +1774,7 @@ BEGIN ELSIF con OR gui THEN LoadAdr := 400000H ELSIF kos OR obj THEN - LoadAdr := sys.SIZE(KOSHEADER) + LoadAdr := sys.SIZE(KOSHEADER) + ORD(kem & kos) * 65536 ELSIF elf THEN LoadAdr := 134514420 + 1024; INC(gsize, 1024) @@ -1926,6 +1932,9 @@ PROCEDURE Epilog*(gsize: INTEGER; FName: ARRAY OF CHAR; stk: INTEGER); VAR i, glob: INTEGER; BEGIN glob := 0; + IF gsize < maxstrlen THEN + gsize := maxstrlen + END; gsize := Align(gsize, 4) + 4; COPY(FName, OutFile); Labels[RTABLE] := -dcount; @@ -1983,6 +1992,13 @@ BEGIN END END; FixLabels(FName, stk, gsize, glob) -END Epilog; +END Epilog; +PROCEDURE setkem*; +BEGIN + kem := TRUE +END setkem; + +BEGIN + kem := FALSE END X86. \ No newline at end of file