1,3 → 1,5 |
; <Lrz> 13.02.2007 ã¡à « ¯® ¢®§¬®¦®á⨠¬¥àæ ¨¥, ã«ãçè¥ ®¡à ¡®â ª ¯¥à¥à¨á®¢ª¨ ä® |
; ¤®¡ ¢¨« ä¨âçã ¢¥á¥¨ï 0å0 ¯® ¤à¥áã ed_size ¨ ç¥ ã Maxxx32 ¡ë«¨ ¥á®áâ몮¢ª¨ ¢ ª®¤¥. à¥ç¨ ¢ ⮬, çâ® ®¯â¨¬¨§ æ¨ï ¡ë« ᢥ¤¥ ª ⮬ã çâ® ï ¥ ç¨á⨫ ᨬ¢®«ë ¢ ¡ãä¥à¥, ª®£¤ 㤠«ï«, ï ¯à®áâ® ¨å ¥ ¢ë¢®¤¨«, ¨ ¯®â®¬ ª®£¤ ¢®á¨«áï ®¢ë© ᨬ¢®«, ® ¯® ¯à®áâã § â¨à « 㦥 ¨¬¥î騩áï.
᫨ ¡ë ¯à®£à ¬¬ ®¡à ¡ âë¢ « ª®¥æ áâப¨ ¯® ed_size, ¯à®¡«¥¬ ¡ë ¥ ¢®§¨ª«®. ® ᥩç á íâ®â ¥¤®áâ ⮪ ¨á¯à ¢«¥. |
; <Lrz> 01.02.2007 ¤®à ¡®âª edit_box, ¨á¯à ¢¨« ¡ £¨. |
; <Lrz> 26.01.2007 ®à¬ «ì ï à ¡®â ª®¬¯ ¥â ¨á¯à ¢¨« äãªæ¨î .check_offset |
; <Lrz> 24.01.2007 ¯®ä¨ªá¥« ¡ £¨ ¢ë§¢ ë¥ ¥ ¯à ¢¨«ìë¬ ª®¤®¬ )). |
153,6 → 155,7 |
ret |
|
jmp @f |
;¢å®¤ ⮫쪮 梥â edx |
.draw_bg: |
mov ebx,ed_left |
add ebx,1 |
347,30 → 350,6 |
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 |
;========================================================== |
;=== ®¡à ¡®âª ª« ¢¨ âãàë ================================= |
;========================================================== |
379,6 → 358,7 |
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
je .no_figure ;@f |
|
;஢¥àª ¦ âë shift |
xor ecx,ecx |
push eax |
inc ecx |
387,9 → 367,9 |
int 0x40 |
test al,0x03 |
je @f |
or word ed_flags,ed_shift |
or word ed_flags,ed_shift ;ãáâ ®¢¨¬ ä« £ |
|
@@: pop eax |
@@: pop eax ;¢®ááâ ®¢¨¬ áç¨â ë© á¨¬¢®« á ª« ¢¨ âãàë |
;---------------------------------------------------------- |
;--- ¯à®¢¥à塞, çâ® ¦ â® -------------------------------- |
;---------------------------------------------------------- |
433,6 → 413,9 |
mov edx,ed_size |
mov ecx,ed_pos |
call .del_char |
;clear |
mov ebp,ed_size |
call .clear_bg |
;;;; |
mov eax,ed_shift_pos |
mov ebx,ed_size |
443,9 → 426,11 |
; ¯à®¢¥à塞, 室¨âáï «¨ ªãàá®à ¢ ª®æ¥ |
@@: mov ecx,ed_size |
mov edx, ed_max |
test word ed_flags,ed_insert |
jne @f |
cmp ecx,edx |
jae .no_figure |
mov ebx, ed_pos |
@@: mov ebx, ed_pos |
cmp ebx,edx |
jl @f ; ¥á«¨ ¬¥ìè¥ ¨«¨ à ¢® |
.no_figure: |
463,6 → 448,12 |
sub esi,ecx |
add esi,ebx |
mov edi,esi |
;clear |
pusha |
mov edi,ebp |
mov ebp,ed_pos |
call .clear_bg |
popa |
jmp .In_k |
@@: ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à ¢¯à ¢® |
mov ecx,ed_size |
478,7 → 469,14 |
|
test word [ebp+36],ed_insert ;IF insert is enable â.ª. edi ¨§¬¥¥ ¤à¥á㥬 ç¥à¥§ ebp |
jne .ins_v |
;clear |
pusha |
mov edi,ebp |
mov ebp,ed_size |
call .clear_bg |
popa |
|
|
sub ecx,ebx ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥¨ï. |
inc edi ;¬¥á⨬ è¨ á¨¬¢®«ë ¢ ¯à ¢® |
std |
542,8 → 540,13 |
mov ebx,ed_size |
sub ebx,eax |
mov ed_size,ebx |
jmp .draw_all2 |
|
call .clear_cursor |
call .check_offset |
call .draw_bg |
|
ret |
|
@@: dec dword ed_size |
|
.draw_all2: |
550,54 → 553,9 |
and word ed_flags,ed_shift_cl |
call .clear_cursor |
call .check_offset |
;;;;;;;;;;;;;;; |
test eax,eax |
jne @f |
call .draw_bg |
mov ebp,ed_size |
call .clear_bg |
ret |
;;;;;;;;;;;;;;; |
@@: call .get_n |
push eax |
mov ebx,ed_offset |
add eax,ebx ;eax = w_off= ed_offset+width |
mov ebx,ed_size |
|
cmp eax,ebx |
jb @f |
mov eax,ed_pos |
sub ebx,eax |
mov ecx,ed_offset |
sub eax,ecx |
jmp .nxt |
@@: mov ebx,ed_pos |
push ebx |
sub eax,ebx |
mov ebx,eax ;It is don't optimal |
|
pop eax ;ed_pos |
mov ecx,ed_offset |
sub eax,ecx |
|
.nxt: |
mov ebp,eax ;¯à®¢¥àª ¢ë室 § ªà 訢 ¥¬®© ®¡« á⨠§ ¯à¥¤¥«ë ¤«¨ë |
add ebp,ebx |
pop edx |
cmp ebp,edx |
je @f |
inc ebx |
|
@@: mov edx,ebx |
lea ebx,[eax*2+eax] |
shl ebx,1 |
add ebx,ed_left |
inc ebx |
shl ebx,16 |
lea ecx,[edx*2+edx] |
shl ecx,1 |
mov bx,cx |
mov edx,ed_color |
call .draw_bg_eax |
ret |
; jmp .shift |
;--- ¦ â ª« ¢¨è left --- |
.left: call .sh_enable |
636,9 → 594,13 |
;jz .draw_bg_cursor_text |
call .draw_cursor |
|
|
|
.shift: ;;;;;;;SHIFT |
;test ed_flags,ed_ |
|
call .draw_bg ;¥ ®¯â¨¬ «ì® |
;mov ebp,ed_size |
;call .clear_bg |
test word ed_flags,ed_shift |
je .f_exit |
;;;;;;SHIFT end |
702,10 → 664,12 |
mov edx,shift_color |
call .draw_bg_eax |
and word ed_flags,1111111111111011b |
call .enable_null |
jmp .draw_cursor_text |
;;;;;;;;;;;;;;;;;;;;; |
|
.f_exit: and word ed_flags,ed_shift_cl |
call .enable_null |
jmp .draw_cursor_text |
|
;¯à®¢¥àª á®áâ®ï¨ï shift ¡ë« «¨ ® ¦ â à ìè¥? |
720,8 → 684,23 |
ret |
|
@@: and word ed_flags,ed_shift_cl |
.sh_ext_en: ret |
ret |
.sh_ext_en: mov ebp,ed_size |
call .clear_bg |
ret |
|
;äãªæ¨ï ¢¥á¥¨ï 0 ¯® ¤à¥áã ed_size+1 |
.enable_null: |
pusha |
mov eax,ed_size |
mov ebx,ed_text |
add eax,ebx |
inc eax |
xor ebx,ebx |
mov [eax],bl |
popa |
ret |
|
;- 㤠«¥¨¥ ᨬ¢®« |
;å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos |
.del_char: |
771,6 → 750,54 |
|
pop edi |
ret |
|
;¢ëç¨á«¨âì § ªà 訢 ¥¬ãî ®¡« áâì |
;ᮣ« 襨¥ ¢ ebp - ¯¥à¥¤ ¥âáï ed_size |
.clear_bg: |
call .get_n ;¯®«ãç¨âì à §¬¥à ¢ ᨬ¢®« å è¨à¨ë ª®¬¯®¥â |
push eax |
mov ebx,ed_offset |
add eax,ebx ;eax = w_off= ed_offset+width |
mov ebx,ebp ;ed_size |
|
cmp eax,ebx |
jb @f |
mov eax,ed_pos |
sub ebx,eax |
mov ecx,ed_offset |
sub eax,ecx |
jmp .nxt |
@@: mov ebx,ed_pos |
push ebx |
sub eax,ebx |
mov ebx,eax ;It is don't optimal |
|
pop eax ;ed_pos |
mov ecx,ed_offset |
sub eax,ecx |
|
.nxt: |
mov ebp,eax ;¯à®¢¥àª ¢ë室 § ªà 訢 ¥¬®© ®¡« á⨠§ ¯à¥¤¥«ë ¤«¨ë |
add ebp,ebx |
pop edx |
cmp ebp,edx |
je @f |
inc ebx |
|
@@: mov edx,ebx |
lea ebx,[eax*2+eax] |
shl ebx,1 |
add ebx,ed_left |
inc ebx |
shl ebx,16 |
lea ecx,[edx*2+edx] |
shl ecx,1 |
mov bx,cx |
mov edx,ed_color |
call .draw_bg_eax |
ret |
|
|
;========================================================== |
;=== ®¡à ¡®âª ¬ëè¨ ======================================= |
;========================================================== |