Subversion Repositories Kolibri OS

Rev

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

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