forked from KolibriOS/kolibrios
retype fuction .check_offset
git-svn-id: svn://kolibrios.org@295 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
3f37e88368
commit
94747a3d1a
@ -1,4 +1,5 @@
|
|||||||
; <Lrz> 23.01.2007 ¯®ä¨ªá¥« ¡ £¨ ¢ë§¢ ë¥ ¥ ¯à ¢¨«ìë¬ ª®¤®¬ )).
|
; <Lrz> 26.01.2007 ®à¬ «ì ï à ¡®â ª®¬¯ ¥â ¨á¯à ¢¨« äãªæ¨î .check_offset
|
||||||
|
; <Lrz> 24.01.2007 ¯®ä¨ªá¥« ¡ £¨ ¢ë§¢ ë¥ ¥ ¯à ¢¨«ìë¬ ª®¤®¬ )).
|
||||||
; <Lrz> 22.01.2007 ¨§¡ ¢¨«áï ®â £«îª®¢ ¯à¨ à ¡®â¥ á ¢ë¤¥«¥¨¥¬ ¨ 㤠«¥¨¥, ª®à४â ï à ¡®â ª« ¢¨è¥© del & backspase
|
; <Lrz> 22.01.2007 ¨§¡ ¢¨«áï ®â £«îª®¢ ¯à¨ à ¡®â¥ á ¢ë¤¥«¥¨¥¬ ¨ 㤠«¥¨¥, ª®à४â ï à ¡®â ª« ¢¨è¥© del & backspase
|
||||||
; <Lrz> 20.01.2007 ॠ«¨§®¢ « ¢ë¤¥«¥¨¥ ⥪áâ ¯® shift
|
; <Lrz> 20.01.2007 ॠ«¨§®¢ « ¢ë¤¥«¥¨¥ ⥪áâ ¯® shift
|
||||||
; <Lrz> 12.12.2006 ॠ«¨§®¢ « ¯®¤¤¥à¦ªã ª®¯ª¨ insert ¨ ᥣ®¤ï ª®¬¯®¥â ¯®çâ¨ à ¡®â ¥â!!!!
|
; <Lrz> 12.12.2006 ॠ«¨§®¢ « ¯®¤¤¥à¦ªã ª®¯ª¨ insert ¨ ᥣ®¤ï ª®¬¯®¥â ¯®çâ¨ à ¡®â ¥â!!!!
|
||||||
@ -100,14 +101,14 @@ ret
|
|||||||
; div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx
|
; div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx
|
||||||
; push edx ;¯®«®¦¨âì ¢ á⥪
|
; push edx ;¯®«®¦¨âì ¢ á⥪
|
||||||
; ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨
|
; ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨
|
||||||
; call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx
|
; call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx
|
||||||
; pop eax
|
; pop eax
|
||||||
; @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï))
|
; @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï))
|
||||||
; ;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â
|
; ;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â
|
||||||
; ;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥)
|
; ;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥)
|
||||||
; or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
|
; or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
|
||||||
; stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi
|
; stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi
|
||||||
;
|
;
|
||||||
; ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
|
; ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
|
||||||
|
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@ -281,40 +282,42 @@ ret
|
|||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
.check_offset:
|
.check_offset:
|
||||||
pushad
|
pushad
|
||||||
push dword ed_offset ;á®åà ¨¬ ᬥ饨¥
|
mov ecx,ed_pos
|
||||||
|
mov ebx,ed_offset
|
||||||
|
cmp ebx,ecx
|
||||||
|
ja .sub_8
|
||||||
|
|
||||||
|
push ebx
|
||||||
call .get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ ॠॣ¨áâ஢ edx:eax
|
call .get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ ॠॣ¨áâ஢ 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
|
pop ebx
|
||||||
cmp ax,bx
|
mov edx,ebx
|
||||||
je @f
|
add edx,eax ;ed_offset+width editbox
|
||||||
;;;;;;;; ¤ ë¥ ¤«ï § ªà 訢 ¨ï ¢á¥© ¯®«®áë ¯àאַ㣮«ì¨ª
|
cmp edx,ecx
|
||||||
mov ebx,ed_left
|
ja @f
|
||||||
inc ebx
|
|
||||||
shl ebx,16
|
mov edx,ed_size
|
||||||
mov bx,ed_width
|
sub edx,eax
|
||||||
dec ebx
|
cmp edx,8
|
||||||
mov edx,ed_color
|
jbe .add_8
|
||||||
call .draw_bg_eax
|
mov ebx,edx
|
||||||
mov dword [esp+28],0
|
; add ebx,8
|
||||||
@@: popad
|
jmp .chk_d
|
||||||
ret
|
|
||||||
;==========================================================
|
.sub_8: cmp ecx,0
|
||||||
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
je .sub_min
|
||||||
;==========================================================
|
cmp ebx,8
|
||||||
.key:
|
jbe .sub_min
|
||||||
pusha
|
sub ebx,8 ;ebx=ed_offset
|
||||||
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
jmp .chk_d
|
||||||
je .no_figure ;@f
|
.sub_min:
|
||||||
|
xor ebx,ebx
|
||||||
|
jmp .chk_d
|
||||||
|
|
||||||
|
.add_8: mov ebx,edx
|
||||||
; ;----------- ®â« ¤ª
|
; ;----------- ®â« ¤ª
|
||||||
; pushad
|
; pushad
|
||||||
; mov [data_of_code],0
|
; mov [data_of_code],0
|
||||||
; mov eax,edi;word ed_flags
|
; mov eax,ebx;ed_offset
|
||||||
; mov edi,data_of_code
|
; mov edi,data_of_code
|
||||||
; call .str
|
; call .str
|
||||||
; ;à¨á®¢ ¨¥ ä®
|
; ;à¨á®¢ ¨¥ ä®
|
||||||
@ -333,6 +336,49 @@ pusha
|
|||||||
; popad
|
; popad
|
||||||
; ;----------- ®â« ¤ª
|
; ;----------- ®â« ¤ª
|
||||||
|
|
||||||
|
.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
|
||||||
|
;;;;;;;; ¤ ë¥ ¤«ï § ªà 訢 ¨ï ¢á¥© ¯®«®áë ¯àאַ㣮«ì¨ª
|
||||||
|
; 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
|
||||||
|
;==========================================================
|
||||||
|
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
||||||
|
;==========================================================
|
||||||
|
.key:
|
||||||
|
pusha
|
||||||
|
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
||||||
|
je .no_figure ;@f
|
||||||
|
|
||||||
xor ecx,ecx
|
xor ecx,ecx
|
||||||
push eax
|
push eax
|
||||||
inc ecx
|
inc ecx
|
||||||
@ -453,9 +499,9 @@ pusha
|
|||||||
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
|
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
|
||||||
; 㢥«¨ç¨¢ ¥¬ § 票¥ à §¬¥à ¨ ¯®§¨æ¨¨
|
; 㢥«¨ç¨¢ ¥¬ § 票¥ à §¬¥à ¨ ¯®§¨æ¨¨
|
||||||
inc dword ed_size
|
inc dword ed_size
|
||||||
call .draw_all2
|
|
||||||
inc dword ed_pos
|
inc dword ed_pos
|
||||||
jmp .shift;.draw_cursor_text
|
call .draw_all2
|
||||||
|
jmp .shift;.draw_cursor_text
|
||||||
.delete:
|
.delete:
|
||||||
mov edx,ed_size
|
mov edx,ed_size
|
||||||
mov ecx,ed_pos
|
mov ecx,ed_pos
|
||||||
@ -509,7 +555,13 @@ pusha
|
|||||||
and word ed_flags,ed_shift_cl
|
and word ed_flags,ed_shift_cl
|
||||||
call .clear_cursor
|
call .clear_cursor
|
||||||
call .check_offset
|
call .check_offset
|
||||||
call .get_n
|
;;;;;;;;;;;;;;;
|
||||||
|
cmp eax,0
|
||||||
|
je @f
|
||||||
|
call .draw_bg
|
||||||
|
ret
|
||||||
|
;;;;;;;;;;;;;;;
|
||||||
|
@@: call .get_n
|
||||||
push eax
|
push eax
|
||||||
mov ebx,ed_offset
|
mov ebx,ed_offset
|
||||||
add eax,ebx ;eax = w_off= ed_offset+width
|
add eax,ebx ;eax = w_off= ed_offset+width
|
||||||
@ -591,7 +643,7 @@ pusha
|
|||||||
|
|
||||||
.shift: ;;;;;;;SHIFT
|
.shift: ;;;;;;;SHIFT
|
||||||
|
|
||||||
call .draw_bg
|
call .draw_bg ;¥ ®¯â¨¬ «ì®
|
||||||
test word ed_flags,ed_shift
|
test word ed_flags,ed_shift
|
||||||
je .f_exit
|
je .f_exit
|
||||||
;;;;;;SHIFT end
|
;;;;;;SHIFT end
|
||||||
|
@ -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
|
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
|
edit4 edit_box 16,10,90,0xffffff,0,0,0,1,ed_buffer.4,ed_figure_only
|
||||||
editboxes_end:
|
editboxes_end:
|
||||||
data_of_code dd 0
|
;data_of_code dd 0
|
||||||
ed_buffer:
|
ed_buffer:
|
||||||
.1: rb 513;256
|
.1: rb 513;256
|
||||||
.2: rb 100
|
.2: rb 100
|
||||||
@ -101,7 +101,7 @@ ed_buffer:
|
|||||||
;text_b: db 'Š®«-¢® ᨬ¢®«®¢'
|
;text_b: db 'Š®«-¢® ᨬ¢®«®¢'
|
||||||
;buffer: dd 0
|
;buffer: dd 0
|
||||||
buffer_end:
|
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:
|
i_end1:
|
||||||
rb 2048
|
rb 2048
|
||||||
i_end:
|
i_end:
|
||||||
|
Loading…
Reference in New Issue
Block a user