From e4b948b9554e668566d0c629a05cdc496c8b6e5e Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Tue, 5 May 2020 12:09:37 +0000 Subject: [PATCH] various small updates git-svn-id: svn://kolibrios.org@7867 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/rus/settings/menu.dat | 5 +- programs/cmm/lib/obj/libimg.h | 7 +- programs/fs/unimg/fat12.c | 25 +-- programs/fs/unimg/make.bat | 2 +- programs/fs/unimg/unimg | Bin 10589 -> 10693 bytes programs/system/test/trunk/test.asm | 268 ++++++++++++++-------------- 6 files changed, 157 insertions(+), 150 deletions(-) diff --git a/data/rus/settings/menu.dat b/data/rus/settings/menu.dat index 702f2c1423..60a3c4fc80 100644 --- a/data/rus/settings/menu.dat +++ b/data/rus/settings/menu.dat @@ -4,7 +4,6 @@ Графика > /@3 Звук и видео > /@4 Разработка > /@5 -Эмуляторы > /@6 Система > /@7 Офис > /@10 Сеть > /@11 @@ -48,6 +47,7 @@ FlatWave /sys/3d/flatwav Аудиоплеер AC97SND /sys/media/ac97snd Видеоплеер Fplay /kolibrios/media/fplay Midi-плеер /sys/media/midamp +Детское пианино /sys/media/piano #5 **** Разработка **** Упаковщик KPack /sys/kpack Flat Assembler /sys/develop/fasm @@ -67,7 +67,6 @@ PokeMini /kolibrios/emul/pokemini ScummVM /kolibrios/emul/scummvm ZSNES Super Nintendo /kolibrios/emul/zsnes #7 **** Система **** -Системная панель /sys/syspanel Файловые менеджеры > /@8 Спец. возможности > /@9 Календарь /sys/calendar @@ -75,6 +74,7 @@ ZSNES Super Nintendo /kolibrios/emul/zsnes Виртуальные диски /sys/tmpdisk Консоль SHELL /sys/shell Сохранение образа /sys/rdsave +Системная панель /sys/syspanel #8 **** Система -> Файловые менеджеры **** KFAR /sys/File Managers/kfar fNav /sys/File Managers/fNav/fNav @@ -109,6 +109,7 @@ VNC Интернет загрузчик /sys/network/downloader Текстовый браузер /sys/network/webview #14 **** Разное **** +Эмуляторы > /@6 Создание скриншотов /sys/scrshoot Аналоговые часы /sys/demos/aclock Таблица Менделеева /sys/period diff --git a/programs/cmm/lib/obj/libimg.h b/programs/cmm/lib/obj/libimg.h index b01b456e1a..c2113ab405 100644 --- a/programs/cmm/lib/obj/libimg.h +++ b/programs/cmm/lib/obj/libimg.h @@ -194,6 +194,11 @@ struct _Image } //NOTICE: DO NOT FORGET TO INIT libio AND libimg!!! +#ifdef LANG_RUS +#define TEXT_FILE_SAVED_AS "'File saved as " +#else +#define TEXT_FILE_SAVED_AS "'Файл сохранен как " +#endif :void save_image(dword _image_pointer, _w, _h, _path) { char save_success_message[4096+200]; @@ -219,7 +224,7 @@ struct _Image } else { if (CreateFile(encoded_size, encoded_data, _path) == 0) { - strcpy(#save_success_message, "'File saved as "); + strcpy(#save_success_message, TEXT_FILE_SAVED_AS); strcat(#save_success_message, _path); strcat(#save_success_message, "' -O"); notify(#save_success_message); diff --git a/programs/fs/unimg/fat12.c b/programs/fs/unimg/fat12.c index e311e623eb..232ddf9796 100644 --- a/programs/fs/unimg/fat12.c +++ b/programs/fs/unimg/fat12.c @@ -329,7 +329,7 @@ static int fat12__open(Fat12 *this, const char *img) { this->rootDirectory = this->firstFat + this->numberOfFats * this->sectorsPerFat * this->bytesPerSector; this->dataRegion = this->rootDirectory + this->maxRootEntries * 32; - con_printf("Bytes per sector: %d\n", this->bytesPerSector); + con_printf("\nBytes per sector: %d\n", this->bytesPerSector); con_printf("Sectors per claster: %d\n", this->sectorsPerClaster); con_printf("Reserver sector count: %d\n", this->reservedSectorCount); con_printf("Number of FATs: %d\n", this->numberOfFats); @@ -338,7 +338,7 @@ static int fat12__open(Fat12 *this, const char *img) { con_printf("Sectors per FAT: %d\n", this->sectorsPerFat); con_printf("First FAT: %d\n", this->firstFat); con_printf("Root directory: %d\n", this->rootDirectory); - con_printf("Data region: %d\n", this->dataRegion); + con_printf("Data region: %d\n\n", this->dataRegion); return 1; } @@ -373,7 +373,7 @@ static int callback(const char *name, size_t size, const uint8_t *data, void *pa *fileNameDelim = '/'; } } - con_printf("Extracting \"%s\"\n", outputPath->data); + con_printf("Extracting %s\n", outputPath->data); if (!(fp = fopen(outputPath->data, "wb"))) { perror(NULL); } fwrite(data, 1, size, fp); fclose(fp); @@ -383,31 +383,36 @@ static int callback(const char *name, size_t size, const uint8_t *data, void *pa - int main(int argc, char **argv) { Fat12 fat12 = { 0 }; char *imageFile = NULL; String outputFolder = { 0 }; int exit = 0; - if (con_init_console_dll()) return -1; - con_set_title("UnImg - kolibri.img file unpacker"); + char app_title[] = "UnImg - kolibri.img file unpacker"; + if (con_init_console_dll_param(-1, -1, -1, 350, app_title)) return -1; if (argc < 2) { - con_write_asciiz("Usage: unimg \"/path/to/kolibri.img\" \"/optional/extract/path\" [-e]"); - con_write_asciiz("-e\tExit on success"); + con_write_asciiz(" Usage:\n"); + con_write_asciiz(" unimg \"/path/to/kolibri.img\" \"/optional/extract/path\" [-e]\n"); + con_write_asciiz(" where optional key [-e] is exit on success"); con_exit(0); return -1; + } else { + imageFile = argv[1]; + con_printf("File: %s\n", imageFile); } - imageFile = argv[1]; outputFolder.capacity = 4096; outputFolder.data = malloc(outputFolder.capacity); //! ACHTUNG: possible buffer overflow, is 4096 enough in KolibriOS? if (argc >= 3 && argv[2][0] != '-') strcpy(outputFolder.data, argv[2]); - else strcpy(outputFolder.data, "/TMP0/1/KOLIBRI.IMG"); + else { + strcpy(outputFolder.data, "/tmp0/1"); + strcat(outputFolder.data, strrchr(imageFile, '/')); + } outputFolder.length = strlen(outputFolder.data); diff --git a/programs/fs/unimg/make.bat b/programs/fs/unimg/make.bat index d05ffa1101..c9befdb80b 100644 --- a/programs/fs/unimg/make.bat +++ b/programs/fs/unimg/make.bat @@ -1,2 +1,2 @@ -kos32-tcc fat12.c -lck -o unimg.kex +kos32-tcc fat12.c -lck -o unimg @pause \ No newline at end of file diff --git a/programs/fs/unimg/unimg b/programs/fs/unimg/unimg index 2380f4069d2dba38004dd87f75d41e81bf863ae6..9bda8f589b84b14af94e16d31ca595892bb2e1f9 100644 GIT binary patch literal 10693 zcmV;$DLU3mP(w@MiU0rs00001Mv*2LLXK;4&x2a?HmIopq{zMp*0SE^(iEKIyLJEK zX1WeYpcpn#Zq@oF$je6aUV^V-BDBSPN2c(km-a&u6~pGdg%9p4n);*`WYGk9NkVYB+RgY)>@nbF5; zYD5Iwk{@mn?PvzIs~)~Lagd4wl^A;Q$ZP$=CPENN(fh3@Oq=BduyRD`^~FH-jkE;p zEPU8Hbi2tTF$n1P&k@NTs(V86Dd!bEA!R{+5D9&YS?vidI2e#@Ax-hk=?`TTZE|bq z-IweQQJfCZS7OvhDB*Cf0vAWaL+(xtM{M^)^(OcpfG~)nK#n)QcO~Wbks5Tw#xRe) zQQM_fx4ldwli%% z{AaKf>0mTZ3?$7El}uMi5Y|Nc-H=HA1scJ;XX~o(U6BXTfxkoYTp+y#DHzfO8|Da+ zp@5hk9M8SmSVVF~8>3|J7%v ze!*3gL%XYz8)2AdmIxZ4Z|8Ok$ea?BO~X&-@hqy?-R%cG!yz}Is6d{hL_TGNM~XAt z4)Mt9P|R$DS{>K~MAJK(Fe6c=R~Rd@r(kuE5?D_@|Jb}DeMcZ25-2t&xpSYAa3KMr z9ZfR~w6IAUCo$S@EsWY~Tpp|@dskRp9Cu#eA~NA#93bf1f6B}r+3rb7Qji`6uIhTh z&M{F7ooHIh=BNqeDi6U&hp<^WtmQPGfO&-q*{|71%(G(U~EYM`a+HA5U>}_k% z4drI-o3b8|+x`(aXjgJ+NoD6A5y|x|W;EX5^UPYDF&umclE-iOKVhRBu8(xS?pcA5 z9pLT{`pnWjU4`0n+7fXRpndKR83+P|#9P$RuKnRTFKhb;VZjRs_gkKs)1BB`(MmK~#q})6{iU-t$A{efNa&Z)ka!j!F4DXIV+!{9>09%g6^ON zwF57Qv85G!WG<7vfqx0e3mIL?7*4WRiV5X-&)ZDba)MY_M*&0T{-9x0Epo`TyoO)} zkARk-an}JDXA#y2s)alja;}V~rcLU)J4G1Gu2%av>E~#XpK_DmAq(Z8>k&#+$yu`@ zLH89TkU^on=g_OuCYJ5UdY{p!621}=^YV%w@bUy-k!Io=b>k1;@*(74?8mt&4 zJkI^+OKGQ_Kb2!3nxdj19<1h%-|iOC7>^a)G~sCf{M8=Er)}zG<78|V9_Kvg%3Bd! z?7^t0J(ur!6S@UuTLVP|%#yd%cZL8|eB`s3Qh8-w*Y=KXT5Ks7$VAzB{GcxEWv$!V zR^dkvbB-Ez_;XB=1$`S&!uhPo)*dg9J=qJ$aJV1;-LUvrQeHh}=x0%^N(jGv??(eY zJAK7O;kiHCK|UYLyZVdO)snhSv4CjtxP^-sgK2oh;ABqd?Bdv#lE867`Y-YQuj3yi zx)Q#BTzeDU+)Lk@ZA)@Xe7+fZjpF~Vt}SuNoVFwIVlf^7h3d;OaQPvbjrLt0fmV-r zvW{3hQ{{{k|4;cc2WcQ6?(o&a2Yfsk9B(Em4ZN1eel-)7A#HAo*^Z_NB^mH*u$F8R?M3F{}GyjILSzPDr?eeWsYM27* zp}L^MX9yw8YkN|^XprDb`XXr)W>VOzCv@Iw$ z;4azUv9=*=#U_ts+Wd{J3u}GAc-B3_bc0!l&g&0EHXh#U`vU|Hn?%}zx&z2Uc}~zQ zW*c%FZ>uN&lPtvk+-~|?D>S*V$%Z_ofz{P&+4rJ3tt3v=F1rPd#k29U;3}S3%%6-c zRD_O&@DhdT*re`oeA!7E>kn&Hmz_?c1Nub!y&22#6Vy@cz8fej$zdvv6}~H#ss05c zUdY*q9{@zE*z_n!1_AlxaX?@hwvTny`q(*r$jy#kf2`fT_7b+@fBvx}?P4)*-&X^Z z!4I=9$iaj*TigovwA;88wJ&8II{f+XuhZL^a!1^)#_CZBo0IpCEX)V~v<(l$a&bU? zxdCq^y(hY_Jb5K>W*elr(zlsP~Xo^=l_eDAAqcHPu z?vfs!AVh%3MpO00uo;incFWop;D?8CNigWl{P>tRn*l^E8-onHNLwVE5?v{k=Yr+F z#c!mg6Y|6NF`&M1I4I<&Xsl{+WJjfBFBY$BkgrlBzO=}b+*V{v?7&VyqevI5>DV)I z%zwTTQ^Xcu{pgNy48;z2jPYl@BA*>2vax%{mNF_Ms(D_|wL_1?=8E%3b51Tq0Q}Dv zMfBa4c$3->b^ph(t0NyXxJ||zvnPNajEetRmHL%yr`xE6* z%L>>X@*Afq?1NW!EfD(4m}VcOW@O3qys0Wqa~|fOjEUiHz_I=uS;*FGa?a7`F87t7 zM)AV`82nF*=Cv=~X(#Z}b9nPB=|VoGe<-W27J!o_5GV>3r*P7hk=+XJ#4Q3NU75Rg z^>6J%!G3=geE^%GtgrJ^GmBG(U@T3@x zXMSnEnOuGm9np7eV(Mr^#rLZ{l|V>>oxSsZ-dS+=E-%$cye+*E zhSd+e=7j*NsaZLdf@K?(U%79BYb)P zq}xCzghyxZRUOFM>vm96h1i}RS@+i7W`X}771U-)+p!el%XMhhLJ4H=$p;|>6VL}>&lOPvhV8C^L>2&_p+2FPO_EENY?iKQ6sUPYtEeYL zE86j6-&sCfBAXmN{Fj$KFvfxqk1z{zB8cM9weV6)r^#)O zU6Z`Sh0G-Apk})0nvOkSK4}bK0=}H#ofCb+=BC2Lz_n}=DXTjpNv3#iOV|nBuq|OI z;1dr1_MY?y?wgShBIdhJIhRnwhyS9`aboD*sa62M8l5s@FXI&H9HqDgS{(*Sc>K- z9sJwhM{7OHkDZ5+ulJNKwKOJ8zlmaAg8;9d*e(@WM3y()-KSUF-hcl3P|i?&JE}N~ zw?6}l6K*MwdWD=yU=;@KRR0`&W&+b|qugt}ZG1~>yJTjekemso;^oAf$JhA}w(W4I zZFD6DT;x%WY=}723aPi3u+@YM<3u3mv^qlgz3cahWndmO8e)0q{D|BCEA z-bFTH-X+{P#lxIJrHhwx=0b;}onEetuK7_&|IyZYb}GE-HJE!Oh1o}Lh^e}o5Dw$$03^yLkrpqQqwe-a^lIfGb*C{*H$vno@*!y?bcOyXGi z%jcDyCL}@R_cVSn)70#UvIndbF>*h(Cgl7a7$_u;1la&fL?LllQ{$c zHY*5xI1m+#P!hLCu~-lz6oCR`OscjvHf$+eW)eR6J?#(F@u)u*<_PW!1`#b+C2=Dd zlcYdb5%9T1yQ>?Jv<$FsesE9&qn^5)=W_8bB-jxW2}aN)Hn$~?>_$}91dEUil_P8e z)^xxeyy&1AE_R zppFFdHkKl|7%NLaV;;EWv+m5AD+H60y9S0F7dPS#KtOt4$c$sh9<3l^t+gOeQ&_*^ z_b*bvsuK0S0qvw>olZwJZAbi4XS!C>^OO@%XE*HV%9%KaG@NNbZux?=f}fdcz@(zr zn61`a{Pq9a!?+F_4-)Bu3WDuo6zkV=!pYLmF;z4-to9DlXRl3!uTT>3cjL!J7M=1^ z55oR)U?i9j2^T_(vOlHSAG#!1U3K{W4=Q%&vB&0k`$EfEz3c}glpJ+dL8J!31f2_J z@pL=Z^|%6YpjAO+cH^}}G^a|I6K8gvcYC|__Rn_i;~1DobC&v&cC)}AI?8H-iLzJd z!ft45%;&I?HTY~RWgWpG`(BAi3@xCZoc9Z*Ln@agv$$rm@mW6%c(0zIv8sZqK4isgRfZXZHM3W zP}*u_Mo36W0JaLcvKEyO-)r+`%NbimD)VPf)0e3keWV{WjI`EF-4q{f+EcDSYmDCv z&-yB>o^UNxe5|xe2*kl?fPS%%Ch%iI3o=<-h|9zruAEoKd=CFUIj{;o%tDD!C&uNu zoxmc0S1H`wN5fgXp?ck=~gh0o4kJsv4HN!`~X3 zkKcQ#S6z<>Nlr=cGG&tiD%e_#V$a6}#rz$*Dp%>-e@y-ltRM|j4?EQwuMSvGD1+)` ze-D)+3|rqvIK$i61_2}aB1XIL3j|nCtov%1;*4PARyRgi)odiOtv%`CrbG|zWFP+h5QX`I zt3E$Y@W-SYApslFJhpWQNezGH%)k)$Um^{si)wg+nK^b3I$f)+MK}eHeY%^*$zN7J zDI@TfE?3UV+vI9ln>zSmq2v&WtQ++rF9}I#ZCwKFCM!k8R|1 z%q5=&ZC|cAZb2yQj{Gw~dbtaBNkn|yBu9|2tkmM;M~}#*4S=nwp{!(@GBdHiCODY< zn!v$Lhaz$jB6W-HuS#x4}O^rwKLR8If@q3^HD>n|L=@aZ~Y#^G7iAdoH{zD^7hK z80=wL8G0*sl!6F$#HhO86GkJ}exPyHf)qBCyJX#2dl3P4_d>Hvy+N~2p5F$9-x=~@ z7l54+;{vsaWK>c#t1e4W{X9p~6=Cp$q#rHKifj|EK_`BUNRHd*x)KDG+pXB5T%f2P zU+^<^p@Il^QUIH(J!U}>40)1@Fbu$Y>CkmzC5gMOXmikI$+C^YG|-H6PG@k2(4zmu}y4>!T}a1pZcmTOzCSdw{D0S(LQk zX&x?{M&IIIwoN4x!3iIz)TxH%%_}L4BkQ@zmdkul5b)o*-Dz->Yqvkcl`s;>Z_wIR zQa3`2m2xTmfSm$pCAdapT3%PajSB|!x2|0 zzgxy%9OFXsMi?@Q?c~FyX1-F$;+~5KsHVD4$a4u)(Ow*z?8P@@!Jp3hL0oOA zz;bl4IVw+I(F$iwgZnEq0bJ|=;xHuEXPn|MfP(T2Dpabt8oN{Qf>Q4ucxn*h(yql} zJ`BZFCqzSr@3(+Dv27WNmPjBrK{FGZm}q^;!%N3IjeVZ>Gb5G%jH{OoI4|UJKmctK z-Xmo#G&XM!`hy;pkB9lI{Ia=efYa7M+jx(zETXjp>DwqWF?DKFc8rn+jmq>pxYJS6 zWCw{Voi+Wp12T5pfA(i|2!kSx#DarwLU!U4nEyz>+IN_EPCoO7afe$;(G1t^V0;E+ z^6ckX@HpjGGHtRc%EzoP?S^riMRkl;N7C|q%^Mutl*1co#=H)C6k-a9rZmvV8X5|O z89jChuwB4QPHSYi9uHLzc-%<=v3M+Oo7)p*DE^6aMc}kRK>aRF9iR_qp+{PdGl#vl z0a^hDO@$%xwE*trSJRGbny0mGG=MXXXVK{DZ1xtut+!&=FFf{{W1=_+m@`zA{GTD& zgtylB3<{|&avBL`aS@MMRF4qrB1yHW_49^-x9@XHnZ#bJ`CvwfT*7vxa;CF7hPwR6 z^b+C?nAjWhpCrWJ1jG4lYfX3I|M3UPr(aQEQOkd8Ji7aJu$ESJJ~R|C!f7tVPinqp z9{(lrQ5IBD#8KbMsf`Ta9>dV4R~pq;Q&EdW{QkaF$!(+X%@k+Qfl?f`zCw$f*j272 zZtI2I;cTPQ&8^K0o>e@UY!MZUn-U62|W9)b%KpB_6XsK%wz8(ZBf$NUa}k1Z zcTadGzQ#`x(M*Ize5BVS->I93ego%A_pEkX*496&hyxfxV&F?!_9S(73H3}gQThlZ zbtVyS#uC{Ai8&JfQS`MCLk0@iTm71>3oR4RC0^pDP)DD=M(&o@b4tC+hbvwI#ER8Z zrh(p^3S|JPrdBSWD91LCBIY5CWwuIfoCgUVGZB5n4S&LVQeFYaG6Q)FoeVx`=<31y zzroWpFEFw|B_u49NZK;Q$lu7ImkeopFGLZd;!;!d&2u)JTA!iBP|(fp?B?!h}>a7O00BN%g%=M2rM z!CxoRXU1t1{dHb&;hIDyr<{}DjXsR-I+!_m7?SpPG38O^!49!Rx(w0q{kZ9(kRu`X109yM3e zi&~?L;)inRw9(ba4+n$#Q?3WGKmk9Jdl6T~CwQmgu>1ai*3Yk6SGrg0xjGk{ughbLfLFEBbW+PH;gFN-+P&>zULaPhH}> zRCGqo?aLMMi8>9~7%OXTPty8Dkb~f>aJzY>zAdEG4gn(Mz1MIQKeg@&aY(QI79lvN zBiF0fgAhM=3JHSMTvvM_-CcFp;K6px3JvNmnyXI2d>_4=c@&WiUxw$X4zZg&m8U*TDLlzZxt!Qa`F|i067E4F#KvblI}eG^z3=IDV;Bl6M;d1rrPNg3Cwj{S)dybo@z8{ z5jo~%zg1a9t<0WNSg=Xz~77&(On-(z-btu93JfMj>bE5BFaccd?@in!as0 znjEY!O#47x`fZ1RTw@cTk{VIz`H%$^i0{zd*^FUfsU;PWAadqQeTK{ut&{8Z4s%pH zuC#_GN32IK&M2p{qL1>bd%BgO?GxlCqR3sx*Nn^MG7Fjo_=}`*^y+OeTh?)pZy?b4 zJ0G?e$qtlV%8lRK23xpIf1c?i7#H2L(*)p;vHxOmpxPB?{PxJrPWkNslwPU;ai9T7 znB#k8q<>LpJKarxKvIPc^kvO(4P{lyA+{wZvSXj+h_)OrFa>SFSfSxRn{c zEFYdSyC#>f!L(Ref=5gG*E^t&>kqf^-oxc%I=eo{shpHfJt?&`QDfyuKg!g5a7{S*o8xG9?+ znMhvC1R^8?>Vue!cRGss65KikfP3S05ru#0ErzFM2v!q!BF1?N5)YLTROzeGNXr+l zr+(bPt{+5(nnSEmjX}lIV_BL7?1ZN`Ni?wbf5)83{z0t?+V9Ghx53;^}GjR32!ZN8ZG6+o|V8f&1a}d>C}0o^o+tWJQ(S` zW>vYN_hs=;8I?N$`sY3avCEU6Xs$y<=Elk~N@^HU;xoR+Y!=xXxItW$ft^Gq3z7FI z?jHds9S|Q^_0AwLm^wo0o6cJ{cinu*r?EHh5H{YlIX(kh%tVgyQPG6HH`nTlvcWwk zerDpcFvCJj8aS z_d6{&MaRhTGDuwuNS8)})l)k7gc|=eLTdNU$K4`m8PK)oxba|Gh%uf&LJ`y!W!B)D zn`kJtzNDdPKIP)NsK)i){A&gx* zaz2N%xAOY%QyX&X-1c&o?zor#=J`lD;HbgSVWnB5!FE|4t85atFNkN(nr5$6#1 z3A-L6D!SGMfA?0RA3vYcy8@_B zUfpW1$7RTkOg{yQKFQ2{^5UWWO50 z9+H(AXR+4ws_dn=o|+Mj@nc_0AcsYOgy}&&NDC!H`$v)yzvoMGjzx7>fjooPZ)!m% z1D;Vz`l1QXwv4oo-+5*V)yW*IUkWQiplzku;ExA=$3N&(q$xvqfL~VZ|LdfWCb~9f z>XK)M0or@L-v)*^@;fa9b27ta1O%s(y%RBRnE1eZWtSKwYPXy?f`OwT^HB|V0AL#d z5Pw!YKIXhRTPWipR?SA7PqyW#!Hi_D>xcR$It50$?i> zPa?;OL`9)==EW~lQRSj+q3Z&~ocD}wS=8FgG`iS;s^OX$A+WOmXzljUnj7cMXY{(Z%frf7pXs; z#!U#_y*@)*{p!mWDj*P_gTe*O-JsuFurgq#)$gZIY>9@A%*pM0&5skq5z#( zX4Ge}F|Eo|LQ0ke`(?hsEIaE@7W!Xl1X(-=Ehns)GG~+{5MOZUasEtC7G{dyJGvT& zX7hhH@VC71v@Q%9udi#xLu%(s(;f`=hGV{e!EX))vH3Mp_L`ln2BG)dAXYalMIh}y zpqp2|E(Tzq>r0AXw1NRXqyvjY&QeEmf2W4cl$odFmjvn}p zW+cj>Muv-;SC??B8gvLv{{xpKWHM{jsa_era)-7Nuj+@ZNX<3D=d2P5iC14OfusJf z@Zn^kDnH~f9LAWB+Pkkdur|1dB(uzxCK~t_!oEK5S52V!;OTFSBn-vxxNR0(Z3Lrd z^3{ZomoliqMs|&hDq5@lmQjO;`YPrBo1v{J{6cLY zR3}DVk^CHtpcszB0QP8M*E%4Tj&bw(EiJpT@_^3Y7`}9-;$KT@g`nD*rHh)(j3_@$ zaiuFRdQhCr>`1Lb_1Axo=&g?abL6^8OFVRd;gFfm*!+$_57kU6(LhEmp|k>Vq~|NNUg>K2>kVmZ5+h}Ev~7*eTB zv`3@hZ~*sPmgv?QGw*zSQy@_hC_ZRi@yS z{eSt|4zOK#-?Xe&6XKtKRK@zrp!ItGsEurY26!R3lER!gP8@~;DZpZ^An*h~bX?bM8^jW} zTs!m+fiQA9FYrTd9`FolHlgx3mVas5l1~j+fwPN9tJnl8();^OREeh?Plo@0kA@Hh zI3X9gFT-9qgn|_Tbv$Hu{&Rb;v_JHmZ|9a;(5YdLNm0E3oI#k&BJ^Bs8pdEpJ2K(D zL=9_DI~b=BbFB=05%E2gI(Dd%>|@E}gce^tz8Psp3@qJFqb4{1(!Sj!n;Q4`u>9}y zmh!Q{<96&Lp&fkNE1VKZP^cvt>3GXp2J1Lt;&UwrHy1WF9y-v(GlR%|g{{^Hg1;Li z6N}U{K~OYAt}gBusxE(y@CuIy2;84JZWwy;wy+n9WQaxXWWO#%ryJeIF6bKbAI=Nj zz4Ha~v0U2$cu*`PSd?&BgN#>!Bp9Z8-5aMe5&Zs#*5hZ3As^+3MgFVpBpwTDzmK^u zxJ*%}4^G&$#_%_E#@03M$pi!}z$B~08=0{;pvO54uQqo$E@G_Zp(Z|W;wm+Uk26RHTEpQhLt#3Z~@Ca(}%nv;JK<0p}XknZfLi%=Oc2^WHogRong zTQeFqO$FlRL!a3-(1?rsM23RA=;Tlbe0y*tJf!UW4Sw7ps!&un=#KS#Q%q&)$We)p zr<DQ#xV*QYmt{RmDOd#4UO-(g`;zIlM(a+7!u$YICG2u-)ix z>Rze0HvJals=n9a|1|t*aQHVodjfEfW*erH0wK5iZW*NS4iSsHiT+!}JOoKm@}$E$ zuFN)Ezyb}qg=lzJA#`5z$@D%2-E0~?KVv{^NH-h>`9|-GFI@Ow=}mkFnl{fe&bG+r zx|wgp9gwG+{Y$A1)gHY*Cy?)v^x9EojFx=BGw1jgMiA>_X?Kga=(%~rTlmQJOvh}B z0{bNp5RY26a9q=APqox_+`PdCP$!F`l_LDr(q zirnU48~MR3L48abmZir}(cCSy3F!s#r(>6EGBEN|Isx6K=>$c0+K!meverLfEmr{a zO;1gnbnZ7hNDk(fSpPprMcv!iU*Ejk#Dv4NA=G7_X_amm?kwyubWkbav~jsaB3m(u zQD*2AZ8j-#2*tnZ)EH(Qab2zB0(Yzu0{vk0PY2^hKMr5t6j$?ZZg6!bXXe zN}cXf8}A`t07q|5QhK;LFJ~P1z{qFV@$kQ|evBl5>O+*mH7z#xuKS9Jk=q9u^PP+9 zeRHuL!k6*thg$j*<>eI5_}d4q^}Rp(z0kI(!w&9Af|slBmM}610m*%3h|ufNmzRI< zE1&~mD#M!cj#Bgr$^U7l6*Fv@nDXx)jdAXyz4+X&Nwav$U)WP-zw&$aWg0L^#iA?( zc|Z3B;AsW8TuWq=5wK-zXX1||g8`Re5(nQrkvvn)f`S$V%&-%I-(R$~o|%Zypkp`W zTWy`xEC?yx=&DSXX0MCj3QF-oNLD=cvAE|GWP~gJIK{7>JZbdTG|%~w5vGiBt5T=6 z3P-L}DYDwFE|vTZ#I5L^D0*c1iqNVN*=AJmGplz@kUH5|sw&{y|WrKIqG!`8p@7!uAZX2tsRW zrAs4vzjsKWBYwmXY_W{0(v`wy&xAlaQs2lkeZXp9JhHahU8=Z!p7=~@8;!MvRJmzX zS<8QN(Oxu#+g$T7HcD?Jm8s-!mmW^U%Pbt}99TN4m<}j@uExyPX54$vWgq~-#NsH8 z9{Jd`3!6B`=NXr}HFa+86#=q2Byo|y;;=QjOh9IsGV3T8|wSr-UNH8xt+#^i+ZC$)oqLtGdxshA3RjIT%g zD16}baV1I6@`~9%9qJlBMDGBM1pEz-fTc)^XVfSChcSPCBj47s$5N$dvP z3W)JsX%t;0fvU9FGmJw%Tn$dSA_^KY@;SmLw$^J1N7irXwHfTaMM`i%khHAvbF$rO z63niB+lQGc@u3%XCsVTms;M8uCV6m@x+O%Y!d^x2;LE z`MZ#!VYL&+4a*7>wLh%KH!{P)o#7U4L{mjfQcFyY3x-zE70>dVE|JQaN$fnXS9|c?j zw{ss%^>-q*Um_K&9FUSl`lJLki} zB`J3nLPhBwCpJm{k&l)F_eW3w-Z?ktZcncvbos=gE>AvdpD7Pp8wS#B`#9O=tkweQ zVLZW<6F8K5jd%xtQBDa30xI-e0ld*tg!FH8mnB70z5wu1fI92=S>^G+rrM4!0Rcs6 z+E|!Ykhd=uGScq~0#V}33@^cfm z17oKj;Jg2Seo3uoe?h}40nE2~VG&clj@-%YooES9GdNjk_w5{|U~GgRqRaB;9I(rU zlk^gqik!UFEn}A2+RTD_H9xAAZ0-#@*c9%CSRf!~8S5@OepDCMl>dUzUV2v%$|Itx zPp<2jNWa*Vwr?F>yK(y{vJAj$k%_y29#@g8gbAm0_PDK)@DW<)O)+9Yc*Jpwm_}Nc z`ab9RoX)!B{bmqffML5i9++PiiIGvTMNrzVtG(r=;r?ym4{u< z*&-Kk8j~Fi&Ls5djCfL;wXFH@67=SfHLC!N^h$yD4*h8#I<3GoXa{PecU6_>mTr3I zZ8FJ9>|t;q_`lQm)Tq}yQ6rNLX}ob5E)9L_?j^AKKYs8&B9#$KEzy{Edg`Qfas6DITC0r{9TLPHQojNG=Fw9%T>RGqUvGe(J^3tLN6vn9#GwZe;yI^e`w>KAyEsxc}UjMl6uDJHh^l_+IHV~R`Qh`g2i zr%-hC_r7Nf(e}&rfr7rkTU)4yXuxv^k}%8jmx{Od8BP`s=01Y$OB)Es)u1oqxdZh- zk3*{i6yAa-+z%pf@FP;uShv;d8;#Pl->*@FSUkqMRtPF05 zR%m%JE6T|()aDrg+OE=tzY5M;CYCoia^Qy#9Pv)IwqZ^&LhPCzH`CrL&Jc4#gQ{rp zsm}RSi8>8#RqOczFI}h(&?4Uu)$oaeb@fq6012ny7tr`GULXa#N~$^`Ey`O9%RJX{Qs_FZ?}EBqC3` zDy9~A!4f_wL%KJIe?LQ`Q1H85B)$Cg0Lk~`yP4enJe4JeE=ZaNIVHEwGj)O529oxC z;x?WMNjs^`B;DDs{mLQ^(Jli1m#F{~dE5+ymg=1HbPZ2cs4wYwZv_qtDzleIo{Abt zj`)ZJ`0)(=q)0Bxn`a{uk7WiAiSoQQL%@oDTOla3e%lLe^R;oL;V`#((bGZ)-z{m+ zZv4_Kvlfc&e(#cN1w8jOPVLZsHR=Z0V$LLOAiw-L5byb-(2f_Rcjeu`_C54UZZ13l z|Ao%qImz78*ruqwpVTG8NK)_|4}LfNB#Y&mihR^K{7i1Px3*Txb}f6;ffFu-@IZ2n z{@{T7j}Ib=P1#(`V|1(xPPw2q7|-+^j#A>RbsHg1Ifrl~hVD|d?P?$mK9SEgX!TRz zy6->7lk+H|$JC!`^C}f(TZO`#3O&~d;kYl&G-!etEyQ_T_`G%-`CluJo7gL5 zc7`tQ06$QV9%BuVGmi1z$}W?`lwWDr*DYzajFEG(PRLJYg8dS= zBg+QkK+N0$dI07_s6GmR4w_476wvI?5Y<|_*>LHs04I>Xz4LYq85 z0JvSi_d^}$zKU*S7sLuP4~%$x{NG8Lo<1a7&J^;bfV)FZK*aYV&9?XC4H@+J27OgY(yJ+ve?Ex^Yul*UW2efLWW) zIRpjsH1<)h*`#XPf`o&T`MzvD^q zyV?A@G9<(FBae?4C{=XN!mMlL91HUggl z)4TFA)@bIm`z;HvJ9X0t(kX~@fP^+;N627D2ScL||K@C}{*1n{B1#{?om%y^vm3Q7Nz%3R{{-i?n>87lwX zttUv;apg#juU-#Q?MV^mAnq(ZfIvCj{T>>exap4gA%@LcHY!uO7wM~SM(!$r$lFu8 z^&HNcWC_Q<#2ek!(d8La(cq+ey|c3_8SU!ec^fAfd32UhtEkK4_^BjUl0|mRnODFM zC*9`@X&0@A&N{HOeEB9@Jb8wXU7^FblYDku&_>Xf5lK1Yx!Cun#2rF#pH-FZX=Kd% zc20w)B34kxQAB@EkU^O|!0?c#|0c9cbUDZ3CaU*Y% z+k&8ijRRcK-_BYSa&OK0PuCLT$$JV<+=Q4ec4gW;0HFttGjD7b{}MHAZv-G8q5iy@ zoqCeSWu`Z8BaxEyenNW=f^xCdfubUBfNCVvB>EbbPA%yjm`6X%=IaOcpyeCWE47d% zs|?R!UN;9mM9{8SUZ9Bz5?o!VQ_!Wb1AwsblTz34W49FmBz-j-9AH5#IVWXqepZfK zE%pk$S`QH8xS%Y>2y>JibGSa1yF}nfEf!i}v)PI{iO?5tbcq0oWo*Fb7H(5&c8k%S zmw6$_n=9e&r&)oFDUCED0Drox861mflKh>Lr)Cc$@!%R=ce(0lgsWm*9{S^p$0xrJ zkGC=+?38wfC$F{u(NlWjosCE^{%s^^nvsTw;5Kv1N45Y(Vhp4E4nxNR68ZKP&T96L z)aE#FKDb+1$p@`s*(lKe8>TSFv$tyuu#3~h>(LId?YozJpT)Z771%(XZM)wnzS84c zdcJbTF8&0Tf6JSO)vdtZ{DLMyp~}3PM=se-F}T>holXBPhgZd_-AEvlv#x_Y=bo(| z^NK>J=qO=qn^@Fy5o6U3ft%eDv)j1Uwq71lom^b4c)Gms6;=@)-zP47O^ZZm_UKoP z!0`l`zz?sKDN;bvcI!MSYW3aC3m?XQnn57)S6A$EFC$wcJ*ZWK1XWSpA}N<}e>-|z zY+IqhC7s*J3u2V9hQvnrh$pwGQt&c9#%^q7a^6alHjSAU32US>!_6(byD!f;l0uq};s|ORR7*e&GqBs> z+LvGdhV@o`e=N6BLoIwQ2`K^02nQZ2noIc{0&=ok=JqMA>MCQv(O);Mu1A+vd2)=eyaSwVKcr~jo6U;*~{m|ybGijB~meL`}Ry-c}*tH_w5$FSU=QVhA_!g;jzCO){Zw`3E=2Xxcn@Poo#`tH`A8zT9Ar;quOfg1`) zhq3ObP??|!xA>Azs_eUkoM>2K1s`RcdFJ!=Y-mb+lZATMKgEc+eG|w4$Ti0u988L; zc&n`5^;to_eG|o17V+ZN z8wADG=K2fYY&H18 zOQtz=1Q@-1k4`)?v3^`8kXFLz^-nm2G~;ad{bl;V3OEH9Sbp5@;dUS z>h5QN#*gfH=TU;L5WlN%Tiyv9M(&~=mi28ChvoOH>AmkdpRou{UhgG_#7l!+9#B!VX)kIO*-W(wCo@ec zmFu9pnUD91?;YHl(>*tG6-b@FT3l0UroLAyfcd ze%03(IA_Op6S!$>m8^q5!*1f$IpH{Z-SFUT9@g`VTpv_VgLd1w&!2pE=H1hl1b=a? zcQEAZN)hCM2-I2D@gGSS?6fNxmco!lsbxJ)*e!^xkJjt^GM8rNx&kg{bS1Jf?V=>! z$RIt7Jm)N#2_}tUOpBZ-{CqpDd#e+N-{?xjth!Ne8k5k zQ3u2I$!9|3xuAjf@|p!u&9>3kS_1Jxc@AdANJ;oO%5IiFrfIj^J}V6;P9uh~k0iA} zQ6%@1U*MIhzph#}Oy~;src6EoKCAg4ZcpGMYwYqwv~HR`yotFS+vLQm;I6cpp!*O`a4@g z^hR{b@uUAyTMBT+__?X`ieIA%oR4FM26~Vj_f=lO2XN&P)5ZWOjIlRcBQmiSN&mi@ z#DB0e@gP4$NdNm%UAGVrP)AWvXCJ{&JV2 zV39X&SfHfr{Kj6{;eRtljy!D$&=Yw3>g3fA)Vzj_Gq_cr_))zuS3wR9FPX?K-1u>T z5f17s4@SdypBCUc{X6TH?3>;B3*9EIp#rj&pK7YDt`&DYP!EgdX2c7gUW70qC<-$E zw>79JgUD+6t}~gqV(8BoUx1>xVIE4uIm5Le6#7w0!s~eS0u$(WJde-PHXemHR5fwZ zos=jNC3kkntt4K#Z@XW$Gh5~XrMqtMqeeAvz04ekHNpxPnufXi8TI)k{i*lWM6Dc2 zi-%APHv|NZU&Bt76?FZJMm>Q!+-la`K7*i*3U9b@3X-JpGjY^g=_^+6DOgTVBuX&f z<27v&7d*bMZ5h~<7)kv3=VJ%$A+ExhD(^ZEKaeE%iRZe;ZqGu!;6nr0tHjj%j>s;j z6>TOCC$RJTD6#a6FYI5e+u+Zr!%d$aG~1}pYFl`ta44S`n<@23QLEVR zt%dyWzG9k^JU2}{r_9sf?rRQ2Id9|AiTsmj=hs>HdFti6`T@%wwm_+~Jj?*OmxZ6V zLT;ujZIPhFy{{|TlIQ!6{>1wGBMksaC=gl?ycHhlKOnh|H(2f#Of78>AO92%jNdCL z<+J0Qy@qj?*Cr+mFtz}ZAYpNOha|1Y2$)~_QINR^sLD!$`CvcUX5OLItsw3+G!I$J zx$u8`OHuT~GQ|=SwU=uXiOdFb6M}E_IJ^K%5|HX$1Y$Fi0kWg0uQUjqOJe>{Vxm$3 z8C{s03s`UJ^d;gd$TQ6gbwn}vY#%O_VC~|h`DWk%&7`fp9k$$%|8#zIEK;RTLe4w3ra0#QU7> zu6+ndla$=WeDlv&EA4~eC%&&z8&*(7kQejL%l!KsXPsFyS~SY==a~;yARY{@+^a7= z-HzKcOS%i<==J1Xk;@M%i=zQ{IT^k=im_0&iR^YSWk8t#2{(sxiGbrh#d&_ER_3lA6|!;9gMeVAqQS%% zT~UE_&B$;qew0)TQpg&IxM)B0t`tj1NPcIVG6ylRz7RFC%AD~2L%al`*Dn29RT7Zq z^6>+<)bTS_d2skbbTwl+Q|TZvw`PbTZ&HEEM&eND zP{K|e6gpF{NdM@dnNBs-a-#;z%70R@oz^omRmak?>l569sdW}g@%(FJ6l@M<&m!dRsahur6; z5b3Nj?$!I9`R8uqn(a^2dv{G?y!aXclakiz7srP+G=dOpX#ILsanZ%h-m*W^2;FxE z_}c+9+xWRh^O$tUjae<2m)rqOJzHn`WBm8rBvW%PF3kM!vlJJ6d!wZBU5W0qXKQZyVG zFiV6{CMqC6>SB=wK(ns1ZVb(yT~RqHsRgR&SbujPIZo#`^9*7X%}~nw6YUq!xCPNJ zs;Zk5KB^fQY599?9#y3*Llgk!{_Q|OsKuuevq`n8^A$&|Cr@WHIiU~iJ=92&%>s<+ zBL_zAa zv=<VDW)Jvxiq8?9M`Xj`;_=k^(;-r}27McKy zu9f|%&g{>P)(mP3VreqpSdrxe4g--BM)P;pIqC z=r~cU?Bk|;HtIys%2T4S+`jA&H&#qZK?Qm)d;#{_V1SW6426XwpFORsx5<#|XNpTK z4CX%uWYk>W$=+%mxO5V5-8%o8e%tSJOGMWinKQ;Q2OmDHesO={wMUjI+0+J_;vEjCLw@t{ytcj+;IS>>-LvJ$I+%@A@7kabzZr7X~eiC zcOkiJPOD(GWAlZn4}=@E7Uxfqw8L~CmV@#O^F5x**QyCdS5E(40%i#AL|!VbsFRXY)U5}CQV_}GbFl<%(XqAItj{EQ%&;xer+gzIs5r0{t_y*~hi3zx2f4FhJzql~ z8)ggbl;YTrN!3CY>}bh53WK&L^Oa#p2wpMX0VYd^|96_^w*TeaiAopI^Ty zIY<{zFka zpvIQ6j!kLMA1M1*cACxA?qvn&FzDAlJrfMMFA9XqOta-e8T>BL9$y5U&r=;s75zZ^ za}~!KGWK46yQ#n{au0a5v>J?RAAQ@l?Xt2e?u6A%WbpHrfjlUv=TyAUV}z2+Zt$1t z7&JshpR-ii90Rruj3hk@3eg{L>(UT@JZjja0-plU7fTas#x5aNtQ!xxS^3g@hHyPv zeA>)Vd764pqKvWt6P1tr+lg;;pHa6)92R?$iLnozm4+PCua2M5u@Rw-+24k#67=In z(17=hbJdHdTJ;O259rOvR2^ca&;I&2%2^F;OZHnorbV*$4Wl*&BNXG^txhg`pKoIId^p#X}T@+KZ$_nC8Z4u<38dVbN-p^I*QN{kQsj(5Vvo zUo_?6`50_vzu%>`BUN2TkpPv`c)k6)67CQTAFgfuLVqUe4Mmpe-G!k(_(3t&hDMTH zMSCVpzf6?zkBE-#Bm=*nIKg{rVcnTFLGS@O;qg=8ZNH4y)bdpy^nqz0(xgDArydr_ z8T?&YBpSdwK(sx)55f3r41eJdJEq#)UhkBu-XRA@T*@q8AR1PeXGq!TcGTYs)2nO- zEPr4Z7n4K*`ehU(#3pZ;8lGxT5?5BoaLx=XaAp9K>X^q$EYQ^5SYn8_8R+|(R?PUQ z!2QH-6T6_2p3Uu%FjV!`dtTTW`lNS`VP=Z>cF_5O@1YO2xyZJ}WX>fGsZ8j1vX zw$4Lu5t-8RwU08k_06nXByf;PCjtF{0K~!7DA$79npglNTdFt#?r7}9?_9lB&%qYO z7aR18jiNJUpGV&C>qho>n6Y5XV##&35oA_ZPs@`4^?t%)$yO&L7QM*nD5vOyh|o@C zt33$MR2F_(=S0jI{ky#*$uPVVh5ms+P{rFTi_*LKBmCf=DHoMf-jkaM&!w+i_c z_@WG{7G_Z2fu6m+E7=*pCJ6=^tp?9Gm~7+dtfRQIyo(7-A|x3Wa`oV6<$)S(dDEfp z(e0R`L_WWQQK<&kts2mjdY`D rvn@Lp%Zikh5B0DdGi{b%{>z{y4B^)jS}JP(x(f>%)1xapNt1wJ59+8V diff --git a/programs/system/test/trunk/test.asm b/programs/system/test/trunk/test.asm index d3a96d2718..cfb22d0129 100644 --- a/programs/system/test/trunk/test.asm +++ b/programs/system/test/trunk/test.asm @@ -10,199 +10,195 @@ ; Translation into Russian. ;--------------------------------------------------------------------- use32 - org 0x0 + org 0x0 - db 'MENUET01' ; 8 byte id - dd 0x01 ; header version - dd START ; start of code - dd I_END ; size of image - dd IM_END ; memory for app - dd stack_top ; esp - dd 0x0 ; I_Param - dd 0x0 ; I_Icon + db 'MENUET01' ; 8 byte id + dd 0x01 ; header version + dd START ; start of code + dd I_END ; size of image + dd IM_END ; memory for app + dd stack_top ; esp + dd 0x0 ; I_Param + dd 0x0 ; I_Icon ;------------------------------------------------------------------------------- include '../../../macros.inc' include 'lang.inc' ;------------------------------------------------------------------------------- -START: ; start of execution -red: ; redraw - call draw_window ; at first, draw the window +START: ; start of execution +red: ; redraw + call draw_window ; at first, draw the window ;------------------------------------------------------------------------------- still: - mcall 10 ; wait here for event - cmp eax,1 ; redraw request ? - jz red + mcall 10 ; wait here for event + cmp eax,1 ; redraw request ? + jz red - cmp eax,3 ; button in buffer ? - jz button - - cmp eax,2 ; key in buffer ? - jnz still + cmp eax,3 ; button in buffer ? + jz button + + cmp eax,2 ; key in buffer ? + jnz still ;------------------------------------------------------------------------------- key: - mcall 2 ; just read it and ignore - jmp still + mcall 2 ; just read it and ignore + jmp still ;------------------------------------------------------------------------------- button: - mcall 17 - cmp ah,1 ; button id=1 ? - jnz noclose + mcall 17 + cmp ah,1 ; button id=1 ? + jnz noclose - mcall -1 ; close this program + mcall -1 ; close this program ;------------------------------------------------------------------------------- noclose: - cmp ah,2 - jnz notest2 - cli + cmp ah,2 + jnz notest2 + cli ;------------------------------------------------------------------------------- notest2: - cmp ah,3 - jnz notest3 - sti + cmp ah,3 + jnz notest3 + sti ;------------------------------------------------------------------------------- notest3: - cmp ah,4 - jnz notest4 - mov [0x10000],byte 1 -;------------------------------------------------------------------------------- + cmp ah,4 + jnz notest4 + mov [0x10000],byte 1 +;------------------------------------------------------------------------------- notest4: - cmp ah,5 - jnz notest5 - jmp dword 0x10000 + cmp ah,5 + jnz notest5 + jmp dword 0x10000 ;------------------------------------------------------------------------------- notest5: - cmp ah,6 - jnz notest6 - mov esp,0 - push eax + cmp ah,6 + jnz notest6 + mov esp,0 + push eax ;------------------------------------------------------------------------------- notest6: - cmp ah,7 - jnz notest7 - in al,0x60 + cmp ah,7 + jnz notest7 + in al,0x60 ;------------------------------------------------------------------------------- notest7: - cmp ah,8 - jnz still - out 0x60,al - jmp still + cmp ah,8 + jnz still + out 0x60,al + jmp still ;------------------------------------------------------------------------------- ; ********************************************* ; ******* WINDOW DEFINITIONS AND DRAW ******** ; ********************************************* ;------------------------------------------------------------------------------- draw_window: - ;mcall 48,3,sys_colors,40 - mcall 12,1 - mcall 0,<200,292>,<200,230>,0x14FFFFFF,,tlabel - mov eax,8 ; function 8 : define and draw button - mov ebx,32*65536+10 ; [x start] *65536 + [x size] - mov ecx,75*65536+10 ; [y start] *65536 + [y size] - mov edx,2 ; button id - mov esi,0x6888B8 ; button color RRGGBB + ;mcall 48,3,sys_colors,40 + mcall 12,1 + mcall 0,<200,370>,<200,295>,0x14FFFFFF,,tlabel + mcall 8, <36,15>, <88,15>, 2, 0x6888B8 .newb: - mcall - add ecx,20*65536 - inc edx - cmp edx,9 - jb .newb + mcall + add ecx,26*65536 + inc edx + cmp edx,9 + jb .newb - cld - mov ebx,26*65536+37 ; draw info text with function 4 - mov ecx,0x000000 - mov edx,text - mov esi,40 - - mov eax,4 + cld + mov ebx,26*65536+37 ; draw info text with function 4 + mov ecx,0x10000000 + mov edx,text + mov esi,40 + + mov eax,4 .newline: - mcall - add ebx,10 - add edx,40 - cmp [edx],byte 'x' - jnz .newline + mcall + add ebx,13 + add edx,40 + cmp [edx],byte 'x' + jnz .newline - mcall 12,2 ; function 12:tell os about windowdraw - ret + mcall 12,2 ; function 12:tell os about windowdraw + ret ;------------------------------------------------------------------------------- ; DATA AREA ;------------------------------------------------------------------------------- if lang eq it text: - db 'Il programma usa 0x1000 byte di memoria ' - db ' ' - db 'Open debug board for rezult information ' - db ' ' - db ' CLI ' - db ' ' - db ' STI ' - db ' ' - db ' MOV [0x10000],BYTE 1 ' - db ' ' - db ' JMP DWORD 0x10000 ' - db ' ' - db ' MOV ESP,0 & PUSH EAX ' - db ' ' - db ' IN Al,0x60 ' - db ' ' - db ' OUT 0x60,AL ' - db 'x' + db 'Il programma usa 0x1000 byte di memoria ' + db ' ' + db 'Open debug board for rezult information ' + db ' ' + db ' CLI ' + db ' ' + db ' STI ' + db ' ' + db ' MOV [0x10000],BYTE 1 ' + db ' ' + db ' JMP DWORD 0x10000 ' + db ' ' + db ' MOV ESP,0 & PUSH EAX ' + db ' ' + db ' IN Al,0x60 ' + db ' ' + db ' OUT 0x60,AL ' + db 'x' else if lang eq ru text: - db 'Приложение использует 0x1000 байт памяти' - db ' ' - db 'Открыть BOARD для просмотра результата ' - db ' ' - db ' CLI ' - db ' ' - db ' STI ' - db ' ' - db ' MOV [0x10000],BYTE 1 ' - db ' ' - db ' JMP DWORD 0x10000 ' - db ' ' - db ' MOV ESP,0 & PUSH EAX ' - db ' ' - db ' IN Al,0x60 ' - db ' ' - db ' OUT 0x60,AL ' - db 'x' + db 'Приложение использует 0x1000 байт памяти' + db ' ' + db 'Открыть BOARD для просмотра результата ' + db ' ' + db ' CLI ' + db ' ' + db ' STI ' + db ' ' + db ' MOV [0x10000],BYTE 1 ' + db ' ' + db ' JMP DWORD 0x10000 ' + db ' ' + db ' MOV ESP,0 & PUSH EAX ' + db ' ' + db ' IN Al,0x60 ' + db ' ' + db ' OUT 0x60,AL ' + db 'x' else text: - db 'Application uses 0x1000 bytes of memory ' - db ' ' - db 'Open debug board for result information ' - db ' ' - db ' CLI ' - db ' ' - db ' STI ' - db ' ' - db ' MOV [0x10000],BYTE 1 ' - db ' ' - db ' JMP DWORD 0x10000 ' - db ' ' - db ' MOV ESP,0 & PUSH EAX ' - db ' ' - db ' IN Al,0x60 ' - db ' ' - db ' OUT 0x60,AL ' - db 'x' + db 'Application uses 0x1000 bytes of memory ' + db ' ' + db 'Open debug board for result information ' + db ' ' + db ' CLI ' + db ' ' + db ' STI ' + db ' ' + db ' MOV [0x10000],BYTE 1 ' + db ' ' + db ' JMP DWORD 0x10000 ' + db ' ' + db ' MOV ESP,0 & PUSH EAX ' + db ' ' + db ' IN Al,0x60 ' + db ' ' + db ' OUT 0x60,AL ' + db 'x' end if ;------------------------------------------------------------------------------- if lang eq it tlabel: - db 'Kolibri prova di protezione',0 -else if lang eq ru + db 'Kolibri prova di protezione',0 +else if lang eq ru tlabel: - db 'Kolibri проверка защиты ядра',0 + db 'Kolibri проверка защиты ядра',0 else tlabel: - db 'Kolibri protection test',0 + db 'Kolibri protection test',0 end if ;------------------------------------------------------------------------------- I_END: ;------------------------------------------------------------------------------- align 4 - rb 256 + rb 256 stack_top: ;------------------------------------------------------------------------------- IM_END: