2010-02-09 17:54:59 +03: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
dd sys_path
include '../../proc32.inc'
include '../../macros.inc'
include 'mem.inc'
include 'dll.inc'
include '../../develop/libraries/box_lib/load_lib.mac'
2010-03-12 22:52:43 +03:00
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
2010-02-09 17:54:59 +03:00
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'
2010-06-09 01:43:19 +04:00
@ use_library_mem mem.Alloc , mem.Free , mem.ReAlloc , dl l.Load
2010-02-09 17:54:59 +03:00
2010-05-17 20:49:58 +04:00
struc t FileInfoBlock
Function dd ?
Position dd ?
Flags dd ?
Count dd ?
Buffer dd ?
db ?
FileName dd ?
2010-02-09 17:54:59 +03:00
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
@ @ :
copy_path ini_name , sys_path , file_name , 0x0
stdcall dword [ ini_get_str ], file_name , ini_sec , ini_k_cache , dword [ edi t1.text ], dword [ edi t1.max ], ini_def_cache
stdcall [ str_len ], dword [ edi t1.text ], dword [ edi t1.max ]
mov dword [ edi t1.size ], eax
mov dword [ edi t1.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
2010-05-27 18:46:37 +04:00
stdcall mem.Alloc , 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>
2010-02-09 17:54:59 +03:00
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
2010-05-27 18:46:37 +04:00
stdcall mem.Alloc , dword TREE_ICON_SYS16_BMP_SIZE
2010-02-09 17:54:59 +03:00
mov [ tree_sys_icon ], eax
2010-05-27 18:46:37 +04:00
stdcall mem.Alloc , dword TREE_ICON_NOD16_BMP_SIZE
2010-02-09 17:54:59 +03:00
mov [ tree_nod_icon ], eax
copy_path fn_icon1 , sys_path , file_name , 0x0
mov eax , 70 ;load icon file
2010-05-17 20:49:58 +04:00
mov [ run_file_70.Function ], 0
mov [ run_file_70.Position ], 0
mov [ run_file_70.Flags ], 0
mov [ run_file_70.Count ], TREE_ICON_SYS16_BMP_SIZE
m2m [ run_file_70.Buffer ], [ tree_sys_icon ]
mov byte [ run_file_70 + 20 ], 0
mov [ run_file_70.FileName ], file_name
2010-02-09 17:54:59 +03:00
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
2010-05-17 20:49:58 +04:00
mov [ run_file_70.Count ], TREE_ICON_NOD16_BMP_SIZE
m2m [ run_file_70.Buffer ], [ tree_nod_icon ]
2010-02-09 17:54:59 +03:00
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 , si zeof.system_colors
;<3B> <> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> 梥⮢
edit_boxes_set_sys_color edi t1 , edi tboxes_end , sc
check_boxes_set_sys_color ch 1 , ch eckboxes_end , sc
mov byte [ file_name ], 0
2010-05-27 18:46:37 +04:00
; OpenDialog initialisation
2010-08-24 14:22:01 +04:00
stdcall [ OpenDialog_Init ], OpenDialog_data
2010-05-27 18:46:37 +04:00
align 4
2010-02-09 17:54:59 +03:00
red_win:
2010-05-27 18:46:37 +04:00
call draw_window
2010-02-09 17:54:59 +03:00
call but_MetLoad
2010-05-27 18:46:37 +04:00
align 4
2010-02-09 17:54:59 +03:00
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 ch 2
call [ ch eck_box_mouse ]
push dword ch 1
call [ ch eck_box_mouse ]
stdcall [ edi t_box_mouse ], edi t1
stdcall [ edi t_box_mouse ], edi t2
stdcall [ tl_mouse ], tree1
stdcall [ tl_mouse ], tree2
jmp still
2010-05-27 18:46:37 +04:00
align 4
2010-02-09 17:54:59 +03:00
key:
push eax ebx
mcall 2
stdcall [ edi t_box_key ], edi t1
stdcall [ edi t_box_key ], edi t2
push dword tree1
call [ tl_key ]
push dword tree2
call [ tl_key ]
2010-05-27 18:46:37 +04:00
mov ebx , dword [ el_focus ] ;<3B> <> <EFBFBD> -<2D> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> treelist <20> 䮪<> <E4AEAA> <EFBFBD>
2010-02-09 17:54:59 +03:00
cmp ebx , dword tree1
je .end_f
cmp ebx , dword tree2
je .end_f
2010-05-27 18:46:37 +04:00
;<3B> <> <EFBFBD> -<2D> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⥪<> ⮢<EFBFBD> <E2AEA2> <20> <> <EFBFBD> <EFBFBD> <20> 䮪<> <E4AEAA> <EFBFBD>
2010-02-09 17:54:59 +03:00
test word [ edi t1.flags ], 10b ;ed_focus
jne .end_f
test word [ edi t2.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
2010-05-27 18:46:37 +04:00
draw_window:
2010-02-09 17:54:59 +03:00
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 [ edi t2.left ], edi
add dword [ edi t2.left ], 370 - otst_panel_left
stdcall dword [ tl_draw ], dword tree1
stdcall dword [ tl_draw ], dword tree2
mov dword [ wScrMetki.all_redraw ], 1
2010-05-27 18:46:37 +04:00
stdcall [ scrollbar_ver_draw ], dword wScrMetki
2010-02-09 17:54:59 +03:00
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
2010-05-27 18:46:37 +04:00
mov ebx , 170 * 65536 + 40 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> OpenDial
;mov ecx,5*65536+25
mov edx , 13
int 0x40
2010-02-09 17:54:59 +03:00
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
2010-05-27 18:46:37 +04:00
;mov ecx,265*65536+25
2010-02-09 17:54:59 +03:00
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
2010-05-27 18:46:37 +04:00
;mov ecx,265*65536+25
2010-02-09 17:54:59 +03:00
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
2010-05-27 18:46:37 +04:00
stdcall [ ch eck_box_draw ], dword ch 1
stdcall [ ch eck_box_draw ], dword ch 2
2010-02-09 17:54:59 +03:00
stdcall [ edi t_box_draw ], edi t1
stdcall [ edi t_box_draw ], edi t2
mcall 12 , 2
popad
ret
head_f_i:
head_f_l db '<27> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> <20> 訡<EFBFBD> <E8A8A1> ' , 0
2010-08-24 14:22:01 +04:00
err_message_found_lib0 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> box_lib.obj' , 0
2010-02-09 17:54:59 +03:00
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
2010-08-24 14:22:01 +04:00
err_message_found_lib1 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> libimg.obj' , 0
2010-02-09 17:54:59 +03:00
err_message_import1 db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> libimg.obj' , 0
2010-08-24 14:22:01 +04:00
err_message_found_lib2 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> str.obj' , 0
2010-02-09 17:54:59 +03:00
err_message_import2 db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> str.obj' , 0
2010-08-24 14:22:01 +04:00
err_message_found_lib3 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> libini.obj' , 0
2010-02-09 17:54:59 +03:00
err_message_import3 db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> libini.obj' , 0
2010-08-24 14:22:01 +04:00
err_message_found_lib4 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> proc_lib.obj' , 0
err_message_import4 db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> proc_lib.obj' , 0
2010-02-09 17:54:59 +03:00
system_dir0 db '/sys/lib/'
2010-08-24 14:22:01 +04:00
lib0_name db 'box_lib.obj' , 0
2010-02-09 17:54:59 +03:00
system_dir1 db '/sys/lib/'
2010-08-24 14:22:01 +04:00
lib1_name db 'libimg.obj' , 0
2010-02-09 17:54:59 +03:00
system_dir2 db '/sys/lib/'
2010-08-24 14:22:01 +04:00
lib2_name db 'str.obj' , 0
2010-02-09 17:54:59 +03:00
system_dir3 db '/sys/lib/'
2010-08-24 14:22:01 +04:00
lib3_name db 'libini.obj' , 0
system_dir4 db '/sys/lib/'
lib4_name db 'proc_lib.obj' , 0
2010-02-09 17:54:59 +03:00
;library structures
l_libs_start:
2010-08-24 14:22:01 +04:00
lib0 l_libs lib0_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 lib1_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 lib2_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 lib3_name , sys_path , file_name , system_dir3 , err_message_found_lib3 , head_f_l , libini_import , err_message_import3 , head_f_i
lib4 l_libs lib4_name , sys_path , file_name , system_dir4 , err_message_found_lib4 , head_f_l , proclib_import , err_message_import4 , head_f_i
2010-02-09 17:54:59 +03:00
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
@ @ :
2010-05-27 18:46:37 +04:00
cmp ah , 13 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> OpenDialog <20> <> <EFBFBD> <20> <> <EFBFBD> ᪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
jne @ f
call fun_opn_dlg
@ @ :
2010-02-09 17:54:59 +03:00
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
2010-05-27 18:46:37 +04:00
mov dword [ tree2.data_img_sys ], 0 ;<3B> <> <EFBFBD> ⨬ 㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ,
;<3B> . <20> . <20> <> <EFBFBD> <20> 뫨 㤠<> <E3A4A0> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 孥<EFBFBD> <20> 㭪樥<E3ADAA> tl_data_clear
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 맮<EFBFBD> tl_data_clear <20> <> <EFBFBD> <20> <> <EFBFBD> ⪨ 㪠<> <E3AAA0> ⥫<EFBFBD> <20> 맢<EFBFBD> <EBA7A2> <20> 訡<EFBFBD> <E8A8A1>
mov dword [ tree2.data_img ], 0 ;<3B> <> <EFBFBD> ⨬ 㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㧫<> <E3A7AB>
2010-02-09 17:54:59 +03:00
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 , si ze : dword
push eax ebx ecx edx
mov eax , dword [ data_rgb ]
mov ecx , dword [ si ze ] ;ecx = size
imul ecx , 3
2010-05-27 18:46:37 +04:00
@ @ : ;<3B> <> ⥬<EFBFBD> <E2A5AC> <EFBFBD> <EFBFBD> <EFBFBD> 梥<> <E6A2A5> <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
2010-02-09 17:54:59 +03:00
shr byte [ eax ], 1
and byte [ eax ], 0x7f
inc eax
loop @ b
mov eax , dword [ data_rgb ]
mov ecx , dword [ si ze ] ;ecx = size
shr ecx , 1
2010-05-27 18:46:37 +04:00
@ @ : ;<> <E1ABAE> <EFBFBD> <EFBFBD> <EFBFBD> 梥⮢ <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
mov ebx , dword [ eax + 3 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 㥬 梥<> <20> <> ᥤ<EFBFBD> <E1A5A4> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᥫ<EFBFBD>
2010-02-09 17:54:59 +03:00
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 [ si ze ] ;ecx = size
shr ecx , 1
2010-05-27 18:46:37 +04:00
dec ecx ;<3B> <> 譨<EFBFBD> <20> <> <EFBFBD> ᥫ<EFBFBD>
@ @ : ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> ⨥ <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
2010-02-09 17:54:59 +03:00
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 , si ze : dword , si ze_w : dword
pushad
mov eax , dword [ data_rgb ] ;eax =
mov ecx , dword [ si ze ] ;ecx = size
imul ecx , 3
2010-05-27 18:46:37 +04:00
@ @ : ;<3B> <> ⥬<EFBFBD> <E2A5AC> <EFBFBD> <EFBFBD> <EFBFBD> 梥<> <E6A2A5> <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
2010-02-09 17:54:59 +03:00
shr byte [ eax ], 1
and byte [ eax ], 0x7f
inc eax
loop @ b
mov eax , dword [ data_rgb ] ;eax =
mov edi , dword [ si ze_w ]
lea esi ,[ edi + edi * 2 ] ;esi = width*3(rgb)
mov ebx , esi
add ebx , eax
mov ecx , dword [ si ze ] ;ecx = size
shr ecx , 1
xor edi , edi
2010-05-27 18:46:37 +04:00
@ @ : ;<> <E1ABAE> <EFBFBD> <EFBFBD> <EFBFBD> 梥⮢ <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
mov edx , dword [ ebx ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 㥬 梥<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᥫ<EFBFBD>
2010-02-09 17:54:59 +03:00
add word [ eax ], dx
shr edx , 16
add byte [ eax + 2 ], dl
add eax , 3
add ebx , 3
inc edi
cmp edi , dword [ si ze_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
2010-05-27 18:46:37 +04:00
mov ecx , dword [ si ze ] ;ecx = size
2010-02-09 17:54:59 +03:00
shr ecx , 1
2010-05-27 18:46:37 +04:00
sub ecx , dword [ si ze_w ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ப<EFBFBD> <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
2010-02-09 17:54:59 +03:00
xor edi , edi
2010-05-27 18:46:37 +04:00
@ @ : ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> ⨥ <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB>
mov edx , dword [ ebx ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 㥬 梥<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᥫ<EFBFBD>
2010-02-09 17:54:59 +03:00
mov word [ eax ], dx
shr edx , 16
mov byte [ eax + 2 ], dl
add eax , 3
add ebx , 3
inc edi
cmp edi , dword [ si ze_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 , si ze : dword
push eax ebx ecx edx
;eax - source
;ebx - destination
mov ecx , dword [ si ze ] ;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 , si ze : dword , si ze_w : dword
pushad
mov esi , dword [ si ze_w ]
lea esi ,[ esi + esi * 2 ] ;esi = width * 3(rgb)
mov eax , dword [ si ze ]
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 [ si ze_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 , si ze : dword , si ze_w : dword , hoffs : dword
push eax ebx ecx edx esi
mov esi , dword [ si ze_w ]
lea esi ,[ esi + esi * 2 ] ;esi = width * 3(rgb)
imul esi , dword [ hoffs ]
mov eax , dword [ si ze ]
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 [ si ze ]
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 , si ze_w_old : dword , si ze_w_new : dword , si ze_h : dword
pushad
mov eax , dword [ si ze_w_old ]
lea eax , dword [ eax + eax * 2 ] ;eax = width(old) * 3(rgb)
mov ebx , dword [ si ze_w_new ]
lea ebx , dword [ ebx + ebx * 2 ] ;ebx = width(new) * 3(rgb)
mov edx , dword [ si ze_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
2010-05-27 18:46:37 +04:00
align 4
fun_opn_dlg: ;<3B> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE> OpenFile <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
pushad
2010-05-27 19:30:32 +04:00
copy_path open_dialog_name , communication_area_default_path , file_name , 0
2010-05-27 18:46:37 +04:00
mov [ OpenDialog_data.type ], 2
mov dword [ plugin_path ], 0 ;<3B> <> <EFBFBD> -<2D> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⨨ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ᥣ<EFBFBD> <E1A5A3> <20> ࠫ<EFBFBD> <E0A0AB> <20> <> OpenDialog_data.dir_default_path
2010-08-24 14:22:01 +04:00
stdcall [ OpenDialog_Start ], OpenDialog_data
2010-05-27 18:46:37 +04:00
cmp [ OpenDialog_data.status ], 2
je @ f
mov esi ,[ OpenDialog_data.openfile_path ]
stdcall [ str_len ], dword [ edi t1.text ], dword [ edi t1.max ]
mov [ edi t1.size ], eax
mov [ edi t1.pos ], eax
stdcall [ edi t_box_draw ], edi t1
@ @ :
popad
ret
2010-02-09 17:54:59 +03:00
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 ch eck_box 5 , 5 , 6 , 12 , 0xffffd0 , 0x800000 , 0 , ch _text1 , 12 , ch _flag_en
ch2 ch eck_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> '
2010-05-27 18:46:37 +04:00
edit1 edi t_box 190 , 215 , 10 , 0xd0ffff , 0xff , 0x80ff , 0 , 0xa000 , 4090 , openfile_path , mouse_dd , 0
2010-02-09 17:54:59 +03:00
edit2 edi t_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 , \
0 x8080ff , 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 , \
0 x8080ff , 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
.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
2010-05-17 20:49:58 +04:00
run_file_70 FileInfoBlock
2010-02-09 17:54:59 +03:00
txt_tile_path db 'tile path' , 0
rb 300
2010-05-27 18:46:37 +04:00
txt_tile_type dd txt_tile_type_0 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> ࠭<EFBFBD> <E0A0AD> <EFBFBD> ⨯ 䠩<> <E4A0A9> <EFBFBD>
2010-02-09 17:54:59 +03:00
txt_tile_type_0 db 0
rb 10
2010-05-27 18:46:37 +04:00
;---------------------------------------------------------------------
align 4
OpenDialog_data:
.type dd 2
.procinfo dd procinfo ;+4
.com_area_name dd communication_area_name ;+8
.com_area dd 0 ;+12
.opendir_path dd plugin_path ;+16
.dir_default_path dd openfile_path ;+20
.start_path dd file_name ;+24 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
.draw_window dd draw_window ;+28
.status dd 0 ;+32
.openfile_path dd openfile_path ;+36 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9>
.filename_area dd filename_area ;+40
.filter_area dd Filter
2010-08-24 14:22:01 +04:00
.x:
.x_size dw 420 ;+48 ; Window X size
.x_start dw 10 ;+50 ; Window X position
.y:
.y_size dw 320 ;+52 ; Window y size
.y_start dw 10 ;+54 ; Window Y position
2010-05-27 18:46:37 +04:00
communication_area_name:
db 'FFFFFFFF_open_dialog' , 0
open_dialog_name:
db 'opendial' , 0
communication_area_default_path:
2010-05-27 19:30:32 +04:00
db '/rd/1/File managers/' , 0
2010-05-27 18:46:37 +04:00
Filter:
dd Filter.end - Filter.1
.1:
db 'TXT' , 0
.end:
db 0
2010-02-09 17:54:59 +03:00
align 4
2010-05-27 18:46:37 +04:00
map: ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
.coord_x dd 0 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> x
.coord_y dd 0 ;<3B> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> y
.zoom db 1 ;<3B> <> <EFBFBD> <EFBFBD> ⠡
2010-02-09 17:54:59 +03:00
align 4
tile_00 rb si ze_tile_struc * max_tiles_count
2010-05-27 18:46:37 +04:00
;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> , <20> <> <20> ८<EFBFBD> ࠧ<EFBFBD> <E0A0A7> <EFBFBD> <20> <> <20> <20> <> ப<EFBFBD>
2010-02-09 17:54:59 +03:00
;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:
2010-05-27 18:46:37 +04:00
mov ecx , 0x0a ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⥬<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <E1ABA5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ॣ<> <E0A5A3> <EFBFBD> <EFBFBD> <EFBFBD> ebx,eax,ecx,edx <20> 室<EFBFBD> <E5AEA4> <EFBFBD> <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> <EFBFBD> eax - <20> <>
;<3B> <> <EFBFBD> ॢ<EFBFBD> <E0A5A2> <20> <> <20> ASCII <20> <> ப<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ecx=<3D> <> <EFBFBD> ⥬<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <E1ABA5> edi <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㤠 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> , <20> 㤥<EFBFBD> <20> <> ப<EFBFBD> , <20> <> <EFBFBD> 祬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , ecx ;<3B> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <20> <20> eax <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 祬 <20> ecx <20> <> <20> <> ३<EFBFBD> <E0A5A9> <20> <> @@-1 <20> .<2E> . <20> <> pop eax
2010-02-09 17:54:59 +03:00
jb @ f
2010-05-27 18:46:37 +04:00
xor edx , edx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> edx
div ecx ;ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> ⮪ <20> edx
push edx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> ⥪
;dec edi ;ᬥ饭<E1ACA5> <E9A5AD> <20> <> <EFBFBD> <EFBFBD> 室<EFBFBD> <E5AEA4> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ப<EFBFBD>
call .str ;<3B> <> ३<EFBFBD> <E0A5A9> <20> <> ᠬ<> ᥡ<> <20> .<2E> . <20> 맢<EFBFBD> <EBA7A2> <EFBFBD> ᠬ<> ᥡ<> <20> ⠪ <20> <> ⮣<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> eax <20> <> <20> ⠭<EFBFBD> <E2A0AD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 祬 <20> ecx
2010-02-09 17:54:59 +03:00
pop eax
2010-05-27 18:46:37 +04:00
@ @ : ;cmp al,10 ;<3B> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> 祭<EFBFBD> <E7A5AD> <20> al 祬 10 (<28> <> <EFBFBD> <20> <> <EFBFBD> ⥬<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <E1ABA5> 10 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> 譠<EFBFBD> ))
or al , 0x30 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 祬 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
stosb ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ॣ<> <E0A5A3> <EFBFBD> <EFBFBD> <EFBFBD> al <20> <20> 祪<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> es:edi
ret ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 祭<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 室 <20> .<2E> . <20> <> <EFBFBD> <EFBFBD> <20> <20> ⥪<EFBFBD> <20> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> -<2D> <> <20> 맮<EFBFBD> <EBA7AE> <EFBFBD> <20> <> <20> ⮫쪮 ࠧ <20> <> <20> <20> 㤥<EFBFBD> <20> <> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <EFBFBD> <EFBFBD>
2010-02-09 17:54:59 +03:00
2010-08-24 14:22:01 +04:00
hed db 'Planet viewer 24.08.10' , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-02-09 17:54:59 +03:00
sc system_colors ;<3B> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> 梥<> <E6A2A5>
mouse_dd dd 0 ;<3B> 㦭<EFBFBD> <20> <> <EFBFBD> Shift-<2D> <20> editbox
i_end:
2010-05-27 18:46:37 +04:00
rb 1024
align 16
procinfo process_information
2010-02-09 17:54:59 +03:00
stacktop:
2010-05-27 18:46:37 +04:00
sys_path rb 4096
file_name:
rb 4096
plugin_path:
rb 4096
openfile_path:
rb 4096
filename_area:
rb 256
2010-02-09 17:54:59 +03:00
mem: