zSea - cleaning and preparing the source code

git-svn-id: svn://kolibrios.org@2000 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov (Mario79) 2011-07-07 19:18:51 +00:00
parent 8222dd469c
commit 3dee3b0598
11 changed files with 534 additions and 761 deletions

View File

@ -0,0 +1,43 @@
;---------------------------------------------------------------------
; ÓÑÒÀÍÎÂÈÒÜ ÔÎÍ
background:
cmp [soi],0
je .end
cmp [bgrmode],dword 2
jbe @f
jmp .end
@@:
mov ecx,[img_width] ; øèðèíà
test ecx,ecx
jz .end
mov edx,[img_high] ; âûñîòà 
test edx,edx
jz .end
mcall 15,1 ; set size
mov esi,ecx
imul esi,edx
lea esi,[esi*3]
mov ecx,[soi]
xor edx,edx
cmp [img_resolution],24
je @f
push dword image_file
call [convert_Conv_24b]
mov ecx,[raw_pointer_2]
mcall 15,5 ;15,5 set data
mov ecx,[raw_pointer_2]
mcall 68,13
jmp .set_mode
@@:
mcall 15,5 ; 15,5 set data
.set_mode:
mov ecx,[bgrmode]
mcall 15,4 ; 15,4 set mode
dec ebx ; 15,3 redraw background
mcall
.end:
ret
;---------------------------------------------------------------------

View File

@ -1,8 +1,8 @@
;---------------------------------------------------------------------
clear_thread:
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [clear_thread_stack],eax
mcall 51, 1, clear_thread_start ;, clear_thread_stack
mcall 51,1,clear_thread_start ;, clear_thread_stack
ret
;---------------------------------------------------------------------
clear_thread_start:

View File

@ -38,7 +38,7 @@ lsz fitext,\
db 0
;---------------------------------------------------------------------
Authors_text:
.1: db 'zSea version: 1.00 RC3 Date: 14/06/2011',0
.1: db 'zSea version: 1.00 RC3 Date: 07/07/2011',0
.2: db 'Authors:',0
.3: db 'Marat Zakiyanov aka Mario(Mario79)',0
.4: db 'zSea program, modules: cnv_bmp.obj,',0
@ -860,6 +860,8 @@ align 4
; option_boxes_bcgr:
op1 option_box option_group1,60,40,6,12,0xFFFFFF,0,0xffffff,op_text.1,op_text.e1-op_text.1
op2 option_box option_group1,60,55,6,12,0xFFFFFF,0,0xffffff,op_text.2,op_text.e2-op_text.2
op3 option_box option_group1,60,70,6,12,0xFFFFFF,0,0xffffff,op_text.3,op_text.e3-op_text.3
op4 option_box option_group1,60,85,6,12,0xFFFFFF,0,0xffffff,op_text.4,op_text.e4-op_text.4
option_boxes_bcgr_end:
op_text:
@ -867,10 +869,14 @@ op_text:
.e1:
.2 db 'Stretch'
.e2:
.3 db 'Stretch + V crop'
.e3:
.4 db 'Stretch + H crop'
.e4:
option_group1 dd op1
option_boxes_bcgr: dd op1, op2,0
option_boxes_bcgr: dd op1,op2,op3,op4,0
;---------------------------------------------------------------------
align 4
;option_boxes_sort:

View File

@ -1,128 +1,87 @@
;---------------------------------------------------------------------
kabout:
test dword [status],4
jnz still
or dword [status],4
kabout:
test dword [status],4
jnz still
or dword [status],4
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_3],eax
mcall 51,1,thread3 ;,thread_stack_3
mcall 51,1,thread3 ;thread_stack_3
jmp still
;---------------------------------------------------------------------
thread3: ; start of bgrd thread
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID3],eax
mcall 40, 0x7
thread3: ; start of bgrd thread
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID3],eax
mcall 40,0x7
;------------------------------
.red:
call .draw_window
call .draw_window
;------------------------------
.still:
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je .red
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
je .close ;.key
cmp eax,3 ; button in buffer ?
je .button
jmp .still
; .key:
; mcall
; cmp ah,27
; je .close
; jmp .still
cmp eax,2 ; key in buffer ?
je .close ;.key
cmp eax,3 ; button in buffer ?
je .button
jmp .still
;---------------------------------------------------------------------
;.key:
; mcall
; cmp ah,27
; je .close
; jmp .still
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
je .close
cmp ah,2
jne .still ;noclose3
cmp ah,1 ; button id=1 ?
je .close
cmp ah,2
jne .still ;noclose3
.close:
; btr dword [status],3
; bts dword [status],2
xor dword [status],4
xor eax,eax
mov [PID3],eax
xor dword [status],4
xor eax,eax
mov [PID3],eax
mcall 68,13,[thread_stack_3]
mov eax,-1 ; close this program
mcall
; .noclose:
; jmp still3
mcall -1 ; close this program
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+240 ; [y start] *65536 + [y size]
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl
mcall
mov ebx,120*65536+40
mov ecx,210*65536+20
mov edx,2
mov esi,0xdddddd
mcall 8
pusha
mcall 4,<20,30>,0x80000000,Authors_text.1
mcall ,<30,45>, ,Authors_text.2
mcall ,<30,60>, ,Authors_text.3
mcall ,<60,70>, ,Authors_text.4
mcall ,<60,80>, ,Authors_text.5
mcall ,<60,90>, ,Authors_text.6
mcall ,<60,100>, ,Authors_text.7
mcall ,<30,115>, ,Authors_text.8
mcall ,<60,125>, ,Authors_text.9
mcall ,<60,135>, ,Authors_text.10
mcall ,<30,150>, ,Authors_text.11
mcall ,<60,160>, ,Authors_text.12
mcall ,<30,175>, ,Authors_text.13
mcall ,<60,185>, ,Authors_text.14
popa
add ebx,15 shl 16
shr ecx,16
mov bx,cx
add ebx,6
mov ecx,0
mov edx, ok_btn
mov esi, ok_btn.size ;2
mcall 4
; WINDOW LABEL
mcall 71,1, labelt3
; mcall 47,0x80000,[PID3],<200, 5>,0xffffff
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
ret
mcall 12,1
xor eax,eax ; function 0 : define and draw window
xor esi,esi
mcall ,<100,300>,<100,240>,0x13eeeeee,,labelt3
mcall 8,<120,40>,<210,20>,2,0xdddddd
add ebx,15 shl 16
shr ecx,16
mov bx,cx
add ebx,6
xor ecx,ecx
mcall 4,,,ok_btn,ok_btn.size
mcall ,<20,30>,0x80000000,Authors_text.1
mcall ,<30,45>, ,Authors_text.2
mcall ,<30,60>, ,Authors_text.3
mcall ,<60,70>, ,Authors_text.4
mcall ,<60,80>, ,Authors_text.5
mcall ,<60,90>, ,Authors_text.6
mcall ,<60,100>, ,Authors_text.7
mcall ,<30,115>, ,Authors_text.8
mcall ,<60,125>, ,Authors_text.9
mcall ,<60,135>, ,Authors_text.10
mcall ,<30,150>, ,Authors_text.11
mcall ,<60,160>, ,Authors_text.12
mcall ,<30,175>, ,Authors_text.13
mcall ,<60,185>, ,Authors_text.14
; mcall 47,0x80000,[PID3],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------

View File

@ -1,92 +1,112 @@
;---------------------------------------------------------------------
error_window:
test dword [status],32
jnz still
or dword [status],32
mcall 9, procinfo, -1
mov eax,[ebx+46]
test eax,eax
jnz @f
mov eax,100
mov [error_window_y+2],ax
mov [error_window_x+2],ax
jmp .end
test dword [status],32
jnz still
or dword [status],32
mcall 9,procinfo,-1
mov eax,[ebx+46]
test eax,eax
jnz @f
mov eax,100
mov [error_window_y+2],ax
mov [error_window_x+2],ax
jmp .end
;---------------------------------------------------------------------
@@:
shr eax,1
add eax,[ebx+38]
sub eax,50
mov [error_window_y+2],ax
mov eax,[ebx+42]
shr eax,1
add eax,[ebx+34]
sub eax,150
mov [error_window_x+2],ax
shr eax,1
add eax,[ebx+38]
sub eax,50
mov [error_window_y+2],ax
mov eax,[ebx+42]
shr eax,1
add eax,[ebx+34]
sub eax,150
mov [error_window_x+2],ax
.end:
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_6],eax
mcall 51,1,thread6 ;,thread_stack_6
mcall 51,1,thread6 ; thread_stack_6
ret
;---------------------------------------------------------------------
thread6:
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID6],eax
mcall 40, 0x7
mov [error_pointer],string
mcall 9,procinfo_threads,-1
mov eax,[ebx+30]
mov [PID6],eax
mcall 40,0x7
mov [error_pointer],string
;--------------------------------------
.red:
call .draw_error_window
call .draw_error_window
;--------------------------------------
.still:
mcall 10
cmp eax,1
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3
je .button
jmp .still
.key: ; key
.button:
xor dword [status],32
xor eax,eax
mov [PID6],eax
mcall 10
cmp eax,1
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3
je .button
jmp .still
;---------------------------------------------------------------------
.key: ; key
.button:
xor dword [status],32
xor eax,eax
mov [PID6],eax
mcall 68,13,[thread_stack_6]
mcall -1
jmp .still
mcall -1
jmp .still
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_error_window:
mcall 12, 1
mcall 0,[error_window_x] ,[error_window_y], 0x03ff0000
mcall 71,1, errortext
mcall 4,<10,30>,0x80ffffff,[error_pointer]
cmp [return_code],0
je .continue
cmp [return_code],1
jne @f
mcall 4,<10,50>,0x90ffffff,error_not_supported_file
jmp .end
@@:
cmp [return_code],2
jne @f
mcall 4,<10,50>,0x90ffffff,error_not_enough_memory
jmp .end
@@:
mcall 4,<10,50>,0x90ffffff,error_unknown
jmp .end
.continue:
mcall 4,<10,50>,0x90ffffff,error_type
mcall 47,0x800a0000,[error_fs],<140,50>,0x10ffffff
mov edx,[error_fs]
cmp edx,0
jb .end
cmp edx,11
ja .end
shl edx,2
add edx,error_fs_text_pointers
mov edx,[edx]
mcall 4,<10,70>,0x90ffffff,
; mcall 47,0x800a0000,[error_locate],<140,5>,0x10ffffff
.end:
; mcall 47,0x80000,[PID6],<200, 5>,0xffffff
mcall 12, 2
ret
mcall 12, 1
mcall 0,[error_window_x],[error_window_y],0x03ff0000
mcall 71,1, errortext
mcall 4,<10,30>,0x80ffffff,[error_pointer]
cmp [return_code],0
je .continue
cmp [return_code],1
jne @f
mcall 4,<10,50>,0x90ffffff,error_not_supported_file
jmp .end
;---------------------------------------------------------------------
@@:
cmp [return_code],2
jne @f
mcall 4,<10,50>,0x90ffffff,error_not_enough_memory
jmp .end
;---------------------------------------------------------------------
@@:
mcall 4,<10,50>,0x90ffffff,error_unknown
jmp .end
;---------------------------------------------------------------------
.continue:
mcall 4,<10,50>,0x90ffffff,error_type
mcall 47,0x800a0000,[error_fs],<140,50>,0x10ffffff
mov edx,[error_fs]
cmp edx,0
jb .end
cmp edx,11
ja .end
shl edx,2
add edx,error_fs_text_pointers
mov edx,[edx]
mcall 4,<10,70>,0x90ffffff,
; mcall 47,0x800a0000,[error_locate],<140,5>,0x10ffffff
.end:
; mcall 47,0x80000,[PID6],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------

View File

@ -4,7 +4,7 @@ k_background:
jnz still
or dword [status],8
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_4],eax
mcall 51,1,thread4 ;, thread_stack_4
jmp still
@ -16,22 +16,24 @@ thread4: ; start of bgrd thread
mcall 40, 0x27
.red:
call .draw_window
.still:
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3 ; button in buffer ?
je .button
cmp eax,6 ; mouse in buffer ?
je .mouse
jmp .still
jmp .still
;---------------------------------------------------------------------
.mouse:
push dword option_boxes_bcgr
call [option_box_mouse]
@ -40,42 +42,65 @@ thread4: ; start of bgrd thread
jne @f
mov [bgrmode],dword 1
jmp .still
;---------------------------------------------------------------------
@@:
mov [bgrmode],dword 2
jmp .still
;---------------------------------------------------------------------
.key:
mcall
cmp ah,27
je .close
cmp ah,13
je .kok
cmp ah,178 ;up
jne .nofup
cmp dword [bgrmode],1
je .fdn
.fup:
dec dword [bgrmode]
jmp .flagcont
;---------------------------------------------------------------------
.nofup:
cmp ah,177 ;down
jne .still
cmp dword [bgrmode],2
cmp dword [bgrmode],4
je .fup
.fdn:
inc dword [bgrmode]
.flagcont:
cmp [bgrmode],dword 1
jne @f
mov [option_group1],op1
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [bgrmode],dword 2
jne @f
mov [option_group1],op2
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [bgrmode],dword 3
jne @f
mov [option_group1],op3
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
mov [option_group1],op4
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
@ -94,47 +119,23 @@ thread4: ; start of bgrd thread
.kok:
call background
jmp .close
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mcall 12,1
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov ecx,100*65536+100 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
mov eax,8
mov ebx,70*65536+40
mov ecx,70*65536+20
mov edx,4
mov esi,0xdddddd
mcall
; WINDOW LABEL
mcall 71,1, labelt4
mov eax,4 ; function 4 : write text to window
mov ebx,46*65536+28 ; [x start] *65536 + [y start]
mov ecx,0xffffff
mov edx, bgrdtext
mov esi, bgrdtext.size
mcall
add ebx,40*65536+48
mov edx, ok_btn
mov esi, ok_btn.size ;2
mov ecx,0
mcall
xor eax,eax
xor esi,esi
mcall ,<100,200>,<100,200>,0x13909090,,labelt4
mcall 8,<70,40>,<110,20>,4,0xdddddd
mcall 4,<46,28>,0xffffff,bgrdtext,bgrdtext.size
add ebx,40*65536+88
xor ecx,ecx
mcall ,,,ok_btn,ok_btn.size
call .draw_opt_boxes
; mcall 47,0x80000,[PID4],<200, 5>,0xffffff
; mcall 47,0x80000,[PID4],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------
.draw_opt_boxes:

View File

@ -5,14 +5,12 @@ kfile:
or dword [status],1
call load_directory.copy_dir_path
; call get_filter_data
cmp [OpenDialog_path],dword 'NoKe'
cmp [OpenDialog_path],dword 'NoKe'
je @f
mov [OpenDialog_data.start_path],dword OpenDialog_path
mov [OpenDialog_data.start_path],dword OpenDialog_path
jmp .start_OpenDialog
;---------------------------------------------------------------------
@@:
mov ebx,open_dialog_name
mov esi,path
@ -20,176 +18,108 @@ kfile:
call copy_file_path
.start_OpenDialog:
;start_OpenDialog OpenDialog_data
push dword OpenDialog_data
call [OpenDialog_Start]
call clear_control_key_flag
cmp [OpenDialog_data.status],2
je thread1_start
cmp [OpenDialog_data.status],1
jne @f
xor dword [status],1
jmp kopen_1
;---------------------------------------------------------------------
@@:
xor dword [status],1
jmp still
;---------------------------------------------------------------------
thread1_start:
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack],eax
mcall 51,1,thread1 ;, thread_stack
mcall 51,1,thread1 ; thread_stack
jmp still
;---------------------------------------------------------------------
get_filter_data:
mov edi,Filter+4
xor eax,eax
mov ecx,10
thread1: ; start of thread1
mcall 9,procinfo_threads, -1
mov eax,[ebx+30]
mov [PID1],eax
mcall 40,0x27
or ecx,-1 ; get information about me
call getappinfo
mov esi,string
;-------------------------------------
cld
@@:
mov esi,10
sub esi,ecx
lea esi,[esi+esi*2] ; x 3
shl esi,3 ; x 8
add esi,dword Convert_plugin_0.Assoc
mov esi,[esi]
add esi,4
test esi,esi
jz @f
call .start
dec ecx
jnz @r
@@:
mov [edi],byte 0
mov eax,Filter
sub edi,eax
mov [eax],edi
ret
.start:
@@:
lodsb
stosb
test eax,eax
jnz @r
cmp [esi],ah
test al,al
jne @r
ret
;---------------------------------------------------------------------
thread1: ; start of thread1
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID1],eax
mcall 40, 0x27
or ecx,-1 ; get information about me
call getappinfo
mov esi,string
@@:
cld
lodsb
test al,al
jne @r
sub esi,string
mov eax,esi
dec eax
mov edi, edit1
mov [edi+48], eax ;ed_size
mov [edi+52], eax ;ed_pos
;-------------------------------------
sub esi,string
mov eax,esi
dec eax
mov edi, edit1
mov [edi+48], eax ;ed_size
mov [edi+52], eax ;ed_pos
;-------------------------------------
.red:
call .draw_window
call .draw_window
;-------------------------------------
.still:
mcall 10 ; wait here for event
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je .red
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3 ; button in buffer ?
je .button
cmp eax,2 ; key in buffer ?
je .key
push dword name_editboxes
call [edit_box_mouse]
; mouse_edit_box name_editboxes
; mouse_menubar menu_data_2
jmp .still
cmp eax,3 ; button in buffer ?
je .button
push dword name_editboxes
call [edit_box_mouse]
jmp .still
;---------------------------------------------------------------------
.key: ; key
mcall 2
cmp ah,13
je .close_with_open_file
cmp ah,27
je .close
mcall
cmp ah,13
je .close_with_open_file
push dword name_editboxes
call [edit_box_key]
; key_edit_box name_editboxes
jmp .still
cmp ah,27
je .close
push dword name_editboxes
call [edit_box_key]
jmp .still
;---------------------------------------------------------------------
.close_with_open_file:
mov [open_file_flag],byte 1
jmp .close
mov [open_file_flag],byte 1
jmp .close
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne .still
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
jne .still
.close:
; bts dword [status],2
; btr dword [status],0
xor dword [status],1
xor eax,eax
mov [PID1],eax
xor dword [status],1
xor eax,eax
mov [PID1],eax
mcall 68,13,[thread_stack]
mov eax,-1 ; close this program
mcall
jmp .still
mcall -1 ; close this program
jmp .still
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+80 ; [y start] *65536 + [y size]
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl
mcall
; WINDOW LABEL
mcall 71,1, labelt1
mcall 12,1
xor eax,eax ; function 0 : define and draw window
xor esi,esi
mcall ,<100,300>,<100,80>,0x13eeeeee,,labelt1
push dword name_editboxes
call [edit_box_draw]
; draw_edit_box name_editboxes
; mcall 47,0x80000,[PID1],<200, 5>,0xffffff
; mcall 71,1, proverka
; mcall 47,0x80001,0,<300, 5>,0xffffff
; draw_menu_bar menu_data_2
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
ret
; mcall 47,0x80000,[PID1],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------

View File

@ -1,269 +1,84 @@
;---------------------------------------------------------------------
kinfo:
test dword [status],2
jnz still
kinfo:
test dword [status],2
jnz still
or dword [status],2
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_2],eax
mcall 51,1,thread2 ;, thread_stack_2
jmp still
;---------------------------------------------------------------------
thread2: ; start of info thread
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID2],eax
mcall 40, 0x7
call load_directory.copy_dir_path
mcall 9,procinfo_threads,-1
mov eax,[ebx+30]
mov [PID2],eax
mcall 40,0x7
call load_directory.copy_dir_path
;---------------------------------------------------------------------
.red:
call .draw_window
call .draw_window
;---------------------------------------------------------------------
.still:
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
cmp eax,2 ; key in buffer ?
je .close
cmp eax,3 ; button in buffer ?
cmp eax,3 ; button in buffer ?
je .button
jmp .still
jmp .still
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne .still ;.noclose
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
jne .still ;.noclose
.close:
; btr dword [status],1
; bts dword [status],2
xor dword [status],2
xor eax,eax
mov [PID2],eax
mcall 68,13,[thread_stack_2]
mov eax,-1 ; close this program
mcall
;.noclose:
; jmp .still
mcall -1 ; close this program
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+330 ; [x start] *65536 + [x size]
mov ecx,100*65536+120 ;290 ; [y start] *65536 + [y size]
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl
mcall
; WINDOW LABEL
mcall 71,1, labelt2
; mov ecx,0x80000000 ; font 1 & color ( 0xF0RRGGBB )
; mov ebx,120*65536+30
; mov edx,file_name ;string
; mov esi,1 ;43
mcall 4,<120,30>,0x80000000,file_name
mov edx,fitext
mov esi,14
mov ebx,10*65536+30
mov ecx,0x10000000
mcall 12,2
xor eax,eax ; function 0 : define and draw window
xor esi,esi
mcall ,<100,330>,<100,120>,0x13eeeeee,,labelt2
mcall 4,<120,30>,0x80000000,file_name
mov edx,fitext
mov esi,14
mov ebx,10*65536+30
mov ecx,0x10000000
@@:
mcall
add ebx,10
add edx,esi
cmp ebx,10*65536+80
jbe @r
mov eax,47
mov edx,120*65536+40
mov esi,ecx
mov ecx, [img_size]
mov ebx,0x800a0000
mcall
add edx,10
mov ecx,[img_width_2]
mcall
add edx,10
mov ecx,[img_high_2]
mcall
add edx,10
mov ecx,[img_resolution_2]
mcall
add edx,10
mov ecx,[Total_Repeat_N]
mcall
add ebx,10
add edx,esi
cmp ebx,10*65536+80
jbe @r
; add edx,10
; mov ecx,[communication_area]
; mov ecx,[ecx+4096]
; mcall
mov esi,ecx
mcall 47,0x800a0000,[img_size],<120,40>
; add edx,10
; mov ecx,[communication_area]
; mov ecx,[ecx+4096+4]
; mcall
add edx,10
mcall ,,[img_width_2]
; add edx,10+10
; mov ecx,[zoom_auto_factor]
; mcall
add edx,10
mcall ,,[img_high_2]
; add edx,10+10
; mov ecx,[scroll_bar_data_vertical.max_area] ;[img_resolution]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_vertical.cur_area] ;[return_code]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_vertical.position]
; mcall
; add edx,10
; xor ecx,ecx
; mov cx,[scroll_bar_data_vertical.size_y]
; mcall
add edx,10
mcall ,,[img_resolution_2]
; add edx,10+10
; mcall 47,0x80000,[OpenDialog_Init]
; add edx,10+10
; mcall 47,0x80000,[OpenDialog_Start]
; add edx,10+10
; mcall 47,0x80000,[OpenDialog_data.com_area]
; add edx,10+10
; mcall 47,0x80000,I_END
; add edx,10+10
; mov ecx,[scroll_bar_data_horizontal.max_area] ;[img_resolution]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_horizontal.cur_area] ;[return_code]
; mcall
; add edx,10
; mov ecx,[scroll_bar_data_horizontal.position]
; mcall
; add edx,10
; xor ecx,ecx
; mov cx,[scroll_bar_data_horizontal.size_x]
; mcall
; add edx,10
; mov ecx,[raw_pointer] ;[deflate_unpack]
; mcall
; add edx,10+10
; mov ebp,test1 ;raw_pointer_2
; mov ecx,[ebp]
; mcall
; add edx,10+10
; mov ebp,size_before_open_dir ;lib_init ;test1 ;raw_pointer_2
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[ebp]
; mcall
; add edx,10
; add ebp,4
; mov ecx,[version_lib_ini]
;; mov ecx,[ecx]
; mcall
; add edx,10
; movzx ecx,word [image_draw_size.x]
; mcall
; add edx,10
; movzx ecx,word [image_draw_size.y]
; mcall
; add edx,10+10
; movzx ecx,word [wa_width]
; mcall
; add edx,10
; movzx ecx,word [wa_high]
; mcall
; add edx,10
; movzx ecx,word [wa_width_1]
; mcall
; add edx,10
; movzx ecx,word [wa_width_2]
; mcall
; add edx,10
; movzx ecx,word [wa_high_1]
; mcall
; add edx,10
; movzx ecx,word [wa_high_2]
; mcall
; add edx,10+10
; mov ecx,[window_width]
; mcall
; add edx,10
; mov ecx,[window_high]
; mcall
; add edx,10
; xor ecx,ecx
; mov cl,[Disposal_Method]
; mcall
; add edx,10
; mov ecx,[soi]
; mcall
add edx,10
mcall ,,[Total_Repeat_N]
; mcall 47,0x80000,[PID2],<200, 5>,0xffffff
; mcall 47,0x800a0000,[error_locate],<140,5>,0x10ffffff
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
mcall 12,2
ret
;---------------------------------------------------------------------
;--------------------------------------------------------------------

View File

@ -4,12 +4,12 @@ k_option:
jnz still
or dword [status],64
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_7],eax
mcall 51,1,thread7 ;,thread_stack_7
mcall 51,1,thread7 ; thread_stack_7
jmp still
;---------------------------------------------------------------------
get_memory_for_tread_stack:
get_memory_for_thread_stack:
mcall 68,12,4096
mov edx,eax
add edx,4096
@ -19,7 +19,7 @@ thread7: ; start of bgrd thread
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID7],eax
mcall 40, 0x27
mcall 40,0x27
mov eax,[slide_show_delay]
mov [slide_show_delay_old],eax
mov eax,[arrows_offset]
@ -31,24 +31,27 @@ thread7: ; start of bgrd thread
xor eax,eax
mov [option_pointer],eax
call .set_pointers
;-----------------------------------------
.red:
call .draw_window
;-----------------------------------------
.still:
mov eax,10 ; wait here for event
mcall
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3 ; button in buffer ?
je .button
cmp eax,6 ; mouse in buffer ?
je .mouse
jmp .still
jmp .still
;---------------------------------------------------------------------
.mouse:
mov ebx,[check1+32]
and ebx,10b
@ -58,10 +61,12 @@ thread7: ; start of bgrd thread
and eax,10b
cmp ebx,eax
je @f ;.still
mov [option_pointer],2
call .set_pointers
call .draw_all_options_values
jmp .still
;---------------------------------------------------------------------
@@:
mov ebx,[check2+32]
and ebx,10b
@ -71,6 +76,7 @@ thread7: ; start of bgrd thread
and eax,10b
cmp ebx,eax
je .still
mov [option_pointer],3
call .set_pointers
call .draw_all_options_values
@ -80,26 +86,37 @@ thread7: ; start of bgrd thread
mcall
cmp ah,27
je .close
cmp ah,13
je .kok
cmp ah,32
je .select_space
cmp ah,56 ;plus
je .select_plus ;.plus_slide_show_delay
cmp ah,43 ;plus
je .select_plus ;.plus_slide_show_delay
cmp ah,61 ;plus
je .select_plus ;.plus_slide_show_delay
cmp ah,54 ;minus
je .select_minus ;.minus_slide_show_delay
cmp ah,45 ;minus
je .select_minus ;.minus_slide_show_delay
cmp ah,95 ;minus
je .select_minus ;.minus_slide_show_delay
cmp ah,178 ;up arrow
je .up_arrow
cmp ah,177 ;down arrow
je .down_arrow
jmp .still
;---------------------------------------------------------------------
.button: ; button
@ -120,6 +137,7 @@ thread7: ; start of bgrd thread
cmp ah,1 ; button id=1 ?
jne .noclose
;-----------------------------------
.close:
mov eax,[slide_show_delay_old]
mov [slide_show_delay],eax
@ -130,12 +148,15 @@ thread7: ; start of bgrd thread
mov eax,[filtering_flag_old]
mov [check2+32],eax
jmp .close_all
;---------------------------------------------------------------------
.close_1:
mov eax,[check2+32]
test eax,10b
jz @f
mov [filtering_flag],1
jmp .redraw_flag
;---------------------------------------------------------------------
@@:
mov [filtering_flag],0
.redraw_flag:
@ -144,15 +165,11 @@ thread7: ; start of bgrd thread
xor dword [status],64
xor eax,eax
mov [PID7],eax
mcall 68,13,[thread_stack_7]
mov eax,-1 ; close this program
mcall
mcall -1 ; close this program
;---------------------------------------------------------------------
.noclose:
.kok:
jmp .close_1
;---------------------------------------------------------------------
.select_plus:
@ -167,11 +184,13 @@ thread7: ; start of bgrd thread
.plus_slide_show_delay:
cmp [option_pointer],0
je @f
mov [option_pointer],0
call .draw_all_options_values
@@:
cmp [slide_show_delay],99990
je .still
add [slide_show_delay],10
call .draw_slide_show_delay
jmp .still
@ -179,11 +198,13 @@ thread7: ; start of bgrd thread
.minus_slide_show_delay:
cmp [option_pointer],0
je @f
mov [option_pointer],0
call .draw_all_options_values
@@:
cmp [slide_show_delay],0
je .still
sub [slide_show_delay],10
call .draw_slide_show_delay
jmp .still
@ -191,11 +212,13 @@ thread7: ; start of bgrd thread
.plus_arrows_offset:
cmp [option_pointer],1
je @f
mov [option_pointer],1
call .draw_all_options_values
@@:
cmp [arrows_offset],100
je .still
inc [arrows_offset]
call .draw_arrows_offset
call calculate_arrows_offset
@ -204,11 +227,13 @@ thread7: ; start of bgrd thread
.minus_arrows_offset:
cmp [option_pointer],1
je @f
mov [option_pointer],1
call .draw_all_options_values
@@:
cmp [arrows_offset],1
je .still
dec [arrows_offset]
call .draw_arrows_offset
call calculate_arrows_offset
@ -217,8 +242,10 @@ thread7: ; start of bgrd thread
.space_check1:
test [check1+32],dword 10b
jnz @f
or [check1+32],dword 10b
jmp .space_check1_1
;---------------------------------------------------------------------
@@:
xor [check1+32],dword 10b
.space_check1_1:
@ -228,8 +255,10 @@ thread7: ; start of bgrd thread
.space_check2:
test [check2+32],dword 10b
jnz @f
or [check2+32],dword 10b
jmp .space_check2_1
;---------------------------------------------------------------------
@@:
xor [check2+32],dword 10b
.space_check2_1:
@ -239,6 +268,7 @@ thread7: ; start of bgrd thread
.down_arrow:
cmp [option_pointer],3
je .still
inc [option_pointer]
.draw_all_points:
call .set_pointers
@ -248,12 +278,14 @@ thread7: ; start of bgrd thread
.up_arrow:
cmp [option_pointer],0
je .still
dec [option_pointer]
jmp .draw_all_points
;---------------------------------------------------------------------
.set_pointers:
cmp [option_pointer],0
jne @f
mov [plus_pointer],thread7.plus_slide_show_delay
mov [minus_pointer],thread7.minus_slide_show_delay
mov [space_pointer],thread7.still
@ -261,6 +293,7 @@ thread7: ; start of bgrd thread
@@:
cmp [option_pointer],1
jne @f
mov [plus_pointer],thread7.plus_arrows_offset
mov [minus_pointer],thread7.minus_arrows_offset
mov [space_pointer],thread7.still
@ -268,6 +301,7 @@ thread7: ; start of bgrd thread
@@:
cmp [option_pointer],2
jne @f
mov [plus_pointer],thread7.still
mov [minus_pointer],thread7.still
mov [space_pointer],thread7.space_check1
@ -288,17 +322,11 @@ thread7: ; start of bgrd thread
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mcall 12,1
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+120 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
xor esi,esi
mcall ,<100,300>,<100,120>,0x13909090,,optiontext
mcall 8,<15,10>,<50,11>,2,0xdddddd
inc edx
mcall ,<77,10>
@ -311,43 +339,21 @@ thread7: ; start of bgrd thread
inc edx
mcall ,<250,40>,<50,20>
;---------------------------------
; mcall 13,<50,45>,<25,12>,0xffffff
; mov ecx,[ch_flag_en]
; mcall 47,0x800a0000,,<72,27>,0x10000000; 0x40000000,0xffffff
; WINDOW LABEL
mcall 71,1, optiontext
; mov eax,4 ; function 4 : write text to window
; mov ebx,46*65536+28 ; [x start] *65536 + [y start]
; mov ecx,0xffffff
; mov edx, sorttext
; mov esi, sorttext.size
; mcall
; mov ebx,135*65536+57
; mov edx, ok_btn
; mov esi, ok_btn.size ;2
mcall 4,<10,35>,0x80ffffff,slide_show_delay_title
mcall ,<17,53>,0x90000000,slide_show_delay_text
mcall ,<10,75>,0x80ffffff,arrows_offset_title
mcall ,<17,93>,0x90000000,slide_show_delay_text
mcall ,<265,57>, ,ok_btn
call .draw_all_options_values
; mcall 47,0x80000,[PID5],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------
;.draw_opt_boxes:
; draw_option_boxes option_boxes_sort,option_boxes_sort_end
; ret
;---------------------------------------------------------------------
.draw_slide_show_delay:
mov edx,0xffffff
cmp [option_pointer],0
jne @f
mov edx,0xffff80
@@:
mcall 13,<29,45>,<50,12>,
@ -358,6 +364,7 @@ thread7: ; start of bgrd thread
mov edx,0xffffff
cmp [option_pointer],1
jne @f
mov edx,0xffff80
@@:
mcall 13,<29,45>,<90,12>,
@ -368,6 +375,7 @@ thread7: ; start of bgrd thread
mov [check1+12],dword 0xffffff
cmp [option_pointer],2
jne @f
mov [check1+12],dword 0xffff80
@@:
push dword check1
@ -378,6 +386,7 @@ thread7: ; start of bgrd thread
mov [check2+12],dword 0xffffff
cmp [option_pointer],3
jne @f
mov [check2+12],dword 0xffff80
@@:
push dword check2

View File

@ -4,136 +4,159 @@ k_sort_directory:
jnz still
or dword [status],16
call get_memory_for_tread_stack
call get_memory_for_thread_stack
mov [thread_stack_5],eax
mcall 51, 1, thread5 ;, thread_stack_5
mcall 51,1,thread5 ; thread_stack_5
jmp still
;---------------------------------------------------------------------
thread5: ; start of bgrd thread
mcall 9, procinfo_threads, -1
mcall 9,procinfo_threads,-1
mov eax,[ebx+30]
mov [PID5],eax
mcall 40, 0x27
mcall 40,0x27
mov eax,[sort_type]
cmp [sort_type],dword 0
jne @f
mov [option_group2],sort0
jmp .thread5
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 2
jne @f
mov [option_group2],sort2
jmp .thread5
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 4
jne @f
mov [option_group2],sort4
jmp .thread5
;---------------------------------------------------------------------
@@:
; cmp [sort_type],dword 6
; jne @f
mov [option_group2],sort6
; jmp .thread5
;@@:
;-----------------------------------
.thread5:
mov [sort_type_old],eax
mov eax,[option_group2]
mov [option_group2_old],eax
;-----------------------------------
.red:
call .draw_window
;-----------------------------------
.still:
mcall 10 ; wait here for event
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3 ; button in buffer ?
cmp eax,3 ; button in buffer ?
je .button
cmp eax,6 ; mouse in buffer ?
je .mouse
jmp .still
jmp .still
;---------------------------------------------------------------------
.mouse:
push dword option_boxes_sort
call [option_box_mouse]
cmp [option_group2],sort0
jne @f
mov [sort_type],dword 0
jmp .still
;---------------------------------------------------------------------
@@:
cmp [option_group2],sort2
jne @f
mov [sort_type],dword 2
jmp .still
;---------------------------------------------------------------------
@@:
cmp [option_group2],sort4
jne @f
mov [sort_type],dword 4
jmp .still
;---------------------------------------------------------------------
@@:
cmp [option_group2],sort6
jne @f
mov [sort_type],dword 6
jmp .still
;---------------------------------------------------------------------
.key:
mcall
cmp ah,27
je .close
cmp ah,13
je .kok
cmp ah,177 ;down
je .fdn
cmp ah,178 ;up
jne .still
cmp [sort_type],0
je .still
sub [sort_type],2
jmp .flagcont
;---------------------------------------------------------------------
.fdn:
cmp [sort_type],6
je .still
add [sort_type],2
.flagcont:
cmp [sort_type],dword 0
jne @f
mov [option_group2],sort0
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 2
jne @f
mov [option_group2],sort2
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 4
jne @f
mov [option_group2],sort4
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [sort_type],dword 6
jne .still ;@f
mov [option_group2],sort6
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
mcall 17 ; get id
cmp ah,1 ; button id=1 ?
jne .noclose
;-------------------------------
.close:
mov eax,[sort_type_old]
mov [sort_type],eax
@ -143,64 +166,39 @@ thread5: ; start of bgrd thread
xor dword [status],16
xor eax,eax
mov [PID5],eax
mcall 68,13,[thread_stack_5]
mov eax,-1 ; close this program
mcall
mcall -1 ; close this program
;---------------------------------------------------------------------
.noclose:
.kok:
mov eax,[load_directory_pointer]
cmp [eax+4],dword 0
je .close_1
call load_directory.copy_dir_path
call load_directory.sort
mov [sort_directory_flag],byte 1
jmp .close_1
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; ******** WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mcall 12,1
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+110 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
mov eax,8
mov ebx,120*65536+40
mov ecx,50*65536+20
mov edx,4
mov esi,0xdddddd
mcall
; WINDOW LABEL
mcall 71,1, labelt5
mov eax,4 ; function 4 : write text to window
mov ebx,46*65536+28 ; [x start] *65536 + [y start]
mov ecx,0xffffff
mov edx, sorttext
mov esi, sorttext.size
mcall
mov ebx,135*65536+57
mov edx, ok_btn
mov esi, ok_btn.size ;2
mov ecx,0
mcall
xor esi,esi
mcall ,<100,300>,<100,110>,0x13909090,,labelt5
mcall 8,<120,40>,<50,20>,4,0xdddddd
mcall 4,<46,28>,0xffffff,sorttext,sorttext.size
xor ecx,ecx
mcall ,<135,57>,,ok_btn,ok_btn.size
call .draw_opt_boxes
; mcall 47,0x80000,[PID5],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------
.draw_opt_boxes:
push dword option_boxes_sort
call [option_box_draw]
ret
;---------------------------------------------------------------------

View File

@ -25,7 +25,7 @@
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*****************************************************************************
; v.1.0 rñ3 14.06.2011
; v.1.0 rñ3 07.07.2011
;******************************************************************************
use32
org 0x0
@ -303,6 +303,42 @@ button: ; button
je slide_show.3 ;still
jmp slide_show
;---------------------------------------------------------------------
get_filter_data:
mov edi,Filter+4
xor eax,eax
mov ecx,10
cld
@@:
mov esi,10
sub esi,ecx
lea esi,[esi+esi*2] ; x 3
shl esi,3 ; x 8
add esi,dword Convert_plugin_0.Assoc
mov esi,[esi]
add esi,4
test esi,esi
jz @f
call .start
dec ecx
jnz @r
@@:
mov [edi],byte 0
mov eax,Filter
sub edi,eax
mov [eax],edi
ret
.start:
@@:
lodsb
stosb
test eax,eax
jnz @r
cmp [esi],ah
jne @r
ret
;---------------------------------------------------------------------
kopen_1:
mov [open_file_flag],0
@ -351,51 +387,6 @@ getappinfo:
mcall
ret
;---------------------------------------------------------------------
; ÓÑÒÀÍÎÂÈÒÜ ÔÎÍ
background:
cmp [soi],0
je .end
mov ecx,[img_width] ; øèðèíà
test ecx,ecx
jz .end
mov edx,[img_high] ; âûñîòà 
test edx,edx
jz .end
mcall 15,1 ; set size
mov esi,ecx
imul esi,edx
lea esi,[esi*3]
; mov ebx,5
mov ecx,[soi]
xor edx,edx
cmp [img_resolution],24
je @f
; mov eax,image_file
push dword image_file
; call [plugin_convert_background]
call [convert_Conv_24b]
mov ecx,[raw_pointer_2]
mcall 15,5 ;15,5 set data
mov ecx,[raw_pointer_2]
mcall 68,13
jmp .set_mode
@@:
mcall 15,5 ; 15,5 set data
.set_mode:
; dec ebx ;tile/stretch
mov ecx,[bgrmode]
mcall 15,4 ; 15,4 set mode
dec ebx ; 15,3 redraw background
mcall
.end:
ret
;---------------------------------------------------------------------
get_window_param:
mcall 9, procinfo, -1
mov eax,[ebx+34]
@ -422,6 +413,7 @@ get_window_param:
; popa
; ret
;---------------------------------------------------------------------
include 'backgrnd.inc'
include 'draw_win.inc'
include 'full_win.inc'
include 'mouse.inc'