forked from KolibriOS/kolibrios
980 lines
22 KiB
NASM
980 lines
22 KiB
NASM
|
;<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
|
|||
|
dd sys_path
|
|||
|
|
|||
|
include '../../proc32.inc'
|
|||
|
include '../../macros.inc'
|
|||
|
include 'mem.inc'
|
|||
|
include 'dll.inc'
|
|||
|
|
|||
|
include '../../develop/libraries/box_lib/load_lib.mac'
|
|||
|
include '../../develop/libraries/box_lib/trunk/tree_list.mac'
|
|||
|
include '../../develop/libraries/box_lib/trunk/editbox.mac'
|
|||
|
include '../../develop/libraries/box_lib/trunk/checkbox.mac'
|
|||
|
|
|||
|
min_window_w equ 485 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭠<EFBFBD> <20><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
min_window_h equ 325 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭠<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
otst_panel_left equ 265
|
|||
|
|
|||
|
include 'tile_fun.inc'
|
|||
|
include 'pl_import.inc'
|
|||
|
|
|||
|
@use_library
|
|||
|
|
|||
|
struct f70
|
|||
|
func_n dd ?
|
|||
|
param1 dd ?
|
|||
|
param2 dd ?
|
|||
|
param3 dd ?
|
|||
|
param4 dd ?
|
|||
|
rezerv db ?
|
|||
|
name dd ?
|
|||
|
ends
|
|||
|
|
|||
|
fn_metki db 'pl_metki.lst',0
|
|||
|
fn_icon1 db 'tl_sys_16.png',0
|
|||
|
fn_icon2 db 'tl_nod_16.bmp',0
|
|||
|
|
|||
|
ini_name db 'planet_v.ini',0
|
|||
|
ini_sec db 'Map',0
|
|||
|
ini_k_cache db 'Cache',0
|
|||
|
ini_def_cache db '/cache/sat',0
|
|||
|
ini_ext db 'ext'
|
|||
|
.number db '?'
|
|||
|
.def db 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><> 㬮<>砭<EFBFBD><E7A0AD>
|
|||
|
|
|||
|
|
|||
|
align 4
|
|||
|
start:
|
|||
|
load_libraries l_libs_start,load_lib_end
|
|||
|
|
|||
|
;<3B><EFBFBD>ઠ <20><> <>쪮 㤠筮 <20><><EFBFBD>㧨<EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
mov ebp,lib0
|
|||
|
cmp dword [ebp+ll_struc_size-4],0
|
|||
|
jz @f
|
|||
|
mcall -1 ;exit not correct
|
|||
|
@@:
|
|||
|
mov ebp,lib1
|
|||
|
cmp dword [ebp+ll_struc_size-4],0
|
|||
|
jz @f
|
|||
|
mcall -1 ;exit not correct
|
|||
|
@@:
|
|||
|
mov ebp,lib2
|
|||
|
cmp dword [ebp+ll_struc_size-4],0
|
|||
|
jz @f
|
|||
|
mcall -1 ;exit not correct
|
|||
|
@@:
|
|||
|
mov ebp,lib3
|
|||
|
cmp dword [ebp+ll_struc_size-4],0
|
|||
|
jz @f
|
|||
|
mcall -1 ;exit not correct
|
|||
|
@@:
|
|||
|
|
|||
|
stdcall dll.Init,dword[lib_init]
|
|||
|
stdcall dll.Init,dword[lib_init_ini]
|
|||
|
|
|||
|
copy_path ini_name,sys_path,file_name,0x0
|
|||
|
stdcall dword[ini_get_str],file_name,ini_sec,ini_k_cache,dword[edit1.text],dword[edit1.max],ini_def_cache
|
|||
|
stdcall [str_len],dword[edit1.text],dword[edit1.max]
|
|||
|
mov dword[edit1.size],eax
|
|||
|
mov dword[edit1.pos],eax
|
|||
|
|
|||
|
stdcall dword[tl_data_init], tree1
|
|||
|
stdcall dword[tl_data_init], tree2
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> <20><><EFBFBD><EFBFBD> <20><> *.ini 䠩<><E4A0A9>
|
|||
|
mov byte[ini_ext.number],'0'
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><> ext1 <20><> ext9
|
|||
|
inc byte[ini_ext.number]
|
|||
|
stdcall dword[ini_get_str],file_name,ini_sec,ini_ext,txt_tile_type_0,dword[tree1.info_capt_len],ini_ext.def
|
|||
|
cmp byte[txt_tile_type_0],0
|
|||
|
je @f
|
|||
|
stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1
|
|||
|
jmp @b
|
|||
|
@@:
|
|||
|
mov byte[ini_ext.number],'0' ;<3B><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD> <20><> ext0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD>࠭ <20> ᯨ᪥
|
|||
|
stdcall dword[ini_get_str],file_name,ini_sec,ini_ext,txt_tile_type_0,dword[tree1.info_capt_len],ini_ext.def
|
|||
|
cmp byte[txt_tile_type_0],0
|
|||
|
jne @f
|
|||
|
mov dword[txt_tile_type_0],'.bmp' ;<3B> <20> *.ini 䠩<><E4A0A9> <20><>祣<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD> .bmp
|
|||
|
@@:
|
|||
|
stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1
|
|||
|
|
|||
|
; init bmp file
|
|||
|
push dword RGB_TILE_SIZE+300 ;300 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> bmp 䠩<><E4A0A9>
|
|||
|
call mem.Alloc
|
|||
|
mov [bmp_icon],eax
|
|||
|
|
|||
|
stdcall array_tile_function, tile_00,max_tiles_count,tile_init
|
|||
|
stdcall tiles_init_grid, tile_00,max_tiles_count,max_tiles_cols
|
|||
|
|
|||
|
push dword TREE_ICON_SYS16_BMP_SIZE
|
|||
|
call mem.Alloc
|
|||
|
mov [tree_sys_icon],eax
|
|||
|
|
|||
|
push dword TREE_ICON_NOD16_BMP_SIZE
|
|||
|
call mem.Alloc
|
|||
|
mov [tree_nod_icon],eax
|
|||
|
|
|||
|
copy_path fn_icon1,sys_path,file_name,0x0
|
|||
|
mov eax,70 ;load icon file
|
|||
|
mov [run_file_70.func_n], 0
|
|||
|
mov [run_file_70.param1], 0
|
|||
|
mov [run_file_70.param2], 0
|
|||
|
mov [run_file_70.param3], TREE_ICON_SYS16_BMP_SIZE
|
|||
|
m2m [run_file_70.param4], [tree_sys_icon]
|
|||
|
mov [run_file_70.rezerv], 0
|
|||
|
mov [run_file_70.name], file_name
|
|||
|
mov ebx,run_file_70
|
|||
|
int 0x40
|
|||
|
cmp ebx,0xffffffff
|
|||
|
je @f
|
|||
|
stdcall dword[img_decode], dword[tree_sys_icon],ebx,0
|
|||
|
mov dword[data_icon],eax
|
|||
|
stdcall dword[img_to_rgb2], dword[data_icon],dword[tree_sys_icon]
|
|||
|
stdcall dword[img_destroy], dword[data_icon]
|
|||
|
|
|||
|
m2m dword[tree1.data_img_sys],dword[tree_sys_icon]
|
|||
|
m2m dword[tree2.data_img_sys],dword[tree_sys_icon]
|
|||
|
@@:
|
|||
|
|
|||
|
|
|||
|
copy_path fn_icon2,sys_path,file_name,0x0
|
|||
|
mov eax,70 ;load icon file
|
|||
|
mov [run_file_70.param3], TREE_ICON_NOD16_BMP_SIZE
|
|||
|
m2m [run_file_70.param4], [tree_nod_icon]
|
|||
|
mov ebx,run_file_70
|
|||
|
int 0x40
|
|||
|
cmp ebx,0xffffffff
|
|||
|
je @f
|
|||
|
stdcall dword[img_decode], dword[tree_nod_icon],ebx,0
|
|||
|
mov dword[data_icon],eax
|
|||
|
stdcall dword[img_to_rgb2], dword[data_icon],dword[tree_nod_icon]
|
|||
|
stdcall dword[img_destroy], dword[data_icon]
|
|||
|
|
|||
|
m2m dword[tree1.data_img],dword[tree_nod_icon]
|
|||
|
m2m dword[tree2.data_img],dword[tree_nod_icon]
|
|||
|
@@:
|
|||
|
|
|||
|
mcall 40,0x27
|
|||
|
|
|||
|
mcall 48,3,sc,sizeof.system_colors
|
|||
|
;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥⮢
|
|||
|
edit_boxes_set_sys_color edit1,editboxes_end,sc
|
|||
|
check_boxes_set_sys_color ch1,checkboxes_end,sc
|
|||
|
|
|||
|
mov byte[file_name],0
|
|||
|
|
|||
|
red_win:
|
|||
|
call draw_win
|
|||
|
call but_MetLoad
|
|||
|
|
|||
|
still:
|
|||
|
mov eax,10
|
|||
|
mcall
|
|||
|
|
|||
|
cmp al,0x1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
jz red_win
|
|||
|
cmp al,0x2
|
|||
|
jz key
|
|||
|
cmp al,0x3
|
|||
|
jz button
|
|||
|
|
|||
|
push dword ch2
|
|||
|
call [check_box_mouse]
|
|||
|
push dword ch1
|
|||
|
call [check_box_mouse]
|
|||
|
|
|||
|
stdcall [edit_box_mouse], edit1
|
|||
|
stdcall [edit_box_mouse], edit2
|
|||
|
|
|||
|
stdcall [tl_mouse], tree1
|
|||
|
stdcall [tl_mouse], tree2
|
|||
|
|
|||
|
jmp still
|
|||
|
|
|||
|
key:
|
|||
|
push eax ebx
|
|||
|
mcall 2
|
|||
|
stdcall [edit_box_key], edit1
|
|||
|
stdcall [edit_box_key], edit2
|
|||
|
|
|||
|
push dword tree1
|
|||
|
call [tl_key]
|
|||
|
push dword tree2
|
|||
|
call [tl_key]
|
|||
|
|
|||
|
mov ebx,dword[el_focus] ;<3B><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> treelist <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
cmp ebx, dword tree1
|
|||
|
je .end_f
|
|||
|
cmp ebx, dword tree2
|
|||
|
je .end_f
|
|||
|
|
|||
|
;<3B><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
test word[edit1.flags],10b ;ed_focus
|
|||
|
jne .end_f
|
|||
|
test word[edit2.flags],10b ;ed_focus
|
|||
|
jne .end_f
|
|||
|
|
|||
|
cmp ah,179 ;Right
|
|||
|
jne @f
|
|||
|
call CursorMoveRight
|
|||
|
@@:
|
|||
|
cmp ah,176 ;Left
|
|||
|
jne @f
|
|||
|
cmp dword[map.coord_x],0
|
|||
|
je @f
|
|||
|
dec dword[map.coord_x]
|
|||
|
;ᤢ<><E1A4A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD> <20><>ࠢ<EFBFBD>, <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD> ᮢ<><E1AEA2><EFBFBD><EFBFBD> <20> <20><><EFBFBD>諮<EFBFBD><E8ABAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
stdcall tiles_grid_move_right, tile_00,max_tiles_count,max_tiles_cols
|
|||
|
call but_Refresh
|
|||
|
@@:
|
|||
|
cmp ah,177 ;Down
|
|||
|
jne @f
|
|||
|
call CursorMoveDown
|
|||
|
@@:
|
|||
|
cmp ah,178 ;Up
|
|||
|
jne @f
|
|||
|
cmp dword[map.coord_y],0
|
|||
|
je @f
|
|||
|
dec dword[map.coord_y]
|
|||
|
;ᤢ<><E1A4A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
stdcall tiles_grid_move_down, tile_00,max_tiles_count,max_tiles_rows
|
|||
|
call but_Refresh
|
|||
|
@@:
|
|||
|
|
|||
|
cmp ah,45 ;-
|
|||
|
jne @f
|
|||
|
call but_ZoomM
|
|||
|
@@:
|
|||
|
cmp ah,61 ;+
|
|||
|
jne @f
|
|||
|
call but_ZoomP
|
|||
|
@@:
|
|||
|
|
|||
|
.end_f:
|
|||
|
pop ebx eax
|
|||
|
jmp still
|
|||
|
|
|||
|
|
|||
|
align 4
|
|||
|
draw_win:
|
|||
|
pushad
|
|||
|
mcall 12,1
|
|||
|
|
|||
|
xor eax,eax
|
|||
|
mov ebx,20*65536+min_window_w
|
|||
|
mov ecx,20*65536+min_window_h
|
|||
|
mov edx,[sc.work]
|
|||
|
or edx,0x33000000
|
|||
|
mov edi,hed
|
|||
|
mcall
|
|||
|
|
|||
|
mcall 9,procinfo,-1
|
|||
|
|
|||
|
cmp dword[procinfo.box.width],min_window_w ; <20><EFBFBD><E0AEA2>塞 <20><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
jge @f
|
|||
|
mov dword[procinfo.box.width],min_window_w ; <20> <20><><EFBFBD><EFBFBD> <20>祭<EFBFBD> 㧪<><E3A7AA>, 㢥<><E3A2A5>稢<EFBFBD><E7A8A2><EFBFBD> <20><>ਭ<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
|||
|
@@:
|
|||
|
|
|||
|
mov edi,dword[procinfo.box.width]
|
|||
|
sub edi,min_window_w-otst_panel_left
|
|||
|
mov dword[tree1.box_left],edi
|
|||
|
mov dword[tree2.box_left],edi
|
|||
|
|
|||
|
mov eax,dword[tree2.box_left] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
|
|||
|
add eax,dword[tree2.box_width]
|
|||
|
mov ebx,dword[tree2.p_scrol]
|
|||
|
mov word[ebx+2],ax
|
|||
|
|
|||
|
mov dword[edit2.left],edi
|
|||
|
add dword[edit2.left],370-otst_panel_left
|
|||
|
|
|||
|
stdcall dword[tl_draw],dword tree1
|
|||
|
stdcall dword[tl_draw],dword tree2
|
|||
|
mov dword[wScrMetki.all_redraw],1
|
|||
|
push dword wScrMetki
|
|||
|
call [scrollbar_ver_draw]
|
|||
|
|
|||
|
mov eax,8 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ebx,145*65536+20
|
|||
|
mov ecx,5*65536+25
|
|||
|
mov edx,6
|
|||
|
mov esi,[sc.work_button]
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov ebx,100*65536+20
|
|||
|
mov ecx,5*65536+25
|
|||
|
mov edx,5
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
shl ebx,16
|
|||
|
mov bx,100
|
|||
|
mov ecx,265*65536+25
|
|||
|
mov edx,9
|
|||
|
int 0x40
|
|||
|
|
|||
|
;ebx ...
|
|||
|
mov ecx,235*65536+25
|
|||
|
mov edx,8
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,410-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,55
|
|||
|
;mov ebx,410*65536+55
|
|||
|
mov ecx,5*65536+25
|
|||
|
mov edx,7
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,440-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,30
|
|||
|
;mov ebx,440*65536+30
|
|||
|
mov ecx,265*65536+25
|
|||
|
mov edx,12
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,405-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,30
|
|||
|
;mov ebx,405*65536+30
|
|||
|
mov ecx,265*65536+25
|
|||
|
mov edx,11
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,370-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,30
|
|||
|
;mov ebx,370*65536+30
|
|||
|
mov ecx,265*65536+25
|
|||
|
mov edx,10
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov eax,4 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|||
|
mov ebx,152*65536+13
|
|||
|
mov ecx,[sc.work_button_text]
|
|||
|
or ecx,0x80000000
|
|||
|
mov edx,txt_zoom_p
|
|||
|
mcall
|
|||
|
|
|||
|
mov ebx,107*65536+13
|
|||
|
mov edx,txt_zoom_m
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,270-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,243
|
|||
|
;mov ebx,270*65536+243
|
|||
|
mov edx,txt151
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,270-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,273
|
|||
|
;mov ebx,270*65536+273
|
|||
|
mov edx,txt152
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,415-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,13
|
|||
|
;mov ebx,415*65536+13
|
|||
|
mov edx,txt_but_refresh
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,380-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,275
|
|||
|
;mov ebx,380*65536+275
|
|||
|
mov edx,txt_met_up
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,415-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,275
|
|||
|
;mov ebx,415*65536+275
|
|||
|
mov edx,txt_met_dn
|
|||
|
int 0x40
|
|||
|
|
|||
|
|
|||
|
mov bx,di
|
|||
|
add bx,450-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,275
|
|||
|
;mov ebx,450*65536+275
|
|||
|
mov edx,txt_met_sh
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov ecx,[sc.work_text]
|
|||
|
or ecx,0x80000000
|
|||
|
|
|||
|
mov ebx,175*65536+13
|
|||
|
mov edx,txt_cache
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,di
|
|||
|
;add bx,450-otst_panel_left
|
|||
|
shl ebx,16
|
|||
|
mov bx,35
|
|||
|
;mov ebx,265*65536+35
|
|||
|
mov edx,txt141
|
|||
|
int 0x40
|
|||
|
|
|||
|
mov bx,135
|
|||
|
;mov ebx,265*65536+135
|
|||
|
mov edx,txt142
|
|||
|
int 0x40
|
|||
|
|
|||
|
call draw_tiles
|
|||
|
|
|||
|
push dword ch2
|
|||
|
call [check_box_draw]
|
|||
|
push dword ch1
|
|||
|
call [check_box_draw]
|
|||
|
|
|||
|
stdcall [edit_box_draw], edit1
|
|||
|
stdcall [edit_box_draw], edit2
|
|||
|
|
|||
|
mcall 12,2
|
|||
|
popad
|
|||
|
ret
|
|||
|
|
|||
|
head_f_i:
|
|||
|
head_f_l db '<27><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20>訡<EFBFBD><E8A8A1>',0
|
|||
|
err_message_found_lib0 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj',0
|
|||
|
err_message_import0 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj',0
|
|||
|
err_message_found_lib1 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libimg.obj',0
|
|||
|
err_message_import1 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libimg.obj',0
|
|||
|
err_message_found_lib2 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> str.obj',0
|
|||
|
err_message_import2 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> str.obj',0
|
|||
|
err_message_found_lib3 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libini.obj',0
|
|||
|
err_message_import3 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libini.obj',0
|
|||
|
|
|||
|
system_dir0 db '/sys/lib/'
|
|||
|
boxlib_name db 'box_lib.obj',0
|
|||
|
|
|||
|
system_dir1 db '/sys/lib/'
|
|||
|
libimg_name db 'libimg.obj',0
|
|||
|
|
|||
|
system_dir2 db '/sys/lib/'
|
|||
|
strlib_name db 'str.obj',0
|
|||
|
|
|||
|
system_dir3 db '/sys/lib/'
|
|||
|
libini_name db 'libini.obj',0
|
|||
|
|
|||
|
;library structures
|
|||
|
l_libs_start:
|
|||
|
lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, boxlib_import,err_message_import0, head_f_i
|
|||
|
lib1 l_libs libimg_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, libimg_import, err_message_import1, head_f_i
|
|||
|
lib2 l_libs strlib_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, strlib_import, err_message_import2, head_f_i
|
|||
|
lib3 l_libs libini_name, sys_path, file_name, system_dir3, err_message_found_lib3, head_f_l, libini_import, err_message_import3, head_f_i
|
|||
|
load_lib_end:
|
|||
|
|
|||
|
align 4
|
|||
|
button:
|
|||
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
cmp ah,5
|
|||
|
jne @f
|
|||
|
call but_ZoomM
|
|||
|
@@:
|
|||
|
cmp ah,6
|
|||
|
jne @f
|
|||
|
call but_ZoomP
|
|||
|
@@:
|
|||
|
cmp ah,7
|
|||
|
jne @f
|
|||
|
call but_Refresh
|
|||
|
@@:
|
|||
|
|
|||
|
cmp ah,9
|
|||
|
jz but_MetSave
|
|||
|
cmp ah,8
|
|||
|
jz but_MetAdd
|
|||
|
|
|||
|
cmp ah,10
|
|||
|
jne @f
|
|||
|
call but_met_up
|
|||
|
@@:
|
|||
|
cmp ah,11
|
|||
|
jne @f
|
|||
|
call but_met_dn
|
|||
|
@@:
|
|||
|
cmp ah,12
|
|||
|
jne @f
|
|||
|
call fun_goto_met
|
|||
|
@@:
|
|||
|
cmp ah,1
|
|||
|
jne still
|
|||
|
|
|||
|
.exit:
|
|||
|
push dword[bmp_icon]
|
|||
|
call mem.Free
|
|||
|
stdcall array_tile_function, tile_00,max_tiles_count,tile_destroy
|
|||
|
|
|||
|
stdcall dword[tl_data_clear], tree1
|
|||
|
mov dword[tree2.data_img_sys],0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
;<3B>. <20>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tl_data_clear
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> tl_data_clear <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov dword[tree2.data_img],0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
stdcall dword[tl_data_clear], tree2
|
|||
|
|
|||
|
; stdcall dword[img_destroy], dword[data_icon]
|
|||
|
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
|||
|
|
|||
|
|
|||
|
;input:
|
|||
|
;data_rgb - pointer to rgb data
|
|||
|
;size - count img pixels (size img data / 3(rgb) )
|
|||
|
align 4
|
|||
|
proc img_rgb_wdiv2 data_rgb:dword, size:dword
|
|||
|
push eax ebx ecx edx
|
|||
|
mov eax,dword[data_rgb]
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
imul ecx,3
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
shr byte[eax],1
|
|||
|
and byte[eax],0x7f
|
|||
|
inc eax
|
|||
|
loop @b
|
|||
|
|
|||
|
mov eax,dword[data_rgb]
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
shr ecx,1
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ebx,dword[eax+3] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
add word[eax],bx
|
|||
|
shr ebx,16
|
|||
|
add byte[eax+2],bl
|
|||
|
|
|||
|
add eax,6 ;=2*3
|
|||
|
loop @b
|
|||
|
|
|||
|
mov eax,dword[data_rgb]
|
|||
|
add eax,3
|
|||
|
mov ebx,eax
|
|||
|
add ebx,3
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
shr ecx,1
|
|||
|
dec ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov edx,dword[ebx]
|
|||
|
mov word[eax],dx
|
|||
|
shr edx,16
|
|||
|
mov byte[eax+2],dl
|
|||
|
|
|||
|
add eax,3
|
|||
|
add ebx,6
|
|||
|
loop @b
|
|||
|
|
|||
|
pop edx ecx ebx eax
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
;input:
|
|||
|
;data_rgb - pointer to rgb data
|
|||
|
;size - count img pixels (size img data / 3(rgb) )
|
|||
|
;size_w - width img in pixels
|
|||
|
align 4
|
|||
|
proc img_rgb_hdiv2, data_rgb:dword, size:dword, size_w:dword
|
|||
|
pushad
|
|||
|
|
|||
|
mov eax,dword[data_rgb] ;eax =
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
imul ecx,3
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
shr byte[eax],1
|
|||
|
and byte[eax],0x7f
|
|||
|
inc eax
|
|||
|
loop @b
|
|||
|
|
|||
|
mov eax,dword[data_rgb] ;eax =
|
|||
|
mov edi,dword[size_w]
|
|||
|
lea esi,[edi+edi*2] ;esi = width*3(rgb)
|
|||
|
mov ebx,esi
|
|||
|
add ebx,eax
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
shr ecx,1
|
|||
|
xor edi,edi
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov edx,dword[ebx] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
add word[eax],dx
|
|||
|
shr edx,16
|
|||
|
add byte[eax+2],dl
|
|||
|
|
|||
|
add eax,3
|
|||
|
add ebx,3
|
|||
|
inc edi
|
|||
|
cmp edi,dword[size_w]
|
|||
|
jl .old_line
|
|||
|
add eax,esi
|
|||
|
add ebx,esi
|
|||
|
xor edi,edi
|
|||
|
.old_line:
|
|||
|
loop @b
|
|||
|
|
|||
|
|
|||
|
mov eax,dword[data_rgb] ;eax =
|
|||
|
add eax,esi ;esi = width*3(rgb)
|
|||
|
mov ebx,esi
|
|||
|
add ebx,eax
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
shr ecx,1
|
|||
|
sub ecx,dword[size_w] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
xor edi,edi
|
|||
|
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov edx,dword[ebx] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov word[eax],dx
|
|||
|
shr edx,16
|
|||
|
mov byte[eax+2],dl
|
|||
|
|
|||
|
add eax,3
|
|||
|
add ebx,3
|
|||
|
inc edi
|
|||
|
cmp edi,dword[size_w]
|
|||
|
jl .old_line_2
|
|||
|
add ebx,esi
|
|||
|
xor edi,edi
|
|||
|
.old_line_2:
|
|||
|
loop @b
|
|||
|
|
|||
|
popad
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
;input:
|
|||
|
;data_rgb - pointer to rgb data
|
|||
|
;size - count img pixels (size img data / 3(rgb) )
|
|||
|
align 4
|
|||
|
proc img_rgb_wmul2, data_rgb:dword, size:dword
|
|||
|
push eax ebx ecx edx
|
|||
|
;eax - source
|
|||
|
;ebx - destination
|
|||
|
mov ecx,dword[size] ;ecx = size
|
|||
|
mov eax,ecx
|
|||
|
dec eax
|
|||
|
lea eax,[eax+eax*2] ;eax = (size-1)*3
|
|||
|
mov ebx,eax ;ebx = size*3
|
|||
|
add eax,dword[data_rgb] ;eax = pointer + size*3
|
|||
|
add ebx,eax ;ebx = pointer + 2*size*3
|
|||
|
@@:
|
|||
|
mov edx,dword[eax] ;edx = pixel color
|
|||
|
mov word[ebx],dx
|
|||
|
mov word[ebx+3],dx
|
|||
|
shr edx,16
|
|||
|
mov byte[ebx+2],dl
|
|||
|
mov byte[ebx+3+2],dl
|
|||
|
sub eax,3
|
|||
|
sub ebx,6
|
|||
|
loop @b
|
|||
|
pop edx ecx ebx eax
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
;<3B>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFA3A8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 2 ࠧ<>
|
|||
|
;<3B> 㪠<><E3AAA0>⥫<EFBFBD> data_rgb <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> 2 ࠧ<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祬 size*3
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFA3A8><EFBFBD><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20>訡<EFBFBD><E8A8A1>, <20><>室<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;input:
|
|||
|
;data_rgb - pointer to rgb data
|
|||
|
;size - count img pixels (size img data / 3(rgb) )
|
|||
|
;size_w - width img in pixels
|
|||
|
align 4
|
|||
|
proc img_rgb_hmul2, data_rgb:dword, size:dword, size_w:dword
|
|||
|
pushad
|
|||
|
|
|||
|
mov esi,dword[size_w]
|
|||
|
lea esi,[esi+esi*2] ;esi = width * 3(rgb)
|
|||
|
mov eax,dword[size]
|
|||
|
lea eax,[eax+eax*2]
|
|||
|
mov edi,eax
|
|||
|
shl edi,1
|
|||
|
add eax,dword[data_rgb] ;eax = pointer to end pixel (old image) + 1
|
|||
|
add edi,dword[data_rgb] ;edi = pointer to end pixel (new image) + 1
|
|||
|
mov ebx,edi
|
|||
|
sub ebx,esi
|
|||
|
|
|||
|
.beg_line:
|
|||
|
mov ecx,dword[size_w]
|
|||
|
@@:
|
|||
|
sub eax,3
|
|||
|
sub ebx,3
|
|||
|
sub edi,3
|
|||
|
|
|||
|
mov edx,dword[eax] ;edx = pixel color
|
|||
|
mov word[ebx],dx
|
|||
|
mov word[edi],dx
|
|||
|
shr edx,16
|
|||
|
mov byte[ebx+2],dl
|
|||
|
mov byte[edi+2],dl
|
|||
|
|
|||
|
loop @b
|
|||
|
|
|||
|
sub ebx,esi
|
|||
|
sub edi,esi
|
|||
|
|
|||
|
cmp eax,dword[data_rgb]
|
|||
|
jg .beg_line
|
|||
|
|
|||
|
popad
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
;input:
|
|||
|
;data_rgb - pointer to rgb data
|
|||
|
;size - count img pixels (size img data / 3(rgb) )
|
|||
|
;size_w - width img in pixels
|
|||
|
align 4
|
|||
|
proc img_rgb_hoffs, data_rgb:dword, size:dword, size_w:dword, hoffs:dword
|
|||
|
push eax ebx ecx edx esi
|
|||
|
|
|||
|
mov esi,dword[size_w]
|
|||
|
lea esi,[esi+esi*2] ;esi = width * 3(rgb)
|
|||
|
imul esi,dword[hoffs]
|
|||
|
|
|||
|
mov eax,dword[size]
|
|||
|
lea eax,[eax+eax*2]
|
|||
|
add eax,dword[data_rgb] ;eax = pointer to end pixel + 1
|
|||
|
sub eax,3
|
|||
|
mov ebx,eax
|
|||
|
add ebx,esi
|
|||
|
|
|||
|
mov ecx,dword[size]
|
|||
|
dec ecx
|
|||
|
@@:
|
|||
|
mov edx,dword[eax] ;edx = pixel color
|
|||
|
mov word[ebx],dx
|
|||
|
shr edx,16
|
|||
|
mov byte[ebx+2],dl
|
|||
|
|
|||
|
sub eax,3
|
|||
|
sub ebx,3
|
|||
|
loop @b
|
|||
|
pop esi edx ecx ebx eax
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
|
|||
|
;input:
|
|||
|
;data_rgb - pointer to rgb data
|
|||
|
;size_w_old - width img in pixels
|
|||
|
;size_w_new - new width img in pixels
|
|||
|
;size_h - height img in pixels
|
|||
|
align 4
|
|||
|
proc img_rgb_wcrop, data_rgb:dword, size_w_old:dword, size_w_new:dword, size_h:dword
|
|||
|
pushad
|
|||
|
mov eax, dword[size_w_old]
|
|||
|
lea eax, dword[eax+eax*2] ;eax = width(old) * 3(rgb)
|
|||
|
mov ebx, dword[size_w_new]
|
|||
|
lea ebx, dword[ebx+ebx*2] ;ebx = width(new) * 3(rgb)
|
|||
|
mov edx, dword[size_h]
|
|||
|
;dec edx
|
|||
|
mov edi, dword[data_rgb] ;edi - <20><><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov esi, edi
|
|||
|
add edi, ebx
|
|||
|
add esi, eax
|
|||
|
cld
|
|||
|
@@:
|
|||
|
dec edx ;㬥<><E3ACA5>蠥<EFBFBD> <20><><EFBFBD><EFBFBD>稪 <20><>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD> <20><>ப <20><> 1
|
|||
|
cmp edx,0
|
|||
|
jle @f
|
|||
|
|
|||
|
mov ecx, ebx
|
|||
|
rep movsb ;<3B><>७<EFBFBD><E0A5AD> (<28><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>) <20><>ப<EFBFBD> <20><><EFBFBD>ᥫ<EFBFBD><E1A5AB>
|
|||
|
;stdcall mem_copy,esi,edi,ebx
|
|||
|
|
|||
|
add esi,eax ;<3B><><EFBFBD><EFBFBD>室 <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
|||
|
sub esi,ebx
|
|||
|
;add esi,eax
|
|||
|
;add edi,ebx
|
|||
|
jmp @b
|
|||
|
@@:
|
|||
|
|
|||
|
popad
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
align 4
|
|||
|
proc mem_copy, source:dword, destination:dword, len:dword
|
|||
|
push ecx esi edi
|
|||
|
cld
|
|||
|
mov esi, dword[source]
|
|||
|
mov edi, dword[destination]
|
|||
|
mov ecx, dword[len]
|
|||
|
rep movsb
|
|||
|
pop edi esi ecx
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
align 4
|
|||
|
proc mem_clear, mem:dword, len:dword
|
|||
|
push eax ecx edi
|
|||
|
cld
|
|||
|
xor al,al
|
|||
|
mov edi, dword[mem]
|
|||
|
mov ecx, dword[len]
|
|||
|
repne stosb
|
|||
|
pop edi ecx eax
|
|||
|
ret
|
|||
|
endp
|
|||
|
|
|||
|
txt_met_up db 24,0
|
|||
|
txt_met_dn db 25,0
|
|||
|
txt_met_sh db '*',0
|
|||
|
txt_zoom_m db '-',0
|
|||
|
txt_zoom_p db '+',0
|
|||
|
txt151 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>',0
|
|||
|
txt152 db '<27><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>⪨',0
|
|||
|
txt_but_refresh db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
|||
|
txt_cache db 'Cache:',0
|
|||
|
txt141 db '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>',0
|
|||
|
txt142 db '<27>롮<EFBFBD> <20><>⪨',0
|
|||
|
|
|||
|
; check_boxes
|
|||
|
ch1 check_box 5, 5, 6, 12, 0xffffd0, 0x800000, 0, ch_text1, 12,ch_flag_en
|
|||
|
ch2 check_box 5, 20, 6, 12, 0xffffd0, 0x800000, 0, ch_text2, 11,ch_flag_en
|
|||
|
checkboxes_end:
|
|||
|
|
|||
|
ch_text1 db '<27><><EFBFBD><EFBFBD><EFBFBD> ᢥ<><E1A2A5><EFBFBD>'
|
|||
|
ch_text2 db '<27><><EFBFBD><EFBFBD><EFBFBD> ᭨<><E1ADA8>'
|
|||
|
|
|||
|
edit1 edit_box 190, 215, 10, 0xd0ffff, 0xff, 0x80ff, 0, 0xa000, 500, ed_buffer.1, mouse_dd, 0
|
|||
|
edit2 edit_box 100, 370, 240, 0xd0ffff, 0xff, 0x80ff, 0, 0xa000, 30, ed_buffer.2, mouse_dd, 0
|
|||
|
editboxes_end:
|
|||
|
|
|||
|
tree1 tree_list 10,10, tl_list_box_mode+tl_key_no_edit, 16,16,\
|
|||
|
0x8080ff,0x0000ff,0xffffff, 265,45,90,85, 0,0,0,\
|
|||
|
el_focus, 0,fun_new_map_type
|
|||
|
tree2 tree_list 32,300, tl_draw_par_line, 16,16,\
|
|||
|
0x8080ff,0x0000ff,0xffffff, 265,145,190,85, 0,12,0,\
|
|||
|
el_focus, wScrMetki,fun_goto_met
|
|||
|
|
|||
|
align 4
|
|||
|
wScrMetki:
|
|||
|
.x:
|
|||
|
.size_x dw 16 ;+0
|
|||
|
.start_x dw 0 ;+2
|
|||
|
.y:
|
|||
|
.size_y dw 100 ;+4
|
|||
|
.start_y dw 0 ;+6
|
|||
|
.btn_high dd 15 ;+8
|
|||
|
.type dd 1 ;+12
|
|||
|
.max_area dd 100 ;+16
|
|||
|
.cur_area dd 30 ;+20
|
|||
|
.position dd 0 ;+24
|
|||
|
.bckg_col dd 0xeeeeee ;+28
|
|||
|
.frnt_col dd 0xbbddff ;+32
|
|||
|
.line_col dd 0 ;+36
|
|||
|
.redraw dd 0 ;+40
|
|||
|
.delta dw 0 ;+44
|
|||
|
.delta2 dw 0 ;+46
|
|||
|
.run_x:
|
|||
|
.r_size_x dw 0 ;+48
|
|||
|
.r_start_x dw 0 ;+50
|
|||
|
.run_y:
|
|||
|
.r_size_y dw 0 ;+52
|
|||
|
.r_start_y dw 0 ;+54
|
|||
|
.m_pos dd 0 ;+56
|
|||
|
.m_pos_2 dd 0 ;+60
|
|||
|
.m_keys dd 0 ;+64
|
|||
|
.run_size dd 0 ;+68
|
|||
|
.position2 dd 0 ;+72
|
|||
|
.work_size dd 0 ;+76
|
|||
|
.all_redraw dd 0 ;+80
|
|||
|
.ar_offset dd 1 ;+84
|
|||
|
|
|||
|
ed_buffer: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> edit
|
|||
|
.1: rb 502
|
|||
|
.2: rb 32
|
|||
|
|
|||
|
el_focus dd tree1
|
|||
|
|
|||
|
tree_sys_icon dd 0
|
|||
|
tree_nod_icon dd 0
|
|||
|
|
|||
|
bmp_icon dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
|||
|
data_icon dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD> <20>㭪<EFBFBD><E3ADAA>ﬨ libimg
|
|||
|
|
|||
|
run_file_70 f70
|
|||
|
|
|||
|
|
|||
|
txt_tile_path db 'tile path',0
|
|||
|
rb 300
|
|||
|
txt_tile_type dd txt_tile_type_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
txt_tile_type_0 db 0
|
|||
|
rb 10
|
|||
|
|
|||
|
align 4
|
|||
|
map: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
.coord_x dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x
|
|||
|
.coord_y dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> y
|
|||
|
.zoom db 1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
align 4
|
|||
|
tile_00 rb size_tile_struc * max_tiles_count
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;input:
|
|||
|
; eax = value
|
|||
|
; edi = string buffer
|
|||
|
;output:
|
|||
|
; edi =
|
|||
|
align 4
|
|||
|
tl_convert_to_str:
|
|||
|
pushad
|
|||
|
mov dword[edi+1],0;0x20202020
|
|||
|
call .str
|
|||
|
popad
|
|||
|
ret
|
|||
|
|
|||
|
align 4
|
|||
|
.str:
|
|||
|
mov ecx,0x0a ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ebx,eax,ecx,edx <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> eax - <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ASCII <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ecx=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edi <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
cmp eax,ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> ecx <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> @@-1 <20>.<2E>. <20><> pop eax
|
|||
|
jb @f
|
|||
|
xor edx,edx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx
|
|||
|
div ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> edx
|
|||
|
push edx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
|||
|
;dec edi ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
call .str;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> eax <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> ecx
|
|||
|
pop eax
|
|||
|
@@: ;cmp al,10 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> al <20><><EFBFBD> 10 (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>))
|
|||
|
or al,0x30 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
stosb ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> al <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> es:edi
|
|||
|
ret ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
hed db 'Planet viewer 09.02.10',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
sc system_colors ;<3B><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
|||
|
mouse_dd dd 0 ;<3B>㦭<EFBFBD> <20><><EFBFBD> Shift-<2D> <20> editbox
|
|||
|
sys_path rb 4096
|
|||
|
file_name:
|
|||
|
rb 4096
|
|||
|
i_end:
|
|||
|
procinfo process_information
|
|||
|
rb 1024
|
|||
|
stacktop:
|
|||
|
mem:
|
|||
|
|