update 'log_el' work with new 'tree_list'

git-svn-id: svn://kolibrios.org@5916 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2015-11-15 21:02:34 +00:00
parent fe9ea95716
commit e016ecafca
3 changed files with 99 additions and 124 deletions

View File

@ -405,8 +405,7 @@ pushad
.end_0: .end_0:
;横« ¯® «®£¨ç¥áª¨¬ í«¥¬¥­â ¬ ¨ ¯®¤¯¨áï¬ ;横« ¯® «®£¨ç¥áª¨¬ í«¥¬¥­â ¬ ¨ ¯®¤¯¨áï¬
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop eax
@@: @@:
cmp eax,0 cmp eax,0
je .end_1 je .end_1
@ -416,14 +415,13 @@ pushad
je .mov_1 je .mov_1
jmp .end_mov_1 jmp .end_mov_1
.mov_1: .mov_1:
stdcall [tl_node_poi_get_data], eax, tree1 mov ecx,eax
pop ecx stdcall [tl_node_poi_get_data], tree1,eax
add [eax],edx ;coord x
add [ecx],edx ;coord x add [eax+4],esi ;coord y
add [ecx+4],esi ;coord y mov eax,ecx
.end_mov_1: .end_mov_1:
stdcall dword[tl_node_poi_get_next_info],eax,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
pop eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b jmp @b
.end_1: .end_1:
@ -536,25 +534,22 @@ endp
align 4 align 4
proc p_paint_elems uses eax esi proc p_paint_elems uses eax esi
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi
@@: @@:
cmp esi,0 cmp eax,0
je @f je @f
mov esi,eax
cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_element jne .end_element
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop eax
stdcall el_draw, eax stdcall el_draw, eax
.end_element: .end_element:
cmp word[esi],el_icon_captions ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_captions ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_caption jne .end_caption
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop eax
stdcall capt_draw, eax stdcall capt_draw, eax
.end_caption: .end_caption:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b jmp @b
@@: @@:
ret ret

File diff suppressed because one or more lines are too long

View File

@ -53,7 +53,7 @@ include 'le_pole.inc'
include 'le_signal.inc' include 'le_signal.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 19.04.12',0 ;¯®¤¯¨áì ®ª­  caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 15.11.15',0 ;¯®¤¯¨áì ®ª­ 
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢ panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
panel_1_coord_top equ 35 panel_1_coord_top equ 35
@ -208,7 +208,7 @@ macro load_image_file path,buf,size { ;
db 0 db 0
@@: @@:
;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬ ;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
copy_path .path_str,[32],file_name,0x0 copy_path .path_str,[32],file_name,0
else else
copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®© copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
end if end if
@ -216,16 +216,14 @@ macro load_image_file path,buf,size { ;
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
mov [buf],eax mov [buf],eax
mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
mov [run_file_70.Function], 0 mov [run_file_70.Function], 0
mov [run_file_70.Position], 0 mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0 mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size mov [run_file_70.Count], dword size
m2m [run_file_70.Buffer], [buf] m2m [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0 mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name mov [run_file_70.FileName], file_name
mov ebx,run_file_70 mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
cmp ebx,0xffffffff cmp ebx,0xffffffff
je @f je @f
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
@ -341,7 +339,7 @@ start:
mov ecx,(el_opt_beg.end-el_opt_beg)/size_el_opt ;ª®««¨ç¥á⢮ ⨯®¢ í«¥¬¥­â®¢ mov ecx,(el_opt_beg.end-el_opt_beg)/size_el_opt ;ª®««¨ç¥á⢮ ⨯®¢ í«¥¬¥­â®¢
cld cld
@@: @@:
stdcall [tl_node_add], eax, el_icon_elems shl 16, tree2 stdcall [tl_node_add], tree2,el_icon_elems shl 16,eax
stdcall [tl_cur_next], tree2 stdcall [tl_cur_next], tree2
add eax,size_el_opt add eax,size_el_opt
loop @b loop @b
@ -479,15 +477,19 @@ mouse:
stdcall element_is_click,eax,ebx stdcall element_is_click,eax,ebx
test eax,eax test eax,eax
jz .end_buf_wnd ;¯à¨ ­ ¦ â¨¨ ­¥ ¯®¯ «¨ ­¨ ­  ®¤¨­ ¨§ í«¥¬¥­â®¢ jz .end_buf_wnd ;¯à¨ ­ ¦ â¨¨ ­¥ ¯®¯ «¨ ­¨ ­  ®¤¨­ ¨§ í«¥¬¥­â®¢
stdcall [tl_node_get_data], tree1 push eax
pop ebx stdcall [tl_node_get_data], tree1
mov ebx,eax
pop eax
cmp eax,ebx cmp eax,ebx
je .end_buf_wnd ;¥á«¨ 㦥 ªãàá®à á⮨â â ¬ £¤¥ ­ã¦­® je .end_buf_wnd ;¥á«¨ 㦥 ªãàá®à á⮨â â ¬ £¤¥ ­ã¦­®
stdcall [tl_cur_beg], tree1 stdcall [tl_cur_beg], tree1
.cycle0: .cycle0:
stdcall [tl_node_get_data], tree1 push eax
pop ebx stdcall [tl_node_get_data], tree1
mov ebx,eax
pop eax
test ebx,ebx test ebx,ebx
jz .end_buf_wnd jz .end_buf_wnd
cmp eax,ebx cmp eax,ebx
@ -607,15 +609,15 @@ end if
; eax - pointer to element data ; eax - pointer to element data
align 4 align 4
proc element_is_click uses ebx ecx edx esi edi, coord_x:dword, coord_y:dword proc element_is_click uses ebx ecx edx esi edi, coord_x:dword, coord_y:dword
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
@@: @@:
cmp esi,0 cmp esi,0
je @f je @f
cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_add_p1 jne .end_add_p1
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop ecx mov ecx,eax
movzx edx,byte[ecx+sp_offs_el_type] movzx edx,byte[ecx+sp_offs_el_type]
imul edx,size_el_opt imul edx,size_el_opt
@ -639,8 +641,8 @@ proc element_is_click uses ebx ecx edx esi edi, coord_x:dword, coord_y:dword
mov eax,ecx mov eax,ecx
jmp .end_f jmp .end_f
.end_add_p1: .end_add_p1:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b jmp @b
@@: @@:
xor eax,eax ;¥á«¨ ­¥ ­ è«¨ xor eax,eax ;¥á«¨ ­¥ ­ è«¨
@ -827,12 +829,8 @@ pushad
stdcall pole_draw_pok, pole stdcall pole_draw_pok, pole
; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 *** ; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 ***
mov eax,8
mov ebx,(5 shl 16)+20
mov ecx,(panel_1_coord_top shl 16)+20
mov edx,20
mov esi,[sc.work_button] mov esi,[sc.work_button]
int 0x40 mcall 8, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,21 mov edx,21
@ -854,26 +852,19 @@ pushad
mov edx,25 mov edx,25
int 0x40 int 0x40
mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
mov ebx,(10 shl 16)+panel_1_coord_top+5
mov ecx,[sc.work_text] mov ecx,[sc.work_text]
or ecx,0x80000000 ;or (1 shl 30) or ecx,0x80000000 ;or (1 shl 30)
mov edx,txt_set_0
;mov edi,[sc.work] ;mov edi,[sc.work]
int 0x40 mcall 4, (12 shl 16)+panel_1_coord_top+6,, txt_set_0
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,txt_set_1 mov edx,txt_set_1
int 0x40 int 0x40
; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å *** ; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
mov eax,7
mov ebx,[image_data_toolbar] mov ebx,[image_data_toolbar]
mov ecx,(16 shl 16)+16
mov edx,(62 shl 16)+panel_1_coord_top+2
add ebx,IMAGE_TOOLBAR_ICON_SIZE*15 add ebx,IMAGE_TOOLBAR_ICON_SIZE*15
int 0x40 mcall 7,, (16 shl 16)+16, (62 shl 16)+panel_1_coord_top+2
add ebx,IMAGE_TOOLBAR_ICON_SIZE add ebx,IMAGE_TOOLBAR_ICON_SIZE
add edx,(25 shl 16) add edx,(25 shl 16)
@ -888,12 +879,8 @@ pushad
int 0x40 int 0x40
; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  *** ; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  ***
mov eax,8
mov ebx,(5 shl 16)+20
mov ecx,(panel_2_coord_top shl 16)+20
mov edx,30
mov esi,[sc.work_button] mov esi,[sc.work_button]
int 0x40 mcall 8, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
add ebx,30 shl 16 add ebx,30 shl 16
mov edx,31 mov edx,31
@ -962,46 +949,57 @@ button:
cmp ah,3 cmp ah,3
jne @f jne @f
call but_new_file call but_new_file
jmp still
@@: @@:
cmp ah,4 cmp ah,4
jne @f jne @f
call but_open_file call but_open_file
jmp still
@@: @@:
cmp ah,5 cmp ah,5
jne @f jne @f
call but_save_file call but_save_file
jmp still
@@: @@:
cmp ah,6 cmp ah,6
jne @f jne @f
call but_run_stop call but_run_stop
jmp still
@@: @@:
cmp ah,7 cmp ah,7
jne @f jne @f
call but_zoom_p call but_zoom_p
jmp still
@@: @@:
cmp ah,8 cmp ah,8
jne @f jne @f
call but_zoom_m call but_zoom_m
jmp still
@@: @@:
cmp ah,9 cmp ah,9
jne @f jne @f
call but_pole_left call but_pole_left
jmp still
@@: @@:
cmp ah,10 cmp ah,10
jne @f jne @f
call but_pole_right call but_pole_right
jmp still
@@: @@:
cmp ah,11 cmp ah,11
jne @f jne @f
call but_pole_up call but_pole_up
jmp still
@@: @@:
cmp ah,12 cmp ah,12
jne @f jne @f
call but_pole_dn call but_pole_dn
jmp still
@@: @@:
cmp ah,13 cmp ah,13
jne @f jne @f
call but_center call but_center
jmp still
@@: @@:
;¯¥à¥¤¢¨¦¥­¨¥ ¢á¥å ®¡ê¥ªâ®¢ á奬ë ;¯¥à¥¤¢¨¦¥­¨¥ ¢á¥å ®¡ê¥ªâ®¢ á奬ë
@ -1134,7 +1132,6 @@ but_open_file:
jne .end_open_file jne .end_open_file
;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£  ;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
mov [run_file_70.Function], 0 mov [run_file_70.Function], 0
mov [run_file_70.Position], 0 mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0 mov [run_file_70.Flags], 0
@ -1142,8 +1139,7 @@ but_open_file:
m2m [run_file_70.Buffer], open_file_lif m2m [run_file_70.Buffer], open_file_lif
mov byte[run_file_70+20], 0 mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], openfile_path mov dword[run_file_70.FileName], openfile_path
mov ebx,run_file_70 mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©«
int 0x40 ;§ £à㦠¥¬ ä ©«
cmp ebx,0xffffffff cmp ebx,0xffffffff
je .end_open_file je .end_open_file
@ -1178,7 +1174,7 @@ but_open_file:
stdcall [tl_info_clear],tree1 stdcall [tl_info_clear],tree1
;*** ¤®¡ ¢«¥­¨¥ ¢ ᯨ᮪ «®£¨ç¥áª¨å í«¥¬¥­â®¢ *** ;*** ¤®¡ ¢«¥­¨¥ ¢ ᯨ᮪ «®£¨ç¥áª¨å í«¥¬¥­â®¢ ***
stdcall [tl_node_add], txt_elements-capt_offs,(el_icon_group shl 16), tree1 stdcall [tl_node_add], tree1,(el_icon_group shl 16),txt_elements-capt_offs
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
mov esi,txt_elements mov esi,txt_elements
@ -1209,14 +1205,14 @@ but_open_file:
stdcall make_list_capts,txt_buf,edi stdcall make_list_capts,txt_buf,edi
stdcall [tl_node_add], txt_buf,(el_icon_elems shl 16)+1, tree1 stdcall [tl_node_add], tree1,(el_icon_elems shl 16)+1,txt_buf
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
dec ecx dec ecx
jnz .cycle_elem jnz .cycle_elem
.end_elems: .end_elems:
;*** ¤®¡ ¢«¥­¨¥ ¢ ᯨ᮪ ⥪á⮢ëå ¯®¤¯¨á¥© *** ;*** ¤®¡ ¢«¥­¨¥ ¢ ᯨ᮪ ⥪á⮢ëå ¯®¤¯¨á¥© ***
stdcall [tl_node_add], txt_captions-capt_offs,(el_icon_group shl 16), tree1 stdcall [tl_node_add], tree1,(el_icon_group shl 16),txt_captions-capt_offs
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
mov esi,txt_captions mov esi,txt_captions
@ -1244,7 +1240,7 @@ but_open_file:
stdcall make_list_capts,txt_buf,edi stdcall make_list_capts,txt_buf,edi
stdcall [tl_node_add], txt_buf,(el_icon_captions shl 16)+1, tree1 stdcall [tl_node_add], tree1,(el_icon_captions shl 16)+1,txt_buf
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
dec ecx dec ecx
jnz .cycle_captions jnz .cycle_captions
@ -1253,7 +1249,7 @@ but_open_file:
mov byte[txt_buf+capt_offs],0 ;®¡­ã«¥­¨¥ ¯®¤¯¨á¥© mov byte[txt_buf+capt_offs],0 ;®¡­ã«¥­¨¥ ¯®¤¯¨á¥©
;*** ¤®¡ ¢«¥­¨¥ ¢ ᯨ᮪ ª«î祢ëå â®ç¥ª *** ;*** ¤®¡ ¢«¥­¨¥ ¢ ᯨ᮪ ª«î祢ëå â®ç¥ª ***
stdcall [tl_node_add], txt_points-capt_offs,(el_icon_group shl 16), tree1 stdcall [tl_node_add], tree1,(el_icon_group shl 16),txt_points-capt_offs
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
mov dword[shem_points],0 mov dword[shem_points],0
@ -1279,9 +1275,7 @@ but_open_file:
stdcall conv_str_to_int,edi stdcall conv_str_to_int,edi
mov byte[txt_buf+8],al ;­ ¯à ¢«¥­¨ï mov byte[txt_buf+8],al ;­ ¯à ¢«¥­¨ï
; stdcall make_list_capts,txt_buf,0 stdcall [tl_node_add], tree1,(el_icon_points shl 16)+1,txt_buf
stdcall [tl_node_add], txt_buf,(el_icon_points shl 16)+1, tree1
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
dec ecx dec ecx
jnz .cycle_poi jnz .cycle_poi
@ -1291,33 +1285,32 @@ but_open_file:
;*** ¤®¡ ¢«¥­¨¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ *** ;*** ¤®¡ ¢«¥­¨¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ ***
stdcall pole_clear, pole stdcall pole_clear, pole
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
@@: @@:
cmp esi,0 cmp esi,0
je @f je @f
cmp word[esi],el_icon_points ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨, ¨ ¯à®¯ã᪠­¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ cmp word[esi],el_icon_points ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨, ¨ ¯à®¯ã᪠­¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢
jne .end_add_p0 jne .end_add_p0
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop eax
stdcall pole_cell_creat, pole,dword[eax],dword[eax+4],0 stdcall pole_cell_creat, pole,dword[eax],dword[eax+4],0
.end_add_p0: .end_add_p0:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b jmp @b
@@: @@:
stdcall pole_sort, pole stdcall pole_sort, pole
;*** ¤®¡ ¢«¥­¨¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ (­  ®á­®¢¥ «®£¨ç¥áª¨å í«¥¬¥­â®¢) *** ;*** ¤®¡ ¢«¥­¨¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ (­  ®á­®¢¥ «®£¨ç¥áª¨å í«¥¬¥­â®¢) ***
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
@@: @@:
cmp esi,0 cmp esi,0
je @f je @f
cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_add_p3 jne .end_add_p3
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop ecx mov ecx,eax
xor edx,edx ;edx - ­®¬¥à ¢å®¤­®© ­®£¨ xor edx,edx ;edx - ­®¬¥à ¢å®¤­®© ­®£¨
.add_p1: .add_p1:
@ -1348,49 +1341,48 @@ but_open_file:
.end_add_p2: .end_add_p2:
.end_add_p3: .end_add_p3:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b jmp @b
@@: @@:
stdcall pole_sort, pole stdcall pole_sort, pole
;*** ¤®¡ ¢«¥­¨¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ (­  ®á­®¢¥ ¯®¤¯¨á¥©) *** ;*** ¤®¡ ¢«¥­¨¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ (­  ®á­®¢¥ ¯®¤¯¨á¥©) ***
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
@@: @@:
cmp esi,0 cmp esi,0
je @f je @f
cmp word[esi],el_icon_captions ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_captions ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_add_p6 jne .end_add_p6
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop ecx mov ecx,eax
cmp byte[ecx+8],'n' cmp byte[ecx+8],'n'
je .end_add_p6 je .end_add_p6
stdcall pole_cell_creat, pole,[ecx],[ecx+4],0 stdcall pole_cell_creat, pole,[ecx],[ecx+4],0
.end_add_p6: .end_add_p6:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b jmp @b
@@: @@:
stdcall pole_sort, pole stdcall pole_sort, pole
;*** à¨á®¢ ­¨¥ ¯à®¢®¤®¢ (­  ®á­®¢¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢) *** ;*** à¨á®¢ ­¨¥ ¯à®¢®¤®¢ (­  ®á­®¢¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢) ***
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
xor ecx,ecx xor ecx,ecx
@@: @@:
cmp esi,0 cmp esi,0
je @f je @f
cmp word[esi],el_icon_points ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨, ¨ ¯à®¯ã᪠­¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢ cmp word[esi],el_icon_points ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨, ¨ ¯à®¯ã᪠­¥ â®ç¥ç­ëå ®¡ê¥ªâ®¢
jne .end_add_p4 jne .end_add_p4
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop eax
movzx ebx,byte[eax+8] movzx ebx,byte[eax+8]
stdcall shem_create_line, dword[eax],dword[eax+4],ebx stdcall shem_create_line, dword[eax],dword[eax+4],ebx
add ecx,edx add ecx,edx
.end_add_p4: .end_add_p4:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
cmp ecx,250 ;ecx - ç¨á«® ¤®¡ ¢«¥­­ëå â®ç¥ª cmp ecx,250 ;ecx - ç¨á«® ¤®¡ ¢«¥­­ëå â®ç¥ª
jl @b jl @b
xor ecx,ecx xor ecx,ecx
@ -1555,15 +1547,13 @@ pushad
;*** á­ï⨥ ¬¥âª¨ á â®ç¥ª, ª®â®àë¥ ­ å®¤ïâáï ­  ¢å®¤­ëå ­®£ å «®£¨ç¥áª¨å í«¥¬¥­â®¢ ;*** á­ï⨥ ¬¥âª¨ á â®ç¥ª, ª®â®àë¥ ­ å®¤ïâáï ­  ¢å®¤­ëå ­®£ å «®£¨ç¥áª¨å í«¥¬¥­â®¢
.cycle1_beg: .cycle1_beg:
mov dword[shem_elems],0 ;¤«ï ¯¥¯¥®¯à¥¤¥«¥­¨ï ç¨á«  í«¥¬¥­â®¢ mov dword[shem_elems],0 ;¤«ï ¯¥¯¥®¯à¥¤¥«¥­¨ï ç¨á«  í«¥¬¥­â®¢
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
.cycle1: .cycle1:
cmp esi,0 cmp esi,0
je .cycle1_end je .cycle1_end
cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_add_p1 jne .end_add_p1
; stdcall [tl_node_poi_get_data], esi, tree1
; pop ecx
inc dword[shem_elems] inc dword[shem_elems]
if 0 if 0
xor edx,edx ;edx - ­®¬¥à ¢å®¤­®© ­®£¨ xor edx,edx ;edx - ­®¬¥à ¢å®¤­®© ­®£¨
@ -1586,8 +1576,8 @@ if 0
;mov edx,(1 shl 16) ;edx - ­®¬¥à ¢ë室­®© ­®£¨ ;mov edx,(1 shl 16) ;edx - ­®¬¥à ¢ë室­®© ­®£¨
end if end if
.end_add_p1: .end_add_p1:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp .cycle1 jmp .cycle1
.cycle1_end: .cycle1_end:
@ -1616,15 +1606,15 @@ end if
cmp eax,1 cmp eax,1
jl .cycle2_end jl .cycle2_end
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
.cycle2: .cycle2:
cmp esi,0 cmp esi,0
je .cycle2_end je .cycle2_end
cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_elems ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_add_p2 jne .end_add_p2
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop ecx mov ecx,eax
stdcall str_len,edi stdcall str_len,edi
add edi,eax add edi,eax
@ -1653,8 +1643,8 @@ end if
stdcall str_cat,edi,txt_nl stdcall str_cat,edi,txt_nl
.end_add_p2: .end_add_p2:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp .cycle2 jmp .cycle2
.cycle2_end: .cycle2_end:
@ -1669,15 +1659,15 @@ end if
cmp eax,1 cmp eax,1
jl .cycle3_end jl .cycle3_end
stdcall dword[tl_node_poi_get_info],0,tree1 stdcall dword[tl_node_poi_get_info], tree1,0
pop esi mov esi,eax
.cycle3: .cycle3:
cmp esi,0 cmp esi,0
je .cycle3_end je .cycle3_end
cmp word[esi],el_icon_captions ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨ cmp word[esi],el_icon_captions ;¯®«ã祭¨¥ ç¥à¥§ esi ⨯ ¨ª®­ª¨
jne .end_add_p3 jne .end_add_p3
stdcall [tl_node_poi_get_data], esi, tree1 stdcall [tl_node_poi_get_data], tree1,esi
pop ecx mov ecx,eax
stdcall str_len,edi stdcall str_len,edi
add edi,eax add edi,eax
@ -1710,8 +1700,8 @@ end if
stdcall str_cat,edi,txt_nl stdcall str_cat,edi,txt_nl
.end_add_p3: .end_add_p3:
stdcall dword[tl_node_poi_get_next_info],esi,tree1 stdcall dword[tl_node_poi_get_next_info], tree1,esi
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp .cycle3 jmp .cycle3
.cycle3_end: .cycle3_end:
@ -1828,19 +1818,16 @@ end if
;*** ®¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ä ©«  ;*** ®¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ä ©« 
mov edi,open_file_lif mov edi,open_file_lif
stdcall str_len,edi stdcall str_len,edi
mov ecx,eax
;*** § ¯¨áì ä ©«  ;*** § ¯¨áì ä ©« 
mov eax,70
mov [run_file_70.Function], 2 mov [run_file_70.Function], 2
mov [run_file_70.Position], 0 mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0 mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], ecx mov dword[run_file_70.Count], eax
mov [run_file_70.Buffer], edi mov [run_file_70.Buffer], edi
mov byte[run_file_70+20], 0 mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], openfile_path mov dword[run_file_70.FileName], openfile_path
mov ebx,run_file_70 mcall 70,run_file_70 ;á®å࠭塞 ä ©«
int 0x40 ;á®å࠭塞 ä ©«
call redraw_pole call redraw_pole
.end_save_file: .end_save_file:
@ -1914,7 +1901,7 @@ proc shem_element_creat uses eax ebx, coord_x:dword, coord_y:dword
mov byte[txt_buf+sp_offs_el_angle],al ;­ ¯à ¢«¥­¨¥ mov byte[txt_buf+sp_offs_el_angle],al ;­ ¯à ¢«¥­¨¥
stdcall [tl_node_get_data], tree2 stdcall [tl_node_get_data], tree2
pop ebx mov ebx,eax
test ebx,ebx test ebx,ebx
jnz @f jnz @f
mov ebx,el_opt_beg+el_offs_nam ;¥á«¨ ­¥ ¢§ï«®áì ¨¬ï í«¥¬¥­â , â® ¯® 㬮«ç ­¨î ¡¥à¥¬ 1-© ¨§ ᯨ᪠ mov ebx,el_opt_beg+el_offs_nam ;¥á«¨ ­¥ ¢§ï«®áì ¨¬ï í«¥¬¥­â , â® ¯® 㬮«ç ­¨î ¡¥à¥¬ 1-© ¨§ ᯨ᪠
@ -1923,7 +1910,7 @@ proc shem_element_creat uses eax ebx, coord_x:dword, coord_y:dword
mov byte[txt_buf+sp_offs_el_type],al ;⨯ í«¥¬¥­â  mov byte[txt_buf+sp_offs_el_type],al ;⨯ í«¥¬¥­â 
stdcall make_list_capts,txt_buf,ebx stdcall make_list_capts,txt_buf,ebx
stdcall [tl_node_add], txt_buf,(el_icon_elems shl 16)+1, tree1 stdcall [tl_node_add], tree1,(el_icon_elems shl 16)+1,txt_buf
stdcall [tl_cur_next], tree1 stdcall [tl_cur_next], tree1
stdcall [tl_draw], tree1 stdcall [tl_draw], tree1
.end_f: .end_f:
@ -2234,7 +2221,6 @@ endp
align 4 align 4
proc but_set_0 uses eax proc but_set_0 uses eax
stdcall [tl_node_get_data], tree1 stdcall [tl_node_get_data], tree1
pop eax
test eax,eax test eax,eax
jz .end_f jz .end_f
;el_icon_captions ;el_icon_captions
@ -2250,7 +2236,6 @@ endp
align 4 align 4
proc but_set_1 uses eax proc but_set_1 uses eax
stdcall [tl_node_get_data], tree1 stdcall [tl_node_get_data], tree1
pop eax
test eax,eax test eax,eax
jz .end_f jz .end_f
;el_icon_captions ;el_icon_captions
@ -2269,7 +2254,6 @@ proc but_mov_l uses eax edi
cmp byte[tim_ch],0 cmp byte[tim_ch],0
jne .end_f jne .end_f
stdcall [tl_node_get_data], tree1 stdcall [tl_node_get_data], tree1
pop eax
test eax,eax test eax,eax
jz .end_f jz .end_f
cmp dword[eax],1 cmp dword[eax],1
@ -2294,7 +2278,6 @@ proc but_mov_r uses eax edi
cmp byte[tim_ch],0 cmp byte[tim_ch],0
jne .end_f jne .end_f
stdcall [tl_node_get_data], tree1 stdcall [tl_node_get_data], tree1
pop eax
test eax,eax test eax,eax
jz .end_f jz .end_f
inc dword[eax] inc dword[eax]
@ -2316,7 +2299,6 @@ proc but_mov_u uses eax edi
cmp byte[tim_ch],0 cmp byte[tim_ch],0
jne .end_f jne .end_f
stdcall [tl_node_get_data], tree1 stdcall [tl_node_get_data], tree1
pop eax
test eax,eax test eax,eax
jz .end_f jz .end_f
cmp dword[eax+4],1 cmp dword[eax+4],1
@ -2340,7 +2322,6 @@ proc but_mov_d uses eax edi
cmp byte[tim_ch],0 cmp byte[tim_ch],0
jne .end_f jne .end_f
stdcall [tl_node_get_data], tree1 stdcall [tl_node_get_data], tree1
pop eax
test eax,eax test eax,eax
jz .end_f jz .end_f
inc dword[eax+4] inc dword[eax+4]
@ -2606,9 +2587,8 @@ endp
;output: ;output:
; eax - ç¨á«® ; eax - ç¨á«®
align 4 align 4
proc conv_str_to_int, buf:dword proc conv_str_to_int uses ebx ecx esi, buf:dword
xor eax,eax xor eax,eax
push ebx ecx esi
xor ebx,ebx xor ebx,ebx
mov esi,[buf] mov esi,[buf]
@ -2679,7 +2659,6 @@ proc conv_str_to_int, buf:dword
sub ecx,eax sub ecx,eax
mov eax,ecx mov eax,ecx
@@: @@:
pop esi ecx ebx
ret ret
endp endp
@ -2712,6 +2691,7 @@ align 4
stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
align 16
i_end: i_end:
rb 1024 rb 1024
stacktop: stacktop: