0,0 → 1,108 |
;ä䥪⨢®¥ ¯à®£à ¬¬¨à®¢ ¨¥ ¢ KOLIBRI |
;¯â¨¬¨§¨à®¢ ë© ª®¬¯®¥â CheckBox (áå®¤ë© ¢ ਠ⠮â Maxxxx32) |
;¯â¨¬¨§¨à®¢ ¢ë¢®¤ áâப¨, ¤¯¨á¨ ¤«ï CheckBox'a + ⥯¥àì ¯à¨ ¯à®¢¥àª¥ ¥ ;¯à®¨á室¨â ¯®¤áç¥â ª®«-¢ ᨬ¢®«®¢ ¢ áâப¥ |
;¯â¨¬¨§ æ¨ï ª®¬ ¤. |
;22.08.2006 ¯à®¨§¢¥¤¥ ®¯â¨¬¨§ æ¨ï ª®¬ ¤, ¯à¨ïâë ¢® ¢¨¬ ¨¥ § ¬¥ç ¨ï DIAMOND' . |
;<Lrz> - ¥¯«®¢ «¥ªá¥© www.test-kolibri.narod.ru |
|
;§ £®«®¢®ª ¯à¨«®¦¥¨ï |
use32 ; âà á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §àï¤ëå ª®¬ ¤ë |
org 0x0 ; ¡ §®¢ë© ¤à¥á ª®¤ , ¢á¥£¤ 0x0 |
db 'MENUET01' ; ¨¤¥â¨ä¨ª â®à ¨á¯®«ï¥¬®£® ä ©« (8 ¡ ©â) |
dd 0x1 ; ¢¥àá¨ï ä®à¬ â § £®«®¢ª ¨á¯®«ï¥¬®£® ä ©« |
dd start ; ¤à¥á, ª®â®àë© á¨á⥬ ¯¥à¥¤ ñâ ã¯à ¢«¥¨¥ |
; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥¨ï ¢ ¯ ¬ïâì |
dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï |
dd (i_end+0x100) and not 3 ; ¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨, ¤«ï á⥪ ®â¢¥¤¥¬ 0å100 ¡ ©â ¨ ¢ë஢¨¬ £à¨æã 4 ¡ ©â |
dd (i_end+0x100) and not 3 ; à ᯮ«®¦¨¬ ¯®§¨æ¨î á⥪ ¢ ®¡« á⨠¯ ¬ïâ¨, áà §ã § ⥫®¬ ¯à®£à ¬¬ë. ¥àè¨ á⥪ ¢ ¤¨ ¯ §®¥ ¯ ¬ïâ¨, 㪠§ ®¬ ¢ëè¥ |
dd 0x0,0x0 ; 㪠§ ⥫ì áâபã á ¯ à ¬¥âà ¬¨. |
; ¥á«¨ ¯®á«¥ § ¯ã᪠¥à ¢® ã«î, ¯à¨«®¦¥¨¥ ¡ë«® |
; § ¯ã饮 á ¯ à ¬¥âà ¬¨ ¨§ ª®¬ ¤®© áâப¨ |
|
; 㪠§ ⥫ì áâபã, ¢ ª®â®àãî § ¯¨á ¯ãâì, |
; ®âªã¤ § ¯ã饮 ¯à¨«®¦¥¨¥ |
|
|
;------------------ |
include 'check.inc' ;¢ª«îç¨âì ä ©« check.inc |
use_check_box ;¨á¯®«ì§ãï ¬ ªà®áë ¢¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ¨ï 祪 ¡®ªá |
;¡« áâì ª®¤ |
start: ;®çª ¢å®¤ ¢ ¯à®£à ¬¬ã |
mov eax,40 ;ãáâ ®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩ |
mov ebx,0x25 ;á¨á⥬ ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 á®®¡é¥¨¥ ® ¯¥à¥à¨á®¢ª¥, ¦ â ª®¯ª , ®¯à¥¤¥«ñ ï à ¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ¦ ⨥ ª®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥¨¥; á¡à áë¢ ¥âáï ¯à¨ ¯à®ç⥨¨) |
int 0x40 |
red_win: |
call draw_window ;¯¥à¢® ç «ì® ¥®¡å®¤¨¬® à¨á®¢ âì ®ª® |
still: ;®á®¢®© ®¡à ¡®â稪 |
mov eax,10 ;¦¨¤ âì ᮡëâ¨ï |
int 0x40 ;®¦¨¤ âì ᮡë⨥ ¢ â¥ç¥¨¥ 2 ¬¨««¨á¥ªã¤ |
|
cmp al,0x1 ;¥á«¨ ¨§¬¥¨«®áì ¯®«®¦¥¨¥ ®ª |
jz red_win |
cmp al,0x3 ;¥á«¨ ¦ â ª®¯ª â® ¯¥à¥©â¨ |
jz button |
mouse_check_boxes check_boxes,check_boxes_end ;¯à®¢¥àª 祪 ¡®ªá |
jmp still ;¥á«¨ ¨ç¥£® ¨§ ¯¥à¥ç¨á«¥®£® ⮠ᮢ ¢ 横« |
button: |
mov eax,17 ;¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª« ¢¨è¨ |
int 0x40 |
test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ®¡à ¡®â稪 ᮡë⨩ still |
jz still |
or eax,-1 ;¢ eax,-1 - 5 ,¡ ©â®¢ ã á ¦¥ ⮫쪮 3 ¢ë©â¨ |
int 0x40 ;¤ «¥¥ ¢ë¯®«ï¥âáï ¢ë室 ¨§ ¯à®£à ¬¬ë |
|
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
draw_window: ;à¨á®¢ ¨¥ ®ª ¯à¨«®¦¥¨ï |
mov eax,12 ;¢ ॣ¨áâà ¢¥á⨠§ 票¥ = 12 |
mov ebx,1 ;¯à¨á¢®¨âì 1 |
int 0x40 |
|
xor eax,eax ;®¡ã«¨âì eax |
mov ebx,50*65536+180 ;[ª®®à¤¨ â ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] |
mov ecx,30*65536+100 ;[ª®®à¤¨ â ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y] |
mov edx,0x03AABBCC ;0xXYRRGGBB Y =3 - ¢ë¢®¤ à ¬ª¨, ¨á¯®«ì§ãï áªà¨ |
mov esi,0x805080DD ;0xXYRRGGBB - 梥⠧ £®«®¢ª |
mov edi,0x005080DD ;0x00RRGGBB - 梥â à ¬ª¨ |
int 0x40 ; à¨á®¢ âì ®ª® ¯à¨«®¦¥¨ï |
|
add eax,4 ;¥á«¨ ¯à¥¤¯®« £ ¥âáï ¨á¯®«ì§®¢ âì ᪠«ïàë© ¯à®æ¥áá®à, â® ¬®¦® ¨á¯®«ì§®¢ âì ¤ î ¨áâàãªæ¨î |
mov ebx,8*65536+8 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] mov ecx,0x10DDEEFF ; 0xX0RRGGBB, £¤¥ RR, GG, BB § ¤ îâ 梥â ⥪áâ |
mov edx,hed ; 㪠§ ⥫ì ç «® áâப¨ |
mov esi,i_end - hed ; ¤«¨ áâப¨, ¤®«¦ ¡ëâì ¥ ¡®«ìè¥ 255 |
int 0x40 ;¢ë¢¥á⨠⥪áâ |
|
draw_check_boxes check_boxes,check_boxes_end ;à¨á®¢ ¨¥ 祪¡®ªá®¢ |
|
add eax,8 ;ãªæ¨ï 12 - ç âì/§ ª®ç¨âì ¯¥à¥à¨á®¢ªã ®ª . |
mov ebx,2 ;®¤äãªæ¨ï 2 - § ª®ç¨âì ¯¥à¥à¨á®¢ªã ®ª . |
int 0x40 |
ret |
|
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
;DATA ¤ ë¥ |
;®à¬ â ¤ ëå 祪 ¡®ªá : |
;10 - ª®®à¤¨ â 祪 ¡®ªá ¯® å |
;30 - ª®®à¤¨ â 祪 ¡®ªá ¯® ã |
;0xffffff - 梥⠢ãâਠ祪 ¡®ªá |
;0 - 梥â à ¬ª¨ 祪 ¡®ªá |
;0 - 梥â ⥪áâ ¤¯¨á¨ |
;ch_text.1 - 㪠§ ⥫ì ç «® áâப¨ |
;ch_text.e1-ch_text.1 - ¤«¨ áâப¨ |
; |
check_boxes: |
ch1 check_box 10,30,0xffffff,0,0,ch_text.1,ch_text.e1-ch_text.1 |
ch2 check_box 10,45,0xffffff,0,0,ch_text.2,ch_text.e2-ch_text.2 |
ch3 check_box 10,60,0xffffff,0,0,ch_text.3,ch_text.e3-ch_text.3 |
check_boxes_end: |
|
ch_text: ; ®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢ |
.1 db 'Check_Box #1' |
.e1: |
.2 db 'Check_Box #2' |
.e2: |
.3 db 'Check_Box #3' |
.e3: |
|
hed db 'Checkbox [22.08.2006]' ;§ £®«®¢®ª ¯à¨«®¦¥¨ï |
i_end: ;ª®¥æ ª®¤ |