;Ž£à®¬ ï ¡« £®¤ à®áâì Maxxxx32, Diamond, Heavyiron ;¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, â ª¦¥ ;’¥¯«®¢ã €«¥ªá¥î (<Lrz> www.lrz.land.ru) use32 org 0x0 db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â dd 0x1 dd start dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï dd mem dd stacktop dd 0x0 ;library_path dd cur_dir_path include '../../macros.inc' include '../../develop/libraries/box_lib/load_lib.mac' include 'lang.inc' @use_library align 4 start: mov eax,40 mov ebx,0x25 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ mcall sys_load_library msgbox_name, cur_dir_path, library_path, system_path, \ err_message_found_lib, head_f_l, msgbox_lib_import, err_message_import, head_f_i red_win: mcall 12,1 xor eax,eax mov ebx,50*65536+200 mov ecx,30*65536+170 mov edx,0xffffd0 or edx,0x33000000 mov edi,hed mcall mov eax,8 ;ª®¯ª mov ebx,10*65536+30 mov ecx,110*65536+20 mov edx,7 mov esi,0xffd040 mcall mov ebx,10*65536+30 mov ecx,85*65536+20 mov edx,6 mcall mov ebx,10*65536+30 mov ecx,60*65536+20 mov edx,5 mcall mov ebx,10*65536+30 mov ecx,35*65536+20 mov edx,4 mcall mov ebx,10*65536+30 mov ecx,10*65536+20 mov edx,3 mcall mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ mov ebx,50*65536+115 mov ecx,0x4000d0 or ecx,0x80000000 mov edx,txt140 mcall mov ebx,50*65536+90 mov edx,txt139 mcall mov ebx,50*65536+65 mov edx,txt138 mcall mov ebx,50*65536+40 mov edx,txt137 mcall mov ebx,50*65536+15 mov edx,txt136 mcall push eax ebx ecx edx esi ;line numbers mov eax,47 mov esi,0xd00000 mov ebx,0x10000 ;format ; --- draw codes --- xor ecx,ecx mov cl,byte[msgbox_1] mov dx,25 shl edx,16 mov dx,15 int 0x40 mov cl,byte[msgbox_2] add dx,25 int 0x40 mov cl,byte[msgbox_3] add dx,25 int 0x40 mov cl,byte[msgbox_4] add dx,25 int 0x40 mov cl,byte[msgbox_5] add dx,25 int 0x40 pop esi edx ecx ebx eax call draw_square mcall 12,2 still: mov eax,10 mcall cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª jz red_win cmp al,3 jz button jmp still button: mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ cmp ah,3 jz but_1 cmp ah,4 jz but_2 cmp ah,5 jz but_3 cmp ah,6 jz but_4 cmp ah,7 jz but_5 cmp ah,1 jne still .exit: mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë but_1: push thread push msgbox_1 call [mb_create] jmp still but_2: push thread push msgbox_2 call [mb_create] ;mov eax,5 ;mov ebx,50 ;int 0x40 push msgbox_2_funct call [mb_setfunctions] jmp still but_3: push thread push msgbox_3 call [mb_create] jmp still but_4: push thread push msgbox_4 call [mb_create] jmp still but_5: push thread push msgbox_5 call [mb_create] mcall 5,100 ;stop program push msgbox_5_2 call [mb_reinit] jmp still if lang eq ru txt136 db '¯à®á⮥',0 txt137 db '3 ª®¯ª¨',0 txt138 db '3 áâப¨',0 txt139 db '¡®«ì讥',0 txt140 db 'mb_reinit',0 hed db 'ਬ¥à ¨á¯®«ì§®¢ ¨ï MsgBox',0 else txt136 db 'Simple',0 txt137 db '3 buttons',0 txt138 db '3 lines',0 txt139 db 'Big',0 txt140 db 'mb_reinit',0 hed db 'MsgBox usage example',0 end if ;sc system_colors ;--------------------------------------------------------------------- msgbox_1: dw 0 db 'MBox',0 ;+2 = +MB_TEXT_OFFSET if lang eq ru db 'ਬ¥à',0 db '‚¨¦ã',0 ;button1 else db 'Example',0 db 'I see!',0 ;button1 end if db 0 msgbox_2: dw 0 db 'MBox 3 buttons',0 ;+2 = +MB_TEXT_OFFSET if lang eq ru db 'ਬ¥à á 3-¬ï ª®¯ª ¬¨',0 db '„ ',0 ;button1 db 'Žâ¬¥ ',0 ;button2 db '®¬®éì',0 ;button3 else db '3 buttons example',0 db 'Yes',0 ;button1 db 'Cancel',0 ;button2 db 'Help',0 ;button3 end if db 0 msgbox_2_funct: dd 0 dd 0 dd fun_show_help msgbox_3: dw 0 db 'MBox 3 lines',0 ;+2 = +MB_TEXT_OFFSET if lang eq ru db '‘âப 1',13,'‘âப 2',13,'‘âப 3',0 db '2009 £.',0 ;button1 else db 'Line 1',13,'Line 2',13,'Line 3',0 db 'Year 2009',0 ;button1 end if db 0 msgbox_4: dw 0 if lang eq ru db '‚¢¥¤¨â¥ ¤¥ì',0 ;+2 = +MB_TEXT_OFFSET else db 'Select day',0 ;+2 = +MB_TEXT_OFFSET end if db ' @@@@@@@@@@@@ @@@@@@@@',13 db ' @............@ @........@',13 db '@..............@ @..........@',13 db '@.......@@@.....@ @......@.....@',13 db '@.......@ @.....@@@@@@......@@......@',13 db '@......@ @.................@@.......@',13 db ' @....@ @.....@@......@@....@.......@',13 db ' @..@ @.........@.........@......@',13 db ' @@ @...................@@....@',13 db ' @.......@@@.......@ @..@',13 db ' @...............@ @@',13 db ' @...............@',13 db ' @.................@',13 db ' @...................@',13 db ' @.....................@',13 db ' @.......@@......@@......@ @@',13 db ' @......@....@..@....@.....@@..@',13 db ' @......@....@..@....@.........@',13 db ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@',0 if lang eq ru db '',0 db '‚â',0 db '‘à',0 db '—â',0 db 'â',0 db '‘¡',0 db '‚®áªà¥á¥¨¥',0 else db 'Sun',0 db 'Mon',0 db 'Tue',0 db 'Wed',0 db 'Thu',0 db 'Fri',0 db 'Sat',0 end if db 0 msgbox_5: dw 0 if lang eq ru db '‘®®¡é¥¨¥',0 ;+2 = +MB_TEXT_OFFSET db '‚믮«ïî ¯à®æ¥áá ...',0 db 'Žáâ ®¢¨âì',0 db 'à¥à¢ âì',0 else db 'Message',0 ;+2 = +MB_TEXT_OFFSET db 'Running process ...',0 db 'Stop',0 db 'Abort',0 end if db 0 msgbox_5_2: dw 0 if lang eq ru db '‘®®¡é¥¨¥',0 ;+2 = +MB_TEXT_OFFSET db '‚ᥠ§ ª®ç¥®',0 db '‡ ªàëâì ®ª®',0 else db 'Message',0 ;+2 = +MB_TEXT_OFFSET db 'All finished',0 db 'Close window',0 end if db 0 ;-------------------------------------------------- align 4 msgbox_lib_import: mb_create dd amb_create mb_reinit dd amb_reinit mb_setfunctions dd amb_setfunctions dd 0,0 amb_create db 'mb_create',0 amb_reinit db 'mb_reinit',0 amb_setfunctions db 'mb_setfunctions',0 ;-------------------------------------------------- system_path db '/sys/lib/' msgbox_name db 'msgbox.obj',0 err_message_found_lib db 'Sorry I cannot load library msgbox.obj',0 head_f_i: head_f_l db 'System error',0 err_message_import db 'Error on load import library msgbox.obj',0 ;-------------------------------------------------- draw_square: cmp byte[sh_help],0 je @f push eax ebx ecx edx mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª mov ebx,105*65536+70 mov ecx,15*65536+50 mov edx,0x8080ff int 0x40 mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ mov ebx,110*65536+25 mov ecx,0xffffff mov edx,txt_help mov esi,9 mcall mov eax,47 mov esi,0xffff mov ebx,0x10000 ;format xor ecx,ecx mov cl,byte[sh_help] mov dx,150 shl edx,16 mov dx,40 int 0x40 pop edx ecx ebx eax @@: ret fun_show_help: inc byte[sh_help] cmp byte[sh_help],10 jne @f mov byte[sh_help],0 @@: call draw_square ret sh_help db 0 if lang eq ru txt_help db '®¬®éì...' else txt_help db 'Help...' end if i_end: ;ª®¥æ ª®¤ rb 1024 thread: rb 1024 stacktop: cur_dir_path: rb 4096 library_path: rb 4096 file_info: rb 40 mem: