22,64 → 22,44 |
|
jmp still.skip_write |
|
; cmp eax,BUTTON_SCRLUP |
; jne not_up |
btn.scroll_up: |
dec [top_line] |
dec [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
jns @f |
inc [top_line] |
ret;jmp still.skip_write |
inc [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
ret |
@@: call check_inv_all.skip_check |
ret |
; not_up: |
|
; cmp eax,BUTTON_SCRLDN |
; jne not_down |
btn.scroll_down: |
inc [top_line] |
mov eax,[lines] |
inc [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
mov eax,[cur_tab.Editor.Lines] ;! eax,[lines] |
sub eax,[lines.scr] |
cmp eax,[top_line] |
cmp eax,[cur_tab.Editor.TopLeft.Y] ;! eax,[top_line] |
jge @f |
dec [top_line] |
;dec eax |
;mov [top_line],eax |
ret;jmp still.skip_write |
dec [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
ret |
@@: call check_inv_all.skip_check |
ret |
; not_down: |
|
; cmp eax,BUTTON_SCRLLT |
; jne not_left |
btn.scroll_left: |
dec [left_col] |
dec [cur_tab.Editor.TopLeft.X] ;! [left_col] |
jns @f |
inc [left_col] |
inc [cur_tab.Editor.TopLeft.X] ;! [left_col] |
ret;jmp still.skip_write |
@@: call check_inv_all.skip_check |
ret |
; not_left: |
|
; cmp eax,BUTTON_SCRLRT |
; jne not_right |
btn.scroll_right: |
inc [left_col] |
mov eax,[columns] |
inc [cur_tab.Editor.TopLeft.X] ;! [left_col] |
mov eax,[cur_tab.Editor.Columns] ;! eax,[columns] |
sub eax,[columns.scr] |
cmp eax,[left_col] |
cmp eax,[cur_tab.Editor.TopLeft.X] ;! eax,[left_col] |
jge @f |
dec [left_col] |
;dec eax |
;mov [left_col],eax |
ret;jmp still.skip_write |
dec [cur_tab.Editor.TopLeft.X] ;! [left_col] |
ret |
@@: call check_inv_all.skip_check |
ret |
; not_right: |
|
; SEARCH { |
; search: |
; cmp al,BUTTON_SEARCH |
; jne no_search |
btn.search: |
key.f3: |
call search |
90,7 → 70,7 |
|
func search |
cld |
mov ecx,[pos.y] |
mov ecx,[cur_tab.Editor.Caret.Y] ;! ecx,[pos.y] |
mov edx,ecx |
call get_line_offset |
cmp word[esi],0 |
100,11 → 80,9 |
or eax,eax |
jz .end_line.2 |
mov ecx,eax |
sub ecx,[pos.x] |
sub ecx,[cur_tab.Editor.Caret.X] ;! ecx,[pos.x] |
push esi |
add esi,[pos.x] |
;dec ecx |
;inc esi |
add esi,[cur_tab.Editor.Caret.X] ;! esi,[pos.x] |
jmp @f |
|
.next_line: |
140,15 → 118,15 |
|
.found: |
add esp,4 |
mov [pos.y],edx |
mov [sel.y],edx |
mov [cur_tab.Editor.Caret.Y],edx ;! [pos.y],edx |
mov [cur_tab.Editor.SelStart.Y],edx ;! [sel.y],edx |
mov ecx,edx |
lea eax,[esi-4] |
call get_line_offset |
sub eax,esi |
mov [sel.x],eax |
mov [cur_tab.Editor.SelStart.X],eax ;! [sel.x],eax |
add eax,[s_search.size] |
mov [pos.x],eax |
mov [cur_tab.Editor.Caret.X],eax ;! [pos.x],eax |
mov [s_status],0 |
clc |
ret |
170,136 → 148,87 |
ret |
endf |
|
; SEARCH } |
|
; no_search: |
|
; TOOLBAR { |
; cmp eax,10000 |
; jb no_toolbar |
|
; add eax,-10000 |
; jnz @f |
btn.compile: |
key.ctrl_f9: |
mov bl,0;[run_outfile],0 |
mov bl,0 |
call start_fasm |
ret;jmp still |
; @@: dec eax |
; jnz @f |
ret |
btn.compile_run: |
key.f9: |
mov bl,1;[run_outfile],1 |
mov bl,1 |
call start_fasm |
ret;jmp still |
; @@: dec eax |
; jnz @f |
ret |
btn.debug_board: |
call open_debug_board |
ret;jmp still |
; @@: dec eax |
; jnz still |
ret |
btn.sysfuncs_txt: |
call open_sysfuncs_txt |
ret;jmp still |
; TOOLBAR } |
ret |
|
; no_toolbar: |
|
; cmp al,4 |
; jne noid4 |
|
; LOAD_FILE { |
; do_load_file: |
btn.load_file: |
key.ctrl_l: |
; cmp [s_fname],'/' |
; jne @f |
; call load_hd_file |
; jmp .restorecursor |
; @@: call load_file |
call load_file |
jnc @f |
ret |
; .restorecursor: |
@@: |
|
xor eax,eax |
mov [top_line],eax |
mov [left_col],eax |
mov [pos.x],eax |
mov [pos.y],eax |
mov [sel.x],eax |
mov [sel.y],eax |
mov [cur_tab.Editor.TopLeft.Y],eax ;! [top_line],eax |
mov [cur_tab.Editor.TopLeft.X],eax ;! [left_col],eax |
mov [cur_tab.Editor.Caret.X],eax ;! [pos.x],eax |
mov [cur_tab.Editor.Caret.Y],eax ;! [pos.y],eax |
mov [cur_tab.Editor.SelStart.X],eax ;! [sel.x],eax |
mov [cur_tab.Editor.SelStart.Y],eax ;! [sel.y],eax |
|
mov [modified],al |
mov [cur_tab.Editor.Modified],al ;! [modified],al |
|
; enable color syntax for ASM and INC files: |
mov [asm_mode],al |
mov [cur_tab.Editor.AsmMode],al ;! [asm_mode],al |
|
mov eax,[f_info.length] ; [s_fname.size] |
add eax,f_info.path ; s_fname |
mov eax,[f_info.length] |
add eax,f_info.path |
mov byte[eax],0 |
mov ecx, dword [eax-3] |
or ecx, 0x202020 |
cmp ecx, 'asm' |
jne @f |
inc [asm_mode] |
inc [cur_tab.Editor.AsmMode] ;! [asm_mode] |
jmp .nocol |
@@: cmp ecx, 'inc' |
jne .nocol |
inc [asm_mode] |
inc [cur_tab.Editor.AsmMode] ;! [asm_mode] |
.nocol: |
|
update_caption: |
macro unused { |
movzx ecx,[f_info.length] ; [s_fname.size] |
add ecx,10 ; strlen(" - TINYPAD"); |
cmp ecx,[s_title.size] |
jne @f |
add ecx,-10 |
mov esi,f_info.path ; s_fname ; strcmp(s_fname,header); |
lea esi,[cur_tab.Editor.FilePath] ;! mov esi,f_info.path |
mov edi,s_title |
repe cmpsb |
jne @f |
; call draw_file |
clc |
ret;jmp still |
|
@@: lodsb |
cmp al,0 |
je @f |
stosb |
jmp @b |
@@: |
} |
; set window title: |
mov esi,f_info.path ; s_fname |
mov edi,s_title |
|
cld |
mov ecx,[f_info.length] ; [s_fname.size] |
jecxz @f |
;lea eax,[ecx+10] |
;mov [s_title.size],eax |
;cld |
rep movsb |
;mov ecx,[f_info.length] |
;jecxz @f |
;rep movsb |
|
mov dword[edi],' - ' |
add edi,3 |
@@: mov esi,htext |
mov ecx,htext.size |
cld |
rep movsb |
|
mov al,0 |
stosb |
|
; call drawwindow |
mcall 71,1,s_title |
|
clc |
ret;jmp still |
; LOAD_FILE } |
ret |
|
; noid4: |
|
; cmp al, 2 |
; jz yessave |
|
; dec al ; close if butid == 1 |
; jnz nosave |
; EXIT: |
btn.close_main_window: |
key.alt_x: |
mov esi,self_path |
310,11 → 239,6 |
stosb |
or al,al |
jnz @b |
; mov ebx,f_info |
; mov dword[ebx+0],1 |
; mov dword[ebx+8],self_path |
; mov dword[ebx+12],0 |
; mcall 58 |
|
mov [f_info70+0],2 |
mov [f_info70+4],0 |
325,31 → 249,6 |
mov [f_info70+21],f_info.path |
mcall 70,f_info70 |
|
; test eax,eax |
; je .close |
; cmp eax,6 |
; je .close |
; ret |
|
.close: |
mov [main_closed],1 |
mcall -1 |
|
; SAVE_FILE { |
; yessave: |
; btn.save_file: |
; key.ctrl_s: |
; mov [bot_mode],1 |
; mov [bot_save_mode],1 |
; mov [bot_dlg_height],16*2+4*2-1 |
; mov [bot_dlg_handler],osdlg_handler |
; call drawwindow |
; call save_file |
; ret;jmp still |
; SAVE_FILE } |
|
; nosave: |
; btn.save_enter_name: |
; inc al |
; call read_string |
; ret;jmp still |