1,4 → 1,3 |
;------------------------------------------------------------------------------ |
draw_buttons_panel: |
mov ecx,[skin_high] |
add ecx,19 |
12,7 → 11,8 |
add edx,[skin_high] |
pusha |
call .calculate_button |
mcall ,,,150 |
mov edx,150 |
int 0x40 |
popa |
mcall 7,[buttons_img_start],<16,16> |
add edx,26 shl 16 |
19,53 → 19,59 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,151 |
mov edx,151 |
int 0x40 |
popa |
mcall |
int 0x40 |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,152 |
mov edx,152 |
int 0x40 |
popa |
mcall |
int 0x40 |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,153 |
mov edx,153 |
int 0x40 |
popa |
mcall |
int 0x40 |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,154 |
mov edx,154 |
int 0x40 |
popa |
mcall |
int 0x40 |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,155 |
mov edx,155 |
int 0x40 |
popa |
mcall |
int 0x40 |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,156 |
mov edx,156 |
int 0x40 |
popa |
mcall |
int 0x40 |
add edx,26 shl 16 |
add ebx,16*16*3 |
pusha |
call .calculate_button |
mcall ,,,157 |
mov edx,157 |
int 0x40 |
popa |
mcall |
int 0x40 |
ret |
;-------------------------------------- |
.calculate_button: |
mov esi,0xffffff |
mov ebx,edx |
75,7 → 81,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] |
83,21 → 89,17 |
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 |
107,10 → 109,10 |
mov eax,8 |
mov ebp,4 |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
calclulate_sort_button_2: |
inc ebp |
mcall |
int 0x40 |
pusha |
push ebx |
mov eax,ebx |
119,20 → 121,17 |
add ebx,eax |
cmp ebp,4 |
jne @f |
|
mov bx,15 |
jmp .continue |
;-------------------------------------- |
@@: |
mov bx,1 |
;-------------------------------------- |
.continue: |
mov edx,0xcccccc |
inc ecx |
mcall 13,,,0xcccccc |
mcall 13 |
pop ebx |
cmp ebp,1 |
jne @f |
|
mov eax,[temp_panel_end] |
shl eax,16 |
add eax,[temp_panel_end] |
144,7 → 143,6 |
rol ebx,16 |
mcall 13 |
mov [temp_panel_end],ebx |
;-------------------------------------- |
@@: |
popa |
pusha |
151,6 → 149,7 |
shr ecx,16 |
mov bx,cx |
add ebx,3 shl 16+2 |
mov ecx,0x10000000 |
mov edx,ebp |
dec edx |
shl edx,2 |
157,7 → 156,7 |
add edx,sort_button_name |
mov eax,4 |
mov esi,eax |
mcall ,,0x10000000 |
int 0x40 |
popa |
dec edx |
sub ebx,38 shl 16 |
164,7 → 163,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] |
172,27 → 171,22 |
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 |
199,22 → 193,23 |
sub cx,14 |
shl ecx,16 |
mov cx,13 |
mcall 8,,,,0xffffff |
mcall 13,,,0xffffff |
mov esi,0xffffff |
mov eax,8 |
int 0x40 |
mov edx,0xffffff |
mov eax,13 |
int 0x40 |
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 |
226,7 → 221,8 |
popa |
add ebx,50 shl 16 |
mov bx,10 |
mcall ,,,0x6060ff |
mov edx,0x6060ff |
int 0x40 |
mov [temp_panel_end],ebx |
add ebx,1 shl 16 |
shr ecx,16 |
234,9 → 230,9 |
add ebx,3 |
mcall 4, ,0x80ffffff,select_disk_char |
add ebx,1 shl 16 |
mcall |
int 0x40 |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
draw_right_select_disk_button: |
mov bx,[right_panel_x.start_x] |
mov cx,[right_panel_y.start_y] |
243,7 → 239,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 |
253,6 → 249,7 |
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] |
259,7 → 256,6 |
mov eax,[right_panel_x] |
mov [temp_panel_end],eax |
mov [temp_counter],1 |
;-------------------------------------- |
.draw: |
shl ebx,16 |
mov bx,25 |
270,82 → 266,62 |
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] |
362,7 → 338,6 |
mcall 13,,,0xcccccc |
cmp [temp_counter],0 |
je @f |
|
mov ax,bx |
shr ebx,16 |
add bx,ax |
371,7 → 346,6 |
sub ax,bx |
cmp eax,0 |
jbe @f |
|
shl ebx,16 |
mov bx,ax |
mov ax,[right_panel_y.size_y] |
380,11 → 354,12 |
sub ax,cx |
shl ecx,16 |
mov cx,ax |
mcall 13,,,0xcccccc |
mov edx,0xcccccc |
mcall 13 |
ret |
;-------------------------------------- |
|
.draw_1: |
mcall |
int 0x40 |
pusha |
mov eax,ebx |
inc eax |
392,7 → 367,8 |
add ebx,eax |
mov bx,1 |
inc ecx |
mcall 13,,,0xcccccc |
mov edx,0xcccccc |
mcall 13 |
popa |
pusha |
mov edx,ebp |
399,18 → 375,20 |
shr ecx,16 |
mov bx,cx |
add ebx,2 shl 16 +3 |
mcall 4,,0x90000000 |
mov ecx,0x90000000 |
mov eax,4 |
int 0x40 |
mov ecx,0x90ffffff |
sub ebx,1 shl 16 + 1 |
mcall ,,0x90ffffff |
int 0x40 |
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] |
419,24 → 397,20 |
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 |
445,7 → 419,7 |
mcall 7, ,<10,9> |
popa |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ |
; Âõîä: |
; AX - ÷èñëî |
452,13 → 426,11 |
; 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 |
470,13 → 442,10 |
inc ecx |
cmp ax,0 |
jne .p3 |
|
cmp ecx,1 |
jbe .p4 |
|
mov ecx,2 |
dec ebx |
;-------------------------------------- |
.p4: |
pop edx |
mov [ebx],dl |
484,13 → 453,12 |
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 |
502,65 → 470,53 |
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 |
|
je .extension_size_0 ;@f |
cmp al,'.' |
jnz @b |
|
add esi,2 |
mov [extension_start],esi |
mov ecx,[temp_counter_1] |
570,17 → 526,13 |
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 |
588,19 → 540,15 |
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 |
615,12 → 563,10 |
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] |
629,12 → 575,10 |
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] |
643,12 → 587,10 |
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] |
655,17 → 597,13 |
;.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 |
673,11 → 611,9 |
std |
rep movsb |
jmp @r |
;-------------------------------------- |
@@: |
pop edx |
pop ebx |
;-------------------------------------- |
.date: |
xor eax,eax |
mov al,[edx-40+28] |
700,34 → 636,31 |
mov ecx,0 |
cmp [marked_file],byte 0 |
je @f |
|
mov ecx,0xff0000 |
;-------------------------------------- |
@@: |
mcall 4,,,type_table,20 |
mov edx,type_table |
mov esi,20 |
mov eax,4 |
int 0x40 |
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] |
738,24 → 671,20 |
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] |
765,16 → 694,14 |
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 |
782,9 → 709,7 |
div ebx |
cmp eax,[left_folder_block] |
je .end_1 |
|
jmp .continue_1 |
;-------------------------------------- |
@@: |
sub eax,[right_folder_data] |
sub eax,32+40 |
793,18 → 718,14 |
div ebx |
cmp eax,[right_folder_block] |
je .end_1 |
;-------------------------------------- |
.continue_1: |
popa |
cmp eax,[max_panel_line] ; 20 |
je .end_2 |
|
je .end_2 ;.end |
mov [marked_file],0 |
cmp [edx+299-40],byte 0 |
je @f |
|
mov [marked_file],1 |
;-------------------------------------- |
@@: |
call clear_line |
call draw_type_size_date |
822,32 → 743,31 |
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 |
;-------------------------------------- |
@@: |
mcall 4 |
mov eax,4 |
int 0x40 |
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 |
mcall 4,,0xff0000,truncated_filename_char,2 |
mov esi,2 |
mov ecx,0xff0000 |
mov edx,truncated_filename_char |
mov eax,4 |
int 0x40 |
add ebx,1 shl 16 |
mcall |
int 0x40 |
pop edx ebx |
;-------------------------------------- |
.continue: |
add ebx,10 |
add edx,304 ;10 |
854,10 → 774,8 |
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] |
870,27 → 788,24 |
sub cx,ax |
cmp cx,0 |
jbe @f |
|
mov bx,[left_panel_x.size_x] |
sub ebx,12 shl 16 |
mcall 13,,,0xffffff |
;-------------------------------------- |
mov edx,0xffffff |
mcall 13 |
@@: |
|
.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 |
897,26 → 812,20 |
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 |
926,19 → 835,17 |
mov bx,[left_panel_x.size_x] |
cmp [drawing_panel_folder],1 |
je @f |
|
dec ebx |
;-------------------------------------- |
@@: |
sub ebx,12 shl 16+15 |
mcall 13,,,0xffffff |
;-------------------------------------- |
mov edx,0xffffff |
mov eax,13 |
int 0x40 |
.end: |
popa |
;-------------------------------------- |
.end_1: |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
draw_left_panel: |
call clear_left_panel |
call calc_max_panel_line |
947,7 → 854,7 |
call draw_folder_data |
call draw_left_panel_patch |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
draw_right_panel: |
call clear_right_panel |
call calc_max_panel_line |
956,13 → 863,11 |
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] |
969,17 → 874,15 |
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] |
989,14 → 892,15 |
sub ecx,35 |
shl ecx,16 |
mov cx,12 |
mcall 13,,,0xffffcc |
mov edx,0xffffcc |
mov eax,13 |
int 0x40 |
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 |
1007,27 → 911,24 |
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 |
mcall 13,,,0xbbddff |
;-------------------------------------- |
mov eax,13 |
int 0x40 |
.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 |
1038,22 → 939,19 |
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 |
1060,12 → 958,10 |
imul eax,10 |
cmp ax,cx |
jae @f |
|
mov cx,ax |
;-------------------------------------- |
@@: |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
clear_left_panel: |
mov ebx,7 shl 16 |
add ebx,[window_width] |
1074,25 → 970,28 |
mov [left_panel_x],ebx |
call calculate_panel_1 |
mov [left_panel_y],ecx |
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 |
; cmp [left_panel_clear_all],0 |
; je @f |
; call calculate_panel_2 |
; mov [left_panel_clear_all],0 |
;@@: |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
calculate_panel_1: |
mov ecx,[skin_high] |
add ecx,70 |
shl ecx,16 |
add ecx,[window_high] |
sub ecx,129 |
sub ecx,130 |
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 |
1104,29 → 1003,23 |
mov [right_panel_x],ebx |
call calculate_panel_1 |
mov [right_panel_y],ecx |
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 |
; cmp [right_panel_clear_all],0 |
; je @f |
; call calculate_panel_2 |
; mov [right_panel_clear_all],0 |
;@@: |
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
erase_fbutton: |
mov edx,0x80000065 |
mov eax,8 |
mov ebp,12 |
;-------------------------------------- |
.start: |
mcall |
int 0x40 |
dec ebp |
jnz .start |
|
ret |
;------------------------------------------------------------------------------ |
;--------------------------------------------------------------------- |
draw_fbutton: |
test [window_status],100b ; window is rolled up |
jnz .exit |
1139,6 → 1032,7 |
shl ecx,16 |
add ecx,15 |
mov eax,[window_width] |
; sub eax,8 |
mov ebx,12 |
xor edx,edx |
div ebx |
1150,11 → 1044,9 |
mov edx,101 |
mov eax,8 |
mov ebp,12 |
;-------------------------------------- |
.start: |
cmp ebp,1 |
jne @f |
|
mov eax,ebx |
shr eax,16 |
mov bx,ax |
1163,7 → 1055,6 |
sub ax,5 |
mov bx,ax |
mov eax,8 |
;-------------------------------------- |
@@: |
mcall |
push eax ebx edx |
1171,23 → 1062,20 |
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 ,,,0xcccccc |
mcall |
dec ecx |
;-------------------------------------- |
@@: |
pop edx ebx eax |
call .rol_ror |
1194,18 → 1082,15 |
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] |
1217,17 → 1102,13 |
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 |
1252,9 → 1133,8 |
mov edx,fbutton_name.f11 |
call .type_all |
mov edx,fbutton_name.f12 |
mcall |
int 0x40 |
ret |
;-------------------------------------- |
.type_shift: |
mov edx,fbutton_name_shift.f1 |
call .type_all |
1279,9 → 1159,8 |
mov edx,fbutton_name_shift.f11 |
call .type_all |
mov edx,fbutton_name_shift.f12 |
mcall |
int 0x40 |
ret |
;-------------------------------------- |
.type_ctrl: |
mov edx,fbutton_name_ctrl.f1 |
call .type_all |
1306,9 → 1185,8 |
mov edx,fbutton_name_ctrl.f11 |
call .type_all |
mov edx,fbutton_name_ctrl.f12 |
mcall |
int 0x40 |
ret |
;-------------------------------------- |
.type_alt: |
mov edx,fbutton_name_alt.f1 |
call .type_all |
1333,9 → 1211,7 |
mov edx,fbutton_name_alt.f11 |
call .type_all |
mov edx,fbutton_name_alt.f12 |
;-------------------------------------- |
.type_all: |
mcall |
int 0x40 |
call draw_fbutton.rol_ror |
ret |
;------------------------------------------------------------------------------ |