1,4 → 1,4 |
;************************************************************************ |
;-------------------------------------------------------------------- |
; v.016 30.07.2011 |
; Start with open file path |
; Show working file path |
5,13 → 5,13 |
; Some optimization |
; |
; Marat Zakiyanov aka Mario79, aka Mario |
;************************************************************************ |
;-------------------------------------------------------------------- |
; v.015 08.03.2010 |
; Support for OpenDialog - Open and Save |
; Some optimization |
; |
; Marat Zakiyanov aka Mario79, aka Mario |
;************************************************************************ |
;-------------------------------------------------------------------- |
; v.014 05.02.2010 |
; |
; PageUp, PageDown - áâà ¨æ ¢¢¥àå/¢¨§ |
45,7 → 45,7 |
; |
; staper@inbox.ru |
; babalbes@yandex.ru |
|
;-------------------------------------------------------------------- |
use32 |
org 0x0 |
db 'MENUET01' |
56,7 → 56,7 |
dd (D_END+0x600) and not 3 ;stack |
dd fname_buf |
dd cur_dir_path |
|
;-------------------------------------------------------------------- |
_title equ 'HeEd 0.16', 0 |
|
include 'lang.inc' |
66,7 → 66,7 |
include '../../libraries/box_lib/load_lib.mac' |
|
@use_library |
|
;-------------------------------------------------------------------- |
times 16 dd 0 |
|
frgrd_color equ 0xfefefe |
78,8 → 78,7 |
panel_clr1 equ 0xe9e9e2 |
panel_clr2 equ 0x8b8b89 |
panel_clr3 equ 0x777777;eaeae3 |
|
|
;-------------------------------------------------------------------- |
palitra: |
.1 dd frgrd_color,bkgrd_color ;梥⠥¢ë¤¥«¥®£® ᨬ¢®« |
.2 dd frgrd_color,text_color ;«¥¢ë©,¯à ¢ë© á⮫¡æë,ç áâì ¨¦¥© áâப¨ |
86,10 → 85,10 |
.3 dd kursred_color,frgrd_color ;ªãàá®à |
.4 dd kurstxt_color,bkgrd_color ;ªãàá®à ¢ ⥪á⮢®© ®¡« á⨠|
.5 dd panel_clr1,not text_color ;¨¦ïï ¯ ¥«ì |
|
;-------------------------------------------------------------------- |
FIRST_HEX equ 0*65536+24 |
scroll_width_size equ 15 |
|
;-------------------------------------------------------------------- |
struct f70 |
func_n rd 1 |
param1 rd 1 |
99,7 → 98,7 |
rezerv rb 1 |
name rd 1 |
ends |
|
;-------------------------------------------------------------------- |
START: |
mcall 68,11 |
|
158,6 → 157,7 |
je @f |
inc esi |
jmp @b |
;------------------------------------- |
@@: |
sub esi,cur_dir_path |
mov [edit1.pos],esi |
279,16 → 279,19 |
jne @f |
call Ctrl_DOWN |
jmp red |
;-------------------------------------- |
@@: |
cmp ah,82 |
jne @f |
call Ctrl_UP |
jmp red |
;-------------------------------------- |
@@: |
cmp ah,84 |
jne @f |
call Ctrl_HOME |
jmp red |
;-------------------------------------- |
@@: |
cmp ah,85 |
je Ctrl_END |
302,6 → 305,7 |
jne @f |
xor ah,ah |
jmp change_codepage ;Shift+~, koi8-r |
;-------------------------------------- |
@@: |
cmp ah,110 |
je invert_byte ;n |
309,11 → 313,13 |
jne @f |
call LEFT |
jmp red |
;-------------------------------------- |
@@: |
cmp ah,177 |
jne @f |
call DOWN |
jmp red |
;-------------------------------------- |
@@: |
cmp ah,178 |
je UP |
323,6 → 329,7 |
jne @f |
call HOME |
jmp red |
;-------------------------------------- |
@@: |
cmp ah,181 |
je END_ |
335,6 → 342,7 |
cmp ah,185 |
je Insert |
jmp still |
;-------------------------------------- |
.syst: |
cmp ah,72 |
cmp ah,75 |
341,7 → 349,7 |
cmp ah,77 |
cmp ah,80 |
jmp still |
|
;-------------------------------------------------------------------- |
button: |
mcall 17 |
dec ah |
348,7 → 356,7 |
jnz still |
|
jmp close_prog |
|
;-------------------------------------------------------------------- |
align 4 |
mouse: |
mcall 18,7 |
366,6 → 374,7 |
call Ctrl_DOWN |
loop .1 |
jmp red |
;-------------------------------------- |
@@: |
xor ecx,ecx |
sub cx,ax |
374,7 → 383,7 |
call Ctrl_UP |
loop .2 |
jmp red |
|
;-------------------------------------------------------------------- |
.menu_bar_1: |
call .set_mouse_flag |
@@: |
385,6 → 394,7 |
cmp [menu_data_1.cursor_out],dword 0 |
jne .analyse_out_menu_1 |
jmp .menu_bar_1 |
;-------------------------------------------------------------------- |
.menu_bar_2: |
push dword menu_data_2 |
call [menu_bar_mouse] |
393,6 → 403,7 |
cmp [menu_data_2.cursor_out],dword 0 |
jne .analyse_out_menu_2 |
jmp .menu_bar_1 |
;-------------------------------------------------------------------- |
.menu_bar_3: |
push dword menu_data_3 |
call [menu_bar_mouse] |
401,7 → 412,7 |
cmp [menu_data_3.cursor_out],dword 0 |
jne .analyse_out_menu_3 |
jmp .menu_bar_1 |
|
;-------------------------------------------------------------------- |
.set_mouse_flag: |
xor eax,eax |
inc eax |
409,7 → 420,7 |
mov [menu_data_2.get_mouse_flag],eax |
mov [menu_data_3.get_mouse_flag],eax |
ret |
|
;-------------------------------------------------------------------- |
.analyse_out_menu_1: |
cmp [menu_data_1.cursor_out],dword 1 |
je open_dialog |
418,17 → 429,19 |
cmp [menu_data_1.cursor_out],dword 3 |
je close_prog |
jmp still |
|
;-------------------------------------------------------------------- |
.analyse_out_menu_2: |
cmp [menu_data_2.cursor_out],dword 1 |
jne @f |
add [bytes_per_line],4 |
jmp redraw_all |
;-------------------------------------- |
@@: |
cmp [menu_data_2.cursor_out],dword 2 |
jne @f |
add [bytes_per_line],8 |
jmp redraw_all |
;-------------------------------------- |
@@: |
cmp [menu_data_2.cursor_out],dword 3 |
jne @f |
436,6 → 449,7 |
je still |
sub [bytes_per_line],4 |
jmp redraw_all |
;-------------------------------------- |
@@: |
cmp [menu_data_2.cursor_out],dword 4 |
jne still |
443,13 → 457,13 |
jbe still |
sub [bytes_per_line],8 |
jmp redraw_all |
|
;-------------------------------------------------------------------- |
.analyse_out_menu_3: ;analyse result of Menu 2 |
cmp [menu_data_3.cursor_out],dword 1 |
jne still |
call create_help_window |
jmp still |
|
;-------------------------------------------------------------------- |
.scroll_bar: |
; mcall 37,2 |
; test eax,eax |
466,6 → 480,7 |
btr [flags],5 |
btr [flags],7 |
jmp still |
;-------------------------------------- |
@@: |
bt [flags],5 |
jc @f |
522,6 → 537,7 |
sub ecx,esi;[bytes_per_line] |
sub eax,esi;[bytes_per_line] |
jmp @b |
;-------------------------------------- |
@@: |
mov [begin_offset],eax |
bts [flags],5 |
532,6 → 548,7 |
; je @f |
mov [eax],ebx |
jmp red |
;-------------------------------------------------------------------- |
;@@: |
; cmp [scroll_bar_data_vertical.delta2],0 |
; jne still |
603,6 → 620,7 |
call main_area |
bts [flags],7 |
jmp still |
;-------------------------------------------------------------------- |
.other: |
; cmp [scroll_bar_data_vertical.delta2],0 |
; jne still |
609,14 → 627,7 |
; cmp [scroll_bar_data_horizontal.delta2],0 |
; jne still |
jmp still |
|
|
|
;------------------------------------------------ |
|
;------------------------------------------------ |
|
|
;-------------------------------------------------------------------- |
align 4 |
ready_screen_buffer: |
mov [.fl],0 |
766,7 → 777,7 |
dec [.number_strings] |
jnz .next_string |
ret |
|
;--------------------------------------------------------------------- |
.fl db 0 |
.fl_buf dd 0 |
.to_null: |
773,7 → 784,7 |
dec [.fl] |
mov [.fl_buf],edi |
jmp .pre_next_byte0 |
|
;-------------------------------------------------------------------- |
.pre_next_string: |
mov word [esi],0x2020 |
add esi,2 |
863,7 → 874,7 |
dec [.number_strings] |
jnz .pre_next_string |
ret |
|
;--------------------------------------------------------------------- |
;ª®à४⮠®¡à ¡ âë¢ ¥¬ ä¨ «ìãî áâபã ä ©« , ¤«¨ ª®â®à®© ¢ ਠ⨢ |
.last_ascii: |
mov ebx,[.fl_buf] |
890,7 → 901,7 |
jnz @b |
inc ecx |
jmp .1 |
|
;-------------------------------------------------------------------- |
.string_size dd 16 |
.number_strings dw 0 |
.length_to_end dd 0 |
900,8 → 911,7 |
.cursor_temp dd 0 |
.shblock_beg dd 0 |
.shblock_end dd 0 |
|
|
;-------------------------------------------------------------------- |
align 4 |
main_area: |
mov ecx,[number_strings] |
1008,12 → 1018,12 |
jz .loop_str |
dec [.string_size] |
jnz .out |
jz .next_string |
|
jz .next_string ; WTF? |
;-------------------------------------------------------------------- |
.string_size dd 0 |
.number_strings dw 0 |
.len_str_scr dd 0 |
|
;-------------------------------------------------------------------- |
@@: |
pushad |
mov ecx,edx |
1031,6 → 1041,7 |
.ls1: |
popad |
jmp @f |
;-------------------------------------------------------------------- |
.loop_str: |
bt [flags],6 |
jc @b |
1040,7 → 1051,7 |
add edi,2 |
add edx,8*65536 |
jmp @b |
|
;-------------------------------------- |
@@:;®ç¨á⪠䮮¢ë¬ 梥⮬ ¥§ ªà è¥ëå ®¡« á⥩ |
pushad |
ror edx,16 |
1048,6 → 1059,12 |
mov ecx,edx |
mov edx,frgrd_color |
movzx ebx,[scroll_bar_data_vertical.start_x] |
|
mov ax,[scroll_bar_data_vertical.size_x] |
test ax,ax |
jnz .no_inc_ebx |
inc ebx |
.no_inc_ebx: |
sub ecx,2*65536 |
mov cx,2 |
mcall 13 |
1065,10 → 1082,17 |
shl ebx,16 |
mov bx,ax |
mov cx,16 |
|
mov ax,[scroll_bar_data_vertical.size_x] |
test ax,ax |
jnz .no_inc_ebx_2 |
inc ebx |
.no_inc_ebx_2: |
mcall 13,,,frgrd_color |
.10: |
popad |
jmp @f |
;-------------------------------------------------------------------- |
.next_string: |
bt [flags],6 |
jc @b |
1091,8 → 1115,7 |
jnz .out |
btr [flags],6 |
jmp end_draw |
|
|
;-------------------------------------------------------------------- |
align 4 |
show_current_offset: |
pushad |
1165,6 → 1188,7 |
jb .1 |
mov ebp,3 |
jmp @f |
;-------------------------------------- |
.1: |
mov ebp,1 |
cmp byte [edx],10 |
1208,8 → 1232,7 |
pop edx |
popad |
ret |
|
|
;--------------------------------------------------------------------- |
align 4 |
hex_output: ;¢ë¢®¤ hex áâப¨ ¨§ 8 ᨬ¢®«®¢ |
pushad |
1276,6 → 1299,7 |
mov [esi+1],bl |
dec esi |
jmp @b |
;-------------------------------------- |
@@: |
call show_file_size |
mov ebx,[current_offset] |
1291,6 → 1315,7 |
jnz .hi_half_byte ;çñâ - áâ à訩 |
and dl,0xf0 ;®¡ã«ï¥¬ ¬«. ¯-¡ ©â ®à¨£¨ «ì®£® ¡ ©â |
jmp .patch_byte |
;-------------------------------------- |
.hi_half_byte: ;®¤®¢à¥¬¥® ᤢ¨£ ¥¬ 㦮¥ § 票¥ ¢ áâ ¯-â ¨ ®¡ã«ï¥¬ ¬« ¤è¨© |
shl ax,4 |
and dl,0x0f ;®¡ã«ï¥¬ áâ à訩 ¯®«ã¡ ©â 㠮ਣ¨ «ì®£® ¡ ©â |
1298,7 → 1323,7 |
or ah,dl |
mov [ecx],ah |
jmp RIGHT |
|
;-------------------------------------------------------------------- |
raspred_mem: |
pushad |
xor edx,edx |
1316,6 → 1341,7 |
mul ecx |
mov ecx,eax |
jmp .1 |
;-------------------------------------- |
@@: |
mov [prev_f_size_bl],eax |
xor edx,edx |
1326,8 → 1352,7 |
.ret: |
popad |
ret |
;--------------------------------------- |
|
;-------------------------------------------------------------------- |
align 4 |
show_file_size: |
mov ebx,[file_size] |
1368,6 → 1393,7 |
call end_draw |
add esp,4 |
jmp still |
;-------------------------------------- |
@@: |
cmp dword [threath_buf+66],(24*4) ;¯à®¢¥àª ¬¨¨¬ «ì®© ¢ëá®âë |
jae @f |
1376,6 → 1402,7 |
add esi,24*4 |
mcall 67,-1,-1,-1, |
jmp .@d |
;-------------------------------------- |
@@: |
cmp dword [threath_buf+62],(26*6) ;¯à®¢¥àª ¬¨¨¬ «ì®© è¨à¨ë |
jae @f |
1384,6 → 1411,7 |
add edx,26*6 |
mcall 67,-1,-1,,-1 |
jmp .@d |
;-------------------------------------- |
@@: |
mov eax,[file_size] |
mov ebx,[bytes_per_line] |
1431,7 → 1459,7 |
|
mcall ,,18,panel_clr1 ;¢¥àåïï ¯ ¥«ì |
|
dec ebx |
; dec ebx |
mcall 38,,<18,18>,panel_clr2 |
mov ecx,dword [threath_buf+66] |
sub cx,18 |
1441,7 → 1469,6 |
mcall ,,,panel_clr3 ;¨¦ïï ¯ ¥«ì |
add ecx,1*65536 |
mov cx,18 |
; inc ebx |
mcall 13,,,panel_clr1 |
|
|
1478,6 → 1505,7 |
add cx,dx |
sub ecx,1*65536 |
movzx ebx, word [scroll_bar_data_vertical.start_x] |
inc ebx |
mcall 13,,,frgrd_color |
|
pop eax |
1561,22 → 1589,23 |
sub [cursor],ecx |
sub ebx,esi |
jmp @b |
;-------------------------------------- |
@@: |
bts [flags],6 |
ret |
|
;-------------------------------------------------------------------- |
align 4 |
start_draw: |
mcall 12,1 |
ret |
|
;-------------------------------------------------------------------- |
end_draw: |
mcall 12,2 |
ret |
|
;-------------------------------------------------------------------- |
close_prog: |
mcall -1 |
;------------------------------------------------------------------------------- |
;-------------------------------------------------------------------- |
change_codepage: ;¬¥ï¥¬ ¢â®àãî ¯®«®¢¨ã â ¡«¨æë |
test ah,ah |
jnz @f |
1586,21 → 1615,24 |
pop [codepage_offset_previous] |
mov [codepage_offset],2*128 |
jmp .end |
;-------------------------------------- |
.1: |
push [codepage_offset_previous] |
pop [codepage_offset] |
jmp .end |
;-------------------------------------- |
@@: |
cmp [codepage_offset],0 |
jne @f |
add [codepage_offset],128 |
jmp .end |
;-------------------------------------- |
@@: |
mov [codepage_offset],0 |
.end: |
call show_codepage |
jmp red |
|
;-------------------------------------------------------------------- |
show_codepage: |
mov ebp,6 |
mov edx,dword [threath_buf+62] |
1634,7 → 1666,7 |
jnz @b |
add esp,4 |
ret |
|
;-------------------------------------------------------------------- |
show_insert: ;®â®¡à ¦¥¨¥ ०¨¬ ¢áâ ¢ª¨/§ ¬¥ë |
mov ebp,3 |
mov edx,dword [threath_buf+62] |
1676,6 → 1708,7 |
mcall 18, 3 |
popad |
ret |
;--------------------------------------------------------------------- |
@@: |
mcall 51,1,.thread,(.threat_stack+16*4) |
mov [help_is_open_already], 1 |
1682,8 → 1715,10 |
mov [help_window_pid], EAX |
popad |
ret |
;-------------------------------------------------------------------- |
.thread: |
call .window |
;-------------------------------------------------------------------- |
.still: |
mcall 10 |
dec al |
1693,6 → 1728,7 |
dec al |
jz .button |
jmp .still |
;-------------------------------------------------------------------- |
and [help_is_open_already], 0 |
mcall -1 |
.button: |
1711,6 → 1747,7 |
jz .still |
inc [cur_help_string] |
jmp .red |
;-------------------------------------- |
@@: |
cmp ah,3 |
jne .still |
1718,15 → 1755,15 |
je .still |
dec [cur_help_string] |
jmp .red |
|
;-------------------------------------------------------------------- |
.key: |
mcall 2 |
jmp .still |
|
;-------------------------------------------------------------------- |
.red: |
call .window |
jmp .still |
|
;-------------------------------------------------------------------- |
.window: |
pushad |
mcall 12,1 |
1753,10 → 1790,9 |
mcall 12,2 |
popad |
ret |
|
;-------------------------------------------------------------------- |
.threat_stack: times 16 dd 0 |
;------------------------------------------------- |
|
;-------------------------------------------------------------------- |
open_file: |
mov [func_70.func_n],5 |
mov [func_70.param1],0 |
1771,6 → 1807,7 |
jz @f |
mcall 4,400*65536+31,0x80CC0000,error_open_file_string |
jmp open_file |
;-------------------------------------------------------------------- |
@@: |
; mov edx,[blocks_counter] |
; mov edi,[blocks_table] |
1872,6 → 1909,7 |
je @f |
movsb |
jmp @b |
;-------------------------------------- |
@@: |
mov byte [edi],0 |
sub esi,path |
1944,7 → 1982,7 |
call [option_box_draw] |
@@: |
jmp .1 |
|
;-------------------------------------------------------------------- |
.mouse: |
bt [flags],2 |
jnc @f |
1957,7 → 1995,7 |
call [option_box_mouse] |
@@: |
jmp .2 |
|
;-------------------------------------------------------------------- |
.keys: |
mcall 2 |
cmp ah,13 |
1976,11 → 2014,13 |
jne @f |
mov edx,op2 |
jmp .eb1_2 |
;-------------------------------------- |
@@: |
cmp edx,op2 |
jne @f |
mov edx,op3 |
jmp .eb1_2 |
;-------------------------------------- |
@@: |
mov edx,op1 |
.eb1_2: |
1987,6 → 2027,7 |
mov [option_group1],edx |
pop edx |
jmp .1 |
;-------------------------------------- |
.eb1_1: |
cmp ah,48 |
jb .eb1_3 |
2011,7 → 2052,7 |
push dword [ed_box_data+4]; [esp] |
call [edit_box_draw] |
jmp .2 |
|
;-------------------------------------- |
.eb2: |
bt [flags],3 |
jnc .eb3 |
2023,6 → 2064,7 |
jne @f |
mov edx,op12 |
jmp .eb2_1 |
;-------------------------------------- |
@@: |
mov edx,op11 |
.eb2_1: |
2029,6 → 2071,7 |
mov [option_group2],edx |
pop edx |
jmp .1 |
;-------------------------------------- |
.eb2_2: |
cmp ah,182 |
je .eb |
2055,6 → 2098,7 |
push dword [ed_box_data+4];[esp] |
call [edit_box_draw] |
jmp .2 |
;-------------------------------------- |
.eb3: |
bt [flags],9 |
jnc .eb |
2085,11 → 2129,13 |
dec [edit4.shift] |
dec [edit4.shift+4] |
jmp .2 |
;-------------------------------------- |
@@: |
pop edx |
dec [edit5.shift] |
dec [edit5.shift+4] |
jmp .2 |
;-------------------------------------- |
.eb3_1: |
push edx |
mov edx,[edit4.flags] |
2099,6 → 2145,7 |
mov [edit5.flags],2 |
mov [edit4.flags],0 |
jmp .eb3_2 |
;-------------------------------------- |
@@: |
pop edx |
mov [edit4.flags],2 |
2109,12 → 2156,12 |
push dword [ed_box_data+8] |
call [edit_box_key] |
jmp .1 |
|
;-------------------------------------- |
.eb: |
push dword [ed_box_data+4];[esp] |
call [edit_box_key] |
jmp .2 |
|
;-------------------------------------------------------------------- |
.button: |
mcall 17 |
cmp ah,1 |
2128,12 → 2175,7 |
.4: |
mcall 13,180*65536+220,25*65536+70,frgrd_color |
ret |
|
|
;------------------------------------------------- |
;------------------------------------------------- |
;------------------------------------------------- |
|
;-------------------------------------------------------------------- |
strtohex: |
;enter: edi - pointer to string,ebx - pointer to size of string; exit: eax in hex |
mov esi,hex8_string |
2200,7 → 2242,7 |
inc eax |
mov [cursor],eax |
jmp .end |
|
;-------------------------------------------------------------------- |
.back: |
cmp eax,[current_offset] ;back |
jg Ctrl_G |
2221,6 → 2263,7 |
inc edx |
mov [cursor],edx |
jmp .end |
;-------------------------------------------------------------------- |
.abs: |
mov esi,[screen_table] |
mov esi,[esi] |
2239,7 → 2282,7 |
mov [cursor],eax |
.end: |
jmp red |
|
;-------------------------------------------------------------------- |
Ctrl_B: |
bts [flags],9 |
mov dword [ed_box_data],2 |
2275,6 → 2318,7 |
jb @f |
pop eax |
jmp Ctrl_B |
|
@@: |
pop [shblock_beg] |
cmp eax,[shblock_beg] |
2285,7 → 2329,7 |
bts [flags],8 |
.end: |
jmp red |
|
;-------------------------------------------------------------------- |
Ctrl_F: |
bts [flags],3 |
mov dword [ed_box_data],1 |
2342,6 → 2386,7 |
je .8 |
mov edi,find_string |
jmp .5 |
;-------------------------------------- |
.8: |
loop @b |
sub esi,[file_buffer] |
2377,7 → 2422,7 |
btr [flags],0 |
@@: |
jmp red |
|
;-------------------------------------------------------------------- |
invert_byte: |
mov ebx,[current_offset] |
cmp ebx,[file_size] |
2385,14 → 2430,12 |
add ebx,[file_buffer] |
not byte [ebx] |
jmp red |
|
|
;-------------------------------------------------------------------- |
Insert: ;¯¥à¥ª«î票¥ ०¨¬ ¢áâ ¢ª¨/§ ¬¥ë |
btc [flags],1 ;not [insert_mod] |
call show_insert |
jmp red |
|
|
;-------------------------------------------------------------------- |
DEL: |
bt [flags],1 |
jnc still |
2422,8 → 2465,7 |
dec [file_size] |
call show_file_size |
jmp red |
|
|
;-------------------------------------------------------------------- |
BackSpace: |
bt [flags],1 ;cmp [insert_mod],0 |
jnc still ;je still |
2448,12 → 2490,12 |
mov [edi+esi-1],al |
inc edi |
jmp @b |
;-------------------------------------- |
@@: |
dec [file_size] |
call show_file_size |
jmp red |
|
|
;-------------------------------------------------------------------- |
Ctrl_UP: |
cmp [begin_offset],0 |
je @f |
2461,8 → 2503,7 |
sub [begin_offset],eax |
@@: |
ret |
|
|
;-------------------------------------------------------------------- |
Ctrl_DOWN: |
mov eax,[cursor] |
dec eax |
2475,8 → 2516,7 |
add [begin_offset],ebx |
@@: |
ret |
|
|
;-------------------------------------------------------------------- |
UP: |
mov eax,[current_offset] |
cmp eax,[bytes_per_line] |
2494,8 → 2534,7 |
shl ax,1 |
sub [cursor],eax |
jmp red |
|
|
;-------------------------------------------------------------------- |
DOWN: ; áâப㠢¨§ |
mov eax,[current_offset] |
add eax,[bytes_per_line] |
2521,18 → 2560,19 |
mov eax,[bytes_per_line] |
add [begin_offset],eax |
ret |
|
|
;-------------------------------------------------------------------- |
LEFT: |
cmp [cursor],1 |
jbe @f |
dec [cursor] |
jmp .end |
;-------------------------------------- |
@@: |
cmp [begin_offset],0 ;ªãàá®à ¯¥à¢®© áâப¥ ᮠᬥ饨¥¬ 0? |
jne @f ;¨ ç¥ á¬¥é ¥¬ á ¯à®ªàã⪮© ¢¢¥àå ¢¢¥àå ¨ ¢ ª®¥æ áâப¨ |
; inc [cursor] |
jmp .end;still ;⮣¤ á⮯ |
;-------------------------------------- |
@@: |
mov eax,[bytes_per_line] |
sub [begin_offset],eax |
2541,8 → 2581,7 |
add [cursor],eax |
.end: |
ret |
|
|
;-------------------------------------------------------------------- |
RIGHT: |
mov ecx,[begin_offset] ;¢ëç¨á«ï¥¬ ᬥ饨¥ ªãàá®à |
mov edx,[cursor] ;¤«ï ¯à®¢¥àª¨ áãé¥á⢮¢ ¨ï |
2563,6 → 2602,7 |
jbe @f |
inc [cursor] ;ªãàá®à ¢¯à ¢® |
jmp red |
;-------------------------------------- |
@@: |
mov ecx,[bytes_per_line] ;á¬¥é ¥¬áï áâà®çªã ¢¨§ |
add [begin_offset],ecx ;á ¯à®ªàã⪮© |
2570,8 → 2610,7 |
dec cx |
sub [cursor],ecx |
jmp red |
|
|
;-------------------------------------------------------------------- |
PGDN: |
mov edi,[screen_table] |
mov eax,[edi] |
2599,8 → 2638,7 |
; add ebx,ecx |
; mov [cursor],ebx |
jmp red |
|
|
;-------------------------------------------------------------------- |
PGUP: |
mov eax,[screen_table] |
mov eax,[eax] |
2609,11 → 2647,11 |
jbe @f |
call Ctrl_HOME |
jmp red |
;-------------------------------------- |
@@: |
sub [begin_offset],eax |
jmp red |
|
|
;-------------------------------------------------------------------- |
HOME: |
mov eax,[cursor] |
dec ax |
2628,8 → 2666,7 |
dec [cursor] |
@@: |
ret |
|
|
;-------------------------------------------------------------------- |
END_: |
mov eax,[cursor] |
dec ax |
2653,14 → 2690,12 |
dec eax |
mov [cursor],eax |
jmp red |
|
|
;-------------------------------------------------------------------- |
Ctrl_HOME: |
mov [begin_offset],0 |
mov [cursor],1 |
ret |
|
|
;-------------------------------------------------------------------- |
Ctrl_END: |
mov eax,[file_size] |
mov ecx,[screen_table] |
2687,12 → 2722,11 |
mov [begin_offset],eax |
mov [cursor],edx |
jmp red |
|
|
;-------------------------------------------------------------------- |
ESC: |
btr [flags],8 |
jmp red |
|
;-------------------------------------------------------------------- |
copy_to_buf: |
bt [flags],8 |
jnc .1 |
2713,16 → 2747,17 |
bts [flags],10 |
xor eax,eax |
ret |
;--------------------------------------------------------------------- |
.1: |
or eax,-1 |
ret |
|
;-------------------------------------------------------------------- |
Ctrl_C: |
call copy_to_buf |
jmp still |
|
;-------------------------------------------------------------------- |
shblock_sz dd 0 |
|
;-------------------------------------------------------------------- |
Ctrl_V: |
bt [flags],10 |
jnc still |
2774,6 → 2809,7 |
dec eax |
mov [shblock_end],eax |
jmp red |
;-------------------------------------- |
.del: |
dec ebx |
jz red |
2783,7 → 2819,8 |
mov esi,edi |
add esi,ebx |
cld |
@@: movsb |
@@: |
movsb |
loop @b |
sub [file_size],ebx |
call raspred_mem |
2792,7 → 2829,7 |
dec eax |
mov [shblock_end],eax |
jmp red |
|
;-------------------------------------------------------------------- |
;¥á«¨ ¡«®ª ¥ ¢ë¤¥«¥, â® ¢áâ ¢«ï¥¬ ¡«®ª ¯¥à¥¤ ªãàá®à®¬ |
.past_kurs: |
; bt [flags],1 |
2801,7 → 2838,7 |
; add esi,[current_offset] |
; jmp red |
jmp still |
|
;-------------------------------------------------------------------- |
Ctrl_X: |
bt [flags],1 |
jnc still |
2849,7 → 2886,6 |
inc eax |
mov [cursor],eax |
jmp red |
|
;--------------------------------------------------------------------- |
open_dialog: |
mov [OpenDialog_data.type],0 ; Open |
2878,13 → 2914,8 |
mov [edit1.pos],esi |
jmp open_file |
;--------------------------------------------------------------------- |
|
; DATA AREA |
|
|
;--------------------------------------------------------- |
;----------------------- DATA AREA------------------------ |
;--------------------------------------------------------- |
;-------------------------------------------------------------------- |
align 4 |
ProcLib_import: |
OpenDialog_Init dd aOpenDialog_Init |
3228,8 → 3259,7 |
.e11: |
.21 db 'ASCII' |
.e21: |
|
|
;-------------------------------------------------------------------- |
system_dir_Boxlib db '/sys/lib/box_lib.obj',0 |
system_dir_ProcLib db '/sys/lib/proc_lib.obj',0 |
|
3290,7 → 3320,7 |
;8: 1 - ¢ë¤¥«¥ ¡«®ª |
;9: ¢ edit_box - ®¡à ¡®âª Ctrl_B |
;10: ¢ ¯ ¬ï⨠"¢¨á¨â" ᪮¯¨à®¢ ë© ¡«®ª |
|
;-------------------------------------------------------------------- |
help_text: |
if lang eq ru |
db 'Ctrl+O - ®âªàëâì ä ©« ' |
3338,10 → 3368,7 |
db 'Ctrl+X - cut area into buffer ' |
end if |
help_end: |
|
|
|
|
;-------------------------------------------------------------------- |
;align 4096 |
font_buffer file 'cp866-8x16' ;ASCII+cp866 (+ð,ñ) |
cp1251 file 'cp1251-8x16' |
3403,8 → 3430,8 |
start_temp_file_name: db 'temp.bin',0 |
|
;--------------------------------------------------------------------- |
|
I_END: |
;-------------------------------------------------------------------- |
file_name: |
cur_dir_path rb 4096 |
buf_cmd_lin rb 0 |