0,0 → 1,350 |
;--- ¤à㣨¥ ¬ ªà®áë --- |
include 'editbox.inc' |
include 'txtbut.inc' |
include 'gp.inc' |
include 'label.inc' |
;include 'checkbox.inc' |
include 'check.inc' |
include 'file_sys.inc' |
include 'textwork.inc' |
;include 'ini.inc' |
|
lang fix ru;en |
|
macro movr reg,val |
{ |
if val < 65536 |
push val |
pop reg |
else |
mov reg,val |
end if |
} |
|
;--- § £®«®¢®ª --- |
macro meos_header par_buf,cur_dir_buf |
{ |
use32 |
org 0x0 |
|
db 'MENUET01' |
dd 0x01 |
dd __app_start |
dd __app_end |
dd __app_end |
dd __app_end |
if <par_buf> eq <> |
dd 0x0 |
else |
dd par_buf |
end if |
if <cur_dir_buf> eq <> |
dd 0x0 |
else |
dd cur_dir_buf |
end if |
} |
|
;--- ®¯à¥¤¥«¨âì â®çªã ¢å®¤ --- |
macro app_start |
{ |
__app_start: |
} |
|
;--- ®¯à¥¤¥«¨âì ª®¥æ ¯à¨«®¦¥¨ï ¨ à §¬¥à á⥪ --- |
macro app_end stack_size |
{ |
if <stack_size> eq <> |
rb 1024 |
else |
rb stack_size |
end if |
__app_end: |
} |
|
;--- § ¢¥àè¨âì ⥪ã騩 ¯®â®ª --- |
macro app_close |
{ |
xor eax,eax |
dec eax |
int 0x40 |
} |
|
;--- ¯®«ãç¨âì ª®¤ ¦ ⮩ ª« ¢¨è¨ --- |
macro get_key |
{ |
;mov eax,2 |
push 2 |
pop eax |
int 0x40 |
} |
|
;--- ¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ --- |
macro get_pressed_button |
{ |
;mov eax,17 |
push 17 |
pop eax |
int 0x40 |
} |
|
;--- á®®¡é¨âì á¨á⥬¥ ® ç «¥ ¯¥à¥à¨á®¢ª¨ ®ª --- |
macro start_draw_window |
{ |
;mov eax,12 |
push 12 |
pop eax |
xor ebx,ebx |
inc ebx |
int 0x40 |
} |
|
;--- á®®¡é¨âì á¨á⥬¥ ® § ¢¥à襨¨ ¯¥à¥à¨á®¢ª¨ ®ª --- |
macro stop_draw_window |
{ |
;mov eax,12 |
push 12 |
pop eax |
;mov ebx,2 |
push 2 |
pop ebx |
int 0x40 |
} |
|
;--- ãáâ ®¢¨âì ¬ áªã ®¦¨¤ ¥¬ëå ᮡë⨩ --- |
macro set_events_mask mask |
{ |
;mov eax,40 |
push 40 |
pop eax |
;mov ebx,mask |
push mask |
pop ebx |
int 0x40 |
} |
|
;--- ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ¯à®æ¥áᥠ--- |
macro get_procinfo proc_inf_buf,slot_num |
{ |
;mov eax,9 |
push 9 |
pop eax |
;mov ebx,proc_inf_buf |
push proc_inf_buf |
pop ebx |
if <slot_num> eq <> |
xor ecx,ecx |
dec ecx |
else |
;mov ecx,slot_num |
push slot_num |
pop ecx |
end if |
int 0x40 |
} |
|
macro get_sys_colors col_buf |
{ |
;mov eax,48 |
push 48 |
pop eax |
;mov ebx,3 |
push 3 |
pop ebx |
;mov ecx,col_buf |
push col_buf |
pop ecx |
;mov edx,40 |
push 40 |
pop edx |
int 0x40 |
} |
|
macro get_grab_area |
{ |
movr eax,48 |
movr ebx,7 |
int 0x40 |
} |
|
macro get_scin_height |
{ |
movr eax,48 |
movr ebx,4 |
int 0x40 |
} |
|
macro min_window |
{ |
movr eax,18 |
movr ebx,10 |
int 0x40 |
} |
|
macro activ_window slot_n |
{ |
movr eax,18 |
movr ebx,3 |
if <slot_n> eq <> |
else |
movr ecx,slot_n |
end if |
int 0x40 |
} |
|
macro get_active_window |
{ |
movr eax,18 |
movr ebx,7 |
int 0x40 |
} |
|
macro delay time |
{ |
movr eax,5 |
if <time> eq <> |
else |
movr ebx,time |
end if |
int 0x40 |
} |
|
;--- ®¦¨¤ âì ᮡëâ¨ï --- |
macro wait_event redraw,key,button,mouse,ipc,other |
{ |
movr eax,10 |
int 0x40 |
dec ax |
if <redraw> eq <> |
else |
jz redraw |
end if |
dec ax |
if <key> eq <> |
else |
jz key |
end if |
dec ax |
if <button> eq <> |
else |
jz button |
end if |
dec ax |
dec ax |
dec ax |
if <mouse> eq <> |
else |
jz mouse |
end if |
if <ipc> eq <> |
else |
dec ax |
jz ipc |
end if |
if <other> eq <> |
jmp still |
else |
jmp other |
end if |
} |
|
;--- ¯®«ãç¨âì à §¬¥àë íªà --- |
macro get_screen_size |
{ |
movr eax,14 |
int 0x40 |
} |
|
macro get_screen_prop struc_ptr |
{ |
movr eax,61 |
push eax eax |
xor ebx,ebx |
inc ebx |
int 0x40 |
mov [struc_ptr],eax |
pop eax |
inc ebx |
int 0x40 |
mov [struc_ptr+4],ax |
pop eax |
inc ebx |
int 0x40 |
mov [struc_ptr+6],eax |
} |
|
macro resize_mem mem_size |
{ |
movr eax,64 |
xor ebx,ebx |
inc ebx |
if <mem_size> eq <> |
else |
movr ecx,mem_size |
end if |
int 0x40 |
} |
|
evm_redraw equ 1 |
evm_key equ 10b |
evm_button equ 100b |
evm_mouse equ 100000b |
evm_ipc equ 1000000b |
|
struc procinfo |
{ |
.takts_per_second: dd ? |
.window_stack_pos: dw ? |
.slot_number: dw ? |
dw ? |
.name: rb 11 |
.align: db ? |
.addres: dd ? |
.use_mem: dd ? |
.pid: dd ? |
.left: dd ? |
.top: dd ? |
.width: dd ? |
.height: dd ? |
.slot_state: dw ? |
rb (1024-56) |
} |
|
struc sys_color_table |
{ |
.frames: dd ? ;+0 |
.grab: dd ? ;+4 |
.grab_button: dd ? ;+8 |
.grab_button_text: dd ? ;+12 |
.grab_text: dd ? ;+16 |
.work: dd ? ;+20 |
.work_button: dd ?;+24 |
.work_button_text: dd ? ;+28 |
.work_text: dd ? ;+32 |
.work_graph: dd ? ;+36 |
} |
|
struc screen_size |
{ |
.height: dw ? |
.width: dw ? |
} |
|
struc screen_prop |
{ |
.height: dw ? ;+0 |
.width: dw ? ;+2 |
.bitspp: dw ? ;+4 |
.bytesps: dd ?;+6 |
} |
|
struc ipc_buffer size |
{ |
.block: dd ? |
.in_use: dd ? |
.messages: rb size |
} |
|
;--- 梥â --- |
cl_white=0xffffff |
cl_black=0x000000 |