/programs/develop/info3ds/info_wnd_coords.inc |
---|
814,9 → 814,9 |
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 |
/programs/develop/libraries/crypt_des/example/crypt_files.asm |
---|
1,21 → 1,16 |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x1 |
dd start |
dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
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 '¨ä஢ ¨¥ «£®à¨â¬®¬ DES 05.03.13',0 ;¯®¤¯¨áì ®ª |
struct FileInfoBlock |
57,8 → 52,8 |
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
mov [buf],eax |
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
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 |
cmp ebx,0xffffffff |
je @f |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à 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 |
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
stdcall [img_to_rgb2], [image_data],[buf] |
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
stdcall dword[img_destroy], dword[image_data] |
stdcall [img_destroy], [image_data] |
@@: |
} |
88,10 → 83,10 |
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 ;¯®¤£®â®¢ª ¤¨ «®£ |
stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
115,7 → 110,7 |
align 4 |
still: |
mcall 10 |
mcall SF_WAIT_EVENT |
cmp al,1 |
jz red_win |
132,47 → 127,24 |
align 4 |
draw_window: |
pushad |
mcall 12,1 |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
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 |
; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
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 |
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 |
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 |
; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
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 |
; *** à¨á®¢ ¨¥ ¡ãä¥à *** |
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 |
align 4 |
button: |
mcall 17 |
mcall SF_GET_BUTTON |
cmp ah,3 |
jne @f |
call but_new_file |
238,7 → 210,7 |
stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à |
stdcall mem.Free,[image_data_toolbar] |
stdcall mem.Free,[open_file] |
mcall -1 |
mcall SF_TERMINATE_PROCESS |
align 4 |
261,8 → 233,8 |
je .end_open_file |
;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
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 |
je .end_open_file |
mov [open_file_size],ebx |
add ebx,dword[open_file] |
add ebx,[open_file] |
mov byte[ebx],0 ; á«ãç © ¥á«¨ à ¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à ç¨á⨬ ª®¥æ ¡ãä¥à á ä ©«®¬ |
mcall 71,1,openfile_path |
mcall SF_SET_CAPTION,1,openfile_path |
call draw_file |
.end_open_file: |
292,7 → 264,7 |
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 |
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 |
je .end_save_file |
;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
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 0 |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
system_dir_0 db '/sys/lib/' |
lib_name_0 db 'proc_lib.obj',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',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 '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'buf2d.obj',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
system_dir_3 db '/sys/lib/' |
lib_name_3 db 'crypt_des.obj',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'crypt_des.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',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 '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0 |
err_msg_import_4 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',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 |
aimg_draw db 'img_draw',0 |
align 4 |
proclib_import: ;®¯¨á ¨¥ íªá¯®àâ¨à㥬ëå äãªæ¨© |
import_proclib: ;®¯¨á ¨¥ íªá¯®àâ¨à㥬ëå äãªæ¨© |
OpenDialog_Init dd aOpenDialog_Init |
OpenDialog_Start dd aOpenDialog_Start |
dd 0,0 |
592,11 → 541,7 |
;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 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 5 ;+4 left |
623,12 → 568,14 |
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 |
/programs/develop/libraries/fontslib/trunk/font_ex.asm |
---|
37,8 → 37,9 |
dd 0x0 ; 㪠§ ⥫ì áâபã á ¯ à ¬¥âà ¬¨. |
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 |
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
;DATA ¤ ë¥ |
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 |
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: |
/programs/games/nu_pogodi/trunk/build.bat |
---|
4,6 → 4,4 |
@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 |
/programs/games/nu_pogodi/trunk/nu_pogod.asm |
---|
1,21 → 1,16 |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x1 |
dd start |
dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
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' ;¬ ªà®áë ¤«ï § ¤ ¨ï í«¥¬¥â®¢ 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 |
;ä« £¨, ¤«ï äãªæ¨¨ ®¡à¥§ ¨ï ¡ãä¥à |
BUF2D_OPT_CROP_TOP equ 1 ;®¡à¥§ª ᢥàåã |
129,16 → 124,16 |
db 0 |
@@: |
;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
copy_path .path_str,[32],file_name,0x0 |
copy_path .path_str,[32],file_name,0 |
else |
copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
end if |
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
mov [buf],eax |
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
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 |
cmp ebx,0xffffffff |
je @f |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à 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 |
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
stdcall [img_to_rgb2], [image_data],[buf] |
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
stdcall dword[img_destroy], dword[image_data] |
stdcall [img_destroy], [image_data] |
@@: |
} |
205,10 → 200,10 |
;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 |
;¯® ä®®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ¨¬ â 쬮£® ¬¥áâ ¢ ¯ ¬ï⨠|
align 4 |
proc CreateTrapharetBuffer uses eax edi, buf:dword, img_data:dword |
mov edi,dword[buf] |
mov edi,[buf] |
;§ ¯®«¥¨¥ ¤ ëå ¡ãä¥à |
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 |
and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥ìè ¥¬ ¢à¥¬ï |
cmp ax,0 |
jne @f |
mov edi,dword[game_delay_min] ;¬¨¨¬ «ì ï § ¤¥à¦ª |
mov edi,[game_delay_min] ;¬¨¨¬ «ì ï § ¤¥à¦ª |
cmp dword[game_spd],edi |
jle @f |
dec dword[game_spd] |
600,8 → 595,8 |
mov dword[game_spd],eax ;§ ¤¥à¦ª ¨£àë |
.end_init: |
mcall 26,9 |
mov dword[rand_x],eax ;§ ¯®«ï¥¬ 1-¥ á«ãç ©®¥ ç¨á«® |
mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
mov [rand_x],eax ;§ ¯®«ï¥¬ 1-¥ á«ãç ©®¥ ç¨á«® |
pop ebx eax |
ret |
610,15 → 605,15 |
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 |
@@: ;áç¨âë¢ ¥¬ 3 ¡ãä¥à á ¤¥ª®à æ¨ï¬¨ |
stdcall CreateTrapharetBuffer,edi,eax |
636,8 → 631,8 |
user_is_select: |
push eax ecx esi edi |
stdcall [tl_node_get_data], tree1 |
cmp eax,0 ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥ |
je @f |
or eax,eax ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥ |
jz @f |
mov esi,eax |
mov edi,ini_name |
mov ecx,FILE_NAME_MAX |
659,39 → 654,39 |
InitAll: |
pushad |
;à ¡®â á ä ©«®¬ áâ஥ª |
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 |
;áç¨âë¢ ¨¥ áâ஥ª ¢«¨ïîé¨å ᪮àáâì ¨£àë |
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 |
cld |
@@: |
push ecx ;äãªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ïâì ॣ¨áâà 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 ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï |
mov [displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï |
stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨âë¢ ¥¬ 3 ¡ãä¥à á ¤¥ª®à æ¨ï¬¨ |
stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨âë¢ ¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
761,11 → 756,11 |
jnz @f |
jmp .lib |
@@: |
mcall -1 ;exit not correct |
mcall SF_TERMINATE_PROCESS |
.lib: |
mcall 40,0x27 |
mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨áâ¥¬ë¥ æ¢¥â |
mcall SF_SET_EVENTS_MASK,0x27 |
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors |
;****************************************************************************** |
; ¯®¤£®â®¢ª ᯨ᪠¨£à |
780,9 → 775,9 |
m2m dword[tree1.data_img_sys],buf2d_data |
;à ¡®â á £« ¢ë¬ ä ©«®¬ áâ஥ª |
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 |
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 ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ¨£àë |
stdcall dword[tl_cur_next], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª ¨£à |
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 ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ¨£àë |
stdcall [tl_cur_next], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª ¨£à |
pop edx ecx |
loop @b |
stdcall dword[tl_cur_beg], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¢¥àå |
stdcall [tl_cur_beg], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¢¥àå |
mcall 26,9 |
mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
mov [last_time],eax |
812,21 → 807,21 |
cmp byte[game_select_mode],0 |
jne .select_mode |
mcall 26,9 ;¡¥à¥¬ á¨á⥬®¥ ¢à¥¬ï |
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 ;¨§¬¥¨«®áì ¯®«®¦¥¨¥ ®ª |
850,7 → 845,7 |
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 |
align 4 |
key: |
push eax ebx |
mcall 2 |
mcall SF_GET_KEY |
cmp byte[game_select_mode],0 |
je @f |
914,7 → 909,7 |
align 4 |
draw_window: |
pushad |
mcall 12,1 |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
xor eax,eax |
mov ebx,20*65536+480 |
924,16 → 919,16 |
or edx,0x73000000 |
mov edi,hed |
mcall ;ᮧ¤ ¨¥ ®ª |
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 ;¢ë¯à ¢¨¢ ¥¬ ¡ãä¥à ¯® æ¥âàã ®ª |
@@: |
940,12 → 935,12 |
call draw_display |
mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
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,29 → 948,25 |
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 ;à¨á®¢ ¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï |
jmp .draw_s |
@@: |
mov esi,dword[procinfo.client_box.width] ;ª®£¤ ¯® è¨à¨¥ ¥ ¢« §¨â |
mov esi,[procinfo.client_box.width] ;ª®£¤ ¯® è¨à¨¥ ¥ ¢« §¨â |
inc esi |
.draw_s: |
; *** à¨á®¢ ¨¥ ª®¯®ª *** |
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 |
982,12 → 973,12 |
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 |
int 0x40 |
; *** ¢®ááâ ®¢«¥¨¥ ¯ à ¬¥â஢ *** |
mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
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 |
xor ebx,ebx |
mov bx,buf2d_l |
mov ecx,dword[displ_h] |
mov ecx,[displ_h] |
int 0x40 ;à¨á®¢ ¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï |
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 |
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 |
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 |
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 |
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 |
align 4 |
draw_display: |
stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;ª®¯¨à®¢ ¨¥ ¨§®¡à ¦¥¨ï ¨§ ä®®¢®£® ¡ãä¥à |
stdcall mem_copy, [buf_fon],[buf_displ],[displ_bytes] ;ª®¯¨à®¢ ¨¥ ¨§®¡à ¦¥¨ï ¨§ ä®®¢®£® ¡ãä¥à |
call DrawZaac ;à¨á㥬 § ©æ |
call DrawWolf ;à¨á㥬 ¢®«ª |
call DrawEggs ;à¨á㥬 ï©æ |
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] ;à¨á㥬 áâபã á ⥪á⮬ |
pop eax |
1095,7 → 1086,7 |
align 4 |
button: |
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
mcall SF_GET_BUTTON |
cmp ah,5 |
jne @f |
1142,54 → 1133,42 |
mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ¨§®¡à ¦¥¨¥ |
stdcall dword[tl_data_clear], tree1 |
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
mcall SF_TERMINATE_PROCESS |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
system_dir0 db '/sys/lib/' |
lib0_name db 'buf2d.obj',0 |
err_message_found_lib0 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0 |
err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0 |
system_dir1 db '/sys/lib/' |
lib1_name db 'libimg.obj',0 |
err_message_found_lib1 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0 |
err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0 |
system_dir2 db '/sys/lib/' |
lib2_name db 'libini.obj',0 |
err_message_found_lib2 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0 |
err_message_import2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0 |
system_dir3 db '/sys/lib/' |
lib3_name db 'box_lib.obj',0 |
err_message_found_lib3 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0 |
err_message_import3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ 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 - ç¨á«® |
; edi - ¡ãä¥à ¤«ï áâப¨ |
align 4 |
convert_to_str: |
pushad |
mov dword[edi+1],0 |
cld |
lea esi,[edi+8] ;8 - ¤«¨ ¡ãä¥à -1 |
call .str |
popad |
ret |
1196,19 → 1175,23 |
align 4 |
.str: |
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
mov ecx,10 |
cmp eax,ecx |
jb @f |
xor edx,edx ;®ç¨áâ¨âì edx |
div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
push edx ;¯®«®¦¨âì ¢ á⥪ |
call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
xor edx,edx |
div ecx |
push edx |
;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
call .str |
pop eax |
@@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
ret ;¢¥àãâìáï ®ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
@@: |
cmp edi,esi |
jge @f |
or al,0x30 |
stosb |
mov byte[edi],0 ;¢ ª®¥æ áâப¨ áâ ¢¨¬ 0, çâ®-¡ë ¥ ¢ë« §¨« ¬ãá®à |
@@: |
ret |
last_time dd 0 |
1216,7 → 1199,7 |
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
run_file_70 FileInfoBlock |
hed db 'Nu pogodi 10.11.15',0 ;¯®¤¯¨áì ®ª |
hed db 'Nu pogodi 10.12.20',0 ;¯®¤¯¨áì ®ª |
sc system_colors ;á¨áâ¥¬ë¥ æ¢¥â |
count_of_dir_list_files equ 10 |
/programs/system/colrdial/color_dialog.asm |
---|
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 |
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 |
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 |
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 |
;--------------------------------------------------------------------- |
align 4 |
still: |
mcall 10 |
mcall SF_WAIT_EVENT |
cmp eax,1 |
je red |
178,7 → 172,7 |
;--------------------------------------------------------------------- |
align 4 |
button: |
mcall 17 |
mcall SF_GET_BUTTON |
cmp ah, 2 |
je palette_button |
236,40 → 230,39 |
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 |
;--------------------------------------------------------------------- |
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 |
;--------------------------------------------------------------------- |
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 |
;--------------------------------------------------------------------- |
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 |
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 |
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 |
;-------------------------------------- |
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 |
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,28 → 479,25 |
;--------------------------------------------------------------------- |
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 |
493,9 → 504,9 |
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 |
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 |
@@: |
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 |
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 |
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 |
;---------------------------------------------------------------------- |
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 |
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' |
/programs/system/colrdial/i_data.inc |
---|
5,6 → 5,7 |
history_text: |
db ' History: ',0 |
communication_area dd param |
;--------------------------------------------------------------------- |
align 4 |
window_x: |
32,10 → 33,10 |
;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 |
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 |
.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 |
/programs/system/colrdial/u_data.inc |
---|
5,7 → 5,6 |
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,22 → 35,12 |
tone_SIZE_X rd 1 |
;--------------------------------------------------------------------- |
align 4 |
procinfo: |
rb 1024 |
procinfo rb 1024 |
param rb 256 |
path rb 4096 |
file_name rb 4096 |
;--------------------------------------------------------------------- |
align 4 |
param: |
rb 256 |
;--------------------------------------------------------------------- |
align 4 |
path: |
rb 4096 |
;--------------------------------------------------------------------- |
align 4 |
file_name: |
rb 4096 |
;--------------------------------------------------------------------- |
align 4 |
rb 4096 |
stacktop: |
;--------------------------------------------------------------------- |