forked from KolibriOS/kolibrios
Tinypad 4.0.4 in progress (tabs + memory manager)
git-svn-id: svn://kolibrios.org@259 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -22,64 +22,44 @@ button:
|
||||
|
||||
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 @@ button:
|
||||
|
||||
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 @@ func search
|
||||
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 @@ func search
|
||||
|
||||
.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 @@ func search
|
||||
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 [modified],al
|
||||
xor eax,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 [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'
|
||||
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);
|
||||
mov edi,s_title
|
||||
repe cmpsb
|
||||
jne @f
|
||||
; call draw_file
|
||||
clc
|
||||
ret;jmp still
|
||||
@@:
|
||||
}
|
||||
; set window title:
|
||||
mov esi,f_info.path ; s_fname
|
||||
lea esi,[cur_tab.Editor.FilePath] ;! mov esi,f_info.path
|
||||
mov edi,s_title
|
||||
|
||||
cld
|
||||
mov ecx,[f_info.length] ; [s_fname.size]
|
||||
jecxz @f
|
||||
;lea eax,[ecx+10]
|
||||
;mov [s_title.size],eax
|
||||
@@: lodsb
|
||||
cmp al,0
|
||||
je @f
|
||||
stosb
|
||||
jmp @b
|
||||
@@:
|
||||
;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 @@ macro unused {
|
||||
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 @@ macro unused {
|
||||
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
|
Reference in New Issue
Block a user