From 38b226fb8d741610011d16cf9200be1f35465d39 Mon Sep 17 00:00:00 2001 From: "Marat Zakiyanov (Mario79)" Date: Sun, 1 Apr 2012 23:55:52 +0000 Subject: [PATCH] ICON v3.00 - 1) Program used only 2 threads: draw and mouse. 2) Used new kernel functions: 25, 34, 15.8, 4 (redirect). 3) Used PNG icons with transparent. git-svn-id: svn://kolibrios.org@2538 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/Vortex86MX-eng/Makefile | 2 +- data/Vortex86MX-eng/iconstrp.gif | Bin 10969 -> 0 bytes data/Vortex86MX-eng/iconstrp.png | Bin 0 -> 13395 bytes data/eng/Makefile | 2 +- data/eng/iconstrp.gif | Bin 10969 -> 0 bytes data/eng/iconstrp.png | Bin 0 -> 13395 bytes data/new-stack/Makefile | 2 +- data/new-stack/iconstrp.gif | Bin 10969 -> 0 bytes data/new-stack/iconstrp.png | Bin 0 -> 13395 bytes data/rus/Makefile | 2 +- data/rus/iconstrp.gif | Bin 10969 -> 0 bytes data/rus/iconstrp.png | Bin 0 -> 13395 bytes programs/system/icon/trunk/dat_area.inc | 78 ++ programs/system/icon/trunk/data.inc | 199 +++++ programs/system/icon/trunk/debug.inc | 147 +++ programs/system/icon/trunk/gif_lite.inc | 485 ---------- programs/system/icon/trunk/icon.asm | 1086 ++++++++--------------- programs/system/icon/trunk/iconstrp.gif | Bin 12002 -> 0 bytes programs/system/icon/trunk/iconstrp.png | Bin 0 -> 13395 bytes programs/system/icon/trunk/mouse.inc | 174 ++++ 20 files changed, 949 insertions(+), 1228 deletions(-) delete mode 100644 data/Vortex86MX-eng/iconstrp.gif create mode 100644 data/Vortex86MX-eng/iconstrp.png delete mode 100644 data/eng/iconstrp.gif create mode 100644 data/eng/iconstrp.png delete mode 100644 data/new-stack/iconstrp.gif create mode 100644 data/new-stack/iconstrp.png delete mode 100644 data/rus/iconstrp.gif create mode 100644 data/rus/iconstrp.png create mode 100644 programs/system/icon/trunk/dat_area.inc create mode 100644 programs/system/icon/trunk/data.inc create mode 100644 programs/system/icon/trunk/debug.inc delete mode 100644 programs/system/icon/trunk/gif_lite.inc delete mode 100644 programs/system/icon/trunk/iconstrp.gif create mode 100644 programs/system/icon/trunk/iconstrp.png create mode 100644 programs/system/icon/trunk/mouse.inc diff --git a/data/Vortex86MX-eng/Makefile b/data/Vortex86MX-eng/Makefile index 2dcd350a6f..6208558ff2 100644 --- a/data/Vortex86MX-eng/Makefile +++ b/data/Vortex86MX-eng/Makefile @@ -239,7 +239,7 @@ CMM_PROGRAMS:=\ OTHER_FILES:=autorun.dat:AUTORUN.DAT \ background.gif:background.gif default.skn:DEFAULT.SKN \ e80:E80 graph:GRAPH hdread:HDREAD \ - icons.dat:ICONS.DAT iconstrp.gif:ICONSTRP.GIF index_htm:INDEX.HTM \ + icons.dat:ICONS.DAT iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \ kernel.mnt:KERNEL.MNT kerpack:KERPACK keymap.key:KEYMAP.KEY \ kuzkina.mid:KUZKINA.MID lang.inc:LANG.INC lang.ini:LANG.INI \ menu.dat:MENU.DAT \ diff --git a/data/Vortex86MX-eng/iconstrp.gif b/data/Vortex86MX-eng/iconstrp.gif deleted file mode 100644 index 2e816852bbc6dd462e6ed056db596f8a1891958e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10969 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 B;CcW6 diff --git a/data/Vortex86MX-eng/iconstrp.png b/data/Vortex86MX-eng/iconstrp.png new file mode 100644 index 0000000000000000000000000000000000000000..757462925a21ea357b36d3600595fbae0a8bfed8 GIT binary patch literal 13395 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 NQ&Ch`sFE`e{y*#{;r9Rl literal 0 HcmV?d00001 diff --git a/data/eng/Makefile b/data/eng/Makefile index d3ced1f1af..fd60971959 100644 --- a/data/eng/Makefile +++ b/data/eng/Makefile @@ -245,7 +245,7 @@ CMM_PROGRAMS:=\ OTHER_FILES:=autorun.dat:AUTORUN.DAT \ background.gif:background.gif default.skn:DEFAULT.SKN \ e80:E80 graph:GRAPH hdread:HDREAD \ - icons.dat:ICONS.DAT iconstrp.gif:ICONSTRP.GIF index_htm:INDEX.HTM \ + icons.dat:ICONS.DAT iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \ kernel.mnt:KERNEL.MNT kerpack:KERPACK keymap.key:KEYMAP.KEY \ kuzkina.mid:KUZKINA.MID lang.inc:LANG.INC lang.ini:LANG.INI \ menu.dat:MENU.DAT \ diff --git a/data/eng/iconstrp.gif b/data/eng/iconstrp.gif deleted file mode 100644 index 2e816852bbc6dd462e6ed056db596f8a1891958e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10969 zcma)>`8(9#ANSwPU~Gdvlx(50r%9H{mJlO*Sw_SlnuMl8Bhp~(OF~SROp=`@TSH>( zV;}p@*fM2l5;cVGzSn*K0r%s2oaZ^$bpII1$JEROuH`Nb5J79e{{;d-1Vu#! zMWz4ozfe$6fWiNVs5BM^L%`t%fH$Cc1-Nt*xa0!}8X(SCdczPXI0A)G5VV0qkZ@5O zn8Gsvz={fD;L>P>AQ}llAz)}E3}d5UY;0^`fcS@%m5aUO4SRcgB+>@?4-^uOLZHzY zG&`AT zLn_1~VFa{v3K~Yhz==pf5>kPP6(pfWNoWN!79NYXNx>oq0DvM2uz-I;SPFtv6oi6; zGm!wxMwEp>uxt$ISOgA>BcKVfSW4t)Q8EegZ-gtx6ypp?vH!ForyxiKOmQ)`eC!gX z7)B+*S+NjSF@#wRrw|Y{9GXhBp%vRql904w44r_claLHDib=+d^(!){a25^DVEii% zLZzZ<6f}c^+8Xy~QcnYZAwtBrs^j%*lU}=_~?^L8eeBR4TQvuWxF6XmWCrN~L#=eWlSD zlamY@jYXSePSPhC3*$@*mBE-~F{nQn)4$f|_O=#SEEZ4iEqS{rms+_5VjFvj=AT-!hf|#sAI(0678#AQA`?u_cn@lcEci^rkI_ zha)J#;6r{#g6PH4RM9K(riuuKFtFmbCpB5_w68AAwkK8I-0E8Rp7EFe3^lF}^VL^* zrOKQ6vcKHBSUixYdnuw^@jvd=9LZd5k!~I{`_T2BXhu72(Zj0=4;=pZ@8}iCIkDT?pmD66j=STV-=bwF%;+bvjwKVEHqPqOv zr8Z(L$4P0qhN$?OKR0L-5wGe}aP!tN|9h$T+>hNfykPHhqBLNBH~Z1KfivYc?>j4; z?;kUCe0o|Y;QH>jS=&tB&D@udl)-O_>*yak1Tc4{FNS=Y?-6! zHk^F;Gmg6Ks3Ujfi7<1z)H+Vx>Bft%H91c`{JLI6yiPhkkJR&$U&ISLD99L!dZSZx zC4v}>G1Acr`MMqH=%rYNFr=*RTFsgV+tZtiH%B!9S(GG~L6*-8V=wK=#uTb4s6-717bj^h zv99KA^J(`J#wk_P#8j)d*WP9Lmns!WlrEJNA3dGA3IZ4mZVhV=g{*utL$}W z{2WF}?j~PsbNor~p!Ohge!_XFb$6eMb2`30QtVF4uMxjkZywceXPrwjIv!k*_PHnW z>~p4pqL-@Old_eD4s`cwu5-_N5#dn~`b);$(t6(PKZas=ngcTk@~<^~rWr-Yp2UB9 z*Qwg`HBV67Md@9%YkW!Ji8k)i;&&NON@L0@zr87wEjqSdF7F(Cuebh5X*~IwocKnI z)^g6H+8(v_>OSp@34RSD(K9N;7FwI?SFJ*jFLZ_A%Y38OnIHibVfTkUijJnV0PxNK zrubD9Q6BM%?vJpx@wfj|{5@4tB3XBFXho9$Xx!gZl1<&K*RPKE?t4G7V(-eix*4n^ zn4i81*4LVTfimn_El_zB7$bzs)q1BY4GLa~Xft}u^U|$yZ%N2_yLN4;KyIJ$?(s$b z#ghA5ztrA8%l++Fou*3OEcT4(Ub6c+uQQ45lGg`%gXsCo6XlE80ioOmd7{lR3>H!efG=P0bhx-=1ID-_0e>u$YAh$4|L>(R5GaX` zRl4~j9vLbNwS`?ReJ8^o4S6ft1@AO007SVMvSYH$4ny*fBus#(*mWR5eLq$fZP0e& zH?>QhD8o?-&remj9<8?WBPB)!B>j${8jl0OQHi%@uB5P=$R^32AX83jnVD&{o@0MC zi&M}-br-v+?ej2(M`6 zX^6{QJX53_#69TUQ=Kt!)F^-MXT62<_J6q~;X9XqaQBCARTF`;a)!AkgSU>462IcV zoF7!A;X4)bIH|=Z%0B%Djn!{9LyI)h>SI&0MsrTp$|0^O4JQo$#~u#*YWD2auyF82 zf(261{2WhybgO!y{8dG3ztWLgOWVZ=%hH!tl+i-%-4dIq(ikh7hSHn6r6iO=OtDW= z<&)hq6#u$ob%Q+?X>=EDSvG9=&K~+eL&PKL9&+)T!^bQQ5l0aT`)nS8!q&)2zn5Lk zKb5qaw`$+Z1HMj!rQ@BIwUrSXWtZg4r+RMws!H=(_gL+5A{l0sf}Zz@fbl*~UA z==l}58#|6i$3sb1kNj>siWiQLXVm3;_*Rl^qWVRq|b=Et_V&6}szU6`tw^|zv~2EY6>w>}*Bc_#3F z$l@pD-hM_?f#mrIyPuqYu*=OLmEKqD*4pMvwQpAZqI;R%0WE+9Q%Udk+II~)h zCBxDR0&u#LI1&?P8uPP;H~b9F6s~Qcim_V~bavo^X_`tp^?682(Az=19c;cY3PFU^ z<*@N9#dZ=Tmr2pCdQt~l9V$WYltK9wsfTGrz6qy)Dx7dbZWpHelHeSBH@FZ}C(3n6 zD)-!bxd@y`u<^bx(xA7=9m1TbGLB>`j)&qG3Mj@qR=dpypNn&Vq8^b0?N?Zc#M zqIs_0Fp{5fE#S?>=&s0>hTqO{&mI61&9p6;vnFx~j~6U+)v2CaC^(HQ9&0 zmUk9`wt=8Jfs`o!-o5D&=*O!1O+QOFndzn1zt}1%{>pE^&Q2$5ktXK0Oq<2$z7}eJ zdXHKKQ4Arhf!|dE00y}ue*6lhu5tM(4ljN%D zT#s@2a>H<@>P{Z-;#ZsJ4WmU?yG4H`M9Bl%x-=|%`Mq1?F2DCDxW$89lCVjk)|>CklO#b}fxTmZbKDZj|y8|aM!N7@umKthl^jmbG6 zEpVC=y1y1m;}RIw;z~6*0}%uu(!jAgc8Ed{lN9p#cSvIvIst@L#BiVHNoN$1pKvP z{0NTScoO>ISk!fRRO=Fc+Xi1Hi%;f=Dn&&h2|P%_Xb*VwZDcf(66FesLZPF5kL~Pjt!WM z#b9Gou+gdLnCHm2cx0SAIWC70mxYaULvs`$;|sCz#b}ObGQOM|pAU($6HRzf1vbaP zk`)rF5D9e%{PE$0rpYLY2=-QZVmmUi6Pws7Dyv9J?3+v+U?l2qCk~Sn+u*VvA0$l@ zlBTiZl1uDwwv(P6OQyq;`Vir~o?$1c5S5RB%VlHrcy7-K>urd~+x zy*TB>e|#zhZo|KUNmY22s#KCXh65onFCyxktOMJ z+!@}%sUC4Dmx(X$+|4+*2SV0oj7dWSoHB!gGav6|Jct7szTykp%fy`|;7;{9jCls!FjB^c?;b#%&EMisn=4nZ0y=Z@J%A;6Qb;OL4|zcg*69_-$VsN zdo_sTX_&0tJE&;Z8?lBrC*vJSHg9AM?bB+#qY72-a0ukF=bw_ze`SBOgz2fsBP+Y_ zcAn=g2?v~t;KDLJ?>ppsJaj3+y_L*=tG(}r;@~svkujd;NnLsi9=At)lc~UQk!U<5 zCZ`F{JF{ze2cLKM=>_bC@06c#I%xAG0&D5%yO%Tt6>D!d`$apd!>=!w$JP%)>=(UQ?(MNx9aUb~(FJbX!FH{-P5jt>_< zzgFa2TI{x3?VKo9dS|~Nry>8{lY;d4QnZ*u!M-Obs5JOnv42%*q*6)M zerb*YccfsMt40}FM7@;Bd0*OSo%OastmJKj_kDV@>2%4(X(!(=?A(;{_V{9oblK>1 zsnc}1e{JMSLu76|z{sln)=;_8Q^~(yDU-?*mIBn)h#9lqs`re}Y{Vfq? zR=hee>Pa;pgKfOc}P*yvdmVxT9i)Mci<&_s#CLJk#;6mGr-gDrV zR?AO)kL`H>;33WqadZZgT5%?gXD8l~Oo;XnC>>)G`hoP&SinV8}wNrqogqnN3G9oiF z;o{Y5z49^U?|rgmgJx=<>v+eByX&jf>3sUg4b-R2D0?bb$MQBLl$~+t{g}$zU}f}C zEV{l-y*`ik(}yy0xw(0@Gr2bXQ_)O=XW^$$+3rm3#&+jMiKWPMC(LP8jeRqX{UJb) zvyhJT=TUQ^k)wN`hs(gz&Za{NpXbHdCU~31c$=onz_TI18mwvYQ`0x+rnL~Lj$re) zPV!Qz z#vtRsJ9MKP#Lt_7q8;n^_IMcC;NtvnmP#V>J;!kI-l~K{czs};?h(`^KEB7aqah;- zNM&wV^>Fx{9{98#Sm#e?ekd3Gkd22lqB}RDr^jJ%$bJeoGF;wIA#x&e0Ukjy-CV#E z#il;jFP6*W3FAD48FNf>KmLpDIEpRRqpw<}=SgVfK#s#-3pGe?kNam@o6RxOjcAO@fwj(Ai%e$!;=))tgvXp>66aoyv_I;OlzSH{gHJiMiF2 zerw>-W>@2E?@d4VyxFPOhf_q!X>Z@gYZ^eIpE*cc3uItkat>bh`C7#-?f0ANA2z2+ ze)iRtGgbZ5rAgC8meZu$)Af?GpY_aZ51+N)vTsXL@3K78o2%NNH2d+$Z>ICsZ292~ zztXHs{+x8{+??N>#Ic#SbMp(9bK98N>ZEz8V{>Kw^J_^nl1ua3{0ocx3qLDn*FVqf z`pthklv&AL7}#8(f1aPTqz`V+Q6%S0cV|hG0(=ANt>^e#59#_I(=sq%7{x9J17t9Z z!t-;j=LE&1mbi$EAu)7WH2|s)h|ROBHt~Rk*u^WCPKC`YZPClUA?bpjCB%VS&K|a;hOHC_f zf&vkrRwd^bO`GP<&aX&9<*)dE$;)4L^`Dl*eK6WuP@7*lQr71mmtK=y<|*8yKh|dt zmRj&rWmxG07!R1cEF-XTF*=OVD#?D1#500gv=x;bAuborv5Pe=rdus%LgnxKe-l-e z)0tm1IGRz~`kJ}LV=K!3gTCry^+l~|@rN}3F{ybFZ6)*da!dY_YZ&0XwM-0Kyl6$g zG0(28uTZtM$o^oXgue6`y1IUANshMK8b)Fd|6uOF`MBvzY#5LswNXh_(N6xL>$*wQ z{~9ATf7bu&tp1nV^UF*6Uwiu(r{~#s=a=Y{wpTtXOd?DFdAqg6S~qF2-7!1<#&<)$UB=Eajui+A-Issc-Ajy6xD zrjPlrd#~B{;w3k8<2?E`0a+Anr)G4=GLIj{++pCL zWDNg}%jPH?bQZJg^j+PfYWLRjUDt9I)b(AD@4MqRyS@v*{M~lbhUFN5z}@G&#v%6o zbsD%O`A2TQQJCM@_rAY*1Q<-k+~MCY?|(%sLwh)(0|0cL4&8#Wu8PaWF6@$-zt^R; z)`@%rG(M^zPal(SQIJ2)8pR+%J@WX2-urF|LVFCj6Aic{V1I~ozU=$jyzYCYgS+ML z_qvZm-%ub$M6DqVPof~tqVyg!#rMt;h_|G9zv4TzkI0=U$lpieo6dvxQXoA{zTRI4 znScL`r}z#Ua2KT<_O|gA8F2Td{3-O@3;6ygXyKrr0{Pag`}O%>=J}(agZ#jYO)=4X zOp4-v!keQdCMb%!;g^&bY8a+UP$UPhq%Mp><~{=%JZTukU;m(ugY)$zRifQze2ndB zQx}aJ$6dO7Wlz9nHJ=z~@+X!CUbXL@o&2$EkTa<8;De~he1rc)Y*3rexn&F3R7NR& zZA&`ScZ%lDF;Ou&Rz6<%E{j{>#K(JNo|`Ve`A%B9OvE30&GctEBQZl2%UD0+Xvt!_ zZPp6&>{#81nwUx7g_Y6#^>*ze&qBT_+m=Y~w(DMSpZ)uWz}QPL|X@<9eny#@Z0-%QMY$ zJ>1{1pZ%0~{cPC5@7=}bqQCQ@A}0^Ok9@c0{LPNP&jTFJoHyV&A)IoV^JKYfi?v+3 zd#m+v30e#1UWhdXe5&2XNKhyd*T!~^@57b9YJJQ$A;-`c6!1dXTNCm7?LuA9(<-(t z+WA#5gv{GgqbpK-)yyu5%o?HB+Cc%foM-RVFuIiD3aSt%Lkfn>=kAC*6bO;Y!>x6n)SPFz#T(^-wJf9^Q@+94^zK)O=d0>3a7W|^aLM!P3#q4b3&J|mYm(?RSx9l~pS-VGJF8}fG z&~QAICB-_rO@T7>u%SsxNY9~1@7p11UO`TGUPft7c@}w{*S+_?L(|!>Oy`aB{pQ^u z=ir8@t$P1zJ+{h+dFHG5do58~^O!cB7KxDW9a;+^GqrW|fxWAlu8&YdA5o926#8z3 zb8A+($5dQ_qnHO8Ywj@`IQU{1SB92r(uwG+0$8bFV}ZaoX)K-it8z{P_jr<#i*a0< zF{`QWAK+h-xa*t*a>S21k!$Om(hcahA(~Um>0GRQ0^5-ou<*i6b?^3ChAJmtVY4Vj zUGmAV<5EFh8Ebbdn(0r(Y6A%-xAlf4tvAZLHA8U9v|5rC)NQVplV4_*#sqVtFQ`V1XOuu7Y$Lq&sf>$$78N{&F&FSvvcf4zQvi`nH zKVk*sVA(BUL+={Osu4dLHND!H2cH zzXdYQt7q>!vsvUF9MzC09AY-k3xA}h&lH2sG3dC>5I1hphZg>CbY2l%;^9_Ni%UA} zgcNuYw7GWKcf}*(R1Lkh>0|3oEi+1_+yEL#ko@5V4j-0Y1S><>WshBmnY@tqR~i|? zE;q<$9qPehU=zNc4n%HMFa4o+wLqm>6I{!2Ckv5Rg_hnYj!3`Z4#YszYlQgSCEf;x z!A-^U{gTiMMpBE2tCxlaW5f9JC8r2oY7|@0?G3kmz^Uu}zu%AR>bFEP$?fbW1~J;B z6ba~ENiKtywAULe@^9$4^ASHpi*(;{ZV-bAo{qkmqGjI!;Z5RDb6XF3YFSKNAJ85%0*wbjR#~8)CP64 zT`$PkDS+)>5qPLnR~%OJ#`NsntIz4z%Y8(ONus5WN!r5&SvwG|bL$QovSaV7#!Bz+ zDq4gH9)aqI11s!BlwGq+9h+X;SJ?5FIVaiR3$sMnE+}l=aJRKuv>o`~<47!gT1kZfBez|1iG) zWbD&?Nag5fc{qi8RETeXe4^=h$NjJ5^6NiE`YLVoP|c>#gvdK)q}Ai2Y`tx7sJCo`)IL314Tu#qUkFg;YMu z(~|Hs;L4(^sjBA*@Gl!H-|WHrs}J?`-99J(WcX!WP40b(yGG`(Mv|L8XdCPKT+f^y zEf}wfvj6;zduH;}`{-Tl60gV239D0 z`$N&^wOhO)y+7w?t8yi7hyIr|^XJP>^VIBjHipjJfr(b`y5Dz~Q=yoPIBfeJW<>O( zn@fVv*!Z?`G5PKX9H(N!JC(PXEgDnH(kFt+;!n2|i$a&7cY>+r$;<$2-4(6J^)@(w=z)Q{#^Hu$S-z;=ehws9G(PGR$Rk%LmoX$Ii6;H`>fyL*Yp@;IpIre$;aO_7!e?%gMwRu7Vc9 z(H6-SgJ0WMd}YM2V!&_i*3FZK`7*6*-LFrpWXmMR$d*gVrAx@;4H>~lhG%mOWrZ_O zTNrK_7^;98-GK!!wPoRl$bJ;5IpnR*k+4wVl@U;MNvyflCL;Y)Jf72;P7o zwMj8Dz~l5?@N77ok+0Esc$@B-Ed325Ik+(d(Qc5_#)$?@@y2EcMprG`<<4YX;RBmD z8p|n&$-z3L3)AJDwK%)Ja@22;aZ`m-X z`1TLim<{n=o3pTNv+HT!=ovk*=-n~vYrocGXH|L|{#7V)4L`t0ANX2e#gG6l(Bunx ze;o`S)(rkQWAjs;#-W$KJzK)n4>{zs`Rz+%ziPu$7fYZI@MsLOTn70? ztog^}_jhcBUdFS)wk5PdKK@d{-E5(AG`7_Nmio|EqU~O&?TLO{aeJGCSz9qbTj)ER zPQ=hbqZQ<-4fok$8T%pem+>cehorrZ_|87PE_rApYER?#N>uKbS2`S0ICuST-|*QE zTeVf&BlR0H6@x7$wi;eE_1xk0@_|e5ZmjzbFwF3}VZq+Nf>Dd7iaghv^TJEaP@OQ1%}_-91#NWp1V;uN#kDq4x^LfUWem8s}A~J4tMk% zT`eatl8(NC6M=I#?sGUksCCpk@^kc?n=npte0p}`$<>L_+zJ14j`r9IfBwnH)e$ga zGRkWr`j+F>UHdy4RcOoVyBd>$XC0gcXYBrQN8r+;2`Gf%-Y>~CF!1Npm|r>O+gH#-vAy8q<;zo!EyK<@p)4es67z;pA=4h z+T|hzSf}BQu&CxJum%~FDg>T+iq}Lmv)iENS5F7Wy8nubw6XzR6a-%>1_V%eQ}WTG z=knYI)Ga8)!;%DEe>wL%cb1KU15t2L3|=QChA&K3sV>=whW{9dYJTb_fWT`pYK5CX zCk9Z8R!!d!o{NDfp)H&M-C08vq#+G5Lvd=c+@UZ}Q3p>**uvyXFdr=XiYOk918YJ~ z8+YF3Encdfo0E-pyBG`Ni{&&+=KQbewuQ-x zW2s0Z1kU#L?Hm4H^BpVSY~1vsXCToFx1`waz&Jf)S8tfC&Wm_-cFd?myFuw*G&tB3 z#iPQO6)GS&wRAK8S5I)v9hy@Sb! z;mmM-RJryjIZ{V7@`5HKEcwgM<^oL;bZfwiH+Ie(i{H=ynW7`vachTu=B7xn#??MT8FQV|h8jJsh z;eUwSwVc1JzmIE*`i5!)G|Aq)#C87HGw-BuJm@x3=gL|Iz(;+vCbF^CzhZvWg59s` z@ZRVQ+UVRGqnUAV=lj-}MbTbGQ|F`mzijkdMX3Utb2R9t9b;p7U_%%dGyG*^@VMWQ zoZr~|#z=DQ)Rt<0^rqdU{8R1C(WcGWfugzSO+U(JsF*)-ea!LgO?YIj>tVz=bW?~X z&p7h?668;d_Mc78Ud-@cwhI4JxwWY;%=G4)`c=7NRlRDmNmt!6a{B(G&Tq{Bd)Dyg zZ`Dm!GS8nn$adl8p%usemhV9{7r?bOFSoU4b)Vf-nC-Iv(fs|tu6_$&{O6(JhCgOe!j9P@cYgF~eiwcI0|x*){|8(K B;CcW6 diff --git a/data/eng/iconstrp.png b/data/eng/iconstrp.png new file mode 100644 index 0000000000000000000000000000000000000000..757462925a21ea357b36d3600595fbae0a8bfed8 GIT binary patch literal 13395 zcmYLv1ymH@7ym3v=h92p0xQxWtaJ;Alr%^QNJ&aaF0dfo(jXw+T}mSk#pUDALWAr=!b*d=H>UhuZ`}-fUZTK%g>m=Xu;6H7hEqLyy!pKYC{D!%{sXHOb zf*a%9);y!El^z~X{erwE@fSnuTgw<6dx1AE=f?Un5C}ox%00|76dInrI*BR%I~n>5 zdtib7@>iDo1+2fLGHyM`rC);nX7;X@Z(iSyy|SQpJAG2wX#e2i#IK`z{PWTq0>H7N zmJ-xuwP}QUtm6s*GNr#wN{`el#caA9rV~i#?fBQ@eKrbju>oT(t2SBY3x^3JGWq?t zsn?Bt%iA?6|BUBd1%T-K3Eu|Y82q*d>V@BhlDM&b%N*H!*nq@eMhZEf?L@|milBnE zwt`e|`UJeLr3)Az?ww5&bLP2ODXh%nWB!nGZ5 zI#}3(W+uZEh)>}m7b-+Y9Aw&pU;U7e5+zG|rb9HTmX4|(qJ>DzDZX5)A$NVon$X9n zP;YVCl1r!lq(_B!jb^cYhDbk!Xs0F&#E@sNW0Jiqpzj{dnnT2n!MVVGBchY-F6JaA zixnJ4Fjz9}S^9dzZmveCdlvepBT54kO&PD^VG&jQh1}bXh3>Iu@fQou^##+-jErLr z$_f~Iew}+H?Ax}%+v&=hgO#g!V-~wLW$K6u9aU|MQb3~nuuu76fgDcYz)MfKHH2S}hGvI^x>E1fw2c`L57iR`yRW zq;h6=PK#MFiaErJZ;9 z9i&Y@Z7-}T6W2EnQ7Cc>Lg2gLgk3Ve)=IR1%a|5#syuT;0(P0ErfN4d!~(kgP7Lc) zq@G4I1058McV-ri1;)j@=*N{^39~@92KAEDV_HD5p|6jXw?QgA>aV(G+sWi0nB8h& zZtPiDAw8f1a9U%d5l^OeBn-lG7>T=;A~ejkNjmx!KSE%WWFcQ(RKum==LkE^!$}Kt zEfBJ1bgqC;Pb=Dj%|!S=p*SM=FH#}YH)J86ZZkbvLWE3r1HT4c!f|Lux6KEF2@ zWT)Z5x6HFj=8QK?oGcoh+LPdXf=`1AwRzd{)W!0P_QyftAQdpV4oSTM zp&A8>L}pi4lPgBZ0HXG#JQQhVu~F*Gh}Db;>$RZAE$ssk+-YxR3|s>?>~WQ8(^O>I z+N($~09y}!Fpx_6p=YN;AqZ2pp&WQk|8Wx+z|RXtrE`>Uw^F*b+@=t}yw56z&TRJ{y5#YjE2b z2Pd12>oYLH*Onbb z>_GaDoJOWc#m1&f`X?rHFF$OsD7MP!8=*8Q(%My71>E-?K#4=N@=_#UQ_OL|O`gme zRVRYMyk{9HVzpY|eG=c(z9tM4=ch@Rs0Fx+nD*%5BPXSDAKwwC6Y~DykG45~%Bn#W zQzfK!_~iKk;eexz#PG}Nij02bvs9dd1(zcII@;nl;aTn_sNO8F46bthn^|C@>QOp$ z#l(9`o&3$OO&XmCNky9s2O5o06OLaMryb*xpcO*|G$!uRI=Edng-6N;#&bQ6%X5R` z_9Ule6`xBTUIjtob9pN8Wmw}qfG*VJucEi}b2DzWW4HPPZ{%bBSQc8N-s1*bkFLF? zeg#{*bR_`xxS1oPa4#^Kt}-=G2NbD?TDC>dQU)(&DX2-uGyqO@;CgxW^k!?2*Dvf- z&+!`7-BjiUm`28Nlr3w|3+1~%=^K<1*VM^Y|*!35eOkYk_1oj?plLZj6hYn(Z|7E=Jy08)C$T zWHXcLo;h4bC^h4T_pkPRxn4N7~I`8_r1oD79<`qRUOmCl5M^|>`ZAJcU$ec zE4NsFml-`SWqzf?A)tskdu%ZD0&5`7xa9yDefw8&D9o0Dq;N$=X3Nri6V)0B!cN3Y zyfq*K=X6NUU*Vw#&Bn9@t*mnSAA6 z%X*IWUa6;EiY7aIj-QV$OPqM!8YMIkB;9&{cNR-jJKu;q7K<0%L+itsXa<;Hgki8- z`_(3tL7+A*f_jv}sm;wopRU9?HRMt@X5RzeqR(SvY6=iun%J2({K|=m-m3~x&JJq= z=3fX$UrBKKm{xzJ1#h<-%@PD(kciC$rwgnY_7isd=U>3oW5B-^ZK<~6*+k*rh0N1E z?Q98Uj@pC{-H&`~4QbLmKWz6s=K8FE;40Oj>%a;mWS6Q@Cd?4@@{>8+MD06o07wEE z{L_L-n!L%9+?ieWVB3@}Iy47{?K`FI#>DEfx5BjPzBAj=n-6cQY^7_7B|PI6L@(5;CLnY7_!dkC-g zB%R=TKX%e9N-`V?Nfp#4uOkPY!AJba^5_stGNkQ(6Cq{RlIcW6X}pDHdZ`Sq`9xK2 z+0o9N%Tq4M4p&LzGbnV;v4xNl7o?LRe|jd6rbD+)IQu7BQS58#SUg-`M%Gc9JyM%=fQ~-?j05cz5n$^4n}i zr8dwK|8YvQDG9KB{tP0A=5cOkG^SCSO$TMo)%NE7Ten+uIm)d+rNa!{CsTTXHJ^*` z^llT;AvFDmA8bk@bwE4;H2dvueJ^Xf&ey=!R$X zNsfnvB}mogJ5AA5 zcO!tp43n+L0KLKGfMM%Cve;dm8Gi#FHU}o{ua~{B@2W^EMO6L4VWslBU*e+CY&r`J z4U4AFgM0Wr2>(gme19@ij9s}33rQMg&x*j6u7CX@(76$U!O$NRz*OkNV9p`7M4aqK zQ1mOP%m|&e#wUG`b|lbVJ`_O z1f@e3eMWdrO1mninLXwO^nk9CkLFFg0Ma>dmnqL3Ya=X7X4iq)%fpfZFBy6{7w%j;GXB z++_qR`KFQclSzQs@ASXbJ8Wh*s~57mdz29lV9iJRzxuo8IpLAOM7rDLN}W;p677P_ z=hn6@x{RVAr)Ii1aFJaFrp(cBxdHPJr4c$#k&ICTPI9)Dd;g`o(FsSe`TuWcx~?_; zhrWCj)Lq4Qz2j9RGOgNUjl$)R9K(j#xXGOtIzJXz6Mz>aV|Q!_xZ6Lb%nV#DUvI&Asrsk0DXG}YHq!mN7ttv>R`Wv>&p>#eHbnS1p6 zD-t#Jz{A!;x>q_%T;OHjyQ{PJ-AS9x-PVuvWpf6sFpl!Z1K&Pv_ut*mDnO|kWQaG=z!#wGREEt-Sc3S3iR!cW?jE@ZjW z$_!uI8^+?3yrtJPWNZmG|x0<<*W%sybbV|x?`*X>!GPKF; z=gE@zr^FJzf8RMV^Ui&l$qagqnebPE^CC#u=4PnEF!RFJqU-%%2iow6IZfR~9L|vw zp`+|1&f6_CN04%M)mGM4lN=oj44X9}D9mc*{^pN{{0<^&O(1GiF;Elh)>Jx^&i+h$ z5Nks(@KL}x_vR~vu5u$NN-vKjEZ3bXV=7v35|_s)^m|wh*NZNzTzo8nw%oJ3KdctT zOSO;C60d(-Aqj%ZM;D=KB^bRwWy3+i*twctcR3lmN%+C@Wa;7eZ)fObcl9(=xn0UI zq(||J=yf? zOzJ7lqe0HgEpKyw?^7eZ#5Uv&F(lMX8R%00?m~V%HA{K-4Br1Z(-h zBbJsN*i;s*qSzb)$0Q9H{S*^4X=zbGaB|vRu)K_35ZMy}{$WkFfz2_Qw1}pcFQext zG{efu_z8RO<^3K_y$e`P+<__=#t3FT4|(!}z{8vudlO5$Dp}}EN*~Z-cK@cUTBeoyAy-07066f7 zL;pNt#vdWeqExU*53WbTxs8v6A)&gsIhgtURyrOt?N4 z@uswG{HFc)_go}L%!eW}|B@N{dd%1Sy~Uv(pD*on&Jmxq$kjL@iMdNBtXm4uxP&p7 z`JYYmzaVFNdOGPcq~}>i&q^9-t?vBEt#Hqo0N<(6I4_DbN)A`T;}rhjSzfF1I$lG6ca@$5ZB-xkN}v@1k`NW{hIyV-pZ4P{%g-wWbarg_C+7Ts zkRf4(Gy}BtqhtA!U5GnzFTWp0{s>a){^sQFZ*EyxFeKQtni^wWV0Ci8_VcdT!!>@a zmSQ=VHBHzGa|BO#EPb*+;YWiah9`x6|8t$BqGVGUgpxKlyZl^hMo`2j{=}SuZ#y)o_ zc0_YG1lfs=PAQ3q91S-F8FogUduKl`m7JgLdOU&cJL@>dohBak0^Ihtdvc_ zD(MmE__G8EIppGZeFqV8SYvB_=Q1e7&?yb#5)9wVYJmx*nP5?4mhCNJYlbkBslATJ zQ{cev?|B3-^j`R=|F5%s)IaciTXI5?#y%a$0F^YVF-IEue1hGK#7S;yERaQ@-|GJk zCOdFt{UitCSJt`o6c7bR8i94WA?cSr_p2)(FkW6_BeFW(oeHP7jWf36PEWf`Gv{!AJ-VRqWf zlaTE@;nnHncl6v@(_DaH+)q@^TuTBRWf%`5U;U!)JVXbL%*Xwz{!Qo?Ih+bBQZXpi zG_fBDZtqCr^6uR=bvqDn4fS=x>N?DZslX%O$T89rrnFsDrH$K%*~BVYCr}tu@Dq$4-w<*=Z2I` zIo~qvzISsx63a6dMmK#Q&rtk`uc_}H;Wk)-^BG*DD(zXXTZ@7 zl*)|(mhpm>K33gU0wNsa%9z>yg;FYD*rw^KtOryL11ndaxvV0;?^^vS7V&dC(C1ht z5*^wA_-4Z*qkSC}{*D-VN2*IyNIE9j;b&WZykOAIM|!g2XY;fnbE8BvMe263-@@3M z>s%$4NMrl&?Go#_wgUJZMo3hs_;;*OFjAU70d_F+&u-FD+clAbJlNVe(S=1BD)Vka zpeR9|2r<;v9}Mae#;%=w>1a#!BHdJLH72;HO|fsH=VL-HoQ@`F8Vt zSM+uMT(#{3q=0<8a4yG9L0x!TefOtY&)!x9xSn^YZUoI{6wTp~FgB1dN^Cn{1dI%; zT2O&sQf%>Mjqr8S14l0ALlC+33Fi+aOks8zFE=Rbwp-A=xxPoaClU*izUPhYcA<~v zH4AgjUHkdzlm;gTTz&TzN9st*#B+`kK#~L;g#gG;H$$H=fd~D3m~x4cQsJCA-iy*J zy87+p-z)_NgC$+f>wLW~pK_2$oq-7`Uo1wABty2C$MDRC3*xWu zMrjY2l=7fAP>>xoE;xN5nzqNPyLO@Ihr&v? zgLHk0)Ak0f6c5=!5ID?ja^XFYd`ru^$}$pIKWbh(x+& zl79YYh*w`cWp$r>U#@(RyB=`t8u1>8W$3M%Iq3P%52#JOiRHdx_CqN)EX~-LoW`YT z3MoRmnL=s2?~((nY=32?5fC#;MK68vTKjoY?DA*!(SvsmOz*Y|=r$NNgOGfSQ}?CH zgb4qC@AhWeUyQy;*?|5i)TSjW9fEk5!6T2Jy`qNY0UM!}sLquRT5GeqVFzb{mQ5Wc7k2f7ic> z%S_B((`j5Ei1{b352jUc@~-9}fIyav<&al`iuY+5rea4lk@;%T>4NjgN%s12WN7Zg=J zh8=lel&Eg-q7^0FGM-gAZmfrR20CRujVPM|YV=Fb0kf zpsYN(UO(U4Ns3q)mp;T0b&iLIn{aYT%GxbFEJvx6xun7sH}PCIzfD0b{qTw*^kkyU z;rJ@7@vui9RmKL?)Jz3443DZ<{LfE^G@Vfp^d`7EYr(j^<%UZ(=2$eC!$Dfjj z(o2LFchHyyOiaW))$MwbX2Z1jLrYr~xmTf8-1Vw_j8;z6gP%qd_Zy8qL+Z_-X(xG# zcqjkbk|!A^oeV#D)-L>`I3!DUHG$4%gG)7$a0%Lzr~~N%84}H@ag%Wvx->lH%r(!- zD@dkasR2me8_MGj!XL4_hy;7df4|y#h3>S;sk$I03l0g9RsLh(O=jGKjMs6gxhdKW zMUOofWFf^j2;1es4yzymN`8nj&+z|T`rtSs=|ZfG;;fU%Bys_>ZkEL!8GXZ>ZkxoK z!aMLAH}%_ES9$k=K}P^3fC-GIuYcW0c?Zbzh<#&hDbVK)F~^N~R0EYCFTu!}>S%kSpp6URLrE8ZR1tx`L$m*E!?{w%6 zYzM|Y#)87+vK#Z$G&ia?;q9G>u>w-qk;>3^t3%UeqNjPx4H(d_Wk#u;*esaK3^W4M z1;if}Ommy&qVXYF+m?-o5IuIW_igDyIxMkF1{V}!Sfbz0HT!<-eLM^lp{b)w4qnPj z8>Z*_*bR;g$bc;xtBX-Z{^vyeQ8H&XT|BE7QrofPa-piYR#0>W4hu5xH>gX7eUzy| zojj)`SbVvj`tZJmyngp1UTY3K9uD$IQV(&cVK#@74S%d-ldzPMU6G)T43Sc`KKPST zL`5Tq3t^R4j(tKtcTC+2?U^7dVfV;)adOoR~jA`N!xrfz08506+oy zuNFXjKXyOp2-Q4ac{RiHi5exn_Z&hDJVc%qUT#6j4+|oNo9P2s=bQJ67cZWsBtH%+ zLqPAakb30X?|Khau3w1#+LFGV#dxIeC_oz)_}wHA2BfVRlxh>*3xlrHTLXw2nF8Zt}WS}tV*5+I1?m?4B ztwJyQjZTEUfv}>m(H*iHm7o#qx*`yo%vUJ zSHx$zBEctd)CGUMFv#m^_tXfjEG!=p#(RpJxHT@MH@^_~LeMC#c8%?CZJr0`wmm?j zqKr6+iCSdCxv|vtCw)PRzS8wX@rKTa*@cV-h9YVs0oCD-h?jAx-GJdb)gcksU9jey zATuh0f|tx{6Li$>J_Z7A&`)O8K1to1Z~M=U>dWdNfO~)IkSX0jj*ZCnyOpc*j?pKI zFUxh`=q;G@bE|0#&|v9<9TLYU_F&ARhNyB?yS#x(p`>p9Ge~$(9elhj@jKVHr*A9n z!Nos*HGe6(3E{U9L-5y+Q%BtK>_zAz`o(9=nxmxFTnf)*I!%W4u|{oP>t*LjuBey` zflKrpN{BONuezFDHUqrYg_*a@Mq4fW{FKsa{=R9{i;+xrwo^*`N!UAh8ogIPhP&m1 zt}7W9paYOq^Ms16u}D^pgZcN#*b8LDvp?p#Q9pxx#MH~T# zBEr(#in57!o2Xa4$W1AqME8TvvbRKUh`*AGlVEf3Vq}#U-n&dbNpRWpAFVrS7j9rS`R@nhQ5od*>TJvp z_&Lu;h@oNbl6pzps5hfP2Oz-w3Y|0Z%l_M&+@A5cNU})1nJfVrT@LL0#&1Eb&~4%R z%CV=9pQi)wGE~1GPGxY9JfsMQ^5#Y}?3+IX3|$daSBcgO$XKOK}_U)cnH;0<77--fN)i<=cP0%p-2wXI-C`;$WJsO(CL;H7}+bKJTMr za2#Ju?RA@*YiPgV<(h4FX6iUCaA_P)<39(R8&dtJ_4uFY za`4Qv=Ystw5#TApy@Bex(OHpEbInIV-QH4!^lfYM4|>dO7l;}^4FulseG1>d{v8(x zvi@k3Gx(4l>UekA_piNcmDLQ0!c4I(hr^Cd*pfKMDWAQ*lc>#cCk}B-xD~{82=n=nKgj>$@mSZxgU_n`3iz*gnn3D2r<}Y!R}m*% zO0#fgMpN%mMK}Xxy}`AFX?(-1tPPu5{kdT~@`PPN9Ue#JO*?82GLVz`@$#!VFbCR2D zGx}w6>OHnrz`))|lBpw}mBpTTL&M$p({H$GWc0 z@ee=`sK=KEFgj)vJ{EMGFUn>(0gtqpGM5rz_nwwrKBNx~%8ugb|G}}L>bxUKPSd7W z=%3d(dvjBK|8x_muS0S5RkETcMBcbi{O*T7t1rAHu^py}JR!?TZiuwQ_L>^S0f62W zX3-FbMy1-ex)#+C_gUrIAYG`5w(cvF!tNJeuLCHtITie_e+h=ZN&h*o`s1Zk&lLUOEJRKi*txmOGq^o(*1QjXvR-x{*1C?DjvvhRJw z#-4j?)17}v0{ZS_B{^M`i9k|CK-X*Tj=ReIWO4&hWGPj)VK$0>`;%^7>2 zyL}U;Rud1fc4gkbT-1S3W=vDgkl_RmXjqx28~zXv*f-TQX(+~jp&=0+!>pO@ee>fF zs9z};Khww0=?r+iLYFJKG8H?{L#*atH&FeRF`V&}F@4(fty?)xKDKDN7*!RH4JD)a z{m8VqK6D`4Sk8%&Jc{ds(uXAak4;(nKm9Nz=vHS%& z!QG~*ne}Fyy1Mj39>hAF+?15h2khRBn z1x@Q8R=^e{INUNxK0iAGPd6sSy0L#b zJqs6=1v#e{fgb%zQp+hfr{B`~^>Z?&J#QBhUcs#b#bj7CR&vmWNQ%@I!%(^ISfF+a zN#Sw%&Q~qZsnm8kB+Np@ zZ62BO%N`nd9&#!U^u3N0GV)g25>hbsO;EPI-$`=D0Uin@z<^U{f5wJHX)P-O_|?ILPMpl+9wq@XpTiko+w(95GA01O?nh z{ph?;$-5%DF#M@+vxG>@{aNYgzUAhzN16VU6O4U#G~k46!c%uvO*VQWSw(U2m4ed2N$rnGXZ+ zuZ2KxzfI2>TViW4SxngV(gs(YpM{7hx6(e#V~B>g=FBylgUtgf(g1bB@xK|BX8#~} zj2Zb^@tMVMO%oU0knzQX?SJKQ1_(=rxU)6SVzk6Kz>f(d6)YN(U z;?av4`koo7K;J)Jz~vs_Eko6HFVn!Az@0<6o{;6OGQ1>||Ncocr{GGEfzGAe)H@Zm z3JN5rpXt&70GrG%NP+K11;f>UTnVqdFJViGPDCk%j@J2;;}t9RtTvb@Hu+~%TK(n= zZ~0NolH7gReVgni-e7ig&3*lCRVD>D^@*j;lCy&$sndaSnm#I%;6c`myQFeWxfS7J z$ZGTJHu6NN#g0^HHy~5F<%x4;s_}lycV)!B-}4xh;dt}u|JXRx)L3(aa@v{S^Qix% z|6_OKP!6A%w&A;9R%)&Dk+H#QwZ8n&^|ntl$E$U|t&Oig++S_%@3$81P?0fG(B5`T zY$K|hbg)f-|NdQq)~yN_&JzF(^$*5>xyu;;>D1v2M62tRS}h*M1aRX$AxyV z6&l_)S{KSWFQbDsLLsGv^&T%R9aKG24w2Huic)Av2OL>f1nt`ki`FVg-R%l$#pSBRNe9?QJDr;v*r%V{4KhwcO&eiSrRrE^@2QPTCnR znQ(Bf4Y;;3{HQ^x6cZn>&L}wl*Tl|ly+AyNL|XxZ1v5Ir3eXwuQxF)MpF;VL3q$Ex zKoJ$v!>_tkn0A|7F&t02LBVgNGu6(G#6KX1sA$7BW!6(9brRB1#u77KcrE%Jd-k5cdXG zIefj2RmMu@<3pq`VINyip*Xyxux_o=j|s)(&iTsglQ6Mo7zW`S zqiw_DRd)7v^8GKvDMRJEf>LuhKCACkLaf~gym48HQ@CY#Kp#utBrY+e{T!4}tpKaP{2hL1D; z&=n{!ym~2$$}kC5WyfWeU!}ra<6m-dbnCJtOvYfQKoe4ubvjpy@h3Uo9tf9tDyCTA zfy1^=Q2BFCz%Pi&fq16y8%oA}(5+OiJZOtUHGaYoKTt=94g*3FgCFFwv`Dxf`>P9% z(wQjHwhfkdIXDG?HNsIF0(xu6^E3Tr7FzRYBuf%AX|4jLa3;oA!f0U(O><2wR87`c z%UA)X-WjoAyLAJd$P^YPHGl&X1#1Jz0;l2(xaF8|F5sEBajHydJqhl&E|=IHI*A7L z1ShdAVRFGYpI5o%8#hW-SJZQ;9kUK8xxlFW>3wif&}4l6YYgj;!DRSYJveH(%wImq zf>aXae`Y?~@g)G1^!|=M=YS!FT(rB*;dyz6@e!C_$4-|qiwVk(ai*rWiRnCf`ibxZXw4nwe z@o6}EY}v~Yf6#kvF`*U&O3lS#T%_qMBA{VQqV{8h>0p$QiAY^6t*<2!65@s7>68(U{>9C} zBy6n3SBk#;F%QP$!n63h76s9BpG611C7RFvSh3 zQ|(5$!!-=6n-IL6aPzd%JA6P46OLSw>DGJ=9};}W(It+o0A5Yw>6}SDYh0fv%OfAz zW(91qAA9DTR@O~V>H)vUdx-52yD$~EgTd&x}?p@si1yx46Vi|+yz>P zGzI*UBiJPyj#Fu|K}E04mA5ZI5x*vFMK$@}J5iOnbmRJos%PipoiCE}k`6V4T*4CY zbdt$@IG%l(Mvl>c*8XFSTS=r|fg~94;3Ex+l-rxNZx8;kb79K5va^&SZd{by`y?N= z6Ib-ty}uw*S;dE58L3AbP8Tc`j>_?AFGg|HL2$Z+khsv~jo5s4ITm(YymXm$ueeZF z02)$MNyANr6D)#OP$absf?#w%Rn<|a97a5E2#LpsgJ4cEQ;r1}T69MkIil&Zx_Hrc z{7=Z`_S?EObKr=Vu+xs`us!YMIP&E6*c>j(XUsxs5Z)lx1)?9{`dDH44l6t3l*721 zEEvh!!p2Md;%$s4XAy+nPx44K&Z z*V$N~xOx{-u&M7G6k^(A#Xn*m!DKI!(FGJgn&aCI;~K#RK;)`$Q*1-r)gS42_dA~{ zYPb(bY!K9%Fj8_`SJKjO6F`lYE_w(`@iELZ$8-fjm`3Hbd*$tH%__^Gz4z6)ZwcKR ztpGr2?()ek9wowpd_u7aF2vH(z5?sddd@X*DE}g~UBgJ5<&MQ@yD{N^o?xlw{z--< z(mrJ;D_UOd;hSkHv&J8XNKz$klPER&FqG(UcM1E^+3ND>lyOtE1ZRgAy{R^N49I*g zn%Cv(HfI&^(J~5C<^Flip;{Mh|1Ef|-(qeRW4aDA8&8u%b}ax8?WN>`hwX()w`f+* zAt6zn0uzt%8A)7v4AFoqw^@YiR!b)7bb*wwvbw z_Svae++!=CnuIsCSi{zs_D_sY*p5k<=NATp;-48(4!qt?j~2MM#C&ar?9VbPwLN%x zp1g9`(RBV<{6mD+^Vqoge)DHi!1}~9q5X@E0mhIbhs<>CXa7~mBy}|GHafnM6lMc> zQ-xa6!p5a8(Lc#ey>8D&8iO9<)RKF~o3HWsHg=|m!R_CFtVICfPhK?_JwN2;w#JTU zC$`$(;UIQ&>+Z)E5vi#SiXn1zG_Ueu-d(%@!I<*&FhFLVHqoQup5$Ac;pcT{O%vc@ NQ&Ch`sFE`e{y*#{;r9Rl literal 0 HcmV?d00001 diff --git a/data/new-stack/Makefile b/data/new-stack/Makefile index 2ce2c88d8e..024012c74f 100644 --- a/data/new-stack/Makefile +++ b/data/new-stack/Makefile @@ -169,7 +169,7 @@ CMM_PROGRAMS:=\ # Spaces should be represented as |. OTHER_FILES:=autorun.dat:AUTORUN.DAT \ background.gif:background.gif default.skn:DEFAULT.SKN \ - icons.dat:ICONS.DAT iconstrp.gif:ICONSTRP.GIF index_htm:INDEX.HTM \ + icons.dat:ICONS.DAT iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \ kernel.mnt:KERNEL.MNT kerpack:KERPACK keymap.key:KEYMAP.KEY \ lang.inc:LANG.INC lang.ini:LANG.INI \ menu.dat:MENU.DAT \ diff --git a/data/new-stack/iconstrp.gif b/data/new-stack/iconstrp.gif deleted file mode 100644 index 2e816852bbc6dd462e6ed056db596f8a1891958e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10969 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 B;CcW6 diff --git a/data/new-stack/iconstrp.png b/data/new-stack/iconstrp.png new file mode 100644 index 0000000000000000000000000000000000000000..757462925a21ea357b36d3600595fbae0a8bfed8 GIT binary patch literal 13395 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 NQ&Ch`sFE`e{y*#{;r9Rl literal 0 HcmV?d00001 diff --git a/data/rus/Makefile b/data/rus/Makefile index 0fcebb6131..53f3850e68 100644 --- a/data/rus/Makefile +++ b/data/rus/Makefile @@ -238,7 +238,7 @@ CMM_PROGRAMS:=\ OTHER_FILES:=autorun.dat:AUTORUN.DAT \ background.gif:background.gif default.skn:DEFAULT.SKN \ e80:E80 graph:GRAPH hdread:HDREAD \ - icons.dat:ICONS.DAT iconstrp.gif:ICONSTRP.GIF index_htm:INDEX.HTM \ + icons.dat:ICONS.DAT iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \ kernel.mnt:KERNEL.MNT kerpack:KERPACK keymap.key:KEYMAP.KEY \ kuzkina.mid:KUZKINA.MID lang.inc:LANG.INC lang.ini:LANG.INI \ menu.dat:MENU.DAT \ diff --git a/data/rus/iconstrp.gif b/data/rus/iconstrp.gif deleted file mode 100644 index 2e816852bbc6dd462e6ed056db596f8a1891958e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10969 zcma)>`8(9#ANSwPU~Gdvlx(50r%9H{mJlO*Sw_SlnuMl8Bhp~(OF~SROp=`@TSH>( zV;}p@*fM2l5;cVGzSn*K0r%s2oaZ^$bpII1$JEROuH`Nb5J79e{{;d-1Vu#! zMWz4ozfe$6fWiNVs5BM^L%`t%fH$Cc1-Nt*xa0!}8X(SCdczPXI0A)G5VV0qkZ@5O zn8Gsvz={fD;L>P>AQ}llAz)}E3}d5UY;0^`fcS@%m5aUO4SRcgB+>@?4-^uOLZHzY zG&`AT zLn_1~VFa{v3K~Yhz==pf5>kPP6(pfWNoWN!79NYXNx>oq0DvM2uz-I;SPFtv6oi6; zGm!wxMwEp>uxt$ISOgA>BcKVfSW4t)Q8EegZ-gtx6ypp?vH!ForyxiKOmQ)`eC!gX z7)B+*S+NjSF@#wRrw|Y{9GXhBp%vRql904w44r_claLHDib=+d^(!){a25^DVEii% zLZzZ<6f}c^+8Xy~QcnYZAwtBrs^j%*lU}=_~?^L8eeBR4TQvuWxF6XmWCrN~L#=eWlSD zlamY@jYXSePSPhC3*$@*mBE-~F{nQn)4$f|_O=#SEEZ4iEqS{rms+_5VjFvj=AT-!hf|#sAI(0678#AQA`?u_cn@lcEci^rkI_ zha)J#;6r{#g6PH4RM9K(riuuKFtFmbCpB5_w68AAwkK8I-0E8Rp7EFe3^lF}^VL^* zrOKQ6vcKHBSUixYdnuw^@jvd=9LZd5k!~I{`_T2BXhu72(Zj0=4;=pZ@8}iCIkDT?pmD66j=STV-=bwF%;+bvjwKVEHqPqOv zr8Z(L$4P0qhN$?OKR0L-5wGe}aP!tN|9h$T+>hNfykPHhqBLNBH~Z1KfivYc?>j4; z?;kUCe0o|Y;QH>jS=&tB&D@udl)-O_>*yak1Tc4{FNS=Y?-6! zHk^F;Gmg6Ks3Ujfi7<1z)H+Vx>Bft%H91c`{JLI6yiPhkkJR&$U&ISLD99L!dZSZx zC4v}>G1Acr`MMqH=%rYNFr=*RTFsgV+tZtiH%B!9S(GG~L6*-8V=wK=#uTb4s6-717bj^h zv99KA^J(`J#wk_P#8j)d*WP9Lmns!WlrEJNA3dGA3IZ4mZVhV=g{*utL$}W z{2WF}?j~PsbNor~p!Ohge!_XFb$6eMb2`30QtVF4uMxjkZywceXPrwjIv!k*_PHnW z>~p4pqL-@Old_eD4s`cwu5-_N5#dn~`b);$(t6(PKZas=ngcTk@~<^~rWr-Yp2UB9 z*Qwg`HBV67Md@9%YkW!Ji8k)i;&&NON@L0@zr87wEjqSdF7F(Cuebh5X*~IwocKnI z)^g6H+8(v_>OSp@34RSD(K9N;7FwI?SFJ*jFLZ_A%Y38OnIHibVfTkUijJnV0PxNK zrubD9Q6BM%?vJpx@wfj|{5@4tB3XBFXho9$Xx!gZl1<&K*RPKE?t4G7V(-eix*4n^ zn4i81*4LVTfimn_El_zB7$bzs)q1BY4GLa~Xft}u^U|$yZ%N2_yLN4;KyIJ$?(s$b z#ghA5ztrA8%l++Fou*3OEcT4(Ub6c+uQQ45lGg`%gXsCo6XlE80ioOmd7{lR3>H!efG=P0bhx-=1ID-_0e>u$YAh$4|L>(R5GaX` zRl4~j9vLbNwS`?ReJ8^o4S6ft1@AO007SVMvSYH$4ny*fBus#(*mWR5eLq$fZP0e& zH?>QhD8o?-&remj9<8?WBPB)!B>j${8jl0OQHi%@uB5P=$R^32AX83jnVD&{o@0MC zi&M}-br-v+?ej2(M`6 zX^6{QJX53_#69TUQ=Kt!)F^-MXT62<_J6q~;X9XqaQBCARTF`;a)!AkgSU>462IcV zoF7!A;X4)bIH|=Z%0B%Djn!{9LyI)h>SI&0MsrTp$|0^O4JQo$#~u#*YWD2auyF82 zf(261{2WhybgO!y{8dG3ztWLgOWVZ=%hH!tl+i-%-4dIq(ikh7hSHn6r6iO=OtDW= z<&)hq6#u$ob%Q+?X>=EDSvG9=&K~+eL&PKL9&+)T!^bQQ5l0aT`)nS8!q&)2zn5Lk zKb5qaw`$+Z1HMj!rQ@BIwUrSXWtZg4r+RMws!H=(_gL+5A{l0sf}Zz@fbl*~UA z==l}58#|6i$3sb1kNj>siWiQLXVm3;_*Rl^qWVRq|b=Et_V&6}szU6`tw^|zv~2EY6>w>}*Bc_#3F z$l@pD-hM_?f#mrIyPuqYu*=OLmEKqD*4pMvwQpAZqI;R%0WE+9Q%Udk+II~)h zCBxDR0&u#LI1&?P8uPP;H~b9F6s~Qcim_V~bavo^X_`tp^?682(Az=19c;cY3PFU^ z<*@N9#dZ=Tmr2pCdQt~l9V$WYltK9wsfTGrz6qy)Dx7dbZWpHelHeSBH@FZ}C(3n6 zD)-!bxd@y`u<^bx(xA7=9m1TbGLB>`j)&qG3Mj@qR=dpypNn&Vq8^b0?N?Zc#M zqIs_0Fp{5fE#S?>=&s0>hTqO{&mI61&9p6;vnFx~j~6U+)v2CaC^(HQ9&0 zmUk9`wt=8Jfs`o!-o5D&=*O!1O+QOFndzn1zt}1%{>pE^&Q2$5ktXK0Oq<2$z7}eJ zdXHKKQ4Arhf!|dE00y}ue*6lhu5tM(4ljN%D zT#s@2a>H<@>P{Z-;#ZsJ4WmU?yG4H`M9Bl%x-=|%`Mq1?F2DCDxW$89lCVjk)|>CklO#b}fxTmZbKDZj|y8|aM!N7@umKthl^jmbG6 zEpVC=y1y1m;}RIw;z~6*0}%uu(!jAgc8Ed{lN9p#cSvIvIst@L#BiVHNoN$1pKvP z{0NTScoO>ISk!fRRO=Fc+Xi1Hi%;f=Dn&&h2|P%_Xb*VwZDcf(66FesLZPF5kL~Pjt!WM z#b9Gou+gdLnCHm2cx0SAIWC70mxYaULvs`$;|sCz#b}ObGQOM|pAU($6HRzf1vbaP zk`)rF5D9e%{PE$0rpYLY2=-QZVmmUi6Pws7Dyv9J?3+v+U?l2qCk~Sn+u*VvA0$l@ zlBTiZl1uDwwv(P6OQyq;`Vir~o?$1c5S5RB%VlHrcy7-K>urd~+x zy*TB>e|#zhZo|KUNmY22s#KCXh65onFCyxktOMJ z+!@}%sUC4Dmx(X$+|4+*2SV0oj7dWSoHB!gGav6|Jct7szTykp%fy`|;7;{9jCls!FjB^c?;b#%&EMisn=4nZ0y=Z@J%A;6Qb;OL4|zcg*69_-$VsN zdo_sTX_&0tJE&;Z8?lBrC*vJSHg9AM?bB+#qY72-a0ukF=bw_ze`SBOgz2fsBP+Y_ zcAn=g2?v~t;KDLJ?>ppsJaj3+y_L*=tG(}r;@~svkujd;NnLsi9=At)lc~UQk!U<5 zCZ`F{JF{ze2cLKM=>_bC@06c#I%xAG0&D5%yO%Tt6>D!d`$apd!>=!w$JP%)>=(UQ?(MNx9aUb~(FJbX!FH{-P5jt>_< zzgFa2TI{x3?VKo9dS|~Nry>8{lY;d4QnZ*u!M-Obs5JOnv42%*q*6)M zerb*YccfsMt40}FM7@;Bd0*OSo%OastmJKj_kDV@>2%4(X(!(=?A(;{_V{9oblK>1 zsnc}1e{JMSLu76|z{sln)=;_8Q^~(yDU-?*mIBn)h#9lqs`re}Y{Vfq? zR=hee>Pa;pgKfOc}P*yvdmVxT9i)Mci<&_s#CLJk#;6mGr-gDrV zR?AO)kL`H>;33WqadZZgT5%?gXD8l~Oo;XnC>>)G`hoP&SinV8}wNrqogqnN3G9oiF z;o{Y5z49^U?|rgmgJx=<>v+eByX&jf>3sUg4b-R2D0?bb$MQBLl$~+t{g}$zU}f}C zEV{l-y*`ik(}yy0xw(0@Gr2bXQ_)O=XW^$$+3rm3#&+jMiKWPMC(LP8jeRqX{UJb) zvyhJT=TUQ^k)wN`hs(gz&Za{NpXbHdCU~31c$=onz_TI18mwvYQ`0x+rnL~Lj$re) zPV!Qz z#vtRsJ9MKP#Lt_7q8;n^_IMcC;NtvnmP#V>J;!kI-l~K{czs};?h(`^KEB7aqah;- zNM&wV^>Fx{9{98#Sm#e?ekd3Gkd22lqB}RDr^jJ%$bJeoGF;wIA#x&e0Ukjy-CV#E z#il;jFP6*W3FAD48FNf>KmLpDIEpRRqpw<}=SgVfK#s#-3pGe?kNam@o6RxOjcAO@fwj(Ai%e$!;=))tgvXp>66aoyv_I;OlzSH{gHJiMiF2 zerw>-W>@2E?@d4VyxFPOhf_q!X>Z@gYZ^eIpE*cc3uItkat>bh`C7#-?f0ANA2z2+ ze)iRtGgbZ5rAgC8meZu$)Af?GpY_aZ51+N)vTsXL@3K78o2%NNH2d+$Z>ICsZ292~ zztXHs{+x8{+??N>#Ic#SbMp(9bK98N>ZEz8V{>Kw^J_^nl1ua3{0ocx3qLDn*FVqf z`pthklv&AL7}#8(f1aPTqz`V+Q6%S0cV|hG0(=ANt>^e#59#_I(=sq%7{x9J17t9Z z!t-;j=LE&1mbi$EAu)7WH2|s)h|ROBHt~Rk*u^WCPKC`YZPClUA?bpjCB%VS&K|a;hOHC_f zf&vkrRwd^bO`GP<&aX&9<*)dE$;)4L^`Dl*eK6WuP@7*lQr71mmtK=y<|*8yKh|dt zmRj&rWmxG07!R1cEF-XTF*=OVD#?D1#500gv=x;bAuborv5Pe=rdus%LgnxKe-l-e z)0tm1IGRz~`kJ}LV=K!3gTCry^+l~|@rN}3F{ybFZ6)*da!dY_YZ&0XwM-0Kyl6$g zG0(28uTZtM$o^oXgue6`y1IUANshMK8b)Fd|6uOF`MBvzY#5LswNXh_(N6xL>$*wQ z{~9ATf7bu&tp1nV^UF*6Uwiu(r{~#s=a=Y{wpTtXOd?DFdAqg6S~qF2-7!1<#&<)$UB=Eajui+A-Issc-Ajy6xD zrjPlrd#~B{;w3k8<2?E`0a+Anr)G4=GLIj{++pCL zWDNg}%jPH?bQZJg^j+PfYWLRjUDt9I)b(AD@4MqRyS@v*{M~lbhUFN5z}@G&#v%6o zbsD%O`A2TQQJCM@_rAY*1Q<-k+~MCY?|(%sLwh)(0|0cL4&8#Wu8PaWF6@$-zt^R; z)`@%rG(M^zPal(SQIJ2)8pR+%J@WX2-urF|LVFCj6Aic{V1I~ozU=$jyzYCYgS+ML z_qvZm-%ub$M6DqVPof~tqVyg!#rMt;h_|G9zv4TzkI0=U$lpieo6dvxQXoA{zTRI4 znScL`r}z#Ua2KT<_O|gA8F2Td{3-O@3;6ygXyKrr0{Pag`}O%>=J}(agZ#jYO)=4X zOp4-v!keQdCMb%!;g^&bY8a+UP$UPhq%Mp><~{=%JZTukU;m(ugY)$zRifQze2ndB zQx}aJ$6dO7Wlz9nHJ=z~@+X!CUbXL@o&2$EkTa<8;De~he1rc)Y*3rexn&F3R7NR& zZA&`ScZ%lDF;Ou&Rz6<%E{j{>#K(JNo|`Ve`A%B9OvE30&GctEBQZl2%UD0+Xvt!_ zZPp6&>{#81nwUx7g_Y6#^>*ze&qBT_+m=Y~w(DMSpZ)uWz}QPL|X@<9eny#@Z0-%QMY$ zJ>1{1pZ%0~{cPC5@7=}bqQCQ@A}0^Ok9@c0{LPNP&jTFJoHyV&A)IoV^JKYfi?v+3 zd#m+v30e#1UWhdXe5&2XNKhyd*T!~^@57b9YJJQ$A;-`c6!1dXTNCm7?LuA9(<-(t z+WA#5gv{GgqbpK-)yyu5%o?HB+Cc%foM-RVFuIiD3aSt%Lkfn>=kAC*6bO;Y!>x6n)SPFz#T(^-wJf9^Q@+94^zK)O=d0>3a7W|^aLM!P3#q4b3&J|mYm(?RSx9l~pS-VGJF8}fG z&~QAICB-_rO@T7>u%SsxNY9~1@7p11UO`TGUPft7c@}w{*S+_?L(|!>Oy`aB{pQ^u z=ir8@t$P1zJ+{h+dFHG5do58~^O!cB7KxDW9a;+^GqrW|fxWAlu8&YdA5o926#8z3 zb8A+($5dQ_qnHO8Ywj@`IQU{1SB92r(uwG+0$8bFV}ZaoX)K-it8z{P_jr<#i*a0< zF{`QWAK+h-xa*t*a>S21k!$Om(hcahA(~Um>0GRQ0^5-ou<*i6b?^3ChAJmtVY4Vj zUGmAV<5EFh8Ebbdn(0r(Y6A%-xAlf4tvAZLHA8U9v|5rC)NQVplV4_*#sqVtFQ`V1XOuu7Y$Lq&sf>$$78N{&F&FSvvcf4zQvi`nH zKVk*sVA(BUL+={Osu4dLHND!H2cH zzXdYQt7q>!vsvUF9MzC09AY-k3xA}h&lH2sG3dC>5I1hphZg>CbY2l%;^9_Ni%UA} zgcNuYw7GWKcf}*(R1Lkh>0|3oEi+1_+yEL#ko@5V4j-0Y1S><>WshBmnY@tqR~i|? zE;q<$9qPehU=zNc4n%HMFa4o+wLqm>6I{!2Ckv5Rg_hnYj!3`Z4#YszYlQgSCEf;x z!A-^U{gTiMMpBE2tCxlaW5f9JC8r2oY7|@0?G3kmz^Uu}zu%AR>bFEP$?fbW1~J;B z6ba~ENiKtywAULe@^9$4^ASHpi*(;{ZV-bAo{qkmqGjI!;Z5RDb6XF3YFSKNAJ85%0*wbjR#~8)CP64 zT`$PkDS+)>5qPLnR~%OJ#`NsntIz4z%Y8(ONus5WN!r5&SvwG|bL$QovSaV7#!Bz+ zDq4gH9)aqI11s!BlwGq+9h+X;SJ?5FIVaiR3$sMnE+}l=aJRKuv>o`~<47!gT1kZfBez|1iG) zWbD&?Nag5fc{qi8RETeXe4^=h$NjJ5^6NiE`YLVoP|c>#gvdK)q}Ai2Y`tx7sJCo`)IL314Tu#qUkFg;YMu z(~|Hs;L4(^sjBA*@Gl!H-|WHrs}J?`-99J(WcX!WP40b(yGG`(Mv|L8XdCPKT+f^y zEf}wfvj6;zduH;}`{-Tl60gV239D0 z`$N&^wOhO)y+7w?t8yi7hyIr|^XJP>^VIBjHipjJfr(b`y5Dz~Q=yoPIBfeJW<>O( zn@fVv*!Z?`G5PKX9H(N!JC(PXEgDnH(kFt+;!n2|i$a&7cY>+r$;<$2-4(6J^)@(w=z)Q{#^Hu$S-z;=ehws9G(PGR$Rk%LmoX$Ii6;H`>fyL*Yp@;IpIre$;aO_7!e?%gMwRu7Vc9 z(H6-SgJ0WMd}YM2V!&_i*3FZK`7*6*-LFrpWXmMR$d*gVrAx@;4H>~lhG%mOWrZ_O zTNrK_7^;98-GK!!wPoRl$bJ;5IpnR*k+4wVl@U;MNvyflCL;Y)Jf72;P7o zwMj8Dz~l5?@N77ok+0Esc$@B-Ed325Ik+(d(Qc5_#)$?@@y2EcMprG`<<4YX;RBmD z8p|n&$-z3L3)AJDwK%)Ja@22;aZ`m-X z`1TLim<{n=o3pTNv+HT!=ovk*=-n~vYrocGXH|L|{#7V)4L`t0ANX2e#gG6l(Bunx ze;o`S)(rkQWAjs;#-W$KJzK)n4>{zs`Rz+%ziPu$7fYZI@MsLOTn70? ztog^}_jhcBUdFS)wk5PdKK@d{-E5(AG`7_Nmio|EqU~O&?TLO{aeJGCSz9qbTj)ER zPQ=hbqZQ<-4fok$8T%pem+>cehorrZ_|87PE_rApYER?#N>uKbS2`S0ICuST-|*QE zTeVf&BlR0H6@x7$wi;eE_1xk0@_|e5ZmjzbFwF3}VZq+Nf>Dd7iaghv^TJEaP@OQ1%}_-91#NWp1V;uN#kDq4x^LfUWem8s}A~J4tMk% zT`eatl8(NC6M=I#?sGUksCCpk@^kc?n=npte0p}`$<>L_+zJ14j`r9IfBwnH)e$ga zGRkWr`j+F>UHdy4RcOoVyBd>$XC0gcXYBrQN8r+;2`Gf%-Y>~CF!1Npm|r>O+gH#-vAy8q<;zo!EyK<@p)4es67z;pA=4h z+T|hzSf}BQu&CxJum%~FDg>T+iq}Lmv)iENS5F7Wy8nubw6XzR6a-%>1_V%eQ}WTG z=knYI)Ga8)!;%DEe>wL%cb1KU15t2L3|=QChA&K3sV>=whW{9dYJTb_fWT`pYK5CX zCk9Z8R!!d!o{NDfp)H&M-C08vq#+G5Lvd=c+@UZ}Q3p>**uvyXFdr=XiYOk918YJ~ z8+YF3Encdfo0E-pyBG`Ni{&&+=KQbewuQ-x zW2s0Z1kU#L?Hm4H^BpVSY~1vsXCToFx1`waz&Jf)S8tfC&Wm_-cFd?myFuw*G&tB3 z#iPQO6)GS&wRAK8S5I)v9hy@Sb! z;mmM-RJryjIZ{V7@`5HKEcwgM<^oL;bZfwiH+Ie(i{H=ynW7`vachTu=B7xn#??MT8FQV|h8jJsh z;eUwSwVc1JzmIE*`i5!)G|Aq)#C87HGw-BuJm@x3=gL|Iz(;+vCbF^CzhZvWg59s` z@ZRVQ+UVRGqnUAV=lj-}MbTbGQ|F`mzijkdMX3Utb2R9t9b;p7U_%%dGyG*^@VMWQ zoZr~|#z=DQ)Rt<0^rqdU{8R1C(WcGWfugzSO+U(JsF*)-ea!LgO?YIj>tVz=bW?~X z&p7h?668;d_Mc78Ud-@cwhI4JxwWY;%=G4)`c=7NRlRDmNmt!6a{B(G&Tq{Bd)Dyg zZ`Dm!GS8nn$adl8p%usemhV9{7r?bOFSoU4b)Vf-nC-Iv(fs|tu6_$&{O6(JhCgOe!j9P@cYgF~eiwcI0|x*){|8(K B;CcW6 diff --git a/data/rus/iconstrp.png b/data/rus/iconstrp.png new file mode 100644 index 0000000000000000000000000000000000000000..757462925a21ea357b36d3600595fbae0a8bfed8 GIT binary patch literal 13395 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 NQ&Ch`sFE`e{y*#{;r9Rl literal 0 HcmV?d00001 diff --git a/programs/system/icon/trunk/dat_area.inc b/programs/system/icon/trunk/dat_area.inc new file mode 100644 index 0000000000..634f38e5d7 --- /dev/null +++ b/programs/system/icon/trunk/dat_area.inc @@ -0,0 +1,78 @@ +;------------------------------------------------------------------------------ +align 4 +bgrx rd 1 +bgry rd 1 + +bgrxy rd 1 + +warea: + .by_x: + .right rw 1 + .left rw 1 + .by_y: + .bottom rw 1 + .top rw 1 + +scrxy rd 1 + +icons rd 1 +addr rd 1 + +cur_str rd 1 +cur_band rd 1 + +icon_count rd 1 +strip_file rd 1 + +icon_position: rd 1 ; [ebp-4] 'AA-F' or... +adress_of_icon_data: rd 1 ; [ebp+8] +adress_of_icon_data_2: rd 1 ; [ebp+8] +current_X: rd 1 +current_Y: rd 1 +current_X_mouse_thread: rd 1 +current_Y_mouse_thread: rd 1 + +draw_area: rd 1 + +x_left: rd 1 +x_right: rd 1 +y_top: rd 1 +y_bottom: rd 1 +;------------------------------------------------------------------------------ +curx1 rd 1 +cury1 rd 1 +curx2 rd 1 +cury2 rd 1 + +click_pos rd 1 +;------------------------------------------------------------------------------ +align 4 +redraw_all_icon: rb 1 +;------------------------------------------------------------------------------ +align 4 +param_str rb 31 +;------------------------------------------------------------------------------ +align 4 +procinfo process_information +;------------------------------------------------------------------------------ +align 4 +path: +icon_data: + rb 0x1000 +;------------------------------------------------------------------------------ +align 4 + rb 0x400 +stack_mouse_thread: +;------------------------------------------------------------------------------ +align 4 + rb 0x400 +stack_area: +;------------------------------------------------------------------------------ +align 4 +I_Param: + rb 0x100 ; max 256 +;------------------------------------------------------------------------------ +align 4 +library_path: + rb 0x1000 +;------------------------------------------------------------------------------ \ No newline at end of file diff --git a/programs/system/icon/trunk/data.inc b/programs/system/icon/trunk/data.inc new file mode 100644 index 0000000000..01d4c515fa --- /dev/null +++ b/programs/system/icon/trunk/data.inc @@ -0,0 +1,199 @@ +;------------------------------------------------------------------------------ +tl dd 8 +yw: dd 51 +ya dd 0 +cur_btn dd 40 +;------------------------------------------------------------------------------ +; DATA AREA +bcolor dd 0x335599 +;------------------------------------------------------------------------------ +icon_table: + times 4 db 'xxxx xxxx' + times 2 db ' ' + times 1 db ' ' + times 2 db 'xxxx xxxx' +; times 1 db ' ' +;------------------------------------------------------------------------------ +icons_reserved: + times 9 db ' ' +;------------------------------------------------------------------------------ +if lang eq ru +text: + db 255,255,255,0, ' ’…Љ‘’ ' + db 255,255,255,0, ' ЏђЋѓђЂЊЊЂ ' + db 255,255,255,0, ' ЏЂђЂЊ…’ђ› ' + db 255,255,255,0, ' Џђ€Њ…Ќ€’њ ' + db 255,255,255,0, ' „ЋЃЂ‚€’њ “„Ђ‹€’њ ' + db 0,0,0,0, 'ЌЂ†Њ€’… ЌЂ ЏЋ‡€–€ћ €ЉЋЌЉ€ „‹џ ђ…„ЂЉ’€ђЋ‚ЂЌ€џ ' + db 'x' ; <- END MARKER, DONT DELETE + +add_text db 'ЌЂ†Њ€’… ЌЂ ЏЋ‡€–€ћ Ќ…€‘ЏЋ‹њ‡“…ЊЋ‰ €ЉЋЌЉ€ ',0 +rem_text db 'ЌЂ†Њ€’… ЌЂ ЏЋ‡€–€ћ €‘ЏЋ‹њ‡“…ЊЋ‰ €ЉЋЌЉ€ ',0 +title db 'ЊҐ­Ґ¤¦Ґа ЁЄ®­®Є',0 + +else if lang eq ge +text: + db 255,255,255,0, ' TITLE ' + db 255,255,255,0, ' APP NAME ' + db 255,255,255,0, ' PARAMETER ' + db 255,255,255,0, ' ANWENDEN ' + db 255,255,255,0, ' HINZUFUEGEN ENTFERNEN ' + db 0,0,0,0, 'AUF BUTTON KLICKEN, UM ICON ZU EDITIEREN ' + db 'x' ; <- END MARKER, DONT DELETE + +add_text db 'AUF UNBENUTZTE ICONPOSITION KLICKEN ',0 +rem_text db 'ICON ANKLICKEN; DAS GELOESCHT WERDEN SOLL ',0 +title db 'Icon Manager',0 + +else +text: + db 255,255,255,0, ' TITLE ' + db 255,255,255,0, ' APP NAME ' + db 255,255,255,0, ' PARAMETERS ' + db 255,255,255,0, ' APPLY CHANGES ' + db 255,255,255,0, ' ADD ICON REMOVE ICON ' + db 0,0,0,0, 'CLICK BUTTON ON ICON POSITION FOR EDIT ' + db 'x' ; <- END MARKER, DONT DELETE +add_text db 'CLICK ON A NOT USED POSITION ',0 +rem_text db 'CLICK ICON POSITION; YOU WANT TO DELETE ',0 +title db 'Icon Manager',0 + +end if +;------------------------------------------------------------------------------ +arrows db '' +;------------------------------------------------------------------------------ +iconname: + db ICON_APP,0 +;------------------------------------------------------------------------------ +icon_default: + db 'AA-SYSXTREE-000-/RD/1/SYSXTREE ' + db '- *' + db 13,10 +;------------------------------------------------------------------------------ +rep_text: +if lang eq ru + db '‡ЌЂ—Љ€ - €‡ , ‚›ЃђЂЌ #' +else + db 'ICONS - OF , SELECTED' +end if + +rep_text_len: +;------------------------------------------------------------------------------ +align 4 +finfo_start: + dd 7 + dd 0 +.params dd 0 + dd 0 + dd 0 + db 0 + dd finfo.path +;------------------------------------------------------------------------------ +align 4 +finfo: + dd 5 + dd 0 + dd 0 +.size dd 0 +.point dd procinfo +.path: + db ICON_STRIP,0 + rb 31-($-.path) +;------------------------------------------------------------------------------ +align 4 +positions dd 3,16,47 +str_lens db 8,30,30 + +current_icon dd icon_data + +iconlst db ICONS_DAT,0 + +;image dd image_area +;------------------------------------------------------------------------------ +; not change this section!!! +; start section +;------------------------------------------------------------------------------ +align 4 +image_file dd 0 ;+0 +raw_pointer dd 0 ;+4 +return_code dd 0 ;+8 +img_size dd 0 ;+12 +deflate_unpack dd 0 ;+16 ; not use for scaling +raw_pointer_2 dd 0 ;+20 ; not use for scaling +;------------------------------------------------------------------------------ +; end section +;------------------------------------------------------------------------------ +system_dir_CnvPNG db '/sys/lib/cnv_png.obj',0 +system_dir_UNPACK db '/sys/lib/archiver.obj',0 + +er_message_found_lib1 db 'cnv_png.obj - Not found!',0 +er_message_import1 db 'cnv_png.obj - Wrong import!',0 + +err_message_found_lib2 db 'archiver.obj - Not found!',0 +err_message_import2 db 'archiver.obj - Wrong import!',0 + +ihead_f_i: +ihead_f_l db 'Errors of plugins:',0 + +;plugins_directory db 'plugins/',0 +plugins_directory db 0 +;------------------------------------------------------------------------------ +l_libs_start: + +library01 l_libs system_dir_CnvPNG+9,path,library_path,system_dir_CnvPNG,\ +er_message_found_lib1,ihead_f_l,cnv_png_import,er_message_import1,ihead_f_i,plugins_directory + +library02 l_libs system_dir_UNPACK+9,path,library_path,system_dir_UNPACK,\ +err_message_found_lib2,ihead_f_l,UNPACK_import,err_message_import2,ihead_f_i,plugins_directory + +end_l_libs: +;--------------------------------------------------------------------- +align 4 +cnv_png_import: +.Start dd aCP_Start +.Version dd aCP_Version +.Check dd aCP_Check +.Assoc dd aCP_Assoc + dd 0 + dd 0 +aCP_Start db 'START',0 +aCP_Version db 'version',0 +aCP_Check db 'Check_Header',0 +aCP_Assoc db 'Associations',0 +;--------------------------------------------------------------------- +align 4 +UNPACK_import: +;unpack_Version dd aUnpack_Version +;unpack_PluginLoad dd aUnpack_PluginLoad +;unpack_OpenFilePlugin dd aUnpack_OpenFilePlugin +;unpack_ClosePlugin dd aUnpack_ClosePlugin +;unpack_ReadFolder dd aUnpack_ReadFolder +;unpack_SetFolder dd aUnpack_SetFolder +;unpack_GetFiles dd aUnpack_GetFiles +;unpack_GetOpenPluginInfo dd aUnpack_GetOpenPluginInfo +;unpack_Getattr dd aUnpack_Getattr +;unpack_Open dd aUnpack_Open +;unpack_Read dd aUnpack_Read +;unpack_Setpos dd aUnpack_Setpos +;unpack_Close dd aUnpack_Close +;unpack_DeflateUnpack dd aUnpack_DeflateUnpack +unpack_DeflateUnpack2 dd aUnpack_DeflateUnpack2 + dd 0 + dd 0 + +;aUnpack_Version db 'version',0 +;aUnpack_PluginLoad db 'plugin_load',0 +;aUnpack_OpenFilePlugin db 'OpenFilePlugin',0 +;aUnpack_ClosePlugin db 'ClosePlugin',0 +;aUnpack_ReadFolder db 'ReadFolder',0 +;aUnpack_SetFolder db 'SetFolder',0 +;aUnpack_GetFiles db 'GetFiles',0 +;aUnpack_GetOpenPluginInfo db 'GetOpenPluginInfo',0 +;aUnpack_Getattr db 'getattr',0 +;aUnpack_Open db 'open',0 +;aUnpack_Read db 'read',0 +;aUnpack_Setpos db 'setpos',0 +;aUnpack_Close db 'close',0 +;aUnpack_DeflateUnpack db 'deflate_unpack',0 +aUnpack_DeflateUnpack2 db 'deflate_unpack2',0 +;------------------------------------------------------------------------------ \ No newline at end of file diff --git a/programs/system/icon/trunk/debug.inc b/programs/system/icon/trunk/debug.inc new file mode 100644 index 0000000000..15ea290d3b --- /dev/null +++ b/programs/system/icon/trunk/debug.inc @@ -0,0 +1,147 @@ +macro debug_print str +{ + local ..string, ..label + + jmp ..label + ..string db str,0 + ..label: + + pushf + pushad + mov edx,..string + call debug_outstr + popad + popf +} + +dps fix debug_print + +macro debug_print_dec arg +{ + pushf + pushad + if ~arg eq eax + mov eax,arg + end if + call debug_outdec + popad + popf +} + +dpd fix debug_print_dec + +;--------------------------------- +debug_outdec: ;(eax - num, edi-str) + push 10 ;2 + pop ecx ;1 + push -'0' ;2 + .l0: + xor edx,edx ;2 + div ecx ;2 + push edx ;1 + test eax,eax ;2 + jnz .l0 ;2 + .l1: + pop eax ;1 + add al,'0' ;2 + call debug_outchar ; stosb + jnz .l1 ;2 + ret ;1 +;--------------------------------- + +debug_outchar: ; al - char + pushf + pushad + mov cl,al + mov eax,63 + mov ebx,1 + int 0x40 + popad + popf +ret + +debug_outstr: + mov eax,63 + mov ebx,1 + @@: + mov cl,[edx] + test cl,cl + jz @f + int 40h + inc edx + jmp @b + @@: + ret + +_debug_crlf db 13, 10, 0 + +macro newline_1 +{ + pushf + pushad + mov edx, _debug_crlf + call debug_outstr + popad + popf +} + +macro newline +{ + pushf + pushad + mov edx, _debug_crlf + call debug_outstr + popad + popf +} + +macro print message +{ + dps message + newline +} + +macro pregs +{ + dps "EAX: " + dpd eax + dps " EBX: " + dpd ebx + newline + dps "ECX: " + dpd ecx + dps " EDX: " + dpd edx + newline +} + +macro debug_print_hex arg +{ + pushf + pushad + if ~arg eq eax + mov eax, arg + end if + call debug_outhex + popad + popf +} +dph fix debug_print_hex + +debug_outhex: + ; eax - number + mov edx, 8 + .new_char: + rol eax, 4 + movzx ecx, al + and cl, 0x0f + mov cl, [__hexdigits + ecx] + pushad + mcall 63, 1 + popad + dec edx + jnz .new_char +ret + +__hexdigits: + db '0123456789ABCDEF' \ No newline at end of file diff --git a/programs/system/icon/trunk/gif_lite.inc b/programs/system/icon/trunk/gif_lite.inc deleted file mode 100644 index 22322ef959..0000000000 --- a/programs/system/icon/trunk/gif_lite.inc +++ /dev/null @@ -1,485 +0,0 @@ -; GIF LITE v3.0 by Willow -; Written in pure assembler by Ivushkin Andrey aka Willow -; Modified by Diamond -; -; This include file will contain functions to handle GIF image format -; -; Created: August 15, 2004 -; Last changed: June 24, 2007 - -; Requires kglobals.inc (iglobal/uglobal macro) -; (program must 'include "kglobals.inc"' and say 'IncludeUGlobal' -; somewhere in uninitialized data area). - -; Configuration: [changed from program which includes this file] -; 1. The constant COLOR_ORDER: must be one of -; PALETTE - for 8-bit image with palette (sysfunction 65) -; MENUETOS - for MenuetOS and KolibriOS color order (sysfunction 7) -; OTHER - for standard color order -; 2. Define constant GIF_SUPPORT_INTERLACED if you want to support interlaced -; GIFs. -; 3. Single image mode vs multiple image mode: -; if the program defines the variable 'gif_img_count' of type dword -; somewhere, ReadGIF will enter multiple image mode: gif_img_count -; will be initialized with image count, output format is GIF_list, -; the function GetGIFinfo retrieves Nth image info. Otherwise, ReadGIF -; uses single image mode: exit after end of first image, output is -;
- -if ~ (COLOR_ORDER in ) -; This message may not appear under MenuetOS, so watch... - display 'Please define COLOR_ORDER: PALETTE, MENUETOS or OTHER',13,10 -end if - -if defined gif_img_count -; virtual structure, used internally - -struct GIF_list - NextImg rd 1 - Left rw 1 - Top rw 1 - Width rw 1 - Height rw 1 - Delay rd 1 - Displacement rd 1 ; 0 = not specified - ; 1 = do not dispose - ; 2 = restore to background color - ; 3 = restore to previous -if COLOR_ORDER eq PALETTE - Image rd 1 -end if -ends - -struct GIF_info - Left rw 1 - Top rw 1 - Width rw 1 - Height rw 1 - Delay rd 1 - Displacement rd 1 -if COLOR_ORDER eq PALETTE - Palette rd 1 -end if -ends - -; **************************************** -; FUNCTION GetGIFinfo - retrieve Nth image info -; **************************************** -; in: -; esi - pointer to image list header -; ecx - image_index (0...img_count-1) -; edi - pointer to GIF_info structure to be filled - -; out: -; eax - pointer to RAW data, or 0, if error - -GetGIFinfo: - push esi ecx edi - xor eax,eax - jecxz .eloop - .lp: - mov esi,[esi] - test esi,esi - jz .error - loop .lp - .eloop: - lodsd - movsd - movsd - movsd - movsd -if COLOR_ORDER eq PALETTE - lodsd - mov [edi],esi -else - mov eax,esi -end if - .error: - pop edi ecx esi - ret - -end if - -_null fix 0x1000 - -; **************************************** -; FUNCTION ReadGIF - unpacks GIF image -; **************************************** -; in: -; esi - pointer to GIF file in memory -; edi - pointer to output image list - -; out: -; eax - 0, all OK; -; eax - 1, invalid signature; -; eax >=8, unsupported image attributes -; - -ReadGIF: - push esi edi - mov [.cur_info],edi - xor eax,eax - mov [.globalColor],eax -if defined gif_img_count - mov [gif_img_count],eax - mov [.anim_delay],eax - mov [.anim_disp],eax -end if - inc eax - cmp dword[esi],'GIF8' - jne .ex ; signature - mov ecx,[esi+0xa] - add esi,0xd - mov edi,esi - test cl,cl - jns .nextblock - mov [.globalColor],esi - call .Gif_skipmap - .nextblock: - cmp byte[edi],0x21 - jne .noextblock - inc edi -if defined gif_img_count - cmp byte[edi],0xf9 ; Graphic Control Ext - jne .no_gc - movzx eax,word [edi+3] - mov [.anim_delay],eax - mov al,[edi+2] - shr al,2 - and eax,7 - mov [.anim_disp],eax - add edi,7 - jmp .nextblock - .no_gc: -end if - inc edi - .block_skip: - movzx eax,byte[edi] - lea edi,[edi+eax+1] - test eax,eax - jnz .block_skip - jmp .nextblock - .noextblock: - mov al,8 - cmp byte[edi],0x2c ; image beginning - jne .ex -if defined gif_img_count - inc [gif_img_count] -end if - inc edi - mov esi,[.cur_info] -if defined gif_img_count - add esi,4 -end if - xchg esi,edi -if defined GIF_SUPPORT_INTERLACED - movzx ecx,word[esi+4] - mov [.width],ecx - movzx eax,word[esi+6] - imul eax,ecx -if ~(COLOR_ORDER eq PALETTE) - lea eax,[eax*3] -end if - mov [.img_end],eax - inc eax - mov [.row_end],eax - and [.pass],0 - test byte[esi+8],40h - jz @f -if ~(COLOR_ORDER eq PALETTE) - lea ecx,[ecx*3] -end if - mov [.row_end],ecx -@@: -end if -if defined gif_img_count - movsd - movsd - mov eax,[.anim_delay] - stosd - mov eax,[.anim_disp] - stosd -else - movzx eax,word[esi+4] - stosd - movzx eax,word[esi+6] - stosd - add esi,8 -end if - push edi - mov ecx,[esi] - inc esi - test cl,cl - js .uselocal - push [.globalColor] - mov edi,esi - jmp .setPal - .uselocal: - call .Gif_skipmap - push esi - .setPal: - movzx ecx,byte[edi] - inc ecx - mov [.codesize],ecx - dec ecx -if ~(COLOR_ORDER eq PALETTE) - pop [.Palette] -end if - lea esi,[edi+1] - mov edi,.gif_workarea - xor eax,eax - lodsb ; eax - block_count - add eax,esi - mov [.block_ofs],eax - mov [.bit_count],8 - mov eax,1 - shl eax,cl - mov [.CC],eax - mov ecx,eax - inc eax - mov [.EOI],eax - mov eax, _null shl 16 - .filltable: - stosd - inc eax - loop .filltable -if COLOR_ORDER eq PALETTE - pop eax - pop edi - push edi - scasd - push esi - mov esi,eax - mov ecx,[.CC] -@@: - lodsd - dec esi - bswap eax - shr eax,8 - stosd - loop @b - pop esi - pop eax - mov [eax],edi -else - pop edi -end if -if defined GIF_SUPPORT_INTERLACED - mov [.img_start],edi - add [.img_end],edi - add [.row_end],edi -end if - .reinit: - mov edx,[.EOI] - inc edx - push [.codesize] - pop [.compsize] - call .Gif_get_sym - cmp eax,[.CC] - je .reinit - call .Gif_output - .cycle: - movzx ebx,ax - call .Gif_get_sym - cmp eax,edx - jae .notintable - cmp eax,[.CC] - je .reinit - cmp eax,[.EOI] - je .end - call .Gif_output - .add: - mov dword [.gif_workarea+edx*4],ebx - cmp edx,0xFFF - jae .cycle - inc edx - bsr ebx,edx - cmp ebx,[.compsize] - jne .noinc - inc [.compsize] - .noinc: - jmp .cycle - .notintable: - push eax - mov eax,ebx - call .Gif_output - push ebx - movzx eax,bx - call .Gif_output - pop ebx eax - jmp .add - .end: -if defined GIF_SUPPORT_INTERLACED - mov edi,[.img_end] -end if -if defined gif_img_count - mov eax,[.cur_info] - mov [eax],edi - mov [.cur_info],edi - add esi,2 - xchg esi,edi - .nxt: - cmp byte[edi],0 - jnz .continue - inc edi - jmp .nxt - .continue: - cmp byte[edi],0x3b - jne .nextblock - xchg esi,edi - and dword [eax],0 -end if - xor eax,eax - .ex: - pop edi esi - ret - -.Gif_skipmap: -; in: ecx - image descriptor, esi - pointer to colormap -; out: edi - pointer to area after colormap - - and ecx,111b - inc ecx ; color map size - mov ebx,1 - shl ebx,cl - lea ebx,[ebx*2+ebx] - lea edi,[esi+ebx] - ret - -.Gif_get_sym: - mov ecx,[.compsize] - push ecx - xor eax,eax - .shift: - ror byte[esi],1 - rcr eax,1 - dec [.bit_count] - jnz .loop1 - inc esi - cmp esi,[.block_ofs] - jb .noblock - push eax - xor eax,eax - lodsb - test eax,eax - jnz .nextbl - mov eax,[.EOI] - sub esi,2 - add esp,8 - jmp .exx - .nextbl: - add eax,esi - mov [.block_ofs],eax - pop eax - .noblock: - mov [.bit_count],8 - .loop1: - loop .shift - pop ecx - rol eax,cl - .exx: - xor ecx,ecx - ret - -.Gif_output: - push esi eax edx - mov edx,.gif_workarea - .next: - push word[edx+eax*4] - mov ax,word[edx+eax*4+2] - inc ecx - cmp ax,_null - jnz .next - shl ebx,16 - mov bx,[esp] - .loop2: - pop ax - - if COLOR_ORDER eq PALETTE - stosb - else - lea esi,[eax+eax*2] - add esi,[.Palette] - - if COLOR_ORDER eq MENUETOS - mov esi,[esi] - bswap esi - shr esi,8 - mov [edi],esi - add edi,3 - else - movsb - movsb - movsb - end if - end if - -if defined GIF_SUPPORT_INTERLACED - cmp edi,[.row_end] - jb .norowend - mov eax,[.width] -if ~(COLOR_ORDER eq PALETTE) - lea eax,[eax*3] -end if - push eax - sub edi,eax - add eax,eax - cmp [.pass],3 - jz @f - add eax,eax - cmp [.pass],2 - jz @f - add eax,eax -@@: - add edi,eax - pop eax - cmp edi,[.img_end] - jb .nextrow - mov edi,[.img_start] - inc [.pass] - add edi,eax - cmp [.pass],3 - jz @f - add edi,eax - cmp [.pass],2 - jz @f - add edi,eax - add edi,eax -@@: -.nextrow: - add eax,edi - mov [.row_end],eax - xor eax,eax -.norowend: -end if - - loop .loop2 - pop edx eax esi - ret - -uglobal -align 4 - ReadGIF.globalColor rd 1 - ReadGIF.cur_info rd 1 ; image table pointer - ReadGIF.codesize rd 1 - ReadGIF.compsize rd 1 - ReadGIF.bit_count rd 1 - ReadGIF.CC rd 1 - ReadGIF.EOI rd 1 -if ~(COLOR_ORDER eq PALETTE) - ReadGIF.Palette rd 1 -end if - ReadGIF.block_ofs rd 1 -if defined GIF_SUPPORT_INTERLACED - ReadGIF.row_end rd 1 - ReadGIF.img_end rd 1 - ReadGIF.img_start rd 1 - ReadGIF.pass rd 1 - ReadGIF.width rd 1 -end if -if defined gif_img_count - ReadGIF.anim_delay rd 1 - ReadGIF.anim_disp rd 1 -end if - ReadGIF.gif_workarea rb 16*1024 -endg diff --git a/programs/system/icon/trunk/icon.asm b/programs/system/icon/trunk/icon.asm index 8b81b07a6a..7b1318a31a 100644 --- a/programs/system/icon/trunk/icon.asm +++ b/programs/system/icon/trunk/icon.asm @@ -5,6 +5,13 @@ ;* Compile with flat assembler * ;* * ;******************************** +; version: 3.00 +; last update: 02/04/2012 +; changed by: Marat Zakiyanov aka Mario79, aka Mario +; changes: Program used only 2 threads: draw and mouse +; Used new kernel functions: 25, 34, 15.8, 4 (redirect). +; Used PNG icons with transparent. +;--------------------------------------------------------------------- ; version: 2.11 ; last update: 19/03/2012 ; changed by: Marat Zakiyanov aka Mario79, aka Mario @@ -33,17 +40,15 @@ ; SPraid, Dunkaist ;--------------------------------------------------------------------- ; version: 2.00 -; last update: 22|02|2005 +; last update: 22/02/2005 ; changed by: Willow and Mario79 ; changes: modified for work with new multi-thread ICON. ;****************************************************************************** -ICON_SIZE equ 32*32*3 -;RAW_SIZE equ ICON_SIZE*32 ;350000 -;GIF_SIZE equ 12*1024 ;45000 +ICON_SIZE equ 32*32*4 REC_SIZE equ 80 -ICONS_DAT equ '/sys/ICONS.DAT' -ICON_APP equ '/sys/ICON' -ICON_STRIP equ '/sys/ICONSTRP.GIF' +ICONS_DAT equ '/sys/icons.dat' +ICON_APP equ '/sys/icon' +ICON_STRIP equ '/rd/1/iconstrp.png' ;------------------------------------------------------------------------------ use32 org 0x0 @@ -54,55 +59,73 @@ ICON_STRIP equ '/sys/ICONSTRP.GIF' dd I_END ; memory for app dd stack_area ; esp dd I_Param ; boot parameters - dd 0x0 ; path + dd path ; path ;------------------------------------------------------------------------------ -include '../../../macros.inc' include 'lang.inc' +include '../../../macros.inc' +include '../../../develop/libraries/box_lib/load_lib.mac' COLOR_ORDER equ MENUETOS -include 'gif_lite.inc' ;include 'debug.inc' -purge newline +;------------------------------------------------------------------------------ + @use_library ;use load lib macros ;------------------------------------------------------------------------------ START: ; start of execution mcall 68,11 +;--------------------------------------------------------------------- +load_libraries l_libs_start,end_l_libs + test eax,eax + jnz close + +; unpack deflate + mov eax,[unpack_DeflateUnpack2] + mov [deflate_unpack],eax +;--------------------------------------------------------------------- ; get size of file ICONSTRP.GIF mcall 70,finfo test eax,eax jnz close ; get memory for ICONSTRP.GIF - mov ecx,[process_table+32] + mov ecx,[procinfo+32] mov [finfo.size],ecx + mov [img_size],ecx mcall 68,12 mov [finfo.point],eax + mov [image_file],eax ; load ICONSTRP.GIF mov [finfo],dword 0 mcall 70,finfo test eax,eax jnz close -; calculate and get memory for RAW data - mov esi,[finfo.point] - movzx eax,word [esi+6] ;x - movzx edi,word [esi+8] ;y - imul eax,edi ;x*y - lea edi,[eax+eax*2] ; multiply x3 - mov ecx,edi - mcall 68,12 +; convert PNG to RAW + xor eax,eax + mov [return_code],eax + + push image_file + call [cnv_png_import.Start] + + mov eax,[raw_pointer] + mov eax,[eax+28] + add eax,[raw_pointer] mov [strip_file],eax - mov edi,eax -; convert GIF to RAW - call ReadGIF ; back memeory to system mcall 68,13,[finfo.point] - - mov eax,dword[edi+4] + + mov eax,[raw_pointer] + mov eax,[eax+8] shr eax,5 mov [icon_count],eax ; load ICON.DAT call load_ic boot_str: cmp [I_Param],dword 'BOOT' - je load_icon_list2 + je START2 +;------------------------------------------------------------------------------ +; ICON EDITOR MODE - START1 entering label +;------------------------------------------------------------------------------ +START1: call load_icon_list +;------------------------------------------------------------------------------ +align 4 red: call draw_window ; at first, draw the window mov esi,[current_icon] @@ -122,44 +145,64 @@ button: mcall 17 ; get id shr eax,8 -; dps "button id: " -; dpd eax -; newline_1 - cmp eax,1 ; button id=1 ? je close -;-------------------------------------- -align 4 -noclose: + mov esi,[current_icon] add esi,12 - mov ebx,[cur_band] ;eax + mov ebx,[cur_band] + + cmp eax,11 + jb @f + cmp eax,13 + ja @f + call read_string + jmp still +;-------------------------------------- +align 4 +@@: + cmp eax,21 ; apply changes + je apply + + cmp eax,22 ; user pressed the 'add icon' button + je add_icon + + cmp eax,23 ; user pressed the remove icon button + je remove_icon + + + cmp eax,30 ; left arrow to icons bar + je arrow.left + cmp eax,31 ; right arrow to icons bar - jne .no_back + je arrow.right + + cmp eax,32 + je ico + + cmp eax,40 ; user pressed button for icon position + jae press_button_for_icon_position + + jmp still +;------------------------------------------------------------------------------ +align 4 +arrow: +.right: - add ebx,8 mov eax,[icon_count] - cmp eax,ebx - jae .drwic2 + sub eax,8 + cmp ebx,eax + jae still ;.drwic2 - xor ebx,ebx + add ebx,1 jmp .drwic2 ;-------------------------------------- align 4 -.no_back: - cmp eax,30 ; left arrow to icons bar - jne .no_side - +.left: test ebx,ebx - jnz .dec + jz still - mov ebx,[icon_count] - and ebx,0xfffffff8 - add ebx,8 -;-------------------------------------- -align 4 -.dec: - sub ebx,8 + sub ebx,1 ;-------------------------------------- align 4 .drwic2: @@ -169,11 +212,9 @@ align 4 .drwic1: call draw_icon jmp still -;-------------------------------------- +;------------------------------------------------------------------------------ align 4 -.no_side: - cmp eax,32 - jne .no_ico +ico: push ebx mcall 37,1 pop ebx @@ -186,27 +227,15 @@ align 4 cmp ecx,[icon_count] jae still - mov [sel_icon1],eax mov ecx,eax add eax,ebx call itoa - jmp .drwic1 -;-------------------------------------- -align 4 -.no_ico: - cmp eax,11 - jb no_str - cmp eax,13 - jg no_str - call read_string - jmp still -;-------------------------------------- + jmp arrow.drwic1 +;------------------------------------------------------------------------------ align 4 -no_str: - cmp eax,21 ; apply changes - jne no_apply +apply: ; (1) save list - mov ebx,finfo ; Change by spraid + mov ebx,finfo mov dword[ebx],2 mov edx,REC_SIZE imul edx,dword [icons] @@ -216,7 +245,7 @@ no_str: mcall 70 ; (2) terminate all icons or ecx,-1 - mcall 9,process_table + mcall 9,procinfo mov edi,[ebx+30] ;-------------------------------------- align 4 @@ -227,12 +256,13 @@ align 4 newread: inc esi mov ecx,esi - mcall 9,process_table + mcall 9,procinfo + cmp edi,[ebx+30] je newread cmp esi,eax - jg apply_changes + jg .apply_changes mov eax,[ebx+10] and eax,not 20202020h @@ -243,7 +273,7 @@ newread: ;-------------------------------------- align 4 @@: - mov eax,51 + xor eax,eax cmp eax,[ebx+42] jne newread @@ -252,43 +282,22 @@ align 4 mov ecx,esi mcall 18,2 + jmp newread2 -;------------------------------------------------------------------------------ +;-------------------------------------- align 4 -finfo_start: - dd 7 - dd 0 -.params dd 0 - dd 0 - dd 0 - db 0 - dd finfo.path -;------------------------------------------------------------------------------ -align 4 -finfo: - dd 5 - dd 0 - dd 0 -.size dd 0 ;GIF_SIZE -.point dd process_table ;gif_file -.path: - db ICON_STRIP,0 - rb 31-($-.path) -;------------------------------------------------------------------------------ -align 4 -apply_changes: +.apply_changes: mov ebx, finfo_start mov dword [ebx+8], boot_str+6 mov esi, iconname call lst_path mcall 70 + mcall 68,1 + mcall 15,3 jmp still ;------------------------------------------------------------------------------ align 4 -no_apply: - cmp eax,22 ; user pressed the 'add icon' button - jne no_add_icon - +add_icon: mov ebx,24*65536+250+8*14 mcall 4,,0xc0ff0000,add_text,,0xffffff @@ -345,12 +354,9 @@ align 4 no_f: call draw_btns ;draw_window jmp still -;-------------------------------------- +;------------------------------------------------------------------------------ align 4 -no_add_icon: - cmp eax,23 ; user pressed the remove icon button - jne no_remove_icon - +remove_icon: mov ebx,24*65536+250+8*14 mcall 4,,0xc0ff0000,rem_text,,0xffffff @@ -422,11 +428,9 @@ foundi: add ebx,40 mov [cur_btn],ebx jmp red -;-------------------------------------- +;------------------------------------------------------------------------------ align 4 -no_remove_icon: - cmp eax,40 ; user pressed button for icon position - jb still +press_button_for_icon_position: mov edi,eax sub eax,40 mov edx,eax @@ -454,14 +458,12 @@ foundl1: align 4 band: add esi,12 - call atoi + call ASCII_to_icon_number and eax,0xfffff8 mov [cur_band],eax call draw_btns jmp still ;------------------------------------------------------------------------------ -current_icon dd icon_data -;------------------------------------------------------------------------------ align 4 print_strings: pusha @@ -487,8 +489,6 @@ align 4 popa ret ;------------------------------------------------------------------------------ -iconlst db ICONS_DAT,0 -;------------------------------------------------------------------------------ align 4 load_icon_list: mov edi,icons_reserved ; clear reserved area @@ -539,10 +539,6 @@ load_ic: ret ;------------------------------------------------------------------------------ align 4 -positions dd 3,16,47 -str_lens db 8,30,30 -;------------------------------------------------------------------------------ -align 4 read_string: pusha sub eax,11 @@ -688,14 +684,14 @@ draw_window: mov esi,47 ;-------------------------------------- align 4 -newline: +.newline: mov ecx,[edx] add edx,4 mcall add ebx,14 add edx,47 cmp [edx],byte 'x' - jne newline + jne .newline ;-------------------------------------- align 4 draw_btns: @@ -743,7 +739,7 @@ no_button: ror ebx,16 add ecx,20 shl 16 inc ah - cmp ah,8 ;9 + cmp ah,8 jbe newbline call print_strings @@ -756,7 +752,7 @@ draw_icon: mcall 13,<(33-20),(34*8+2)>,<(260-24),(37+15-2)>,0xffffff mov esi,[current_icon] add esi,12 - call atoi + call ASCII_to_icon_number push eax cmp eax,[cur_band] jb .nou @@ -772,18 +768,20 @@ draw_icon: align 4 .nou: mov eax,[cur_band] - and eax,0xfffffff8 push eax imul eax,ICON_SIZE mov ebx,[strip_file] - lea ebx,[ebx+8+eax] + add ebx,eax mov ecx,8 mov edx,(33-18) shl 16+238 ;-------------------------------------- align 4 .nxt: push ecx - mcall 7,,<32,32> + pusha + mov ebp,0 + mcall 65,,<32,32>,,32 + popa pop ecx add ebx,ICON_SIZE add edx,34 shl 16 @@ -806,540 +804,131 @@ align 4 mcall ,,,,0xff0000 ret ;------------------------------------------------------------------------------ -; DATA AREA -bcolor dd 0x335599 -;------------------------------------------------------------------------------ -icon_table: - times 4 db 'xxxx xxxx' - times 2 db ' ' - times 1 db ' ' - times 2 db 'xxxx xxxx' -; times 1 db ' ' -;------------------------------------------------------------------------------ -icons_reserved: - times 9 db ' ' -;------------------------------------------------------------------------------ -if lang eq ru -text: - db 255,255,255,0, ' ’…Љ‘’ ' - db 255,255,255,0, ' ЏђЋѓђЂЊЊЂ ' - db 255,255,255,0, ' ЏЂђЂЊ…’ђ› ' - db 255,255,255,0, ' Џђ€Њ…Ќ€’њ ' - db 255,255,255,0, ' „ЋЃЂ‚€’њ “„Ђ‹€’њ ' - db 0,0,0,0, 'ЌЂ†Њ€’… ЌЂ ЏЋ‡€–€ћ €ЉЋЌЉ€ „‹џ ђ…„ЂЉ’€ђЋ‚ЂЌ€џ ' - db 'x' ; <- END MARKER, DONT DELETE - -add_text db 'ЌЂ†Њ€’… ЌЂ ЏЋ‡€–€ћ Ќ…€‘ЏЋ‹њ‡“…ЊЋ‰ €ЉЋЌЉ€ ',0 -rem_text db 'ЌЂ†Њ€’… ЌЂ ЏЋ‡€–€ћ €‘ЏЋ‹њ‡“…ЊЋ‰ €ЉЋЌЉ€ ',0 -title db 'ЊҐ­Ґ¤¦Ґа ЁЄ®­®Є',0 - -else if lang eq ge -text: - db 255,255,255,0, ' TITLE ' - db 255,255,255,0, ' APP NAME ' - db 255,255,255,0, ' PARAMETER ' - db 255,255,255,0, ' ANWENDEN ' - db 255,255,255,0, ' HINZUFUEGEN ENTFERNEN ' - db 0,0,0,0, 'AUF BUTTON KLICKEN, UM ICON ZU EDITIEREN ' - db 'x' ; <- END MARKER, DONT DELETE - -add_text db 'AUF UNBENUTZTE ICONPOSITION KLICKEN ',0 -rem_text db 'ICON ANKLICKEN; DAS GELOESCHT WERDEN SOLL ',0 -title db 'Icon Manager',0 - -else -text: - db 255,255,255,0, ' TITLE ' - db 255,255,255,0, ' APP NAME ' - db 255,255,255,0, ' PARAMETERS ' - db 255,255,255,0, ' APPLY CHANGES ' - db 255,255,255,0, ' ADD ICON REMOVE ICON ' - db 0,0,0,0, 'CLICK BUTTON ON ICON POSITION FOR EDIT ' - db 'x' ; <- END MARKER, DONT DELETE -add_text db 'CLICK ON A NOT USED POSITION ',0 -rem_text db 'CLICK ICON POSITION; YOU WANT TO DELETE ',0 -title db 'Icon Manager',0 - -end if -;------------------------------------------------------------------------------ -arrows db '' -;------------------------------------------------------------------------------ -iconname: - db ICON_APP,0 -;------------------------------------------------------------------------------ -icon_default: - db 'AA-SYSXTREE-000-/RD/1/SYSXTREE ' - db '- *' - db 13,10 -;------------------------------------------------------------------------------ -rep_text: -if lang eq ru - db '‡ЌЂ—Љ€ - €‡ , ‚›ЃђЂЌ #' -else - db 'ICONS - OF , SELECTED' -end if - -rep_text_len: -;------------------------------------------------------------------------------ -align 4 -get_bg_info: - mcall 39,4 - mov [bgrdrawtype],eax - - mcall 39,1 ; get background size - mov [bgrxy],eax - - mov ebx,eax - shr eax,16 - and ebx,0xffff - mov [bgrx],eax - mov [bgry],ebx - ret -;------------------------------------------------------------------------------ -align 4 -calc_icon_pos: - movzx eax,byte [ebp-20] ; x position - sub eax,'A' ;eax - number of letter - cmp eax,4 - jg no_left - - shl eax,6 ;imul eax,64 - add eax,16 - movzx ebx,[warea.left] - add eax,ebx - jmp x_done -;-------------------------------------- -align 4 -no_left: - sub eax,9 - sal eax,6 ;imul eax,64 - sub eax,16+52-1 - movzx ebx,[warea.right] - add eax,ebx -;-------------------------------------- -align 4 -x_done: - mov [ebp-12],eax - movzx eax,byte [ebp-20+1] ; y position - sub eax,'A' ; eax - number of letter - cmp eax,4 - jg no_up - - shl eax,6 ;imul eax,80 - add eax,16 - movzx ebx,[warea.top] - add eax,ebx - jmp y_done -;-------------------------------------- -align 4 -no_up: - sub eax,9 - shl eax,6 ;imul eax,80 - sub eax,16-1 - movzx ebx,[warea.bottom] - add eax,ebx -;-------------------------------------- -align 4 -y_done: - mov [ebp-8],eax - ret -;-------------------------------------- -align 4 -;START2: -load_icon_list2: - call get_bg_info - - mcall 48,5 - mov [warea.by_x],eax - mov [warea.by_y],ebx - - mcall 14 - add eax,0x00010001 - mov [scrxy],eax -;-------------------------------------- -align 4 -apply_changes2: - mov edi,[icons] - mov esi,icon_data - mov ebp,thread_stack+0x100 ;0x5000 ; threads stack starting point -;-------------------------------------- -align 4 -start_new: - mov eax,[esi] - mov [ebp-20],eax - call calc_icon_pos - - mov edx,ebp - mov dword[ebp-4],esi - mcall 51,1,thread - add ebp,0x100 -; change to next thread if mutex is blocked - mov eax,68 - mov ebx,1 -;-------------------------------------- -align 4 -wait_thread_start: ;wait until thread draw itself first time - cmp [create_thread_event],bl ;mutex - jz wait_thread_end - mcall - jmp wait_thread_start -;-------------------------------------- -align 4 -wait_thread_end: - dec [create_thread_event] ;reset event - add esi,REC_SIZE - dec edi - jnz start_new -;-------------------------------------- align 4 close: or eax,-1 mcall ;------------------------------------------------------------------------------ -; esp-28 = start of thread stack -; esp-24 = ??? -; esp-20 = 'AA-F' or... -; esp-16 = ebp-4 - area of f. 15.6 -; esp-12 = ebp+0 = X -; esp-8 = ebp+4 = Y -; esp-4 = ebp+8 = adress of icon_data +; ICON PROCESSING MODE - START2 entering label ;------------------------------------------------------------------------------ align 4 -thread: - sub esp,12 - mov ebp,esp - sub esp,16 - call draw_window2 - mov [create_thread_event],1 - mcall 40,010101b +START2: + mcall 40,10000b ; only Event 5 - draw background + + mcall 51,1,START_mouse_thread,stack_mouse_thread ;------------------------------------------------------------------------------ align 4 still2: mcall 10 - cmp eax,1 - je red2 - cmp eax,3 - je button2 - + mcall 15,8 + + mov ecx,eax + shr ecx,16 + mov [x_left],ecx + and eax,0xffff + mov [x_right],eax + + mov ecx,ebx + shr ecx,16 + mov [y_top],ecx + and ebx,0xffff + mov [y_bottom],ebx + call get_bg_info - call draw_icon2_1 - - jmp still2 -;------------------------------------------------------------------------------ + + mov ecx,[icons] + mov ebx,icon_data +;-------------------------------------- align 4 -red2: - mcall 14 - add eax,0x00010001 - mov [scrxy],eax - mcall 48,5 - mov [warea.by_x],eax - mov [warea.by_y],ebx - add ebp,+12 +.start_new: + push ebx ecx + mov [adress_of_icon_data],ebx + mov eax,[ebx] call calc_icon_pos - add ebp,-12 - mcall 9,process_table,-1 - mov eax,[process_table+process_information.box.left] - cmp eax,[ebp+0] - jne @f - mov eax,[process_table+process_information.box.top] - cmp eax,[ebp+4] - je .lp1 -;-------------------------------------- -align 4 -@@: - call get_bg_info - mcall 67,[ebp+0],[ebp+4],51,51 -;-------------------------------------- -align 4 -.lp1: - call draw_window2 - jmp still2 -;------------------------------------------------------------------------------ -align 4 -button2: - mcall 17 - cmp ah, 2 - jnz still2 + mov [current_X],ebx + mov [current_Y],eax - mcall 9,process_table,-1 - mov ecx,[ebx+30] ; PID - mcall 18,21 - mov edx,eax ; SLOT - mcall 18,7 - cmp edx,eax ; compare with active SLOT - jne @f - mov ecx,edx - mcall 18,1 ; set to down - call draw_window2 -;-------------------------------------- -align 4 -@@: - mov esi,[ebp+8] - mov ebx,1 - mov edi,finfo.path - call fill_paths - inc ebx - mov edi,param_str - mov dword[finfo_start+8],edi - call fill_paths - cmp byte[edi],0 - jne .no0 - and dword[finfo_start+8],0 -;-------------------------------------- -align 4 -.no0: - mov ebx,finfo_start - mcall 70 + call draw_picture + pop ecx ebx + add ebx,REC_SIZE + dec ecx + jnz .start_new jmp still2 -;------------------------------------------------------------------------------ -align 4 -fill_paths: - push esi edi - movzx ecx,byte[str_lens+ebx] - add esi,[positions+ebx*4] - push esi - add esi,ecx -;-------------------------------------- -align 4 -.l1: - dec esi - cmp byte[esi],' ' - jnz .found - loop .l1 - pop esi - jmp .noms -;-------------------------------------- -align 4 -.found: - lea ecx,[esi+1] - pop esi - sub ecx,esi - rep movsb -;-------------------------------------- -align 4 -.noms: - and byte[edi],0 - pop edi esi - ret -;-------------------------------------- -align 4 -atoi: - push esi - xor eax,eax - xor ebx,ebx -;-------------------------------------- -align 4 -.nxt: - lodsb - cmp al,'0' - jb .done - cmp al,'9' - ja .done - sub eax,'0' -; multiply x10 - shl ebx,1 ; multiply x2 - lea ebx,[ebx+ebx*4] ; multiply x5 - add ebx,eax - jmp .nxt -;-------------------------------------- -align 4 -.done: - pop esi - mov eax,ebx - ret -;-------------------------------------- -align 4 -itoa: - add esi,2 - mov ebx,10 - mov ecx,3 -;-------------------------------------- -align 4 -.l0: - xor edx,edx - div ebx - add dl,'0' - mov [esi],dl - dec esi - loop .l0 - ret -;------------------------------------------------------------------------------ +;------------------------------------------------------------------------------ align 4 draw_picture: - mcall 15,6 - test eax,eax - jnz @f - mcall 68,1 - jmp draw_picture -@@: - mov [ebp-4],eax - mov [image],image_area + mov eax,[current_X] + cmp eax,[x_right] + ja .exit - mov edi,[ebp+8] + add eax,52 + cmp eax,[x_left] + jb .exit + + mov eax,[current_Y] + cmp eax,[y_bottom] + ja .exit + + add eax,52 + cmp eax,[y_top] + jb .exit +;-------------------------------------- +align 4 +@@: + mov edi,[adress_of_icon_data] ;[ebp+8] lea esi,[edi+12] - call atoi + call ASCII_to_icon_number +; protect for icon area RAW size limit cmp eax,[icon_count] - ja toponly.ex -; imul eax,(32*3*32) - lea eax,[eax+eax*2] ; multiply x3 - shl eax,10 ; multiply x1024 - - mov edi,[strip_file] - lea edi,[eax+edi+8] - xor ecx,ecx - mov esi,edi - - mov [pixpos],0 -;-------------------------------------- -; loop Y start -align 4 -new_line: - push ecx ; Y - xor ebx,ebx -;-------------------------------------- -; loop X start -align 4 -newb: - mov ecx,[esp] - push ebx ; X - - cmp ebx,10 - jb yesbpix - cmp ebx,42 - jge yesbpix - cmp ecx,31 ;2 - jg yesbpix - - push esi - mov esi,edi - add esi,[pixpos] -;-------------------------------------- - add [pixpos],3 - mov eax,[esi] - and eax,0xffffff - - pop esi - - cmp eax,0 - je yesbpix - cmp eax,0xfffcff ;f5f5f5 - je yesbpix - jmp nobpix + jbe @f ;-------------------------------------- align 4 -yesbpix: -stretch: - cmp [bgrdrawtype],dword 2 - jne nostretch - mov eax,[ebp+4] - add eax,ecx - imul eax,[bgry] - cdq - movzx ebx,word [scrxy] - div ebx - imul eax,[bgrx] - push eax - mov eax,[ebp+0] - add eax,[esp+4] - imul eax,[bgrx] - cdq - movzx ebx,word [scrxy+2] - div ebx - add eax,[esp] - add esp,4 - jmp notiled +.exit: + ret ;-------------------------------------- align 4 -nostretch: - cmp [bgrdrawtype],dword 1 - jne notiled - mov eax,[ebp+4] - add eax,ecx - cdq - movzx ebx,word [bgrxy] - div ebx - mov eax,edx - imul eax,[bgrx] - push eax - mov eax,[ebp+0] - add eax,[esp+4] - movzx ebx,word [bgrxy+2] - cdq - div ebx - mov eax,edx - add eax,[esp] - add esp,4 -;-------------------------------------- -align 4 -notiled: - lea ecx,[eax+eax*2] - add ecx,[ebp-4] - mov eax,[ecx] -;-------------------------------------- -align 4 -nobpix: - mov edx,eax - mov eax,[image] - - mov [eax],dl - inc eax - ror edx,8 - - mov [eax],dl - inc eax - ror edx,8 - - mov [eax],dl - - inc eax - mov [image],eax - - pop ebx - - inc ebx - - mov eax,[yw] - inc eax - cmp ebx,eax - jb newb - - pop ecx - - inc ecx - mov eax,[ya] - add [pixpos],eax - - cmp [top],1 - jne notop - - cmp ecx,38 - je toponly -;-------------------------------------- -align 4 -notop: - cmp ecx,52 - jnz new_line -;-------------------------------------- -align 4 -toponly: - mcall 15,7,[ebp-4] - test eax,eax - jnz @f - mcall 68,1 - jmp toponly @@: - xor edx,edx - mcall 7,image_area,<52,52> + push eax + mcall 68,12,52*52*4+8 + mov [draw_area],eax + mov ebx,52 + mov [eax],ebx + mov [eax+4],ebx + pop eax + + shl eax,12 ; multiply x4096 + add eax,[strip_file] + mov esi,eax + + mov edi,[draw_area] + add edi,(52-32)/2*4+8 + mov ebx,32 + cld ;-------------------------------------- align 4 -.ex: - mov [load_pic],0 +.y: + mov ecx,32 + rep movsd + + add edi,(52-32)*4 + dec ebx + jnz .y + + call draw_text + + mov edx,[current_X] ;[ebp+0] + shl edx,16 + add edx,[current_Y] ;[ebp+4] + mov ebx,[draw_area] + add ebx,8 + mcall 25,,<52,52> + mcall 68,13,[draw_area] ret ;------------------------------------------------------------------------------ align 4 draw_text: - mov esi,[ebp+8] + mov esi,[adress_of_icon_data] ;[ebp+8] add esi,3 push edi mov edi,title @@ -1370,7 +959,10 @@ founde: sub ebx,eax xor ecx,ecx ; black shade of text + or ecx,0x08000000 ; redirect the output to the user area add ebx,1 shl 16 ;*65536+1 + + mov edi,[draw_area] mcall 4,,,title,[tl] inc ebx @@ -1398,127 +990,143 @@ founde: mcall inc ebx - mcall ,,0xffffff - mov [draw_pic],0 + mov ecx,0xffffff ; white text + or ecx,0x08000000 ; redirect the output to the user area + mcall ret ;------------------------------------------------------------------------------ -; ********************************************* -; ******* WINDOW DEFINITIONS AND DRAW ******** -; ********************************************* align 4 -draw_window2: - mcall 12,1 - ; DRAW WINDOW - xor eax,eax ; function 0 : define and draw window - mov ebx,[ebp+0-2] - mov ecx,[ebp+4-2] - mov bx,[yw] ; [x start] *65536 + [x size] - mov cx,51 ; [y start] *65536 + [y size] - mov edx,0x41000000 ; color of work area RRGGBB,8->color gl - mcall +ASCII_to_icon_number: +; +; in: +; esi - adress of icon ASCII text number (line start + 12) +; +; out: +; eax - number of icon +; + push esi + xor eax,eax + xor ebx,ebx +;-------------------------------------- +align 4 +.next: + lodsb + cmp al,'0' + jb .done + cmp al,'9' + ja .done + sub eax,'0' +; multiply x10 + shl ebx,1 ; multiply x2 + lea ebx,[ebx+ebx*4] ; multiply x5 + add ebx,eax + jmp .next +;-------------------------------------- +align 4 +.done: + pop esi + mov eax,ebx + ret +;------------------------------------------------------------------------------ +align 4 +itoa: + add esi,2 + mov ebx,10 + mov ecx,3 +;-------------------------------------- +align 4 +.l0: + xor edx,edx + div ebx + add dl,'0' + mov [esi],dl + dec esi + loop .l0 + ret +;------------------------------------------------------------------------------ +align 4 +get_bg_info: + mcall 39,1 ; get background size + mov [bgrxy],eax + + mov ebx,eax + shr eax,16 + and ebx,0xffff + mov [bgrx],eax + mov [bgry],ebx - mcall 8,51,50,0x40000002 ; button -;-------------------------------------- -align 4 -draw_icon2_1: -; change to next thread if mutex is blocked - mov eax,68 - mov ebx,1 -;-------------------------------------- -align 4 -draw_icon2: - xchg [load_pic],bl ;mutex - test bl,bl - je draw_icon_end - mcall - jmp draw_icon2 -;-------------------------------------- -align 4 -draw_icon_end: -; change to next thread if mutex is blocked - mov eax,68 - mov ebx,1 -;-------------------------------------- -align 4 -draw_icon_2: - xchg [draw_pic],bl ;mutex - test bl,bl - je draw_icon_end_2 - mcall - jmp draw_icon_2 -;-------------------------------------- -align 4 -draw_icon_end_2: - call draw_picture - call draw_text - mcall 12,2 + mcall 48,5 + mov [warea.by_x],eax + mov [warea.by_y],ebx + + mcall 14 + add eax,0x00010001 + mov [scrxy],eax ret ;------------------------------------------------------------------------------ -tl dd 8 -yw: dd 51 -ya dd 0 -cur_btn dd 40 +align 4 +calc_icon_pos: +; in: +; eax - dword [icon_position] +; out: +; eax - current Y +; ebx - current X + push eax + movzx eax,al + sub eax,'A' ;eax - number of letter + cmp eax,4 + jg no_left -draw_pic db 0 -load_pic db 0 -create_thread_event db 0 + shl eax,6 ;imul eax,64 + add eax,16 + movzx ebx,[warea.left] + add eax,ebx + jmp x_done +;-------------------------------------- +align 4 +no_left: + sub eax,9 + sal eax,6 ;imul eax,64 + sub eax,16+52-1 + movzx ebx,[warea.right] + add eax,ebx +;-------------------------------------- +align 4 +x_done: + mov ebx,eax + pop eax + push ebx + movzx eax,ah + sub eax,'A' ; eax - number of letter + cmp eax,4 + jg no_up -image dd image_area - -IncludeUGlobals + shl eax,6 ;imul eax,80 + add eax,16 + movzx ebx,[warea.top] + add eax,ebx + jmp y_done +;-------------------------------------- +align 4 +no_up: + sub eax,9 + shl eax,6 ;imul eax,80 + sub eax,16-1 + movzx ebx,[warea.bottom] + add eax,ebx +;-------------------------------------- +align 4 +y_done: + pop ebx + ret +;------------------------------------------------------------------------------ +include 'mouse.inc' +;------------------------------------------------------------------------------ +include 'data.inc' ;------------------------------------------------------------------------------ IM_END: ;------------------------------------------------------------------------------ -align 4 -bgrx dd ? -bgry dd ? - -bgrxy dd ? -warea: - .by_x: - .right dw ? - .left dw ? - .by_y: - .bottom dw ? - .top dw ? -scrxy dd ? -bgrdrawtype dd ? - -pixpos dd ? -top dd ? -icons dd ? -addr dd ? -cur_str dd ? -cur_band dd ? -sel_icon1 rd 1 -icon_count rd 1 -strip_file rd 1 -;------------------------------------------------------------------------------ -align 4 -param_str rb 31 -;------------------------------------------------------------------------------ -align 4 -process_table: - rb 0x400 -;------------------------------------------------------------------------------ -align 4 -icon_data: - rb 0x1000 -;------------------------------------------------------------------------------ -align 4 - rb 0x1000 -stack_area: -;------------------------------------------------------------------------------ -align 4 -I_Param: - rb 0x100 ; max 256 -;------------------------------------------------------------------------------ -align 4 -thread_stack: - rb 0x100*48 ; max 48 icons -;------------------------------------------------------------------------------ -align 4 -image_area: - rb 52*52*3 +include 'dat_area.inc' ;------------------------------------------------------------------------------ I_END: +;------------------------------------------------------------------------------ diff --git a/programs/system/icon/trunk/iconstrp.gif b/programs/system/icon/trunk/iconstrp.gif deleted file mode 100644 index d5885fc4b2c4542e6eeb9f1b8a8ee72f3394134d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12002 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 NQ&Ch`sFE`e{y*#{;r9Rl literal 0 HcmV?d00001 diff --git a/programs/system/icon/trunk/mouse.inc b/programs/system/icon/trunk/mouse.inc new file mode 100644 index 0000000000..1f24b95c73 --- /dev/null +++ b/programs/system/icon/trunk/mouse.inc @@ -0,0 +1,174 @@ +;------------------------------------------------------------------------------ +align 4 +START_mouse_thread: + mcall 40,100000b ; only Event 6 - Mouse +;------------------------------------------------------------------------------ +align 4 +still_mouse: + mcall 10 +align 4 +mouse: + mcall 37,2 + cmp eax,1 ; если не левая, возврат + jne still_mouse +; координаты курсора + xor ebx,ebx + mcall 37 + + mov ebx,eax ; eax = cursor_x + shr eax,16 ; ebx = cursor_y + and ebx,0xffff + mov [curx1],eax ; curx1 = cursor_x + mov [cury1],ebx ; cury1 = cursor_y + +; кому принадлежит точка? + mcall 34,[curx1],[cury1] + cmp al,1 ; 1 - ядро + jne still_mouse +;-------------------------------------- +align 4 +@@: ; подождём, пока пользователь не отпустил правую кнопку мыши + mcall 37,2 ; нажаты ли кнопки мыши? + test eax,1 ; если отпустил + jz @f ; идём в начало главного цикла + + mcall 68,1 ; иначе переключимся на следующий поток системы и когда + jmp @b ; выполнение вернется этому потоку, проверим мышь опять +;-------------------------------------- +align 4 +@@: +; координаты курсора + xor ebx,ebx + mcall 37 + + mov ebx,eax ; eax = cursor_x + shr eax,16 ; ebx = cursor_y + and ebx,0xffff + mov [curx2],eax ; curx1 = cursor_x + mov [cury2],ebx ; cury1 = cursor_y + +; кому принадлежит точка? + mcall 34,[curx2],[cury2] + cmp al,1 ; 1 - ядро + jne still_mouse +; check for icon by click down + call check_icons_position + mov eax,[click_pos] + test eax,eax + jz still_mouse + + push eax + mov eax,[curx2] + mov [curx1],eax + mov eax,[cury2] + mov [cury1],eax +; check for icon by click up + call check_icons_position + pop eax + + mov ebx,[click_pos] + + test ebx,ebx + jz still_mouse + + cmp eax,ebx + jne still_mouse +;-------------------------------------- +align 4 +start_appl: + mov esi,[adress_of_icon_data_2] ;[ebp+8] + mov ebx,1 + mov edi,finfo.path + call fill_paths + inc ebx + mov edi,param_str + mov dword[finfo_start+8],edi + call fill_paths + cmp byte[edi],0 + jne .no0 + and dword[finfo_start+8],0 +;-------------------------------------- +align 4 +.no0: + mov ebx,finfo_start + mcall 70 + jmp still_mouse +;------------------------------------------------------------------------------ +align 4 +fill_paths: + push esi edi + movzx ecx,byte[str_lens+ebx] + add esi,[positions+ebx*4] + push esi + add esi,ecx +;-------------------------------------- +align 4 +.l1: + dec esi + cmp byte[esi],' ' + jnz .found + loop .l1 + pop esi + jmp .noms +;-------------------------------------- +align 4 +.found: + lea ecx,[esi+1] + pop esi + sub ecx,esi + rep movsb +;-------------------------------------- +align 4 +.noms: + and byte[edi],0 + pop edi esi + ret +;------------------------------------------------------------------------------ +align 4 +check_icons_position: + mov ecx,[icons] + mov ebx,icon_data +;-------------------------------------- +align 4 +.loop: + push ebx ecx + mov [adress_of_icon_data_2],ebx + mov eax,[ebx] + call calc_icon_pos + + mov [current_X_mouse_thread],ebx + mov [current_Y_mouse_thread],eax + mov eax,[curx1] + mov ebx,[current_X_mouse_thread] + cmp eax,ebx + jb .next + + add ebx,52 + cmp eax,ebx + ja .next + + mov eax,[cury1] + mov ebx,[current_Y_mouse_thread] + cmp eax,ebx + jb .next + + add ebx,52 + cmp eax,ebx + ja .next + + pop ecx ebx + mov eax,[adress_of_icon_data_2] + mov [click_pos],eax + ret +;-------------------------------------- +align 4 +.next: + pop ecx ebx + add ebx,REC_SIZE + dec ecx + jnz .loop +; all icons survived! + xor eax,eax + mov [click_pos],eax + ret +;------------------------------------------------------------------------------