Subversion Repositories Kolibri OS

Rev

Rev 1727 | Rev 3014 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1727 Rev 2051
1
use32
1
use32
2
	org 0x0
2
	org 0x0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 0x1
4
	dd 0x1
5
	dd start
5
	dd start
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
7
	dd mem
7
	dd mem
8
	dd stacktop
8
	dd stacktop
9
	dd 0x0
9
	dd 0x0
10
	dd sys_path
10
	dd sys_path
11
 
11
 
12
include '../../../macros.inc'
12
include '../../../macros.inc'
13
include '../../../proc32.inc'
13
include '../../../proc32.inc'
14
include '../../../develop/libraries/box_lib/load_lib.mac'
14
include '../../../develop/libraries/box_lib/load_lib.mac'
15
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;¬ ªà®áë ¤«ï § ¤ ­¨ï í«¥¬¥­â®¢ box_lib
15
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;¬ ªà®áë ¤«ï § ¤ ­¨ï í«¥¬¥­â®¢ box_lib
16
include 'mem.inc'
16
include 'mem.inc'
17
include 'dll.inc'
17
include 'dll.inc'
18
 
18
 
19
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
19
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
20
 
20
 
21
;ä« £¨, ¤«ï ä㭪樨 ®¡à¥§ ­¨ï ¡ãä¥à 
21
;ä« £¨, ¤«ï ä㭪樨 ®¡à¥§ ­¨ï ¡ãä¥à 
22
BUF2D_OPT_CROP_TOP equ 1 ;®¡à¥§ª  ᢥàåã
22
BUF2D_OPT_CROP_TOP equ 1 ;®¡à¥§ª  ᢥàåã
23
BUF2D_OPT_CROP_LEFT equ 2 ;®¡à¥§ª  á«¥¢ 
23
BUF2D_OPT_CROP_LEFT equ 2 ;®¡à¥§ª  á«¥¢ 
24
BUF2D_OPT_CROP_BOTTOM equ 4 ;®¡à¥§ª  á­¨§ã
24
BUF2D_OPT_CROP_BOTTOM equ 4 ;®¡à¥§ª  á­¨§ã
25
BUF2D_OPT_CROP_RIGHT equ 8 ;®¡à¥§ª  á¯à ¢ 
25
BUF2D_OPT_CROP_RIGHT equ 8 ;®¡à¥§ª  á¯à ¢ 
26
BUF2D_BIT_OPT_CROP_TOP equ 0
26
BUF2D_BIT_OPT_CROP_TOP equ 0
27
BUF2D_BIT_OPT_CROP_LEFT equ 1
27
BUF2D_BIT_OPT_CROP_LEFT equ 1
28
BUF2D_BIT_OPT_CROP_BOTTOM equ 2
28
BUF2D_BIT_OPT_CROP_BOTTOM equ 2
29
BUF2D_BIT_OPT_CROP_RIGHT equ 3
29
BUF2D_BIT_OPT_CROP_RIGHT equ 3
30
 
30
 
31
BUF_STRUCT_SIZE equ 21
31
BUF_STRUCT_SIZE equ 21
32
buf2d_data equ dword[edi] ;¤ ­­ë¥ ¡ãä¥à  ¨§®¡à ¦¥­¨ï
32
buf2d_data equ dword[edi] ;¤ ­­ë¥ ¡ãä¥à  ¨§®¡à ¦¥­¨ï
33
buf2d_w equ dword[edi+8] ;è¨à¨­  ¡ãä¥à 
33
buf2d_w equ dword[edi+8] ;è¨à¨­  ¡ãä¥à 
34
buf2d_h equ dword[edi+12] ;¢ëá®â  ¡ãä¥à 
34
buf2d_h equ dword[edi+12] ;¢ëá®â  ¡ãä¥à 
35
buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ 
35
buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ 
36
buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã
36
buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã
37
buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢  ¨ á¯à ¢  ¤«ï ¡ãä¥à 
37
buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢  ¨ á¯à ¢  ¤«ï ¡ãä¥à 
38
buf2d_color equ dword[edi+16] ;梥â ä®­  ¡ãä¥à 
38
buf2d_color equ dword[edi+16] ;梥â ä®­  ¡ãä¥à 
39
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥­¨ï
39
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥­¨ï
40
 
40
 
41
struct FileInfoBlock
41
struct FileInfoBlock
42
	Function dd ?
42
	Function dd ?
43
	Position dd ?
43
	Position dd ?
44
	Flags	 dd ?
44
	Flags	 dd ?
45
	Count	 dd ?
45
	Count	 dd ?
46
	Buffer	 dd ?
46
	Buffer	 dd ?
47
		db ?
47
		db ?
48
	FileName dd ?
48
	FileName dd ?
49
ends
49
ends
50
 
50
 
51
displ_w dd ? ;è¨à¨­  ¯®«ï
51
displ_w dd ? ;è¨à¨­  ¯®«ï
52
displ_h dd ? ;¢ëá®â  ¯®«ï
52
displ_h dd ? ;¢ëá®â  ¯®«ï
53
displ_bytes dd ? ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
53
displ_bytes dd ? ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
54
offs_shadow_x dd ? ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
54
offs_shadow_x dd ? ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
55
offs_shadow_y dd ? ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
55
offs_shadow_y dd ? ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
56
 
56
 
57
IMAGE_FONT_SIZE equ 128*144*3
57
IMAGE_FONT_SIZE equ 128*144*3
58
 
58
 
59
BUT1_T equ 10 ;®âáâ㯠ᢥàåã
59
BUT1_T equ 10 ;®âáâ㯠ᢥàåã
60
BUT1_L equ 15 ;®âáâ㯠᫥¢ 
60
BUT1_L equ 15 ;®âáâ㯠᫥¢ 
61
BUT1_W equ 50 ;è¨à¨­ 
61
BUT1_W equ 50 ;è¨à¨­ 
62
BUT1_H equ 20 ;¢ëá®â 
62
BUT1_H equ 20 ;¢ëá®â 
63
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536
63
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536
64
 
64
 
65
game_select_mode db 1 ;०¨¬ ¢ë¡®à  ¨£àë
65
game_select_mode db 1 ;०¨¬ ¢ë¡®à  ¨£àë
66
 
66
 
67
FILE_NAME_MAX equ 20 ;¬ ªá¨¬ «ì­ ï ¤«¨­­  ¨¬¥­¨ ä ©«  (¡¥§ ¯ ¯®ª, ®â­®á¨â¥«ì­® ⥪ã饩)
67
FILE_NAME_MAX equ 20 ;¬ ªá¨¬ «ì­ ï ¤«¨­­  ¨¬¥­¨ ä ©«  (¡¥§ ¯ ¯®ª, ®â­®á¨â¥«ì­® ⥪ã饩)
68
;§­ ç¥­¨ï ¨¬¥­ ¯® 㬮«ç ­¨î
68
;§­ ç¥­¨ï ¨¬¥­ ¯® 㬮«ç ­¨î
69
ini_def_decorat_file db 'curici.png',0
69
ini_def_decorat_file db 'curici.png',0
70
ini_def_unit_file db 'wolf.png',0
70
ini_def_unit_file db 'wolf.png',0
71
ini_def_objects_file db 'eggs.png',0
71
ini_def_objects_file db 'eggs.png',0
72
ini_def_lost_file db 'chi.png',0
72
ini_def_lost_file db 'chi.png',0
73
;¨¬¥­  ä ©«®¢
73
;¨¬¥­  ä ©«®¢
74
fn_icon0 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ¤¥ª®à æ¨ï¬¨
74
fn_icon0 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ¤¥ª®à æ¨ï¬¨
75
fn_icon1 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ¢®«ª®¬ ¨ § ©æ¥¬
75
fn_icon1 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ¢®«ª®¬ ¨ § ©æ¥¬
76
fn_icon2 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ï©æ ¬¨
76
fn_icon2 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ï©æ ¬¨
77
fn_icon3 rb FILE_NAME_MAX ;¨¬ï ä ©«  á 樯«ïâ ¬¨
77
fn_icon3 rb FILE_NAME_MAX ;¨¬ï ä ©«  á 樯«ïâ ¬¨
78
fn_font db 'font8x9.bmp',0
-
 
79
 
-
 
80
fn_icon_tl_sys db 'tl_sys_16.png',0
78
 
81
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
79
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
82
 
80
 
83
ini_m_name db 'main.ini',0
81
ini_m_name db 'main.ini',0
84
key_count db 'count',0
82
key_count db 'count',0
85
key_game db 'g'
83
key_game db 'g'
86
	key_game_ind db 0,0,0
84
	key_game_ind db 0,0,0
87
 
85
 
88
ini_name rb FILE_NAME_MAX ;¨¬ï ini ä ©«  c ¢ë¡à ­­®© ¨£à®©
86
ini_name rb FILE_NAME_MAX ;¨¬ï ini ä ©«  c ¢ë¡à ­­®© ¨£à®©
89
ini_sec_files db 'Files',0
87
ini_sec_files db 'Files',0
90
key_file_decorat db 'file_decorat',0
88
key_file_decorat db 'file_decorat',0
91
key_file_unit db 'file_unit',0
89
key_file_unit db 'file_unit',0
92
key_file_objects db 'file_objects',0
90
key_file_objects db 'file_objects',0
93
key_file_lost db 'file_lost',0
91
key_file_lost db 'file_lost',0
94
key_displ_w db 'displ_w',0
92
key_displ_w db 'displ_w',0
95
key_displ_h db 'displ_h',0
93
key_displ_h db 'displ_h',0
96
key_shadow_x db 'offs_shadow_x',0
94
key_shadow_x db 'offs_shadow_x',0
97
key_shadow_y db 'offs_shadow_y',0
95
key_shadow_y db 'offs_shadow_y',0
98
 
96
 
99
ini_sec_game db 'Game',0
97
ini_sec_game db 'Game',0
100
key_delay_a db 'delay_a',0
98
key_delay_a db 'delay_a',0
101
key_delay_b db 'delay_b',0
99
key_delay_b db 'delay_b',0
102
key_delay_min db 'delay_min',0
100
key_delay_min db 'delay_min',0
103
 
101
 
104
ini_sec_color db 'Colors',0
102
ini_sec_color db 'Colors',0
105
;ª«îç¨ ¤«ï áç¨â뢠­¨ï 梥⮢ ¨§ *.ini ä ©« 
103
;ª«îç¨ ¤«ï áç¨â뢠­¨ï 梥⮢ ¨§ *.ini ä ©« 
106
key_color_fon db 'background',0
104
key_color_fon db 'background',0
107
key_color_shadows db 'shadows',0
105
key_color_shadows db 'shadows',0
108
key_color_egg db 'objects',0
106
key_color_egg db 'objects',0
109
key_color_chick db 'lost',0
107
key_color_chick db 'lost',0
110
key_color_decorat: db 'dec'
108
key_color_decorat: db 'dec'
111
	.ind: db '?',0
109
	.ind: db '?',0
112
key_color_unit db 'unit',0
110
key_color_unit db 'unit',0
113
 
111
 
114
;æ¢¥â  ¢ ¨£à¥
112
;æ¢¥â  ¢ ¨£à¥
115
color_fon dd ? ;梥â ä®­ 
113
color_fon dd ? ;梥â ä®­ 
116
color_shadows dd ? ;梥â ⥭¥©
114
color_shadows dd ? ;梥â ⥭¥©
117
color_wolf dd ? ;梥⠢®«ª  ¨ § ©æ 
115
color_wolf dd ? ;梥⠢®«ª  ¨ § ©æ 
118
color_egg dd ? ;梥â ï©æ 
116
color_egg dd ? ;梥â ï©æ 
119
color_chick dd ? ;梥â 樯«¥­ª 
117
color_chick dd ? ;梥â 樯«¥­ª 
120
color_decorat dd ?,?,? ;æ¢¥â  ¤¥ª®à æ¨© (ªãà¨æë, ¯¥à¨« , ...)
118
color_decorat dd ?,?,? ;æ¢¥â  ¤¥ª®à æ¨© (ªãà¨æë, ¯¥à¨« , ...)
121
 
119
 
122
;æ¢¥â  ¨­â¥à䥩á 
120
;æ¢¥â  ¨­â¥à䥩á 
123
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
121
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
124
color_but_te dd 0xffffff ;梥â ⥪áâ  ­  ª­®¯ª å
122
color_but_te dd 0xffffff ;梥â ⥪áâ  ­  ª­®¯ª å
125
 
123
 
126
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
124
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
-
 
125
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
-
 
126
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
-
 
127
		jmp @f
-
 
128
			local .path_str
-
 
129
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
-
 
130
			db 0
-
 
131
		@@:
-
 
132
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
-
 
133
		copy_path .path_str,[32],file_name,0x0
-
 
134
	else
127
	copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
135
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
-
 
136
	end if
128
 
137
 
129
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
138
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
130
	mov [buf],eax
139
	mov [buf],eax
131
 
140
 
132
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
141
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
133
	mov [run_file_70.Function], 0
142
	mov [run_file_70.Function], 0
134
	mov [run_file_70.Position], 0
143
	mov [run_file_70.Position], 0
135
	mov [run_file_70.Flags], 0
144
	mov [run_file_70.Flags], 0
136
	mov [run_file_70.Count], dword size
145
	mov [run_file_70.Count], dword size
137
	m2m [run_file_70.Buffer], [buf]
146
	m2m [run_file_70.Buffer], [buf]
138
	mov byte[run_file_70+20], 0
147
	mov byte[run_file_70+20], 0
139
	mov [run_file_70.FileName], file_name
148
	mov [run_file_70.FileName], file_name
140
	mov ebx,run_file_70
149
	mov ebx,run_file_70
141
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
150
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
142
	cmp ebx,0xffffffff
151
	cmp ebx,0xffffffff
143
	je @f
152
	je @f
144
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
153
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
145
		stdcall dword[img_decode], dword[buf],ebx,0
154
		stdcall dword[img_decode], dword[buf],ebx,0
146
		mov dword[image_data],eax
155
		mov dword[image_data],eax
147
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
156
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
148
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
157
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
149
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
158
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
150
		stdcall dword[img_destroy], dword[image_data]
159
		stdcall dword[img_destroy], dword[image_data]
151
	@@:
160
	@@:
152
}
161
}
153
 
162
 
154
;¤ ­­ë¥ ¨£àë
163
;¤ ­­ë¥ ¨£àë
155
bit_zaac equ 2 ;¡¨â § ©æ 
164
bit_zaac equ 2 ;¡¨â § ©æ 
156
val_zaac equ 4 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â § ©æ 
165
val_zaac equ 4 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â § ©æ 
157
bit_mig equ 3 ;¡¨â ¬¨£ ­¨ï
166
bit_mig equ 3 ;¡¨â ¬¨£ ­¨ï
158
val_mig equ 8 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â ¬¨£ ­¨ï
167
val_mig equ 8 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â ¬¨£ ­¨ï
159
mask_lot_lu    equ 1b ;¬ áª  ¤«ï «¥¢®£® ¢¥àå­¥£® «®âª 
168
mask_lot_lu    equ 1b ;¬ áª  ¤«ï «¥¢®£® ¢¥àå­¥£® «®âª 
160
mask_lot_ld    equ 100000b ;¬ áª  ¤«ï «¥¢®£® ­¨¦­¥£® «®âª 
169
mask_lot_ld    equ 100000b ;¬ áª  ¤«ï «¥¢®£® ­¨¦­¥£® «®âª 
161
mask_lot_ru    equ 10000000000b ;¬ áª  ¤«ï ¯à ¢®£® ¢¥àå­¥£® «®âª 
170
mask_lot_ru    equ 10000000000b ;¬ áª  ¤«ï ¯à ¢®£® ¢¥àå­¥£® «®âª 
162
mask_lot_rd    equ 1000000000000000b ;¬ áª  ¤«ï ¯à ¢®£® ­¨¦­¥£® «®âª 
171
mask_lot_rd    equ 1000000000000000b ;¬ áª  ¤«ï ¯à ¢®£® ­¨¦­¥£® «®âª 
163
mask_clear_all equ 11111011111011110111101111011110b ;¬ áª  ¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ
172
mask_clear_all equ 11111011111011110111101111011110b ;¬ áª  ¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ
164
mask_move_eggs equ 11111111111111111111b ;¬ áª  ¤¢¨¦ãé¨åáï ï¨æ
173
mask_move_eggs equ 11111111111111111111b ;¬ áª  ¤¢¨¦ãé¨åáï ï¨æ
165
mask_fail_eggs equ 100001000010000100000b ;¬ áª  ¯ ¤ îé¨å ï¨æ
174
mask_fail_eggs equ 100001000010000100000b ;¬ áª  ¯ ¤ îé¨å ï¨æ
166
mask_chi_left  equ 11111000000000000000000000b ;¬ áª  «¥¢ëå 樯«ïâ
175
mask_chi_left  equ 11111000000000000000000000b ;¬ áª  «¥¢ëå 樯«ïâ
167
mask_chi_right equ 11111000000000000000000000000000b ;¬ áª  ¯à ¢ëå 樯«ïâ
176
mask_chi_right equ 11111000000000000000000000000000b ;¬ áª  ¯à ¢ëå 樯«ïâ
168
mask_chi_cr_l  equ 1000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï «¥¢®£®
177
mask_chi_cr_l  equ 1000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï «¥¢®£®
169
mask_chi_cr_r  equ 1000000000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï ¯à ¢®£®
178
mask_chi_cr_r  equ 1000000000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï ¯à ¢®£®
170
bit_chi_left  equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® á«¥¢ 
179
bit_chi_left  equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® á«¥¢ 
171
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® ¯à ¢ 
180
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® ¯à ¢ 
172
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
181
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
173
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
182
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
174
 
183
 
175
txt_game_a db 'ˆ£à  €',0
184
txt_game_a db 'ˆ£à  €',0
176
txt_game_b db 'ˆ£à  ',0
185
txt_game_b db 'ˆ£à  ',0
177
 
186
 
178
zaac_status db 0 ;ç¨á«® ⠪⮢, ª®â®à®¥ § ïæ ­¥ ¤®«¦¥­ ¬¥­ïâì ᢮¥ ¯®«®¦¥­¨¥
187
zaac_status db 0 ;ç¨á«® ⠪⮢, ª®â®à®¥ § ïæ ­¥ ¤®«¦¥­ ¬¥­ïâì ᢮¥ ¯®«®¦¥­¨¥
179
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
188
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
180
;rb 1
189
;rb 1
181
pos_eggs dd 0 ;¯®§¨æ¨¨ à á¯®«®¦¥­¨ï ï¨æ ¨ 樯«ïâ
190
pos_eggs dd 0 ;¯®§¨æ¨¨ à á¯®«®¦¥­¨ï ï¨æ ¨ 樯«ïâ
182
eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
191
eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
183
game_text db 'ˆ£à  _',13
192
game_text db 'ˆ£à  _',13
184
some_text db '0'
193
some_text db '0'
185
	rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
194
	rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
186
count_last db 0 ;áç¥â稪 ¯à®¯ã饭­ëå ï¨æ
195
count_last db 0 ;áç¥â稪 ¯à®¯ã饭­ëå ï¨æ
187
game_spd dd 0 ;§ ¤¥à¦ª  ¨£àë
196
game_spd dd 0 ;§ ¤¥à¦ª  ¨£àë
188
game_delay_a dd ? ;¯¥à¢®­ ç «ì­ ï § ¤¥à¦ª  ¤«ï ¨£àë €
197
game_delay_a dd ? ;¯¥à¢®­ ç «ì­ ï § ¤¥à¦ª  ¤«ï ¨£àë €
189
game_delay_b dd ? ;¯¥à¢®­ ç «ì­ ï § ¤¥à¦ª  ¤«ï ¨£àë 
198
game_delay_b dd ? ;¯¥à¢®­ ç «ì­ ï § ¤¥à¦ª  ¤«ï ¨£àë 
190
game_delay_min dd ? ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
199
game_delay_min dd ? ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
191
 
200
 
192
;¤«ï £¥­¥à æ¨¨ á«ãç ©­ëå ç¨á¥«
201
;¤«ï £¥­¥à æ¨¨ á«ãç ©­ëå ç¨á¥«
193
rand_x dd 0
202
rand_x dd 0
194
 
203
 
195
align 4
204
align 4
196
rand_next:
205
rand_next:
197
;x(k+1) = (a*x(k)+c) mod m
206
;x(k+1) = (a*x(k)+c) mod m
198
; a=22695477, c=1, m=2^32
207
; a=22695477, c=1, m=2^32
199
push eax
208
push eax
200
	mov eax,dword[rand_x]
209
	mov eax,dword[rand_x]
201
	imul eax,22695477
210
	imul eax,22695477
202
	inc eax
211
	inc eax
203
	mov dword[rand_x],eax
212
	mov dword[rand_x],eax
204
pop eax
213
pop eax
205
	ret
214
	ret
206
 
215
 
207
;ᮧ¤ ¥¬ ¯à®§à ç­ë¥ ¡ãä¥à  ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ­¨ï
216
;ᮧ¤ ¥¬ ¯à®§à ç­ë¥ ¡ãä¥à  ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ­¨ï
208
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
217
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
209
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
218
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
210
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
219
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
211
align 4
220
align 4
212
proc CreateTrapharetBuffer, buf:dword, img_data:dword
221
proc CreateTrapharetBuffer, buf:dword, img_data:dword
213
	push eax edi
222
	push eax edi
214
	mov edi,dword[buf]
223
	mov edi,dword[buf]
215
 
224
 
216
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
225
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
217
	mov buf2d_size_lt,0
226
	mov buf2d_size_lt,0
218
	mov eax,dword[displ_w]
227
	mov eax,dword[displ_w]
219
	mov buf2d_w,eax
228
	mov buf2d_w,eax
220
	mov eax,dword[displ_h]
229
	mov eax,dword[displ_h]
221
	mov buf2d_h,eax
230
	mov buf2d_h,eax
222
	mov buf2d_color,0xffffff
231
	mov buf2d_color,0xffffff
223
	mov buf2d_bits,24
232
	mov buf2d_bits,24
224
 
233
 
225
	stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
234
	stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
226
	stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
235
	stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
227
	;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
236
	;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
228
	stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
237
	stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
229
	pop edi eax
238
	pop edi eax
230
	ret
239
	ret
231
endp
240
endp
232
 
241
 
233
align 4
242
align 4
234
InitBackgroundBuffer: ;ᮧ¤ ­¨¥ ä®­®¢®£® ¨§®¡à ¦¥­¨ï
243
InitBackgroundBuffer: ;ᮧ¤ ­¨¥ ä®­®¢®£® ¨§®¡à ¦¥­¨ï
235
	pushad
244
	pushad
236
	mov edi,buf_fon
245
	mov edi,buf_fon
237
	mov eax,[color_fon]
246
	mov eax,[color_fon]
238
	mov buf2d_color,eax
247
	mov buf2d_color,eax
239
	stdcall [buf2d_clear], edi,eax
248
	stdcall [buf2d_clear], edi,eax
240
	mov esi,edi
249
	mov esi,edi
241
 
250
 
242
	xor eax,eax
251
	xor eax,eax
243
	cld
252
	cld
244
	cmp dword[offs_shadow_x],0
253
	cmp dword[offs_shadow_x],0
245
	jne @f
254
	jne @f
246
	cmp dword[offs_shadow_y],0
255
	cmp dword[offs_shadow_y],0
247
	jne @f
256
	jne @f
248
		jmp .end_shadows
257
		jmp .end_shadows
249
	@@:
258
	@@:
250
		mov edi,buf_decor
259
		mov edi,buf_decor
251
		xor ebx,ebx
260
		xor ebx,ebx
252
		mov ecx,3
261
		mov ecx,3
253
		@@:
262
		@@:
254
			mov ax,buf2d_t
263
			mov ax,buf2d_t
255
			add eax,[offs_shadow_y]
264
			add eax,[offs_shadow_y]
256
			mov bx,buf2d_l
265
			mov bx,buf2d_l
257
			add ebx,[offs_shadow_x]
266
			add ebx,[offs_shadow_x]
258
			stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥ª®à æ¨©
267
			stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥ª®à æ¨©
259
			add edi,BUF_STRUCT_SIZE
268
			add edi,BUF_STRUCT_SIZE
260
			loop @b
269
			loop @b
261
	.end_shadows:
270
	.end_shadows:
262
 
271
 
263
	mov edi,buf_decor
272
	mov edi,buf_decor
264
	mov ebx,color_decorat
273
	mov ebx,color_decorat
265
	mov ecx,3
274
	mov ecx,3
266
	@@:
275
	@@:
267
		mov ax,buf2d_t
276
		mov ax,buf2d_t
268
		stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[ebx] ;à¨á㥬 ¤¥ª®à æ¨¨
277
		stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[ebx] ;à¨á㥬 ¤¥ª®à æ¨¨
269
		add edi,BUF_STRUCT_SIZE
278
		add edi,BUF_STRUCT_SIZE
270
		add ebx,4
279
		add ebx,4
271
		loop @b
280
		loop @b
272
	popad
281
	popad
273
	ret
282
	ret
274
 
283
 
275
;à¨áã¥â ª à⨭ªã ¢ ¡ãä¥à¥ buf ¨§ ¬ áᨢ  ¡ãä¥à®¢ buf_img á ¨­¤¥ªá®¬ ind
284
;à¨áã¥â ª à⨭ªã ¢ ¡ãä¥à¥ buf ¨§ ¬ áᨢ  ¡ãä¥à®¢ buf_img á ¨­¤¥ªá®¬ ind
276
;â. ¥. buf <- buf_img[ind]
285
;â. ¥. buf <- buf_img[ind]
277
align 4
286
align 4
278
proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword
287
proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword
279
	pushad
288
	pushad
280
		mov edi,dword[ind]
289
		mov edi,dword[ind]
281
		imul edi,BUF_STRUCT_SIZE
290
		imul edi,BUF_STRUCT_SIZE
282
		add edi,dword[buf_img]
291
		add edi,dword[buf_img]
283
 
292
 
284
		mov esi,dword[buf]
293
		mov esi,dword[buf]
285
		xor eax,eax
294
		xor eax,eax
286
		mov ax,buf2d_t
295
		mov ax,buf2d_t
287
		xor ebx,ebx
296
		xor ebx,ebx
288
		mov bx,buf2d_l
297
		mov bx,buf2d_l
289
		stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color]
298
		stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color]
290
	popad
299
	popad
291
	ret
300
	ret
292
endp
301
endp
293
 
302
 
294
align 4
303
align 4
295
DrawZaac: ;à¨á®¢ ­¨¥ § ©æ 
304
DrawZaac: ;à¨á®¢ ­¨¥ § ©æ 
296
	push eax
305
	push eax
297
	bt word[pos_wolf],bit_zaac
306
	bt word[pos_wolf],bit_zaac
298
	jae .end_mig
307
	jae .end_mig
299
 
308
 
300
	stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ 
309
	stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ 
301
	mov eax,dword[pos_eggs]
310
	mov eax,dword[pos_eggs]
302
	and eax,mask_chi_right+mask_chi_left
311
	and eax,mask_chi_right+mask_chi_left
303
	cmp eax,0
312
	cmp eax,0
304
	je .end_mig ;¥á«¨ ­¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ­¥ ¬ è¥â
313
	je .end_mig ;¥á«¨ ­¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ­¥ ¬ è¥â
305
	bt word[pos_wolf],bit_mig
314
	bt word[pos_wolf],bit_mig
306
	jc @f
315
	jc @f
307
		stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢¢¥àåã
316
		stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢¢¥àåã
308
		jmp .end_mig
317
		jmp .end_mig
309
	@@:
318
	@@:
310
		stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢­¨§ã
319
		stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢­¨§ã
311
	.end_mig:
320
	.end_mig:
312
	pop eax
321
	pop eax
313
	ret
322
	ret
314
 
323
 
315
align 4
324
align 4
316
DrawWolf: ;à¨áã¥â ¢®«ª  á ª®à§¨­ ¬¨
325
DrawWolf: ;à¨áã¥â ¢®«ª  á ª®à§¨­ ¬¨
317
	bt word[pos_wolf],0
326
	bt word[pos_wolf],0
318
	jc @f
327
	jc @f
319
		stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf]
328
		stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf]
320
		bt word[pos_wolf],1
329
		bt word[pos_wolf],1
321
		jc .corz_ldn
330
		jc .corz_ldn
322
			stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf]
331
			stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf]
323
			jmp .corz_lend
332
			jmp .corz_lend
324
		.corz_ldn:
333
		.corz_ldn:
325
			stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf]
334
			stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf]
326
		.corz_lend:
335
		.corz_lend:
327
		jmp .wolf_b
336
		jmp .wolf_b
328
	@@:
337
	@@:
329
		stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf]
338
		stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf]
330
		bt word[pos_wolf],1
339
		bt word[pos_wolf],1
331
		jc .corz_rdn
340
		jc .corz_rdn
332
			stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf]
341
			stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf]
333
			jmp .corz_rend
342
			jmp .corz_rend
334
		.corz_rdn:
343
		.corz_rdn:
335
			stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf]
344
			stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf]
336
		.corz_rend:
345
		.corz_rend:
337
	.wolf_b:
346
	.wolf_b:
338
	ret
347
	ret
339
 
348
 
340
align 4
349
align 4
341
DrawEggs: ;à¨áã¥â ï©æ 
350
DrawEggs: ;à¨áã¥â ï©æ 
342
	pushad
351
	pushad
343
	cld
352
	cld
344
 
353
 
345
	mov eax,dword[pos_eggs]
354
	mov eax,dword[pos_eggs]
346
	xor ebx,ebx
355
	xor ebx,ebx
347
	mov ecx,20 ;横« ¤«ï à¨á®¢ ­¨ï ª®âïé¨åáï ï¨æ
356
	mov ecx,20 ;横« ¤«ï à¨á®¢ ­¨ï ª®âïé¨åáï ï¨æ
348
	@@:
357
	@@:
349
		bt eax,ebx
358
		bt eax,ebx
350
		jae .draw_egg
359
		jae .draw_egg
351
			stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg]
360
			stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg]
352
		.draw_egg:
361
		.draw_egg:
353
		inc ebx
362
		inc ebx
354
		loop @b
363
		loop @b
355
 
364
 
356
	;mov eax,dword[pos_eggs]
365
	;mov eax,dword[pos_eggs]
357
	and eax,mask_chi_left
366
	and eax,mask_chi_left
358
	cmp eax,0
367
	cmp eax,0
359
	je @f
368
	je @f
360
		stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ 
369
		stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ 
361
	@@:
370
	@@:
362
	mov eax,dword[pos_eggs]
371
	mov eax,dword[pos_eggs]
363
	and eax,mask_chi_right
372
	and eax,mask_chi_right
364
	cmp eax,0
373
	cmp eax,0
365
	je @f
374
	je @f
366
		stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ 
375
		stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ 
367
	@@:
376
	@@:
368
 
377
 
369
	mov eax,dword[pos_eggs]
378
	mov eax,dword[pos_eggs]
370
	xor edx,edx
379
	xor edx,edx
371
	mov ebx,bit_chi_left
380
	mov ebx,bit_chi_left
372
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï «¥¢ëå 樯«ïâ
381
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï «¥¢ëå 樯«ïâ
373
	@@:
382
	@@:
374
		bt eax,ebx
383
		bt eax,ebx
375
		jae .draw_chick_l
384
		jae .draw_chick_l
376
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
385
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
377
		.draw_chick_l:
386
		.draw_chick_l:
378
		inc ebx
387
		inc ebx
379
		inc edx
388
		inc edx
380
		loop @b
389
		loop @b
381
	mov ebx,bit_chi_right
390
	mov ebx,bit_chi_right
382
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï ¯à ¢ëå 樯«ïâ
391
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï ¯à ¢ëå 樯«ïâ
383
	@@:
392
	@@:
384
		bt eax,ebx
393
		bt eax,ebx
385
		jae .draw_chick_r
394
		jae .draw_chick_r
386
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
395
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
387
		.draw_chick_r:
396
		.draw_chick_r:
388
		inc ebx
397
		inc ebx
389
		inc edx
398
		inc edx
390
		loop @b
399
		loop @b
391
 
400
 
392
	xor eax,eax
401
	xor eax,eax
393
	mov al,byte[count_last]
402
	mov al,byte[count_last]
394
	mov ecx,eax ;横« ¤«ï à¨á®¢ ­¨ï èâà ä­ëå ®çª®¢
403
	mov ecx,eax ;横« ¤«ï à¨á®¢ ­¨ï èâà ä­ëå ®çª®¢
395
	shr ecx,1
404
	shr ecx,1
396
	mov edx,10 ;¨­¤¥ªá ­ ç «  èâà ä­ëå ¨ª®­®ª ¢ ¡ãä¥à¥ buf_chi
405
	mov edx,10 ;¨­¤¥ªá ­ ç «  èâà ä­ëå ¨ª®­®ª ¢ ¡ãä¥à¥ buf_chi
397
	cmp ecx,0
406
	cmp ecx,0
398
	je .no_unit_last
407
	je .no_unit_last
399
	@@:
408
	@@:
400
		stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
409
		stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
401
		inc edx
410
		inc edx
402
		loop @b
411
		loop @b
403
	.no_unit_last:
412
	.no_unit_last:
404
 
413
 
405
	bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ­¥ ç¥â­®¥ ®çª®
414
	bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ­¥ ç¥â­®¥ ®çª®
406
	jae @f
415
	jae @f
407
		bt word[pos_wolf],bit_mig
416
		bt word[pos_wolf],bit_mig
408
		jc @f
417
		jc @f
409
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà ä­®¥ ®çª®
418
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà ä­®¥ ®çª®
410
	@@:
419
	@@:
411
 
420
 
412
	popad
421
	popad
413
	ret
422
	ret
414
 
423
 
415
align 4
424
align 4
416
CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ ­  1
425
CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ ­  1
417
	push eax edi
426
	push eax edi
418
		xor eax,eax
427
		xor eax,eax
419
		inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ
428
		inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ
420
		cmp word[eggs_count],200 ;¡®­ãá­ë¥ ®çª¨
429
		cmp word[eggs_count],200 ;¡®­ãá­ë¥ ®çª¨
421
		je @f
430
		je @f
422
		cmp word[eggs_count],500 ;¡®­ãá­ë¥ ®çª¨
431
		cmp word[eggs_count],500 ;¡®­ãá­ë¥ ®çª¨
423
		je @f
432
		je @f
424
			jmp .no_bonus
433
			jmp .no_bonus
425
		@@:
434
		@@:
426
			mov byte[count_last],0
435
			mov byte[count_last],0
427
		.no_bonus:
436
		.no_bonus:
428
 
437
 
429
		mov ax,word[eggs_count]
438
		mov ax,word[eggs_count]
430
		mov edi,some_text
439
		mov edi,some_text
431
		call convert_to_str ;®¡­®¢«ï¥¬ ⥪á⮢ãî áâபã
440
		call convert_to_str ;®¡­®¢«ï¥¬ ⥪á⮢ãî áâபã
432
		and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥­ìè ¥¬ ¢à¥¬ï
441
		and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥­ìè ¥¬ ¢à¥¬ï
433
		cmp ax,0
442
		cmp ax,0
434
		jne @f
443
		jne @f
435
			mov edi,dword[game_delay_min] ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
444
			mov edi,dword[game_delay_min] ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
436
			cmp dword[game_spd],edi
445
			cmp dword[game_spd],edi
437
			jle @f
446
			jle @f
438
				dec dword[game_spd]
447
				dec dword[game_spd]
439
		@@:
448
		@@:
440
	pop edi eax
449
	pop edi eax
441
	ret
450
	ret
442
 
451
 
443
;input:
452
;input:
444
; eax - ¬ áª , 㪠§ë¢ îé ï á ª ª®© áâà®­ë 㯠«® ï©æ®
453
; eax - ¬ áª , 㪠§ë¢ îé ï á ª ª®© áâà®­ë 㯠«® ï©æ®
445
align 4
454
align 4
446
CountLastInc: ;­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
455
CountLastInc: ;­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
447
	inc byte[count_last] ;¯®«®¢¨­ ® èâà ä­®£® ®çª 
456
	inc byte[count_last] ;¯®«®¢¨­ ® èâà ä­®£® ®çª 
448
	bt word[pos_wolf],bit_zaac
457
	bt word[pos_wolf],bit_zaac
449
	jc @f
458
	jc @f
450
		inc byte[count_last] ;¥á«¨ ­¥â § ©æ  â® ¥é¥ 1-­  ¯®«®¢¨­  èâà ä­®£® ®çª 
459
		inc byte[count_last] ;¥á«¨ ­¥â § ©æ  â® ¥é¥ 1-­  ¯®«®¢¨­  èâà ä­®£® ®çª 
451
	@@:
460
	@@:
452
	cmp byte[count_last],6
461
	cmp byte[count_last],6
453
	jle @f
462
	jle @f
454
		mov byte[count_last],6 ;áâ ¢¨¬ ®£à ­¨ç¥­¨ ­  ç¨á«® èâà ä­ëå ®çª®¢
463
		mov byte[count_last],6 ;áâ ¢¨¬ ®£à ­¨ç¥­¨ ­  ç¨á«® èâà ä­ëå ®çª®¢
455
	@@:
464
	@@:
456
	or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥­ª 
465
	or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥­ª 
457
	ret
466
	ret
458
 
467
 
459
align 4
468
align 4
460
MoveEggs:
469
MoveEggs:
461
	pushad
470
	pushad
462
	xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ­¨ï
471
	xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ­¨ï
463
 
472
 
464
	cmp byte[count_last],6 ;¬ ªá¨¬ «ì­®¥ ç¨á«® èâà ä­ëå ®çª®¢
473
	cmp byte[count_last],6 ;¬ ªá¨¬ «ì­®¥ ç¨á«® èâà ä­ëå ®çª®¢
465
	je .end_fun
474
	je .end_fun
466
 
475
 
467
	rol dword[pos_eggs],1
476
	rol dword[pos_eggs],1
468
	mov ecx,dword[pos_eggs]
477
	mov ecx,dword[pos_eggs]
469
	and ecx,mask_fail_eggs
478
	and ecx,mask_fail_eggs
470
	cmp ecx,0
479
	cmp ecx,0
471
	je .no_fail ;­¥â ¯ ¤ îé¨å ï¨æ
480
	je .no_fail ;­¥â ¯ ¤ îé¨å ï¨æ
472
		;­ ç¨á«¥­¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨­ã
481
		;­ ç¨á«¥­¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨­ã
473
		;¨«¨ ­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
482
		;¨«¨ ­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
474
		xor ebx,ebx
483
		xor ebx,ebx
475
		mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª 
484
		mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª 
476
		and bl,3 ;­  ¢á直© á«ãç ©
485
		and bl,3 ;­  ¢á直© á«ãç ©
477
 
486
 
478
		bt ecx,5 ;¯à®¢¥à塞 ¢¥àå­¥¥ «¥¢®¥ ¯¥à¨«®
487
		bt ecx,5 ;¯à®¢¥à塞 ¢¥àå­¥¥ «¥¢®¥ ¯¥à¨«®
479
		jae .perilo_lu
488
		jae .perilo_lu
480
			cmp bx,0 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
489
			cmp bx,0 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
481
			jne @f
490
			jne @f
482
				call CountEggsInc
491
				call CountEggsInc
483
				jmp .perilo_lu
492
				jmp .perilo_lu
484
			@@:
493
			@@:
485
				mov eax,mask_chi_cr_l
494
				mov eax,mask_chi_cr_l
486
				call CountLastInc
495
				call CountLastInc
487
			.perilo_lu:
496
			.perilo_lu:
488
		bt ecx,10 ;¯à®¢¥à塞 ­¨¦­¥¥ «¥¢®¥ ¯¥à¨«®
497
		bt ecx,10 ;¯à®¢¥à塞 ­¨¦­¥¥ «¥¢®¥ ¯¥à¨«®
489
		jae .perilo_ld
498
		jae .perilo_ld
490
			cmp bx,2 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
499
			cmp bx,2 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
491
			jne @f
500
			jne @f
492
				call CountEggsInc
501
				call CountEggsInc
493
				jmp .perilo_ld
502
				jmp .perilo_ld
494
			@@:
503
			@@:
495
				mov eax,mask_chi_cr_l
504
				mov eax,mask_chi_cr_l
496
				call CountLastInc
505
				call CountLastInc
497
		.perilo_ld:
506
		.perilo_ld:
498
		bt ecx,15 ;¯à®¢¥à塞 ¢¥àå­¥¥ ¯à ¢®¥ ¯¥à¨«®
507
		bt ecx,15 ;¯à®¢¥à塞 ¢¥àå­¥¥ ¯à ¢®¥ ¯¥à¨«®
499
		jae .perilo_ru
508
		jae .perilo_ru
500
			cmp bx,1 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
509
			cmp bx,1 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
501
			jne @f
510
			jne @f
502
				call CountEggsInc
511
				call CountEggsInc
503
				jmp .perilo_ru
512
				jmp .perilo_ru
504
			@@:
513
			@@:
505
				mov eax,mask_chi_cr_r
514
				mov eax,mask_chi_cr_r
506
				call CountLastInc
515
				call CountLastInc
507
		.perilo_ru:
516
		.perilo_ru:
508
		bt ecx,20 ;¯à®¢¥à塞 ­¨¦­¥¥ ¯à ¢®¥ ¯¥à¨«®
517
		bt ecx,20 ;¯à®¢¥à塞 ­¨¦­¥¥ ¯à ¢®¥ ¯¥à¨«®
509
		jae .perilo_rd
518
		jae .perilo_rd
510
			cmp bx,3 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
519
			cmp bx,3 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
511
			jne @f
520
			jne @f
512
				call CountEggsInc
521
				call CountEggsInc
513
				jmp .perilo_rd
522
				jmp .perilo_rd
514
			@@:
523
			@@:
515
				mov eax,mask_chi_cr_r
524
				mov eax,mask_chi_cr_r
516
				call CountLastInc
525
				call CountLastInc
517
		.perilo_rd:
526
		.perilo_rd:
518
	.no_fail:
527
	.no_fail:
519
 
528
 
520
	and dword[pos_eggs],mask_clear_all ;®ç¨á⪠ 㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३
529
	and dword[pos_eggs],mask_clear_all ;®ç¨á⪠ 㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३
521
 
530
 
522
	call rand_next
531
	call rand_next
523
	cmp byte[zaac_status],0
532
	cmp byte[zaac_status],0
524
	jle @f
533
	jle @f
525
		dec byte[zaac_status]
534
		dec byte[zaac_status]
526
		jmp .no_zaac_move ;§ ïæ ¯®ª  ­¥ ¤¢¨£ ¥âáï
535
		jmp .no_zaac_move ;§ ïæ ¯®ª  ­¥ ¤¢¨£ ¥âáï
527
	@@:
536
	@@:
528
	
537
	
529
	bt dword[rand_x],6 ;§ ïæ ®â ä®­ àï ¬¥­ï¥â áâ âãá
538
	bt dword[rand_x],6 ;§ ïæ ®â ä®­ àï ¬¥­ï¥â áâ âãá
530
	jc @f
539
	jc @f
531
		xor byte[pos_wolf],val_zaac ;¢ëᮢ뢠¥¬/§ á®¢ë¢ ¥¬ § ©æ 
540
		xor byte[pos_wolf],val_zaac ;¢ëᮢ뢠¥¬/§ á®¢ë¢ ¥¬ § ©æ 
532
		bt word[pos_wolf],val_zaac
541
		bt word[pos_wolf],val_zaac
533
		jc .zaac_n
542
		jc .zaac_n
534
			mov byte[zaac_status],val_zaac_time_y ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
543
			mov byte[zaac_status],val_zaac_time_y ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
535
			jmp @f
544
			jmp @f
536
		.zaac_n:
545
		.zaac_n:
537
			mov byte[zaac_status],val_zaac_time_n ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
546
			mov byte[zaac_status],val_zaac_time_n ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
538
	@@:
547
	@@:
539
	.no_zaac_move:
548
	.no_zaac_move:
540
 
549
 
541
	;ᮧ¤ ­¨¥ ­®¢ëå ï¨æ
550
	;ᮧ¤ ­¨¥ ­®¢ëå ï¨æ
542
	cmp word[eggs_count],5 ;¯¥à¢ë¥ 5 ï¨æ ª âïâáï ¯® 1-¬ã
551
	cmp word[eggs_count],5 ;¯¥à¢ë¥ 5 ï¨æ ª âïâáï ¯® 1-¬ã
543
	jge @f
552
	jge @f
544
		mov ecx,dword[pos_eggs]
553
		mov ecx,dword[pos_eggs]
545
		and ecx,mask_move_eggs
554
		and ecx,mask_move_eggs
546
		;cmp ecx,0
555
		;cmp ecx,0
547
		jnz .end_creat
556
		jnz .end_creat
548
	@@:
557
	@@:
549
 
558
 
550
	bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
559
	bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
551
	jc .end_creat
560
	jc .end_creat
552
	bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®­ë ¡ã¤¥¬ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
561
	bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®­ë ¡ã¤¥¬ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
553
	jc .creat_r
562
	jc .creat_r
554
		bt dword[rand_x],7
563
		bt dword[rand_x],7
555
		jc @f
564
		jc @f
556
			or dword[pos_eggs],mask_lot_lu
565
			or dword[pos_eggs],mask_lot_lu
557
			jmp .end_creat
566
			jmp .end_creat
558
		@@:
567
		@@:
559
			or dword[pos_eggs],mask_lot_ld
568
			or dword[pos_eggs],mask_lot_ld
560
			jmp .end_creat
569
			jmp .end_creat
561
	.creat_r:
570
	.creat_r:
562
		bt dword[rand_x],7
571
		bt dword[rand_x],7
563
		jc @f
572
		jc @f
564
			or dword[pos_eggs],mask_lot_ru
573
			or dword[pos_eggs],mask_lot_ru
565
			jmp .end_creat
574
			jmp .end_creat
566
		@@:
575
		@@:
567
			or dword[pos_eggs],mask_lot_rd
576
			or dword[pos_eggs],mask_lot_rd
568
			;jmp .end_creat
577
			;jmp .end_creat
569
	.end_creat:
578
	.end_creat:
570
 
579
 
571
	.end_fun:
580
	.end_fun:
572
	popad
581
	popad
573
	ret
582
	ret
574
 
583
 
575
align 4
584
align 4
576
proc InitGame, b:dword ;¯¥à¢®­ ç «ì­ë¥ ­ áâனª¨ ¨£àë
585
proc InitGame, b:dword ;¯¥à¢®­ ç «ì­ë¥ ­ áâனª¨ ¨£àë
577
	mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
586
	mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
578
	mov byte[some_text],'0'
587
	mov byte[some_text],'0'
579
	mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
588
	mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
580
	mov byte[count_last],0 ;èâà ä­ë¥ ®çª¨
589
	mov byte[count_last],0 ;èâà ä­ë¥ ®çª¨
581
	mov dword[pos_eggs],0
590
	mov dword[pos_eggs],0
582
	mov byte[zaac_status],0
591
	mov byte[zaac_status],0
583
 
592
 
584
	push eax ebx
593
	push eax ebx
585
	cmp dword[b],0
594
	cmp dword[b],0
586
	jne @f
595
	jne @f
587
		mov byte[game_text+5],'€'
596
		mov byte[game_text+5],'€'
588
		mov eax,dword[game_delay_a]
597
		mov eax,dword[game_delay_a]
589
		mov dword[game_spd],eax ;§ ¤¥à¦ª  ¨£àë
598
		mov dword[game_spd],eax ;§ ¤¥à¦ª  ¨£àë
590
		jmp .end_init
599
		jmp .end_init
591
	@@:
600
	@@:
592
		mov byte[game_text+5],''
601
		mov byte[game_text+5],''
593
		mov eax,dword[game_delay_b]
602
		mov eax,dword[game_delay_b]
594
		mov dword[game_spd],eax ;§ ¤¥à¦ª  ¨£àë
603
		mov dword[game_spd],eax ;§ ¤¥à¦ª  ¨£àë
595
	.end_init:
604
	.end_init:
596
 
605
 
597
	mcall 26,9
606
	mcall 26,9
598
	mov dword[rand_x],eax ;§ ¯®«­ï¥¬ 1-¥ á«ãç ©­®¥ ç¨á«®
607
	mov dword[rand_x],eax ;§ ¯®«­ï¥¬ 1-¥ á«ãç ©­®¥ ç¨á«®
599
	pop ebx eax
608
	pop ebx eax
600
 
609
 
601
	ret
610
	ret
602
endp
611
endp
603
 
612
 
604
align 4
613
align 4
605
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
614
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
606
	pushad
615
	pushad
607
	mov edx,dword[displ_bytes]
616
	mov edx,dword[displ_bytes]
608
	mov ecx,edx
617
	mov ecx,edx
609
	imul ecx,dword[count]
618
	imul ecx,dword[count]
610
	mov eax,dword[f_name]
619
	mov eax,dword[f_name]
611
	load_image_file eax,image_data_gray,ecx
620
	load_image_file eax,image_data_gray,ecx
612
		mov edx,dword[displ_bytes]
621
		mov edx,dword[displ_bytes]
613
		mov eax,[image_data_gray]
622
		mov eax,[image_data_gray]
614
		mov edi,dword[buf_start]
623
		mov edi,dword[buf_start]
615
		mov ecx,dword[count]
624
		mov ecx,dword[count]
616
		cld
625
		cld
617
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
626
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
618
			stdcall CreateTrapharetBuffer,edi,eax
627
			stdcall CreateTrapharetBuffer,edi,eax
619
			add eax,edx
628
			add eax,edx
620
			add edi,BUF_STRUCT_SIZE
629
			add edi,BUF_STRUCT_SIZE
621
			loop @b
630
			loop @b
622
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
631
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
623
	popad
632
	popad
624
	ret
633
	ret
625
endp
634
endp
626
 
635
 
627
txt_tile_type_0 rb FILE_NAME_MAX
636
txt_tile_type_0 rb FILE_NAME_MAX
628
 
637
 
629
align 4
638
align 4
630
user_is_select:
639
user_is_select:
631
	push ecx esi edi
640
	push ecx esi edi
632
	
641
	
633
	stdcall [tl_node_get_data], tree1
642
	stdcall [tl_node_get_data], tree1
634
	pop esi
643
	pop esi
635
	cmp esi,0 ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥
644
	cmp esi,0 ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥
636
	je @f	
645
	je @f	
637
		mov edi,ini_name
646
		mov edi,ini_name
638
		mov ecx,FILE_NAME_MAX
647
		mov ecx,FILE_NAME_MAX
639
		cld
648
		cld
640
		rep movsb
649
		rep movsb
641
 
650
 
642
		mov byte[game_select_mode],0
651
		mov byte[game_select_mode],0
643
		call InitAll
652
		call InitAll
644
	@@:
653
	@@:
645
	pop edi esi ecx
654
	pop edi esi ecx
646
 
655
 
647
	call draw_window
656
	call draw_window
648
	ret
657
	ret
649
 
658
 
650
;******************************************************************************
659
;******************************************************************************
651
; äã­ªæ¨ï, ª®â®à ï 1 à § ¤¥« ¥â ¢á¥ ­ áâனª¨ ­ã¦­ë¥ ¤«ï ¨£àë
660
; äã­ªæ¨ï, ª®â®à ï 1 à § ¤¥« ¥â ¢á¥ ­ áâனª¨ ­ã¦­ë¥ ¤«ï ¨£àë
652
;******************************************************************************
661
;******************************************************************************
653
align 4
662
align 4
654
InitAll:
663
InitAll:
655
	pushad
664
	pushad
656
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
665
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
657
	copy_path ini_name,sys_path,file_name,0x0
666
	copy_path ini_name,sys_path,file_name,0x0
658
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
667
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
659
	mov	dword[displ_w],eax
668
	mov	dword[displ_w],eax
660
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
669
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
661
	mov	dword[displ_h],eax
670
	mov	dword[displ_h],eax
662
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file
671
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file
663
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
672
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
664
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file
673
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file
665
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file
674
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file
666
 
675
 
667
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2
676
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2
668
	mov	dword[offs_shadow_x],eax
677
	mov	dword[offs_shadow_x],eax
669
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2
678
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2
670
	mov	dword[offs_shadow_y],eax
679
	mov	dword[offs_shadow_y],eax
671
 
680
 
672
	;áç¨â뢠­¨¥ ­ áâ஥ª ¢«¨ïîé¨å ­  ᪮àáâì ¨£àë
681
	;áç¨â뢠­¨¥ ­ áâ஥ª ¢«¨ïîé¨å ­  ᪮àáâì ¨£àë
673
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_a,65
682
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_a,65
674
	mov	dword[game_delay_a],eax
683
	mov	dword[game_delay_a],eax
675
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_b,35
684
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_b,35
676
	mov	dword[game_delay_b],eax
685
	mov	dword[game_delay_b],eax
677
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_min,15
686
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_min,15
678
	mov	dword[game_delay_min],eax
687
	mov	dword[game_delay_min],eax
679
	
688
	
680
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff
689
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff
681
	mov	dword[color_fon],eax
690
	mov	dword[color_fon],eax
682
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0
691
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0
683
	mov	dword[color_shadows],eax
692
	mov	dword[color_shadows],eax
684
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
693
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
685
	mov	dword[color_wolf],eax
694
	mov	dword[color_wolf],eax
686
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080
695
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080
687
	mov	dword[color_egg],eax
696
	mov	dword[color_egg],eax
688
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0
697
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0
689
	mov	dword[color_chick],eax
698
	mov	dword[color_chick],eax
690
 
699
 
691
	mov ebx,color_decorat
700
	mov ebx,color_decorat
692
	mov byte[key_color_decorat.ind],'0'
701
	mov byte[key_color_decorat.ind],'0'
693
	mov ecx,3
702
	mov ecx,3
694
	cld
703
	cld
695
	@@:
704
	@@:
696
		push ecx ;äã­ªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ­ïâì ॣ¨áâà ecx
705
		push ecx ;äã­ªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ­ïâì ॣ¨áâà ecx
697
		stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080
706
		stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080
698
		pop ecx
707
		pop ecx
699
		mov dword[ebx],eax
708
		mov dword[ebx],eax
700
		add ebx,4
709
		add ebx,4
701
		inc byte[key_color_decorat.ind]
710
		inc byte[key_color_decorat.ind]
702
		loop @b
711
		loop @b
703
 
712
 
704
	mov edx,dword[displ_w]
713
	mov edx,dword[displ_w]
705
	imul edx,dword[displ_h]
714
	imul edx,dword[displ_h]
706
	lea edx,[edx+edx*2]
715
	lea edx,[edx+edx*2]
707
	mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
716
	mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
708
 
717
 
709
	stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
718
	stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
710
	stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
719
	stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
711
	stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
720
	stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
712
	stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
721
	stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
713
 
722
 
714
	load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE
723
	load_image_file 'font8x9.bmp', image_data_gray,IMAGE_FONT_SIZE
715
	stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
724
	stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
716
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
725
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
717
 
726
 
718
	stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
727
	stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
719
	stdcall [buf2d_convert_text_matrix], buf_font
728
	stdcall [buf2d_convert_text_matrix], buf_font
720
 
729
 
721
;¯à®¢¥àª  § ­¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ 
730
;¯à®¢¥àª  § ­¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ 
722
;mov edi,buf_wolf
731
;mov edi,buf_wolf
723
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
732
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
724
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
733
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
725
 
734
 
726
	mov ebx,dword[displ_w]
735
	mov ebx,dword[displ_w]
727
	mov edx,dword[displ_h]
736
	mov edx,dword[displ_h]
728
 
737
 
729
	mov edi,buf_displ
738
	mov edi,buf_displ
730
	mov buf2d_w,ebx
739
	mov buf2d_w,ebx
731
	mov buf2d_h,edx
740
	mov buf2d_h,edx
732
	stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
741
	stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
733
 
742
 
734
	mov edi,buf_fon
743
	mov edi,buf_fon
735
	mov buf2d_w,ebx
744
	mov buf2d_w,ebx
736
	mov buf2d_h,edx
745
	mov buf2d_h,edx
737
	stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
746
	stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
738
 
747
 
739
	call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
748
	call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
740
	stdcall InitGame,0
749
	stdcall InitGame,0
741
	popad
750
	popad
742
	ret
751
	ret
743
 
752
 
744
align 4
753
align 4
745
start:
754
start:
746
	load_libraries l_libs_start,load_lib_end
755
	load_libraries l_libs_start,load_lib_end
747
 
756
 
748
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
757
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
749
	mov	ebp,lib0
758
	mov	ebp,lib0
750
	cmp	dword [ebp+ll_struc_size-4],0
759
	cmp	dword [ebp+ll_struc_size-4],0
751
	jz	@f
760
	jz	@f
752
		mcall -1 ;exit not correct
761
		mcall -1 ;exit not correct
753
	@@:
762
	@@:
754
	mov	ebp,lib1
763
	mov	ebp,lib1
755
	cmp	dword [ebp+ll_struc_size-4],0
764
	cmp	dword [ebp+ll_struc_size-4],0
756
	jz	@f
765
	jz	@f
757
		mcall -1 ;exit not correct
766
		mcall -1 ;exit not correct
758
	@@:
767
	@@:
759
 
768
 
760
	mcall 40,0x27
769
	mcall 40,0x27
761
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
770
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
762
 
771
 
763
;******************************************************************************
772
;******************************************************************************
764
; ¯®¤£®â®¢ª  ᯨ᪠ ¨£®à
773
; ¯®¤£®â®¢ª  ᯨ᪠ ¨£®à
765
;******************************************************************************
774
;******************************************************************************
766
	stdcall dword[tl_data_init], tree1
775
	stdcall dword[tl_data_init], tree1
767
 
776
 
768
	load_image_file fn_icon_tl_sys, image_data_gray,TREE_ICON_SYS16_BMP_SIZE
777
	load_image_file 'tl_sys_16.png', image_data_gray,TREE_ICON_SYS16_BMP_SIZE
769
	stdcall [buf2d_create_f_img], buf_tree_sys,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
778
	stdcall [buf2d_create_f_img], buf_tree_sys,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
770
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
779
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
771
 
780
 
772
	mov edi,buf_tree_sys
781
	mov edi,buf_tree_sys
773
	m2m dword[tree1.data_img_sys],buf2d_data
782
	m2m dword[tree1.data_img_sys],buf2d_data
774
 
783
 
775
	;à ¡®â  á £« ¢­ë¬ ä ©«®¬ ­ áâ஥ª
784
	;à ¡®â  á £« ¢­ë¬ ä ©«®¬ ­ áâ஥ª
776
	copy_path ini_m_name,sys_path,file_name,0x0
785
	copy_path ini_m_name,sys_path,file_name,0x0
777
 
786
 
778
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_count,1
787
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_count,1
779
	mov	ecx,eax
788
	mov	ecx,eax
780
	mov dl,'0'
789
	mov dl,'0'
781
	cld
790
	cld
782
	@@:
791
	@@:
783
		mov byte[key_game_ind],dl
792
		mov byte[key_game_ind],dl
784
		inc dl
793
		inc dl
785
		push ecx edx
794
		push ecx edx
786
		stdcall dword[ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file
795
		stdcall dword[ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file
787
		stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1 ;¤®¡ ¢«ï¥¬ ­ §¢ ­¨¥ ¨£àë
796
		stdcall dword[tl_node_add], txt_tile_type_0, 0, tree1 ;¤®¡ ¢«ï¥¬ ­ §¢ ­¨¥ ¨£àë
788
		stdcall dword[tl_cur_next], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª ¨£à
797
		stdcall dword[tl_cur_next], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª ¨£à
789
		pop edx ecx
798
		pop edx ecx
790
	loop @b
799
	loop @b
791
	stdcall dword[tl_cur_beg], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢¢¥àå
800
	stdcall dword[tl_cur_beg], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢¢¥àå
792
 
801
 
793
	mcall 26,9
802
	mcall 26,9
794
	mov [last_time],ebx
803
	mov [last_time],eax
795
 
804
 
796
 
805
 
797
 
806
 
798
align 4
807
align 4
799
red_win:
808
red_win:
800
	call draw_window
809
	call draw_window
801
 
810
 
802
align 4
811
align 4
803
still: ;£« ¢­ë© 横«
812
still: ;£« ¢­ë© 横«
804
 
813
 
805
	cmp byte[game_select_mode],0
814
	cmp byte[game_select_mode],0
806
	jne .select_mode
815
	jne .select_mode
807
	
816
	
808
	mcall 26,9 ;¡¥à¥¬ á¨á⥬­®¥ ¢à¥¬ï
817
	mcall 26,9 ;¡¥à¥¬ á¨á⥬­®¥ ¢à¥¬ï
809
	mov ebx,[last_time]
818
	mov ebx,[last_time]
810
	add ebx,dword[game_spd] ;delay
819
	add ebx,dword[game_spd] ;delay
811
	sub ebx,eax
820
	sub ebx,eax
812
	cmp ebx,dword[game_spd] ;delay
821
	cmp ebx,dword[game_spd] ;delay
813
	ja it_is_time_now
822
	ja it_is_time_now
814
	test ebx,ebx
823
	test ebx,ebx
815
	jz it_is_time_now
824
	jz it_is_time_now
816
	mcall 23
825
	mcall 23
817
 
-
 
818
	cmp eax,0
826
	cmp eax,0
819
	je it_is_time_now
827
	je it_is_time_now
820
 
828
 
821
	jmp @f
829
	jmp @f
822
	.select_mode:
830
	.select_mode:
823
		mcall 10
831
		mcall 10
824
	@@:
832
	@@:
825
 
833
 
826
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
834
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
827
	jz red_win
835
	jz red_win
828
	cmp al,2
836
	cmp al,2
829
	jz key
837
	jz key
830
	cmp al,3
838
	cmp al,3
831
	jz button
839
	jz button
832
	cmp al,6
840
	cmp al,6
833
	jz mouse
841
	jz mouse
834
 
842
 
835
	jmp still
843
	jmp still
836
 
844
 
837
align 4
845
align 4
838
mouse:
846
mouse:
839
	cmp byte[game_select_mode],0
847
	cmp byte[game_select_mode],0
840
	je @f
848
	je @f
841
		stdcall [tl_mouse], tree1 ;¥á«¨ ¨£à  ¥é¥ ­¥ ¢ë¡à ­ 
849
		stdcall [tl_mouse], tree1 ;¥á«¨ ¨£à  ¥é¥ ­¥ ¢ë¡à ­ 
842
	@@:
850
	@@:
843
	jmp still
851
	jmp still
844
 
852
 
845
align 4
853
align 4
846
it_is_time_now:
854
it_is_time_now:
847
	mcall 26,9
855
	mcall 26,9
848
	mov [last_time],eax
856
	mov [last_time],eax
849
 
857
 
850
	cmp byte[game_select_mode],0
858
	;cmp byte[game_select_mode],0
851
	jne still
859
	;jne still
852
 
860
 
853
	;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪ㭤...
861
	;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪ㭤...
854
	call MoveEggs
862
	call MoveEggs
855
	call draw_display
863
	call draw_display
856
	jmp still
864
	jmp still
857
 
865
 
858
align 4
866
align 4
859
key:
867
key:
860
	push eax ebx
868
	push eax ebx
861
	mcall 2
869
	mcall 2
862
 
870
 
863
	cmp byte[game_select_mode],0
871
	cmp byte[game_select_mode],0
864
	je @f
872
	je @f
865
		stdcall [tl_key], tree1
873
		stdcall [tl_key], tree1
866
	@@:
874
	@@:
867
 
875
 
868
	cmp ah,176 ;Left
876
	cmp ah,176 ;Left
869
	jne @f
877
	jne @f
870
		and byte[pos_wolf],0xfe
878
		and byte[pos_wolf],0xfe
871
	@@:
879
	@@:
872
	cmp ah,179 ;Right
880
	cmp ah,179 ;Right
873
	jne @f
881
	jne @f
874
		or byte[pos_wolf],1
882
		or byte[pos_wolf],1
875
	@@:
883
	@@:
876
	cmp ah,178 ;Up
884
	cmp ah,178 ;Up
877
	jne @f
885
	jne @f
878
		and byte[pos_wolf],0xff-2
886
		and byte[pos_wolf],0xff-2
879
	@@:
887
	@@:
880
	cmp ah,177 ;Down
888
	cmp ah,177 ;Down
881
	jne @f
889
	jne @f
882
		or byte[pos_wolf],2
890
		or byte[pos_wolf],2
883
	@@:
891
	@@:
884
 
892
 
885
	cmp ah,97 ;a
893
	cmp ah,97 ;a
886
	jne @f
894
	jne @f
887
		and byte[pos_wolf],0xff-3 ;00
895
		and byte[pos_wolf],0xff-3 ;00
888
	@@:
896
	@@:
889
	cmp ah,122 ;z
897
	cmp ah,122 ;z
890
	jne @f
898
	jne @f
891
		and byte[pos_wolf],0xff-1
899
		and byte[pos_wolf],0xff-1
892
		or byte[pos_wolf],2 ;10
900
		or byte[pos_wolf],2 ;10
893
	@@:
901
	@@:
894
	cmp ah,39 ;'
902
	cmp ah,39 ;'
895
	jne @f
903
	jne @f
896
		and byte[pos_wolf],0xff-2
904
		and byte[pos_wolf],0xff-2
897
		or byte[pos_wolf],1 ;01
905
		or byte[pos_wolf],1 ;01
898
	@@:
906
	@@:
899
	cmp ah,47 ;/
907
	cmp ah,47 ;/
900
	jne @f
908
	jne @f
901
		or byte[pos_wolf],3 ;11
909
		or byte[pos_wolf],3 ;11
902
	@@:
910
	@@:
903
 
911
 
904
	pop ebx eax
912
	pop ebx eax
905
	jmp still
913
	jmp still
906
 
914
 
907
 
915
 
908
align 4
916
align 4
909
draw_window:
917
draw_window:
910
	pushad
918
	pushad
911
	mcall 12,1
919
	mcall 12,1
912
 
920
 
913
	xor eax,eax
921
	xor eax,eax
914
	mov ebx,20*65536+480
922
	mov ebx,20*65536+480
915
	mov ecx,20*65536+270
923
	mov ecx,20*65536+270
916
	mov edx,[sc.work]
924
	mov edx,[sc.work]
917
	;or edx,0x33000000
925
	;or edx,0x33000000
918
	or edx,0x73000000
926
	or edx,0x73000000
919
	mov edi,hed
927
	mov edi,hed
920
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
928
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
921
	mcall 9,procinfo,-1
929
	mcall 9,procinfo,-1
922
 
930
 
923
	cmp byte[game_select_mode],0
931
	cmp byte[game_select_mode],0
924
	jne .select_mode
932
	jne .select_mode
925
 
933
 
926
	mov edi,buf_displ
934
	mov edi,buf_displ
927
	mov eax,dword[procinfo.client_box.width]
935
	mov eax,dword[procinfo.client_box.width]
928
	cmp eax,dword[displ_w]
936
	cmp eax,dword[displ_w]
929
	jle @f
937
	jle @f
930
		sub eax,dword[displ_w]
938
		sub eax,dword[displ_w]
931
		shr eax,1
939
		shr eax,1
932
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
940
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
933
	@@:
941
	@@:
934
 
942
 
935
	call draw_display
943
	call draw_display
936
 
944
 
937
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
945
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
938
	mov edx,[sc.work]
946
	mov edx,[sc.work]
939
	xor esi,esi
947
	xor esi,esi
940
	mov si,buf2d_l
948
	mov si,buf2d_l
941
	add esi,dword[displ_w]
949
	add esi,dword[displ_w]
942
	mov ebx,dword[procinfo.client_box.width]
950
	mov ebx,dword[procinfo.client_box.width]
943
	inc ebx
951
	inc ebx
944
	cmp esi,ebx
952
	cmp esi,ebx
945
	jge @f
953
	jge @f
946
		sub ebx,esi
954
		sub ebx,esi
947
		rol ebx,16
955
		rol ebx,16
948
		mov bx,si
956
		mov bx,si
949
		rol ebx,16
957
		rol ebx,16
950
		mov ecx,dword[procinfo.client_box.height]
958
		mov ecx,dword[procinfo.client_box.height]
951
		inc ecx
959
		inc ecx
952
		int 0x40 ;à¨á®¢ ­¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï
960
		int 0x40 ;à¨á®¢ ­¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï
953
		jmp .draw_s
961
		jmp .draw_s
954
	@@:
962
	@@:
955
		mov esi,dword[procinfo.client_box.width] ;ª®£¤  ¯® è¨à¨­¥ ­¥ ¢« §¨â
963
		mov esi,dword[procinfo.client_box.width] ;ª®£¤  ¯® è¨à¨­¥ ­¥ ¢« §¨â
956
		inc esi
964
		inc esi
957
	.draw_s:
965
	.draw_s:
958
 
966
 
959
	; *** à¨á®¢ ­¨¥ ª­®¯®ª ***
967
	; *** à¨á®¢ ­¨¥ ª­®¯®ª ***
960
push esi
968
push esi
961
	mov eax,8
969
	mov eax,8
962
	xor ebx,ebx
970
	xor ebx,ebx
963
	mov bx,buf2d_l
971
	mov bx,buf2d_l
964
	add ebx,buf2d_w
972
	add ebx,buf2d_w
965
	add ebx,BUT1_L
973
	add ebx,BUT1_L
966
	shl ebx,16
974
	shl ebx,16
967
	mov bx,BUT1_W
975
	mov bx,BUT1_W
968
	mov ecx,BUT1_T*65536+BUT1_H
976
	mov ecx,BUT1_T*65536+BUT1_H
969
	mov edx,5
977
	mov edx,5
970
	;or edx,0x40000000
978
	;or edx,0x40000000
971
	mov esi,dword[color_but_sm]
979
	mov esi,dword[color_but_sm]
972
	int 0x40
980
	int 0x40
973
 
981
 
974
	inc edx
982
	inc edx
975
	add ecx,BUT1_NEXT_TOP
983
	add ecx,BUT1_NEXT_TOP
976
	int 0x40
984
	int 0x40
977
pop esi
985
pop esi
978
 
986
 
979
	mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ
987
	mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ
980
	mov bx,BUT1_H
988
	mov bx,BUT1_H
981
	add ebx,3*65536;+3
989
	add ebx,3*65536;+3
982
	mov ecx,dword[color_but_te]
990
	mov ecx,dword[color_but_te]
983
	or  ecx,0x80000000
991
	or  ecx,0x80000000
984
	mov edx,txt_game_a
992
	mov edx,txt_game_a
985
	int 0x40
993
	int 0x40
986
 
994
 
987
	ror ebx,16
995
	ror ebx,16
988
	add ebx,BUT1_NEXT_TOP
996
	add ebx,BUT1_NEXT_TOP
989
	ror ebx,16
997
	ror ebx,16
990
	mov edx,txt_game_b
998
	mov edx,txt_game_b
991
	int 0x40
999
	int 0x40
992
 
1000
 
993
	; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
1001
	; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
994
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
1002
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
995
	mov edx,[sc.work]
1003
	mov edx,[sc.work]
996
 
1004
 
997
	mov ebx,esi
1005
	mov ebx,esi
998
	mov ecx,dword[procinfo.client_box.height]
1006
	mov ecx,dword[procinfo.client_box.height]
999
	inc ecx
1007
	inc ecx
1000
	mov esi,dword[displ_h]
1008
	mov esi,dword[displ_h]
1001
	cmp esi,ebx
1009
	cmp esi,ebx
1002
	jge @f
1010
	jge @f
1003
		sub ecx,esi
1011
		sub ecx,esi
1004
		rol ecx,16
1012
		rol ecx,16
1005
		mov cx,si
1013
		mov cx,si
1006
		rol ecx,16
1014
		rol ecx,16
1007
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
1015
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
1008
	@@:
1016
	@@:
1009
	
1017
	
1010
	xor ebx,ebx
1018
	xor ebx,ebx
1011
	mov bx,buf2d_l
1019
	mov bx,buf2d_l
1012
	mov ecx,dword[displ_h]
1020
	mov ecx,dword[displ_h]
1013
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
1021
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
1014
 
1022
 
1015
	jmp @f
1023
	jmp @f
1016
	.select_mode:
1024
	.select_mode:
1017
		stdcall dword[tl_draw],dword tree1
1025
		stdcall dword[tl_draw],dword tree1
1018
		mov edi,tree1
1026
		mov edi,tree1
1019
		add edi,tl_offs_box
1027
		add edi,tl_offs_box
1020
		stdcall draw_rect_border, procinfo.client_box, edi
1028
		stdcall draw_rect_border, procinfo.client_box, edi
1021
	@@:
1029
	@@:
1022
 
1030
 
1023
	mcall 12,2
1031
	mcall 12,2
1024
	popad
1032
	popad
1025
	ret
1033
	ret
1026
 
1034
 
1027
; äã­ªæ¨ï à¨áã¥â ¯®«ï ¢®ªà㣠¯àאַ㣮«ì­¨ª  user_box
1035
; äã­ªæ¨ï à¨áã¥â ¯®«ï ¢®ªà㣠¯àאַ㣮«ì­¨ª  user_box
1028
; à §¬¥à ¯®«¥© ¢ëç¨á«ï¥âáï ¨áå®¤ï ¨§ à §¬¥à®¢ client_rect
1036
; à §¬¥à ¯®«¥© ¢ëç¨á«ï¥âáï ¨áå®¤ï ¨§ à §¬¥à®¢ client_rect
1029
; ¯à¥¤¯®« £ ¥âáï, çâ® ¢ ¡®«ì設á⢥ á«ãç ¥¢ client_rect > user_box
1037
; ¯à¥¤¯®« £ ¥âáï, çâ® ¢ ¡®«ì設á⢥ á«ãç ¥¢ client_rect > user_box
1030
align 4
1038
align 4
1031
proc draw_rect_border, client_rect:dword, user_box:dword
1039
proc draw_rect_border, client_rect:dword, user_box:dword
1032
	pushad
1040
	pushad
1033
	mov edi,dword[client_rect]
1041
	mov edi,dword[client_rect]
1034
	mov esi,dword[user_box]
1042
	mov esi,dword[user_box]
1035
	cmp esi,0
1043
	cmp esi,0
1036
	je @f
1044
	je @f
1037
		mov ebx,dword[edi+8] ;+8 = width
1045
		mov ebx,dword[edi+8] ;+8 = width
1038
		inc bx
1046
		inc bx
1039
		mov ecx,dword[esi+4] ;+4 = top
1047
		mov ecx,dword[esi+4] ;+4 = top
1040
		mov edx,[sc.work]
1048
		mov edx,[sc.work]
1041
		mov eax,13
1049
		mov eax,13
1042
		int 0x40 ;top
1050
		int 0x40 ;top
1043
 
1051
 
1044
		mov eax,dword[esi+4] ;+4 = top
1052
		mov eax,dword[esi+4] ;+4 = top
1045
		add eax,dword[esi+12] ;+12 = height
1053
		add eax,dword[esi+12] ;+12 = height
1046
		cmp eax,dword[edi+12]
1054
		cmp eax,dword[edi+12]
1047
		jge .no_bottom
1055
		jge .no_bottom
1048
			mov ecx,eax
1056
			mov ecx,eax
1049
			shl ecx,16
1057
			shl ecx,16
1050
			mov cx,word[edi+12] ;+12 = bottom
1058
			mov cx,word[edi+12] ;+12 = bottom
1051
			inc cx
1059
			inc cx
1052
			sub cx,ax
1060
			sub cx,ax
1053
			mov eax,13
1061
			mov eax,13
1054
			int 0x40 ;bottom
1062
			int 0x40 ;bottom
1055
		.no_bottom:
1063
		.no_bottom:
1056
 
1064
 
1057
		mov ebx,dword[esi] ;+0 left
1065
		mov ebx,dword[esi] ;+0 left
1058
		mov ecx,dword[esi+4] ;+4 = top
1066
		mov ecx,dword[esi+4] ;+4 = top
1059
		shl ecx,16
1067
		shl ecx,16
1060
		mov cx,word[esi+12] ;+12 = height
1068
		mov cx,word[esi+12] ;+12 = height
1061
		inc cx 
1069
		inc cx 
1062
		mov eax,13
1070
		mov eax,13
1063
		int 0x40 ;left
1071
		int 0x40 ;left
1064
 
1072
 
1065
		mov eax,dword[esi] ;+0 left
1073
		mov eax,dword[esi] ;+0 left
1066
		add eax,dword[esi+8] ;+8 = width
1074
		add eax,dword[esi+8] ;+8 = width
1067
		mov ebx,eax
1075
		mov ebx,eax
1068
		shl ebx,16
1076
		shl ebx,16
1069
		mov bx,word[edi+8] ;+8 = right
1077
		mov bx,word[edi+8] ;+8 = right
1070
		sub bx,ax
1078
		sub bx,ax
1071
		inc bx
1079
		inc bx
1072
		mov eax,13
1080
		mov eax,13
1073
		int 0x40 ;right
1081
		int 0x40 ;right
1074
	@@:
1082
	@@:
1075
	popad
1083
	popad
1076
	ret
1084
	ret
1077
endp
1085
endp
1078
 
1086
 
1079
align 4
1087
align 4
1080
draw_display:
1088
draw_display:
1081
 
1089
 
1082
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
1090
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
1083
	call DrawZaac ;à¨á㥬 § ©æ 
1091
	call DrawZaac ;à¨á㥬 § ©æ 
1084
	call DrawWolf ;à¨á㥬 ¢®«ª 
1092
	call DrawWolf ;à¨á㥬 ¢®«ª 
1085
	call DrawEggs ;à¨á㥬 ï©æ 
1093
	call DrawEggs ;à¨á㥬 ï©æ 
1086
 
1094
 
1087
push eax
1095
push eax
1088
	mov eax,dword[displ_w]
1096
	mov eax,dword[displ_w]
1089
	shr eax,1
1097
	shr eax,1
1090
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬
1098
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬
1091
pop eax
1099
pop eax
1092
	stdcall [buf2d_draw], buf_displ
1100
	stdcall [buf2d_draw], buf_displ
1093
	ret
1101
	ret
1094
 
1102
 
1095
align 4
1103
align 4
1096
button:
1104
button:
1097
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
1105
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
1098
 
1106
 
1099
	cmp ah,5
1107
	cmp ah,5
1100
	jne @f
1108
	jne @f
1101
		stdcall InitGame,0
1109
		stdcall InitGame,0
1102
	@@:
1110
	@@:
1103
	cmp ah,6
1111
	cmp ah,6
1104
	jne @f
1112
	jne @f
1105
		stdcall InitGame,1
1113
		stdcall InitGame,1
1106
	@@:
1114
	@@:
1107
	cmp ah,1
1115
	cmp ah,1
1108
	jne still
1116
	jne still
1109
.exit:
1117
.exit:
1110
	stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
1118
	stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
1111
	stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
1119
	stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
1112
 
1120
 
1113
	stdcall [buf2d_delete],buf_tree_sys
1121
	stdcall [buf2d_delete],buf_tree_sys
1114
	stdcall [buf2d_delete],buf_font
1122
	stdcall [buf2d_delete],buf_font
1115
 
1123
 
1116
	cld
1124
	cld
1117
	mov ecx,3
1125
	mov ecx,3
1118
	mov edi,buf_decor
1126
	mov edi,buf_decor
1119
	@@: ;㤠«ï¥¬ 3 ¡ãä¥à 
1127
	@@: ;㤠«ï¥¬ 3 ¡ãä¥à 
1120
		stdcall [buf2d_delete],edi
1128
		stdcall [buf2d_delete],edi
1121
		add edi,BUF_STRUCT_SIZE
1129
		add edi,BUF_STRUCT_SIZE
1122
		loop @b
1130
		loop @b
1123
	mov ecx,9
1131
	mov ecx,9
1124
	mov edi,buf_wolf
1132
	mov edi,buf_wolf
1125
	@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
1133
	@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
1126
		stdcall [buf2d_delete],edi
1134
		stdcall [buf2d_delete],edi
1127
		add edi,BUF_STRUCT_SIZE
1135
		add edi,BUF_STRUCT_SIZE
1128
		loop @b
1136
		loop @b
1129
	mov ecx,13
1137
	mov ecx,13
1130
	mov edi,buf_chi
1138
	mov edi,buf_chi
1131
	@@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢
1139
	@@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢
1132
		stdcall [buf2d_delete],edi
1140
		stdcall [buf2d_delete],edi
1133
		add edi,BUF_STRUCT_SIZE
1141
		add edi,BUF_STRUCT_SIZE
1134
		loop @b
1142
		loop @b
1135
	mov ecx,22
1143
	mov ecx,22
1136
	mov edi,buf_egg
1144
	mov edi,buf_egg
1137
	@@: ;㤠«ï¥¬ 22 ¡ãä¥à 
1145
	@@: ;㤠«ï¥¬ 22 ¡ãä¥à 
1138
		stdcall [buf2d_delete],edi
1146
		stdcall [buf2d_delete],edi
1139
		add edi,BUF_STRUCT_SIZE
1147
		add edi,BUF_STRUCT_SIZE
1140
		loop @b
1148
		loop @b
1141
 
1149
 
1142
	mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥
1150
	mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥
1143
	stdcall dword[tl_data_clear], tree1
1151
	stdcall dword[tl_data_clear], tree1
1144
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
1152
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
1145
 
1153
 
1146
head_f_i:
1154
head_f_i:
1147
head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
1155
head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
1148
 
1156
 
1149
system_dir0 db '/sys/lib/'
1157
system_dir0 db '/sys/lib/'
1150
lib0_name db 'buf2d.obj',0
1158
lib0_name db 'buf2d.obj',0
1151
err_message_found_lib0 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0
1159
err_message_found_lib0 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0
1152
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0
1160
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0
1153
 
1161
 
1154
system_dir1 db '/sys/lib/'
1162
system_dir1 db '/sys/lib/'
1155
lib1_name db 'libimg.obj',0
1163
lib1_name db 'libimg.obj',0
1156
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
1164
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
1157
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
1165
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
1158
 
1166
 
1159
system_dir2 db '/sys/lib/'
1167
system_dir2 db '/sys/lib/'
1160
lib2_name db 'libini.obj',0
1168
lib2_name db 'libini.obj',0
1161
err_message_found_lib2 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
1169
err_message_found_lib2 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
1162
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
1170
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
1163
 
1171
 
1164
system_dir3 db '/sys/lib/'
1172
system_dir3 db '/sys/lib/'
1165
lib3_name db 'box_lib.obj',0
1173
lib3_name db 'box_lib.obj',0
1166
err_message_found_lib3 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0
1174
err_message_found_lib3 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0
1167
err_message_import3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0
1175
err_message_import3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0
1168
 
1176
 
1169
;library structures
1177
;library structures
1170
l_libs_start:
1178
l_libs_start:
1171
	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
1179
	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
1172
	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
1180
	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
1173
	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
1181
	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
1174
	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
1182
	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
1175
load_lib_end:
1183
load_lib_end:
1176
 
1184
 
1177
align 4
1185
align 4
1178
proc mem_copy, source:dword, destination:dword, len:dword
1186
proc mem_copy, source:dword, destination:dword, len:dword
1179
  push ecx esi edi
1187
  push ecx esi edi
1180
    cld
1188
    cld
1181
    mov esi, dword[source]
1189
    mov esi, dword[source]
1182
    mov edi, dword[destination]
1190
    mov edi, dword[destination]
1183
    mov ecx, dword[len]
1191
    mov ecx, dword[len]
1184
    rep movsb
1192
    rep movsb
1185
  pop edi esi ecx
1193
  pop edi esi ecx
1186
  ret
1194
  ret
1187
endp
1195
endp
1188
 
1196
 
1189
align 4
1197
align 4
1190
convert_to_str:
1198
convert_to_str:
1191
	pushad
1199
	pushad
1192
	;mov eax,dword[value]
1200
	;mov eax,dword[value]
1193
	;mov edi,dword[text]
1201
	;mov edi,dword[text]
1194
	mov dword[edi+1],0
1202
	mov dword[edi+1],0
1195
	cld
1203
	cld
1196
	call .str
1204
	call .str
1197
	popad
1205
	popad
1198
	ret
1206
	ret
1199
 
1207
 
1200
 
1208
 
1201
align 4
1209
align 4
1202
.str:
1210
.str:
1203
  mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1211
  mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1204
    ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1212
    ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1205
  cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1213
  cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1206
  jb @f
1214
  jb @f
1207
  xor edx,edx  ;®ç¨áâ¨âì edx
1215
  xor edx,edx  ;®ç¨áâ¨âì edx
1208
  div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1216
  div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1209
  push edx     ;¯®«®¦¨âì ¢ á⥪
1217
  push edx     ;¯®«®¦¨âì ¢ á⥪
1210
  ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1218
  ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1211
  call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1219
  call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1212
  pop eax
1220
  pop eax
1213
  @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1221
  @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1214
  ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
1222
  ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
1215
  ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
1223
  ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
1216
  or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1224
  or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1217
  stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1225
  stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1218
  ret	      ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1226
  ret	      ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1219
 
1227
 
1220
 
1228
 
1221
last_time dd ?
1229
last_time dd 0
1222
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
1230
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
1223
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
1231
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
1224
 
1232
 
1225
run_file_70 FileInfoBlock
1233
run_file_70 FileInfoBlock
1226
hed db 'Nu pogodi 17.09.10',0 ;¯®¤¯¨áì ®ª­ 
1234
hed db 'Nu pogodi 17.09.10',0 ;¯®¤¯¨áì ®ª­ 
1227
sc system_colors  ;á¨á⥬­ë¥ 梥â 
1235
sc system_colors  ;á¨á⥬­ë¥ 梥â 
1228
 
1236
 
1229
count_of_dir_list_files equ 10
1237
count_of_dir_list_files equ 10
1230
el_focus dd tree1
1238
el_focus dd tree1
1231
tree1 tree_list FILE_NAME_MAX,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
1239
tree1 tree_list FILE_NAME_MAX,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
1232
	16,16, 0x8080ff,0x0000ff,0xffffff, 10,10,140,100, 0,0,0, el_focus,\
1240
	16,16, 0x8080ff,0x0000ff,0xffffff, 10,10,140,100, 0,0,0, el_focus,\
1233
	0,user_is_select
1241
	0,user_is_select
1234
 
1242
 
1235
align 4
1243
align 4
1236
buf_tree_sys:
1244
buf_tree_sys:
1237
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1245
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1238
	dw 0 ;+4 left
1246
	dw 0 ;+4 left
1239
	dw 0 ;+6 top
1247
	dw 0 ;+6 top
1240
	dd 16 ;+8 w
1248
	dd 16 ;+8 w
1241
	dd 16*11 ;+12 h
1249
	dd 16*11 ;+12 h
1242
	dd 0 ;+16 color
1250
	dd 0 ;+16 color
1243
	db 24 ;+20 bit in pixel
1251
	db 24 ;+20 bit in pixel
1244
 
1252
 
1245
align 4
1253
align 4
1246
buf_font: ;¡ãä¥à á® èà¨ä⮬
1254
buf_font: ;¡ãä¥à á® èà¨ä⮬
1247
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1255
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1248
	dw 25 ;+4 left
1256
	dw 25 ;+4 left
1249
	dw 25 ;+6 top
1257
	dw 25 ;+6 top
1250
	dd 128 ;+8 w
1258
	dd 128 ;+8 w
1251
	dd 144 ;+12 h
1259
	dd 144 ;+12 h
1252
	dd 0 ;+16 color
1260
	dd 0 ;+16 color
1253
	db 24 ;+20 bit in pixel
1261
	db 24 ;+20 bit in pixel
1254
 
1262
 
1255
align 4
1263
align 4
1256
buf_displ:
1264
buf_displ:
1257
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1265
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1258
	dw 25,0
1266
	dw 25,0
1259
	dd ? ;+8 w
1267
	dd ? ;+8 w
1260
	dd ? ;+12 h
1268
	dd ? ;+12 h
1261
	dd 0 ;+16 color
1269
	dd 0 ;+16 color
1262
	db 24 ;+20 bit in pixel
1270
	db 24 ;+20 bit in pixel
1263
 
1271
 
1264
align 4
1272
align 4
1265
buf_fon: ;ä®­®¢ë© ¡ãä¥à
1273
buf_fon: ;ä®­®¢ë© ¡ãä¥à
1266
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1274
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1267
	dw 0 ;+4 left
1275
	dw 0 ;+4 left
1268
	dw 0 ;+6 top
1276
	dw 0 ;+6 top
1269
	dd ? ;+8 w
1277
	dd ? ;+8 w
1270
	dd ? ;+12 h
1278
	dd ? ;+12 h
1271
	dd 0xffffff ;+16 color
1279
	dd 0xffffff ;+16 color
1272
	db 24 ;+20 bit in pixel
1280
	db 24 ;+20 bit in pixel
1273
 
1281
 
1274
align 4
1282
align 4
1275
buf_decor: ;¡ãä¥à  á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥭¨ï¬¨
1283
buf_decor: ;¡ãä¥à  á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥭¨ï¬¨
1276
	rb 3*BUF_STRUCT_SIZE
1284
	rb 3*BUF_STRUCT_SIZE
1277
 
1285
 
1278
align 4
1286
align 4
1279
buf_wolf:
1287
buf_wolf:
1280
	rb 9*BUF_STRUCT_SIZE
1288
	rb 9*BUF_STRUCT_SIZE
1281
 
1289
 
1282
align 4
1290
align 4
1283
buf_egg:
1291
buf_egg:
1284
	rb 22*BUF_STRUCT_SIZE
1292
	rb 22*BUF_STRUCT_SIZE
1285
 
1293
 
1286
align 4
1294
align 4
1287
buf_chi:
1295
buf_chi:
1288
	rb 13*BUF_STRUCT_SIZE
1296
	rb 13*BUF_STRUCT_SIZE
1289
 
1297
 
1290
 
1298
 
1291
 
1299
 
1292
align 4
1300
align 4
1293
import_libini:
1301
import_libini:
1294
	dd alib_init0
1302
	dd alib_init0
1295
	ini_get_str   dd aini_get_str
1303
	ini_get_str   dd aini_get_str
1296
	ini_get_int   dd aini_get_int
1304
	ini_get_int   dd aini_get_int
1297
	ini_get_color dd aini_get_color
1305
	ini_get_color dd aini_get_color
1298
dd 0,0
1306
dd 0,0
1299
	alib_init0     db 'lib_init',0
1307
	alib_init0     db 'lib_init',0
1300
	aini_get_str   db 'ini_get_str',0
1308
	aini_get_str   db 'ini_get_str',0
1301
	aini_get_int   db 'ini_get_int',0
1309
	aini_get_int   db 'ini_get_int',0
1302
	aini_get_color db 'ini_get_color',0
1310
	aini_get_color db 'ini_get_color',0
1303
 
1311
 
1304
align 4
1312
align 4
1305
import_libimg:
1313
import_libimg:
1306
  dd alib_init1
1314
  dd alib_init1
1307
  img_is_img  dd aimg_is_img
1315
  img_is_img  dd aimg_is_img
1308
  img_info    dd aimg_info
1316
  img_info    dd aimg_info
1309
  img_from_file dd aimg_from_file
1317
  img_from_file dd aimg_from_file
1310
  img_to_file dd aimg_to_file
1318
  img_to_file dd aimg_to_file
1311
  img_from_rgb dd aimg_from_rgb
1319
  img_from_rgb dd aimg_from_rgb
1312
  img_to_rgb  dd aimg_to_rgb
1320
  img_to_rgb  dd aimg_to_rgb
1313
  img_to_rgb2 dd aimg_to_rgb2
1321
  img_to_rgb2 dd aimg_to_rgb2
1314
  img_decode  dd aimg_decode
1322
  img_decode  dd aimg_decode
1315
  img_encode  dd aimg_encode
1323
  img_encode  dd aimg_encode
1316
  img_create  dd aimg_create
1324
  img_create  dd aimg_create
1317
  img_destroy dd aimg_destroy
1325
  img_destroy dd aimg_destroy
1318
  img_destroy_layer dd aimg_destroy_layer
1326
  img_destroy_layer dd aimg_destroy_layer
1319
  img_count   dd aimg_count
1327
  img_count   dd aimg_count
1320
  img_lock_bits dd aimg_lock_bits
1328
  img_lock_bits dd aimg_lock_bits
1321
  img_unlock_bits dd aimg_unlock_bits
1329
  img_unlock_bits dd aimg_unlock_bits
1322
  img_flip    dd aimg_flip
1330
  img_flip    dd aimg_flip
1323
  img_flip_layer dd aimg_flip_layer
1331
  img_flip_layer dd aimg_flip_layer
1324
  img_rotate  dd aimg_rotate
1332
  img_rotate  dd aimg_rotate
1325
  img_rotate_layer dd aimg_rotate_layer
1333
  img_rotate_layer dd aimg_rotate_layer
1326
  img_draw    dd aimg_draw
1334
  img_draw    dd aimg_draw
1327
 
1335
 
1328
  dd 0,0
1336
  dd 0,0
1329
  alib_init1   db 'lib_init',0
1337
  alib_init1   db 'lib_init',0
1330
  aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
1338
  aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
1331
  aimg_info    db 'img_info',0
1339
  aimg_info    db 'img_info',0
1332
  aimg_from_file db 'img_from_file',0
1340
  aimg_from_file db 'img_from_file',0
1333
  aimg_to_file db 'img_to_file',0
1341
  aimg_to_file db 'img_to_file',0
1334
  aimg_from_rgb db 'img_from_rgb',0
1342
  aimg_from_rgb db 'img_from_rgb',0
1335
  aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
1343
  aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
1336
  aimg_to_rgb2 db 'img_to_rgb2',0
1344
  aimg_to_rgb2 db 'img_to_rgb2',0
1337
  aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
1345
  aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
1338
  aimg_encode  db 'img_encode',0
1346
  aimg_encode  db 'img_encode',0
1339
  aimg_create  db 'img_create',0
1347
  aimg_create  db 'img_create',0
1340
  aimg_destroy db 'img_destroy',0
1348
  aimg_destroy db 'img_destroy',0
1341
  aimg_destroy_layer db 'img_destroy_layer',0
1349
  aimg_destroy_layer db 'img_destroy_layer',0
1342
  aimg_count   db 'img_count',0
1350
  aimg_count   db 'img_count',0
1343
  aimg_lock_bits db 'img_lock_bits',0
1351
  aimg_lock_bits db 'img_lock_bits',0
1344
  aimg_unlock_bits db 'img_unlock_bits',0
1352
  aimg_unlock_bits db 'img_unlock_bits',0
1345
  aimg_flip    db 'img_flip',0
1353
  aimg_flip    db 'img_flip',0
1346
  aimg_flip_layer db 'img_flip_layer',0
1354
  aimg_flip_layer db 'img_flip_layer',0
1347
  aimg_rotate  db 'img_rotate',0
1355
  aimg_rotate  db 'img_rotate',0
1348
  aimg_rotate_layer db 'img_rotate_layer',0
1356
  aimg_rotate_layer db 'img_rotate_layer',0
1349
  aimg_draw    db 'img_draw',0
1357
  aimg_draw    db 'img_draw',0
1350
 
1358
 
1351
align 4
1359
align 4
1352
import_buf2d_lib:
1360
import_buf2d_lib:
1353
	dd sz_lib_init
1361
	dd sz_lib_init
1354
	buf2d_create dd sz_buf2d_create
1362
	buf2d_create dd sz_buf2d_create
1355
	buf2d_create_f_img dd sz_buf2d_create_f_img
1363
	buf2d_create_f_img dd sz_buf2d_create_f_img
1356
	buf2d_clear dd sz_buf2d_clear
1364
	buf2d_clear dd sz_buf2d_clear
1357
	buf2d_draw dd sz_buf2d_draw
1365
	buf2d_draw dd sz_buf2d_draw
1358
	buf2d_delete dd sz_buf2d_delete
1366
	buf2d_delete dd sz_buf2d_delete
1359
	buf2d_line dd sz_buf2d_line
1367
	buf2d_line dd sz_buf2d_line
1360
	buf2d_circle dd sz_buf2d_circle
1368
	buf2d_circle dd sz_buf2d_circle
1361
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
1369
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
1362
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
1370
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
1363
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
1371
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
1364
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
1372
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
1365
	buf2d_bit_blt dd sz_buf2d_bit_blt
1373
	buf2d_bit_blt dd sz_buf2d_bit_blt
1366
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
1374
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
1367
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
1375
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
1368
	buf2d_curve_bezier dd sz_buf2d_curve_bezier
1376
	buf2d_curve_bezier dd sz_buf2d_curve_bezier
1369
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
1377
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
1370
	buf2d_draw_text dd sz_buf2d_draw_text
1378
	buf2d_draw_text dd sz_buf2d_draw_text
1371
	buf2d_crop_color dd sz_buf2d_crop_color
1379
	buf2d_crop_color dd sz_buf2d_crop_color
1372
	buf2d_offset_h dd sz_buf2d_offset_h	
1380
	buf2d_offset_h dd sz_buf2d_offset_h	
1373
	dd 0,0
1381
	dd 0,0
1374
	sz_lib_init db 'lib_init',0
1382
	sz_lib_init db 'lib_init',0
1375
	sz_buf2d_create db 'buf2d_create',0
1383
	sz_buf2d_create db 'buf2d_create',0
1376
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
1384
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
1377
	sz_buf2d_clear db 'buf2d_clear',0
1385
	sz_buf2d_clear db 'buf2d_clear',0
1378
	sz_buf2d_draw db 'buf2d_draw',0
1386
	sz_buf2d_draw db 'buf2d_draw',0
1379
	sz_buf2d_delete db 'buf2d_delete',0
1387
	sz_buf2d_delete db 'buf2d_delete',0
1380
	sz_buf2d_line db 'buf2d_line',0
1388
	sz_buf2d_line db 'buf2d_line',0
1381
	sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ­¨¥ ®ªà㦭®áâ¨
1389
	sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ­¨¥ ®ªà㦭®áâ¨
1382
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
1390
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
1383
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
1391
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
1384
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
1392
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
1385
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
1393
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
1386
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
1394
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
1387
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
1395
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
1388
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
1396
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
1389
	sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
1397
	sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
1390
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
1398
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
1391
	sz_buf2d_draw_text db 'buf2d_draw_text',0
1399
	sz_buf2d_draw_text db 'buf2d_draw_text',0
1392
	sz_buf2d_crop_color db 'buf2d_crop_color',0
1400
	sz_buf2d_crop_color db 'buf2d_crop_color',0
1393
	sz_buf2d_offset_h db 'buf2d_offset_h',0
1401
	sz_buf2d_offset_h db 'buf2d_offset_h',0
1394
 
1402
 
1395
align 4
1403
align 4
1396
import_box_lib:
1404
import_box_lib:
1397
	dd alib_init2
1405
	dd alib_init2
1398
 
1406
 
1399
	;scrollbar_ver_draw  dd aScrollbar_ver_draw
1407
	;scrollbar_ver_draw  dd aScrollbar_ver_draw
1400
 
1408
 
1401
	tl_data_init dd sz_tl_data_init
1409
	tl_data_init dd sz_tl_data_init
1402
	tl_data_clear dd sz_tl_data_clear
1410
	tl_data_clear dd sz_tl_data_clear
1403
	tl_info_clear dd sz_tl_info_clear
1411
	tl_info_clear dd sz_tl_info_clear
1404
	tl_key dd sz_tl_key
1412
	tl_key dd sz_tl_key
1405
	tl_mouse dd sz_tl_mouse
1413
	tl_mouse dd sz_tl_mouse
1406
	tl_draw dd sz_tl_draw
1414
	tl_draw dd sz_tl_draw
1407
	tl_info_undo dd sz_tl_info_undo
1415
	tl_info_undo dd sz_tl_info_undo
1408
	tl_info_redo dd sz_tl_info_redo
1416
	tl_info_redo dd sz_tl_info_redo
1409
	tl_node_add dd sz_tl_node_add
1417
	tl_node_add dd sz_tl_node_add
1410
	tl_node_set_data dd sz_tl_node_set_data
1418
	tl_node_set_data dd sz_tl_node_set_data
1411
	tl_node_get_data dd sz_tl_node_get_data
1419
	tl_node_get_data dd sz_tl_node_get_data
1412
	tl_node_delete dd sz_tl_node_delete
1420
	tl_node_delete dd sz_tl_node_delete
1413
	tl_cur_beg dd sz_tl_cur_beg
1421
	tl_cur_beg dd sz_tl_cur_beg
1414
	tl_cur_next dd sz_tl_cur_next
1422
	tl_cur_next dd sz_tl_cur_next
1415
	tl_cur_perv dd sz_tl_cur_perv
1423
	tl_cur_perv dd sz_tl_cur_perv
1416
	tl_node_close_open dd sz_tl_node_close_open
1424
	tl_node_close_open dd sz_tl_node_close_open
1417
	tl_node_lev_inc dd sz_tl_node_lev_inc
1425
	tl_node_lev_inc dd sz_tl_node_lev_inc
1418
	tl_node_lev_dec dd sz_tl_node_lev_dec
1426
	tl_node_lev_dec dd sz_tl_node_lev_dec
1419
 
1427
 
1420
dd 0,0
1428
dd 0,0
1421
	alib_init2 db 'lib_init',0
1429
	alib_init2 db 'lib_init',0
1422
 
1430
 
1423
	;aScrollbar_ver_draw  db 'scrollbar_v_draw',0
1431
	;aScrollbar_ver_draw  db 'scrollbar_v_draw',0
1424
 
1432
 
1425
	sz_tl_data_init db 'tl_data_init',0
1433
	sz_tl_data_init db 'tl_data_init',0
1426
	sz_tl_data_clear db 'tl_data_clear',0
1434
	sz_tl_data_clear db 'tl_data_clear',0
1427
	sz_tl_info_clear db 'tl_info_clear',0
1435
	sz_tl_info_clear db 'tl_info_clear',0
1428
	sz_tl_key db 'tl_key',0
1436
	sz_tl_key db 'tl_key',0
1429
	sz_tl_mouse db 'tl_mouse',0
1437
	sz_tl_mouse db 'tl_mouse',0
1430
	sz_tl_draw db 'tl_draw',0
1438
	sz_tl_draw db 'tl_draw',0
1431
	sz_tl_info_undo db 'tl_info_undo',0
1439
	sz_tl_info_undo db 'tl_info_undo',0
1432
	sz_tl_info_redo db 'tl_info_redo',0
1440
	sz_tl_info_redo db 'tl_info_redo',0
1433
	sz_tl_node_add db 'tl_node_add',0
1441
	sz_tl_node_add db 'tl_node_add',0
1434
	sz_tl_node_set_data db 'tl_node_set_data',0
1442
	sz_tl_node_set_data db 'tl_node_set_data',0
1435
	sz_tl_node_get_data db 'tl_node_get_data',0
1443
	sz_tl_node_get_data db 'tl_node_get_data',0
1436
	sz_tl_node_delete db 'tl_node_delete',0
1444
	sz_tl_node_delete db 'tl_node_delete',0
1437
	sz_tl_cur_beg db 'tl_cur_beg',0
1445
	sz_tl_cur_beg db 'tl_cur_beg',0
1438
	sz_tl_cur_next db 'tl_cur_next',0
1446
	sz_tl_cur_next db 'tl_cur_next',0
1439
	sz_tl_cur_perv db 'tl_cur_perv',0
1447
	sz_tl_cur_perv db 'tl_cur_perv',0
1440
	sz_tl_node_close_open db 'tl_node_close_open',0
1448
	sz_tl_node_close_open db 'tl_node_close_open',0
1441
	sz_tl_node_lev_inc db 'tl_node_lev_inc',0
1449
	sz_tl_node_lev_inc db 'tl_node_lev_inc',0
1442
	sz_tl_node_lev_dec db 'tl_node_lev_dec',0
1450
	sz_tl_node_lev_dec db 'tl_node_lev_dec',0
1443
 
1451
 
1444
 
1452
 
1445
 
1453
 
1446
i_end:
1454
i_end:
1447
	rb 1024
1455
	rb 1024
1448
	align 16
1456
	align 16
1449
	procinfo process_information
1457
	procinfo process_information
1450
stacktop:
1458
stacktop:
1451
	sys_path rb 4096
1459
	sys_path rb 4096
1452
	file_name:
1460
	file_name:
1453
		rb 4096
1461
		rb 4096
1454
	openfile_path:
1462
	openfile_path:
1455
		rb 4096
1463
		rb 4096
1456
	filename_area:
1464
	filename_area:
1457
		rb 256
1465
		rb 256
1458
mem:
1466
mem: