1,3 → 1,4 |
;------------------------------------------------------------------------------ |
draw_buttons_panel: |
mov ecx,[skin_high] |
add ecx,19 |
11,8 → 12,7 |
add edx,[skin_high] |
pusha |
call .calculate_button |
mov edx,150 |
int 0x40 |
mcall ,,,150 |
popa |
mcall 7,[buttons_img_start],<16,16> |
add edx,26 shl 16 |
19,59 → 19,53 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,151 |
int 0x40 |
mcall ,,,151 |
popa |
int 0x40 |
mcall |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,152 |
int 0x40 |
mcall ,,,152 |
popa |
int 0x40 |
mcall |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,153 |
int 0x40 |
mcall ,,,153 |
popa |
int 0x40 |
mcall |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,154 |
int 0x40 |
mcall ,,,154 |
popa |
int 0x40 |
mcall |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,155 |
int 0x40 |
mcall ,,,155 |
popa |
int 0x40 |
mcall |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,156 |
int 0x40 |
mcall ,,,156 |
popa |
int 0x40 |
mcall |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mov edx,157 |
int 0x40 |
mcall ,,,157 |
popa |
int 0x40 |
mcall |
ret |
;-------------------------------------- |
.calculate_button: |
mov esi,0xffffff |
mov ebx,edx |
81,7 → 75,7 |
mov cx,bx |
mov eax,8 |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_left_sort_button: |
mov bx,[left_panel_x.start_x] |
add bx,[left_panel_x.size_x] |
89,17 → 83,21 |
mov cx,[left_panel_y.start_y] |
call calclulate_sort_button_1 |
mov edx,145 |
;-------------------------------------- |
.start: |
mov esi,0xffffff |
dec ebp |
cmp [left_sort_flag],ebp |
jne @f |
|
mov esi,0xccccff |
;-------------------------------------- |
@@: |
call calclulate_sort_button_2 |
jnz .start |
|
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
calclulate_sort_button_1: |
shl ebx,16 |
mov bx,50 |
109,10 → 107,10 |
mov eax,8 |
mov ebp,4 |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
calclulate_sort_button_2: |
inc ebp |
int 0x40 |
mcall |
pusha |
push ebx |
mov eax,ebx |
121,17 → 119,20 |
add ebx,eax |
cmp ebp,4 |
jne @f |
|
mov bx,15 |
jmp .continue |
;-------------------------------------- |
@@: |
mov bx,1 |
;-------------------------------------- |
.continue: |
mov edx,0xcccccc |
inc ecx |
mcall 13 |
mcall 13,,,0xcccccc |
pop ebx |
cmp ebp,1 |
jne @f |
|
mov eax,[temp_panel_end] |
shl eax,16 |
add eax,[temp_panel_end] |
143,6 → 144,7 |
rol ebx,16 |
mcall 13 |
mov [temp_panel_end],ebx |
;-------------------------------------- |
@@: |
popa |
pusha |
149,7 → 151,6 |
shr ecx,16 |
mov bx,cx |
add ebx,3 shl 16+2 |
mov ecx,0x10000000 |
mov edx,ebp |
dec edx |
shl edx,2 |
156,7 → 157,7 |
add edx,sort_button_name |
mov eax,4 |
mov esi,eax |
int 0x40 |
mcall ,,0x10000000 |
popa |
dec edx |
sub ebx,38 shl 16 |
163,7 → 164,7 |
mov bx,36 |
dec ebp |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_right_sort_button: |
mov bx,[right_panel_x.start_x] |
add bx,[right_panel_x.size_x] |
171,22 → 172,27 |
mov cx,[right_panel_y.start_y] |
call calclulate_sort_button_1 |
mov edx,149 |
;-------------------------------------- |
.start: |
mov esi,0xffffff |
dec ebp |
cmp [right_sort_flag],ebp |
jne @f |
|
mov esi,0xccccff |
;-------------------------------------- |
@@: |
call calclulate_sort_button_2 |
jnz .start |
|
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_left_select_disk_button: |
mov bx,[left_panel_x.start_x] |
mov cx,[left_panel_y.start_y] |
mov ebp,read_folder_name ;read_folder.name |
mov edx,0x40000000+140 |
;-------------------------------------- |
.1: |
shl ebx,16 |
mov bx,60 |
193,23 → 199,22 |
sub cx,14 |
shl ecx,16 |
mov cx,13 |
mov esi,0xffffff |
mov eax,8 |
int 0x40 |
mov edx,0xffffff |
mov eax,13 |
int 0x40 |
mcall 8,,,,0xffffff |
mcall 13,,,0xffffff |
pusha |
; mov esi,read_folder.name+2 |
mov esi,ebp |
add esi,2 |
;-------------------------------------- |
@@: |
inc esi |
cmp [esi],byte 0 |
je @f |
|
cmp [esi],byte '/' |
jne @r |
|
add esi,2 |
;-------------------------------------- |
@@: |
sub esi,ebp ;read_folder.name |
add ebx,1 shl 16 |
221,8 → 226,7 |
popa |
add ebx,50 shl 16 |
mov bx,10 |
mov edx,0x6060ff |
int 0x40 |
mcall ,,,0x6060ff |
mov [temp_panel_end],ebx |
add ebx,1 shl 16 |
shr ecx,16 |
230,9 → 234,9 |
add ebx,3 |
mcall 4, ,0x80ffffff,select_disk_char |
add ebx,1 shl 16 |
int 0x40 |
mcall |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_right_select_disk_button: |
mov bx,[right_panel_x.start_x] |
mov cx,[right_panel_y.start_y] |
239,7 → 243,7 |
mov ebp,read_folder_1_name ;read_folder_1.name |
mov edx,0x40000000+141 |
jmp draw_left_select_disk_button.1 |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_device_button: |
mov edi,device_present |
mov edx,120 |
249,7 → 253,6 |
mov [temp_panel_end],eax |
mov [temp_counter],0 |
call .draw |
; inc edx |
mov edx,130 |
mov bx,[right_panel_x.start_x] |
mov cx,[right_panel_y.start_y] |
256,6 → 259,7 |
mov eax,[right_panel_x] |
mov [temp_panel_end],eax |
mov [temp_counter],1 |
;-------------------------------------- |
.draw: |
shl ebx,16 |
mov bx,25 |
266,62 → 270,82 |
mov esi,0xaa00 |
cmp [edi],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.rd |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+1],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.fd |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+2],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.hd0 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+3],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.hd1 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+4],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.hd2 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+5],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.hd3 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+6],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.cd0 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+7],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.cd1 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+8],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.cd2 |
call .draw_1 |
;-------------------------------------- |
@@: |
inc edx |
cmp [edi+9],byte 1 |
jne @f |
|
mov ebp,read_folder_device_name.cd3 |
call .draw_1 |
;-------------------------------------- |
@@: |
push ebx |
mov ebx,[temp_panel_end] |
338,6 → 362,7 |
mcall 13,,,0xcccccc |
cmp [temp_counter],0 |
je @f |
|
mov ax,bx |
shr ebx,16 |
add bx,ax |
346,6 → 371,7 |
sub ax,bx |
cmp eax,0 |
jbe @f |
|
shl ebx,16 |
mov bx,ax |
mov ax,[right_panel_y.size_y] |
354,12 → 380,11 |
sub ax,cx |
shl ecx,16 |
mov cx,ax |
mov edx,0xcccccc |
mcall 13 |
mcall 13,,,0xcccccc |
ret |
|
;-------------------------------------- |
.draw_1: |
int 0x40 |
mcall |
pusha |
mov eax,ebx |
inc eax |
367,8 → 392,7 |
add ebx,eax |
mov bx,1 |
inc ecx |
mov edx,0xcccccc |
mcall 13 |
mcall 13,,,0xcccccc |
popa |
pusha |
mov edx,ebp |
375,20 → 399,18 |
shr ecx,16 |
mov bx,cx |
add ebx,2 shl 16 +3 |
mov ecx,0x90000000 |
mov eax,4 |
int 0x40 |
mov ecx,0x90ffffff |
mcall 4,,0x90000000 |
sub ebx,1 shl 16 + 1 |
int 0x40 |
mcall ,,0x90ffffff |
popa |
add ebx,27 shl 16 |
;-------------------------------------- |
@@: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_ATAPI_tray_control: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
calc_max_panel_line: |
xor eax,eax |
mov ax,[left_panel_y.size_y] |
397,20 → 419,24 |
div ebx |
mov [max_panel_line],eax |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_icon: |
pusha |
test [edx-40],byte 0x10 |
jnz .draw_dir_pic |
|
call get_icon_number |
imul ebx,270 |
add ebx,mem |
jmp .draw |
;-------------------------------------- |
.draw_dir_pic: |
mov ebx,mem |
cmp [edx],word '..' |
jne .draw |
|
add ebx,270 ;*17 |
;-------------------------------------- |
.draw: |
mov edx,[esp+16] ;ebx |
ror edx,16 |
419,7 → 445,7 |
mcall 7, ,<10,9> |
popa |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ |
; Âõîä: |
; AX - ÷èñëî |
426,11 → 452,13 |
; EBX - àäðåñ ñòðîêè |
; Âûõîä: |
; ñòðîêà ñîäåðæèò ÷èñëî, êîíåö îòìå÷åí êîäîì 0 |
;------------------------------------------------------------------------------ |
decimal_string_2: |
push eax ebx ecx edx |
xor ecx,ecx |
mov [ebx],byte '0' |
inc ebx |
;-------------------------------------- |
.p3: |
xor edx,edx |
push ebx |
442,10 → 470,13 |
inc ecx |
cmp ax,0 |
jne .p3 |
|
cmp ecx,1 |
jbe .p4 |
|
mov ecx,2 |
dec ebx |
;-------------------------------------- |
.p4: |
pop edx |
mov [ebx],dl |
453,12 → 484,13 |
loop .p4 |
pop edx ecx ebx eax |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
decimal_string_4: |
push eax ecx edx |
xor ecx,ecx |
mov [ebx],byte '0' |
inc ebx |
;-------------------------------------- |
.p3: |
xor edx,edx |
push ebx |
470,53 → 502,65 |
inc ecx |
cmp eax,0 |
jne .p3 |
|
cmp ecx,3 |
jbe .p4 |
|
mov ecx,4 |
dec ebx |
;-------------------------------------- |
.p4: |
pop edx |
mov [ebx],dl |
inc ebx |
loop .p4 |
|
pop edx ecx eax |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_type_size_date: |
pusha |
test [edx-40],byte 0x10 |
jz .copy_type |
|
mov [type_table],dword '<DIR' |
mov [type_table+4],word '> ' |
mov [file_name_length],0 |
mov [extension_size],0 |
jmp .start ;.size |
;-------------------------------------- |
.copy_type: |
mov [type_table],dword ' ' |
mov [type_table+4],word ' ' |
;-------------------------------------- |
.start: |
mov esi,edx |
xor eax,eax |
;-------------------------------------- |
@@: |
cld |
lodsb |
test eax,eax |
jnz @b |
|
mov [file_name_length],esi |
sub [file_name_length],edx |
mov [temp_counter_1],esi |
test [edx-40],byte 0x10 |
jnz .size |
;@@: |
|
dec esi |
dec edx |
;-------------------------------------- |
@@: |
std |
lodsb |
cmp esi,edx |
je .extension_size_0 ;@f |
je .extension_size_0 |
|
cmp al,'.' |
jnz @b |
|
add esi,2 |
mov [extension_start],esi |
mov ecx,[temp_counter_1] |
526,13 → 570,17 |
sub [file_name_length],ecx |
cmp ecx,2 |
ja @f |
|
inc [file_name_length] |
;-------------------------------------- |
@@: |
sub ecx,2 |
cmp ecx,4 |
jbe @f |
|
mov ecx,4 |
mov [type_table+4],word '..' |
;-------------------------------------- |
@@: |
mov edi,type_table ;+1 |
cld |
540,15 → 588,19 |
mov [edi],byte ' ' |
inc edx |
jmp .size |
;-------------------------------------- |
.extension_size_0: |
inc edx |
mov [extension_size],0 |
;-------------------------------------- |
.size: |
test [edx-40],byte 0x10 |
jz .copy_size |
|
mov [size_table],dword '----' |
mov [size_table+4],word '- ' |
jmp .date |
;-------------------------------------- |
.copy_size: |
;/0x40000000 - Gb |
;/0x100000 - Mb |
563,10 → 615,12 |
div ebx |
cmp eax,0 |
je @f |
|
mov ebx,size_table |
call decimal_string_4 |
mov [ebx],byte 'G' |
jmp .size_convert_end |
;-------------------------------------- |
@@: |
mov edx,[esp] |
mov eax,[edx-40+32] |
575,10 → 629,12 |
div ebx |
cmp eax,0 |
je @f |
|
mov ebx,size_table |
call decimal_string_4 |
mov [ebx],byte 'M' |
jmp .size_convert_end |
;-------------------------------------- |
@@: |
mov edx,[esp] |
mov eax,[edx-40+32] |
587,10 → 643,12 |
div ebx |
cmp eax,0 |
je @f |
|
mov ebx,size_table |
call decimal_string_4 |
mov [ebx],byte 'K' |
jmp .size_convert_end |
;-------------------------------------- |
@@: |
mov edx,[esp] |
mov eax,[edx-40+32] |
597,13 → 655,17 |
;.size_convert: |
mov ebx,size_table |
call decimal_string_4 |
;-------------------------------------- |
.size_convert_end: |
cmp [size_table],byte '0' |
jne @f |
|
mov [size_table],byte ' ' |
;-------------------------------------- |
@@: |
cmp [size_table+4],byte ' ' |
jne @f |
|
mov esi,size_table+3 |
mov edi,esi |
inc edi |
611,9 → 673,11 |
std |
rep movsb |
jmp @r |
;-------------------------------------- |
@@: |
pop edx |
pop ebx |
;-------------------------------------- |
.date: |
xor eax,eax |
mov al,[edx-40+28] |
636,31 → 700,34 |
mov ecx,0 |
cmp [marked_file],byte 0 |
je @f |
|
mov ecx,0xff0000 |
;-------------------------------------- |
@@: |
mov edx,type_table |
mov esi,20 |
mov eax,4 |
int 0x40 |
mcall 4,,,type_table,20 |
popa |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_folder_data: |
cmp [drawing_panel_folder],1 |
jne .right_panel |
|
mov eax,[left_folder_block] |
sub eax,[max_panel_line] |
test eax,0x8000000 |
jz .ok_left |
|
mov [left_start_draw_line],0 |
jmp @f |
;-------------------------------------- |
.ok_left: |
cmp eax,[left_start_draw_line] |
jae @f |
|
mov [left_start_draw_line],eax |
;-------------------------------------- |
@@: |
mov bx,[left_panel_x.start_x] |
; inc bx |
add bx,12 |
shl ebx,16 |
mov bx,[left_panel_y.start_y] |
671,20 → 738,24 |
add edx,32+40 |
mov [temp_counter],0 |
jmp .type_folder |
;-------------------------------------- |
.right_panel: |
mov eax,[right_folder_block] |
sub eax,[max_panel_line] |
test eax,0x8000000 |
jz .ok_right |
|
mov [right_start_draw_line],0 |
jmp @f |
;-------------------------------------- |
.ok_right: |
cmp eax,[right_start_draw_line] |
jae @f |
|
mov [right_start_draw_line],eax |
;-------------------------------------- |
@@: |
mov bx,[right_panel_x.start_x] |
; inc bx |
add bx,12 |
shl ebx,16 |
mov bx,[right_panel_y.start_y] |
694,14 → 765,16 |
add edx,[right_folder_data] |
add edx,32+40 |
mov [temp_counter],1 |
; mov edx,retrieved_devices_table |
;-------------------------------------- |
.type_folder: |
xor eax,eax |
;-------------------------------------- |
.start: |
pusha |
mov eax,edx |
cmp [temp_counter],1 |
je @f |
|
sub eax,[left_folder_data] |
sub eax,32+40 |
xor edx,edx |
709,7 → 782,9 |
div ebx |
cmp eax,[left_folder_block] |
je .end_1 |
|
jmp .continue_1 |
;-------------------------------------- |
@@: |
sub eax,[right_folder_data] |
sub eax,32+40 |
718,14 → 793,18 |
div ebx |
cmp eax,[right_folder_block] |
je .end_1 |
;-------------------------------------- |
.continue_1: |
popa |
cmp eax,[max_panel_line] ; 20 |
je .end_2 ;.end |
je .end_2 |
|
mov [marked_file],0 |
cmp [edx+299-40],byte 0 |
je @f |
|
mov [marked_file],1 |
;-------------------------------------- |
@@: |
call clear_line |
call draw_type_size_date |
743,31 → 822,32 |
mov [temp_counter_1],0 |
cmp esi,eax |
jbe @f |
|
mov esi,eax |
mov [temp_counter_1],1 |
;-------------------------------------- |
@@: |
mov ecx,0 |
cmp [marked_file],byte 0 |
je @f |
|
mov ecx,0xff0000 |
;-------------------------------------- |
@@: |
mov eax,4 |
int 0x40 |
mcall 4 |
cmp [temp_counter_1],0 |
je .continue |
|
mov eax,esi ;[file_name_length] |
imul eax,6 |
shl eax,16 |
push ebx edx |
add ebx,eax |
mov esi,2 |
mov ecx,0xff0000 |
mov edx,truncated_filename_char |
mov eax,4 |
int 0x40 |
mcall 4,,0xff0000,truncated_filename_char,2 |
add ebx,1 shl 16 |
int 0x40 |
mcall |
pop edx ebx |
;-------------------------------------- |
.continue: |
add ebx,10 |
add edx,304 ;10 |
774,8 → 854,10 |
pop eax |
inc eax |
jmp .start |
;-------------------------------------- |
.end_1: |
popa |
;-------------------------------------- |
.end_2: |
mov ax,[left_panel_y.start_y] |
add ax,[left_panel_y.size_y] |
788,24 → 870,27 |
sub cx,ax |
cmp cx,0 |
jbe @f |
|
mov bx,[left_panel_x.size_x] |
sub ebx,12 shl 16 |
mov edx,0xffffff |
mcall 13 |
mcall 13,,,0xffffff |
;-------------------------------------- |
@@: |
|
.end: |
cmp [drawing_panel_folder],1 |
jne @f |
|
call draw_scroll_bar_left |
ret |
;-------------------------------------- |
@@: |
call draw_scroll_bar_right |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
clear_line: |
cmp [not_clear_lines],0 |
jne .end_1 |
|
pusha |
shl ebx,16 |
shr ebx,16 |
812,20 → 897,26 |
dec ebx |
cmp [drawing_panel_folder],1 |
jne .right |
|
cmp [select_panel_counter],0 |
jne .continue |
|
mov ax,[left_start_draw_cursor_line] |
add ax,[left_panel_y.start_y] |
cmp bx,ax |
je .end |
|
jmp .continue |
;-------------------------------------- |
.right: |
cmp [select_panel_counter],0 |
je .continue |
|
mov ax,[right_start_draw_cursor_line] |
add ax,[right_panel_y.start_y] |
cmp bx,ax |
je .end |
;-------------------------------------- |
.continue: |
mov ebx,[esp+16] |
mov cx,bx |
835,17 → 926,19 |
mov bx,[left_panel_x.size_x] |
cmp [drawing_panel_folder],1 |
je @f |
|
dec ebx |
;-------------------------------------- |
@@: |
sub ebx,12 shl 16+15 |
mov edx,0xffffff |
mov eax,13 |
int 0x40 |
mcall 13,,,0xffffff |
;-------------------------------------- |
.end: |
popa |
;-------------------------------------- |
.end_1: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_left_panel: |
call clear_left_panel |
call calc_max_panel_line |
854,7 → 947,7 |
call draw_folder_data |
call draw_left_panel_patch |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_right_panel: |
call clear_right_panel |
call calc_max_panel_line |
863,11 → 956,13 |
call draw_folder_data |
call draw_right_panel_patch |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_left_panel_patch: |
cmp [select_panel_counter],0 |
jne .end |
|
mov edx,read_folder_name ;read_folder.name |
;-------------------------------------- |
.1: |
call clear_patch_area |
mov ebx,[window_high] |
874,15 → 969,17 |
sub ebx,33 |
add ebx,8 shl 16 |
mcall 4, ,0x80000000 ; ,read_folder.name |
;-------------------------------------- |
.end: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_right_panel_patch: |
cmp [select_panel_counter],1 |
jne draw_left_panel_patch.end |
|
mov edx,read_folder_1_name ;read_folder_1.name |
jmp draw_left_panel_patch.1 |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
clear_patch_area: |
push edx |
mov ebx,[window_width] |
892,15 → 989,14 |
sub ecx,35 |
shl ecx,16 |
mov cx,12 |
mov edx,0xffffcc |
mov eax,13 |
int 0x40 |
mcall 13,,,0xffffcc |
pop edx |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_left_panel_selection: |
cmp [select_panel_counter],0 |
jne .end |
|
mov eax,[left_folder_block] |
sub eax,[left_start_draw_line] |
mov edx,left_start_draw_cursor_line |
911,24 → 1007,27 |
imul eax,10 |
cmp ax,cx |
jae @f |
|
mov cx,ax |
;-------------------------------------- |
@@: |
mov [edx],cx |
mov ebx,[left_panel_x] |
add cx,[left_panel_y.start_y] |
;-------------------------------------- |
.1: |
shl ecx,16 |
mov cx,10 |
mov edx,0xbbddff |
sub ebx,15 |
mov eax,13 |
int 0x40 |
mcall 13,,,0xbbddff |
;-------------------------------------- |
.end: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_right_panel_selection: |
cmp [select_panel_counter],1 |
jne draw_left_panel_selection.end |
|
mov eax,[right_folder_block] |
sub eax,[right_start_draw_line] |
mov edx,right_start_draw_cursor_line |
939,19 → 1038,22 |
imul eax,10 |
cmp ax,cx |
jae @f |
|
mov cx,ax |
;-------------------------------------- |
@@: |
mov [edx],cx |
mov ebx,[right_panel_x] |
add cx,[right_panel_y.start_y] |
jmp draw_left_panel_selection.1 |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
for_all_panel_selection: |
; dec eax |
imul eax,10 |
cmp ax,cx |
jae @f |
|
mov cx,ax |
;-------------------------------------- |
@@: |
mov eax,[max_panel_line] |
dec eax |
958,10 → 1060,12 |
imul eax,10 |
cmp ax,cx |
jae @f |
|
mov cx,ax |
;-------------------------------------- |
@@: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
clear_left_panel: |
mov ebx,7 shl 16 |
add ebx,[window_width] |
970,28 → 1074,25 |
mov [left_panel_x],ebx |
call calculate_panel_1 |
mov [left_panel_y],ecx |
; cmp [left_panel_clear_all],0 |
; je @f |
; call calculate_panel_2 |
; mov [left_panel_clear_all],0 |
;@@: |
xor eax,eax |
mov ax,cx |
xor edx,edx |
mov ebx,10 |
div ebx |
; óìíîæåíèå íà 10 |
shl eax,1 ; óìíîæåíèå íà 2 |
lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
mov [left_panel_y_correct_size_y],ax |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
calculate_panel_1: |
mov ecx,[skin_high] |
add ecx,70 |
shl ecx,16 |
add ecx,[window_high] |
sub ecx,130 |
sub ecx,129 |
ret |
;--------------------------------------------------------------------- |
;calculate_panel_2: |
; sub ebx,15 |
; mov edx,0xffffff |
; mov eax,13 |
; int 0x40 |
; ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
clear_right_panel: |
mov ebx,[window_width] |
shr ebx,1 |
1003,23 → 1104,29 |
mov [right_panel_x],ebx |
call calculate_panel_1 |
mov [right_panel_y],ecx |
; cmp [right_panel_clear_all],0 |
; je @f |
; call calculate_panel_2 |
; mov [right_panel_clear_all],0 |
;@@: |
xor eax,eax |
mov ax,cx |
xor edx,edx |
mov ebx,10 |
div ebx |
; óìíîæåíèå íà 10 |
shl eax,1 ; óìíîæåíèå íà 2 |
lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
mov [right_panel_y_correct_size_y],ax |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
erase_fbutton: |
mov edx,0x80000065 |
mov eax,8 |
mov ebp,12 |
;-------------------------------------- |
.start: |
int 0x40 |
mcall |
dec ebp |
jnz .start |
|
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_fbutton: |
test [window_status],100b ; window is rolled up |
jnz .exit |
1032,7 → 1139,6 |
shl ecx,16 |
add ecx,15 |
mov eax,[window_width] |
; sub eax,8 |
mov ebx,12 |
xor edx,edx |
div ebx |
1044,9 → 1150,11 |
mov edx,101 |
mov eax,8 |
mov ebp,12 |
;-------------------------------------- |
.start: |
cmp ebp,1 |
jne @f |
|
mov eax,ebx |
shr eax,16 |
mov bx,ax |
1055,6 → 1163,7 |
sub ax,5 |
mov bx,ax |
mov eax,8 |
;-------------------------------------- |
@@: |
mcall |
push eax ebx edx |
1062,20 → 1171,23 |
mov bx,10 |
cmp ebp,4 |
jae @f |
|
mov bx,18 |
;-------------------------------------- |
@@: |
mcall 13 |
cmp ebp,1 |
je @f |
|
ror ebx,16 |
add ebx,[fbutton_width] |
dec ebx |
rol ebx,16 |
mov bx,1 |
mov edx,0xcccccc |
inc ecx |
mcall |
mcall ,,,0xcccccc |
dec ecx |
;-------------------------------------- |
@@: |
pop edx ebx eax |
call .rol_ror |
1082,15 → 1194,18 |
inc edx |
dec ebp |
jnz .start |
|
call draw_fbutton_name |
ret |
;-------------------------------------- |
.rol_ror: |
rol ebx,16 |
add ebx,[fbutton_width] |
ror ebx,16 |
;-------------------------------------- |
.exit: |
ret |
;--------------------------------------------------------------------- |
;------------------------------------------------------------------------------ |
draw_fbutton_name: |
mov ebx, 7 shl 16 |
add ebx,[window_high] |
1102,13 → 1217,17 |
pop ebx |
mov ecx,0x90ffffff |
sub ebx,1 shl 16 + 1 |
;-------------------------------------- |
.type_1: |
cmp [shift_flag],1 |
je .type_shift |
|
cmp [ctrl_flag],1 |
je .type_ctrl |
|
cmp [alt_flag],1 |
je .type_alt |
;-------------------------------------- |
.type: |
mov edx,fbutton_name.f1 |
call .type_all |
1133,8 → 1252,9 |
mov edx,fbutton_name.f11 |
call .type_all |
mov edx,fbutton_name.f12 |
int 0x40 |
mcall |
ret |
;-------------------------------------- |
.type_shift: |
mov edx,fbutton_name_shift.f1 |
call .type_all |
1159,8 → 1279,9 |
mov edx,fbutton_name_shift.f11 |
call .type_all |
mov edx,fbutton_name_shift.f12 |
int 0x40 |
mcall |
ret |
;-------------------------------------- |
.type_ctrl: |
mov edx,fbutton_name_ctrl.f1 |
call .type_all |
1185,8 → 1306,9 |
mov edx,fbutton_name_ctrl.f11 |
call .type_all |
mov edx,fbutton_name_ctrl.f12 |
int 0x40 |
mcall |
ret |
;-------------------------------------- |
.type_alt: |
mov edx,fbutton_name_alt.f1 |
call .type_all |
1211,7 → 1333,9 |
mov edx,fbutton_name_alt.f11 |
call .type_all |
mov edx,fbutton_name_alt.f12 |
;-------------------------------------- |
.type_all: |
int 0x40 |
mcall |
call draw_fbutton.rol_ror |
ret |
;------------------------------------------------------------------------------ |