;--- другие макросы --- 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 eq <> dd 0x0 else dd par_buf end if if eq <> dd 0x0 else dd cur_dir_buf end if } ;--- определить точку входа --- macro app_start { __app_start: } ;--- определить конец приложения и размер стека --- macro app_end stack_size { if 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 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_skin_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 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