2013-12-05 22:53:37 +01:00
|
|
|
|
;<3B><><EFBFBD><E0AEAC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>୮<EFBFBD><E0ADAE><EFBFBD> Maxxxx32, Diamond, Heavyiron
|
|
|
|
|
;<3B> <20><>㣨<EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>⠬, <20> ⠪<><E2A0AA>
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<Lrz> www.lrz.land.ru)
|
|
|
|
|
use32
|
|
|
|
|
org 0x0
|
|
|
|
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
dd 0x1
|
|
|
|
|
dd start
|
|
|
|
|
dd i_end ; ࠧ<><E0A0A7><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
dd mem
|
|
|
|
|
dd stacktop
|
|
|
|
|
dd 0x0 ;library_path
|
|
|
|
|
dd cur_dir_path
|
|
|
|
|
|
2013-12-05 23:30:19 +01:00
|
|
|
|
include '../../macros.inc'
|
|
|
|
|
include '../../develop/libraries/box_lib/load_lib.mac'
|
|
|
|
|
include 'lang.inc'
|
2013-12-05 22:53:37 +01:00
|
|
|
|
|
|
|
|
|
@use_library
|
|
|
|
|
|
|
|
|
|
align 4
|
|
|
|
|
start:
|
|
|
|
|
|
|
|
|
|
mov eax,40
|
|
|
|
|
mov ebx,0x25 ;<3B><>᪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮡ<>⨩
|
|
|
|
|
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 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
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 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
|
|
|
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 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
jz red_win
|
|
|
|
|
cmp al,3
|
|
|
|
|
jz button
|
|
|
|
|
jmp still
|
|
|
|
|
|
|
|
|
|
button:
|
|
|
|
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
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 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
txt136 db '<27><><EFBFBD><EFBFBD>⮥',0
|
|
|
|
|
txt137 db '3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
|
|
|
|
txt138 db '3 <20><>ப<EFBFBD>',0
|
|
|
|
|
txt139 db '<27><><EFBFBD><EFBFBD>讥',0
|
|
|
|
|
txt140 db 'mb_reinit',0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
hed db '<27>ਬ<EFBFBD><E0A8AC> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> 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
|
2013-12-05 22:53:37 +01:00
|
|
|
|
;sc system_colors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------
|
|
|
|
|
msgbox_1:
|
|
|
|
|
dw 0
|
|
|
|
|
db 'MBox',0 ;+2 = +MB_TEXT_OFFSET
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27>ਬ<EFBFBD><E0A8AC>',0
|
|
|
|
|
db '<27><><EFBFBD><EFBFBD>',0 ;button1
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db 'Example',0
|
|
|
|
|
db 'I see!',0 ;button1
|
2013-12-05 23:55:25 +01:00
|
|
|
|
end if
|
|
|
|
|
db 0
|
2013-12-05 22:53:37 +01:00
|
|
|
|
msgbox_2:
|
|
|
|
|
dw 0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
db 'MBox 3 buttons',0 ;+2 = +MB_TEXT_OFFSET
|
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27>ਬ<EFBFBD><E0A8AC> <20> 3-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
|
|
|
|
db '<27><>',0 ;button1
|
|
|
|
|
db '<27>⬥<EFBFBD><E2ACA5>',0 ;button2
|
|
|
|
|
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0 ;button3
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db '3 buttons example',0
|
|
|
|
|
db 'Yes',0 ;button1
|
|
|
|
|
db 'Cancel',0 ;button2
|
|
|
|
|
db 'Help',0 ;button3
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
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
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27><>ப<EFBFBD> 1',13,'<27><>ப<EFBFBD> 2',13,'<27><>ப<EFBFBD> 3',0
|
|
|
|
|
db '2009 <20>.',0 ;button1
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db 'Line 1',13,'Line 2',13,'Line 3',0
|
|
|
|
|
db 'Year 2009',0 ;button1
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db 0
|
|
|
|
|
msgbox_4:
|
|
|
|
|
dw 0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>',0 ;+2 = +MB_TEXT_OFFSET
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db 'Select day',0 ;+2 = +MB_TEXT_OFFSET
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
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
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27><>',0
|
|
|
|
|
db '<27><>',0
|
|
|
|
|
db '<27><>',0
|
|
|
|
|
db '<27><>',0
|
|
|
|
|
db '<27><>',0
|
|
|
|
|
db '<27><>',0
|
|
|
|
|
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᥭ<EFBFBD><E1A5AD>',0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db 'Sun',0
|
|
|
|
|
db 'Mon',0
|
|
|
|
|
db 'Tue',0
|
|
|
|
|
db 'Wed',0
|
|
|
|
|
db 'Thu',0
|
|
|
|
|
db 'Fri',0
|
|
|
|
|
db 'Sat',0
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db 0
|
|
|
|
|
msgbox_5:
|
|
|
|
|
dw 0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>',0 ;+2 = +MB_TEXT_OFFSET
|
|
|
|
|
db '<27>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ...',0
|
|
|
|
|
db '<27><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD>',0
|
|
|
|
|
db '<27><><EFBFBD>ࢠ<EFBFBD><E0A2A0>',0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db 'Message',0 ;+2 = +MB_TEXT_OFFSET
|
|
|
|
|
db 'Running process ...',0
|
|
|
|
|
db 'Stop',0
|
|
|
|
|
db 'Abort',0
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db 0
|
|
|
|
|
msgbox_5_2:
|
|
|
|
|
dw 0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
db '<27><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>',0 ;+2 = +MB_TEXT_OFFSET
|
|
|
|
|
db '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD>',0
|
|
|
|
|
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>',0
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
db 'Message',0 ;+2 = +MB_TEXT_OFFSET
|
|
|
|
|
db 'All finished',0
|
|
|
|
|
db 'Close window',0
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
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
|
2013-12-05 23:55:25 +01:00
|
|
|
|
mov eax,13 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8>
|
2013-12-05 22:53:37 +01:00
|
|
|
|
mov ebx,105*65536+70
|
|
|
|
|
mov ecx,15*65536+50
|
|
|
|
|
mov edx,0x8080ff
|
|
|
|
|
int 0x40
|
|
|
|
|
|
|
|
|
|
mov eax,4 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
|
|
|
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
|
2013-12-05 23:30:19 +01:00
|
|
|
|
if lang eq ru
|
2013-12-05 22:53:37 +01:00
|
|
|
|
txt_help db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...'
|
2013-12-05 23:30:19 +01:00
|
|
|
|
else
|
|
|
|
|
txt_help db 'Help...'
|
|
|
|
|
end if
|
2013-12-05 22:53:37 +01:00
|
|
|
|
|
|
|
|
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
rb 1024
|
|
|
|
|
thread:
|
|
|
|
|
rb 1024
|
|
|
|
|
stacktop:
|
|
|
|
|
cur_dir_path:
|
|
|
|
|
rb 4096
|
|
|
|
|
library_path:
|
|
|
|
|
rb 4096
|
|
|
|
|
file_info:
|
|
|
|
|
rb 40
|
|
|
|
|
mem:
|