/programs/develop/kol_f_edit/about.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/develop/kol_f_edit/base.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/develop/kol_f_edit/build.bat |
---|
0,0 → 1,17 |
if not exist bin mkdir bin |
@fasm.exe -m 16384 ced_view.asm bin\ced_view.kex |
@kpack bin\ced_view.kex |
@fasm.exe -m 16384 ob_o.asm bin\ob_o.opt |
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png |
if not exist bin\icon.bmp @copy icon.bmp bin\icon.bmp |
if not exist bin\base.bmp @copy base.bmp bin\base.bmp |
if not exist bin\left.bmp @copy left.bmp bin\left.bmp |
if not exist bin\oper.bmp @copy oper.bmp bin\oper.bmp |
if not exist bin\font6x9.bmp @copy ..\..\fs\kfar\trunk\font6x9.bmp bin\font6x9.bmp |
if not exist bin\asm.syn @copy ..\..\other\t_edit\info\asm.syn bin\asm.syn |
copy *.ced bin\*.ced |
@fasm.exe -m 16384 ..\libraries\buf2d\trunk\buf2d.asm bin\buf2d.obj |
@kpack bin\buf2d.obj |
pause |
/programs/develop/kol_f_edit/ced_code_g.inc |
---|
0,0 → 1,1032 |
; |
; â ýòîì ôàéëå ñîáðàíû ôóíêöèè ñîçäàþùèå ïðîãðàìíûé êîä |
; |
u_object object ;âðåìåííûé îáúåêò äëÿ çàäàíèÿ ñìåùåíèé |
macro insert_coma |
{ |
stdcall [ted_text_add], tedit0,txt_coma,1,ted_opt_ed_move_cursor |
} |
macro insert_nl |
{ |
stdcall [ted_text_add], tedit0,txt_nl,1,ted_opt_ed_move_cursor |
} |
macro insert_com |
{ |
stdcall [ted_text_add], tedit0,txt_com,1,ted_opt_ed_move_cursor |
} |
macro insert_sp |
{ |
stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor |
} |
;ôóíêöèÿ âñòàâëÿåò òåêñòîâóþ ñòðîêó â òåêñòîâûé ðåäàêòîð |
align 4 |
proc insert_text, txt:dword |
push eax |
stdcall str_len,dword[txt] |
cmp eax,1 |
jl @f |
stdcall [ted_text_add], tedit0,dword[txt],eax,ted_opt_ed_move_cursor |
@@: |
pop eax |
ret |
endp |
;âñòàâëÿåò óêàçàííîå ñâîéñòâî èç îáúåêòà â òåêñòîâûé ðåäàêòîð |
align 4 |
proc insert_text_prop, p_obj:dword,index:dword |
push eax edx |
mov eax,[p_obj] |
mov edx,[index] |
stdcall get_obj_text_col,eax,edx |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
pop edx eax |
ret |
endp |
macro insert_tab |
{ |
stdcall [ted_text_add], tedit0,txt_tab,1,ted_opt_ed_move_cursor |
} |
macro insert_br |
{ |
stdcall [ted_text_add], tedit0,txt_br,3,ted_opt_ed_move_cursor |
} |
macro insert_a_met |
{ |
stdcall [ted_text_add], tedit0,txt_a_met,3,ted_opt_ed_move_cursor |
} |
macro insert_0 |
{ |
stdcall [ted_text_add], tedit0,txt_0,1,ted_opt_ed_move_cursor |
} |
macro insert_plus |
{ |
stdcall [ted_text_add], tedit0,txt_plus,1,ted_opt_ed_move_cursor |
} |
macro insert_xor |
{ |
stdcall [ted_text_add], tedit0,txt_xor,4,ted_opt_ed_move_cursor |
} |
macro insert_cmp |
{ |
stdcall [ted_text_add], tedit0,txt_cmp,4,ted_opt_ed_move_cursor |
} |
macro insert_reg reg_name |
{ |
stdcall [ted_text_add], tedit0,reg_name,3,ted_opt_ed_move_cursor |
} |
macro insert_reg8 reg_name |
{ |
stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor |
} |
macro insert_i65p |
{ |
stdcall [ted_text_add], tedit0,txt_i65p,7,ted_opt_ed_move_cursor |
} |
; |
macro insert_but_beg |
{ |
stdcall [ted_text_add], tedit0,txt_but_1,txt_but_2-txt_but_1,ted_opt_ed_move_cursor |
} |
macro insert_but_end |
{ |
stdcall [ted_text_add], tedit0,txt_but_2,txt_but_3-txt_but_2,ted_opt_ed_move_cursor |
} |
; |
macro insert_key_beg |
{ |
stdcall [ted_text_add], tedit0,txt_key_1,txt_key_2-txt_key_1,ted_opt_ed_move_cursor |
} |
macro insert_key_end |
{ |
stdcall [ted_text_add], tedit0,txt_key_2,txt_key_3-txt_key_2,ted_opt_ed_move_cursor |
} |
macro insert_d_poi |
{ |
stdcall [ted_text_add], tedit0,txt_d_poi,1,ted_opt_ed_move_cursor |
} |
macro insert_ret |
{ |
stdcall [ted_text_add], tedit0,txt_ret,4,ted_opt_ed_move_cursor |
} |
align 4 |
but_code_gen: |
call code_gen |
cmp byte[show_mode],1 ;óñëîâèå âèäèìîñòè òåêñòîâîãî îêíà |
jne @f |
stdcall [ted_draw], tedit0 |
@@: |
ret |
;ôóíêöèÿ ñîçäàþùàÿ êîä âñåãî ôàéëà |
align 4 |
code_gen: |
stdcall [ted_clear], tedit0,1 |
pushad |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
xor bl,bl |
call code_gen_obj |
stdcall [ted_text_add], tedit0,\ |
txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;äîáàâëÿåì ñèìâîë íîâîé ñòðîêè ñ îïöèåé ted_opt_ed_change_time äëÿ âîçìîæíîñòè ñîõðàíåíèÿ ôàéëà |
stdcall [ted_init_scroll_bars], tedit0, 4 ;ìåíÿåì ðàçìåðû ñêðîëëèíãîâ |
popad |
ret |
;input: |
; bl - óðîâåíü îáúåêòà |
; esi - óêàçàòåëü íà óçåë |
align 4 |
code_gen_obj: |
push ebx |
.beg_iterat: |
cmp esi,0 |
je .find_no |
cmp byte[esi+2],bl ;lev |
jl .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop eax ;ïîëó÷àåì äàííûå óçëà |
cmp eax,0 |
je .find_no |
cmp byte[eax],C_ST |
jne @f |
stdcall get_code_struct,eax ;îáðàáîòêà îáúåêòà |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop ecx ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
cmp ecx,0 |
je .find_no |
cmp byte[ecx+2],bl ;lev |
jle .end_st |
mov esi,ecx |
push bx |
mov bl,byte[esi+2] |
call code_gen_obj ;ðåêóðñèâíûé âûçîâ äî÷åðíèõ îáúåêòîâ |
pop bx |
.end_st: |
stdcall [ted_text_add], tedit0,txt_ends,6,ted_opt_ed_move_cursor |
jmp .beg_iterat |
@@: |
cmp byte[eax],C_TT |
jne @f |
stdcall get_code_text,eax ;îáðàáîòêà îáúåêòà |
@@: |
cmp byte[eax],C_IN |
jne @f |
stdcall get_code_incl,eax ;îáðàáîòêà îáúåêòà |
@@: |
cmp byte[eax],C_CO |
jne @f |
stdcall get_code_comment,eax ;îáðàáîòêà îáúåêòà |
@@: |
cmp byte[eax],C_VR |
jne @f |
stdcall get_code_variable,eax,ebx ;îáðàáîòêà îáúåêòà |
@@: |
cmp byte[eax],C_WI |
jne @f |
stdcall get_code_window,eax ;îáðàáîòêà îáúåêòà |
@@: |
cmp byte[eax],C_AC |
jne @f |
stdcall get_code_auto,eax ;îáðàáîòêà îáúåêòà |
@@: |
cmp byte[eax],C_KE ;êëàâèàòóðà |
jne @f |
stdcall get_code_key,eax ;îáðàáîòêà îáúåêòà |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
pop ebx |
ret |
align 4 |
proc get_code_text, p_obj:dword |
pushad |
insert_nl |
mov ebx,dword[p_obj] |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_nl |
popad |
ret |
endp |
align 4 |
proc get_code_auto, p_obj:dword |
pushad |
insert_nl |
mov ebx,dword[p_obj] |
mov ecx,dword[ebx+u_object.modif-u_object] |
bt ecx,BIT_MOD_ACM |
jae @f |
;àâòîìàòè÷åñêèå ñîáûòèÿ îò ìûøè |
call get_code_auto_m |
@@: |
bt ecx,BIT_MOD_ABU |
jae @f |
;ñîçäàíèå ôóíêöèè button |
insert_but_beg |
call get_code_auto_but ;êîäû âûçîâà êíîïîê |
insert_but_end |
call get_code_a_but_fun ;êîäû ôóíêöèé, âûçûâàåìûõ ïðè íàæàòèè êíîïîê |
@@: |
bt ecx,BIT_MOD_ACD |
jae @f |
call get_code_auto_data_el |
call get_code_auto_data_dop |
@@: |
insert_nl |
popad |
ret |
endp |
align 4 |
proc get_code_auto_m |
pushad |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_ED |
jne @f |
stdcall insert_text, txt_std_mouse_ed |
;insert_sp |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_nl |
@@: |
cmp byte[ebx],C_CB |
jne @f |
stdcall insert_text, txt_std_mouse_cb |
;insert_sp |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_nl |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
;ñîçäàíèå äàííûõ (ñòðóêòóð îáúåêòîâ) |
align 4 |
proc get_code_auto_data_el |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_ED |
jne @f |
;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
stdcall insert_text, txt_ebox |
mov ecx,1 |
.prop: |
insert_sp |
stdcall get_obj_text_col,ebx,ecx |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_coma |
inc ecx |
cmp ecx,10 |
jl .prop |
insert_br |
;insert_tab |
stdcall insert_text, txt_txt |
mov edx,fp_icon |
stdcall get_obj_id, ebx,edx |
stdcall str_len,edx ;eax = len(fp_icon) |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
;insert_coma |
;insert_sp |
stdcall insert_text, txt_mouse_dd |
insert_nl |
@@: |
;cmp byte[ebx],C_CB |
;jne @f |
;@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
; |
align 4 |
proc get_code_auto_data_dop |
pushad |
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_ED |
jne @f |
;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt |
stdcall insert_text, txt_txt |
mov edx,fp_icon |
stdcall get_obj_id, ebx,edx |
stdcall str_len,edx ;eax = len(fp_icon) |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
stdcall insert_text, txt_times |
stdcall get_obj_text_col,ebx,9 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_plus |
stdcall insert_text, txt_2 |
stdcall insert_text, txt_db |
insert_0 |
insert_nl |
@@: |
;cmp byte[ebx],C_CB |
;jne @f |
;@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
;ñâÿçûâàåì êíîïêè ñ ôóíêöèÿìè |
align 4 |
proc get_code_auto_but |
pushad |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_BU |
jne @f |
insert_tab |
insert_cmp |
insert_reg8 txt_ah |
insert_coma |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_nl |
insert_tab |
stdcall insert_text, txt_jne_f |
insert_nl |
insert_tab |
insert_tab |
stdcall insert_text, txt_call |
stdcall get_obj_text_col,ebx,6 |
stdcall str_len,edx |
cmp eax,1 |
jl .c_fun |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
.c_fun: |
insert_nl |
insert_tab |
insert_a_met ;@@: |
insert_nl |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
;áåðåì êîäû äëÿ ôóíêöèé íàæàòèé íà êíîïêè |
align 4 |
proc get_code_a_but_fun |
pushad |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_BU |
jne @f |
stdcall get_obj_text_col,ebx,6 |
stdcall str_len,edx |
cmp eax,1 |
jl .c_fun |
insert_nl |
stdcall insert_text, txt_align_4 |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_d_poi |
insert_nl |
insert_tab |
insert_ret |
.c_fun: |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
align 4 |
proc get_code_key, p_obj:dword |
pushad |
insert_nl |
mov ebx,dword[p_obj] |
insert_key_beg |
call get_code_funct_key ;êîäû âûçîâà êíîïîê |
insert_key_end |
insert_nl |
popad |
ret |
endp |
align 4 |
proc get_code_funct_key |
pushad |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_ED |
jne @f |
stdcall insert_text, txt_std_key_ed |
stdcall insert_text_prop,ebx,0 |
insert_nl |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
;îáúåêòû ïîäêëþ÷åíèÿ ôàéëîâ 'include ...' |
align 4 |
proc get_code_incl, p_obj:dword |
pushad |
stdcall insert_text, txt_incl |
mov ebx,dword[p_obj] |
stdcall insert_text_prop,ebx,0 |
stdcall get_obj_text_col,ebx,1 |
stdcall str_len,edx |
cmp eax,1 |
jl @f |
insert_sp |
insert_com |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
@@: |
insert_nl |
popad |
ret |
endp |
align 4 |
proc get_code_comment, p_obj:dword |
insert_com |
stdcall insert_text_prop, dword[p_obj],0 |
insert_nl |
ret |
endp |
;ñîçäàåì êîä çàäàíèÿ îêíà |
align 4 |
proc get_code_window, p_obj:dword |
pushad |
mov ebx,dword[p_obj] |
;2,3,4,5,6 - x,y,w,h,col_bkg |
stdcall insert_text, txt_draw_wb |
insert_tab |
insert_xor |
insert_reg txt_eax |
insert_coma |
insert_reg txt_eax |
insert_nl |
;mov ebx,... |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_ebx |
insert_coma |
stdcall insert_text_prop, ebx,2 |
insert_i65p |
stdcall insert_text_prop, ebx,4 |
insert_nl |
;mov ecx,... |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_ecx |
insert_coma |
stdcall insert_text_prop, ebx,3 |
insert_i65p |
stdcall insert_text_prop, ebx,5 |
insert_nl |
;mov edx,... |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_edx |
insert_coma |
stdcall insert_text_prop, ebx,6 |
insert_nl |
;or edx,0x33000000 |
stdcall insert_text, txt_or |
insert_reg txt_edx |
insert_coma |
stdcall insert_text, txt_0x33000000 |
insert_nl |
;mov edi,... |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_edi |
insert_coma |
stdcall insert_text_prop, ebx,0 |
insert_nl |
insert_tab |
stdcall insert_text, txt_i_40 |
call get_code_draw_obj |
stdcall insert_text, txt_draw_we |
popad |
ret |
endp |
;ôîðìèðóåì âûçîâ ôóíêöèé äëÿ ðèñîâàíèÿ îáúåêòîâ |
align 4 |
proc get_code_draw_obj |
pushad |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
.beg_iterat: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop ebx ;ïîëó÷àåì äàííûå óçëà |
cmp ebx,0 |
je .find_no |
cmp byte[ebx],C_ED |
jne @f |
stdcall insert_text, txt_editb_draw |
stdcall insert_text_prop, ebx,0 |
insert_nl |
@@: |
cmp byte[ebx],C_CB |
jne @f |
stdcall insert_text, txt_cbox_draw |
stdcall insert_text_prop, ebx,0 |
insert_nl |
@@: |
cmp byte[ebx],C_BU |
jne @f |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_eax |
insert_coma |
stdcall insert_text, txt_8 |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_ebx |
insert_coma |
stdcall insert_text_prop, ebx,1 |
insert_i65p |
stdcall insert_text_prop, ebx,3 |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_ecx |
insert_coma |
stdcall insert_text_prop, ebx,2 |
insert_i65p |
stdcall insert_text_prop, ebx,4 |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_edx |
insert_coma |
stdcall insert_text_prop, ebx,0 |
insert_nl |
insert_tab |
stdcall insert_text, txt_or |
insert_reg txt_edx |
insert_coma |
stdcall insert_text, txt_but_create |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_esi |
insert_coma |
stdcall insert_text_prop, ebx,5 ;button color |
insert_nl |
insert_tab |
stdcall insert_text, txt_i_40 |
insert_nl |
@@: |
cmp byte[ebx],C_RE |
jne @f |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_eax |
insert_coma |
stdcall insert_text, txt_1 |
stdcall insert_text, txt_3 |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_ebx |
insert_coma |
stdcall insert_text_prop, ebx,1 |
insert_i65p |
stdcall insert_text_prop, ebx,3 |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_ecx |
insert_coma |
stdcall insert_text_prop, ebx,2 |
insert_i65p |
stdcall insert_text_prop, ebx,4 |
insert_nl |
insert_tab |
stdcall insert_text, txt_mov |
insert_reg txt_edx |
insert_coma |
stdcall insert_text_prop, ebx,0 ;rect color |
insert_nl |
insert_tab |
stdcall insert_text, txt_i_40 |
insert_nl |
@@: |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó |
jmp .beg_iterat |
.find_no: |
popad |
ret |
endp |
align 4 |
proc get_code_struct, p_obj:dword |
pushad |
mov ebx,dword[p_obj] |
;0 - name |
stdcall [ted_text_add], tedit0,txt_struct,7,ted_opt_ed_move_cursor |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_nl |
popad |
ret |
endp |
;ñîçäàòü êîä îáúÿâëåíèÿ ïåðåìåííîé |
align 4 |
proc get_code_variable, p_obj:dword,o_lev:dword |
pushad |
mov ebx,dword[p_obj] |
;0,1,2 - name,value,comment |
mov ecx,dword[o_lev] |
cmp cl,0 |
je .no_tab ;èçáåãàåì çàöèêëèâàíèÿ (0-1 = 2^32-1) |
and cx,0xff |
cld |
@@: |
insert_tab ;ôîðìèðîâàíèå îòñòóïà ïåðåä ïåðåìåííîé |
loop @b |
.no_tab: |
stdcall get_obj_text_col,ebx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_sp |
mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - îòíîñèòåëüíûé èíäåêñ ðîäèòåëüñêîãî îáúåêòà (â ïàìÿòè) |
xor eax,eax |
mov ax,[tree2.info_size] |
imul ecx,eax ;óìíîæàåì èíäåêñ íà ðàçìåð ñòðóêòóðû |
add ecx,[tree2.data_info] ;ecx - óêàçàòåëü äàííûå ðîäèòåëüñêîãî óçëà |
;ïðîâåðêó íà ïðàâèëüíîñòü ecx ??? |
stdcall get_obj_text_col,ecx,0 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
insert_sp |
stdcall get_obj_text_col,ebx,1 |
stdcall str_len,edx |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
stdcall get_obj_text_col,ebx,2 |
stdcall str_len,edx |
cmp eax,1 |
jl @f |
insert_sp |
insert_com |
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor |
@@: |
insert_nl |
popad |
ret |
endp |
;--- òåêñòîâûå êîíñòàíòû --- |
txt_coma db ',',0 |
txt_i_40 db 'int 0x40',13,0 |
txt_0 db '0',0 |
txt_1 db '1',0 |
txt_2 db '2',0 |
txt_3 db '3',0 |
txt_4 db '4',0 |
txt_8 db '8',0 |
txt_plus db '+',0 |
txt_nl db 13,0 |
txt_com db ';',0 |
txt_sp db ' ',0 |
txt_tab db 9,0 |
txt_br db '\',13,9,0 |
txt_txt: |
db 'txt_',0 |
txt_db: |
db ' db ',0 |
txt_mouse_dd: |
db ', mouse_dd, ',0 |
txt_times: |
db ':',13,9,'times ',0 |
txt_draw_wb: |
db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0 |
txt_draw_we: |
db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0 |
txt_but_create db '0x40000000',0 ;tmp |
txt_0x33000000 db '0x33000000',0 ;tmp |
txt_struct db 'struct ',0 |
txt_ends db 'ends',13,13,0 |
txt_mov db 'mov ',0 |
txt_xor db 'xor ',0 |
txt_or db 'or ',0 |
txt_cmp db 'cmp ',0 |
txt_call db 'call ',0 |
txt_jne_f db 'jne @f',0 |
txt_a_met db '@@:',0 |
txt_ah db 'ah',0 |
txt_eax db 'eax',0 |
txt_ebx db 'ebx',0 |
txt_ecx db 'ecx',0 |
txt_edx db 'edx',0 |
txt_edi db 'edi',0 |
txt_esi db 'esi',0 |
txt_align_4 db 'align 4',13,0 |
txt_d_poi db ':',0 |
txt_ret db 'ret',13,0 |
txt_i65p db '*65536+',0 |
txt_std_mouse_ed: |
db 9,'stdcall [edit_box_mouse], ',0 |
txt_std_mouse_cb: |
db 9,'stdcall [check_box_mouse], ',0 |
txt_std_key_ed: |
db 9,'stdcall [edit_box_key], ',0 |
txt_incl: |
db 'include ',0 |
txt_ebox: |
db ' edit_box' |
.end: db 0 |
txt_editb_draw: |
db 9,'stdcall [edit_box_draw], ',0 |
txt_cbox_draw: |
db 9,'stdcall [check_box_draw], ',0 |
txt_but_1: |
db 'align 4',13,'button:',13,9,'mcall 17',13 |
txt_but_2: |
db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,9,'mcall -1',13 |
txt_but_3: |
txt_key_1: |
db 'align 4',13,'key:',13,9,'mcall 2',13 |
txt_key_2: |
db 9,'jmp still',13 |
txt_key_3: |
align 4 |
proc get_obj_id, p_obj:dword, txt_buf:dword |
push eax ecx edx |
mov eax,dword[p_obj] |
sub eax,[tree2.data_info] |
xor edx,edx |
xor ecx,ecx |
mov cx,word[tree2.info_size] |
div ecx |
mov edx,dword[txt_buf] |
mov byte[edx],0 |
stdcall str_cat_value,edx,eax |
pop edx ecx eax |
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 |
align 4 |
proc str_cat, str1:dword, str2:dword |
push eax ecx edi esi |
mov esi,dword[str2] |
stdcall str_len,esi |
mov ecx,eax |
inc ecx |
mov edi,dword[str1] |
stdcall str_len,edi |
add edi,eax |
cld |
repne movsb |
pop esi edi ecx eax |
ret |
endp |
align 4 |
proc str_cat_value, str1:dword, value:dword |
pushad |
mov edi,[str1] |
stdcall str_len,edi |
add edi,eax |
mov eax,[value] |
call tl_convert_to_str |
popad |
ret |
endp |
;output: |
; eax = strlen |
align 4 |
proc str_len, str1:dword |
mov eax,[str1] |
@@: |
cmp byte[eax],0 |
je @f |
inc eax |
jmp @b |
@@: |
sub eax,[str1] |
ret |
endp |
;input: |
; eax = value |
; edi = string buffer |
align 4 |
tl_convert_to_str: |
pushad |
stdcall mem_clear,edi,12 |
call .str |
popad |
ret |
align 4 |
.str: |
mov ecx,0x0a ;çàäàåòñÿ ñèñòåìà ñ÷èñëåíèÿ èçìåíÿþòñÿ ðåãèñòðû ebx,eax,ecx,edx âõîäíûå ïàðàìåòðû eax - ÷èñëî |
;ïðåðåâîä ÷èñëà â ASCII ñòðîêó âõîäíûå äàííûå ecx=ñèñòåìà ñ÷èñëåíÿ edi àäðåñ êóäà çàïèñûâàòü, áóäåì ñòðîêó, ïðè÷åì êîíåö ïåðåìåííîé |
cmp eax,ecx ;ñðàâíèòü åñëè â eax ìåíüøå ÷åì â ecx òî ïåðåéòè íà @@-1 ò.å. íà pop eax |
jb @f |
xor edx,edx ;î÷èñòèòü edx |
div ecx ;ðàçäåëèòü - îñòàòîê â edx |
push edx ;ïîëîæèòü â ñòåê |
;dec edi ;ñìåùåíèå íåîáõîäèìîå äëÿ çàïèñè ñ êîíöà ñòðîêè |
call .str ;ïåðåéòè íà ñàìó ñåáÿ ò.å. âûçâàòü ñàìó ñåáÿ è òàê äî òîãî ìîìåíòà ïîêà â eax íå ñòàíåò ìåíüøå ÷åì â ecx |
pop eax |
@@: ;cmp al,10 ;ïðîâåðèòü íå ìåíüøå ëè çíà÷åíèå â al ÷åì 10 (äëÿ ñèñòåìû ñ÷èñëåíÿ 10 äàííàÿ êîìàíäà - ëèøíàÿ)) |
or al,0x30 ;äàííàÿ êîìàíäà êîðî÷å ÷åì äâå âûøå |
stosb ;çàïèñàòü ýëåìåíò èç ðåãèñòðà al â ÿ÷åêó ïàìÿòè es:edi |
ret |
/programs/develop/kol_f_edit/ced_constr.inc |
---|
0,0 → 1,321 |
; |
; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ à¨áãî騥 ®ª® ª®áâàãªâ®à |
; |
macro move_to_skin coord_x,coord_y |
{ |
add coord_x,SKIN_W1 |
add coord_y,SKIN_H |
} |
;¯¥à¥à¨á®¢ª ®ª ª®áâàãªâ®à |
align 4 |
draw_constructor: |
stdcall [buf2d_clear], buf_fon,0xffffff |
pushad |
cmp [err_ini1],1 |
jne @f |
stdcall [buf2d_draw_text], buf_fon, buf_font,txtErrIni1,10,10,\ |
0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
stdcall [buf2d_draw_text], buf_fon, buf_font,fp_obj_opt,10,20,\ |
0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
jmp .end_draw |
@@: |
xor edx,edx |
mov dl,C_WI |
stdcall find_obj_in_file,edx ;eax - 㪠§ ⥫ì áâàãªâãàã ®ª |
cmp eax,0 |
je .end_draw |
mov dword[obj_m_win],eax |
;4-width |
stdcall get_obj_text_col,[obj_m_win],4 ;edx = offset |
stdcall conv_str_to_int,edx |
mov ecx,eax ;ecx=width |
;5-height |
stdcall get_obj_text_col,[obj_m_win],5 ;edx = offset |
stdcall conv_str_to_int,edx |
;eax=height |
stdcall [buf2d_rect_by_size], buf_fon, 0,0,ecx,eax, dword[sc.frame] ;à¨á㥬 ¢¥èîî à ¬ªã ®ª |
sub eax,2 |
sub ecx,2 |
stdcall [buf2d_filled_rect_by_size], buf_fon, 1,1,ecx,eax, dword[sc.grab] ;à¨á㥬 ä® à ¬ª¨ ®ª |
sub eax,6 |
sub ecx,6 |
stdcall [buf2d_rect_by_size], buf_fon, 4,4,ecx,eax, dword[sc.frame] ;à¨á㥬 ¢ãâà¥îî à ¬ªã ®ª |
sub eax,2 |
sub ecx,2 |
stdcall [buf2d_filled_rect_by_size], buf_fon, 5,5,ecx,eax, dword[sc.work] ;à¨á㥬 ä® ®ª |
;---;---;--- |
;jmp .end_skin |
;---;---;--- |
stdcall get_obj_text_col,[obj_m_win],1 |
stdcall conv_str_to_int,edx ;eax = window style |
cmp eax,3 |
jl .end_skin |
stdcall [buf2d_bit_blt], buf_fon, 0,0, buf_skin1 ;«¥¢ë© ᪨ |
mov edi,buf_skin1 |
mov eax,buf2d_w ;eax - ¯®§¨æ¨ï ¤«ï à¨á®¢ ¨ï á।¥£® ᪨ |
mov edi,buf_skin2 |
mov ebx,buf2d_w ;ebx - è¨à¨ «¥¢®£® ᪨ |
sub ecx,ebx ;®â¨¬ ¥¬ ®â è¨à¨ë ®ª è¨à¨ã á।¥£® ᪨ |
@@: |
stdcall [buf2d_bit_blt], buf_fon, eax,0, buf_skin2 ;¯à®à¨á®¢ª á।¥£® ᪨ |
add eax,ebx |
cmp eax,ecx ;áà ¢¨¢ ¥¬ ¯®§¨æ¨î á।¥£® ᪨ á è¨à¨®© ®ª |
jl @b |
;4-width |
stdcall get_obj_text_col,[obj_m_win],4 ;edx = offset |
stdcall conv_str_to_int,edx |
mov edi,buf_skin3 |
sub eax,buf2d_w ;®â¨¬ ¥¬ è¨à¨ã ¯à ¢®£® ᪨ |
stdcall [buf2d_bit_blt], buf_fon, eax,0, buf_skin3 ;¯à®à¨á®¢ª ¯à ¢®£® ᪨ |
.end_skin: |
xor edx,edx ;à¨á㥬 £à ä¨ç¥áª¨¥ í«¥¬¥âë |
mov dl,C_BU |
stdcall draw_arr_objects, edx,draw_obj_but |
mov dl,C_ED |
stdcall draw_arr_objects, edx,draw_obj_edit |
mov dl,C_CB |
stdcall draw_arr_objects, edx,draw_obj_check |
mov dl,C_DT |
stdcall draw_arr_objects, edx,draw_obj_text |
mov dl,C_RE |
stdcall draw_arr_objects, edx,draw_obj_rect_f13 |
.end_draw: |
popad |
ret |
;äãªæ¨ï à¨áã¥â ¬ áá¨¢ë ®¯à¥¤¥«¥ëå í«¥¬¥â®¢ |
align 4 |
proc draw_arr_objects, obj_t:dword,p_fun_draw:dword |
push eax ebx |
stdcall find_obj_in_file,[obj_t] ;eax - 㪠§ ⥫ì áâàãªâãàã ®¡ê¥ªâ |
cmp eax,0 |
je .end_draw_o |
mov ebx,[p_fun_draw] |
stdcall ebx,eax |
@@: |
stdcall find_obj_in_file_next,[obj_t] ;eax - 㪠§ ⥫ì áâàãªâãàã ®¡ê¥ªâ |
cmp eax,0 |
je .end_draw_o |
stdcall ebx,eax |
jmp @b |
.end_draw_o: |
pop ebx eax |
ret |
endp |
;äãªæ¨ï à¨áã¥â ®¡ê¥ªâ ª®¯ª¨, ¢ ®ª¥ ª®áâàãªâ®à |
align 4 |
proc draw_obj_but, p_obj:dword |
locals |
coor_x dd ? |
coor_y dd ? |
endl |
pushad |
mov ebx,dword[p_obj] |
;1,2,3,4,5 - x,y,w,h,color |
stdcall get_obj_text_col,ebx,1 |
stdcall conv_str_to_int,edx |
mov [coor_x],eax |
stdcall get_obj_text_col,ebx,2 |
stdcall conv_str_to_int,edx |
mov [coor_y],eax |
move_to_skin [coor_x],[coor_y] |
stdcall get_obj_text_col,ebx,3 |
stdcall conv_str_to_int,edx |
mov edi,eax |
stdcall get_obj_text_col,ebx,4 |
stdcall conv_str_to_int,edx |
mov ecx,eax |
stdcall get_obj_text_col,ebx,5 |
stdcall conv_str_to_int,edx |
stdcall [buf2d_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],edi,ecx,eax |
popad |
ret |
endp |
;äãªæ¨ï à¨áã¥â ®¡ê¥ªâ ⥪á⮢®£® ¯®«ï, ¢ ®ª¥ ª®áâàãªâ®à |
align 4 |
proc draw_obj_edit, p_obj:dword |
locals |
coor_x dd ? |
coor_y dd ? |
col_txt dd ? ;梥â ⥪âá |
endl |
pushad |
mov ebx,dword[p_obj] |
;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt |
stdcall get_obj_text_col,ebx,2 |
stdcall conv_str_to_int,edx |
mov [coor_x],eax |
stdcall get_obj_text_col,ebx,3 |
stdcall conv_str_to_int,edx |
mov [coor_y],eax |
move_to_skin [coor_x],[coor_y] |
stdcall get_obj_text_col,ebx,1 |
stdcall conv_str_to_int,edx |
mov ecx,eax |
stdcall get_obj_text_col,ebx,6 |
stdcall conv_str_to_int,edx |
stdcall [buf2d_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\ |
ecx,15, eax |
inc dword[coor_x] |
inc dword[coor_y] |
sub ecx,2 |
stdcall get_obj_text_col,ebx,4 |
stdcall conv_str_to_int,edx |
stdcall [buf2d_filled_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\ |
ecx,13, eax |
stdcall get_obj_text_col,ebx,8 |
stdcall conv_str_to_int,edx |
mov [col_txt],eax |
add [coor_x],2-1 ;á¬¥é ¥¬ ª®®à¤¨ âã, çâ®-¡ë |
add [coor_y],4-1 ;⥪áâ ¡ë« ¢ ¯®«¥ ¢ë஢¥ |
stdcall get_obj_text_col,ebx,10 |
stdcall [buf2d_draw_text], buf_fon, buf_font,edx,dword[coor_x],dword[coor_y],\ |
dword[col_txt] ;à¨á㥬 áâபã á ⥪á⮬ |
popad |
ret |
endp |
;äãªæ¨ï à¨áã¥â ®¡ê¥ªâ ä« ¦ª , ¢ ®ª¥ ª®áâàãªâ®à |
align 4 |
proc draw_obj_check, p_obj:dword |
locals |
coor_x dd ? |
coor_y dd ? |
ot_txt dd ? ;®âáâ㯠¤«ï ⥪áâ |
size_wh dd ? ;à §¬¥à ª¢ ¤à ⨪ |
col_txt dd ? ;梥â ⥪âá |
endl |
pushad |
mov ebx,dword[p_obj] |
;1,2,3, 4,5,6, 7,8 - x,y,txt, col_fon,col_frame,col_txt, w_txt,w_h |
stdcall get_obj_text_col,ebx,1 |
stdcall conv_str_to_int,edx |
mov [coor_x],eax |
stdcall get_obj_text_col,ebx,2 |
stdcall conv_str_to_int,edx |
mov [coor_y],eax |
move_to_skin [coor_x],[coor_y] |
stdcall get_obj_text_col,ebx,7 |
stdcall conv_str_to_int,edx |
mov [ot_txt],eax |
stdcall get_obj_text_col,ebx,8 |
stdcall conv_str_to_int,edx |
dec eax ;à §¬¥à ¬¥ìè¥ 1 ¯¨ªá¥«ì |
mov [size_wh],eax |
stdcall get_obj_text_col,ebx,5 |
stdcall conv_str_to_int,edx |
stdcall [buf2d_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\ |
dword[size_wh],dword[size_wh], eax |
inc dword[coor_x] |
inc dword[coor_y] |
sub dword[size_wh],2 |
stdcall get_obj_text_col,ebx,4 |
stdcall conv_str_to_int,edx |
stdcall [buf2d_filled_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\ |
dword[size_wh],dword[size_wh], eax |
stdcall get_obj_text_col,ebx,6 |
stdcall conv_str_to_int,edx |
mov [col_txt],eax |
mov eax,[ot_txt] |
add eax,[size_wh] |
add eax,2-1 ;sub dword[size_wh],2 ;inc dword[coor_x] |
add [coor_x],eax ;¢ëç¨á«ï¥¬ ª®®à¤¨ âë ¤«ï ⥪á⮢®© ¯®¤¯¨á¨ |
add [coor_y],5-1 ;inc dword[coor_y] |
stdcall get_obj_text_col,ebx,3 |
stdcall [buf2d_draw_text], buf_fon, buf_font,edx,dword[coor_x],dword[coor_y],\ |
dword[col_txt] ;à¨á㥬 áâபã á ⥪á⮬ |
popad |
ret |
endp |
;äãªæ¨ï à¨áã¥â ®¡ê¥ªâ ⥪á⮢®© ¯®¤¯¨á¨, ¢ ®ª¥ ª®áâàãªâ®à |
align 4 |
proc draw_obj_text, p_obj:dword |
locals |
coor_x dd ? |
coor_y dd ? |
col_txt dd ? ;梥â ⥪âá |
endl |
pushad |
mov ebx,dword[p_obj] |
;0,1,2,3,... - txt,x,y,col_txt,... |
stdcall get_obj_text_col,ebx,1 |
stdcall conv_str_to_int,edx |
mov [coor_x],eax |
stdcall get_obj_text_col,ebx,2 |
stdcall conv_str_to_int,edx |
mov [coor_y],eax |
move_to_skin [coor_x],[coor_y] |
stdcall get_obj_text_col,ebx,3 |
stdcall conv_str_to_int,edx |
mov [col_txt],eax |
stdcall get_obj_text_col,ebx,0 |
stdcall [buf2d_draw_text], buf_fon, buf_font,edx,dword[coor_x],dword[coor_y],\ |
dword[col_txt] ;à¨á㥬 áâபã á ⥪á⮬ |
popad |
ret |
endp |
;äãªæ¨ï à¨áã¥â ®¡ê¥ªâ ¯àאַ㣮«ì¨ª (á¨á¨â. ä. 13) |
align 4 |
proc draw_obj_rect_f13, p_obj:dword |
locals |
coor_x dd ? |
coor_y dd ? |
color dd ? ;梥â ⥪âá |
endl |
pushad |
mov ebx,dword[p_obj] |
;0,1,2,3,4 - color,x,y,w,h |
stdcall get_obj_text_col,ebx,1 |
stdcall conv_str_to_int,edx |
mov [coor_x],eax |
stdcall get_obj_text_col,ebx,2 |
stdcall conv_str_to_int,edx |
mov [coor_y],eax |
move_to_skin [coor_x],[coor_y] |
stdcall get_obj_text_col,ebx,0 |
stdcall conv_str_to_int,edx |
mov [color],eax |
stdcall get_obj_text_col,ebx,3 |
stdcall conv_str_to_int,edx |
mov ecx,eax |
stdcall get_obj_text_col,ebx,4 |
stdcall conv_str_to_int,edx |
mov esi,eax |
stdcall [buf2d_filled_rect_by_size], buf_fon,\ |
dword[coor_x],dword[coor_y],ecx,esi,dword[color] |
popad |
ret |
endp |
/programs/develop/kol_f_edit/ced_view.asm |
---|
0,0 → 1,1314 |
use32 |
org 0x0 |
db 'MENUET01' |
dd 0x1 |
dd start |
dd i_end |
dd mem |
dd stacktop |
dd buf_cmd_lin |
dd sys_path |
include '../../macros.inc' |
include '../../proc32.inc' |
include '../../develop/libraries/box_lib/load_lib.mac' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
include 'mem.inc' |
include 'dll.inc' |
include 'strlen.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load |
hed db 'kol_f_edit 11.11.10',0 |
BUF_STRUCT_SIZE equ 21 |
buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï |
buf2d_w equ dword[edi+8] ;è¨à¨ ¡ãä¥à |
buf2d_h equ dword[edi+12] ;¢ëá®â ¡ãä¥à |
buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ |
buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã |
buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢ ¨ á¯à ¢ ¤«ï ¡ãä¥à |
buf2d_color equ dword[edi+16] ;梥â ä® ¡ãä¥à |
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥¨ï |
MAX_LEN_OBJ_TXT equ 200 |
MAX_CED_OBJECTS equ 200 |
MAX_OPT_FIELDS equ 11 |
MAX_OBJ_TYPES equ 16 |
WND_CAPT_COLOR equ 0xb0d0ff |
BUF_SIZE equ 1000 |
C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code) |
C_ST equ 's' ;struct |
C_IN equ '#' ;include |
C_TT equ 'd' ;¡«®ª ª®¤ (¤ ëå) |
C_VR equ '-' ;¯¥à¥¬¥ ï |
C_CO equ ';' ;ª®¬¬¥â ਩ |
C_WI equ 'w' ;®ª® |
C_CB equ 'c' ;CheckBox |
C_OP equ 'o' ;OptionBox |
C_ED equ 'e' ;EditBox |
C_BU equ 'b' ;Button |
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ |
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì¨ª |
C_KE equ 'k' ;ª« ¢¨ âãà |
;modif |
CPP_MOD_ACM equ 2 ;ᮡëâ¨ï ¬ëè¨ |
BIT_MOD_ACM equ 1 ;ᮡëâ¨ï ¬ëè¨ |
CPP_MOD_ACD equ 8 ;¤ ë¥ ®¡ê¥ªâ®¢ |
BIT_MOD_ACD equ 3 ;¤ ë¥ ®¡ê¥ªâ®¢ |
CPP_MOD_ABU equ 16 ;á¢ï§ë¢ ¨¥ ª®¯®ª |
BIT_MOD_ABU equ 4 ;á¢ï§ë¢ ¨¥ ª®¯®ª |
macro load_image_file path,buf,size ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
{ |
copy_path path,sys_path,fp_icon,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
mov [buf],eax |
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
mov [run_file_70.Function], 0 |
mov [run_file_70.Position], 0 |
mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], dword size |
m2m [run_file_70.Buffer], [buf] |
mov byte[run_file_70+20], 0 |
mov [run_file_70.FileName], fp_icon |
mov ebx,run_file_70 |
int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
cmp ebx,0xffffffff |
je @f |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
stdcall dword[img_decode], dword[buf],ebx,0 |
mov dword[image_data],eax |
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
stdcall dword[img_destroy], dword[image_data] |
@@: |
} |
struct FileInfoBlock |
Function dd ? |
Position dd ? |
Flags dd ? |
Count dd ? |
Buffer dd ? |
rezerv db ? |
FileName dd ? |
ends |
struct object |
c db ? |
txt rb MAX_LEN_OBJ_TXT |
lvl db 0 |
clo db 0 |
perv dd ? |
next dd ? |
typid dd ? |
tc dd ? |
td dd ? |
modif dd ? |
ends |
struct ObjOpt |
c db ? |
bl_type db ? |
graph db ? |
info rb 30 |
caption rb 200 |
Col rw MAX_OPT_FIELDS |
img rw MAX_OPT_FIELDS ;¨¤¥ªáë ª à⨮ª (¢ ä ©«¥ 'icon.bmp') |
ends |
SKIN_H equ 22 |
SKIN_W1 equ 5 |
SKIN_W2 equ 7 |
SKIN_W3 equ 23 |
fn_skin_1 db 'left.bmp',0 |
fn_skin_2 db 'base.bmp',0 |
fn_skin_3 db 'oper.bmp',0 |
IMAGE_FILE_SKIN1_SIZE equ 3*(SKIN_W1+3)*SKIN_H+54 |
IMAGE_FILE_SKIN2_SIZE equ 3*(SKIN_W2+3)*SKIN_H+54 |
IMAGE_FILE_SKIN3_SIZE equ 3*(SKIN_W3+3)*SKIN_H+54 |
fn_font_s1 db 'font6x9.bmp',0 |
IMAGE_FILE_FONT1_SIZE equ 96*144*3 ;à §¬¥à ä ©« á 1-¬ á¨áâ¥¬ë¬ èà¨ä⮬ |
fn_icon db 'icon.bmp',0 |
bmp_icon rb 0x300*30 |
fn_icon_tl_sys db 'tl_sys_16.png',0 |
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
icon_font_s1 dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì ¤«ï § £à㧪¨ èà¨äâ |
fn_syntax db 'asm.syn',0 ;¨¬ï § £à㦠¥¬®£® ä ©« á¨â ªá¨á |
include 'ced_wnd_m.inc' |
include 'ced_constr.inc' ;ä ©« á äãªæ¨ï¬¨ ®ª ª®áâàãªâ®à |
include 'ced_code_g.inc' ;ä ©« á äãªæ¨ï¬¨ £¥¥à¨à®¢ ¨ï ª®¤®¢ |
align 4 |
start: |
load_libraries l_libs_start,load_lib_end |
;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
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 |
@@: |
mov eax,[wndObjI.top] |
add eax,[recMain.top] |
inc eax |
mov edi,edit2 |
@@: |
mov ed_top,eax |
add edi,ed_struc_size |
add eax,[recMain.height] |
cmp edi,prop_wnd_edits_end |
jl @b |
stdcall [buf2d_create], buf_fon |
mcall 48,3,sc,sizeof.system_colors |
mcall 40,0x27 |
stdcall dword[tl_data_init], tree1 |
stdcall dword[tl_data_init], tree2 |
copy_path fn_icon,sys_path,fp_icon,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
mov eax,70 ;load icon file |
mov [run_file_70.Function], 0 |
mov [run_file_70.Position], 54 |
mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], 0x300*30 |
mov [run_file_70.Buffer], bmp_icon |
mov [run_file_70.rezerv], 0 |
mov [run_file_70.FileName], fp_icon |
mov ebx,run_file_70 |
int 0x40 |
cmp ebx,-1 |
mov [err_ini0],1 |
je @f ;if open file |
mov [err_ini0],0 |
mov dword[tree1.data_img],bmp_icon |
mov dword[tree2.data_img],bmp_icon |
@@: |
;á¨áâ¥¬ë¥ ¨ª®ª¨ 16*16 ¤«ï tree_list |
load_image_file fn_icon_tl_sys, icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE |
;¥á«¨ ¨§®¡à ¦¥¨¥ ¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ |
;¥ ¨¨æ¨ «¨§¨à®¢ ë¥ ¤ ë¥, ® ®è¨¡ª¨ ¥ ¡ã¤¥â, â. ª. ¡ãä¥à 㦮£® à §¬¥à |
m2m dword[tree1.data_img_sys],dword[icon_tl_sys] |
m2m dword[tree2.data_img_sys],dword[icon_tl_sys] |
;1-© ä ©« ᪨ |
load_image_file fn_skin_1, icon_font_s1,IMAGE_FILE_SKIN1_SIZE |
stdcall [buf2d_create_f_img], buf_skin1,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à |
stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
;2-© ä ©« ᪨ |
load_image_file fn_skin_2, icon_font_s1,IMAGE_FILE_SKIN2_SIZE |
stdcall [buf2d_create_f_img], buf_skin2,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à |
stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
;3-© ä ©« ᪨ |
load_image_file fn_skin_3, icon_font_s1,IMAGE_FILE_SKIN3_SIZE |
stdcall [buf2d_create_f_img], buf_skin3,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à |
stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
;ᨬ¢®«ë 1-£® á¨á⥬®£® èà¨äâ |
load_image_file fn_font_s1, icon_font_s1,IMAGE_FILE_FONT1_SIZE |
stdcall [buf2d_create_f_img], buf_font,[icon_font_s1] ;ᮧ¤ ¥¬ ¡ãä¥à |
stdcall mem.Free,[icon_font_s1] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8 ¡¨â |
stdcall [buf2d_convert_text_matrix], buf_font |
copy_path fn_obj_opt,sys_path,fp_obj_opt,0x0 |
;load options file |
mov eax,70 |
mov [run_file_70.Position], 0 |
mov [run_file_70.Count], sizeof.ObjOpt*MAX_OBJ_TYPES |
mov [run_file_70.Buffer], obj_opt |
mov [run_file_70.FileName], fp_obj_opt |
mov ebx,run_file_70 |
int 0x40 |
cmp ebx,-1 |
mov [err_ini1],1 |
je .open_end ;jmp if not open file |
mov [err_ini1],0 |
mov eax,obj_opt ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâë |
@@: |
mov bl,byte[eax] |
cmp bl,0 |
je @f |
;xor ecx,ecx ;¢ ecx ¡ã¤¥â ¨¤¥ªá ¨ª®ª¨ |
mov cx,word[eax+sizeof.ObjOpt-2*MAX_OPT_FIELDS] |
cmp cx,0 |
jge .zero |
xor cx,cx ;çâ®-¡ë ¥ £«î稫® á ®âà¨æ ⥫ìë¬ ¨¤¥ªá®¬ |
.zero: |
shl ecx,16 |
stdcall dword[tl_node_add], eax, ecx, tree1 ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ®¡ê¥ªâ |
stdcall dword[tl_cur_next], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª |
add eax,sizeof.ObjOpt ;¯¥à¥å®¤ á«¥¤ãî騩 ®¡ê¥ªâ |
jmp @b |
@@: |
stdcall dword[tl_cur_beg], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¢¥àå |
.open_end: |
stdcall [ted_init], tedit0 |
copy_path fn_syntax,sys_path,fp_icon,0x0 |
stdcall [ted_init_syntax_file], tedit0,run_file_70,fp_icon |
;mov edi,tedit0 |
;call [ted_text_colored] |
;get cmd line |
cmp [buf_cmd_lin],0 |
je @f ;if file names exist |
mov esi,buf_cmd_lin |
call strlen ;eax=strlen |
mov edi,[edit1.text] |
mov [edit1.size],eax |
mov ecx,eax |
rep movsb |
call but_open |
@@: |
align 4 |
red_win: |
call draw_window |
align 4 |
still: |
mcall 10 |
cmp al,1 |
jne @f |
call draw_window |
@@: |
cmp al,2 |
jz key |
cmp al,3 |
jz button |
cmp al,6 |
jne @f |
call mouse |
@@: |
jmp still |
align 4 |
draw_window: |
pushad |
mcall 12,1 |
xor eax,eax |
mov ebx,20*65536+670 |
mov ecx,20*65536+370 |
mov edx,[sc.work] |
or edx,0x33000000 |
mov edi,hed |
mcall |
mov eax,8 ;button 'Open' |
mov esi,0x80ff |
mov ebx,230*65536+70 |
mov ecx,5*65536+22 |
mov edx,5 |
mcall |
;button 'Show Constructor' |
mov ebx,310*65536+18 |
mov ecx,5*65536+18 |
mov edx,11 |
mcall |
stdcall draw_icon, 12,311,6 ;12 - window icon |
;button 'Show Code' |
mov ebx,330*65536+18 |
mov edx,12 |
mcall |
stdcall draw_icon, 11,331,6 ;11 - text icon |
;button 'Update Code' |
mov ebx,350*65536+18 |
mov edx,13 |
mcall |
;button 'Save Code' |
mov ebx,370*65536+18 |
mov edx,14 |
mcall |
stdcall draw_icon, 17,371,6 ;17 - save icon |
;button ']P' |
mov ebx,390*65536+18 |
mov edx,15 |
mcall |
stdcall draw_icon, 18,391,6 ;18 - § ª ª®æ ¡§ æ |
;button 'Show color text' |
mov ebx,410*65536+18 |
mov edx,16 |
mcall |
stdcall draw_icon, 19,411,6 |
; 10 30 50 70 90 |
mov eax,4 ;¯®¤¯¨áì 'âªàëâì' |
mov ebx,245*65536+13 |
mov ecx,0x80ffff00 |
mov edx,txtOpen |
mcall |
cmp [err_opn],1 |
jne @f |
;mov eax,4 |
mov ebx,10*65536+35 |
mov ecx,0x80ff0000 |
mov edx,txtErrOpen |
mcall |
@@: |
cmp [err_ini0],1 |
je err_init_icon |
cmp [err_ini1],1 |
je err_init_icon |
call draw_obj_info ;®ª® । ªâ¨à®¢ ¨ï ¢ë¡à ®£® ®¡ê¥ªâ |
err_init_icon: |
stdcall [edit_box_draw], dword edit1 |
stdcall [edit_box_draw], dword edit_sav |
stdcall [tl_draw],dword tree1 |
mov dword[w_scr_t1.all_redraw],1 |
stdcall [scrollbar_ver_draw],dword w_scr_t1 |
stdcall [tl_draw],dword tree2 |
mov dword[w_scr_t2.all_redraw],1 |
stdcall [scrollbar_ver_draw],dword w_scr_t2 |
cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª ª®áâàãªâ®à |
jne @f |
stdcall [buf2d_draw], buf_fon |
@@: |
cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª |
jne @f |
stdcall [ted_draw], tedit0 |
@@: |
mcall 12,2 |
popad |
ret |
align 4 |
mouse: |
stdcall [edit_box_mouse], dword edit1 |
stdcall [edit_box_mouse], dword edit2 |
stdcall [edit_box_mouse], dword edit3 |
stdcall [edit_box_mouse], dword edit4 |
stdcall [edit_box_mouse], dword edit5 |
stdcall [edit_box_mouse], dword edit6 |
stdcall [edit_box_mouse], dword edit7 |
stdcall [edit_box_mouse], dword edit8 |
stdcall [edit_box_mouse], dword edit9 |
stdcall [edit_box_mouse], dword edit_sav |
stdcall [tl_mouse], dword tree1 |
stdcall [tl_mouse], dword tree2 |
cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª |
jne @f |
stdcall [ted_mouse], tedit0 |
@@: |
ret |
align 4 |
key: |
mcall 2 |
stdcall [edit_box_key], dword edit1 |
stdcall [edit_box_key], dword edit2 |
stdcall [edit_box_key], dword edit3 |
stdcall [edit_box_key], dword edit4 |
stdcall [edit_box_key], dword edit5 |
stdcall [edit_box_key], dword edit6 |
stdcall [edit_box_key], dword edit7 |
stdcall [edit_box_key], dword edit8 |
stdcall [edit_box_key], dword edit9 |
stdcall [edit_box_key], dword edit_sav |
stdcall [tl_key], dword tree1 |
stdcall [tl_key], dword tree2 |
; cmp ah,178 ;Up |
; jne @f |
; cmp [cur_y],0 |
; je @f |
; dec [cur_y] |
; call get_obj_pos |
; call draw_window |
; @@: |
jmp still |
align 4 |
button: |
mcall 17 |
cmp ah,5 |
jne @f |
call but_open |
@@: |
cmp ah,10 |
jne @f |
call but_element_change |
@@: |
cmp ah,11 |
jne @f |
call but_show_constructor |
@@: |
cmp ah,12 |
jne @f |
call but_show_code |
@@: |
cmp ah,13 |
jne @f |
call but_code_gen |
@@: |
cmp ah,14 |
jne @f |
call but_save_asm |
@@: |
cmp ah,15 |
jne @f |
call but_show_invis |
@@: |
cmp ah,16 |
jne @f |
call but_show_syntax |
@@: |
cmp ah,1 |
jne still |
.exit: |
stdcall mem.Free,[icon_tl_sys] |
mov dword[tree1.data_img],0 |
mov dword[tree2.data_img],0 |
mov dword[tree1.data_img_sys],0 |
mov dword[tree2.data_img_sys],0 |
stdcall dword[tl_data_clear], tree1 |
stdcall dword[tl_data_clear], tree2 |
stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à |
stdcall [buf2d_delete],buf_font ;㤠«ï¥¬ ¡ãä¥à |
stdcall [buf2d_delete],buf_skin1 |
stdcall [buf2d_delete],buf_skin2 |
stdcall [buf2d_delete],buf_skin3 |
stdcall [ted_delete], tedit0 |
mcall -1 |
align 4 |
but_open: |
pushad |
mov eax,70 |
mov [run_file_70.Function], 0 |
mov [run_file_70.Position], 0 |
mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], sizeof.object*MAX_CED_OBJECTS |
mov [run_file_70.Buffer], ced_info |
mov [run_file_70.rezerv], 0 |
push [edit1.text] |
pop [run_file_70.FileName] |
mov ebx,run_file_70 |
int 0x40 |
cmp ebx,-1 |
mov [err_opn],1 |
je .open_end ;if open file |
mov ecx,ced_info |
add ecx,ebx |
mov byte [ecx],0 |
mov [err_opn],0 |
stdcall dword[tl_info_clear], tree2 |
mov eax,ced_info ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâë |
@@: |
mov bl,byte[eax] |
cmp bl,0 |
je @f |
call find_obj_in_opt ;edi = pointer to ObjOpt struct |
mov cx,word[edi+sizeof.ObjOpt-2*MAX_OPT_FIELDS] |
cmp cx,0 |
jge .zero |
xor cx,cx ;çâ®-¡ë ¥ £«î稫® á ®âà¨æ ⥫ìë¬ ¨¤¥ªá®¬ |
.zero: |
shl ecx,16 ;¢ ecx ¨¤¥ªá ¨ª®ª¨ |
mov cl,byte[eax+1+MAX_LEN_OBJ_TXT] ;ã஢¥ì ®¡ê¥ªâ |
stdcall dword[tl_node_add], eax, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ |
stdcall dword[tl_cur_next], tree2 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª |
add eax,sizeof.object ;¯¥à¥å®¤ á«¥¤ãî騩 ®¡ê¥ªâ |
jmp @b |
@@: |
stdcall dword[tl_cur_beg], tree2 ;¯¥à¥®á¨¬ ªãàá®à ¢¢¥àå |
mov [foc_obj],0 |
call draw_constructor |
call code_gen |
.open_end: |
call draw_window ;¯¥à¥à¨á®¢ª ®ª ¨¤¥â ¢ «î¡®¬ á«ãç ¥, ¤ ¦¥ ¥á«¨ ä ©« ¥ ®âªàë«áï |
popad |
ret |
;äãªæ¨ï ¤«ï á®åà ¥¨ï ᮧ¤ ®£® asm ä ©« |
align 4 |
but_save_asm: |
;stdcall [ted_but_save_file], tedit0,run_file_70,[edit_sav.text] |
push edi |
mov edi, tedit0 |
stdcall [ted_but_save_file],edi,run_file_70,[edit_sav.text] |
cmp ted_err_save,0 |
jne @f |
stdcall [mb_create],msgbox_1,thread ;message: ©« ¡ë« á®åà ¥ |
@@: |
pop edi |
ret |
;äãªæ¨ï ¤«ï ¯®ª § /áªàëâ¨ï ¥¢¨¤¨¬ëå ᨬ¢®«®¢ |
align 4 |
but_show_invis: |
push edi |
mov edi,tedit0 |
xor ted_mode_invis,1 |
cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª |
jne @f |
stdcall [ted_draw],edi |
@@: |
pop edi |
ret |
; |
align 4 |
but_show_syntax: |
push edi |
mov edi,tedit0 |
xor ted_mode_color,1 |
cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª |
jne @f |
stdcall [ted_draw],edi |
@@: |
pop edi |
ret |
align 4 |
ted_save_err_msg: |
mov byte[msgbox_0.err],al |
stdcall [mb_create],msgbox_0,thread ;message: Can-t save text file! |
ret |
;äãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ¦ ⨨ Enter ¢ ®ª¥ tree2 |
;®¡®¢«ï¥â ⥪áâ®¢ë¥ ¯®«ï § 票ﬨ ¯ à ¬¥â஢ ¢§ïâëå ¨§ ®¡ê¥ªâ®¢ |
;äãªæ¨ï ®¡à â ï ª ¤ ®© but_element_change |
align 4 |
on_file_object_select: |
stdcall [tl_node_get_data], tree2 |
pop dword[foc_obj] |
cmp dword[foc_obj],0 |
je @f |
stdcall set_obj_win_param, 0,edit2 |
stdcall set_obj_win_param, 1,edit3 |
stdcall set_obj_win_param, 2,edit4 |
stdcall set_obj_win_param, 3,edit5 |
stdcall set_obj_win_param, 4,edit6 |
stdcall set_obj_win_param, 5,edit7 |
stdcall set_obj_win_param, 6,edit8 |
stdcall set_obj_win_param, 7,edit9 |
@@: |
call draw_window |
ret |
;äãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ¦ ⨨ Enter ¢ ®ª¥ tree1 |
;¤®¡ ¢«ï¥â ®¢ë© ®¡ê¥ªâ ¢ ®ª® tree2 |
align 4 |
on_add_object: |
push eax ebx ecx |
stdcall [tl_node_get_data], tree1 |
pop eax |
cmp eax,0 |
je @f |
;mov bl,byte[eax] |
;call find_obj_in_opt |
xor ecx,ecx |
mov cx,word[eax+obj_opt.img-obj_opt] ;cx - ¨¤¥ªá £« ¢®© ¨ª®ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ |
;mov cx,word[edi+obj_opt.img-obj_opt] ;cx - ¨¤¥ªá £« ¢®© ¨ª®ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ |
shl ecx,16 |
stdcall dword[tl_node_add], eax, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ |
@@: |
pop ecx ebx eax |
call draw_window |
ret |
align 4 |
proc set_obj_win_param, col:dword, edit:dword |
pushad |
stdcall get_obj_text_col, [foc_obj], [col] |
stdcall get_obj_text_len_col, [foc_obj], [col] ;eax - ¤«¨ ¯®«ï |
mov edi,[edit] |
cmp eax,1 |
jl @f |
dec eax |
mov ed_max,eax ;ed_max = edi+.max |
stdcall [edit_box_set_text], edi,edx ;®¡®¢«ï¥¬ editbox |
jmp .end_f |
@@: |
mov ed_max,dword MAX_LEN_OBJ_TXT |
stdcall [edit_box_set_text], edi,txt_null |
.end_f: |
popad |
ret |
endp |
align 4 |
but_ctrl_o: |
ret |
align 4 |
but_ctrl_n: |
ret |
align 4 |
but_ctrl_s: |
ret |
align 4 |
buf_fon: ;ä®®¢ë© ¡ãä¥à |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 310 ;+4 left |
dw 50 ;+6 top |
dd 340 ;+8 w |
dd 280 ;+12 h |
dd 0xffffff ;+16 color |
db 24 ;+20 bit in pixel |
align 4 |
buf_font: ;¡ãä¥à ¬ âà¨æë á® èà¨ä⮬ |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 25 ;+4 left |
dw 25 ;+6 top |
dd 96 ;+8 w |
dd 144 ;+12 h |
dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
align 4 |
buf_skin1: |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd SKIN_W1 ;+8 w |
dd SKIN_H ;+12 h |
dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
align 4 |
buf_skin2: |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd SKIN_W2 ;+8 w |
dd SKIN_H ;+12 h |
dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
align 4 |
buf_skin3: |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd SKIN_W3 ;+8 w |
dd SKIN_H ;+12 h |
dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
show_mode db 0 ;०¨¬ ¤«ï ¯®ª § ®¯à¥¤¥«¥®£® ®ª |
txtOpen db 'âªàëâì',0 |
txtErrOpen db '¥ ©¤¥ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì®áâì ¨¬¥¨',0 |
txtErrIni1 db '¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0 |
err_opn db 0 |
err_ini0 db 0 ;??? |
err_ini1 db 0 |
edit1 edit_box 210, 10, 10, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7 |
edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0 |
edit3 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text3, mouse_dd, 0 |
edit4 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text4, mouse_dd, 0 |
edit5 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text5, mouse_dd, 0 |
edit6 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text6, mouse_dd, 0 |
edit7 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text7, mouse_dd, 0 |
edit8 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text8, mouse_dd, 0 |
edit9 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text9, mouse_dd, 0 |
prop_wnd_edits_end: ;ª®¥æ ⥪á⮢ëå ¯®«¥©, ®â¢¥ç îé¨å § ᢮©á⢠|
edit_sav edit_box 210, 310, 30, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text_sav, mouse_dd, 0 |
ed_text1 db '/hd0/1/',0 |
rb 295 |
ed_text2 rb MAX_LEN_OBJ_TXT+2 |
ed_text3 rb MAX_LEN_OBJ_TXT+2 |
ed_text4 rb MAX_LEN_OBJ_TXT+2 |
ed_text5 rb MAX_LEN_OBJ_TXT+2 |
ed_text6 rb MAX_LEN_OBJ_TXT+2 |
ed_text7 rb MAX_LEN_OBJ_TXT+2 |
ed_text8 rb MAX_LEN_OBJ_TXT+2 |
ed_text9 rb MAX_LEN_OBJ_TXT+2 |
ed_text_sav rb 302 |
txt_null db 'null',0 |
mouse_dd dd ? |
el_focus dd tree1 |
;¤¥à¥¢® ᮠᯨ᪮¬ ¢®§¬®¦ëå ⨯®¢ ®¡ê¥ªâ®¢ |
tree1 tree_list sizeof.ObjOpt,20+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\ |
16,16, 0xffffff,0xb0d0ff,0xd000ff, 10,50,125,100, 0,3,0, el_focus,\ |
w_scr_t1,on_add_object |
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
tree2 tree_list sizeof.object,MAX_CED_OBJECTS+2, tl_draw_par_line,\ |
16,16, 0xffffff,0xb0d0ff,0xd000ff, 160,50,125,280, 13,1,MAX_LEN_OBJ_TXT, el_focus,\ |
w_scr_t2,on_file_object_select |
msgbox_0: |
db 1,0 |
db 'Warning',0 |
db 'Error saving file!',13,\ |
'Maybe the file name is not entered correctly.',13,\ |
' (error code =' |
.err: db '?' |
db ')',0 |
db 'Close',0 |
db 0 |
msgbox_1: |
db 1,0 |
db ':)',0 |
db 'File was saved',0 |
db 'Ok',0 |
db 0 |
struct TexSelect |
x0 dd ? |
y0 dd ? |
x1 dd ? |
y1 dd ? |
ends |
;------------------------------------------------------------------------------ |
align 4 |
tedit0: ;áâàãªâãà ⥪á⮢®£® । ªâ®à |
.wnd BOX 310,50,325,260 ;+ 0 |
.rec BOX 30,13,7,10 ;+16 |
.drag_m db 0 ;+32 ¢ë¤¥«¥¨¥ ®â ¬ëè¨ |
.drag_k db 0 ;+33 ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
.sel TexSelect 0,0,0,0 ;+34 áâàãªâãà ¢ë¤¥«¥¨ï |
.seln TexSelect ;+50 ¤®¯®«¨â¥«ì ï áâàãªâãà ¢ë¤¥«¥¨ï |
.tex dd 0 ;+66 text memory pointer |
.tex_1 dd 0 ;+70 text first symbol pointer |
.tex_end dd 0 ;+74 text end memory pointer |
.cur_x dd 0 ;+78 ª®®à¤¨ â x ªãàá®à |
.cur_y dd 0 ;+82 ª®®à¤¨ â y ªãàá®à |
.max_chars dd 25002 ;+86 ¬ ªá¨¬ «ì®¥ ç¨á«® ᨬ¢®«®¢ ¢ ®¤®¬ ¤®ªã¬¥â¥ |
.count_colors_text dd 1 ;+90 ª®««¨ç¥á⢮ 梥⮢ ⥪áâ |
.count_key_words dd 0 ;+94 ª®««¨ç¥á⢮ ª«î祢ëå á«®¢ |
.color_cursor dd 0xff0000 ;+98 梥⠪ãàá®à |
.color_wnd_capt dd 0x0080c0 ;+102 梥⠯®«¥© ¢®ªà㣠®ª |
.color_wnd_work dd 0x0 ;+106 梥â ä® ®ª |
.color_wnd_bord dd 0xffffff ;+110 梥â ⥪áâ ¯®«ïå |
.color_select dd 0x0000ff ;+114 梥⠢뤥«¥¨ï |
.color_cur_text dd 0xffff00 ;+118 梥â ᨬ¢®« ¯®¤ ªãàá®à®¬ |
.color_wnd_text dd 0x80ffff ;+122 梥â ⥪áâ ¢ ®ª¥ |
.syntax_file dd 0 ;+126 㪠§ ⥫ì ç «® ä ©« á¨â ªá¨á |
.syntax_file_size dd 55*1024 ;+130 ¬ ªá¨¬ «ìë© à §¬¥à ä ©« á¨â ªá¨á |
.text_colors dd 0 ;+134 㪠§ â¥«ì ¬ áᨢ 梥⮢ ⥪áâ |
.help_text_f1 dd 0 ;+138 㪠§ ⥫ì ⥪áâ á¯à ¢ª¨ (¯® ¦ ⨨ F1) |
.help_id dd -1 ;+142 ¨¤¥â¨ä¨ª â®à ¤«ï á¯à ¢ª¨ |
.key_words_data dd 0 ;+146 㪠§ ⥫ì áâàãªâãàë ª«î祢ëå á«®¢ TexColViv |
.tim_ch dd ? ;+150 ª®«¨ç¥á⢮ ¨§¬¥¥¨© ¢ ä ©«¥ |
.tim_undo dd ? ;+154 ª®«¨ç¥á⢮ ®â¬¥¥ëå ¤¥©á⢨© |
.tim_ls dd ? ;+158 ¢à¥¬ï ¯®á«¥¤¥£® á®åà ¥¨ï |
.tim_co dd ? ;+162 ¢à¥¬ï ¯®á«¥¤¥© 梥⮢®© à §¬¥âª¨ |
.el_focus dd el_focus ;+166 㪠§ â¥«ì ¯¥à¥¬¥ãî í«¥¬¥â ¢ 䮪ãᥠ|
.err_save db 0 ;+170 ®è¨¡ª á®åà ¥¨ï ä ©« |
.panel_id db 0 ;+171 ®¬¥à ®âªàë⮩ ¯ ¥«¨ |
.key_new db 0 ;+172 ᨬ¢®«, ª®â®àë© ¡ã¤¥â ¤®¡ ¢«ïâáï á ª« ¢¨ âãàë |
.symbol_new_line db 20 ;+173 ᨬ¢®« § ¢¥à襨ï áâப¨ |
.scr_w dd scrol_w1 ;+174 ¢¥à⨪ «ìë© áªà®««¨£ |
.scr_h dd scrol_h1 ;+178 £®à¨§®â «ìë© áªà®««¨£ |
.arr_key_pos dd 0 ;+182 㪠§ â¥«ì ¬ áᨢ ¯®§¨æ¨© ª«î祢ëå á«®¢ |
.buffer dd text_buffer ;+186 㪠§ â¥«ì ¡ãä¥à ª®¯¨à®¢ ¨ï/¢áâ ¢ª¨ |
.buffer_find dd 0 ;+190 㪠§ â¥«ì ¡ãä¥à ¤«ï ¯®¨áª |
.cur_ins db 1 ;+194 ०¨¬ à ¡®âë ªãàá®à (®¡ëçë© ¨«¨ § ¬¥ ) |
.mode_color db 1 ;+195 ०¨¬ ¢ë¤¥«¥¨ï á«®¢ 梥⮬ (0-¢ëª«. 1-¢ª«.) |
.mode_invis db 0 ;+196 ०¨¬ ¯®ª § ¥¯¥ç â ¥¬ëå ᨬ¢®«®¢ |
.gp_opt db 0 ;+197 ®¯æ¨¨ ¢®§¢à é ¥¬ë¥ äãªæ¨¥© ted_get_pos_by_cursor |
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ¦ ⨨ Ctrl+O (®âªàë⨥ ä ©« ) |
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (¢ë§®¢ /áªàëâ¨ï ¯ ¥«¨ ¯®¨áª ) |
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ᮧ¤ ¨¥ ®¢®£® ¤®ªã¬¥â ) |
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S |
.buffer_size dd BUF_SIZE ;+214 à §¬¥à ¡ãä¥à ª®¯¨à®¢ ¨ï/¢áâ ¢ª¨ |
.fun_find_err dd 0 ;+218 㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ ¯®¨áª § ª®ç¨«áï ¥ã¤ ç® |
.fun_init_synt_err dd 0 ;+222 㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ®è¨¡®ç®¬ ®âªàë⨨ ä ©« á¨â ªá¨á |
.fun_draw_panel_buttons dd 0 ;+226 㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ á ª®¯ª ¬¨ |
.fun_draw_panel_find dd 0 ;+230 㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ ¯®¨áª |
.fun_draw_panel_syntax dd 0 ;+234 㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ á¨â ªá¨á |
.fun_save_err dd ted_save_err_msg ;+238 㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ¥¨¥ ä ©« § ª®ç¨«®áì ¥ã¤ ç® |
.increase_size dd 1000 ;+242 ç¨á«® ᨬ¢®«®¢ ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ¥å¢ ⪥ |
.ptr_free_symb dd ? ;+246 㪠§ ⥫ì ᢮¡®¤ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢ãâà¨ í«¥¬¥â ¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨ ⥪áâ ) |
;------------------------------------------------------------------------------ |
align 4 |
scrol_w1: |
.x: |
.size_x dw 16 ;+0 |
.start_x dw 85 ;+2 |
.y: |
.size_y dw 100 ; +4 |
.start_y dw 15 ; +6 |
.btn_high dd 15 ; +8 |
.type dd 1 ;+12 |
.max_area dd 100 ;+16 |
rb 4+4 |
.bckg_col dd 0xeeeeee ;+28 |
.frnt_col dd 0xbbddff ;+32 |
.line_col dd 0x808080 ;+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 |
;--------------------------------------------------------------------- |
align 4 |
scrol_h1: |
.x: |
.size_x dw 85 ;+0 |
.start_x dw 30 ;+2 |
.y: |
.size_y dw 16 ;+4 |
.start_y dw 100 ;+6 |
.btn_high dd 15 ;+8 |
.type dd 1 ;+12 |
.max_area dd 100 ;+16 |
rb 4+4 |
.bckg_col dd 0xeeeeee ;+28 |
.frnt_col dd 0xbbddff ;+32 |
.line_col dd 0x808080 ;+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 |
align 4 |
w_scr_t1: |
.size_x dw 16 ;+0 |
rb 2+2+2 |
.btn_high dd 15 ;+8 |
.type dd 1 ;+12 |
.max_area dd 100 ;+16 |
rb 4+4 |
.bckg_col dd 0xeeeeee ;+28 |
.frnt_col dd 0xbbddff ;+32 |
.line_col dd 0 ;+36 |
rb 4+2+2 |
.run_x: |
rb 2+2+2+2+4+4+4+4+4+4 |
.all_redraw dd 0 ;+80 |
.ar_offset dd 1 ;+84 |
align 4 |
w_scr_t2: |
.size_x dw 16 ;+0 |
rb 2+2+2 |
.btn_high dd 15 ;+8 |
.type dd 1 ;+12 |
.max_area dd 100 ;+16 |
rb 4+4 |
.bckg_col dd 0xeeeeee ;+28 |
.frnt_col dd 0xbbddff ;+32 |
.line_col dd 0 ;+36 |
rb 4+2+2 |
.run_x: |
rb 2+2+2+2+4+4+4+4+4+4 |
.all_redraw dd 0 ;+80 |
.ar_offset dd 1 ;+84 |
data_of_code dd 0 |
sc system_colors |
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï ª à⨪¨ äãªæ¨ï¬¨ libimg |
recMain BOX 3,13,16,18 |
ced_info object 0 ;on start == 0 |
rb sizeof.object*(MAX_CED_OBJECTS-1) |
wndObjI BOX 10,160,125+16,170 |
text_buffer db BUF_SIZE dup(0) |
fn_obj_opt db 'ob_o.opt',0 |
obj_opt ObjOpt |
rb sizeof.ObjOpt*(MAX_OBJ_TYPES-1) |
db 0 ;eof options |
cur_x dd 0 |
cur_y dd 0 |
foc_obj dd 0 ;®¡ê¥ªâ ¢ 䮪ãᥠ|
obj_m_win dd 0 ;áâàãªâãà £« ¢®£® ®ª |
; |
if 1 ;lang eq ru |
err_message_found_lib0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª box_lib.obj',0 ;áâப , ª®â®à ï ¡ã¤¥â ¢ áä®à¬¨à®¢ ®¬ ®ª¥, ¥á«¨ ¡¨¡«¨®â¥ª ¥ ¡ã¤¥â ©¤¥ |
err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0 |
err_message_found_lib1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª proc_lib.obj',0 |
err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ proc_lib.obj',0 |
err_message_found_lib2 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0 |
err_message_import2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0 |
err_message_found_lib3 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0 |
err_message_import3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0 |
err_message_found_lib4 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã msgbox.obj',0 |
err_message_import4 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ msgbox.obj',0 |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 ;§ £®«®¢®ª ®ª , ¯à¨ ¢®§¨ª®¢¥¨¨ ®è¨¡ª¨ |
else |
err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0 |
err_message_import0 db 'Error on load import library box_lib.obj',0 |
err_message_found_lib1 db 'Sorry I cannot found library proc_lib.obj',0 |
err_message_import1 db 'Error on load import library proc_lib.obj',0 |
err_message_found_lib2 db 'Sorry I cannot found library buf2d.obj',0 |
err_message_import2 db 'Error on load import library buf2d.obj',0 |
err_message_found_lib3 db 'Sorry I cannot found library libimg.obj',0 |
err_message_import3 db 'Error on load import library libimg.obj',0 |
err_message_found_lib4 db 'Sorry I cannot found library msgbox.obj',0 |
err_message_import4 db 'Error on load import library msgbox.obj',0 |
head_f_i: |
head_f_l db 'System error',0 ;§ £®«®¢®ª ®ª , ¯à¨ ¢®§¨ª®¢¥¨¨ ®è¨¡ª¨ |
end if |
system_dir0 db '/sys/lib/' |
lib0_name db 'box_lib.obj',0 |
system_dir1 db '/sys/lib/' |
lib1_name db 'proc_lib.obj',0 |
system_dir2 db '/sys/lib/' |
lib2_name db 'buf2d.obj',0 |
system_dir3 db '/sys/lib/' |
lib3_name db 'libimg.obj',0 |
system_dir4 db '/sys/lib/' |
lib4_name db 'msgbox.obj',0 |
align 4 |
import_buf2d_lib: |
dd sz_lib_init |
buf2d_create dd sz_buf2d_create |
buf2d_create_f_img dd sz_buf2d_create_f_img |
buf2d_clear dd sz_buf2d_clear |
buf2d_draw dd sz_buf2d_draw |
buf2d_delete dd sz_buf2d_delete |
buf2d_line dd sz_buf2d_line |
buf2d_rect_by_size dd sz_buf2d_rect_by_size |
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size |
buf2d_circle dd sz_buf2d_circle |
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
buf2d_bit_blt dd sz_buf2d_bit_blt |
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
buf2d_cruve_bezier dd sz_buf2d_cruve_bezier |
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
buf2d_draw_text dd sz_buf2d_draw_text |
buf2d_crop_color dd sz_buf2d_crop_color |
buf2d_offset_h dd sz_buf2d_offset_h |
dd 0,0 |
sz_lib_init db 'lib_init',0 |
sz_buf2d_create db 'buf2d_create',0 |
sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
sz_buf2d_clear db 'buf2d_clear',0 |
sz_buf2d_draw db 'buf2d_draw',0 |
sz_buf2d_delete db 'buf2d_delete',0 |
sz_buf2d_line db 'buf2d_line',0 |
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª , 2-ï ª®®à¤¨ â § ¤ ¯® à §¬¥àã |
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 |
sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮á⨠|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0 |
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
sz_buf2d_draw_text db 'buf2d_draw_text',0 |
sz_buf2d_crop_color db 'buf2d_crop_color',0 |
sz_buf2d_offset_h db 'buf2d_offset_h',0 |
align 4 |
import_box_lib: |
dd alib_init2 |
edit_box_draw dd aEdit_box_draw |
edit_box_key dd aEdit_box_key |
edit_box_mouse dd aEdit_box_mouse |
edit_box_set_text dd aEdit_box_set_text |
scrollbar_ver_draw dd aScrollbar_ver_draw |
scrollbar_hor_draw dd aScrollbar_hor_draw |
tl_data_init dd sz_tl_data_init |
tl_data_clear dd sz_tl_data_clear |
tl_info_clear dd sz_tl_info_clear |
tl_key dd sz_tl_key |
tl_mouse dd sz_tl_mouse |
tl_draw dd sz_tl_draw |
tl_info_undo dd sz_tl_info_undo |
tl_info_redo dd sz_tl_info_redo |
tl_node_add dd sz_tl_node_add |
tl_node_set_data dd sz_tl_node_set_data |
tl_node_get_data dd sz_tl_node_get_data |
tl_node_delete dd sz_tl_node_delete |
tl_cur_beg dd sz_tl_cur_beg |
tl_cur_next dd sz_tl_cur_next |
tl_cur_perv dd sz_tl_cur_perv |
tl_node_close_open dd sz_tl_node_close_open |
tl_node_lev_inc dd sz_tl_node_lev_inc |
tl_node_lev_dec dd sz_tl_node_lev_dec |
tl_node_poi_get_info dd sz_tl_node_poi_get_info |
tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info |
tl_node_poi_get_data dd sz_tl_node_poi_get_data |
ted_but_save_file dd sz_ted_but_save_file |
ted_but_sumb_upper dd sz_ted_but_sumb_upper |
ted_but_sumb_lover dd sz_ted_but_sumb_lover |
ted_can_save dd sz_ted_can_save |
ted_clear dd sz_ted_clear |
ted_delete dd sz_ted_delete |
ted_draw dd sz_ted_draw |
ted_init dd sz_ted_init |
ted_init_scroll_bars dd sz_ted_init_scroll_bars |
ted_init_syntax_file dd sz_ted_init_syntax_file |
ted_is_select dd sz_ted_is_select |
ted_key dd sz_ted_key |
ted_mouse dd sz_ted_mouse |
ted_open_file dd sz_ted_open_file |
ted_text_add dd sz_ted_text_add |
ted_but_select_word dd sz_ted_but_select_word |
ted_but_cut dd sz_ted_but_cut |
ted_but_copy dd sz_ted_but_copy |
ted_but_paste dd sz_ted_but_paste |
ted_but_undo dd sz_ted_but_undo |
ted_but_redo dd sz_ted_but_redo |
ted_but_reverse dd sz_ted_but_reverse |
ted_but_find_next dd sz_ted_but_find_next |
ted_text_colored dd sz_ted_text_colored |
;version_text_edit dd sz_ted_version |
dd 0,0 |
alib_init2 db 'lib_init',0 |
aEdit_box_draw db 'edit_box',0 |
aEdit_box_key db 'edit_box_key',0 |
aEdit_box_mouse db 'edit_box_mouse',0 |
aEdit_box_set_text db 'edit_box_set_text',0 |
aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
aScrollbar_hor_draw db 'scrollbar_h_draw',0 |
sz_tl_data_init db 'tl_data_init',0 |
sz_tl_data_clear db 'tl_data_clear',0 |
sz_tl_info_clear db 'tl_info_clear',0 |
sz_tl_key db 'tl_key',0 |
sz_tl_mouse db 'tl_mouse',0 |
sz_tl_draw db 'tl_draw',0 |
sz_tl_info_undo db 'tl_info_undo',0 |
sz_tl_info_redo db 'tl_info_redo',0 |
sz_tl_node_add db 'tl_node_add',0 |
sz_tl_node_set_data db 'tl_node_set_data',0 |
sz_tl_node_get_data db 'tl_node_get_data',0 |
sz_tl_node_delete db 'tl_node_delete',0 |
sz_tl_cur_beg db 'tl_cur_beg',0 |
sz_tl_cur_next db 'tl_cur_next',0 |
sz_tl_cur_perv db 'tl_cur_perv',0 |
sz_tl_node_close_open db 'tl_node_close_open',0 |
sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0 |
sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0 |
sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 |
sz_ted_but_save_file db 'ted_but_save_file',0 |
sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0 |
sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0 |
sz_ted_can_save db 'ted_can_save',0 |
sz_ted_clear db 'ted_clear',0 |
sz_ted_delete db 'ted_delete',0 |
sz_ted_draw db 'ted_draw',0 |
sz_ted_init db 'ted_init',0 |
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0 |
sz_ted_init_syntax_file db 'ted_init_syntax_file',0 |
sz_ted_is_select db 'ted_is_select',0 |
sz_ted_key db 'ted_key',0 |
sz_ted_mouse db 'ted_mouse',0 |
sz_ted_open_file db 'ted_open_file',0 |
sz_ted_text_add db 'ted_text_add',0 |
sz_ted_but_select_word db 'ted_but_select_word',0 |
sz_ted_but_cut db 'ted_but_cut',0 |
sz_ted_but_copy db 'ted_but_copy',0 |
sz_ted_but_paste db 'ted_but_paste',0 |
sz_ted_but_undo db 'ted_but_undo',0 |
sz_ted_but_redo db 'ted_but_redo',0 |
sz_ted_but_reverse db 'ted_but_reverse',0 |
sz_ted_but_find_next db 'ted_but_find_next',0 |
sz_ted_text_colored db 'ted_text_colored',0 |
;sz_ted_version db 'version_text_edit',0 |
align 4 |
import_proc_lib: |
OpenDialog_Init dd aOpenDialog_Init |
OpenDialog_Start dd aOpenDialog_Start |
dd 0,0 |
aOpenDialog_Init db 'OpenDialog_init',0 |
aOpenDialog_Start db 'OpenDialog_start',0 |
align 4 |
import_libimg: |
dd alib_init1 |
img_is_img dd aimg_is_img |
img_info dd aimg_info |
img_from_file dd aimg_from_file |
img_to_file dd aimg_to_file |
img_from_rgb dd aimg_from_rgb |
img_to_rgb dd aimg_to_rgb |
img_to_rgb2 dd aimg_to_rgb2 |
img_decode dd aimg_decode |
img_encode dd aimg_encode |
img_create dd aimg_create |
img_destroy dd aimg_destroy |
img_destroy_layer dd aimg_destroy_layer |
img_count dd aimg_count |
img_lock_bits dd aimg_lock_bits |
img_unlock_bits dd aimg_unlock_bits |
img_flip dd aimg_flip |
img_flip_layer dd aimg_flip_layer |
img_rotate dd aimg_rotate |
img_rotate_layer dd aimg_rotate_layer |
img_draw dd aimg_draw |
dd 0,0 |
alib_init1 db 'lib_init',0 |
aimg_is_img db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª ᤥ« âì ¨§ ¨å ¨§®¡à ¦¥¨¥ |
aimg_info db 'img_info',0 |
aimg_from_file db 'img_from_file',0 |
aimg_to_file db 'img_to_file',0 |
aimg_from_rgb db 'img_from_rgb',0 |
aimg_to_rgb db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ¨¥ ¨§®¡à ¦¥¨ï ¢ ¤ ë¥ RGB |
aimg_to_rgb2 db 'img_to_rgb2',0 |
aimg_decode db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ëå |
aimg_encode db 'img_encode',0 |
aimg_create db 'img_create',0 |
aimg_destroy db 'img_destroy',0 |
aimg_destroy_layer db 'img_destroy_layer',0 |
aimg_count db 'img_count',0 |
aimg_lock_bits db 'img_lock_bits',0 |
aimg_unlock_bits db 'img_unlock_bits',0 |
aimg_flip db 'img_flip',0 |
aimg_flip_layer db 'img_flip_layer',0 |
aimg_rotate db 'img_rotate',0 |
aimg_rotate_layer db 'img_rotate_layer',0 |
aimg_draw db 'img_draw',0 |
align 4 |
import_msgbox_lib: |
mb_create dd amb_create |
mb_reinit dd amb_reinit |
mb_setfunctions dd amb_setfunctions |
dd 0,0 |
amb_create db 'mb_create',0 |
amb_reinit db 'mb_reinit',0 |
amb_setfunctions db 'mb_setfunctions',0 |
;library structures |
l_libs_start: |
lib0 l_libs lib0_name, sys_path, library_path, system_dir0, err_message_found_lib0, head_f_l, import_box_lib, err_message_import0, head_f_i |
lib1 l_libs lib1_name, sys_path, library_path, system_dir1, err_message_found_lib1, head_f_l, import_proc_lib,err_message_import1, head_f_i |
lib2 l_libs lib2_name, sys_path, library_path, system_dir2, err_message_found_lib2, head_f_l, import_buf2d_lib, err_message_import2, head_f_i |
lib3 l_libs lib3_name, sys_path, library_path, system_dir3, err_message_found_lib3, head_f_l, import_libimg, err_message_import3, head_f_i |
lib4 l_libs lib4_name, sys_path, library_path, system_dir4, err_message_found_lib4, head_f_l, import_msgbox_lib, err_message_import4, head_f_i |
load_lib_end: |
align 16 |
procinfo process_information |
run_file_70 FileInfoBlock |
i_end: |
buf_cmd_lin rb 1024 |
fp_icon rb 1024 ;icon file path |
fp_obj_opt rb 1024 ;obj options file patch |
rb 1024 |
thread: ;¢¢¥àåã ¤®ç¥à¨© á⥪ ¤«ï ®ª á®®¡é¥¨ï |
rb 1024 |
stacktop: ;¢¢¥àåã á⥪ ®á®¢®© ¯à®£à ¬¬ë |
sys_path rb 1024 |
library_path rb 1024 |
mem: |
/programs/develop/kol_f_edit/ced_wnd_m.inc |
---|
0,0 → 1,434 |
align 4 |
draw_obj_info: |
mov eax,13 ;rect |
mov edx,WND_CAPT_COLOR |
mov ebx,[wndObjI.left] |
shl ebx,16 |
add ebx,[wndObjI.width] |
mov ecx,[wndObjI.top] |
add ecx,[recMain.top] |
shl ecx,16 |
add ecx,[wndObjI.height] |
sub ecx,[recMain.top] |
mov edx,0xffffff ;0x80ffffff |
int 0x40 ;¯àאַ㣮«ì¨ª ¤«ï ®ª |
mov ecx,[wndObjI.top] ;draw caption |
shl ecx,16 |
add ecx,[recMain.top] |
mov edx,WND_CAPT_COLOR |
int 0x40 |
mov edx,[foc_obj] ;init icon pointers |
cmp edx,0 |
je .exit_fun |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
pushad |
;draw caption wndObjI |
mov eax,4 ;¯®¤¯¨áì - §¢ ¨¥ ®¡ê¥ªâ |
mov bl,[edx] |
call find_obj_in_opt |
mov edx,edi |
mov ebx,[wndObjI.left] |
add ebx,[recMain.left] |
add ebx,4 |
shl ebx,16 |
add ebx,[wndObjI.top] |
add ebx,4 |
mov ecx,0xc0d000ff |
mov edi,WND_CAPT_COLOR |
add edx,obj_opt.info-obj_opt |
int 0x40 |
mov eax,8 ;ª®¯ª ¤«ï á®åà ¥¨ï ¨§¬¥¥¨© |
mov ebx,125*65536+20 |
mov ecx,161*65536+10 |
mov edx,10 |
mov esi,0xd040 |
int 0x40 |
popad |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
stdcall [edit_box_draw], dword edit2 |
stdcall [edit_box_draw], dword edit3 |
stdcall [edit_box_draw], dword edit4 |
stdcall [edit_box_draw], dword edit5 |
stdcall [edit_box_draw], dword edit6 |
stdcall [edit_box_draw], dword edit7 |
stdcall [edit_box_draw], dword edit8 |
stdcall [edit_box_draw], dword edit9 |
xor ebx,ebx ;®¬¥à ¯®«ï |
.draw_column: |
mov eax,ebx |
imul eax,[recMain.height] |
add eax,[recMain.top] |
add eax,[wndObjI.top] |
stdcall draw_icon_obj,[edx],ebx,eax |
inc ebx |
cmp ebx,MAX_OPT_FIELDS |
jl .draw_column |
.exit_fun: |
ret |
;®¡®¢«¥¨¥ ®¡ê¥ªâ®¢ ¢ tree2, ¯® § ç¥¨ï¬ â¥ªá⮢ëå ¯®«¥© |
;äãªæ¨ï ®¡à â ï ª ¤ ®© on_file_object_select |
align 4 |
but_element_change: |
;foc_obj - 㪠§ â¥«ì ¯®á«¥¤¨© ¢ë¡à ë© ã§¥« ¢ tree2 |
cmp dword[foc_obj],0 |
je @f |
pushad |
stdcall get_obj_win_param, 0,edit2 |
stdcall get_obj_win_param, 1,edit3 |
stdcall get_obj_win_param, 2,edit4 |
stdcall get_obj_win_param, 3,edit5 |
stdcall get_obj_win_param, 4,edit6 |
stdcall get_obj_win_param, 5,edit7 |
stdcall get_obj_win_param, 6,edit8 |
stdcall get_obj_win_param, 7,edit9 |
popad |
@@: |
call draw_constructor ;®¡®¢«ï¥¬ ®ª® ª®áâàãªâ®à |
call draw_window |
ret |
align 4 |
proc get_obj_win_param, col:dword, edit:dword |
;pushad |
stdcall get_obj_text_col, [foc_obj], [col] ;edx - ᬥ饨¥ ¤«ï ⥪áâ |
stdcall get_obj_text_len_col, [foc_obj], [col] ;eax - ¤«¨ ¯®«ï |
cld |
mov edi,[edit] |
mov esi,ed_text |
mov edi,edx |
mov ecx,eax |
rep movsb |
ret |
;popad |
endp |
;input: |
; obj - pointer to object |
; ind - column index |
;output: |
; edx + offset |
; edx = 0 if not text |
align 4 |
proc get_obj_text_col, obj:dword, ind:dword |
mov edx,dword[obj] |
inc edx ;goto text |
push ebx |
mov ebx,dword[ind] |
cmp bx,0 |
je .end_fun |
shl ebx,8 ;¢ bh ¯®¯ ¤ ¥â ®¬¥à ¨áª®¬®© ª®«®ª¨ |
mov bl,byte[edx-1] ;¢ bl ¯®¯ ¤ ¥â ª®¤ ®¡ê¥ªâ |
push ecx edi |
call find_obj_in_opt ;¨é¥¬ áâàãªâãàã á ®¯æ¨ï¬¨ ®¡ê¥ªâ |
add edi,obj_opt.Col-obj_opt |
dec bh |
and ebx,0xff00 |
shr ebx,7 ;ᤢ¨£ ¥¬ 7, â.ª. 㦮 § 票¥ bh 㬮¦¥®¥ 2 |
add edi,ebx ;+ ¡ë¢è¥¥ bh*2 |
xor ecx,ecx |
mov cx,word[edi] ;ecx - ᤨ£ ¤«ï ¨áª®¬®£® ¯®«ï |
add edx,ecx |
cmp cx,0 |
jg @f |
mov edx,0 ;not text |
@@: |
cmp cx,MAX_LEN_OBJ_TXT |
jl @f |
mov edx,0 ;not text |
@@: |
pop edi ecx |
.end_fun: |
pop ebx |
ret |
endp |
;input: |
; obj - 㪠§ â¥«ì ®¡ê¥ªâ |
; ind - ®¬¥à ¯®«ï ¢ãâਠ®¡ê¥ªâ |
;output: |
; eax - ¤«¨ ⥪á⮢®£® ¯®«ï ¢ãâਠ®¡ê¥ªâ |
align 4 |
proc get_obj_text_len_col, obj:dword, ind:dword |
xor eax,eax |
push ebx |
mov ebx,dword[ind] |
shl ebx,8 ;¢ bh ¯®¯ ¤ ¥â ®¬¥à ¨áª®¬®© ª®«®ª¨ |
mov eax,dword[obj] |
mov bl,byte[eax] ;¢ bl ¯®¯ ¤ ¥â ª®¤ ®¡ê¥ªâ |
xor eax,eax |
push edi |
call find_obj_in_opt ;¨é¥¬ áâàãªâãàã á ®¯æ¨ï¬¨ ®¡ê¥ªâ |
add edi,obj_opt.Col-obj_opt |
and ebx,0xff00 |
shr ebx,7 ;ᤢ¨£ ¥¬ 7, â.ª. 㦮 § 票¥ bh 㬮¦¥®¥ 2 |
add edi,ebx ;+ ¡ë¢è¥¥ bh*2 |
mov ax,word[edi] ;eax - ᤨ£ ¤«ï á«¥¤ã饣® ¯®«ï |
cmp ax,0 |
jg @f |
mov eax,MAX_LEN_OBJ_TXT ;¯®á«¥¤¨¥ ¯®«ï ¤«ï 㤮¡á⢠ª®¤¨àãîâáï 0, ¥ MAX_LEN_OBJ_TXT, ¨á¯à ¢«ï¥¬ á¨âã æ¨î |
@@: |
cmp dword[ind],0 |
je .end_fun ;¤«ï ¯¥à¢®£® ¯®«ï ᤨ£ = 0, ¯®â®¬ã ¢ áâàãªâãॠ® ¥ åà ¨âáï, â.ª. ¨§¢¥á⥠§ à ¥¥ |
sub ax,word[edi-2] ;®â¨¬ ¥¬ ᤨ£ ¤«ï ¨áª®¬®£® ¯®«ï, ¯®«ãç ¥¬ ¤«¨ã ¯®«ï |
cmp word[edi-2],0 |
jg @f |
mov eax,0 ;¯®«¥ ¯ãá⮥, ¥ ¨á¯®«ì§ã¥âáï |
@@: |
cmp ax,MAX_LEN_OBJ_TXT |
jl @f |
mov eax,0 ;not text |
@@: |
pop edi |
.end_fun: |
pop ebx |
ret |
endp |
align 4 |
proc draw_icon_obj, o_type:dword,n_col:dword, coord_y:dword |
pushad |
xor ebx,ebx |
mov bl,byte[o_type] |
call find_obj_in_opt |
add edi,obj_opt.img-obj_opt ;get index (+0) |
mov ebx,[n_col] |
shl ebx,1 |
add edi,ebx ;move index (+bh) |
xor ecx,ecx |
mov cx,[edi] |
cmp cx,0 |
jge @f |
jmp .end_fun ;error icon index |
@@: |
mov ebx,bmp_icon |
imul ecx,0x300 |
add ebx,ecx |
mov eax,7 |
mov ecx,0x100010 ;ecx - size:16*16 |
mov edx,[wndObjI.left] |
add edx,5 |
shl edx,16 |
add edx,[coord_y] |
int 0x40 |
.end_fun: |
popad |
ret |
endp |
align 4 |
proc draw_icon, ind:dword,coord_x:dword,coord_y:dword |
pushad |
mov ecx,[ind] |
cmp ecx,0 |
jl .end_fun |
mov ebx,bmp_icon |
imul ecx,0x300 |
add ebx,ecx |
mov eax,7 |
mov ecx,0x100010 ;ecx - size:16*16 |
mov edx,[coord_x] |
shl edx,16 |
add edx,[coord_y] |
int 0x40 |
.end_fun: |
popad |
ret |
endp |
;input |
; bl = cod object |
;output: |
; edi = pointer to option struct |
align 4 |
find_obj_in_opt: |
push ecx |
xor ecx,ecx ;find 'bl' in options |
mov edi,obj_opt |
@@: |
cmp bl,[edi] ;find |
je @f |
inc ecx |
cmp ecx,MAX_OBJ_TYPES |
je @f ;not find |
add edi,sizeof.ObjOpt |
jmp @b |
@@: |
pop ecx |
ret |
obj_find_last dd 0 ;㪠§ â¥«ì ¯®á«¥¤¨© ã¤ ç® ©¤¥ë© ®¡ê¥ªâ, |
;㦥 ¤«ï ãáª®à¥¨ï ¯®á«¥¤ã饣® ¯®¨áª |
;¢ë室: |
;eax - 㪠§ ⥫ì áâàãªâãàã ©¤¥®£® ®¡ê¥ªâ |
align 4 |
proc find_obj_in_file, o_type:dword |
push ebx esi |
mov ebx,[o_type] |
stdcall dword[tl_node_poi_get_info], 0,tree2 |
pop esi |
@@: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp eax,0 |
je .find_no |
cmp byte[eax],bl ;ᬮâਬ ®¯¨á «¨ ¨áª®¬ë© ®¡ê¥ªâ ¢ 㧫¥ |
je .find_yes |
stdcall dword[tl_node_poi_get_next_info], esi,tree2 |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
jmp @b |
.find_yes: |
mov dword[obj_find_last],esi |
jmp @f |
.find_no: |
mov dword[obj_find_last],0 |
xor eax,eax |
@@: |
pop esi ebx |
ret |
endp |
;¢ë室: |
;eax - 㪠§ ⥫ì áâàãªâãàã ©¤¥®£® ®¡ê¥ªâ |
align 4 |
proc find_obj_in_file_next, o_type:dword |
push ebx esi |
cmp dword[obj_find_last],0 |
je .find_no |
mov ebx,[o_type] |
stdcall dword[tl_node_poi_get_next_info], dword[obj_find_last],tree2 |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
@@: |
cmp esi,0 |
je .find_no |
stdcall dword[tl_node_poi_get_data], esi,tree2 |
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
cmp eax,0 |
je .find_no |
cmp byte[eax],bl ;ᬮâਬ ®¯¨á «¨ ¨áª®¬ë© ®¡ê¥ªâ ¢ 㧫¥ |
je .find_yes |
stdcall dword[tl_node_poi_get_next_info], esi, tree2 |
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
jmp @b |
.find_yes: |
mov dword[obj_find_last],esi |
jmp @f |
.find_no: |
mov dword[obj_find_last],0 |
xor eax,eax |
@@: |
pop esi ebx |
ret |
endp |
align 4 |
but_show_constructor: |
mov byte[show_mode],0 |
stdcall [buf2d_draw], buf_fon |
ret |
align 4 |
but_show_code: |
mov byte[show_mode],1 |
stdcall [ted_draw], tedit0 |
ret |
;input: |
; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
;output: |
; eax - ç¨á«® |
align 4 |
proc conv_str_to_int, buf:dword |
xor eax,eax |
push ebx esi |
xor ebx,ebx |
mov esi,[buf] |
cmp word[esi],'0x' |
je .load_digit_16 |
.load_digit_10: ;áç¨âë¢ ¨¥ 10-â¨çëå æ¨äà |
mov bl,byte[esi] |
cmp bl,'0' |
jl @f |
cmp bl,'9' |
jg @f |
sub bl,'0' |
imul eax,10 |
add eax,ebx |
inc esi |
jmp .load_digit_10 |
jmp @f |
.load_digit_16: ;áç¨âë¢ ¨¥ 16-à¨çëå æ¨äà |
add esi,2 |
.cycle_16: |
mov bl,byte[esi] |
cmp bl,'0' |
jl @f |
cmp bl,'f' |
jg @f |
cmp bl,'9' |
jle .us1 |
cmp bl,'A' |
jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'9' ¨ <'A' |
.us1: ;á®áâ ¢®¥ ãá«®¢¨¥ |
cmp bl,'F' |
jle .us2 |
cmp bl,'a' |
jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'F' ¨ <'a' |
sub bl,32 ;¯¥à¥¢®¤¨¬ ᨬ¢®«ë ¢ ¢¥à娩 ॣ¨áâà, ¤«ï ã¯à®é¥¨ï ¨å ¯®á«¥¤ã饩 ®¡à ¡®âª¨ |
.us2: ;á®áâ ¢®¥ ãá«®¢¨¥ |
sub bl,'0' |
cmp bl,9 |
jle .cor1 |
sub bl,7 ;convert 'A' to '10' |
.cor1: |
shl eax,4 |
add eax,ebx |
inc esi |
jmp .cycle_16 |
@@: |
pop esi ebx |
ret |
endp |
/programs/develop/kol_f_edit/dll.inc |
---|
0,0 → 1,99 |
proc dll.Load, import_table:dword |
mov esi,[import_table] |
.next_lib: mov edx,[esi] |
or edx,edx |
jz .exit |
push esi |
mov esi,[esi+4] |
mov edi,s_libdir.fname |
@@: lodsb |
stosb |
or al,al |
jnz @b |
mcall 68,19,s_libdir |
or eax,eax |
jz .fail |
stdcall dll.Link,eax,edx |
push eax |
mov eax, [eax] |
cmp dword [eax], 'lib_' |
pop eax |
jnz @f |
stdcall dll.Init,[eax+4] |
@@: |
pop esi |
add esi,8 |
jmp .next_lib |
.exit: xor eax,eax |
ret |
.fail: add esp,4 |
xor eax,eax |
inc eax |
ret |
endp |
proc dll.Link, exp:dword,imp:dword |
push eax |
mov esi,[imp] |
test esi,esi |
jz .done |
.next: lodsd |
test eax,eax |
jz .done |
stdcall dll.GetProcAddress,[exp],eax |
or eax,eax |
jz @f |
mov [esi-4],eax |
jmp .next |
@@: mov dword[esp],0 |
.done: pop eax |
ret |
endp |
proc dll.Init, dllentry:dword |
pushad |
mov eax,mem.Alloc |
mov ebx,mem.Free |
mov ecx,mem.ReAlloc |
mov edx,dll.Load |
stdcall [dllentry] |
popad |
ret |
endp |
proc dll.GetProcAddress, exp:dword,sz_name:dword |
mov edx,[exp] |
xor eax,eax |
.next: or edx,edx |
jz .end |
cmp dword[edx],0 |
jz .end |
stdcall strcmp,[edx],[sz_name] |
test eax,eax |
jz .ok |
add edx,8 |
jmp .next |
.ok: mov eax,[edx+4] |
.end: ret |
endp |
proc strcmp, str1:dword,str2:dword |
push esi edi |
mov esi,[str1] |
mov edi,[str2] |
xor eax,eax |
@@: lodsb |
scasb |
jne .fail |
or al,al |
jnz @b |
jmp .ok |
.fail: or eax,-1 |
.ok: pop edi esi |
ret |
endp |
s_libdir: |
db '/sys/lib/' |
.fname rb 32 |
/programs/develop/kol_f_edit/icon.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/develop/kol_f_edit/left.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/develop/kol_f_edit/mem.inc |
---|
0,0 → 1,48 |
;----------------------------------------------------------------------------- |
proc mem.Alloc,size ;///////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx |
mov ecx,[size] |
;*** add ecx,4 |
mcall 68,12 |
;*** add ecx,-4 |
;*** mov [eax],ecx |
;*** add eax,4 |
pop ecx ebx |
ret |
endp |
;----------------------------------------------------------------------------- |
proc mem.ReAlloc,mptr,size ;////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx edx |
mov ecx,[size] |
or ecx,ecx |
jz @f |
;*** add ecx,4 |
@@: mov edx,[mptr] |
or edx,edx |
jz @f |
;*** add edx,-4 |
@@: mcall 68,20 |
or eax,eax |
jz @f |
;*** add ecx,-4 |
;*** mov [eax],ecx |
;*** add eax,4 |
@@: pop edx ecx ebx |
ret |
endp |
;----------------------------------------------------------------------------- |
proc mem.Free,mptr ;////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx |
mov ecx,[mptr] |
or ecx,ecx |
jz @f |
;*** add ecx,-4 |
@@: mcall 68,13 |
pop ecx ebx |
ret |
endp |
/programs/develop/kol_f_edit/min_prog.ced |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/develop/kol_f_edit/ob_o.asm |
---|
0,0 → 1,84 |
;lang equ ru |
MAX_LEN_OBJ_TXT equ 200 |
C_TD equ 't' ;typedef |
C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code) |
C_ST equ 's' ;struct |
C_IN equ '#' ;include |
C_TT equ 'd' ;¡«®ª ª®¤ (¤ ëå) |
C_VR equ '-' ;¯¥à¥¬¥ ï |
C_CO equ ';' ;ª®¬¬¥â ਩ |
C_WI equ 'w' ;®ª® |
C_CB equ 'c' ;CheckBox |
C_OP equ 'o' ;OptionBox |
C_ED equ 'e' ;EditBox |
C_BU equ 'b' ;Button |
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ |
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì¨ª |
C_KE equ 'k' ;ª« ¢¨ âãà |
macro ObjOpt c,bl_type,graph,info,caption,Col,img |
{ |
db c |
db bl_type |
db graph |
@@: db info |
rb @b+30-$ |
@@: db caption |
rb @b+MAX_LEN_OBJ_TXT-$ |
dw Col |
dw img |
} |
ObjOpt C_AC, 1,0,'¢â® ª®¤','',\ |
<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
<2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_ST, 1,0,'âàãªâãà ','¨¬ï áâàãªâãàë*¯ à ¬¥âàë ¤«ï ¬ ªà®á ',\ |
<40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
< 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_BU, 1,1,'®¯ª ','¨¤¥â¨ä¨ª â®à*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨ *¢ëá®â *梥â*¨¬ï ¬¥âª¨ ¯à¨ ¦ ⨨',\ |
<20, 40, 60, 80,100,120, 0, 0, 0, 0, 0>,\ |
<29, 15, 16, 26, 27, 25, -1, -1, -1, -1,-1> |
ObjOpt C_ED, 1,1,'¥ªá⮢®¥ ¯®«¥','***®âáâ㯠ᢥàåã*梥â ä® *梥⠢뤥«¥¨ï ¯à¨ 㤥ন¢ ¨¨ shift ¨«¨ ¬ë誮©*梥â à ¬ª¨*¯à¨ ¥ ªâ¨¢®¬ ¡®ªá¥ 梥â à ¬ª¨*梥â ⥪áâ *¬ ªá¨¬ «ì ï ¤«¨ ⥪áâ * ç «ìë© â¥ªáâ',\ |
<30, 40, 50, 60, 80,100,120,140,160,170, 0>,\ |
<10, 26, 15, 16, 25, 25, 25, 25, 25, -1, 4> |
ObjOpt C_OP, 1,1,' ¤¨® ª®¯ª ','¨¬ï*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*梥â ä® ¢ãâà¨*梥â à ¬ª¨ ¨ ¢ãâà. £ «®çª¨*梥â ⥪áâ *¯®¤¯¨áì*®âáâ㯠¤® ¤¯¨á¨*à §¬¥à ª¢ ¤à â ',\ |
<40, 50, 60, 80,100,120,180,190, 0, 0, 0>,\ |
< 9, 15, 16, 25, 25, 25, 4, 26, 27, -1, -1> |
ObjOpt C_CB, 1,1,'« ¦®ª','***¯®¤¯¨áì*梥â ä® ¢ãâà¨*梥â à ¬ª¨ ¨ ¢ãâà. £ «®çª¨*梥â ⥪áâ *®âáâ㯠¤® ¤¯¨á¨*à §¬¥à ª¢ ¤à â ',\ |
<40, 50, 60,120,140,160,180,190, 0, 0, 0>,\ |
< 8, 15, 16, 4, 25, 25, 25, 26, 27, -1, -1> |
ObjOpt C_TT, 1,0,'asm ª®¤','',\ |
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
<11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_VR, 0,0,'¥à¥¬¥ ï','¨¬ï ¯¥à¥¬¥®©*§ 票¥ ¯® 㬮«ç ¨î*ª®¬¬¥â ਩',\ |
<40, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
< 0, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_WI, 1,1,'ª®','**®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨ *¢ëá®â *梥⠪«¨¥â᪮© ®¡« áâ¨*梥⠧ £®«®¢ª (¥á«¨ ¥áâì)',\ |
<98,100,110,120,130,150,170, 0, 0, 0, 0>,\ |
<12, -1, 15, 16, 26, 27, 25, 25, -1, -1, -1> |
ObjOpt C_CO, 1,0,'®¬¬¥â ਩','áâப ª®¬¬¥â à¨ï',\ |
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
< 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_IN, 1,0,'ª«î票¥ ä ©« ','¨¬ï ä ©« *ª®¬¬¥â ਩',\ |
<100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
< 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_TD, 0,0,'¨¯ ¤ ®£®','',\ |
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
< 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt C_DT, 1,1,'¨á®¢ ¨¥ ⥪áâ ','***梥â ⥪áâ *梥â ä® (¥á«¨ ¥áâì)',\ |
<40, 50, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\ |
< 4, 15, 16, 25, 25, -1, -1, -1, -1, -1, -1> |
ObjOpt C_RE, 1,1,'àאַ㣮«ì¨ª','梥â*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨ *¢ëá®â ',\ |
<20, 40, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\ |
<25, 15, 16, 26, 27, -1, -1, -1, -1, -1, -1> |
ObjOpt C_KE, 1,0,'®¡ë⨥ ª« ¢¨ âãàã','',\ |
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
<28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
ObjOpt 0x0d, 1,0, '-','',\ |
<20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ |
<-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> |
/programs/develop/kol_f_edit/oper.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/develop/kol_f_edit/readme.htm |
---|
0,0 → 1,69 |
<html> |
<head> |
<title>Îãëàâëåíèå</title> |
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251"> |
<style> |
body |
{ |
font-size: 15px; |
font-family: "Bookman Old Style"; |
color: black; |
text-align: justify; |
} |
h1 { color: green; font-size: 23px; } |
h2 { color: green; font-size: 21px; } |
h3 { color: green; font-size: 19px; } |
h4 { color: #803f00; font-size: 17px; } |
i { color: #0099cc; } |
b { color: #0099cc; } |
p { |
text-indent: 1em; |
margin-top: 3px; |
margin-bottom: 2px; |
margin-left: 0px; |
margin-right: 0px; |
} |
ol, ul, dl{ |
margin-top: 3px; |
margin-bottom: 2px; |
} |
pre |
{ |
padding: 2px; |
padding-left: 20px; |
margin-top: 5px; |
margin-bottom: 5px; |
margin-left: 0px; |
margin-right: 0px; |
font-family: "Courier New"; |
font-size: 15px; |
color: #004000; |
background-color: #ffd0ff; |
} |
table |
{ |
font-size: 15px; |
} |
</style> |
</head> |
<body> |
<h1>Kol_f_edit âåðñèÿ îò 11.11.2010</h1> |
<h2>Î ïðîãðàììå</h2> |
<p>Ïðîãðàììà äëÿ àâòîìàòèçàöèè ñîçäàíèÿ èíòåðôåéñà. |
Ìíîãèå ôóíêöèè ïðîãðàììû ïîêà åùå íå ñäåëàíû, ïîòîìó âîçìîæíîñòè åå ïðàêòè÷åñêîãî èñïîëüçîâàíèÿ ìèíèìàëüíûå. |
Ëèöåíçèÿ ñâîáîäíàÿ.</p> |
<p><img src="about.png"></p> |
<p>Âíåøíèé âèä ïðîãðàììû.</p> |
<h2>Àëãîðèòì ðàáîòû ñ ïðîãðàììîé</h2> |
<p>1) Îòêðûâàåì øàáëîí ïðîãðàììû èç ôàéëà <b>min_prog.ced</b> (<i>ïîêà îí òîëüêî îäèí, äàëüøå ïëàíèðóåòüñÿ äîáàâëåíèå äðóãèõ øàáëîíîâ</i>)</p> |
<p>2) Ðåäàêòèðóåì îáúåêòû â ôàéëå <b>min_prog.ced</b> (<i>áîëåå ïîäðîáíûå èíñòðóêöèè ïî ðåäàêòèðîâàíèþ äîáàâëþ êîãäà ïðîãðàììà áóäåò ãîòîâà</i>)</p> |
<p>3) Ñîçäàåì <b>*.asm</b> êîä â òåêñòîâîì îêíå êíîïêîé íà ïàíåëè. Ñîõðàíÿåì <b>*.asm</b> êîä íà äèñê (<i>ðàáîòîñïîñîáíîñòü ïîëó÷èâøåãîñÿ ôàéëà íå ãàðàíòèðóåòñÿ, ò. ê. ìíîãèå ýëåìåíòû åùå äîêîíöà íå çàïðîãðàìèðîâàíû</i>)</p> |
<p>4) Ðåäàêòèðóåì ïîëó÷èâøèéñÿ <b>*.asm</b> ôàéë ëþáûì òåêñòîâûì ðåäàêòîðîì</p> |
<h2>Àâòîð</h2> |
<p>Èãîðü À. (IgorA) - ðàçðàáîòêà ïðîãðàììû.</p> |
</body> |
</html> |
/programs/develop/kol_f_edit/strlen.inc |
---|
0,0 → 1,45 |
; strlen function |
; |
; Copyright (c) 2003 Thomas Mathys |
; killer@vantage.ch |
; |
; This program is free software; you can redistribute it and/or modify |
; it under the terms of the GNU General Public License as published by |
; the Free Software Foundation; either version 2 of the License, or |
; (at your option) any later version. |
; |
; This program is distributed in the hope that it will be useful, |
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
; GNU General Public License for more details. |
; |
; You should have received a copy of the GNU General Public License |
; along with this program; if not, write to the Free Software |
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
; |
;%ifndef _STRLEN_INC |
;%define _STRLEN_INC |
;******************************************************************** |
; returns the length of an asciiz string |
; input : esi = pointer to string |
; output : eax = string length |
; destroys : nothing |
;******************************************************************** |
strlen: |
push ecx |
push edi |
pushfd |
cld ; ! |
mov ecx,-1 |
mov edi,esi ; find terminating zero |
xor al,al |
repne scasb |
mov eax,edi ; calculate string length |
sub eax,esi |
dec eax |
popfd |
pop edi |
pop ecx |
ret |
/programs/develop/kol_f_edit/tl_sys_16.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |