Subversion Repositories Kolibri OS

Rev

Rev 5911 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5911 Rev 8288
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 0x1
-
 
5
	dd start
-
 
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
4
	dd 1, start, i_end, mem, stacktop, 0, sys_path
7
	dd mem
-
 
8
	dd stacktop
-
 
9
	dd 0x0
-
 
10
	dd sys_path
-
 
Line 11... Line 5...
11
 
5
 
12
include '../../../macros.inc'
6
include '../../../macros.inc'
-
 
7
include '../../../proc32.inc'
13
include '../../../proc32.inc'
8
include '../../../KOSfuncs.inc'
14
include '../../../develop/libraries/box_lib/load_lib.mac'
9
include '../../../load_lib.mac'
15
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;¬ ªà®áë ¤«ï § ¤ ­¨ï í«¥¬¥­â®¢ box_lib
10
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;¬ ªà®áë ¤«ï § ¤ ­¨ï í«¥¬¥­â®¢ box_lib
Line 16... Line 11...
16
include '../../../dll.inc'
11
include '../../../dll.inc'
Line 17... Line 12...
17
 
12
 
18
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
13
@use_library mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
19
 
14
 
20
;ä« £¨, ¤«ï ä㭪樨 ®¡à¥§ ­¨ï ¡ãä¥à 
15
;ä« £¨, ¤«ï ä㭪樨 ®¡à¥§ ­¨ï ¡ãä¥à 
Line 127... Line 122...
127
			local .path_str
122
			local .path_str
128
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
123
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
129
			db 0
124
			db 0
130
		@@:
125
		@@:
131
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
126
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
132
		copy_path .path_str,[32],file_name,0x0
127
		copy_path .path_str,[32],file_name,0
133
	else
128
	else
134
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
129
		copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
135
	end if
130
	end if
Line 136... Line 131...
136
 
131
 
137
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
132
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
Line 138... Line 133...
138
	mov [buf],eax
133
	mov [buf],eax
139
 
134
 
140
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
135
	mov eax,SF_FILE
141
	mov [run_file_70.Function], 0
136
	mov [run_file_70.Function], SSF_READ_FILE
142
	mov [run_file_70.Position], 0
137
	mov [run_file_70.Position], 0
143
	mov [run_file_70.Flags], 0
138
	mov [run_file_70.Flags], 0
144
	mov [run_file_70.Count], dword size
139
	mov [run_file_70.Count], dword size
Line 148... Line 143...
148
	mov ebx,run_file_70
143
	mov ebx,run_file_70
149
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
144
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
150
	cmp ebx,0xffffffff
145
	cmp ebx,0xffffffff
151
	je @f
146
	je @f
152
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
147
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
153
		stdcall dword[img_decode], dword[buf],ebx,0
148
		stdcall [img_decode], [buf],ebx,0
154
		mov dword[image_data],eax
149
		mov [image_data],eax
155
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
150
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
156
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
151
		stdcall [img_to_rgb2], [image_data],[buf]
157
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
152
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
158
		stdcall dword[img_destroy], dword[image_data]
153
		stdcall [img_destroy], [image_data]
159
	@@:
154
	@@:
160
}
155
}
Line 161... Line 156...
161
 
156
 
162
;¤ ­­ë¥ ¨£àë
157
;¤ ­­ë¥ ¨£àë
Line 203... Line 198...
203
align 4
198
align 4
204
rand_next:
199
rand_next:
205
;x(k+1) = (a*x(k)+c) mod m
200
;x(k+1) = (a*x(k)+c) mod m
206
; a=22695477, c=1, m=2^32
201
; a=22695477, c=1, m=2^32
207
push eax
202
push eax
208
	mov eax,dword[rand_x]
203
	mov eax,[rand_x]
209
	imul eax,22695477
204
	imul eax,22695477
210
	inc eax
205
	inc eax
211
	mov dword[rand_x],eax
206
	mov [rand_x],eax
212
pop eax
207
pop eax
213
	ret
208
	ret
Line 214... Line 209...
214
 
209
 
215
;ᮧ¤ ¥¬ ¯à®§à ç­ë¥ ¡ãä¥à  ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ­¨ï
210
;ᮧ¤ ¥¬ ¯à®§à ç­ë¥ ¡ãä¥à  ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ­¨ï
216
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
211
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
217
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
212
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
218
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
213
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
219
align 4
214
align 4
220
proc CreateTrapharetBuffer uses eax edi, buf:dword, img_data:dword
215
proc CreateTrapharetBuffer uses eax edi, buf:dword, img_data:dword
Line 221... Line 216...
221
	mov edi,dword[buf]
216
	mov edi,[buf]
222
 
217
 
223
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
218
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
224
	mov buf2d_size_lt,0
219
	mov buf2d_size_lt,0
225
	mov eax,dword[displ_w]
220
	mov eax,[displ_w]
226
	mov buf2d_w,eax
221
	mov buf2d_w,eax
227
	mov eax,dword[displ_h]
222
	mov eax,[displ_h]
228
	mov buf2d_h,eax
223
	mov buf2d_h,eax
Line 229... Line 224...
229
	mov buf2d_color,0xffffff
224
	mov buf2d_color,0xffffff
Line 436... Line 431...
436
		mov edi,some_text
431
		mov edi,some_text
437
		call convert_to_str ;®¡­®¢«ï¥¬ ⥪á⮢ãî áâபã
432
		call convert_to_str ;®¡­®¢«ï¥¬ ⥪á⮢ãî áâபã
438
		and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥­ìè ¥¬ ¢à¥¬ï
433
		and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥­ìè ¥¬ ¢à¥¬ï
439
		cmp ax,0
434
		cmp ax,0
440
		jne @f
435
		jne @f
441
			mov edi,dword[game_delay_min] ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
436
			mov edi,[game_delay_min] ;¬¨­¨¬ «ì­ ï § ¤¥à¦ª 
442
			cmp dword[game_spd],edi
437
			cmp dword[game_spd],edi
443
			jle @f
438
			jle @f
444
				dec dword[game_spd]
439
				dec dword[game_spd]
445
		@@:
440
		@@:
446
	pop edi eax
441
	pop edi eax
Line 598... Line 593...
598
		mov byte[game_text+5],''
593
		mov byte[game_text+5],''
599
		mov eax,dword[game_delay_b]
594
		mov eax,dword[game_delay_b]
600
		mov dword[game_spd],eax ;§ ¤¥à¦ª  ¨£àë
595
		mov dword[game_spd],eax ;§ ¤¥à¦ª  ¨£àë
601
	.end_init:
596
	.end_init:
Line 602... Line 597...
602
 
597
 
603
	mcall 26,9
598
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
604
	mov dword[rand_x],eax ;§ ¯®«­ï¥¬ 1-¥ á«ãç ©­®¥ ç¨á«®
599
	mov [rand_x],eax ;§ ¯®«­ï¥¬ 1-¥ á«ãç ©­®¥ ç¨á«®
Line 605... Line 600...
605
	pop ebx eax
600
	pop ebx eax
606
 
601
 
Line 607... Line 602...
607
	ret
602
	ret
608
endp
603
endp
609
 
604
 
610
align 4
605
align 4
611
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
606
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
612
	pushad
607
	pushad
613
	mov edx,dword[displ_bytes]
608
	mov edx,[displ_bytes]
614
	mov ecx,edx
609
	mov ecx,edx
615
	imul ecx,dword[count]
610
	imul ecx,[count]
616
	mov eax,dword[f_name]
611
	mov eax,[f_name]
617
	load_image_file eax,image_data_gray,ecx
612
	load_image_file eax,image_data_gray,ecx
618
		mov edx,dword[displ_bytes]
613
		mov edx,[displ_bytes]
619
		mov eax,[image_data_gray]
614
		mov eax,[image_data_gray]
620
		mov edi,dword[buf_start]
615
		mov edi,[buf_start]
621
		mov ecx,dword[count]
616
		mov ecx,[count]
622
		cld
617
		cld
623
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
618
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
Line 634... Line 629...
634
 
629
 
635
align 4
630
align 4
636
user_is_select:
631
user_is_select:
637
	push eax ecx esi edi
632
	push eax ecx esi edi
638
	stdcall [tl_node_get_data], tree1
633
	stdcall [tl_node_get_data], tree1
639
	cmp eax,0 ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥
634
	or eax,eax ;¥á«¨ ¨¬ï ¨£àë ¯ãá⮥
640
	je @f
635
	jz @f
641
		mov esi,eax	
636
		mov esi,eax	
642
		mov edi,ini_name
637
		mov edi,ini_name
643
		mov ecx,FILE_NAME_MAX
638
		mov ecx,FILE_NAME_MAX
644
		cld
639
		cld
Line 657... Line 652...
657
;******************************************************************************
652
;******************************************************************************
658
align 4
653
align 4
659
InitAll:
654
InitAll:
660
	pushad
655
	pushad
661
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
656
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
662
	copy_path ini_name,sys_path,file_name,0x0
657
	copy_path ini_name,sys_path,file_name,0
663
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
658
	stdcall [ini_get_int],file_name,ini_sec_files,key_displ_w,210
664
	mov	dword[displ_w],eax
659
	mov	[displ_w],eax
665
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
660
	stdcall [ini_get_int],file_name,ini_sec_files,key_displ_h,140
666
	mov	dword[displ_h],eax
661
	mov	[displ_h],eax
667
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file
662
	stdcall [ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file
668
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
663
	stdcall [ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file
669
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file
664
	stdcall [ini_get_str],file_name,ini_sec_files,key_file_objects,fn_icon2,FILE_NAME_MAX,ini_def_objects_file
670
	stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file
665
	stdcall [ini_get_str],file_name,ini_sec_files,key_file_lost,fn_icon3,FILE_NAME_MAX,ini_def_lost_file
671
 
666
 
672
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2
667
	stdcall [ini_get_int],file_name,ini_sec_files,key_shadow_x,2
673
	mov	dword[offs_shadow_x],eax
668
	mov	[offs_shadow_x],eax
674
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2
669
	stdcall [ini_get_int],file_name,ini_sec_files,key_shadow_y,2
675
	mov	dword[offs_shadow_y],eax
670
	mov	[offs_shadow_y],eax
Line 676... Line 671...
676
 
671
 
677
	;áç¨â뢠­¨¥ ­ áâ஥ª ¢«¨ïîé¨å ­  ᪮àáâì ¨£àë
672
	;áç¨â뢠­¨¥ ­ áâ஥ª ¢«¨ïîé¨å ­  ᪮àáâì ¨£àë
678
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_a,65
673
	stdcall [ini_get_int],file_name,ini_sec_game,key_delay_a,65
679
	mov	dword[game_delay_a],eax
674
	mov	[game_delay_a],eax
680
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_b,35
675
	stdcall [ini_get_int],file_name,ini_sec_game,key_delay_b,35
681
	mov	dword[game_delay_b],eax
676
	mov	[game_delay_b],eax
682
	stdcall dword[ini_get_int],file_name,ini_sec_game,key_delay_min,15
677
	stdcall [ini_get_int],file_name,ini_sec_game,key_delay_min,15
683
	mov	dword[game_delay_min],eax
678
	mov	[game_delay_min],eax
684
	
679
	
685
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff
680
	stdcall [ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff
686
	mov	dword[color_fon],eax
681
	mov	[color_fon],eax
687
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0
682
	stdcall [ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0
688
	mov	dword[color_shadows],eax
683
	mov	[color_shadows],eax
689
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
684
	stdcall [ini_get_color],file_name,ini_sec_color,key_color_unit,0
690
	mov	dword[color_wolf],eax
685
	mov	[color_wolf],eax
691
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080
686
	stdcall [ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080
692
	mov	dword[color_egg],eax
687
	mov	[color_egg],eax
693
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0
688
	stdcall [ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0
Line 694... Line 689...
694
	mov	dword[color_chick],eax
689
	mov	[color_chick],eax
695
 
690
 
696
	mov ebx,color_decorat
691
	mov ebx,color_decorat
697
	mov byte[key_color_decorat.ind],'0'
692
	mov byte[key_color_decorat.ind],'0'
698
	mov ecx,3
693
	mov ecx,3
699
	cld
694
	cld
700
	@@:
695
	@@:
701
		push ecx ;äã­ªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ­ïâì ॣ¨áâà ecx
696
		push ecx ;äã­ªæ¨ï ini_get_color ¨¬¥¥â ¯à ¢® ¬ ­ïâì ॣ¨áâà ecx
702
		stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080
697
		stdcall [ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080
703
		pop ecx
698
		pop ecx
704
		mov dword[ebx],eax
699
		mov [ebx],eax
705
		add ebx,4
700
		add ebx,4
Line 706... Line 701...
706
		inc byte[key_color_decorat.ind]
701
		inc byte[key_color_decorat.ind]
707
		loop @b
702
		loop @b
708
 
703
 
709
	mov edx,dword[displ_w]
704
	mov edx,[displ_w]
Line 710... Line 705...
710
	imul edx,dword[displ_h]
705
	imul edx,[displ_h]
711
	lea edx,[edx+edx*2]
706
	lea edx,[edx+edx*2]
712
	mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
707
	mov [displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
713
 
708
 
Line 759... Line 754...
759
	jnz @f
754
	jnz @f
760
	cmp	dword [lib3+ll_struc_size-4],0
755
	cmp	dword [lib3+ll_struc_size-4],0
761
	jnz @f
756
	jnz @f
762
	jmp .lib
757
	jmp .lib
763
	@@:
758
	@@:
764
		mcall -1 ;exit not correct
759
		mcall SF_TERMINATE_PROCESS
765
	.lib:
760
	.lib:
Line 766... Line 761...
766
 
761
 
767
	mcall 40,0x27
762
	mcall SF_SET_EVENTS_MASK,0x27
Line 768... Line 763...
768
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
763
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
769
 
764
 
770
;******************************************************************************
765
;******************************************************************************
771
; ¯®¤£®â®¢ª  ᯨ᪠ ¨£à
766
; ¯®¤£®â®¢ª  ᯨ᪠ ¨£à
Line 778... Line 773...
778
 
773
 
779
	mov edi,buf_tree_sys
774
	mov edi,buf_tree_sys
Line 780... Line 775...
780
	m2m dword[tree1.data_img_sys],buf2d_data
775
	m2m dword[tree1.data_img_sys],buf2d_data
781
 
776
 
Line 782... Line 777...
782
	;à ¡®â  á £« ¢­ë¬ ä ©«®¬ ­ áâ஥ª
777
	;à ¡®â  á £« ¢­ë¬ ä ©«®¬ ­ áâ஥ª
783
	copy_path ini_m_name,sys_path,file_name,0x0
778
	copy_path ini_m_name,sys_path,file_name,0
784
 
779
 
785
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_count,1
780
	stdcall [ini_get_int],file_name,ini_sec_files,key_count,1
786
	mov	ecx,eax
781
	mov	ecx,eax
787
	mov dl,'0'
782
	mov dl,'0'
788
	cld
783
	cld
789
	@@:
784
	@@:
790
		mov byte[key_game_ind],dl
785
		mov byte[key_game_ind],dl
791
		inc dl
786
		inc dl
792
		push ecx edx
787
		push ecx edx
793
		stdcall dword[ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file
788
		stdcall [ini_get_str],file_name,ini_sec_files,key_game,txt_tile_type_0,FILE_NAME_MAX,ini_def_decorat_file
794
		stdcall dword[tl_node_add], tree1, 0, txt_tile_type_0 ;¤®¡ ¢«ï¥¬ ­ §¢ ­¨¥ ¨£àë
789
		stdcall [tl_node_add], tree1, 0, txt_tile_type_0 ;¤®¡ ¢«ï¥¬ ­ §¢ ­¨¥ ¨£àë
795
		stdcall dword[tl_cur_next], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª ¨£à
790
		stdcall [tl_cur_next], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢­¨§, çâ®-¡ë ­¥ ¯®¬¥­ï«áï ¯®à冷ª ¨£à
Line 796... Line 791...
796
		pop edx ecx
791
		pop edx ecx
797
	loop @b
792
	loop @b
Line 798... Line 793...
798
	stdcall dword[tl_cur_beg], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢¢¥àå
793
	stdcall [tl_cur_beg], tree1 ;¯¥à¥­®á¨¬ ªãàá®à ¢¢¥àå
Line 810... Line 805...
810
still: ;£« ¢­ë© 横«
805
still: ;£« ¢­ë© 横«
Line 811... Line 806...
811
 
806
 
812
	cmp byte[game_select_mode],0
807
	cmp byte[game_select_mode],0
Line 813... Line 808...
813
	jne .select_mode
808
	jne .select_mode
814
	
809
	
815
	mcall 26,9 ;¡¥à¥¬ á¨á⥬­®¥ ¢à¥¬ï
810
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
816
	mov ebx,[last_time]
811
	mov ebx,[last_time]
817
	add ebx,dword[game_spd] ;delay
812
	add ebx,[game_spd] ;delay
818
	sub ebx,eax
813
	sub ebx,eax
819
	cmp ebx,dword[game_spd] ;delay
814
	cmp ebx,[game_spd] ;delay
820
	ja it_is_time_now
815
	ja it_is_time_now
821
	test ebx,ebx
816
	test ebx,ebx
822
	jz it_is_time_now
817
	jz it_is_time_now
823
	mcall 23
818
	mcall SF_WAIT_EVENT_TIMEOUT
Line 824... Line 819...
824
	cmp eax,0
819
	or eax,eax
825
	je it_is_time_now
820
	jz it_is_time_now
826
 
821
 
827
	jmp @f
822
	jmp @f
Line 828... Line 823...
828
	.select_mode:
823
	.select_mode:
829
		mcall 10
824
		mcall SF_WAIT_EVENT
830
	@@:
825
	@@:
Line 848... Line 843...
848
	@@:
843
	@@:
849
	jmp still
844
	jmp still
Line 850... Line 845...
850
 
845
 
851
align 4
846
align 4
852
it_is_time_now:
847
it_is_time_now:
853
	mcall 26,9
848
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
Line 854... Line 849...
854
	mov [last_time],eax
849
	mov [last_time],eax
855
 
850
 
Line 862... Line 857...
862
	jmp still
857
	jmp still
Line 863... Line 858...
863
 
858
 
864
align 4
859
align 4
865
key:
860
key:
866
	push eax ebx
861
	push eax ebx
Line 867... Line 862...
867
	mcall 2
862
	mcall SF_GET_KEY
868
 
863
 
869
	cmp byte[game_select_mode],0
864
	cmp byte[game_select_mode],0
870
	je @f
865
	je @f
Line 912... Line 907...
912
 
907
 
913
 
908
 
914
align 4
909
align 4
915
draw_window:
910
draw_window:
Line 916... Line 911...
916
	pushad
911
	pushad
917
	mcall 12,1
912
	mcall SF_REDRAW,SSF_BEGIN_DRAW
918
 
913
 
919
	xor eax,eax
914
	xor eax,eax
920
	mov ebx,20*65536+480
915
	mov ebx,20*65536+480
921
	mov ecx,20*65536+270
916
	mov ecx,20*65536+270
922
	mov edx,[sc.work]
917
	mov edx,[sc.work]
923
	;or edx,0x33000000
918
	;or edx,0x33000000
924
	or edx,0x73000000
919
	or edx,0x73000000
Line 925... Line 920...
925
	mov edi,hed
920
	mov edi,hed
926
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
921
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
Line 927... Line 922...
927
	mcall 9,procinfo,-1
922
	mcall SF_THREAD_INFO,procinfo,-1
928
 
923
 
929
	cmp byte[game_select_mode],0
924
	cmp byte[game_select_mode],0
930
	jne .select_mode
925
	jne .select_mode
931
 
926
 
932
	mov edi,buf_displ
927
	mov edi,buf_displ
933
	mov eax,dword[procinfo.client_box.width]
928
	mov eax,[procinfo.client_box.width]
934
	cmp eax,dword[displ_w]
929
	cmp eax,[displ_w]
Line 935... Line 930...
935
	jle @f
930
	jle @f
Line 936... Line 931...
936
		sub eax,dword[displ_w]
931
		sub eax,[displ_w]
937
		shr eax,1
932
		shr eax,1
938
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
933
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
939
	@@:
934
	@@:
940
 
935
 
941
	call draw_display
936
	call draw_display
942
 
937
 
943
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
938
	mov eax,SF_DRAW_RECT
944
	mov edx,[sc.work]
939
	mov edx,[sc.work]
945
	xor esi,esi
940
	xor esi,esi
946
	mov si,buf2d_l
941
	mov si,buf2d_l
947
	add esi,dword[displ_w]
942
	add esi,[displ_w]
948
	mov ebx,dword[procinfo.client_box.width]
943
	mov ebx,[procinfo.client_box.width]
949
	inc ebx
944
	inc ebx
950
	cmp esi,ebx
945
	cmp esi,ebx
951
	jge @f
946
	jge @f
952
		sub ebx,esi
947
		sub ebx,esi
953
		rol ebx,16
948
		rol ebx,16
954
		mov bx,si
949
		mov bx,si
955
		rol ebx,16
950
		rol ebx,16
956
		mov ecx,dword[procinfo.client_box.height]
951
		mov ecx,[procinfo.client_box.height]
Line 957... Line 952...
957
		inc ecx
952
		inc ecx
958
		int 0x40 ;à¨á®¢ ­¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï
953
		int 0x40 ;à¨á®¢ ­¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï
959
		jmp .draw_s
-
 
960
	@@:
-
 
961
		mov esi,dword[procinfo.client_box.width] ;ª®£¤  ¯® è¨à¨­¥ ­¥ ¢« §¨â
954
		jmp .draw_s
962
		inc esi
955
	@@:
963
	.draw_s:
956
		mov esi,[procinfo.client_box.width] ;ª®£¤  ¯® è¨à¨­¥ ­¥ ¢« §¨â
964
 
957
		inc esi
965
	; *** à¨á®¢ ­¨¥ ª­®¯®ª ***
958
	.draw_s:
966
push esi
959
 
967
	mov eax,8
-
 
968
	xor ebx,ebx
-
 
969
	mov bx,buf2d_l
960
	; *** à¨á®¢ ­¨¥ ª­®¯®ª ***
970
	add ebx,buf2d_w
961
push esi
Line 971... Line 962...
971
	add ebx,BUT1_L
962
	movzx ebx,buf2d_l
972
	shl ebx,16
963
	add ebx,buf2d_w
973
	mov bx,BUT1_W
964
	add ebx,BUT1_L
974
	mov ecx,BUT1_T*65536+BUT1_H
965
	shl ebx,16
Line 975... Line 966...
975
	mov edx,5
966
	mov bx,BUT1_W
976
	;or edx,0x40000000
967
	mov ecx,BUT1_T*65536+BUT1_H
977
	mov esi,dword[color_but_sm]
968
	mov esi,[color_but_sm]
978
	int 0x40
969
	mcall SF_DEFINE_BUTTON,,,5
979
 
970
 
980
	inc edx
971
	inc edx
Line 981... Line 972...
981
	add ecx,BUT1_NEXT_TOP
972
	add ecx,BUT1_NEXT_TOP
982
	int 0x40
973
	int 0x40
983
pop esi
974
pop esi
984
 
975
 
985
	mov bx,BUT1_H
976
	mov bx,BUT1_H-4
Line 986... Line 977...
986
	add ebx,3*65536;+3
977
	add ebx,8 shl 16
987
	mov ecx,dword[color_but_te]
978
	mov ecx,[color_but_te]
988
	or  ecx,0x80000000
979
	or  ecx,0x80000000
Line 989... Line 980...
989
	mov edx,txt_game_a
980
	mov edx,txt_game_a
990
	mcall 4
981
	mcall SF_DRAW_TEXT
991
 
982
 
992
	ror ebx,16
983
	ror ebx,16
993
	add ebx,BUT1_NEXT_TOP
984
	add ebx,BUT1_NEXT_TOP
994
	ror ebx,16
985
	ror ebx,16
995
	mov edx,txt_game_b
986
	mov edx,txt_game_b
996
	int 0x40
987
	int 0x40
997
 
988
 
Line 1012... Line 1003...
1012
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
1003
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
1013
	@@:
1004
	@@:
Line 1014... Line 1005...
1014
	
1005
	
1015
	xor ebx,ebx
1006
	xor ebx,ebx
1016
	mov bx,buf2d_l
1007
	mov bx,buf2d_l
1017
	mov ecx,dword[displ_h]
1008
	mov ecx,[displ_h]
Line 1018... Line 1009...
1018
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
1009
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
1019
 
1010
 
1020
	jmp @f
1011
	jmp @f
1021
	.select_mode:
1012
	.select_mode:
1022
		stdcall dword[tl_draw],dword tree1
1013
		stdcall [tl_draw], tree1
1023
		mov edi,tree1
1014
		mov edi,tree1
1024
		add edi,tl_offs_box
1015
		add edi,tl_offs_box
Line 1025... Line 1016...
1025
		stdcall draw_rect_border, procinfo.client_box, edi
1016
		stdcall draw_rect_border, procinfo.client_box, edi
1026
	@@:
1017
	@@:
1027
 
1018
 
Line 1028... Line 1019...
1028
	mcall 12,2
1019
	mcall SF_REDRAW,SSF_END_DRAW
1029
	popad
1020
	popad
1030
	ret
1021
	ret
1031
 
1022
 
1032
; äã­ªæ¨ï à¨áã¥â ¯®«ï ¢®ªà㣠¯àאַ㣮«ì­¨ª  user_box
1023
; äã­ªæ¨ï à¨áã¥â ¯®«ï ¢®ªà㣠¯àאַ㣮«ì­¨ª  user_box
1033
; à §¬¥à ¯®«¥© ¢ëç¨á«ï¥âáï ¨áå®¤ï ¨§ à §¬¥à®¢ client_rect
1024
; à §¬¥à ¯®«¥© ¢ëç¨á«ï¥âáï ¨áå®¤ï ¨§ à §¬¥à®¢ client_rect
1034
; ¯à¥¤¯®« £ ¥âáï, çâ® ¢ ¡®«ì設á⢥ á«ãç ¥¢ client_rect > user_box
1025
; ¯à¥¤¯®« £ ¥âáï, çâ® ¢ ¡®«ì設á⢥ á«ãç ¥¢ client_rect > user_box
1035
align 4
1026
align 4
1036
proc draw_rect_border, client_rect:dword, user_box:dword
1027
proc draw_rect_border, client_rect:dword, user_box:dword
1037
	pushad
1028
	pushad
1038
	mov esi,dword[user_box]
1029
	mov esi,[user_box]
1039
	cmp esi,0
1030
	cmp esi,0
1040
	je @f
1031
	je @f
1041
		mov edi,dword[client_rect]
1032
		mov edi,[client_rect]
1042
		mov ebx,dword[edi+8] ;+8 = width
1033
		mov ebx,dword[edi+8] ;+8 = width
Line 1043... Line 1034...
1043
		inc bx
1034
		inc bx
1044
		mov ecx,dword[esi+4] ;+4 = top
1035
		mov ecx,dword[esi+4] ;+4 = top
1045
		mov edx,[sc.work]
1036
		mov edx,[sc.work]
1046
		mcall 13 ;top
1037
		mcall SF_DRAW_RECT ;top
1047
 
1038
 
1048
		mov eax,dword[esi+4] ;+4 = top
1039
		mov eax,dword[esi+4] ;+4 = top
1049
		add eax,dword[esi+12] ;+12 = height
1040
		add eax,dword[esi+12] ;+12 = height
1050
		cmp eax,dword[edi+12]
1041
		cmp eax,dword[edi+12]
1051
		jge .no_bottom
1042
		jge .no_bottom
1052
			mov ecx,eax
1043
			mov ecx,eax
1053
			shl ecx,16
1044
			shl ecx,16
Line 1054... Line 1045...
1054
			mov cx,word[edi+12] ;+12 = bottom
1045
			mov cx,word[edi+12] ;+12 = bottom
1055
			inc cx
1046
			inc cx
1056
			sub cx,ax
1047
			sub cx,ax
1057
			mcall 13 ;bottom
1048
			mcall SF_DRAW_RECT ;bottom
1058
		.no_bottom:
1049
		.no_bottom:
1059
 
1050
 
Line 1060... Line 1051...
1060
		mov ebx,dword[esi] ;+0 left
1051
		mov ebx,dword[esi] ;+0 left
1061
		mov ecx,dword[esi+4] ;+4 = top
1052
		mov ecx,dword[esi+4] ;+4 = top
1062
		shl ecx,16
1053
		shl ecx,16
1063
		mov cx,word[esi+12] ;+12 = height
1054
		mov cx,word[esi+12] ;+12 = height
1064
		inc cx 
1055
		inc cx 
1065
		mcall 13 ;left
1056
		mcall SF_DRAW_RECT ;left
1066
 
1057
 
1067
		mov eax,dword[esi] ;+0 left
1058
		mov eax,dword[esi] ;+0 left
1068
		add eax,dword[esi+8] ;+8 = width
1059
		add eax,dword[esi+8] ;+8 = width
1069
		mov ebx,eax
1060
		mov ebx,eax
1070
		shl ebx,16
1061
		shl ebx,16
1071
		mov bx,word[edi+8] ;+8 = right
1062
		mov bx,word[edi+8] ;+8 = right
Line 1072... Line 1063...
1072
		sub bx,ax
1063
		sub bx,ax
1073
		inc bx
1064
		inc bx
Line 1074... Line 1065...
1074
		mcall 13 ;right
1065
		mcall SF_DRAW_RECT ;right
1075
	@@:
1066
	@@:
1076
	popad
1067
	popad
1077
	ret
1068
	ret
Line 1078... Line 1069...
1078
endp
1069
endp
1079
 
1070
 
1080
align 4
1071
align 4
1081
draw_display:
1072
draw_display:
1082
 
1073
 
1083
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
1074
	stdcall mem_copy, [buf_fon],[buf_displ],[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
1084
	call DrawZaac ;à¨á㥬 § ©æ 
1075
	call DrawZaac ;à¨á㥬 § ©æ 
Line 1085... Line 1076...
1085
	call DrawWolf ;à¨á㥬 ¢®«ª 
1076
	call DrawWolf ;à¨á㥬 ¢®«ª 
1086
	call DrawEggs ;à¨á㥬 ï©æ 
1077
	call DrawEggs ;à¨á㥬 ï©æ 
1087
 
1078
 
Line 1088... Line 1079...
1088
push eax
1079
push eax
1089
	mov eax,dword[displ_w]
1080
	mov eax,[displ_w]
1090
	shr eax,1
1081
	shr eax,1
1091
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬
1082
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬
Line 1140... Line 1131...
1140
		add edi,BUF_STRUCT_SIZE
1131
		add edi,BUF_STRUCT_SIZE
1141
		loop @b
1132
		loop @b
Line 1142... Line 1133...
1142
 
1133
 
1143
	mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥
1134
	mov dword[tree1.data_img_sys],0 ;ç¨á⨬ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥
1144
	stdcall dword[tl_data_clear], tree1
1135
	stdcall dword[tl_data_clear], tree1
1145
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
-
 
1146
 
-
 
1147
head_f_i:
-
 
Line 1148... Line 1136...
1148
head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
1136
	mcall SF_TERMINATE_PROCESS
1149
 
1137
 
1150
system_dir0 db '/sys/lib/'
-
 
1151
lib0_name db 'buf2d.obj',0
-
 
1152
err_message_found_lib0 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0
-
 
1153
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0
1138
system_dir0 db '/sys/lib/'
1154
 
1139
lib0_name db 'buf2d.obj',0
1155
system_dir1 db '/sys/lib/'
-
 
1156
lib1_name db 'libimg.obj',0
-
 
1157
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
-
 
1158
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
1140
system_dir1 db '/sys/lib/'
1159
 
1141
lib1_name db 'libimg.obj',0
1160
system_dir2 db '/sys/lib/'
-
 
1161
lib2_name db 'libini.obj',0
-
 
1162
err_message_found_lib2 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
-
 
1163
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
1142
system_dir2 db '/sys/lib/'
1164
 
1143
lib2_name db 'libini.obj',0
1165
system_dir3 db '/sys/lib/'
-
 
1166
lib3_name db 'box_lib.obj',0
-
 
Line 1167... Line 1144...
1167
err_message_found_lib3 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0
1144
system_dir3 db '/sys/lib/'
1168
err_message_import3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0
1145
lib3_name db 'box_lib.obj',0
1169
 
1146
 
1170
;library structures
1147
;library structures
1171
l_libs_start:
1148
l_libs_start:
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
1149
	lib0 l_libs lib0_name, file_name, system_dir0, import_buf2d_lib
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
1150
	lib1 l_libs lib1_name, file_name, system_dir1, import_libimg
Line 1174... Line 1151...
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
1151
	lib2 l_libs lib2_name, file_name, system_dir2, import_libini
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
1152
	lib3 l_libs lib3_name, file_name, system_dir3, import_box_lib
1176
load_lib_end:
1153
load_lib_end:
1177
 
1154
 
1178
align 4
1155
align 4
1179
proc mem_copy uses ecx esi edi, source:dword, destination:dword, len:dword
1156
proc mem_copy uses ecx esi edi, source:dword, destination:dword, len:dword
1180
	cld
1157
	cld
1181
	mov esi, dword[source]
1158
	mov esi, [source]
1182
	mov edi, dword[destination]
1159
	mov edi, [destination]
Line -... Line 1160...
-
 
1160
	mov ecx, [len]
-
 
1161
	rep movsb
-
 
1162
	ret
1183
	mov ecx, dword[len]
1163
endp
1184
	rep movsb
1164
 
1185
	ret
1165
;input:
1186
endp
1166
; eax - ç¨á«®
1187
 
-
 
1188
align 4
1167
; edi - ¡ãä¥à ¤«ï áâப¨
1189
convert_to_str:
1168
align 4
1190
	pushad
1169
convert_to_str:
Line 1191... Line 1170...
1191
	mov dword[edi+1],0
1170
	pushad
1192
	cld
1171
	lea esi,[edi+8] ;8 - ¤«¨­­  ¡ãä¥à  -1
1193
	call .str
-
 
1194
	popad
-
 
1195
	ret
-
 
-
 
1172
	call .str
-
 
1173
	popad
1196
 
1174
	ret
1197
align 4
1175
 
1198
.str:
1176
align 4
1199
  mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1177
.str:
1200
    ;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1178
	mov ecx,10
-
 
1179
	cmp eax,ecx
1201
  cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1180
	jb @f
1202
  jb @f
-
 
-
 
1181
		xor edx,edx
-
 
1182
		div ecx
-
 
1183
		push edx
1203
  xor edx,edx  ;®ç¨áâ¨âì edx
1184
		;dec edi  ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
-
 
1185
		call .str
1204
  div ecx      ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1186
		pop eax
1205
  push edx     ;¯®«®¦¨âì ¢ á⥪
-
 
-
 
1187
	@@:
-
 
1188
	cmp edi,esi
Line 1206... Line 1189...
1206
  call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1189
	jge @f
1207
  pop eax
1190
		or al,0x30
1208
  @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1191
		stosb
Line 1209... Line 1192...
1209
  or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1192
		mov byte[edi],0 ;¢ ª®­¥æ áâப¨ áâ ¢¨¬ 0, çâ®-¡ë ­¥ ¢ë« §¨« ¬ãá®à
1210
  stosb       ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1193
	@@:
1211
  ret	      ;¢¥à­ãâìáï ®ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1194
	ret
Line 1212... Line 1195...
1212
 
1195
 
1213
 
1196
 
1214
last_time dd 0
1197
last_time dd 0