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 |