2,18 → 2,14 |
;¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, â ª¦¥ |
;¥¯«®¢ã «¥ªá¥î (<Lrz> www.lrz.land.ru) |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x1 |
dd start |
dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï |
dd mem |
dd stacktop |
dd 0x0 ;library_path |
dd cur_dir_path |
dd 0,start,i_end,mem,stacktop,0,cur_dir_path |
|
include '../../KOSfuncs.inc' |
include '../../macros.inc' |
include '../../develop/libraries/box_lib/load_lib.mac' |
include '../../proc32.inc' |
include '../../load_lib.mac' |
include 'lang.inc' |
|
@use_library |
20,17 → 16,13 |
|
align 4 |
start: |
mcall SF_SET_EVENTS_MASK,0x25 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
|
mov eax,40 |
mov ebx,0x25 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
mcall |
sys_load_library msgbox_name, library_path, system_path, msgbox_lib_import |
|
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 |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
|
xor eax,eax |
mov ebx,50*65536+200 |
40,7 → 32,7 |
mov edi,hed |
mcall |
|
mov eax,8 ;ª®¯ª |
mov eax,SF_DEFINE_BUTTON |
mov ebx,10*65536+30 |
mov ecx,110*65536+20 |
mov edx,7 |
71,28 → 63,28 |
mov ebx,50*65536+115 |
mov ecx,0x4000d0 |
or ecx,0x80000000 |
mov edx,txt140 |
mov edx,txt5 |
mcall |
|
mov ebx,50*65536+90 |
mov edx,txt139 |
mov edx,txt4 |
mcall |
|
mov ebx,50*65536+65 |
mov edx,txt138 |
mov edx,txt3 |
mcall |
|
mov ebx,50*65536+40 |
mov edx,txt137 |
mov edx,txt2 |
mcall |
|
mov ebx,50*65536+15 |
mov edx,txt136 |
mov edx,txt1 |
mcall |
|
push eax ebx ecx edx esi |
;line numbers |
mov eax,47 |
mov eax,SF_DRAW_NUMBER |
mov esi,0xd00000 |
mov ebx,0x10000 ;format |
|
122,11 → 114,11 |
|
pop esi edx ecx ebx eax |
call draw_square |
mcall 12,2 |
mcall SF_REDRAW,SSF_END_DRAW |
|
align 4 |
still: |
mov eax,10 |
mcall |
mcall SF_WAIT_EVENT |
|
cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
jz red_win |
135,7 → 127,7 |
jmp still |
|
button: |
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
mcall SF_GET_BUTTON |
|
cmp ah,3 |
jz but_1 |
151,62 → 143,44 |
cmp ah,1 |
jne still |
.exit: |
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
mcall SF_TERMINATE_PROCESS |
|
but_1: |
push thread |
push msgbox_1 |
call [mb_create] |
stdcall [mb_create],msgbox_1,thread |
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] |
stdcall [mb_create],msgbox_2,thread |
stdcall [mb_setfunctions],msgbox_2_funct |
jmp still |
|
but_3: |
push thread |
push msgbox_3 |
call [mb_create] |
stdcall [mb_create],msgbox_3,thread |
jmp still |
|
but_4: |
push thread |
push msgbox_4 |
call [mb_create] |
stdcall [mb_create],msgbox_4,thread |
jmp still |
|
but_5: |
push thread |
push msgbox_5 |
call [mb_create] |
|
mcall 5,100 ;stop program |
|
push msgbox_5_2 |
call [mb_reinit] |
|
stdcall [mb_create],msgbox_5,thread |
mcall SF_SLEEP,100 ;stop program |
stdcall [mb_reinit],msgbox_5_2 |
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 |
txt1 db '¯à®á⮥',0 |
txt2 db '3 ª®¯ª¨',0 |
txt3 db '3 áâப¨',0 |
txt4 db '¡®«ì讥',0 |
txt5 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 |
txt1 db 'Simple',0 |
txt2 db '3 buttons',0 |
txt3 db '3 lines',0 |
txt4 db 'Big',0 |
txt5 db 'mb_reinit',0 |
hed db 'MsgBox usage example',0 |
end if |
;sc system_colors |
240,9 → 214,7 |
end if |
db 0 |
msgbox_2_funct: |
dd 0 |
dd 0 |
dd fun_show_help |
dd 0,0,fun_show_help |
|
msgbox_3: |
dw 0 |
249,10 → 221,10 |
db 'MBox 3 lines',0 ;+2 = +MB_TEXT_OFFSET |
if lang eq ru |
db 'âப 1',13,'âப 2',13,'âப 3',0 |
db '2009 £.',0 ;button1 |
db '2020 £.',0 ;button1 |
else |
db 'Line 1',13,'Line 2',13,'Line 3',0 |
db 'Year 2009',0 ;button1 |
db 'Year 2020',0 ;button1 |
end if |
db 0 |
msgbox_4: |
282,21 → 254,9 |
db ' @......@....@..@....@.........@',13 |
db ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@',0 |
if lang eq ru |
db '',0 |
db 'â',0 |
db 'à',0 |
db 'â',0 |
db 'â',0 |
db '¡',0 |
db '®áªà¥á¥¨¥',0 |
db '',0,'â',0,'à',0,'â',0,'â',0,'¡',0,'®áªà¥á¥¨¥',0 |
else |
db 'Sun',0 |
db 'Mon',0 |
db 'Tue',0 |
db 'Wed',0 |
db 'Thu',0 |
db 'Fri',0 |
db 'Sat',0 |
db 'Sun',0,'Mon',0,'Tue',0,'Wed',0,'Thu',0,'Fri',0,'Sat',0 |
end if |
db 0 |
msgbox_5: |
310,7 → 270,7 |
db 'Message',0 ;+2 = +MB_TEXT_OFFSET |
db 'Running process ...',0 |
db 'Stop',0 |
db 'Abort',0 |
db 'Terminate',0 |
end if |
db 0 |
msgbox_5_2: |
339,10 → 299,6 |
;-------------------------------------------------- |
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: |
349,28 → 305,14 |
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 |
mcall SF_DRAW_RECT, 105*65536+70, 15*65536+50, 0x8080ff |
mcall SF_DRAW_TEXT, 110*65536+25, 0xffffff, txt_help |
|
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 |
movzx ecx,byte[sh_help] |
mov edx,(150 shl 16)+40 |
mcall SF_DRAW_NUMBER |
|
pop edx ecx ebx eax |
@@: |
390,6 → 332,7 |
txt_help db 'Help...' |
end if |
|
align 16 |
i_end: ;ª®¥æ ª®¤ |
rb 1024 |
thread: |