retype fuction .check_offset

git-svn-id: svn://kolibrios.org@295 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov (
2007-01-26 11:20:00 +00:00
parent 3f37e88368
commit 94747a3d1a
2 changed files with 90 additions and 38 deletions

View File

@@ -1,4 +1,5 @@
; <Lrz> 23.01.2007 <20><>䨪ᥫ <20><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> )).
; <Lrz> 26.01.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .check_offset
; <Lrz> 24.01.2007 <20><>䨪ᥫ <20><><EFBFBD><EFBFBD> <20><EFBFBD><EBA7A2><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> )).
; <Lrz> 22.01.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E3A4A0><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>४⭠<E0A5AA><><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襩 del & backspase
; <Lrz> 20.01.2007 ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD> <20><> shift
; <Lrz> 12.12.2006 ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> insert <20><><E1A5A3><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD>!!!!
@@ -281,40 +282,42 @@ ret
;----------------------------------------------------------
.check_offset:
pushad
push dword ed_offset ;<3B><><EFBFBD><EFBFBD><E0A0AD> ᬥ饭<E1ACA5><E9A5AD>
mov ecx,ed_pos
mov ebx,ed_offset
cmp ebx,ecx
ja .sub_8
push ebx
call .get_n ;<3B><><EFBFBD><EFBFBD><20><><EFBFBD>-<2D><><><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><><E0A5A3><EFBFBD>஢ edx:eax
mov ebx,eax
mov eax,ed_pos
xor edx,edx
idiv ebx
xor edx,edx
imul eax,ebx
mov ed_offset,eax
pop ebx
cmp ax,bx
je @f
;;;;;;;; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A8A2><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8>
mov ebx,ed_left
inc ebx
shl ebx,16
mov bx,ed_width
dec ebx
mov edx,ed_color
call .draw_bg_eax
mov dword [esp+28],0
@@: popad
ret
;==========================================================
;=== <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =================================
;==========================================================
.key:
pusha
test word ed_flags,ed_focus ; <20><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4>
je .no_figure ;@f
mov edx,ebx
add edx,eax ;ed_offset+width editbox
cmp edx,ecx
ja @f
mov edx,ed_size
sub edx,eax
cmp edx,8
jbe .add_8
mov ebx,edx
; add ebx,8
jmp .chk_d
.sub_8: cmp ecx,0
je .sub_min
cmp ebx,8
jbe .sub_min
sub ebx,8 ;ebx=ed_offset
jmp .chk_d
.sub_min:
xor ebx,ebx
jmp .chk_d
.add_8: mov ebx,edx
; ;----------- <20><EFBFBD><E2ABA0><EFBFBD>
; pushad
; mov [data_of_code],0
; mov eax,edi;word ed_flags
; mov eax,ebx;ed_offset
; mov edi,data_of_code
; call .str
; ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD><>
@@ -333,6 +336,49 @@ pusha
; popad
; ;----------- <20><EFBFBD><E2ABA0><EFBFBD>
.chk_d: mov ed_offset,ebx
call .draw_bg
mov dword [esp+28],-1
popad
ret
@@:
mov dword [esp+28],0
popad
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; mov ebx,eax
; mov eax,ed_pos
; xor edx,edx
; idiv ebx
; xor edx,edx
; imul eax,ebx
; mov ed_offset,eax
; pop ebx
; cmp ax,bx
; je @f
;;;;;;;; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A8A2><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8>
; mov ebx,ed_left
; inc ebx
; shl ebx,16
; mov bx,ed_width
; dec ebx
; mov edx,ed_color
; call .draw_bg_eax
; mov dword [esp+28],0
;@@: popad
; ret
;==========================================================
;=== <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =================================
;==========================================================
.key:
pusha
test word ed_flags,ed_focus ; <20><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4>
je .no_figure ;@f
xor ecx,ecx
push eax
inc ecx
@@ -453,8 +499,8 @@ pusha
; <20><><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤠, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; 㢥<><E3A2A5><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD><><E0A0A7><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
inc dword ed_size
call .draw_all2
inc dword ed_pos
call .draw_all2
jmp .shift;.draw_cursor_text
.delete:
mov edx,ed_size
@@ -509,7 +555,13 @@ pusha
and word ed_flags,ed_shift_cl
call .clear_cursor
call .check_offset
call .get_n
;;;;;;;;;;;;;;;
cmp eax,0
je @f
call .draw_bg
ret
;;;;;;;;;;;;;;;
@@: call .get_n
push eax
mov ebx,ed_offset
add eax,ebx ;eax = w_off= ed_offset+width
@@ -591,7 +643,7 @@ pusha
.shift: ;;;;;;;SHIFT
call .draw_bg
call .draw_bg ;<3B><> <20><><EFBFBD><E2A8AC>
test word ed_flags,ed_shift
je .f_exit
;;;;;;SHIFT end

View File

@@ -92,7 +92,7 @@ edit2 edit_box 168,10,30,0xffffff,0,0,0,99,ed_buffer.2,ed_figure_only
edit3 edit_box 35,10,70,0xffffff,0,0,0,9,ed_buffer.3,ed_figure_only
edit4 edit_box 16,10,90,0xffffff,0,0,0,1,ed_buffer.4,ed_figure_only
editboxes_end:
data_of_code dd 0
;data_of_code dd 0
ed_buffer:
.1: rb 513;256
.2: rb 100
@@ -101,7 +101,7 @@ ed_buffer:
;text_b: db '<27><><EFBFBD>-<2D><><><E1A8AC><EFBFBD><EFBFBD><EFBFBD>'
;buffer: dd 0
buffer_end:
hed db 'EDITBOX optimization and retype <Lrz> date 24.01.2007'
hed db 'EDITBOX optimization and retype <Lrz> date 26.01.2007'
i_end1:
rb 2048
i_end: