Tinypad 4.0.4 (final release)

git-svn-id: svn://kolibrios.org@297 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Mihail Semenyako (mike.dld)
2007-01-27 23:36:07 +00:00
parent c3a36dffbc
commit b542bfb588
17 changed files with 1639 additions and 2023 deletions

View File

@@ -37,46 +37,47 @@ button:
call draw_editor
call draw_statusbar
call draw_tabctl
call update_caption
@@:
jmp still.skip_write
btn.vscroll_up:
dec [cur_editor.TopLeft.Y] ;! [top_line]
dec [cur_editor.TopLeft.Y]
jns @f
inc [cur_editor.TopLeft.Y] ;! [top_line]
inc [cur_editor.TopLeft.Y]
ret
@@: call check_inv_all.skip_check
@@: call editor_check_for_changes
ret
btn.vscroll_down:
inc [cur_editor.TopLeft.Y] ;! [top_line]
mov eax,[cur_editor.Lines.Count] ;! eax,[lines]
inc [cur_editor.TopLeft.Y]
mov eax,[cur_editor.Lines.Count]
sub eax,[lines.scr]
cmp eax,[cur_editor.TopLeft.Y] ;! eax,[top_line]
cmp eax,[cur_editor.TopLeft.Y]
jge @f
dec [cur_editor.TopLeft.Y] ;! [top_line]
dec [cur_editor.TopLeft.Y]
ret
@@: call check_inv_all.skip_check
@@: call editor_check_for_changes
ret
btn.hscroll_up:
dec [cur_editor.TopLeft.X] ;! [left_col]
dec [cur_editor.TopLeft.X]
jns @f
inc [cur_editor.TopLeft.X] ;! [left_col]
ret;jmp still.skip_write
@@: call check_inv_all.skip_check
inc [cur_editor.TopLeft.X]
ret
@@: call editor_check_for_changes
ret
btn.hscroll_down:
inc [cur_editor.TopLeft.X] ;! [left_col]
mov eax,[cur_editor.Columns.Count] ;! eax,[columns]
inc [cur_editor.TopLeft.X]
mov eax,[cur_editor.Columns.Count]
sub eax,[columns.scr]
cmp eax,[cur_editor.TopLeft.X] ;! eax,[left_col]
cmp eax,[cur_editor.TopLeft.X]
jge @f
dec [cur_editor.TopLeft.X] ;! [left_col]
dec [cur_editor.TopLeft.X]
ret
@@: call check_inv_all.skip_check
@@: call editor_check_for_changes
ret
btn.tabctl_right:
@@ -93,17 +94,16 @@ button:
@@: call draw_tabctl
ret
btn.search:
key.f3:
call search
jc @f
call check_inv_all
@@: ret
btn.debug_board:
call open_debug_board
ret
btn.sysfuncs_txt:
call open_sysfuncs_txt
ret
func search
cld
mov ecx,[cur_editor.Caret.Y] ;! ecx,[pos.y]
mov ecx,[cur_editor.Caret.Y]
mov edx,ecx
call get_line_offset
cmp word[esi],0
@@ -113,9 +113,9 @@ func search
or eax,eax
jz .end_line.2
mov ecx,eax
sub ecx,[cur_editor.Caret.X] ;! ecx,[pos.x]
sub ecx,[cur_editor.Caret.X]
push esi
add esi,[cur_editor.Caret.X] ;! esi,[pos.x]
add esi,[cur_editor.Caret.X]
jmp @f
.next_line:
@@ -151,15 +151,15 @@ func search
.found:
add esp,4
mov [cur_editor.Caret.Y],edx ;! [pos.y],edx
mov [cur_editor.SelStart.Y],edx ;! [sel.y],edx
mov [cur_editor.Caret.Y],edx
mov [cur_editor.SelStart.Y],edx
mov ecx,edx
lea eax,[esi-4]
call get_line_offset
sub eax,esi
mov [cur_editor.SelStart.X],eax ;! [sel.x],eax
mov [cur_editor.SelStart.X],eax
add eax,[s_search.size]
mov [cur_editor.Caret.X],eax ;! [pos.x],eax
mov [cur_editor.Caret.X],eax
mov [s_status],0
clc
ret
@@ -168,7 +168,7 @@ func search
pop esi
.end_line.2:
movzx eax,word[esi-4]
add esi,eax;[esi-4]
add esi,eax
inc edx
call get_real_length
mov ecx,eax
@@ -180,111 +180,3 @@ func search
stc
ret
endf
btn.compile:
key.ctrl_f9:
mov bl,0
call start_fasm
ret
btn.compile_run:
key.f9:
mov bl,1
call start_fasm
ret
btn.debug_board:
call open_debug_board
ret
btn.sysfuncs_txt:
call open_sysfuncs_txt
ret
btn.load_file:
key.ctrl_l:
call load_file
jnc @f
ret
@@:
xor eax,eax
mov [cur_editor.TopLeft.Y],eax ;! [top_line],eax
mov [cur_editor.TopLeft.X],eax ;! [left_col],eax
mov [cur_editor.Caret.X],eax ;! [pos.x],eax
mov [cur_editor.Caret.Y],eax ;! [pos.y],eax
mov [cur_editor.SelStart.X],eax ;! [sel.x],eax
mov [cur_editor.SelStart.Y],eax ;! [sel.y],eax
mov [cur_editor.Modified],al ;! [modified],al
; enable color syntax for ASM and INC files:
mov [cur_editor.AsmMode],al ;! [asm_mode],al
; mov eax,[f_info.length]
; add eax,f_info.path
; mov byte[eax],0
lea ebx,[cur_editor.FilePath]
mov eax,ebx
call strlen
mov ecx,dword[ebx+eax-3]
or ecx,0x202020
cmp ecx,'asm'
jne @f
inc [cur_editor.AsmMode] ;! [asm_mode]
jmp .nocol
@@: cmp ecx,'inc'
jne .nocol
inc [cur_editor.AsmMode] ;! [asm_mode]
.nocol:
update_caption:
lea esi,[cur_editor.FilePath] ;! mov esi,f_info.path
mov edi,s_title
@@: lodsb
cmp al,0
je @f
stosb
jmp @b
@@:
;cld
;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
mcall 71,1,s_title
clc
ret
btn.close_main_window:
key.alt_x:
mov esi,self_path
mov byte[esi+PATHL-1],0
mov edi,f_info.path
cld
@@: lodsb
stosb
or al,al
jnz @b
mov [f_info70+0],2
mov [f_info70+4],0
mov [f_info70+8],0
mov [f_info70+12],TINYPAD_END
mov [f_info70+16],0
mov byte[f_info70+20],0
mov [f_info70+21],f_info.path
mcall 70,f_info70
.close:
mov [main_closed],1
mcall -1