Subversion Repositories Kolibri OS

Rev

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

Rev 1552 Rev 1555
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 'mem.inc'
15
include 'mem.inc'
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
;displ_bytes equ 315*210*3 ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
53
;displ_bytes equ 315*210*3 ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
54
 
54
 
55
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
55
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
56
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
56
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
57
IMAGE_FONT_SIZE equ 128*144*3
57
IMAGE_FONT_SIZE equ 128*144*3
58
 
58
 
59
use_but equ 1
59
use_but equ 1
60
 
60
 
61
if use_but eq 1
61
if use_but eq 1
62
BUT1_T equ 10 ;®âáâ㯠ᢥàåã
62
BUT1_T equ 10 ;®âáâ㯠ᢥàåã
63
BUT1_L equ 15 ;®âáâ㯠᫥¢ 
63
BUT1_L equ 15 ;®âáâ㯠᫥¢ 
64
BUT1_W equ 50 ;è¨à¨­ 
64
BUT1_W equ 50 ;è¨à¨­ 
65
BUT1_H equ 20 ;¢ëá®â 
65
BUT1_H equ 20 ;¢ëá®â 
66
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536
66
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536
67
end if
67
end if
-
 
68
 
-
 
69
FILE_NAME_MAX equ 20 ;¬ ªá¨¬ «ì­ ï ¤«¨­­  ¨¬¥­¨ ä ©«  (¡¥§ ¯ ¯®ª, ®â­®á¨â¥«ì­® ⥪ã饩)
-
 
70
;§­ ç¥­¨ï ¨¬¥­ ¯® 㬮«ç ­¨î
-
 
71
ini_def_unit_file db 'wolf.png',0
68
 
72
;¨¬¥­  ä ©«®¢
69
fn_icon0 db 'curici.png',0 ;¨¬ï ä ©«  á ¤¥ª®à æ¨ï¬¨
73
fn_icon0 db 'curici.png',0 ;¨¬ï ä ©«  á ¤¥ª®à æ¨ï¬¨
70
fn_icon1 db 'wolf.png',0 ;¨¬ï ä ©«  á ¢®«ª®¬ ¨ § ©æ¥¬
74
fn_icon1 rb FILE_NAME_MAX ;¨¬ï ä ©«  á ¢®«ª®¬ ¨ § ©æ¥¬
71
fn_icon2 db 'eggs.png',0 ;¨¬ï ä ©«  á ï©æ ¬¨
75
fn_icon2 db 'eggs.png',0 ;¨¬ï ä ©«  á ï©æ ¬¨
72
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©«  á 樯«ïâ ¬¨
76
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©«  á 樯«ïâ ¬¨
73
fn_font db 'font8x9.bmp',0
77
fn_font db 'font8x9.bmp',0
74
 
78
 
75
ini_name db 'nu_pogod.ini',0
79
ini_name db 'nu_pogod.ini',0
76
ini_sec_files db 'Files',0
80
ini_sec_files db 'Files',0
-
 
81
key_file_unit db 'file_unit',0
77
key_displ_w db 'displ_w',0
82
key_displ_w db 'displ_w',0
78
key_displ_h db 'displ_h',0
83
key_displ_h db 'displ_h',0
-
 
84
 
79
ini_sec_color db 'Colors',0
85
ini_sec_color db 'Colors',0
80
key_color_unit db 'unit',0
86
key_color_unit db 'unit',0
81
 
87
 
82
;æ¢¥â  ¢ ¨£à¥
88
;æ¢¥â  ¢ ¨£à¥
83
color_fon dd 0xffffff
89
color_fon dd 0xffffff
84
color_shadows dd 0xd0d0d0 ;梥â ⥭¥©
90
color_shadows dd 0xd0d0d0 ;梥â ⥭¥©
85
color_trees dd 0x008000 ;梥â âà ¢ë
91
color_trees dd 0x008000 ;梥â âà ¢ë
86
color_wolf dd 0x800000 ;梥⠢®«ª  ¨ § ©æ 
92
color_wolf dd 0x800000 ;梥⠢®«ª  ¨ § ©æ 
87
color_egg dd 0x404080 ;梥â ï©æ 
93
color_egg dd 0x404080 ;梥â ï©æ 
88
color_chick dd 0x00d0d0 ;梥â 樯«¥­ª 
94
color_chick dd 0x00d0d0 ;梥â 樯«¥­ª 
89
color_curici dd 0x8080d0 ;梥⠪ãà¨æë
95
color_curici dd 0x8080d0 ;梥⠪ãà¨æë
90
color_perilo dd 0x000080 ;梥⠯¥à¨«  (£à¥¡­ï)
96
color_perilo dd 0x000080 ;梥⠯¥à¨«  (£à¥¡­ï)
91
;æ¢¥â  ¨­â¥à䥩á 
97
;æ¢¥â  ¨­â¥à䥩á 
92
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
98
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
93
color_but_te dd 0xffffff ;梥â ⥪áâ  ­  ª­®¯ª å
99
color_but_te dd 0xffffff ;梥â ⥪áâ  ­  ª­®¯ª å
94
 
100
 
95
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
101
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
96
	copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
102
	copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
97
 
103
 
98
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
104
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
99
	mov [buf],eax
105
	mov [buf],eax
100
 
106
 
101
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
107
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
102
	mov [run_file_70.Function], 0
108
	mov [run_file_70.Function], 0
103
	mov [run_file_70.Position], 0
109
	mov [run_file_70.Position], 0
104
	mov [run_file_70.Flags], 0
110
	mov [run_file_70.Flags], 0
105
	mov [run_file_70.Count], dword size
111
	mov [run_file_70.Count], dword size
106
	m2m [run_file_70.Buffer], [buf]
112
	m2m [run_file_70.Buffer], [buf]
107
	mov byte[run_file_70+20], 0
113
	mov byte[run_file_70+20], 0
108
	mov [run_file_70.FileName], file_name
114
	mov [run_file_70.FileName], file_name
109
	mov ebx,run_file_70
115
	mov ebx,run_file_70
110
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
116
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
111
	cmp ebx,0xffffffff
117
	cmp ebx,0xffffffff
112
	je @f
118
	je @f
113
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
119
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
114
		stdcall dword[img_decode], dword[buf],ebx,0
120
		stdcall dword[img_decode], dword[buf],ebx,0
115
		mov dword[image_data],eax
121
		mov dword[image_data],eax
116
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
122
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
117
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
123
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
118
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
124
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
119
		stdcall dword[img_destroy], dword[image_data]
125
		stdcall dword[img_destroy], dword[image_data]
120
	@@:
126
	@@:
121
}
127
}
122
 
128
 
123
;¤ ­­ë¥ ¨£àë
129
;¤ ­­ë¥ ¨£àë
124
bit_zaac equ 2 ;¡¨â § ©æ 
130
bit_zaac equ 2 ;¡¨â § ©æ 
125
val_zaac equ 4 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â § ©æ 
131
val_zaac equ 4 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â § ©æ 
126
bit_mig equ 3 ;¡¨â ¬¨£ ­¨ï
132
bit_mig equ 3 ;¡¨â ¬¨£ ­¨ï
127
val_mig equ 8 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â ¬¨£ ­¨ï
133
val_mig equ 8 ;æ¨äà  ®â¢¥ç îé ï §  ¡¨â ¬¨£ ­¨ï
128
mask_lot_lu    equ 1b ;¬ áª  ¤«ï «¥¢®£® ¢¥àå­¥£® «®âª 
134
mask_lot_lu    equ 1b ;¬ áª  ¤«ï «¥¢®£® ¢¥àå­¥£® «®âª 
129
mask_lot_ld    equ 100000b ;¬ áª  ¤«ï «¥¢®£® ­¨¦­¥£® «®âª 
135
mask_lot_ld    equ 100000b ;¬ áª  ¤«ï «¥¢®£® ­¨¦­¥£® «®âª 
130
mask_lot_ru    equ 10000000000b ;¬ áª  ¤«ï ¯à ¢®£® ¢¥àå­¥£® «®âª 
136
mask_lot_ru    equ 10000000000b ;¬ áª  ¤«ï ¯à ¢®£® ¢¥àå­¥£® «®âª 
131
mask_lot_rd    equ 1000000000000000b ;¬ áª  ¤«ï ¯à ¢®£® ­¨¦­¥£® «®âª 
137
mask_lot_rd    equ 1000000000000000b ;¬ áª  ¤«ï ¯à ¢®£® ­¨¦­¥£® «®âª 
132
mask_clear_all equ 11111011111011110111101111011110b ;¬ áª  ¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ
138
mask_clear_all equ 11111011111011110111101111011110b ;¬ áª  ¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ
133
mask_fail_eggs equ 100001000010000100000b ;¬ áª  ¯ ¤ îé¨å ï¨æ
139
mask_fail_eggs equ 100001000010000100000b ;¬ áª  ¯ ¤ îé¨å ï¨æ
134
mask_chi_left  equ 11111000000000000000000000b ;¬ áª  «¥¢ëå 樯«ïâ
140
mask_chi_left  equ 11111000000000000000000000b ;¬ áª  «¥¢ëå 樯«ïâ
135
mask_chi_right equ 11111000000000000000000000000000b ;¬ áª  ¯à ¢ëå 樯«ïâ
141
mask_chi_right equ 11111000000000000000000000000000b ;¬ áª  ¯à ¢ëå 樯«ïâ
136
mask_chi_cr_l  equ 1000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï «¥¢®£®
142
mask_chi_cr_l  equ 1000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï «¥¢®£®
137
mask_chi_cr_r  equ 1000000000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï ¯à ¢®£®
143
mask_chi_cr_r  equ 1000000000000000000000000000b ;¬ áª  ¤«ï ᮧ¤ ­¨ï ¯à ¢®£®
138
bit_chi_left  equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® á«¥¢ 
144
bit_chi_left  equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® á«¥¢ 
139
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® ¯à ¢ 
145
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® ¯à ¢ 
140
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
146
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
141
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
147
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
142
 
148
 
143
txt_game_a db 'ˆ£à  €',0
149
txt_game_a db 'ˆ£à  €',0
144
txt_game_b db 'ˆ£à  ',0
150
txt_game_b db 'ˆ£à  ',0
145
 
151
 
146
zaac_status db 0
152
zaac_status db 0
147
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
153
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
148
;rb 1
154
;rb 1
149
pos_eggs dd 0 ;¯®§¨æ¨¨ à á¯®«®¦¥­¨ï ï¨æ ¨ 樯«ïâ
155
pos_eggs dd 0 ;¯®§¨æ¨¨ à á¯®«®¦¥­¨ï ï¨æ ¨ 樯«ïâ
150
eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
156
eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
151
game_text db 'ˆ£à  _',13
157
game_text db 'ˆ£à  _',13
152
some_text db '0'
158
some_text db '0'
153
	rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
159
	rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
154
count_last db 0 ;áç¥â稪 ¯à®¯ã饭­ëå ï¨æ
160
count_last db 0 ;áç¥â稪 ¯à®¯ã饭­ëå ï¨æ
155
game_spd dd 0 ;§ ¤¥à¦ª  ¨£àë
161
game_spd dd 0 ;§ ¤¥à¦ª  ¨£àë
156
 
162
 
157
;¤«ï £¥­¥à æ¨¨ á«ãç ©­ëå ç¨á¥«
163
;¤«ï £¥­¥à æ¨¨ á«ãç ©­ëå ç¨á¥«
158
rand_x dd 0
164
rand_x dd 0
159
 
165
 
160
align 4
166
align 4
161
rand_next:
167
rand_next:
162
;x(k+1) = (a*x(k)+c) mod m
168
;x(k+1) = (a*x(k)+c) mod m
163
; a=22695477, c=1, m=2^32
169
; a=22695477, c=1, m=2^32
164
push eax
170
push eax
165
	mov eax,dword[rand_x]
171
	mov eax,dword[rand_x]
166
	imul eax,22695477
172
	imul eax,22695477
167
	inc eax
173
	inc eax
168
	mov dword[rand_x],eax
174
	mov dword[rand_x],eax
169
pop eax
175
pop eax
170
	ret
176
	ret
171
 
177
 
172
;ᮧ¤ ¥¬ ¯à®§à ç­ë¥ ¡ãä¥à  ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ­¨ï
178
;ᮧ¤ ¥¬ ¯à®§à ç­ë¥ ¡ãä¥à  ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ­¨ï
173
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
179
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
174
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
180
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
175
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
181
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
176
align 4
182
align 4
177
proc CreateTrapharetBuffer, buf:dword, img_data:dword
183
proc CreateTrapharetBuffer, buf:dword, img_data:dword
178
	push eax edi
184
	push eax edi
179
	mov edi,dword[buf]
185
	mov edi,dword[buf]
180
 
186
 
181
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
187
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
182
	mov buf2d_size_lt,0
188
	mov buf2d_size_lt,0
183
	mov eax,dword[displ_w]
189
	mov eax,dword[displ_w]
184
	mov buf2d_w,eax
190
	mov buf2d_w,eax
185
	mov eax,dword[displ_h]
191
	mov eax,dword[displ_h]
186
	mov buf2d_h,eax
192
	mov buf2d_h,eax
187
	mov buf2d_color,0xffffff
193
	mov buf2d_color,0xffffff
188
	mov buf2d_bits,24
194
	mov buf2d_bits,24
189
 
195
 
190
	stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
196
	stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
191
	stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
197
	stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
192
	;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
198
	;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
193
	stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
199
	stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
194
	pop edi eax
200
	pop edi eax
195
	ret
201
	ret
196
endp
202
endp
197
 
203
 
198
align 4
204
align 4
199
InitBackgroundBuffer: ;ᮧ¤ ­¨¥ ä®­®¢®£® ¨§®¡à ¦¥­¨ï
205
InitBackgroundBuffer: ;ᮧ¤ ­¨¥ ä®­®¢®£® ¨§®¡à ¦¥­¨ï
200
	pushad
206
	pushad
201
	mov edi,buf_fon
207
	mov edi,buf_fon
202
	mov eax,[color_fon]
208
	mov eax,[color_fon]
203
	mov buf2d_color,eax
209
	mov buf2d_color,eax
204
	stdcall [buf2d_clear], edi,eax
210
	stdcall [buf2d_clear], edi,eax
205
	mov esi,edi
211
	mov esi,edi
206
 
212
 
207
	xor eax,eax
213
	xor eax,eax
208
	xor ebx,ebx
214
	xor ebx,ebx
209
 
215
 
210
	mov edi,buf_decor
216
	mov edi,buf_decor
211
	mov ax,buf2d_t
217
	mov ax,buf2d_t
212
	add eax,OFFS_SHADOW_Y
218
	add eax,OFFS_SHADOW_Y
213
	mov bx,buf2d_l
219
	mov bx,buf2d_l
214
	add ebx,OFFS_SHADOW_X
220
	add ebx,OFFS_SHADOW_X
215
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤®¬¨ª®¢
221
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤®¬¨ª®¢
216
	add edi,BUF_STRUCT_SIZE
222
	add edi,BUF_STRUCT_SIZE
217
	mov ax,buf2d_t
223
	mov ax,buf2d_t
218
	add eax,OFFS_SHADOW_Y
224
	add eax,OFFS_SHADOW_Y
219
	mov bx,buf2d_l
225
	mov bx,buf2d_l
220
	add ebx,OFFS_SHADOW_X
226
	add ebx,OFFS_SHADOW_X
221
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ªãà¨æ
227
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ªãà¨æ
222
	add edi,BUF_STRUCT_SIZE
228
	add edi,BUF_STRUCT_SIZE
223
	mov ax,buf2d_t
229
	mov ax,buf2d_t
224
	add eax,OFFS_SHADOW_Y
230
	add eax,OFFS_SHADOW_Y
225
	mov bx,buf2d_l
231
	mov bx,buf2d_l
226
	add ebx,OFFS_SHADOW_X
232
	add ebx,OFFS_SHADOW_X
227
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥à¥¢ì¥¢
233
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥à¥¢ì¥¢
228
 
234
 
229
	mov edi,buf_decor
235
	mov edi,buf_decor
230
	mov ax,buf2d_t
236
	mov ax,buf2d_t
231
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨
237
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨
232
	add edi,BUF_STRUCT_SIZE
238
	add edi,BUF_STRUCT_SIZE
233
	mov ax,buf2d_t
239
	mov ax,buf2d_t
234
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë
240
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë
235
	add edi,BUF_STRUCT_SIZE
241
	add edi,BUF_STRUCT_SIZE
236
	mov ax,buf2d_t
242
	mov ax,buf2d_t
237
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;à¨á㥬 ¤¥à¥¢ìï
243
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;à¨á㥬 ¤¥à¥¢ìï
238
	popad
244
	popad
239
	ret
245
	ret
240
 
246
 
241
;à¨áã¥â ª à⨭ªã ¢ ¡ãä¥à¥ buf ¨§ ¬ áᨢ  ¡ãä¥à®¢ buf_img á ¨­¤¥ªá®¬ ind
247
;à¨áã¥â ª à⨭ªã ¢ ¡ãä¥à¥ buf ¨§ ¬ áᨢ  ¡ãä¥à®¢ buf_img á ¨­¤¥ªá®¬ ind
242
;â. ¥. buf <- buf_img[ind]
248
;â. ¥. buf <- buf_img[ind]
243
align 4
249
align 4
244
proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword
250
proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword
245
	pushad
251
	pushad
246
		mov edi,dword[ind]
252
		mov edi,dword[ind]
247
		imul edi,BUF_STRUCT_SIZE
253
		imul edi,BUF_STRUCT_SIZE
248
		add edi,dword[buf_img]
254
		add edi,dword[buf_img]
249
 
255
 
250
		mov esi,dword[buf]
256
		mov esi,dword[buf]
251
		xor eax,eax
257
		xor eax,eax
252
		mov ax,buf2d_t
258
		mov ax,buf2d_t
253
		xor ebx,ebx
259
		xor ebx,ebx
254
		mov bx,buf2d_l
260
		mov bx,buf2d_l
255
		stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color]
261
		stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color]
256
	popad
262
	popad
257
	ret
263
	ret
258
endp
264
endp
259
 
265
 
260
align 4
266
align 4
261
DrawZaac: ;à¨á®¢ ­¨¥ § ©æ 
267
DrawZaac: ;à¨á®¢ ­¨¥ § ©æ 
262
	push eax
268
	push eax
263
	bt word[pos_wolf],bit_zaac
269
	bt word[pos_wolf],bit_zaac
264
	jae .end_mig
270
	jae .end_mig
265
 
271
 
266
	stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ 
272
	stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ 
267
	mov eax,dword[pos_eggs]
273
	mov eax,dword[pos_eggs]
268
	and eax,mask_chi_right+mask_chi_left
274
	and eax,mask_chi_right+mask_chi_left
269
	cmp eax,0
275
	cmp eax,0
270
	je .end_mig ;¥á«¨ ­¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ­¥ ¬ è¥â
276
	je .end_mig ;¥á«¨ ­¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ­¥ ¬ è¥â
271
	bt word[pos_wolf],bit_mig
277
	bt word[pos_wolf],bit_mig
272
	jc @f
278
	jc @f
273
		stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢¢¥àåã
279
		stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢¢¥àåã
274
		jmp .end_mig
280
		jmp .end_mig
275
	@@:
281
	@@:
276
		stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢­¨§ã
282
		stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ  ¢­¨§ã
277
	.end_mig:
283
	.end_mig:
278
	pop eax
284
	pop eax
279
	ret
285
	ret
280
 
286
 
281
align 4
287
align 4
282
DrawWolf: ;à¨áã¥â ¢®«ª  á ª®à§¨­ ¬¨
288
DrawWolf: ;à¨áã¥â ¢®«ª  á ª®à§¨­ ¬¨
283
	bt word[pos_wolf],0
289
	bt word[pos_wolf],0
284
	jc @f
290
	jc @f
285
		stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf]
291
		stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf]
286
		bt word[pos_wolf],1
292
		bt word[pos_wolf],1
287
		jc .corz_ldn
293
		jc .corz_ldn
288
			stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf]
294
			stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf]
289
			jmp .corz_lend
295
			jmp .corz_lend
290
		.corz_ldn:
296
		.corz_ldn:
291
			stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf]
297
			stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf]
292
		.corz_lend:
298
		.corz_lend:
293
		jmp .wolf_b
299
		jmp .wolf_b
294
	@@:
300
	@@:
295
		stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf]
301
		stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf]
296
		bt word[pos_wolf],1
302
		bt word[pos_wolf],1
297
		jc .corz_rdn
303
		jc .corz_rdn
298
			stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf]
304
			stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf]
299
			jmp .corz_rend
305
			jmp .corz_rend
300
		.corz_rdn:
306
		.corz_rdn:
301
			stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf]
307
			stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf]
302
		.corz_rend:
308
		.corz_rend:
303
	.wolf_b:
309
	.wolf_b:
304
	ret
310
	ret
305
 
311
 
306
align 4
312
align 4
307
DrawEggs: ;à¨áã¥â ï©æ 
313
DrawEggs: ;à¨áã¥â ï©æ 
308
	pushad
314
	pushad
309
	cld
315
	cld
310
 
316
 
311
	mov eax,dword[pos_eggs]
317
	mov eax,dword[pos_eggs]
312
	xor ebx,ebx
318
	xor ebx,ebx
313
	mov ecx,20 ;横« ¤«ï à¨á®¢ ­¨ï ª®âïé¨åáï ï¨æ
319
	mov ecx,20 ;横« ¤«ï à¨á®¢ ­¨ï ª®âïé¨åáï ï¨æ
314
	@@:
320
	@@:
315
		bt eax,ebx
321
		bt eax,ebx
316
		jae .draw_egg
322
		jae .draw_egg
317
			stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg]
323
			stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg]
318
		.draw_egg:
324
		.draw_egg:
319
		inc ebx
325
		inc ebx
320
		loop @b
326
		loop @b
321
 
327
 
322
	;mov eax,dword[pos_eggs]
328
	;mov eax,dword[pos_eggs]
323
	and eax,mask_chi_left
329
	and eax,mask_chi_left
324
	cmp eax,0
330
	cmp eax,0
325
	je @f
331
	je @f
326
		stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ 
332
		stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ 
327
	@@:
333
	@@:
328
	mov eax,dword[pos_eggs]
334
	mov eax,dword[pos_eggs]
329
	and eax,mask_chi_right
335
	and eax,mask_chi_right
330
	cmp eax,0
336
	cmp eax,0
331
	je @f
337
	je @f
332
		stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ 
338
		stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ 
333
	@@:
339
	@@:
334
 
340
 
335
	mov eax,dword[pos_eggs]
341
	mov eax,dword[pos_eggs]
336
	xor edx,edx
342
	xor edx,edx
337
	mov ebx,bit_chi_left
343
	mov ebx,bit_chi_left
338
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï «¥¢ëå 樯«ïâ
344
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï «¥¢ëå 樯«ïâ
339
	@@:
345
	@@:
340
		bt eax,ebx
346
		bt eax,ebx
341
		jae .draw_chick_l
347
		jae .draw_chick_l
342
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
348
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
343
		.draw_chick_l:
349
		.draw_chick_l:
344
		inc ebx
350
		inc ebx
345
		inc edx
351
		inc edx
346
		loop @b
352
		loop @b
347
	mov ebx,bit_chi_right
353
	mov ebx,bit_chi_right
348
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï ¯à ¢ëå 樯«ïâ
354
	mov ecx,5 ;横« ¤«ï à¨á®¢ ­¨ï ¯à ¢ëå 樯«ïâ
349
	@@:
355
	@@:
350
		bt eax,ebx
356
		bt eax,ebx
351
		jae .draw_chick_r
357
		jae .draw_chick_r
352
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
358
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
353
		.draw_chick_r:
359
		.draw_chick_r:
354
		inc ebx
360
		inc ebx
355
		inc edx
361
		inc edx
356
		loop @b
362
		loop @b
357
 
363
 
358
	xor eax,eax
364
	xor eax,eax
359
	mov al,byte[count_last]
365
	mov al,byte[count_last]
360
	mov ecx,eax ;横« ¤«ï à¨á®¢ ­¨ï èâà ä­ëå ®çª®¢
366
	mov ecx,eax ;横« ¤«ï à¨á®¢ ­¨ï èâà ä­ëå ®çª®¢
361
	shr ecx,1
367
	shr ecx,1
362
	mov edx,10 ;¨­¤¥ªá ­ ç «  èâà ä­ëå ¨ª®­®ª ¢ ¡ãä¥à¥ buf_chi
368
	mov edx,10 ;¨­¤¥ªá ­ ç «  èâà ä­ëå ¨ª®­®ª ¢ ¡ãä¥à¥ buf_chi
363
	cmp ecx,0
369
	cmp ecx,0
364
	je .no_unit_last
370
	je .no_unit_last
365
	@@:
371
	@@:
366
		stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
372
		stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick]
367
		inc edx
373
		inc edx
368
		loop @b
374
		loop @b
369
	.no_unit_last:
375
	.no_unit_last:
370
 
376
 
371
	bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ­¥ ç¥â­®¥ ®çª®
377
	bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ­¥ ç¥â­®¥ ®çª®
372
	jae @f
378
	jae @f
373
		bt word[pos_wolf],bit_mig
379
		bt word[pos_wolf],bit_mig
374
		jc @f
380
		jc @f
375
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà ä­®¥ ®çª®
381
			stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà ä­®¥ ®çª®
376
	@@:
382
	@@:
377
 
383
 
378
	popad
384
	popad
379
	ret
385
	ret
380
 
386
 
381
align 4
387
align 4
382
CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ ­  1
388
CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ ­  1
383
	push eax edi
389
	push eax edi
384
		xor eax,eax
390
		xor eax,eax
385
		inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ
391
		inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ
386
		cmp word[eggs_count],200 ;¡®­ãá­ë¥ ®çª¨
392
		cmp word[eggs_count],200 ;¡®­ãá­ë¥ ®çª¨
387
		je @f
393
		je @f
388
		cmp word[eggs_count],500 ;¡®­ãá­ë¥ ®çª¨
394
		cmp word[eggs_count],500 ;¡®­ãá­ë¥ ®çª¨
389
		je @f
395
		je @f
390
			jmp .no_bonus
396
			jmp .no_bonus
391
		@@:
397
		@@:
392
			mov byte[count_last],0
398
			mov byte[count_last],0
393
		.no_bonus:
399
		.no_bonus:
394
 
400
 
395
		mov ax,word[eggs_count]
401
		mov ax,word[eggs_count]
396
		mov edi,some_text
402
		mov edi,some_text
397
		call convert_to_str ;®¡­®¢«ï¥¬ ⥪á⮢ãî áâபã
403
		call convert_to_str ;®¡­®¢«ï¥¬ ⥪á⮢ãî áâபã
398
		and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥­ìè ¥¬ ¢à¥¬ï
404
		and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥­ìè ¥¬ ¢à¥¬ï
399
		cmp ax,0
405
		cmp ax,0
400
		jne @f
406
		jne @f
401
			cmp dword[game_spd],15 ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
407
			cmp dword[game_spd],15 ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
402
			jle @f
408
			jle @f
403
				dec dword[game_spd]
409
				dec dword[game_spd]
404
		@@:
410
		@@:
405
	pop edi eax
411
	pop edi eax
406
	ret
412
	ret
407
 
413
 
408
;input:
414
;input:
409
; eax - ¬ áª , 㪠§ë¢ îé ï á ª ª®© áâà®­ë 㯠«® ï©æ®
415
; eax - ¬ áª , 㪠§ë¢ îé ï á ª ª®© áâà®­ë 㯠«® ï©æ®
410
align 4
416
align 4
411
CountLastInc: ;­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
417
CountLastInc: ;­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
412
	inc byte[count_last] ;¯®«®¢¨­ ® èâà ä­®£® ®çª 
418
	inc byte[count_last] ;¯®«®¢¨­ ® èâà ä­®£® ®çª 
413
	bt word[pos_wolf],bit_zaac
419
	bt word[pos_wolf],bit_zaac
414
	jc @f
420
	jc @f
415
		inc byte[count_last] ;¥á«¨ ­¥â § ©æ  â® ¥é¥ 1-­  ¯®«®¢¨­  èâà ä­®£® ®çª 
421
		inc byte[count_last] ;¥á«¨ ­¥â § ©æ  â® ¥é¥ 1-­  ¯®«®¢¨­  èâà ä­®£® ®çª 
416
	@@:
422
	@@:
417
	cmp byte[count_last],6
423
	cmp byte[count_last],6
418
	jle @f
424
	jle @f
419
		mov byte[count_last],6 ;áâ ¢¨¬ ®£à ­¨ç¥­¨ ­  ç¨á«® èâà ä­ëå ®çª®¢
425
		mov byte[count_last],6 ;áâ ¢¨¬ ®£à ­¨ç¥­¨ ­  ç¨á«® èâà ä­ëå ®çª®¢
420
	@@:
426
	@@:
421
	or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥­ª 
427
	or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥­ª 
422
	ret
428
	ret
423
 
429
 
424
align 4
430
align 4
425
MoveEggs:
431
MoveEggs:
426
	pushad
432
	pushad
427
	xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ­¨ï
433
	xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ­¨ï
428
 
434
 
429
	cmp byte[count_last],6 ;¬ ªá¨¬ «ì­®¥ ç¨á«® èâà ä­ëå ®çª®¢
435
	cmp byte[count_last],6 ;¬ ªá¨¬ «ì­®¥ ç¨á«® èâà ä­ëå ®çª®¢
430
	je .end_fun
436
	je .end_fun
431
 
437
 
432
	rol dword[pos_eggs],1
438
	rol dword[pos_eggs],1
433
	mov ecx,dword[pos_eggs]
439
	mov ecx,dword[pos_eggs]
434
	and ecx,mask_fail_eggs
440
	and ecx,mask_fail_eggs
435
	cmp ecx,0
441
	cmp ecx,0
436
	je .no_fail ;­¥â ¯ ¤ îé¨å ï¨æ
442
	je .no_fail ;­¥â ¯ ¤ îé¨å ï¨æ
437
		;­ ç¨á«¥­¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨­ã
443
		;­ ç¨á«¥­¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨­ã
438
		;¨«¨ ­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
444
		;¨«¨ ­ ç¨á«¥­¨¥ èâà ä­ëå ®çª®¢
439
		xor ebx,ebx
445
		xor ebx,ebx
440
		mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª 
446
		mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª 
441
		and bl,3 ;­  ¢á直© á«ãç ©
447
		and bl,3 ;­  ¢á直© á«ãç ©
442
 
448
 
443
		bt ecx,5 ;¯à®¢¥à塞 ¢¥àå­¥¥ «¥¢®¥ ¯¥à¨«®
449
		bt ecx,5 ;¯à®¢¥à塞 ¢¥àå­¥¥ «¥¢®¥ ¯¥à¨«®
444
		jae .perilo_lu
450
		jae .perilo_lu
445
			cmp bx,0 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
451
			cmp bx,0 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
446
			jne @f
452
			jne @f
447
				call CountEggsInc
453
				call CountEggsInc
448
				jmp .perilo_lu
454
				jmp .perilo_lu
449
			@@:
455
			@@:
450
				mov eax,mask_chi_cr_l
456
				mov eax,mask_chi_cr_l
451
				call CountLastInc
457
				call CountLastInc
452
			.perilo_lu:
458
			.perilo_lu:
453
		bt ecx,10 ;¯à®¢¥à塞 ­¨¦­¥¥ «¥¢®¥ ¯¥à¨«®
459
		bt ecx,10 ;¯à®¢¥à塞 ­¨¦­¥¥ «¥¢®¥ ¯¥à¨«®
454
		jae .perilo_ld
460
		jae .perilo_ld
455
			cmp bx,2 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
461
			cmp bx,2 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
456
			jne @f
462
			jne @f
457
				call CountEggsInc
463
				call CountEggsInc
458
				jmp .perilo_ld
464
				jmp .perilo_ld
459
			@@:
465
			@@:
460
				mov eax,mask_chi_cr_l
466
				mov eax,mask_chi_cr_l
461
				call CountLastInc
467
				call CountLastInc
462
		.perilo_ld:
468
		.perilo_ld:
463
		bt ecx,15 ;¯à®¢¥à塞 ¢¥àå­¥¥ ¯à ¢®¥ ¯¥à¨«®
469
		bt ecx,15 ;¯à®¢¥à塞 ¢¥àå­¥¥ ¯à ¢®¥ ¯¥à¨«®
464
		jae .perilo_ru
470
		jae .perilo_ru
465
			cmp bx,1 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
471
			cmp bx,1 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
466
			jne @f
472
			jne @f
467
				call CountEggsInc
473
				call CountEggsInc
468
				jmp .perilo_ru
474
				jmp .perilo_ru
469
			@@:
475
			@@:
470
				mov eax,mask_chi_cr_r
476
				mov eax,mask_chi_cr_r
471
				call CountLastInc
477
				call CountLastInc
472
		.perilo_ru:
478
		.perilo_ru:
473
		bt ecx,20 ;¯à®¢¥à塞 ­¨¦­¥¥ ¯à ¢®¥ ¯¥à¨«®
479
		bt ecx,20 ;¯à®¢¥à塞 ­¨¦­¥¥ ¯à ¢®¥ ¯¥à¨«®
474
		jae .perilo_rd
480
		jae .perilo_rd
475
			cmp bx,3 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
481
			cmp bx,3 ;¯à®¢¥à塞 ­ «¨ç¨¥ ª®à§¨­ë
476
			jne @f
482
			jne @f
477
				call CountEggsInc
483
				call CountEggsInc
478
				jmp .perilo_rd
484
				jmp .perilo_rd
479
			@@:
485
			@@:
480
				mov eax,mask_chi_cr_r
486
				mov eax,mask_chi_cr_r
481
				call CountLastInc
487
				call CountLastInc
482
		.perilo_rd:
488
		.perilo_rd:
483
	.no_fail:
489
	.no_fail:
484
 
490
 
485
	and dword[pos_eggs],mask_clear_all ;®ç¨á⪠ 㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३
491
	and dword[pos_eggs],mask_clear_all ;®ç¨á⪠ 㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३
486
 
492
 
487
	call rand_next
493
	call rand_next
488
	cmp byte[zaac_status],0
494
	cmp byte[zaac_status],0
489
	jle @f
495
	jle @f
490
		dec byte[zaac_status]
496
		dec byte[zaac_status]
491
		jmp .no_zaac_move ;§ ïæ ¯®ª  ­¥ ¤¢¨£ ¥âáï
497
		jmp .no_zaac_move ;§ ïæ ¯®ª  ­¥ ¤¢¨£ ¥âáï
492
	@@:
498
	@@:
493
	
499
	
494
	bt dword[rand_x],6 ;§ ïæ ®â ä®­ àï ¬¥­ï¥â áâ âãá
500
	bt dword[rand_x],6 ;§ ïæ ®â ä®­ àï ¬¥­ï¥â áâ âãá
495
	jc @f
501
	jc @f
496
		xor byte[pos_wolf],val_zaac ;¢ëᮢ뢠¥¬/§ á®¢ë¢ ¥¬ § ©æ 
502
		xor byte[pos_wolf],val_zaac ;¢ëᮢ뢠¥¬/§ á®¢ë¢ ¥¬ § ©æ 
497
		bt word[pos_wolf],val_zaac
503
		bt word[pos_wolf],val_zaac
498
		jc .zaac_n
504
		jc .zaac_n
499
			mov byte[zaac_status],val_zaac_time_y ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
505
			mov byte[zaac_status],val_zaac_time_y ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
500
			jmp @f
506
			jmp @f
501
		.zaac_n:
507
		.zaac_n:
502
			mov byte[zaac_status],val_zaac_time_n ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
508
			mov byte[zaac_status],val_zaac_time_n ;áâ ¢¨¬ ¬¨­¨¬ «ì­®¥ ¢à¥¬ï ¤«ï ᬥ­ë áâ âãá 
503
	@@:
509
	@@:
504
	.no_zaac_move:
510
	.no_zaac_move:
505
 
511
 
506
	;ᮧ¤ ­¨¥ ­®¢ëå ï¨æ
512
	;ᮧ¤ ­¨¥ ­®¢ëå ï¨æ
507
	bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
513
	bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
508
	jc .end_creat
514
	jc .end_creat
509
	bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®­ë ¡ã¤¥¬ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
515
	bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®­ë ¡ã¤¥¬ ᮧ¤ ¢ âì ­®¢®¥ ï©æ®
510
	jc .creat_r
516
	jc .creat_r
511
		bt dword[rand_x],7
517
		bt dword[rand_x],7
512
		jc @f
518
		jc @f
513
			or dword[pos_eggs],mask_lot_lu
519
			or dword[pos_eggs],mask_lot_lu
514
			jmp .end_creat
520
			jmp .end_creat
515
		@@:
521
		@@:
516
			or dword[pos_eggs],mask_lot_ld
522
			or dword[pos_eggs],mask_lot_ld
517
			jmp .end_creat
523
			jmp .end_creat
518
	.creat_r:
524
	.creat_r:
519
		bt dword[rand_x],7
525
		bt dword[rand_x],7
520
		jc @f
526
		jc @f
521
			or dword[pos_eggs],mask_lot_ru
527
			or dword[pos_eggs],mask_lot_ru
522
			jmp .end_creat
528
			jmp .end_creat
523
		@@:
529
		@@:
524
			or dword[pos_eggs],mask_lot_rd
530
			or dword[pos_eggs],mask_lot_rd
525
			;jmp .end_creat
531
			;jmp .end_creat
526
	.end_creat:
532
	.end_creat:
527
 
533
 
528
	.end_fun:
534
	.end_fun:
529
	popad
535
	popad
530
	ret
536
	ret
531
 
537
 
532
align 4
538
align 4
533
proc InitGame, b:dword ;¯¥à¢®­ ç «ì­ë¥ ­ áâனª¨ ¨£àë
539
proc InitGame, b:dword ;¯¥à¢®­ ç «ì­ë¥ ­ áâனª¨ ¨£àë
534
	mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
540
	mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ­ëå ï¨æ
535
	mov byte[some_text],'0'
541
	mov byte[some_text],'0'
536
	mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
542
	mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ­­ëå ï¨æ
537
	mov byte[count_last],0
543
	mov byte[count_last],0
538
	mov dword[pos_eggs],0
544
	mov dword[pos_eggs],0
539
	mov byte[zaac_status],0
545
	mov byte[zaac_status],0
540
 
546
 
541
	cmp dword[b],0
547
	cmp dword[b],0
542
	jne @f
548
	jne @f
543
		mov byte[game_text+5],'€'
549
		mov byte[game_text+5],'€'
544
		mov dword[game_spd],65 ;§ ¤¥à¦ª  ¨£àë
550
		mov dword[game_spd],65 ;§ ¤¥à¦ª  ¨£àë
545
		jmp .end_init
551
		jmp .end_init
546
	@@:
552
	@@:
547
		mov byte[game_text+5],''
553
		mov byte[game_text+5],''
548
		mov dword[game_spd],35 ;§ ¤¥à¦ª  ¨£àë
554
		mov dword[game_spd],35 ;§ ¤¥à¦ª  ¨£àë
549
	.end_init:
555
	.end_init:
550
 
556
 
551
	push eax ebx
557
	push eax ebx
552
		mcall 26,9
558
		mcall 26,9
553
		mov dword[rand_x],eax ;§ ¯®«­ï¥¬ 1-¥ á«ãç ©­®¥ ç¨á«®
559
		mov dword[rand_x],eax ;§ ¯®«­ï¥¬ 1-¥ á«ãç ©­®¥ ç¨á«®
554
	pop ebx eax
560
	pop ebx eax
555
 
561
 
556
	ret
562
	ret
557
endp
563
endp
558
 
564
 
559
align 4
565
align 4
560
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
566
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
561
	pushad
567
	pushad
562
	mov edx,dword[displ_bytes]
568
	mov edx,dword[displ_bytes]
563
	mov ecx,edx
569
	mov ecx,edx
564
	imul ecx,dword[count]
570
	imul ecx,dword[count]
565
	mov eax,dword[f_name]
571
	mov eax,dword[f_name]
566
	load_image_file eax,image_data_gray,ecx
572
	load_image_file eax,image_data_gray,ecx
567
		mov edx,dword[displ_bytes]
573
		mov edx,dword[displ_bytes]
568
		mov eax,[image_data_gray]
574
		mov eax,[image_data_gray]
569
		mov edi,dword[buf_start]
575
		mov edi,dword[buf_start]
570
		mov ecx,dword[count]
576
		mov ecx,dword[count]
571
		cld
577
		cld
572
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
578
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
573
			stdcall CreateTrapharetBuffer,edi,eax
579
			stdcall CreateTrapharetBuffer,edi,eax
574
			add eax,edx
580
			add eax,edx
575
			add edi,BUF_STRUCT_SIZE
581
			add edi,BUF_STRUCT_SIZE
576
			loop @b
582
			loop @b
577
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
583
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
578
	popad
584
	popad
579
	ret
585
	ret
580
endp
586
endp
581
 
587
 
582
align 4
588
align 4
583
start:
589
start:
584
	load_libraries l_libs_start,load_lib_end
590
	load_libraries l_libs_start,load_lib_end
585
 
591
 
586
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
592
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
587
	mov	ebp,lib0
593
	mov	ebp,lib0
588
	cmp	dword [ebp+ll_struc_size-4],0
594
	cmp	dword [ebp+ll_struc_size-4],0
589
	jz	@f
595
	jz	@f
590
		mcall -1 ;exit not correct
596
		mcall -1 ;exit not correct
591
	@@:
597
	@@:
592
	mov	ebp,lib1
598
	mov	ebp,lib1
593
	cmp	dword [ebp+ll_struc_size-4],0
599
	cmp	dword [ebp+ll_struc_size-4],0
594
	jz	@f
600
	jz	@f
595
		mcall -1 ;exit not correct
601
		mcall -1 ;exit not correct
596
	@@:
602
	@@:
597
 
603
 
598
	mcall 40,0x27
604
	mcall 40,0x27
599
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
605
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
600
 
606
 
601
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
607
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
602
	copy_path ini_name,sys_path,file_name,0x0
608
	copy_path ini_name,sys_path,file_name,0x0
603
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
609
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
604
	mov	dword[displ_w],eax
610
	mov	dword[displ_w],eax
605
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
611
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
606
	mov	dword[displ_h],eax
612
	mov	dword[displ_h],eax
607
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
613
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
608
	mov	dword[color_wolf],eax
614
	mov	dword[color_wolf],eax
-
 
615
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
-
 
616
 
609
 
617
 
610
	mov edx,dword[displ_w]
618
	mov edx,dword[displ_w]
611
	imul edx,dword[displ_h]
619
	imul edx,dword[displ_h]
612
	lea edx,[edx+edx*2]
620
	lea edx,[edx+edx*2]
613
	mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
621
	mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
614
 
622
 
615
	stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
623
	stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
616
	stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
624
	stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
617
	stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
625
	stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
618
	stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
626
	stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
619
 
627
 
620
	load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE
628
	load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE
621
	stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
629
	stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
622
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
630
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
623
 
631
 
624
	stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
632
	stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
625
	stdcall [buf2d_convert_text_matrix], buf_font
633
	stdcall [buf2d_convert_text_matrix], buf_font
626
 
634
 
627
;¯à®¢¥àª  § ­¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ 
635
;¯à®¢¥àª  § ­¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ 
628
;mov edi,buf_wolf
636
;mov edi,buf_wolf
629
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
637
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
630
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
638
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
631
 
639
 
632
	mov ebx,dword[displ_w]
640
	mov ebx,dword[displ_w]
633
	mov edx,dword[displ_h]
641
	mov edx,dword[displ_h]
634
 
642
 
635
	mov edi,buf_displ
643
	mov edi,buf_displ
636
	mov buf2d_w,ebx
644
	mov buf2d_w,ebx
637
	mov buf2d_h,edx
645
	mov buf2d_h,edx
638
	stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
646
	stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
639
 
647
 
640
	mov edi,buf_fon
648
	mov edi,buf_fon
641
	mov buf2d_w,ebx
649
	mov buf2d_w,ebx
642
	mov buf2d_h,edx
650
	mov buf2d_h,edx
643
	stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
651
	stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
644
 
652
 
645
	call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
653
	call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
646
	stdcall InitGame,0
654
	stdcall InitGame,0
647
	mcall 26,9
655
	mcall 26,9
648
	mov [last_time],ebx
656
	mov [last_time],ebx
649
 
657
 
650
 
658
 
651
 
659
 
652
align 4
660
align 4
653
red_win:
661
red_win:
654
	call draw_window
662
	call draw_window
655
 
663
 
656
align 4
664
align 4
657
still: ;£« ¢­ë© 横«
665
still: ;£« ¢­ë© 横«
658
	mcall 26,9
666
	mcall 26,9
659
	mov ebx,[last_time]
667
	mov ebx,[last_time]
660
	add ebx,dword[game_spd] ;delay
668
	add ebx,dword[game_spd] ;delay
661
	sub ebx,eax
669
	sub ebx,eax
662
	cmp ebx,dword[game_spd] ;delay
670
	cmp ebx,dword[game_spd] ;delay
663
	ja it_is_time_now
671
	ja it_is_time_now
664
	test ebx,ebx
672
	test ebx,ebx
665
	jz it_is_time_now
673
	jz it_is_time_now
666
	mcall 23
674
	mcall 23
667
 
675
 
668
	cmp eax,0
676
	cmp eax,0
669
	je it_is_time_now
677
	je it_is_time_now
670
 
678
 
671
	;mcall 10
679
	;mcall 10
672
 
680
 
673
	cmp al,0x1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
681
	cmp al,0x1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
674
	jz red_win
682
	jz red_win
675
	cmp al,0x2
683
	cmp al,0x2
676
	jz key
684
	jz key
677
	cmp al,0x3
685
	cmp al,0x3
678
	jz button
686
	jz button
679
 
687
 
680
	jmp still
688
	jmp still
681
 
689
 
682
align 4
690
align 4
683
it_is_time_now:
691
it_is_time_now:
684
	mcall 26,9
692
	mcall 26,9
685
	mov [last_time],eax
693
	mov [last_time],eax
686
 
694
 
687
	;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪ㭤...
695
	;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪ㭤...
688
	call MoveEggs
696
	call MoveEggs
689
	call draw_display
697
	call draw_display
690
	jmp still
698
	jmp still
691
 
699
 
692
align 4
700
align 4
693
key:
701
key:
694
	push eax ebx
702
	push eax ebx
695
	mcall 2
703
	mcall 2
696
 
704
 
697
	cmp ah,176 ;Left
705
	cmp ah,176 ;Left
698
	jne @f
706
	jne @f
699
		and byte[pos_wolf],0xfe
707
		and byte[pos_wolf],0xfe
700
	@@:
708
	@@:
701
	cmp ah,179 ;Right
709
	cmp ah,179 ;Right
702
	jne @f
710
	jne @f
703
		or byte[pos_wolf],1
711
		or byte[pos_wolf],1
704
	@@:
712
	@@:
705
	cmp ah,178 ;Up
713
	cmp ah,178 ;Up
706
	jne @f
714
	jne @f
707
		and byte[pos_wolf],0xff-2
715
		and byte[pos_wolf],0xff-2
708
	@@:
716
	@@:
709
	cmp ah,177 ;Down
717
	cmp ah,177 ;Down
710
	jne @f
718
	jne @f
711
		or byte[pos_wolf],2
719
		or byte[pos_wolf],2
712
	@@:
720
	@@:
713
 
721
 
714
	cmp ah,97 ;a
722
	cmp ah,97 ;a
715
	jne @f
723
	jne @f
716
		and byte[pos_wolf],0xff-3 ;00
724
		and byte[pos_wolf],0xff-3 ;00
717
	@@:
725
	@@:
718
	cmp ah,122 ;z
726
	cmp ah,122 ;z
719
	jne @f
727
	jne @f
720
		and byte[pos_wolf],0xff-1
728
		and byte[pos_wolf],0xff-1
721
		or byte[pos_wolf],2 ;10
729
		or byte[pos_wolf],2 ;10
722
	@@:
730
	@@:
723
	cmp ah,39 ;'
731
	cmp ah,39 ;'
724
	jne @f
732
	jne @f
725
		and byte[pos_wolf],0xff-2
733
		and byte[pos_wolf],0xff-2
726
		or byte[pos_wolf],1 ;01
734
		or byte[pos_wolf],1 ;01
727
	@@:
735
	@@:
728
	cmp ah,47 ;/
736
	cmp ah,47 ;/
729
	jne @f
737
	jne @f
730
		or byte[pos_wolf],3 ;11
738
		or byte[pos_wolf],3 ;11
731
	@@:
739
	@@:
732
 
740
 
733
	pop ebx eax
741
	pop ebx eax
734
	jmp still
742
	jmp still
735
 
743
 
736
 
744
 
737
align 4
745
align 4
738
draw_window:
746
draw_window:
739
	pushad
747
	pushad
740
	mcall 12,1
748
	mcall 12,1
741
 
749
 
742
	xor eax,eax
750
	xor eax,eax
743
	mov ebx,20*65536+480
751
	mov ebx,20*65536+480
744
	mov ecx,20*65536+270
752
	mov ecx,20*65536+270
745
	mov edx,[sc.work]
753
	mov edx,[sc.work]
746
	;or edx,0x33000000
754
	;or edx,0x33000000
747
	or edx,0x73000000
755
	or edx,0x73000000
748
	mov edi,hed
756
	mov edi,hed
749
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
757
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
750
 
758
 
751
	mcall 9,procinfo,-1
759
	mcall 9,procinfo,-1
752
	mov edi,buf_displ
760
	mov edi,buf_displ
753
	mov eax,dword[procinfo.client_box.width]
761
	mov eax,dword[procinfo.client_box.width]
754
	cmp eax,dword[displ_w]
762
	cmp eax,dword[displ_w]
755
	jle @f
763
	jle @f
756
		sub eax,dword[displ_w]
764
		sub eax,dword[displ_w]
757
		shr eax,1
765
		shr eax,1
758
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
766
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
759
	@@:
767
	@@:
760
 
768
 
761
	call draw_display
769
	call draw_display
762
 
770
 
763
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
771
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
764
	mov edx,[sc.work]
772
	mov edx,[sc.work]
765
	xor esi,esi
773
	xor esi,esi
766
	mov si,buf2d_l
774
	mov si,buf2d_l
767
	add esi,dword[displ_w]
775
	add esi,dword[displ_w]
768
	mov ebx,dword[procinfo.client_box.width]
776
	mov ebx,dword[procinfo.client_box.width]
769
	inc ebx
777
	inc ebx
770
	cmp esi,ebx
778
	cmp esi,ebx
771
	jge @f
779
	jge @f
772
		sub ebx,esi
780
		sub ebx,esi
773
		rol ebx,16
781
		rol ebx,16
774
		mov bx,si
782
		mov bx,si
775
		rol ebx,16
783
		rol ebx,16
776
		mov ecx,dword[procinfo.client_box.height]
784
		mov ecx,dword[procinfo.client_box.height]
777
		inc ecx
785
		inc ecx
778
		int 0x40 ;à¨á®¢ ­¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï
786
		int 0x40 ;à¨á®¢ ­¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï
779
		jmp .draw_s
787
		jmp .draw_s
780
	@@:
788
	@@:
781
		mov esi,dword[procinfo.client_box.width] ;ª®£¤  ¯® è¨à¨­¥ ­¥ ¢« §¨â
789
		mov esi,dword[procinfo.client_box.width] ;ª®£¤  ¯® è¨à¨­¥ ­¥ ¢« §¨â
782
		inc esi
790
		inc esi
783
	.draw_s:
791
	.draw_s:
784
 
792
 
785
if use_but eq 1
793
if use_but eq 1
786
	; *** à¨á®¢ ­¨¥ ª­®¯®ª ***
794
	; *** à¨á®¢ ­¨¥ ª­®¯®ª ***
787
push esi
795
push esi
788
	mov eax,8
796
	mov eax,8
789
	xor ebx,ebx
797
	xor ebx,ebx
790
	mov bx,buf2d_l
798
	mov bx,buf2d_l
791
	add ebx,buf2d_w
799
	add ebx,buf2d_w
792
	add ebx,BUT1_L
800
	add ebx,BUT1_L
793
	shl ebx,16
801
	shl ebx,16
794
	mov bx,BUT1_W
802
	mov bx,BUT1_W
795
	mov ecx,BUT1_T*65536+BUT1_H
803
	mov ecx,BUT1_T*65536+BUT1_H
796
	mov edx,5
804
	mov edx,5
797
	;or edx,0x40000000
805
	;or edx,0x40000000
798
	mov esi,dword[color_but_sm]
806
	mov esi,dword[color_but_sm]
799
	int 0x40
807
	int 0x40
800
 
808
 
801
	inc edx
809
	inc edx
802
	add ecx,BUT1_NEXT_TOP
810
	add ecx,BUT1_NEXT_TOP
803
	int 0x40
811
	int 0x40
804
pop esi
812
pop esi
805
 
813
 
806
	mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ
814
	mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ
807
	mov bx,BUT1_H
815
	mov bx,BUT1_H
808
	add ebx,3*65536;+3
816
	add ebx,3*65536;+3
809
	mov ecx,dword[color_but_te]
817
	mov ecx,dword[color_but_te]
810
	or  ecx,0x80000000
818
	or  ecx,0x80000000
811
	mov edx,txt_game_a
819
	mov edx,txt_game_a
812
	int 0x40
820
	int 0x40
813
 
821
 
814
	ror ebx,16
822
	ror ebx,16
815
	add ebx,BUT1_NEXT_TOP
823
	add ebx,BUT1_NEXT_TOP
816
	ror ebx,16
824
	ror ebx,16
817
	mov edx,txt_game_b
825
	mov edx,txt_game_b
818
	int 0x40
826
	int 0x40
819
 
827
 
820
	; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
828
	; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
821
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
829
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
822
	mov edx,[sc.work]
830
	mov edx,[sc.work]
823
end if
831
end if
824
 
832
 
825
	mov ebx,esi
833
	mov ebx,esi
826
	mov ecx,dword[procinfo.client_box.height]
834
	mov ecx,dword[procinfo.client_box.height]
827
	inc ecx
835
	inc ecx
828
	mov esi,dword[displ_h]
836
	mov esi,dword[displ_h]
829
	cmp esi,ebx
837
	cmp esi,ebx
830
	jge @f
838
	jge @f
831
		sub ecx,esi
839
		sub ecx,esi
832
		rol ecx,16
840
		rol ecx,16
833
		mov cx,si
841
		mov cx,si
834
		rol ecx,16
842
		rol ecx,16
835
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
843
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
836
	@@:
844
	@@:
837
	
845
	
838
	xor ebx,ebx
846
	xor ebx,ebx
839
	mov bx,buf2d_l
847
	mov bx,buf2d_l
840
	mov ecx,dword[displ_h]
848
	mov ecx,dword[displ_h]
841
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
849
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
842
 
850
 
843
	mcall 12,2
851
	mcall 12,2
844
	popad
852
	popad
845
	ret
853
	ret
846
 
854
 
847
align 4
855
align 4
848
draw_display:
856
draw_display:
849
 
857
 
850
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],315*210*3;dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
858
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],315*210*3;dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
851
	call DrawZaac ;à¨á㥬 § ©æ 
859
	call DrawZaac ;à¨á㥬 § ©æ 
852
	call DrawWolf ;à¨á㥬 ¢®«ª 
860
	call DrawWolf ;à¨á㥬 ¢®«ª 
853
	call DrawEggs ;à¨á㥬 ï©æ 
861
	call DrawEggs ;à¨á㥬 ï©æ 
854
 
862
 
855
push eax
863
push eax
856
	mov eax,dword[displ_w]
864
	mov eax,dword[displ_w]
857
	shr eax,1
865
	shr eax,1
858
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬
866
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬
859
pop eax
867
pop eax
860
	stdcall [buf2d_draw], buf_displ
868
	stdcall [buf2d_draw], buf_displ
861
	ret
869
	ret
862
 
870
 
863
align 4
871
align 4
864
button:
872
button:
865
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
873
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
866
	if use_but eq 1
874
	if use_but eq 1
867
	cmp ah,5
875
	cmp ah,5
868
	jne @f
876
	jne @f
869
		stdcall InitGame,0
877
		stdcall InitGame,0
870
	@@:
878
	@@:
871
	cmp ah,6
879
	cmp ah,6
872
	jne @f
880
	jne @f
873
		stdcall InitGame,1
881
		stdcall InitGame,1
874
	@@:	end if
882
	@@:	end if
875
	cmp ah,1
883
	cmp ah,1
876
	jne still
884
	jne still
877
.exit:
885
.exit:
878
	stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
886
	stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
879
	stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
887
	stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
880
 
888
 
881
	stdcall [buf2d_delete],buf_font
889
	stdcall [buf2d_delete],buf_font
882
 
890
 
883
	cld
891
	cld
884
	mov ecx,3
892
	mov ecx,3
885
	mov edi,buf_decor
893
	mov edi,buf_decor
886
	@@: ;㤠«ï¥¬ 3 ¡ãä¥à 
894
	@@: ;㤠«ï¥¬ 3 ¡ãä¥à 
887
		stdcall [buf2d_delete],edi
895
		stdcall [buf2d_delete],edi
888
		add edi,BUF_STRUCT_SIZE
896
		add edi,BUF_STRUCT_SIZE
889
		loop @b
897
		loop @b
890
	mov ecx,9
898
	mov ecx,9
891
	mov edi,buf_wolf
899
	mov edi,buf_wolf
892
	@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
900
	@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
893
		stdcall [buf2d_delete],edi
901
		stdcall [buf2d_delete],edi
894
		add edi,BUF_STRUCT_SIZE
902
		add edi,BUF_STRUCT_SIZE
895
		loop @b
903
		loop @b
896
	mov ecx,13
904
	mov ecx,13
897
	mov edi,buf_chi
905
	mov edi,buf_chi
898
	@@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢
906
	@@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢
899
		stdcall [buf2d_delete],edi
907
		stdcall [buf2d_delete],edi
900
		add edi,BUF_STRUCT_SIZE
908
		add edi,BUF_STRUCT_SIZE
901
		loop @b
909
		loop @b
902
	mov ecx,22
910
	mov ecx,22
903
	mov edi,buf_egg
911
	mov edi,buf_egg
904
	@@: ;㤠«ï¥¬ 22 ¡ãä¥à 
912
	@@: ;㤠«ï¥¬ 22 ¡ãä¥à 
905
		stdcall [buf2d_delete],edi
913
		stdcall [buf2d_delete],edi
906
		add edi,BUF_STRUCT_SIZE
914
		add edi,BUF_STRUCT_SIZE
907
		loop @b
915
		loop @b
908
 
916
 
909
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
917
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
910
 
918
 
911
head_f_i:
919
head_f_i:
912
head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
920
head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
913
 
921
 
914
system_dir0 db '/sys/lib/'
922
system_dir0 db '/sys/lib/'
915
name_buf2d db 'buf2d.obj',0
923
name_buf2d db 'buf2d.obj',0
916
err_message_found_lib0 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0
924
err_message_found_lib0 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0
917
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0
925
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0
918
 
926
 
919
system_dir1 db '/sys/lib/'
927
system_dir1 db '/sys/lib/'
920
name_libimg db 'libimg.obj',0
928
name_libimg db 'libimg.obj',0
921
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
929
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
922
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
930
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
923
 
931
 
924
system_dir2 db '/sys/lib/'
932
system_dir2 db '/sys/lib/'
925
libini_name db 'libini.obj',0
933
libini_name db 'libini.obj',0
926
err_message_found_lib2 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
934
err_message_found_lib2 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
927
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
935
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
928
 
936
 
929
;library structures
937
;library structures
930
l_libs_start:
938
l_libs_start:
931
	lib0 l_libs name_buf2d,  sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
939
	lib0 l_libs name_buf2d,  sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
932
	lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
940
	lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
933
	lib2 l_libs libini_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, libini_import, err_message_import2, head_f_i
941
	lib2 l_libs libini_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, libini_import, err_message_import2, head_f_i
934
load_lib_end:
942
load_lib_end:
935
 
943
 
936
align 4
944
align 4
937
proc mem_copy, source:dword, destination:dword, len:dword
945
proc mem_copy, source:dword, destination:dword, len:dword
938
  push ecx esi edi
946
  push ecx esi edi
939
    cld
947
    cld
940
    mov esi, dword[source]
948
    mov esi, dword[source]
941
    mov edi, dword[destination]
949
    mov edi, dword[destination]
942
    mov ecx, dword[len]
950
    mov ecx, dword[len]
943
    rep movsb
951
    rep movsb
944
  pop edi esi ecx
952
  pop edi esi ecx
945
  ret
953
  ret
946
endp
954
endp
947
 
955
 
948
align 4
956
align 4
949
convert_to_str:
957
convert_to_str:
950
	pushad
958
	pushad
951
	;mov eax,dword[value]
959
	;mov eax,dword[value]
952
	;mov edi,dword[text]
960
	;mov edi,dword[text]
953
	mov dword[edi+1],0
961
	mov dword[edi+1],0
954
	cld
962
	cld
955
	call .str
963
	call .str
956
	popad
964
	popad
957
	ret
965
	ret
958
 
966
 
959
 
967
 
960
align 4
968
align 4
961
.str:
969
.str:
962
  mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
970
  mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
963
    ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
971
    ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
964
  cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
972
  cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
965
  jb @f
973
  jb @f
966
  xor edx,edx  ;®ç¨áâ¨âì edx
974
  xor edx,edx  ;®ç¨áâ¨âì edx
967
  div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
975
  div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
968
  push edx     ;¯®«®¦¨âì ¢ á⥪
976
  push edx     ;¯®«®¦¨âì ¢ á⥪
969
  ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
977
  ;dec edi             ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
970
  call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
978
  call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
971
  pop eax
979
  pop eax
972
  @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
980
  @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
973
  ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
981
  ;sbb al,$69  ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
974
  ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
982
  ;das        ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h  (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
975
  or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
983
  or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
976
  stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
984
  stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
977
  ret	      ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
985
  ret	      ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
978
 
986
 
979
 
987
 
980
last_time dd ?
988
last_time dd ?
981
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
989
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
982
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
990
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
983
 
991
 
984
run_file_70 FileInfoBlock
992
run_file_70 FileInfoBlock
985
hed db 'Nu pogodi 03.08.10',0 ;¯®¤¯¨áì ®ª­ 
993
hed db 'Nu pogodi 03.08.10',0 ;¯®¤¯¨áì ®ª­ 
986
sc system_colors  ;á¨á⥬­ë¥ 梥â 
994
sc system_colors  ;á¨á⥬­ë¥ 梥â 
987
 
995
 
988
align 4
996
align 4
989
buf_font: ;¡ãä¥à á® èà¨ä⮬
997
buf_font: ;¡ãä¥à á® èà¨ä⮬
990
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
998
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
991
	dw 25 ;+4 left
999
	dw 25 ;+4 left
992
	dw 25 ;+6 top
1000
	dw 25 ;+6 top
993
	dd 128 ;+8 w
1001
	dd 128 ;+8 w
994
	dd 144 ;+12 h
1002
	dd 144 ;+12 h
995
	dd 0 ;+16 color
1003
	dd 0 ;+16 color
996
	db 24 ;+20 bit in pixel
1004
	db 24 ;+20 bit in pixel
997
 
1005
 
998
align 4
1006
align 4
999
buf_displ:
1007
buf_displ:
1000
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1008
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1001
	dw 25,0
1009
	dw 25,0
1002
	dd ? ;+8 w
1010
	dd ? ;+8 w
1003
	dd ? ;+12 h
1011
	dd ? ;+12 h
1004
	dd 0 ;+16 color
1012
	dd 0 ;+16 color
1005
	db 24 ;+20 bit in pixel
1013
	db 24 ;+20 bit in pixel
1006
 
1014
 
1007
align 4
1015
align 4
1008
buf_fon: ;ä®­®¢ë© ¡ãä¥à
1016
buf_fon: ;ä®­®¢ë© ¡ãä¥à
1009
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1017
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1010
	dw 0 ;+4 left
1018
	dw 0 ;+4 left
1011
	dw 0 ;+6 top
1019
	dw 0 ;+6 top
1012
	dd ? ;+8 w
1020
	dd ? ;+8 w
1013
	dd ? ;+12 h
1021
	dd ? ;+12 h
1014
	dd 0xffffff ;+16 color
1022
	dd 0xffffff ;+16 color
1015
	db 24 ;+20 bit in pixel
1023
	db 24 ;+20 bit in pixel
1016
 
1024
 
1017
align 4
1025
align 4
1018
buf_decor: ;¡ãä¥à  á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥭¨ï¬¨
1026
buf_decor: ;¡ãä¥à  á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥭¨ï¬¨
1019
	rb 3*BUF_STRUCT_SIZE
1027
	rb 3*BUF_STRUCT_SIZE
1020
 
1028
 
1021
align 4
1029
align 4
1022
buf_wolf:
1030
buf_wolf:
1023
	rb 9*BUF_STRUCT_SIZE
1031
	rb 9*BUF_STRUCT_SIZE
1024
 
1032
 
1025
align 4
1033
align 4
1026
buf_egg:
1034
buf_egg:
1027
	rb 22*BUF_STRUCT_SIZE
1035
	rb 22*BUF_STRUCT_SIZE
1028
 
1036
 
1029
align 4
1037
align 4
1030
buf_chi:
1038
buf_chi:
1031
	rb 13*BUF_STRUCT_SIZE
1039
	rb 13*BUF_STRUCT_SIZE
1032
 
1040
 
1033
 
1041
 
1034
 
1042
 
1035
align 4
1043
align 4
1036
libini_import:
1044
libini_import:
1037
	dd alib_init0
1045
	dd alib_init0
1038
	ini_get_str   dd aini_get_str
1046
	ini_get_str   dd aini_get_str
1039
	ini_get_int   dd aini_get_int
1047
	ini_get_int   dd aini_get_int
1040
	ini_get_color dd aini_get_color
1048
	ini_get_color dd aini_get_color
1041
dd 0,0
1049
dd 0,0
1042
	alib_init0     db 'lib_init',0
1050
	alib_init0     db 'lib_init',0
1043
	aini_get_str   db 'ini_get_str',0
1051
	aini_get_str   db 'ini_get_str',0
1044
	aini_get_int   db 'ini_get_int',0
1052
	aini_get_int   db 'ini_get_int',0
1045
	aini_get_color db 'ini_get_color',0
1053
	aini_get_color db 'ini_get_color',0
1046
 
1054
 
1047
align 4
1055
align 4
1048
import_libimg:
1056
import_libimg:
1049
  dd alib_init1
1057
  dd alib_init1
1050
  img_is_img  dd aimg_is_img
1058
  img_is_img  dd aimg_is_img
1051
  img_info    dd aimg_info
1059
  img_info    dd aimg_info
1052
  img_from_file dd aimg_from_file
1060
  img_from_file dd aimg_from_file
1053
  img_to_file dd aimg_to_file
1061
  img_to_file dd aimg_to_file
1054
  img_from_rgb dd aimg_from_rgb
1062
  img_from_rgb dd aimg_from_rgb
1055
  img_to_rgb  dd aimg_to_rgb
1063
  img_to_rgb  dd aimg_to_rgb
1056
  img_to_rgb2 dd aimg_to_rgb2
1064
  img_to_rgb2 dd aimg_to_rgb2
1057
  img_decode  dd aimg_decode
1065
  img_decode  dd aimg_decode
1058
  img_encode  dd aimg_encode
1066
  img_encode  dd aimg_encode
1059
  img_create  dd aimg_create
1067
  img_create  dd aimg_create
1060
  img_destroy dd aimg_destroy
1068
  img_destroy dd aimg_destroy
1061
  img_destroy_layer dd aimg_destroy_layer
1069
  img_destroy_layer dd aimg_destroy_layer
1062
  img_count   dd aimg_count
1070
  img_count   dd aimg_count
1063
  img_lock_bits dd aimg_lock_bits
1071
  img_lock_bits dd aimg_lock_bits
1064
  img_unlock_bits dd aimg_unlock_bits
1072
  img_unlock_bits dd aimg_unlock_bits
1065
  img_flip    dd aimg_flip
1073
  img_flip    dd aimg_flip
1066
  img_flip_layer dd aimg_flip_layer
1074
  img_flip_layer dd aimg_flip_layer
1067
  img_rotate  dd aimg_rotate
1075
  img_rotate  dd aimg_rotate
1068
  img_rotate_layer dd aimg_rotate_layer
1076
  img_rotate_layer dd aimg_rotate_layer
1069
  img_draw    dd aimg_draw
1077
  img_draw    dd aimg_draw
1070
 
1078
 
1071
  dd 0,0
1079
  dd 0,0
1072
  alib_init1   db 'lib_init',0
1080
  alib_init1   db 'lib_init',0
1073
  aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
1081
  aimg_is_img  db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ­­ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª  ᤥ« âì ¨§ ­¨å ¨§®¡à ¦¥­¨¥
1074
  aimg_info    db 'img_info',0
1082
  aimg_info    db 'img_info',0
1075
  aimg_from_file db 'img_from_file',0
1083
  aimg_from_file db 'img_from_file',0
1076
  aimg_to_file db 'img_to_file',0
1084
  aimg_to_file db 'img_to_file',0
1077
  aimg_from_rgb db 'img_from_rgb',0
1085
  aimg_from_rgb db 'img_from_rgb',0
1078
  aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
1086
  aimg_to_rgb  db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¢ ¤ ­­ë¥ RGB
1079
  aimg_to_rgb2 db 'img_to_rgb2',0
1087
  aimg_to_rgb2 db 'img_to_rgb2',0
1080
  aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
1088
  aimg_decode  db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ­­ëå
1081
  aimg_encode  db 'img_encode',0
1089
  aimg_encode  db 'img_encode',0
1082
  aimg_create  db 'img_create',0
1090
  aimg_create  db 'img_create',0
1083
  aimg_destroy db 'img_destroy',0
1091
  aimg_destroy db 'img_destroy',0
1084
  aimg_destroy_layer db 'img_destroy_layer',0
1092
  aimg_destroy_layer db 'img_destroy_layer',0
1085
  aimg_count   db 'img_count',0
1093
  aimg_count   db 'img_count',0
1086
  aimg_lock_bits db 'img_lock_bits',0
1094
  aimg_lock_bits db 'img_lock_bits',0
1087
  aimg_unlock_bits db 'img_unlock_bits',0
1095
  aimg_unlock_bits db 'img_unlock_bits',0
1088
  aimg_flip    db 'img_flip',0
1096
  aimg_flip    db 'img_flip',0
1089
  aimg_flip_layer db 'img_flip_layer',0
1097
  aimg_flip_layer db 'img_flip_layer',0
1090
  aimg_rotate  db 'img_rotate',0
1098
  aimg_rotate  db 'img_rotate',0
1091
  aimg_rotate_layer db 'img_rotate_layer',0
1099
  aimg_rotate_layer db 'img_rotate_layer',0
1092
  aimg_draw    db 'img_draw',0
1100
  aimg_draw    db 'img_draw',0
1093
 
1101
 
1094
align 4
1102
align 4
1095
import_buf2d_lib:
1103
import_buf2d_lib:
1096
	dd sz_lib_init
1104
	dd sz_lib_init
1097
	buf2d_create dd sz_buf2d_create
1105
	buf2d_create dd sz_buf2d_create
1098
	buf2d_create_f_img dd sz_buf2d_create_f_img
1106
	buf2d_create_f_img dd sz_buf2d_create_f_img
1099
	buf2d_clear dd sz_buf2d_clear
1107
	buf2d_clear dd sz_buf2d_clear
1100
	buf2d_draw dd sz_buf2d_draw
1108
	buf2d_draw dd sz_buf2d_draw
1101
	buf2d_delete dd sz_buf2d_delete
1109
	buf2d_delete dd sz_buf2d_delete
1102
	buf2d_line dd sz_buf2d_line
1110
	buf2d_line dd sz_buf2d_line
1103
	buf2d_circle dd sz_buf2d_circle
1111
	buf2d_circle dd sz_buf2d_circle
1104
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
1112
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
1105
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
1113
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
1106
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
1114
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
1107
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
1115
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
1108
	buf2d_bit_blt dd sz_buf2d_bit_blt
1116
	buf2d_bit_blt dd sz_buf2d_bit_blt
1109
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
1117
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
1110
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
1118
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
1111
	buf2d_cruve_bezier dd sz_buf2d_cruve_bezier
1119
	buf2d_cruve_bezier dd sz_buf2d_cruve_bezier
1112
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
1120
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
1113
	buf2d_draw_text dd sz_buf2d_draw_text
1121
	buf2d_draw_text dd sz_buf2d_draw_text
1114
	buf2d_crop_color dd sz_buf2d_crop_color
1122
	buf2d_crop_color dd sz_buf2d_crop_color
1115
	buf2d_offset_h dd sz_buf2d_offset_h	
1123
	buf2d_offset_h dd sz_buf2d_offset_h	
1116
	dd 0,0
1124
	dd 0,0
1117
	sz_lib_init db 'lib_init',0
1125
	sz_lib_init db 'lib_init',0
1118
	sz_buf2d_create db 'buf2d_create',0
1126
	sz_buf2d_create db 'buf2d_create',0
1119
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
1127
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
1120
	sz_buf2d_clear db 'buf2d_clear',0
1128
	sz_buf2d_clear db 'buf2d_clear',0
1121
	sz_buf2d_draw db 'buf2d_draw',0
1129
	sz_buf2d_draw db 'buf2d_draw',0
1122
	sz_buf2d_delete db 'buf2d_delete',0
1130
	sz_buf2d_delete db 'buf2d_delete',0
1123
	sz_buf2d_line db 'buf2d_line',0
1131
	sz_buf2d_line db 'buf2d_line',0
1124
	sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ­¨¥ ®ªà㦭®áâ¨
1132
	sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ­¨¥ ®ªà㦭®áâ¨
1125
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
1133
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
1126
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
1134
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
1127
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
1135
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
1128
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
1136
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
1129
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
1137
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
1130
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
1138
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
1131
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
1139
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
1132
	sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
1140
	sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
1133
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
1141
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
1134
	sz_buf2d_draw_text db 'buf2d_draw_text',0
1142
	sz_buf2d_draw_text db 'buf2d_draw_text',0
1135
	sz_buf2d_crop_color db 'buf2d_crop_color',0
1143
	sz_buf2d_crop_color db 'buf2d_crop_color',0
1136
	sz_buf2d_offset_h db 'buf2d_offset_h',0
1144
	sz_buf2d_offset_h db 'buf2d_offset_h',0
1137
 
1145
 
1138
i_end:
1146
i_end:
1139
	rb 1024
1147
	rb 1024
1140
	align 16
1148
	align 16
1141
	procinfo process_information
1149
	procinfo process_information
1142
stacktop:
1150
stacktop:
1143
	sys_path rb 4096
1151
	sys_path rb 4096
1144
	file_name:
1152
	file_name:
1145
		rb 4096
1153
		rb 4096
1146
	plugin_path:
1154
	plugin_path:
1147
		rb 4096
1155
		rb 4096
1148
	openfile_path:
1156
	openfile_path:
1149
		rb 4096
1157
		rb 4096
1150
	filename_area:
1158
	filename_area:
1151
		rb 256
1159
		rb 256
1152
mem:
1160
mem: