0,0 → 1,376 |
use32 |
org 0x0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x01 |
dd start |
dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï |
dd mem |
dd stacktop |
dd file_name;buf_cmd_lin |
dd sys_path |
|
MAX_COLOR_WORD_LEN equ 40 |
BUF_SIZE equ 1000 ;buffer for copy|paste |
maxSyntaxFileSize equ 310000 |
|
include '../../macros.inc' |
include '../../proc32.inc' |
include '../../develop/libraries/box_lib/load_lib.mac' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
|
include 'te_data.inc' |
include 'te_work.inc' ;text work functions |
|
@use_library |
|
align 4 |
start: |
mov eax,48 |
mov ebx,3 |
mov ecx,sc |
mov edx,sizeof.system_colors |
mcall |
|
mcall 68,11 |
or eax,eax |
jz button.exit |
|
mcall 40,0x27 |
|
;------------------------------------------------- |
mov ecx,maxSyntaxFileSize |
call mem_Alloc |
mov [options_file],eax |
mov [options_file_end],eax |
add [options_file_end],ecx |
|
|
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 |
@@: |
|
;--------------------------------------------------------------------- |
stdcall dword[tl_data_init],dword tree1 |
copy_path fn_icon_tl_sys,sys_path,file_name,0 |
|
mov ecx,3*256*13 |
call mem_Alloc |
mov dword[tree1.data_img_sys],eax |
|
mov [run_file_70.Function], 0 |
mov [run_file_70.Position], 54 |
mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], 3*256*13 |
mov [run_file_70.Buffer], eax |
mov byte[run_file_70+20], 0 |
mov [run_file_70.FileName], file_name |
|
mov eax,70 ;load icon file |
mov ebx,run_file_70 |
int 0x40 |
cmp ebx,0 |
jg @f |
mov dword[tree1.data_img_sys],0 |
@@: |
;--------------------------------------------------------------------- |
; ç¨â ¥¬ bmp ä ©« á ¨ª®ª ¬¨ 㧫®¢ |
copy_path fn_icon_tl_nod,sys_path,file_name,0 |
|
mov ecx,3*256*2 |
call mem_Alloc |
mov dword[tree1.data_img],eax |
|
; mov [run_file_70.Function], 0 |
; mov [run_file_70.Position], 54 |
; mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], 3*256*2 |
mov [run_file_70.Buffer], eax |
; mov byte[run_file_70+20], 0 |
; mov [run_file_70.FileName], file_name |
|
mov eax,70 ;load icon file |
mov ebx,run_file_70 |
int 0x40 |
cmp ebx,0 |
jg @f |
mov dword[tree1.data_img],0 |
@@: |
;------------------------------------------------------------------------------ |
copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ á¨â ªá¨á |
mov eax,70 |
mov ebx,tree_file_struct |
int 0x40 |
|
cmp ebx,-1 |
je .end_dir_init |
|
mov eax,dir_mem |
add eax,32+4+1+3+4*6+8 |
mov ecx,ebx |
@@: |
cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥ ¬¨ '.' ¨ '..' |
je .filter |
push dword tree1 |
push dword 0x10000 ;1*2^16 - £¤¥ 1 ®¬¥à ¨ª®ª¨ á ª¨£®© |
push dword eax |
call dword[tl_node_add] |
|
stdcall dword[tl_cur_next],tree1 |
.filter: |
add eax,304 |
loop @b |
.end_dir_init: |
|
;--- load color option file --- |
stdcall [ted_init], tedit0 |
|
align 4 |
red_win: |
pushad |
mcall 12,1 |
|
xor eax,eax |
mov ebx,10*65536+555 |
mov ecx,10*65536+333 |
mov edx,[sc.work] |
or edx,0x33000000 |
mov edi,hed |
mcall |
|
mcall 9,procinfo,-1 |
|
mov eax,8 ;ª®¯ª |
mov ebx,5*65536+90 |
mov ecx,195*65536+20 |
mov edx,200 |
mov esi,[sc.work_button];0xd0 |
mcall |
|
; mov eax,8 |
mov ebx,100*65536+85 |
mov ecx,195*65536+20 |
mov edx,201 |
mov esi,0xd00000 |
mcall |
|
mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ |
mov ebx,10*65536+200 |
mov ecx,[sc.work_button_text] |
or ecx,0x80000000 |
mov edx,txt122 |
mcall |
|
mov ebx,105*65536+200 |
mov ecx,0xffff00 |
or ecx,0x80000000 |
mov edx,txt148 |
mcall |
|
mov ebx,195*65536+10 |
mov ecx,[sc.work_text] |
or ecx,0x80000000 |
mov edx,txt_out_file |
mcall |
|
stdcall [edit_box_draw],dword edit1 |
stdcall [tl_draw],dword tree1 |
|
;scroll 1 |
mov [ws_dir_lbox.all_redraw],1 |
stdcall [scrollbar_ver_draw],dword ws_dir_lbox |
stdcall [ted_draw], tedit0 |
|
mcall 12,2 |
popad |
|
align 4 |
still: |
mcall 10 |
|
cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
jz red_win |
cmp al,2 |
jz key |
cmp al,3 |
jz button |
cmp al,6 |
jz mouse |
|
jmp still |
|
|
align 4 |
mouse: |
stdcall [tl_mouse],tree1 |
stdcall [edit_box_mouse],edit1 |
stdcall [ted_mouse], tedit0 |
jmp still |
|
|
align 4 |
key: |
mcall 2 |
stdcall [tl_key],tree1 |
stdcall [edit_box_key],edit1 |
;;;stdcall [ted_key], tedit0, conv_tabl,esi |
jmp still |
|
align 4 |
button: |
; cmp [menu_active],1 ;¥á«¨ ¦ «¨ ¬¥î, â® á ç « ॠªæ¨ï ¬¥î |
; jne @f ;mouse.menu_bar_1 |
; mov [menu_active],0 |
; jmp still |
; @@: |
|
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
|
cmp ah,200 |
jne @f |
call but_OpenSyntax |
@@: |
cmp ah,201 |
jne @f |
call but_SaveSyntax |
@@: |
|
cmp ah,1 |
jne still |
.exit: |
;push eax |
|
mov ecx,[options_file] |
call mem_Free |
|
stdcall [tl_data_clear], tree1 |
stdcall [ted_delete], tedit0 |
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
|
align 4 |
but_OpenSyntax: |
stdcall [tl_node_get_data],tree1 |
pop dword [fn_col_option] |
call InitColText |
ret |
|
align 4 |
but_SaveSyntax: |
stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text] |
ret |
|
align 4 |
but_ctrl_o: |
push eax |
call get_wnd_in_focus |
cmp eax,0 |
je @f |
stdcall [ted_open_file], eax,str_file_70,[edit1.text] |
@@: |
pop eax |
ret |
|
;ᮧ¤ ¨¥ ®¢®£® ä ©« |
align 4 |
but_ctrl_n: |
push eax |
call get_wnd_in_focus |
cmp eax,0 |
je @f |
stdcall [ted_clear], eax,1 |
stdcall [ted_draw], eax |
@@: |
pop eax |
ret |
|
;®¯à¥¤¥«ï¥¬ ª ª®¥ ¨§ ®ª® । ªâ®à ¢ 䮪ãᥠ|
align 4 |
get_wnd_in_focus: |
xor eax,eax |
cmp dword[el_focus],tedit0 |
jne @f |
mov eax,tedit0 |
@@: |
;cmp dword[el_focus],tedit1 |
;jne @f |
; mov eax,tedit1 |
;@@: |
ret |
|
hed db 'TextEditor syntax file converter 31.05.10',0 ;¯®¤¯¨áì ®ª |
|
txtErrOpen db '¥ ©¤¥ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì®áâì ¨¬¥¨',0 |
txtErrIni0 db '¥ ®âªàë«áï ä ©« á ¨ª®ª ¬¨',0 |
err_ini0 db 0 |
|
txt122 db ' £à. ä ©«',0 |
txt148 db '®åà. ä ©«',0 |
txt_out_file db 'ëå. ä ©«:',0 |
|
CAPT_PATH_WIDTH equ 50 |
edit1 edit_box 305+16-CAPT_PATH_WIDTH, 215+CAPT_PATH_WIDTH, 5, 0xffffff, 0xff, 0xff0000, 0, 0x80, MAX_COLOR_WORD_LEN, ed_buffer.127, mouse_dd, 0 |
|
ed_buffer: ;⥪áâ ¤«ï edit |
.127: rb MAX_COLOR_WORD_LEN+2 |
|
err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0 |
head_f_i0: |
head_f_l0 db 'System error',0 |
err_message_import0 db 'Error on load import library box_lib.obj',0 |
err_message_found_lib1 db 'Sorry I cannot found library msgbox.obj',0 |
|
;library structures |
l_libs_start: |
lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, myimport,err_message_import0, head_f_i0 |
load_lib_end: |
|
;----------------------------------------------------------------------------- |
;äãªæ¨ï ¤«ï ¢ë¤¥«¥¨ï ¯ ¬ï⨠|
;input: |
; ecx = size data |
;otput: |
; eax = pointer to memory |
align 4 |
mem_Alloc: |
push ebx |
mov eax,68 |
mov ebx,12 |
int 0x40 |
pop ebx |
ret |
;----------------------------------------------------------------------------- |
;äãªæ¨ï ¤«ï ®á¢®¡®¦¤¥¨ï ¯ ¬ï⨠|
;input: |
; ecx = pointer to memory |
align 4 |
mem_Free: |
push eax ebx |
cmp ecx,0 |
jz @f |
mov eax,68 |
mov ebx,13 |
int 0x40 |
@@: |
pop ebx eax |
ret |
|
i_end: |
rb 1024 |
align 16 |
procinfo process_information |
thread: |
rb 1024 |
stacktop: |
sys_path: |
rb 4096 |
file_name: |
rb 4096 |
file_name_rez: |
rb 4096 |
file_info: |
rb 40 |
mem: |