update ColorDialog

git-svn-id: svn://kolibrios.org@8288 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2020-12-01 09:58:10 +00:00
parent 02503d625c
commit e34d1445df
8 changed files with 412 additions and 382 deletions

View File

@@ -814,9 +814,9 @@ tree3 tree_list MAX_OBJECT_SIZE,3, tl_key_no_edit+tl_list_box_mode,\
16,16, 0xffffff,0xb0d0ff,0x400040, 5,290,303,140, 16, 4,0, el_focus,\
w_scr_t3,get_point_coords
edit1 edit_box 80, 76, 269, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0
edit2 edit_box 80, 160, 269, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0
edit3 edit_box 80, 244, 269, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0
edit1 edit_box 80, 76, 269, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 32, string1, mouse_dd, 0
edit2 edit_box 80, 160, 269, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 32, string2, mouse_dd, 0
edit3 edit_box 80, 244, 269, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 32, string3, mouse_dd, 0
editboxes_end:
string1 rb 34

View File

@@ -1,21 +1,16 @@
use32
org 0x0
org 0
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
dd 0x1
dd start
dd i_end ;ࠧ<><E0A0A7><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dd mem
dd stacktop
dd 0
dd sys_path
dd 1, start, i_end, mem, stacktop, 0, sys_path
include '../../../../macros.inc'
include '../../../../proc32.inc'
include '../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../KOSfuncs.inc'
include '../../../../load_lib.mac'
include '../../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../../dll.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db '<27><><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DES 05.03.13',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct FileInfoBlock
@@ -57,8 +52,8 @@ macro load_image_file path,buf,size { ;
stdcall mem.Alloc, dword size ;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov [buf],eax
mov eax,70 ;70-<2D> <20><EFBFBD><E3ADAA><EFBFBD><><E0A0A1><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD>
mov [run_file_70.Function], 0
mov eax,SF_FILE
mov [run_file_70.Function], SSF_READ_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
@@ -70,12 +65,12 @@ macro load_image_file path,buf,size { ;
cmp ebx,0xffffffff
je @f
;<3B><><EFBFBD><E0A5A4><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall dword[img_decode], dword[buf],ebx,0
mov dword[image_data],eax
stdcall [img_decode], [buf],ebx,0
mov [image_data],eax
;<3B><EFBFBD>ࠧ㥬 <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> rgb
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
stdcall [img_to_rgb2], [image_data],[buf]
;㤠<><20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall dword[img_destroy], dword[image_data]
stdcall [img_destroy], [image_data]
@@:
}
@@ -88,10 +83,10 @@ start:
mov ebp,lib_0
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
mcall SF_TERMINATE_PROCESS
@@:
mcall 48,3,sc,sizeof.system_colors
mcall 40,0xC0000027
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
mcall SF_SET_EVENTS_MASK,0xC0000027
stdcall [OpenDialog_Init],OpenDialog_data ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall [buf2d_create], buf_0 ;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -115,7 +110,7 @@ red_win:
align 4
still:
mcall 10
mcall SF_WAIT_EVENT
cmp al,1
jz red_win
@@ -132,47 +127,24 @@ still:
align 4
draw_window:
pushad
mcall 12,1
mcall SF_REDRAW,SSF_BEGIN_DRAW
; *** <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 ࠧ <20><><EFBFBD> <20><><EFBFBD><EFBFBD>᪥) ***
xor eax,eax
mov ebx,(20 shl 16)+480
mov ecx,(20 shl 16)+410
mov edx,[sc.work]
or edx,(3 shl 24)+0x10000000+0x20000000
mov edi,caption
int 0x40
mcall SF_CREATE_WINDOW, (20 shl 16)+480, (20 shl 16)+410
; *** ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
mov eax,8
mov ebx,(5 shl 16)+20
mov ecx,(5 shl 16)+20
mov edx,3
mov esi,[sc.work_button]
int 0x40
mov ebx,(30 shl 16)+20
mov edx,4
int 0x40
mov ebx,(55 shl 16)+20
mov edx,5
int 0x40
mov ebx,(85 shl 16)+20
mov edx,6
int 0x40
mov ebx,(110 shl 16)+20
mov edx,7
int 0x40
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (5 shl 16)+20, 3
mcall ,(30 shl 16)+20,,4
mcall ,(55 shl 16)+20,,5
mcall ,(85 shl 16)+20,,6
mcall ,(110 shl 16)+20,,7
; *** <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
mov eax,7
mov ebx,[image_data_toolbar]
mov ecx,(16 shl 16)+16
mov edx,(7 shl 16)+7 ;icon new
int 0x40
mcall SF_PUT_IMAGE, [image_data_toolbar], (16 shl 16)+16, (7 shl 16)+7 ;icon new
add ebx,IMAGE_TOOLBAR_ICON_SIZE
add edx,(25 shl 16) ;icon open
@@ -193,13 +165,13 @@ pushad
; *** <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
stdcall [buf2d_draw], buf_0
mcall 12,2
mcall SF_REDRAW,SSF_END_DRAW
popad
ret
align 4
key:
mcall 2
mcall SF_GET_KEY
stdcall [edit_box_key], dword edit1
jmp still
@@ -210,7 +182,7 @@ mouse:
align 4
button:
mcall 17
mcall SF_GET_BUTTON
cmp ah,3
jne @f
call but_new_file
@@ -238,7 +210,7 @@ button:
stdcall [buf2d_delete],buf_1 ;㤠<><20><><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.Free,[image_data_toolbar]
stdcall mem.Free,[open_file]
mcall -1
mcall SF_TERMINATE_PROCESS
align 4
@@ -261,8 +233,8 @@ but_open_file:
je .end_open_file
;<3B><><EFBFBD> <20><><EFBFBD> 㤠筮<E3A4A0> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov eax,70 ;70-<2D> <20><EFBFBD><E3ADAA><EFBFBD><><E0A0A1><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD>
mov [run_file_70.Function], 0
mov eax,SF_FILE
mov [run_file_70.Function], SSF_READ_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], max_open_file_size
@@ -275,9 +247,9 @@ but_open_file:
je .end_open_file
mov [open_file_size],ebx
add ebx,dword[open_file]
add ebx,[open_file]
mov byte[ebx],0 ;<3B><> <20><><EFBFBD><20>᫨ ࠭<><E0A0AD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9><EFBFBD>
mcall 71,1,openfile_path
mcall SF_SET_CAPTION,1,openfile_path
call draw_file
.end_open_file:
@@ -292,7 +264,7 @@ pushad
je .open_file
mov eax,[open_file]
mov ebx,3
mov edx,dword[open_file_size]
mov edx,[open_file_size]
.cycle_0:
mov edi,txt_buf
mov esi,eax
@@ -319,7 +291,7 @@ pushad
jl @f
add eax,56
add ebx,10
cmp ebx,dword[buf_0.h]
cmp ebx,[buf_0.h]
jl .cycle_0
jmp @f
.open_file:
@@ -339,8 +311,8 @@ but_save_file:
je .end_save_file
;<3B><><EFBFBD> <20><><EFBFBD> 㤠筮<E3A4A0> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov eax,70 ;70-<2D> <20><EFBFBD><E3ADAA><EFBFBD><><E0A0A1><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD>
mov [run_file_70.Function], 2
mov eax,SF_FILE
mov [run_file_70.Function], SSF_CREATE_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov ebx, dword[open_file]
@@ -419,46 +391,23 @@ db 'ASM',0
db 0
head_f_i:
head_f_l db '<27><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><EFBFBD><E8A8A1>',0
system_dir_0 db '/sys/lib/'
lib_name_0 db 'proc_lib.obj',0
err_message_found_lib_0 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'proc_lib.obj',39,0
err_message_import_0 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'proc_lib.obj',39,0
system_dir_1 db '/sys/lib/'
lib_name_1 db 'libimg.obj',0
err_message_found_lib_1 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'libimg.obj',39,0
err_message_import_1 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'libimg.obj',39,0
system_dir_2 db '/sys/lib/'
lib_name_2 db 'buf2d.obj',0
err_msg_found_lib_2 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'buf2d.obj',39,0
err_msg_import_2 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'buf2d',39,0
system_dir_3 db '/sys/lib/'
lib_name_3 db 'crypt_des.obj',0
err_msg_found_lib_3 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'crypt_des.obj',39,0
err_msg_import_3 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'crypt_des',39,0
system_dir_4 db '/sys/lib/'
lib_name_4 db 'box_lib.obj',0
err_msg_found_lib_4 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'box_lib.obj',39,0
err_msg_import_4 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',39,'box_lib',39,0
l_libs_start:
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i
lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\
err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
lib_3 l_libs lib_name_3, sys_path, library_path, system_dir_3,\
err_msg_found_lib_3,head_f_l,import_des,err_msg_import_3,head_f_i
lib_4 l_libs lib_name_4, sys_path, library_path, system_dir_4,\
err_msg_found_lib_4,head_f_l,import_box_lib,err_msg_import_4,head_f_i
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_proclib
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_libimg
lib_2 l_libs lib_name_2, library_path, system_dir_2, import_buf2d
lib_3 l_libs lib_name_3, library_path, system_dir_3, import_des
lib_4 l_libs lib_name_4, library_path, system_dir_4, import_box_lib
l_libs_end:
align 4
@@ -509,7 +458,7 @@ import_libimg:
aimg_draw db 'img_draw',0
align 4
proclib_import: ;<3B><><EFBFBD><EFBFBD><E1A0AD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権
import_proclib: ;<3B><><EFBFBD><EFBFBD><E1A0AD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権
OpenDialog_Init dd aOpenDialog_Init
OpenDialog_Start dd aOpenDialog_Start
dd 0,0
@@ -592,10 +541,6 @@ import_box_lib:
;sz_edit_box_set_text db 'edit_box_set_text',0
mouse_dd dd 0x0
sc system_colors
align 16
procinfo process_information
align 4
buf_0: dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
@@ -623,12 +568,14 @@ txt_buf rb 80
txt_key db 'des_0123',0
mem_key rb 120
align 16
i_end:
procinfo process_information
sc system_colors
rb 2048
stacktop:
sys_path rb 1024
file_name:
rb 1024 ;4096
file_name rb 1024 ;4096
library_path rb 1024
plugin_path rb 4096
openfile_path rb 4096

View File

@@ -37,8 +37,9 @@ use32 ;
dd 0x0 ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20> <20><><EFBFBD><E0A0AC><EFBFBD>.
dd way_of_ini
include '../../../../macros.inc'
include '../../../../KOSfuncs.inc'
include '../../../../load_lib.mac'
include '../../box_lib/trunk/box_lib.mac'
include '../../box_lib/load_lib.mac'
@use_library ;use load lib macros
start:
;universal load library/librarys
@@ -136,10 +137,8 @@ draw_window: ;
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;DATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
l_libs_start:
library01 l_libs library_name, way_of_ini, library_path, system_path, err_message_found_lib, head_f_l, font_import, err_message_import, head_f_i
library02 l_libs library_name1, way_of_ini, library_path, system_path1, err_message_found_lib1, head_f_l, import_box_lib, err_message_import1, head_f_i
library01 l_libs library_name, library_path, system_path, font_import
library02 l_libs library_name1, library_path, system_path1, import_box_lib
end_l_libs:
;
@@ -149,14 +148,6 @@ library_name db 'fonts_lib.obj',0
system_path1 db '/sys/lib/'
library_name1 db 'box_lib.obj',0
err_message_found_lib db 'Sorry I cannot load library fonts_lib.obj',0
err_message_found_lib1 db 'Sorry I cannot load library box_lib.obj',0
head_f_i:
head_f_l db 'System error',0
err_message_import db 'Error on load import library fonts_lib.obj',0
err_message_import1 db 'Error on load import library box_lib.obj',0
align 4
import_box_lib:

View File

@@ -4,6 +4,4 @@ if not exist bin\font8x9.bmp @copy ..\..\..\fs\kfar\trunk\font8x9.bmp bin\font
@copy *.ini bin\*.ini
@fasm.exe -m 16384 nu_pogod.asm bin\nu_pogod.kex
@kpack bin\nu_pogod.kex
if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\buf2d\trunk\buf2d.asm bin\buf2d.obj
@kpack bin\buf2d.obj
pause

View File

@@ -1,21 +1,16 @@
use32
org 0x0
org 0
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
dd 0x1
dd start
dd i_end ;ࠧ<><E0A0A7><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dd mem
dd stacktop
dd 0x0
dd sys_path
dd 1, start, i_end, mem, stacktop, 0, sys_path
include '../../../macros.inc'
include '../../../proc32.inc'
include '../../../develop/libraries/box_lib/load_lib.mac'
include '../../../KOSfuncs.inc'
include '../../../load_lib.mac'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢ box_lib
include '../../../dll.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
;䫠<><E4ABA0>, <20><><EFBFBD> <20>㭪樨 <20><><EFBFBD><E0A5A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BUF2D_OPT_CROP_TOP equ 1 ;<3B><><EFBFBD><E0A5A7><><E1A2A5><EFBFBD>
@@ -129,16 +124,16 @@ macro load_image_file path,buf,size { ;
db 0
@@:
;32 - <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><>
copy_path .path_str,[32],file_name,0x0
copy_path .path_str,[32],file_name,0
else
copy_path path,[32],file_name,0x0 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
copy_path path,[32],file_name,0 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
end if
stdcall mem.Alloc, dword size ;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov [buf],eax
mov eax,70 ;70-<2D> <20><EFBFBD><E3ADAA><EFBFBD><><E0A0A1><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD>
mov [run_file_70.Function], 0
mov eax,SF_FILE
mov [run_file_70.Function], SSF_READ_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
@@ -150,12 +145,12 @@ macro load_image_file path,buf,size { ;
cmp ebx,0xffffffff
je @f
;<3B><><EFBFBD><E0A5A4><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall dword[img_decode], dword[buf],ebx,0
mov dword[image_data],eax
stdcall [img_decode], [buf],ebx,0
mov [image_data],eax
;<3B><EFBFBD>ࠧ㥬 <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> rgb
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
stdcall [img_to_rgb2], [image_data],[buf]
;㤠<><20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall dword[img_destroy], dword[image_data]
stdcall [img_destroy], [image_data]
@@:
}
@@ -205,10 +200,10 @@ rand_next:
;x(k+1) = (a*x(k)+c) mod m
; a=22695477, c=1, m=2^32
push eax
mov eax,dword[rand_x]
mov eax,[rand_x]
imul eax,22695477
inc eax
mov dword[rand_x],eax
mov [rand_x],eax
pop eax
ret
@@ -218,13 +213,13 @@ pop eax
;<3B><><><E4AEAD><EFBFBD><EFBFBD><EFBFBD><><E6A2A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><ECACAD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
proc CreateTrapharetBuffer uses eax edi, buf:dword, img_data:dword
mov edi,dword[buf]
mov edi,[buf]
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov buf2d_size_lt,0
mov eax,dword[displ_w]
mov eax,[displ_w]
mov buf2d_w,eax
mov eax,dword[displ_h]
mov eax,[displ_h]
mov buf2d_h,eax
mov buf2d_color,0xffffff
mov buf2d_bits,24
@@ -438,7 +433,7 @@ CountEggsInc: ;㢥
and ax,0xf ;<3B><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16 <20><><EFBFBD><><E3ACA5><EFBFBD> <20><EFBFBD>
cmp ax,0
jne @f
mov edi,dword[game_delay_min] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov edi,[game_delay_min] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
cmp dword[game_spd],edi
jle @f
dec dword[game_spd]
@@ -600,8 +595,8 @@ proc InitGame, b:dword ;
mov dword[game_spd],eax ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
.end_init:
mcall 26,9
mov dword[rand_x],eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 1-<2D> <20><><EFBFBD><EFBFBD><E7A0A9><EFBFBD> <20><>
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov [rand_x],eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 1-<2D> <20><><EFBFBD><EFBFBD><E7A0A9><EFBFBD> <20><>
pop ebx eax
ret
@@ -610,15 +605,15 @@ endp
align 4
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
pushad
mov edx,dword[displ_bytes]
mov edx,[displ_bytes]
mov ecx,edx
imul ecx,dword[count]
mov eax,dword[f_name]
imul ecx,[count]
mov eax,[f_name]
load_image_file eax,image_data_gray,ecx
mov edx,dword[displ_bytes]
mov edx,[displ_bytes]
mov eax,[image_data_gray]
mov edi,dword[buf_start]
mov ecx,dword[count]
mov edi,[buf_start]
mov ecx,[count]
cld
@@: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall CreateTrapharetBuffer,edi,eax
@@ -636,8 +631,8 @@ align 4
user_is_select:
push eax ecx esi edi
stdcall [tl_node_get_data], tree1
cmp eax,0 ;<3B><20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
je @f
or eax,eax ;<3B><20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
jz @f
mov esi,eax
mov edi,ini_name
mov ecx,FILE_NAME_MAX
@@ -659,39 +654,39 @@ align 4
InitAll:
pushad
;ࠡ<><E0A0A1><EFBFBD> <20><><E4A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
copy_path ini_name,sys_path,file_name,0x0
stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
mov dword[displ_w],eax
stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
mov dword[displ_h],eax
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file
copy_path ini_name,sys_path,file_name,0
stdcall [ini_get_int],file_name,ini_sec_files,key_displ_w,210
mov [displ_w],eax
stdcall [ini_get_int],file_name,ini_sec_files,key_displ_h,140
mov [displ_h],eax
stdcall [ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file
stdcall [ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
stdcall [ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file
stdcall [ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file
stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2
mov dword[offs_shadow_x],eax
stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2
mov dword[offs_shadow_y],eax
stdcall [ini_get_int],file_name,ini_sec_files,key_shadow_x,2
mov [offs_shadow_x],eax
stdcall [ini_get_int],file_name,ini_sec_files,key_shadow_y,2
mov [offs_shadow_y],eax
;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E1AAAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_a,65
mov dword[game_delay_a],eax
stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_b,35
mov dword[game_delay_b],eax
stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_min,15
mov dword[game_delay_min],eax
stdcall [ini_get_int],file_name,ini_sec_game,key_delay_a,65
mov [game_delay_a],eax
stdcall [ini_get_int],file_name,ini_sec_game,key_delay_b,35
mov [game_delay_b],eax
stdcall [ini_get_int],file_name,ini_sec_game,key_delay_min,15
mov [game_delay_min],eax
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff
mov dword[color_fon],eax
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0
mov dword[color_shadows],eax
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
mov dword[color_wolf],eax
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080
mov dword[color_egg],eax
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0
mov dword[color_chick],eax
stdcall [ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff
mov [color_fon],eax
stdcall [ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0
mov [color_shadows],eax
stdcall [ini_get_color],file_name,ini_sec_color,key_color_unit,0
mov [color_wolf],eax
stdcall [ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080
mov [color_egg],eax
stdcall [ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0
mov [color_chick],eax
mov ebx,color_decorat
mov byte[key_color_decorat.ind],'0'
@@ -699,17 +694,17 @@ InitAll:
cld
@@:
push ecx ;<3B><EFBFBD><E3ADAA><EFBFBD> ini_get_color <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A5A3><EFBFBD><EFBFBD> ecx
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080
stdcall [ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080
pop ecx
mov dword[ebx],eax
mov [ebx],eax
add ebx,4
inc byte[key_color_decorat.ind]
loop @b
mov edx,dword[displ_w]
imul edx,dword[displ_h]
mov edx,[displ_w]
imul edx,[displ_h]
lea edx,[edx+edx*2]
mov dword[displ_bytes],edx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
mov [displ_bytes],edx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> 9 <20><><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
@@ -761,11 +756,11 @@ start:
jnz @f
jmp .lib
@@:
mcall -1 ;exit not correct
mcall SF_TERMINATE_PROCESS
.lib:
mcall 40,0x27
mcall 48,3,sc,sizeof.system_colors ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD><><E6A2A5>
mcall SF_SET_EVENTS_MASK,0x27
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
;******************************************************************************
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2AEA2> ᯨ᪠ <20><><EFBFBD>
@@ -780,9 +775,9 @@ start:
m2m dword[tree1.data_img_sys],buf2d_data
;ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
copy_path ini_m_name,sys_path,file_name,0x0
copy_path ini_m_name,sys_path,file_name,0
stdcall dword[ini_get_int],file_name,ini_sec_files,key_count,1
stdcall [ini_get_int],file_name,ini_sec_files,key_count,1
mov ecx,eax
mov dl,'0'
cld
@@ -790,14 +785,14 @@ start:
mov byte[key_game_ind],dl
inc dl
push ecx edx
stdcall dword[ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file
stdcall dword[tl_node_add], tree1, 0, txt_tile_type_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
stdcall dword[tl_cur_next], tree1 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
stdcall [ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file
stdcall [tl_node_add], tree1, 0, txt_tile_type_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
stdcall [tl_cur_next], tree1 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
pop edx ecx
loop @b
stdcall dword[tl_cur_beg], tree1 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
stdcall [tl_cur_beg], tree1 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov [last_time],eax
@@ -812,21 +807,21 @@ still: ;
cmp byte[game_select_mode],0
jne .select_mode
mcall 26,9 ;<3B><><20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><EFBFBD>
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov ebx,[last_time]
add ebx,dword[game_spd] ;delay
add ebx,[game_spd] ;delay
sub ebx,eax
cmp ebx,dword[game_spd] ;delay
cmp ebx,[game_spd] ;delay
ja it_is_time_now
test ebx,ebx
jz it_is_time_now
mcall 23
cmp eax,0
je it_is_time_now
mcall SF_WAIT_EVENT_TIMEOUT
or eax,eax
jz it_is_time_now
jmp @f
.select_mode:
mcall 10
mcall SF_WAIT_EVENT
@@:
cmp al,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
@@ -850,7 +845,7 @@ mouse:
align 4
it_is_time_now:
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov [last_time],eax
;cmp byte[game_select_mode],0
@@ -864,7 +859,7 @@ it_is_time_now:
align 4
key:
push eax ebx
mcall 2
mcall SF_GET_KEY
cmp byte[game_select_mode],0
je @f
@@ -914,7 +909,7 @@ key:
align 4
draw_window:
pushad
mcall 12,1
mcall SF_REDRAW,SSF_BEGIN_DRAW
xor eax,eax
mov ebx,20*65536+480
@@ -924,28 +919,28 @@ draw_window:
or edx,0x73000000
mov edi,hed
mcall ;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mcall 9,procinfo,-1
mcall SF_THREAD_INFO,procinfo,-1
cmp byte[game_select_mode],0
jne .select_mode
mov edi,buf_displ
mov eax,dword[procinfo.client_box.width]
cmp eax,dword[displ_w]
mov eax,[procinfo.client_box.width]
cmp eax,[displ_w]
jle @f
sub eax,dword[displ_w]
sub eax,[displ_w]
shr eax,1
mov buf2d_l,ax ;<3B><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><><E6A5AD><EFBFBD> <20><><EFBFBD><EFBFBD>
@@:
call draw_display
mov eax,13 ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8>
mov eax,SF_DRAW_RECT
mov edx,[sc.work]
xor esi,esi
mov si,buf2d_l
add esi,dword[displ_w]
mov ebx,dword[procinfo.client_box.width]
add esi,[displ_w]
mov ebx,[procinfo.client_box.width]
inc ebx
cmp esi,ebx
jge @f
@@ -953,41 +948,37 @@ draw_window:
rol ebx,16
mov bx,si
rol ebx,16
mov ecx,dword[procinfo.client_box.height]
mov ecx,[procinfo.client_box.height]
inc ecx
int 0x40 ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
jmp .draw_s
@@:
mov esi,dword[procinfo.client_box.width] ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov esi,[procinfo.client_box.width] ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
inc esi
.draw_s:
; *** <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
push esi
mov eax,8
xor ebx,ebx
mov bx,buf2d_l
movzx ebx,buf2d_l
add ebx,buf2d_w
add ebx,BUT1_L
shl ebx,16
mov bx,BUT1_W
mov ecx,BUT1_T*65536+BUT1_H
mov edx,5
;or edx,0x40000000
mov esi,dword[color_but_sm]
int 0x40
mov esi,[color_but_sm]
mcall SF_DEFINE_BUTTON,,,5
inc edx
add ecx,BUT1_NEXT_TOP
int 0x40
pop esi
mov bx,BUT1_H
add ebx,3*65536;+3
mov ecx,dword[color_but_te]
mov bx,BUT1_H-4
add ebx,8 shl 16
mov ecx,[color_but_te]
or ecx,0x80000000
mov edx,txt_game_a
mcall 4
mcall SF_DRAW_TEXT
ror ebx,16
add ebx,BUT1_NEXT_TOP
@@ -996,13 +987,13 @@ pop esi
int 0x40
; *** <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC>஢ ***
mov eax,13 ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8>
mov eax,SF_DRAW_RECT
mov edx,[sc.work]
mov ebx,esi
mov ecx,dword[procinfo.client_box.height]
mov ecx,[procinfo.client_box.height]
inc ecx
mov esi,dword[displ_h]
mov esi,[displ_h]
cmp esi,ebx
jge @f
sub ecx,esi
@@ -1014,18 +1005,18 @@ pop esi
xor ebx,ebx
mov bx,buf2d_l
mov ecx,dword[displ_h]
mov ecx,[displ_h]
int 0x40 ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
jmp @f
.select_mode:
stdcall dword[tl_draw],dword tree1
stdcall [tl_draw], tree1
mov edi,tree1
add edi,tl_offs_box
stdcall draw_rect_border, procinfo.client_box, edi
@@:
mcall 12,2
mcall SF_REDRAW,SSF_END_DRAW
popad
ret
@@ -1035,15 +1026,15 @@ pop esi
align 4
proc draw_rect_border, client_rect:dword, user_box:dword
pushad
mov esi,dword[user_box]
mov esi,[user_box]
cmp esi,0
je @f
mov edi,dword[client_rect]
mov edi,[client_rect]
mov ebx,dword[edi+8] ;+8 = width
inc bx
mov ecx,dword[esi+4] ;+4 = top
mov edx,[sc.work]
mcall 13 ;top
mcall SF_DRAW_RECT ;top
mov eax,dword[esi+4] ;+4 = top
add eax,dword[esi+12] ;+12 = height
@@ -1054,7 +1045,7 @@ proc draw_rect_border, client_rect:dword, user_box:dword
mov cx,word[edi+12] ;+12 = bottom
inc cx
sub cx,ax
mcall 13 ;bottom
mcall SF_DRAW_RECT ;bottom
.no_bottom:
mov ebx,dword[esi] ;+0 left
@@ -1062,7 +1053,7 @@ proc draw_rect_border, client_rect:dword, user_box:dword
shl ecx,16
mov cx,word[esi+12] ;+12 = height
inc cx
mcall 13 ;left
mcall SF_DRAW_RECT ;left
mov eax,dword[esi] ;+0 left
add eax,dword[esi+8] ;+8 = width
@@ -1071,7 +1062,7 @@ proc draw_rect_border, client_rect:dword, user_box:dword
mov bx,word[edi+8] ;+8 = right
sub bx,ax
inc bx
mcall 13 ;right
mcall SF_DRAW_RECT ;right
@@:
popad
ret
@@ -1080,13 +1071,13 @@ endp
align 4
draw_display:
stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;<3B><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall mem_copy, [buf_fon],[buf_displ],[displ_bytes] ;<3B><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call DrawZaac ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
call DrawWolf ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
call DrawEggs ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD>
push eax
mov eax,dword[displ_w]
mov eax,[displ_w]
shr eax,1
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;<3B><><EFBFBD><20><><EFBFBD> <20><>
pop eax
@@ -1095,7 +1086,7 @@ pop eax
align 4
button:
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall SF_GET_BUTTON
cmp ah,5
jne @f
@@ -1142,73 +1133,65 @@ button:
mov dword[tree1.data_img_sys],0 ;<3B><><EFBFBD>⨬ 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
stdcall dword[tl_data_clear], tree1
mcall -1 ;<3B><><20><> <20>ணࠬ<E0AEA3><E0A0AC>
head_f_i:
head_f_l db '<27><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><EFBFBD><E8A8A1>',0
mcall SF_TERMINATE_PROCESS
system_dir0 db '/sys/lib/'
lib0_name db 'buf2d.obj',0
err_message_found_lib0 db '<27><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d.obj',0
err_message_import0 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d.obj',0
system_dir1 db '/sys/lib/'
lib1_name db 'libimg.obj',0
err_message_found_lib1 db '<27><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libimg.obj',0
err_message_import1 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libimg.obj',0
system_dir2 db '/sys/lib/'
lib2_name db 'libini.obj',0
err_message_found_lib2 db '<27><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libini.obj',0
err_message_import2 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libini.obj',0
system_dir3 db '/sys/lib/'
lib3_name db 'box_lib.obj',0
err_message_found_lib3 db '<27><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> box_lib.obj',0
err_message_import3 db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> box_lib.obj',0
;library structures
l_libs_start:
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
lib1 l_libs lib1_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
lib2 l_libs lib2_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, import_libini, err_message_import2, head_f_i
lib3 l_libs lib3_name, sys_path, file_name, system_dir3, err_message_found_lib3, head_f_l, import_box_lib, err_message_import3, head_f_i
lib0 l_libs lib0_name, file_name, system_dir0, import_buf2d_lib
lib1 l_libs lib1_name, file_name, system_dir1, import_libimg
lib2 l_libs lib2_name, file_name, system_dir2, import_libini
lib3 l_libs lib3_name, file_name, system_dir3, import_box_lib
load_lib_end:
align 4
proc mem_copy uses ecx esi edi, source:dword, destination:dword, len:dword
cld
mov esi, dword[source]
mov edi, dword[destination]
mov ecx, dword[len]
mov esi, [source]
mov edi, [destination]
mov ecx, [len]
rep movsb
ret
endp
;input:
; eax - <20><>
; edi - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>
align 4
convert_to_str:
pushad
mov dword[edi+1],0
cld
lea esi,[edi+8] ;8 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1
call .str
popad
ret
align 4
.str:
mov ecx,0x0a ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A5A3><EFBFBD><EFBFBD><EFBFBD> ebx,eax,ecx,edx <20><EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD> eax - <20><>
;<3B><><EFBFBD><EFBFBD><E0A5A2> <20><><20> ASCII <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ecx=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5> edi <20><><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0>, <20><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
cmp eax,ecx ;<3B><EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><20> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20> ecx <20><> <20><><EFBFBD><E0A5A9> <20><> @@-1 <20>.<2E>. <20><> pop eax
mov ecx,10
cmp eax,ecx
jb @f
xor edx,edx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx
div ecx ;ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><20> edx
push edx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>
call .str;<3B><><EFBFBD><E0A5A9> <20><><><> <20>.<2E>. <20><EFBFBD><EFBFBD><EFBFBD><><> <20><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> <20> eax <20><> <20><EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20> ecx
xor edx,edx
div ecx
push edx
;dec edi ;ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
call .str
pop eax
@@: ;cmp al,10 ;<3B><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><E7A5AD> <20> al 祬 10 (<28><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5> 10 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD>))
or al,0x30 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD>
stosb ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E0A5A3><EFBFBD><EFBFBD><EFBFBD> al <20> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> es:edi
ret ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20>.<2E>. <20><><EFBFBD><EFBFBD> <20> <20><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><EFBFBD><EBA7AE><EFBFBD> <20><> <20>⮫쪮 ࠧ <20><> <20> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD>
@@:
cmp edi,esi
jge @f
or al,0x30
stosb
mov byte[edi],0 ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2A0A2> 0, <20><><EFBFBD>-<2D><> <20><> <20><EFBFBD><EBABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
@@:
ret
last_time dd 0
@@ -1216,7 +1199,7 @@ image_data dd 0 ;
image_data_gray dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A5AC><EFBFBD><20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><20> <20><><EFBFBD><E0ACA0> 24-bit, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
run_file_70 FileInfoBlock
hed db 'Nu pogodi 10.11.15',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
hed db 'Nu pogodi 10.12.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
sc system_colors ;<3B><><EFBFBD><EFBFBD><E2A5AC><EFBFBD><><E6A2A5>
count_of_dir_list_files equ 10

View File

@@ -68,18 +68,12 @@
; Free area ; +68
;---------------------------------------------------------------------
use32
org 0x0
org 0
db 'MENUET01'
dd 0x01
dd START
dd IM_END
dd I_END
dd stacktop
dd param
dd path
dd 1, START, IM_END, I_END, stacktop, param, path
;---------------------------------------------------------------------
include '../../macros.inc'
include '../../proc32.inc'
include '../../KOSfuncs.inc'
include '../../load_lib.mac'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
@@ -105,25 +99,25 @@ w_size_y = 350
c_start_x = t_start_x + p_size_y + 10
c_start_y = 10
c_size_x = 40
c_size_x = 27
c_size_y = 20
ed_size_x = 53
;---------------------------------------------------------------------
x_minimal_size equ 350
y_minimal_size equ 250
;---------------------------------------------------------------------
START:
mcall 68,11
mcall 66,1,1
mcall 40,0x27
; mcall 40,0x7
call get_communication_area
call get_active_pocess
call clear_colors_history
mcall SF_SYS_MISC,SSF_HEAP_INIT
;mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1
mcall SF_SET_EVENTS_MASK,0x27
;--------------------------------------
load_libraries l_libs_start,end_l_libs
test eax,eax
jnz button.exit_2
;--------------------------------------
call get_communication_area
call get_active_pocess
call clear_colors_history
xor eax,eax
mov al,p_size_x
mov [palette_SIZE_X],eax
@@ -140,7 +134,7 @@ load_libraries l_libs_start,end_l_libs
imul ecx,[palette_SIZE_X]
lea ecx,[ecx*3]
inc ecx ;reserve for stosd
mcall 68,12
mcall SF_SYS_MISC,SSF_MEM_ALLOC
mov [palette_area],eax
;--------------------------------------
call create_palette
@@ -149,7 +143,7 @@ load_libraries l_libs_start,end_l_libs
imul ecx,[tone_SIZE_X]
lea ecx,[ecx*3]
inc ecx ;reserve for stosd
mcall 68,12
mcall SF_SYS_MISC,SSF_MEM_ALLOC
mov [tone_area],eax
;--------------------------------------
call create_tone
@@ -160,7 +154,7 @@ red:
;---------------------------------------------------------------------
align 4
still:
mcall 10
mcall SF_WAIT_EVENT
cmp eax,1
je red
@@ -178,7 +172,7 @@ still:
;---------------------------------------------------------------------
align 4
button:
mcall 17
mcall SF_GET_BUTTON
cmp ah, 2
je palette_button
@@ -236,40 +230,39 @@ align 4
mov ebx,[communication_area]
mov ecx,procinfo
; mov eax,[window_x]
mov eax,[ecx+34]
mov eax,[ecx+process_information.box.left]
shl eax,16
add eax,[ecx+42]
add eax,[ecx+process_information.box.width]
mov [ebx+4],eax
; mov eax,[window_y]
mov eax,[ecx+38]
mov eax,[ecx+process_information.box.top]
shl eax,16
add eax,[ecx+46]
add eax,[ecx+process_information.box.height]
mov [ebx+8],eax
;--------------------------------------
align 4
.exit_2:
mcall -1
mcall SF_TERMINATE_PROCESS
;---------------------------------------------------------------------
align 4
get_window_param:
mcall 9,procinfo,-1
mov eax,[ebx+66]
mcall SF_THREAD_INFO,procinfo,-1
mov eax,[ebx+process_information.client_box.height]
inc eax
; mov [window_high],eax
mov eax,[ebx+62]
mov eax,[ebx+process_information.client_box.width]
inc eax
; mov [window_width],eax
mov eax,[ebx+70]
mov eax,dword[ebx+process_information.wnd_state]
; mov [window_status],eax
ret
;---------------------------------------------------------------------
align 4
get_communication_area:
xor eax,eax
mov al,[param]
movzx eax,byte[param]
test eax,eax
jz @f
mcall 68,22,param,,0x01
mcall SF_SYS_MISC,SSF_MEM_OPEN,param,,0x01
mov [communication_area],eax
; movzx ebx,word [eax+2]
; mov [color_dialog_type],ebx
@@ -289,9 +282,9 @@ get_communication_area:
;---------------------------------------------------------------------
align 4
get_active_pocess:
mcall 9,procinfo,-1
mov ecx,[ebx+30] ; PID
mcall 18,21
mcall SF_THREAD_INFO,procinfo,-1
mov ecx,[ebx+process_information.PID]
mcall SF_SYSTEM,SSF_GET_THREAD_SLOT
mov [active_process],eax ; WINDOW SLOT
mov ebx,[communication_area]
test ebx,ebx
@@ -334,7 +327,7 @@ scroll_colors_history:
;---------------------------------------------------------------------
align 4
palette_button:
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
and eax,0xffff
sub eax,p_start_y
imul eax,p_size_x
@@ -351,7 +344,7 @@ palette_button:
;---------------------------------------------------------------------
align 4
tone_button:
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
mov ebx,eax
and eax,0xffff
shr ebx,16
@@ -382,12 +375,18 @@ align 4
prepare_scrollbars_position_from_color:
; in: eax = selected color
movzx ebx,al
inc bl
neg bl
mov [scroll_bar_data_blue.position],ebx
shr eax,8
mov bl,al
inc bl
neg bl
mov [scroll_bar_data_green.position],ebx
shr eax,8
mov bl,al
inc bl
neg bl
mov [scroll_bar_data_red.position],ebx
ret
;---------------------------------------------------------------------
@@ -395,18 +394,35 @@ align 4
prepare_color_from_scrollbars_position:
; out: ebx = selected color
mov eax,[scroll_bar_data_red.position]
inc al
neg al
movzx ebx,al
shl ebx,8
mov eax,[scroll_bar_data_green.position]
inc al
neg al
mov bl,al
shl ebx,8
mov eax,[scroll_bar_data_blue.position]
inc al
neg al
mov bl,al
ret
;---------------------------------------------------------------------
align 4
key:
mcall 2
mcall SF_GET_KEY
test word[edit1.flags],10b ;ed_focus
je still
stdcall [edit_box_key], edit1
stdcall conv_str_to_int, [edit1.text]
cmp [selected_color],eax
je still
mov [selected_color],eax
call prepare_scrollbars_position_from_color
;call draw_selected_color
mcall SF_DRAW_RECT,<c_start_x,c_size_x>,<c_start_y,c_size_y>,[selected_color]
call draw_scrollbars
jmp still
;---------------------------------------------------------------------
align 4
@@ -420,27 +436,25 @@ mouse:
;--------------------------------------
align 4
.red:
push dword scroll_bar_data_red
call [scrollbar_ver_mouse]
stdcall [scrollbar_ver_mouse], scroll_bar_data_red
cmp [scroll_bar_data_red.delta2],0
jne @f
;--------------------------------------
align 4
.green:
push dword scroll_bar_data_green
call [scrollbar_ver_mouse]
stdcall [scrollbar_ver_mouse], scroll_bar_data_green
cmp [scroll_bar_data_green.delta2],0
jne @f
;--------------------------------------
align 4
.blue:
push dword scroll_bar_data_blue
call [scrollbar_ver_mouse]
; cmp [scroll_bar_data_blue.delta2],0
; jne @f
stdcall [scrollbar_ver_mouse], scroll_bar_data_blue
cmp [scroll_bar_data_blue.delta2],0
jne @f
;--------------------------------------
align 4
@@:
stdcall [edit_box_mouse], edit1
call prepare_color_from_scrollbars_position
cmp [selected_color],ebx
je still
@@ -450,11 +464,11 @@ align 4
;---------------------------------------------------------------------
align 4
draw_selected_color:
mcall 13,<c_start_x,c_size_x>,<c_start_y,c_size_y>,[selected_color]
mcall 13,<c_start_x+c_size_x+10,c_size_x>,<c_start_y,c_size_y>,0xffffff
mov ecx,[selected_color]
and ecx,0xffffff
mcall 47,0x00060100,,<c_start_x+c_size_x+13,c_start_y+(c_size_y-6)/2>,0
mcall SF_DRAW_RECT,<c_start_x,c_size_x>,<c_start_y,c_size_y>,[selected_color]
stdcall hex_in_str, sz_0x+2,[selected_color],6
mov byte[sz_0x+8],0
stdcall [edit_box_set_text],edit1,sz_0x
stdcall [edit_box_draw],edit1
ret
;---------------------------------------------------------------------
align 4
@@ -465,37 +479,34 @@ create_and_draw_tone:
;---------------------------------------------------------------------
align 4
draw_tone:
mcall 65,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>,<t_start_x,t_start_y>,24
mcall SF_PUT_IMAGE_EXT,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>,<t_start_x,t_start_y>,24
ret
;---------------------------------------------------------------------
align 4
draw_scrollbars:
push dword scroll_bar_data_red
call [scrollbar_ver_draw]
push dword scroll_bar_data_green
call [scrollbar_ver_draw]
push dword scroll_bar_data_blue
call [scrollbar_ver_draw]
stdcall [scrollbar_ver_draw], scroll_bar_data_red
stdcall [scrollbar_ver_draw], scroll_bar_data_green
stdcall [scrollbar_ver_draw], scroll_bar_data_blue
ret
;---------------------------------------------------------------------
align 4
draw_history_frame:
mov [frame_data.x],dword (c_start_x+c_size_x*2+10*2)*65536+80
mov [frame_data.x],dword (c_start_x+c_size_x+ed_size_x+10*2)*65536+80
mov [frame_data.y],dword (p_start_y+5)*65536+(p_size_y-5)
mov [frame_data.draw_text_flag],dword 1
mov [frame_data.text_pointer],dword history_text
push dword frame_data
call [Frame_draw]
stdcall [Frame_draw], frame_data
ret
;---------------------------------------------------------------------
align 4
draw_button_row:
mov edx,0x60000000 + 30 ; BUTTON ROW
; mov ebx,220*65536+14
mov ebx,(c_start_x+c_size_x*2+10*3)*65536+14
mov ebx,(c_start_x+c_size_x+ed_size_x+10*3)*65536+14
mov ecx,25*65536+14
mov eax,8
mov eax,SF_DEFINE_BUTTON
;-----------------------------------
align 4
.newb:
@@ -508,10 +519,12 @@ align 4
;---------------------------------------------------------------------
align 4
draw_color_value:
mov ebx,(c_start_x+c_size_x*3+10)*65536+(c_size_x-1)
movzx ebx,word[frame_data.x_start]
shl ebx,16
add ebx,(22 shl 16)+39
mov ecx,28*65536+11
mov edx,0xffffff
mov eax,13
mov eax,SF_DRAW_RECT
mov edi,10
mov esi,[communication_area]
add esi,28
@@ -520,14 +533,13 @@ align 4
@@:
mcall
pusha
mov edx,ebx
add edx,2 shl 16
lea edx,[ebx+(2 shl 16)]
shr ecx,16
mov dx,cx
add dx,2
mov ecx,[esi]
and ecx,0xffffff
mcall 47,0x00060100,,,0
mcall SF_DRAW_NUMBER,0x00060100,,,0
popa
add ecx,24*65536
@@ -543,9 +555,9 @@ draw_colours:
mov esi,[communication_area]
add esi,28
; mov ebx,220*65536+14
mov ebx,(c_start_x+c_size_x*2+10*3)*65536+14
mov ebx,(c_start_x+c_size_x+ed_size_x+10*3)*65536+14
mov ecx,27*65536+14
mov eax,13
mov eax,SF_DRAW_RECT
mov [frame_data.draw_text_flag],dword 0
;--------------------------------------
align 4
@@ -563,8 +575,7 @@ newcol:
mov [frame_data.x],ebx
mov [frame_data.y],ecx
push dword frame_data
call [Frame_draw]
stdcall [Frame_draw], frame_data
pop ecx ebx
@@ -578,18 +589,18 @@ newcol:
;----------------------------------------------------------------------
align 4
draw_window:
mcall 12,1
; mcall 0, <w_start_x,w_size_x>, <w_start_y,w_size_y>, 0x33AABBCC,,title
mcall SF_REDRAW,SSF_BEGIN_DRAW
; mcall SF_CREATE_WINDOW, <w_start_x,w_size_x>, <w_start_y,w_size_y>, 0x33AABBCC,,title
xor esi,esi
mcall 0,[window_x],[window_y], 0x34EEEeee,,title
mcall 8,<p_start_x,[palette_SIZE_X]>,<p_start_y,[palette_SIZE_Y]>,0x60000002
mcall SF_CREATE_WINDOW,[window_x],[window_y], 0x34EEEeee,,title
mcall SF_DEFINE_BUTTON,<p_start_x,[palette_SIZE_X]>,<p_start_y,[palette_SIZE_Y]>,0x60000002
mcall ,<t_start_x,[tone_SIZE_X]>,<t_start_y,[tone_SIZE_Y]>,0x60000003
mcall ,<296,80>,<280,22>,4,0x37A4D4
mcall ,<402,80>, ,1
mcall 4,<332,289>,0x802C7B9E,OK_Cancel
mcall SF_DRAW_TEXT,<332,289>,0x802C7B9E,OK_Cancel
mcall ,<331,288>,0x80FFFfff
xor ebp,ebp
mcall 65,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>,<p_start_x,p_start_y>,24
mcall SF_PUT_IMAGE_EXT,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>,<p_start_x,p_start_y>,24
call draw_tone
call draw_selected_color
xor eax,eax
@@ -602,9 +613,114 @@ draw_window:
call draw_button_row
call draw_colours
call draw_color_value
mcall 12,2
mcall SF_REDRAW,SSF_END_DRAW
ret
;---------------------------------------------------------------------
align 4
proc hex_in_str, buf:dword,val:dword,zif:dword
pushad
mov edi,[buf]
mov ecx,[zif]
add edi,ecx
dec edi
mov ebx,[val]
.cycle:
mov al,bl
and al,0xf
cmp al,10
jl @f
add al,'A'-'0'-10
@@:
add al,'0'
mov byte[edi],al
dec edi
shr ebx,4
loop .cycle
popad
ret
endp
;---------------------------------------------------------------------
;input:
; buf - указатель на строку, число должно быть в 10 или 16 ричном виде
;output:
; eax - число
align 4
proc conv_str_to_int uses ebx ecx esi, buf:dword
xor eax,eax
xor ebx,ebx
mov esi,[buf]
;на случай если перед числом находятся пробелы
@@:
cmp byte[esi],' '
jne @f
inc esi
jmp @b
@@:
;определение отрицательных чисел
xor ecx,ecx
inc ecx
cmp byte[esi],'-'
jne @f
dec ecx
inc esi
@@:
cmp word[esi],'0x'
je .load_digit_16
.load_digit_10: ;считывание 10-тичных цифр
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'9'
jg @f
sub bl,'0'
imul eax,10
add eax,ebx
inc esi
jmp .load_digit_10
jmp @f
.load_digit_16: ;считывание 16-ричных цифр
add esi,2
.cycle_16:
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'f'
jg @f
cmp bl,'9'
jle .us1
cmp bl,'A'
jl @f ;отсеиваем символы >'9' и <'A'
.us1: ;составное условие
cmp bl,'F'
jle .us2
cmp bl,'a'
jl @f ;отсеиваем символы >'F' и <'a'
sub bl,32 ;переводим символы в верхний регистр, для упрощения их последущей обработки
.us2: ;составное условие
sub bl,'0'
cmp bl,9
jle .cor1
sub bl,7 ;convert 'A' to '10'
.cor1:
shl eax,4
add eax,ebx
inc esi
jmp .cycle_16
@@:
cmp ecx,0 ;если число отрицательное
jne @f
sub ecx,eax
mov eax,ecx
@@:
ret
endp
;---------------------------------------------------------------------
include 'palette.inc'
;---------------------------------------------------------------------
include 'tone.inc'

View File

@@ -5,6 +5,7 @@ title:
history_text:
db ' History: ',0
communication_area dd param
;---------------------------------------------------------------------
align 4
window_x:
@@ -32,10 +33,10 @@ Box_lib_import:
;init_lib dd a_init
;version_lib dd a_version
;edit_box_draw dd aEdit_box_draw
;edit_box_key dd aEdit_box_key
;edit_box_mouse dd aEdit_box_mouse
edit_box_draw dd aEdit_box_draw
edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
edit_box_set_text dd aEdit_box_set_text
;version_ed dd aVersion_ed
;check_box_draw dd aCheck_box_draw
@@ -73,15 +74,15 @@ scrollbar_ver_mouse dd aScrollbar_ver_mouse
Frame_draw dd sz_Frame_draw
;Version_frame dd szVersion_frame
dd 0
dd 0
dd 0,0
;a_init db 'lib_init',0
;a_version db 'version',0
;aEdit_box_draw db 'edit_box',0
;aEdit_box_key db 'edit_box_key',0
;aEdit_box_mouse db 'edit_box_mouse',0
aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
aEdit_box_set_text db 'edit_box_set_text',0
;aVersion_ed db 'version_ed',0
;aCheck_box_draw db 'check_box_draw',0
@@ -239,4 +240,9 @@ frame_data:
.font_color dd 0x0 ;+40
.font_backgr_color dd 0xEEEeee ;+44
;---------------------------------------------------------------------
mouse_dd dd edit1
edit1 edit_box ed_size_x, c_start_x+c_size_x+10, c_start_y, 0xffffff, 0xa0a0a0, 0xff, 0, 0, 8, string1, mouse_dd, 0
sz_0x db '0x______',0,0
string1 rb 10
;---------------------------------------------------------------------
OK_Cancel db 'OK Cancel',0

View File

@@ -5,7 +5,6 @@ tone_area rd 1
part_of_size_y rd 1
active_process rd 1
;color_dialog_type rd 1
communication_area rd 1
;--------------------------------------
offset_y:
.red rd 1
@@ -36,20 +35,10 @@ tone_SIZE_Y rd 1
tone_SIZE_X rd 1
;---------------------------------------------------------------------
align 4
procinfo:
rb 1024
;---------------------------------------------------------------------
align 4
param:
rb 256
;---------------------------------------------------------------------
align 4
path:
rb 4096
;---------------------------------------------------------------------
align 4
file_name:
rb 4096
procinfo rb 1024
param rb 256
path rb 4096
file_name rb 4096
;---------------------------------------------------------------------
align 4
rb 4096