Rev 4332 | Rev 5911 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4332 | Rev 5881 | ||
---|---|---|---|
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 0 |
9 | dd 0 |
10 | dd sys_path |
10 | dd sys_path |
11 | 11 | ||
12 | include '../../macros.inc' |
12 | include '../../macros.inc' |
13 | include '../../proc32.inc' |
13 | include '../../proc32.inc' |
14 | include '../../develop/libraries/box_lib/load_lib.mac' |
14 | include '../../develop/libraries/box_lib/load_lib.mac' |
15 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
15 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
16 | include '../../dll.inc' |
16 | include '../../dll.inc' |
17 | include 'lang.inc' |
17 | include 'lang.inc' |
18 | include 'info_fun_float.inc' |
18 | include 'info_fun_float.inc' |
19 | 19 | ||
20 | debug equ 0 |
20 | debug equ 0 |
21 | 21 | ||
22 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
22 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
23 | 23 | ||
24 | struct FileInfoBlock |
24 | struct FileInfoBlock |
25 | Function dd ? |
25 | Function dd ? |
26 | Position dd ? |
26 | Position dd ? |
27 | Flags dd ? |
27 | Flags dd ? |
28 | Count dd ? |
28 | Count dd ? |
29 | Buffer dd ? |
29 | Buffer dd ? |
30 | db ? |
30 | db ? |
31 | FileName dd ? |
31 | FileName dd ? |
32 | ends |
32 | ends |
33 | 33 | ||
34 | run_file_70 FileInfoBlock |
34 | run_file_70 FileInfoBlock |
35 | image_data dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì. ¤«ï 㦥 ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨ï |
35 | image_data dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì, 㦥 ¤«ï ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨ï |
36 | open_file_lif dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds |
36 | open_file_lif dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds |
37 | open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©« |
37 | open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©« |
38 | 38 | ||
39 | ; |
39 | ; |
40 | fn_toolbar db 'toolbar.png',0 |
40 | fn_toolbar db 'toolbar.png',0 |
41 | IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
41 | IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
42 | IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*7 |
42 | IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*7 |
43 | image_data_toolbar dd 0 |
43 | image_data_toolbar dd 0 |
44 | ; |
44 | ; |
45 | TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
45 | TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
46 | icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
46 | icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
47 | icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
47 | icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
48 | TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*8+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
48 | TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*8+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
49 | ; |
49 | ; |
50 | IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
50 | IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
51 | 51 | ||
52 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
52 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
53 | ;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬ |
53 | ;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬ |
54 | if path eqtype '' ;¯à®¢¥à塞 § ¤ «¨ áâப®© ¯ à ¬¥âà path |
54 | if path eqtype '' ;¯à®¢¥à塞 § ¤ «¨ áâப®© ¯ à ¬¥âà path |
55 | jmp @f |
55 | jmp @f |
56 | local .path_str |
56 | local .path_str |
57 | .path_str db path ;ä®à¬¨à㥬 «®ª «ìãî ¯¥à¥¬¥ãî |
57 | .path_str db path ;ä®à¬¨à㥬 «®ª «ìãî ¯¥à¥¬¥ãî |
58 | db 0 |
58 | db 0 |
59 | @@: |
59 | @@: |
60 | ;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
60 | ;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
61 | copy_path .path_str,[32],file_name,0x0 |
61 | copy_path .path_str,[32],file_name,0 |
62 | else |
62 | else |
63 | copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
63 | copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
64 | end if |
64 | end if |
65 | 65 | ||
66 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
66 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
67 | mov [buf],eax |
67 | mov [buf],eax |
68 | 68 | ||
69 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
69 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
70 | mov [run_file_70.Function], 0 |
70 | mov [run_file_70.Function], 0 |
71 | mov [run_file_70.Position], 0 |
71 | mov [run_file_70.Position], 0 |
72 | mov [run_file_70.Flags], 0 |
72 | mov [run_file_70.Flags], 0 |
73 | mov [run_file_70.Count], dword size |
73 | mov [run_file_70.Count], dword size |
74 | m2m [run_file_70.Buffer], [buf] |
74 | m2m [run_file_70.Buffer], [buf] |
75 | mov byte[run_file_70+20], 0 |
75 | mov byte[run_file_70+20], 0 |
76 | mov [run_file_70.FileName], file_name |
76 | mov [run_file_70.FileName], file_name |
77 | mov ebx,run_file_70 |
77 | mov ebx,run_file_70 |
78 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
78 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
79 | cmp ebx,0xffffffff |
79 | cmp ebx,0xffffffff |
80 | je @f |
80 | je @f |
81 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
81 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
82 | stdcall dword[img_decode], dword[buf],ebx,0 |
82 | stdcall dword[img_decode], dword[buf],ebx,0 |
83 | mov dword[image_data],eax |
83 | mov dword[image_data],eax |
84 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
84 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
85 | stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
85 | stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
86 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
86 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
87 | stdcall dword[img_destroy], dword[image_data] |
87 | stdcall dword[img_destroy], dword[image_data] |
88 | @@: |
88 | @@: |
89 | } |
89 | } |
90 | 90 | ||
91 | ;-------------------------------------- |
91 | ;-------------------------------------- |
92 | include 'data.inc' |
92 | include 'data.inc' |
93 | 93 | ||
94 | level_stack dd 0 |
94 | level_stack dd 0 |
95 | offs_last_timer dd 0 ;¯®á«¥¤¨© ᤢ¨£ ¯®ª § ë© ¢ äãªæ¨¨ â ©¬¥à |
95 | offs_last_timer dd 0 ;¯®á«¥¤¨© ᤢ¨£ ¯®ª § ë© ¢ äãªæ¨¨ â ©¬¥à |
96 | 96 | ||
97 | ID_ICON_CHUNK_MAIN equ 0 ;¨ª®ª £« ¢®£® ¡«®ª |
97 | ID_ICON_CHUNK_MAIN equ 0 ;¨ª®ª £« ¢®£® ¡«®ª |
98 | ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®ª ¥ ¨§¢¥á⮣® ¡«®ª |
98 | ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®ª ¥ ¨§¢¥á⮣® ¡«®ª |
99 | ID_ICON_DATA equ 2 ;¨ª®ª ¤«ï ¤ ëå ¡«®ª , ¥ ®¯à¥¤¥«¥®© áâàãªâãàë |
99 | ID_ICON_DATA equ 2 ;¨ª®ª ¤«ï ¤ ëå ¡«®ª , ¥ ®¯à¥¤¥«¥®© áâàãªâãàë |
100 | 100 | ||
101 | FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª ¢ à §¬¥à¥ ¡«®ª |
101 | FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª ¢ à §¬¥à¥ ¡«®ª |
102 | 102 | ||
103 | align 4 |
103 | align 4 |
104 | file_3ds: ;¯¥à¥¬¥ë¥ ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ®âªàë⨨ ä ©« |
104 | file_3ds: ;¯¥à¥¬¥ë¥ ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ®âªàë⨨ ä ©« |
105 | .offs: dd 0 ;+0 㪠§ ⥫ì ç «® ¡«®ª |
105 | .offs: dd 0 ;+0 㪠§ ⥫ì ç «® ¡«®ª |
106 | .size: dd 0 ;+4 à §¬¥à ¡«®ª (¤«ï 1-£® ¯ à ¬¥âà = à §¬¥à ä ©« 3ds) |
106 | .size: dd 0 ;+4 à §¬¥à ¡«®ª (¤«ï 1-£® ¯ à ¬¥âà = à §¬¥à ä ©« 3ds) |
107 | rb 8*MAX_FILE_LEVEL |
107 | rb 8*MAX_FILE_LEVEL |
108 | 108 | ||
109 | size_one_list equ 42 |
109 | size_one_list equ 42 |
110 | list_offs_chunk_del equ 8 ;¬®¦¥â «¨ ¡«®ª 㤠«ïâáï |
110 | list_offs_chunk_del equ 8 ;¬®¦¥â «¨ ¡«®ª 㤠«ïâáï |
111 | list_offs_chunk_lev equ 9 ;ã஢¥ì ¡«®ª (¯à®¯¨á ¢ ¤ ë¥ ã§« ) |
111 | list_offs_chunk_lev equ 9 ;ã஢¥ì ¡«®ª (¯à®¯¨á ¢ ¤ ë¥ ã§« ) |
112 | list_offs_p_data equ 10 ;㪠§ â¥«ì ¯®¤¯¨áì ¡«®ª |
112 | list_offs_p_data equ 10 ;㪠§ â¥«ì ¯®¤¯¨áì ¡«®ª |
113 | list_offs_text equ 14 ;ᤢ¨£ ç « ⥪áâ ¢ «¨á⥠|
113 | list_offs_text equ 14 ;ᤢ¨£ ç « ⥪áâ ¢ «¨á⥠|
114 | buffer rb size_one_list ;¡ãä¥à ¤«ï ¤®¡ ¢«¥¨ï áâàãªâãà ¢ ᯨ᮪ tree1 |
114 | buffer rb size_one_list ;¡ãä¥à ¤«ï ¤®¡ ¢«¥¨ï áâàãªâãà ¢ ᯨ᮪ tree1 |
115 | 115 | ||
116 | txt_3ds_symb db 0,0 |
116 | txt_3ds_symb db 0,0 |
117 | ;-------------------------------------- |
117 | ;-------------------------------------- |
118 | 118 | ||
119 | include 'info_wnd_coords.inc' |
119 | include 'info_wnd_coords.inc' |
120 | 120 | ||
121 | align 4 |
121 | align 4 |
122 | start: |
122 | start: |
123 | load_libraries l_libs_start,l_libs_end |
123 | load_libraries l_libs_start,l_libs_end |
124 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
124 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨ |
- | 125 | mov ebp,lib_0 |
|
- | 126 | cmp dword [ebp+ll_struc_size-4],0 |
|
- | 127 | jz @f |
|
- | 128 | mov ebp,lib_1 |
|
- | 129 | cmp dword [ebp+ll_struc_size-4],0 |
|
- | 130 | jz @f |
|
- | 131 | mov ebp,lib_2 |
|
- | 132 | cmp dword [ebp+ll_struc_size-4],0 |
|
- | 133 | jz @f |
|
125 | mov ebp,lib_7 |
134 | mov ebp,lib_3 |
126 | cmp dword [ebp+ll_struc_size-4],0 |
135 | cmp dword [ebp+ll_struc_size-4],0 |
127 | jz @f |
136 | jz @f |
128 | mcall -1 ;exit not correct |
137 | mcall -1 ;exit not correct |
129 | @@: |
138 | @@: |
130 | mcall 48,3,sc,sizeof.system_colors |
139 | mcall 48,3,sc,sizeof.system_colors |
131 | mcall 40,0x27 |
140 | mcall 40,0x27 |
132 | stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
141 | stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
133 | 142 | ||
134 | stdcall dword[tl_data_init], tree1 |
143 | stdcall dword[tl_data_init], tree1 |
135 | ;á¨áâ¥¬ë¥ ¨ª®ª¨ 16*16 ¤«ï tree_list |
144 | ;á¨áâ¥¬ë¥ ¨ª®ª¨ 16*16 ¤«ï tree_list |
136 | load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE |
145 | load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE |
137 | ;¥á«¨ ¨§®¡à ¦¥¨¥ ¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ |
146 | ;¥á«¨ ¨§®¡à ¦¥¨¥ ¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ |
138 | ;¥ ¨¨æ¨ «¨§¨à®¢ ë¥ ¤ ë¥, ® ®è¨¡ª¨ ¥ ¡ã¤¥â, â. ª. ¡ãä¥à 㦮£® à §¬¥à |
147 | ;¥ ¨¨æ¨ «¨§¨à®¢ ë¥ ¤ ë¥, ® ®è¨¡ª¨ ¥ ¡ã¤¥â, â. ª. ¡ãä¥à 㦮£® à §¬¥à |
139 | mov eax,dword[icon_tl_sys] |
148 | mov eax,dword[icon_tl_sys] |
140 | mov dword[tree1.data_img_sys],eax |
149 | mov dword[tree1.data_img_sys],eax |
141 | 150 | ||
142 | load_image_file 'objects.png', icon_toolbar,TOOLBAR_ICON_BMP_SIZE |
151 | load_image_file 'objects.png', icon_toolbar,TOOLBAR_ICON_BMP_SIZE |
143 | mov eax,dword[icon_toolbar] |
152 | mov eax,dword[icon_toolbar] |
144 | mov dword[tree1.data_img],eax |
153 | mov dword[tree1.data_img],eax |
145 | 154 | ||
146 | stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
155 | stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
147 | 156 | ||
148 | load_image_file 'font8x9.bmp', image_data_toolbar,IMAGE_FILE1_SIZE |
157 | load_image_file 'font8x9.bmp', image_data_toolbar,IMAGE_FILE1_SIZE |
149 | stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à |
158 | stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;ᮧ¤ ¥¬ ¡ãä¥à |
150 | stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
159 | stdcall mem.Free,[image_data_toolbar] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
151 | stdcall [buf2d_conv_24_to_8], buf_1,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8 ¡¨â |
160 | stdcall [buf2d_conv_24_to_8], buf_1,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8 ¡¨â |
152 | stdcall [buf2d_convert_text_matrix], buf_1 |
161 | stdcall [buf2d_convert_text_matrix], buf_1 |
153 | 162 | ||
154 | load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE |
163 | load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE |
155 | 164 | ||
156 | stdcall mem.Alloc,MAX_FILE_SIZE |
165 | stdcall mem.Alloc,MAX_FILE_SIZE |
157 | mov dword[open_file_lif],eax |
166 | mov dword[open_file_lif],eax |
158 | 167 | ||
159 | mcall 26,9 |
168 | mcall 26,9 |
160 | mov [last_time],eax |
169 | mov [last_time],eax |
161 | 170 | ||
162 | align 4 |
171 | align 4 |
163 | red_win: |
172 | red_win: |
164 | call draw_window |
173 | call draw_window |
165 | 174 | ||
166 | align 4 |
175 | align 4 |
167 | still: |
176 | still: |
168 | mcall 26,9 |
177 | mcall 26,9 |
169 | mov ebx,[last_time] |
178 | mov ebx,[last_time] |
170 | add ebx,10 ;§ ¤¥à¦ª |
179 | add ebx,10 ;§ ¤¥à¦ª |
171 | cmp ebx,eax |
180 | cmp ebx,eax |
172 | jge @f |
181 | jge @f |
173 | mov ebx,eax |
182 | mov ebx,eax |
174 | @@: |
183 | @@: |
175 | sub ebx,eax |
184 | sub ebx,eax |
176 | ;cmp ebx,10 ;§ ¤¥à¦ª |
185 | ;cmp ebx,10 ;§ ¤¥à¦ª |
177 | ;ja timer_funct |
186 | ;ja timer_funct |
178 | ;test ebx,ebx |
187 | ;test ebx,ebx |
179 | ;jz timer_funct |
188 | ;jz timer_funct |
180 | mcall 23 |
189 | mcall 23 |
181 | cmp eax,0 |
190 | cmp eax,0 |
182 | je timer_funct |
191 | je timer_funct |
183 | 192 | ||
184 | cmp al,1 |
193 | cmp al,1 |
185 | jz red_win |
194 | jz red_win |
186 | cmp al,2 |
195 | cmp al,2 |
187 | jz key |
196 | jz key |
188 | cmp al,3 |
197 | cmp al,3 |
189 | jz button |
198 | jz button |
190 | cmp al,6 |
199 | cmp al,6 |
191 | jne @f |
200 | jne @f |
192 | mcall 9,procinfo,-1 |
201 | mcall 9,procinfo,-1 |
193 | cmp ax,word[procinfo+4] |
202 | cmp ax,word[procinfo+4] |
194 | jne @f ;®ª® ¥ ªâ¨¢® |
203 | jne @f ;®ª® ¥ ªâ¨¢® |
195 | call mouse |
204 | call mouse |
196 | @@: |
205 | @@: |
197 | jmp still |
206 | jmp still |
198 | 207 | ||
199 | align 4 |
208 | align 4 |
200 | mouse: |
209 | mouse: |
201 | stdcall [tl_mouse], dword tree1 |
210 | stdcall [tl_mouse], dword tree1 |
202 | ret |
211 | ret |
203 | 212 | ||
204 | align 4 |
213 | align 4 |
205 | timer_funct: |
214 | timer_funct: |
206 | pushad |
215 | pushad |
207 | if debug |
216 | if debug |
208 | mov eax,4 |
- | |
209 | mov ebx,(5 shl 16)+8 |
- | |
210 | mov ecx,0xff+0x80000000 |
217 | mcall 4, (5 shl 16)+8, 0xff+0x80000000, txt_0002 |
211 | mov edx,txt_0002 |
- | |
212 | int 0x40 |
- | |
213 | end if |
218 | end if |
214 | mcall 26,9 |
219 | mcall 26,9 |
215 | mov [last_time],eax |
220 | mov [last_time],eax |
216 | 221 | ||
217 | ; |
222 | ; |
218 | stdcall [tl_node_get_data],tree1 |
223 | stdcall [tl_node_get_data],tree1 |
219 | pop ebx |
224 | pop ebx |
220 | cmp ebx,0 |
225 | cmp ebx,0 |
221 | je @f |
226 | je @f |
222 | mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
227 | mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
223 | mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª |
228 | mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª |
224 | stdcall hex_in_str, txt_3ds_offs.dig, eax,8 |
229 | stdcall hex_in_str, txt_3ds_offs.dig, eax,8 |
225 | stdcall hex_in_str, txt_3ds_offs.siz, ecx,8 |
230 | stdcall hex_in_str, txt_3ds_offs.siz, ecx,8 |
226 | 231 | ||
227 | add eax,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
232 | add eax,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
228 | cmp dword[offs_last_timer],eax |
233 | cmp dword[offs_last_timer],eax |
229 | je @f |
234 | je @f |
230 | mov dword[offs_last_timer],eax |
235 | mov dword[offs_last_timer],eax |
231 | call buf_draw_beg |
236 | call buf_draw_beg |
232 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs,5,35,0xb000 |
237 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs,5,35,0xb000 |
233 | mov edx,dword[ebx+list_offs_p_data] |
238 | mov edx,dword[ebx+list_offs_p_data] |
234 | cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
239 | cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
235 | je .no_info |
240 | je .no_info |
236 | stdcall [buf2d_draw_text], buf_0, buf_1,edx,5,45,0xb000 |
241 | stdcall [buf2d_draw_text], buf_0, buf_1,edx,5,45,0xb000 |
237 | .no_info: |
242 | .no_info: |
238 | add ecx,eax ;¯®«ãç ¥¬ à §¬¥à ¡«®ª |
243 | add ecx,eax ;¯®«ãç ¥¬ à §¬¥à ¡«®ª |
239 | stdcall buf_draw_hex_table,eax,ecx ;¤®¡ ¢«¥¨¥ 16-à¨çëå ¤ ëå |
244 | stdcall buf_draw_hex_table,eax,ecx ;¤®¡ ¢«¥¨¥ 16-à¨çëå ¤ ëå |
240 | stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
245 | stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
241 | @@: |
246 | @@: |
242 | popad |
247 | popad |
243 | jmp still |
248 | jmp still |
244 | 249 | ||
245 | align 4 |
250 | align 4 |
246 | buf_draw_beg: |
251 | buf_draw_beg: |
247 | stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
252 | stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
248 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_open_3ds,5,5,0xff |
253 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_open_3ds,5,5,0xff |
249 | stdcall [buf2d_draw_text], buf_0, buf_1,openfile_path,5,15,0xff |
254 | stdcall [buf2d_draw_text], buf_0, buf_1,openfile_path,5,15,0xff |
250 | cmp dword[level_stack],FILE_ERROR_CHUNK_SIZE ;¢®§¬®¦ ®è¨¡ª ä ©« |
255 | cmp dword[level_stack],FILE_ERROR_CHUNK_SIZE ;¢®§¬®¦ ®è¨¡ª ä ©« |
251 | jne @f |
256 | jne @f |
252 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_err_sizes,5,25,0xff0000 |
257 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_err_sizes,5,25,0xff0000 |
253 | @@: |
258 | @@: |
254 | ret |
259 | ret |
255 | 260 | ||
256 | align 4 |
261 | align 4 |
257 | proc buf_draw_hex_table, offs:dword, size_line:dword |
262 | proc buf_draw_hex_table, offs:dword, size_line:dword |
258 | pushad |
263 | pushad |
259 | locals |
264 | locals |
260 | coord_y dd 55 ;ª®®à¤¨ â y ¤«ï ç « ¢ë¢®¤ â ¡«¨æë |
265 | coord_y dd 55 ;ª®®à¤¨ â y ¤«ï ç « ¢ë¢®¤ â ¡«¨æë |
261 | endl |
266 | endl |
262 | mov esi,dword[offs] |
267 | mov esi,dword[offs] |
263 | mov edi,dword[open_file_lif] |
268 | mov edi,dword[open_file_lif] |
264 | add edi,dword[file_3ds.size] ;edi - 㪠§ â¥«ì ª®¥æ ä ©« ¢ ¯ ¬ï⨠|
269 | add edi,dword[file_3ds.size] ;edi - 㪠§ â¥«ì ª®¥æ ä ©« ¢ ¯ ¬ï⨠|
265 | mov dword[txt_3ds_offs.dig],0 |
270 | mov dword[txt_3ds_offs.dig],0 |
266 | cld |
271 | cld |
267 | .cycle_rows: |
272 | .cycle_rows: |
268 | mov ebx,5 ;®âáâ㯠᫥¢ ¤«ï æ¨äà |
273 | mov ebx,5 ;®âáâ㯠᫥¢ ¤«ï æ¨äà |
269 | mov edx,5+10*24 ;®âáâ㯠᫥¢ ¤«ï ⥪áâ |
274 | mov edx,5+10*24 ;®âáâ㯠᫥¢ ¤«ï ⥪áâ |
270 | mov ecx,10 |
275 | mov ecx,10 |
271 | @@: |
276 | @@: |
272 | stdcall hex_in_str, txt_3ds_offs.dig, dword[esi],2 |
277 | stdcall hex_in_str, txt_3ds_offs.dig, dword[esi],2 |
273 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs.dig,ebx,[coord_y],0 |
278 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs.dig,ebx,[coord_y],0 |
274 | 279 | ||
275 | mov al,byte[esi] |
280 | mov al,byte[esi] |
276 | mov byte[txt_3ds_symb],al |
281 | mov byte[txt_3ds_symb],al |
277 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_symb,edx,[coord_y],0x808080 |
282 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_symb,edx,[coord_y],0x808080 |
278 | inc esi |
283 | inc esi |
279 | cmp esi,dword[size_line] |
284 | cmp esi,dword[size_line] |
280 | jne .end_block |
285 | jne .end_block |
281 | stdcall draw_block_end_line, dword[coord_y] |
286 | stdcall draw_block_end_line, dword[coord_y] |
282 | .end_block: |
287 | .end_block: |
283 | cmp esi,edi |
288 | cmp esi,edi |
284 | jge @f ;jg ??? |
289 | jge @f ;jg ??? |
285 | add ebx,24 |
290 | add ebx,24 |
286 | add edx,9 ;è¨à¨ 1-£® ᨬ¢®« +1pix |
291 | add edx,9 ;è¨à¨ 1-£® ᨬ¢®« +1pix |
287 | loop @b |
292 | loop @b |
288 | add dword[coord_y],10 ;¢ëá®â 1-£® ᨬ¢®« (¨«¨ ¨â¥à¢ « ¬¥¦¤ã áâப ¬¨) |
293 | add dword[coord_y],10 ;¢ëá®â 1-£® ᨬ¢®« (¨«¨ ¨â¥à¢ « ¬¥¦¤ã áâப ¬¨) |
289 | mov ebx,dword[buf_0.h] |
294 | mov ebx,dword[buf_0.h] |
290 | cmp dword[coord_y],ebx |
295 | cmp dword[coord_y],ebx |
291 | jl .cycle_rows |
296 | jl .cycle_rows |
292 | @@: |
297 | @@: |
293 | popad |
298 | popad |
294 | ret |
299 | ret |
295 | endp |
300 | endp |
296 | 301 | ||
297 | align 4 |
302 | align 4 |
298 | proc draw_block_end_line, coord_y:dword |
303 | proc draw_block_end_line, coord_y:dword |
299 | push eax ebx ecx |
304 | push eax ebx ecx |
300 | add ebx,20 ;20 = width 2.5 symbols |
305 | add ebx,20 ;20 = width 2.5 symbols |
301 | mov eax,[coord_y] |
306 | mov eax,[coord_y] |
302 | sub eax,2 |
307 | sub eax,2 |
303 | mov ecx,eax |
308 | mov ecx,eax |
304 | add ecx,10 |
309 | add ecx,10 |
305 | stdcall [buf2d_line], buf_0, 0,ecx,ebx,ecx ,0xff |
310 | stdcall [buf2d_line], buf_0, 0,ecx,ebx,ecx ,0xff |
306 | stdcall [buf2d_line], buf_0, ebx,ecx,ebx,eax ,0xff |
311 | stdcall [buf2d_line], buf_0, ebx,ecx,ebx,eax ,0xff |
307 | stdcall [buf2d_line], buf_0, ebx,eax,5+10*24-4,eax ,0xff |
312 | stdcall [buf2d_line], buf_0, ebx,eax,5+10*24-4,eax ,0xff |
308 | pop ecx ebx eax |
313 | pop ecx ebx eax |
309 | ret |
314 | ret |
310 | endp |
315 | endp |
311 | 316 | ||
312 | align 4 |
317 | align 4 |
313 | draw_window: |
318 | draw_window: |
314 | pushad |
319 | pushad |
315 | mcall 12,1 |
320 | mcall 12,1 |
316 | xor eax,eax |
321 | xor eax,eax |
317 | mov ebx,(20 shl 16)+560 |
322 | mov ebx,(20 shl 16)+560 |
318 | mov ecx,(20 shl 16)+315 |
323 | mov ecx,(20 shl 16)+315 |
319 | mov edx,[sc.work] |
324 | mov edx,[sc.work] |
320 | or edx,(3 shl 24)+0x10000000+0x20000000 |
325 | or edx,(3 shl 24)+0x10000000+0x20000000 |
321 | mov edi,capt |
326 | mov edi,capt |
322 | int 0x40 |
327 | int 0x40 |
323 | 328 | ||
324 | mcall 9,procinfo,-1 |
329 | mcall 9,procinfo,-1 |
325 | mov eax,dword[procinfo.box.height] |
330 | mov eax,dword[procinfo.box.height] |
326 | cmp eax,250 |
331 | cmp eax,250 |
327 | jge @f |
332 | jge @f |
328 | mov eax,250 |
333 | mov eax,250 |
329 | @@: |
334 | @@: |
330 | sub eax,65 |
335 | sub eax,65 |
331 | mov dword[tree1.box_height],eax |
336 | mov dword[tree1.box_height],eax |
332 | mov word[w_scr_t1+4],ax ;®¢ë¥ à §¬¥àë áªà®««¨£ |
337 | mov word[w_scr_t1+4],ax ;®¢ë¥ à §¬¥àë áªà®««¨£ |
333 | cmp eax,dword[buf_0.h] ;㢥«¨ç¨¢ ¥¬ ¢ëá®âã ¡ãä¥à |
338 | cmp eax,dword[buf_0.h] ;㢥«¨ç¨¢ ¥¬ ¢ëá®âã ¡ãä¥à |
334 | jle @f |
339 | jle @f |
335 | stdcall [buf2d_resize],buf_0,0,eax |
340 | stdcall [buf2d_resize],buf_0,0,eax |
336 | mov dword[offs_last_timer],0 ;¤«ï ®¡®¢«¥¨ï ¡ãä¥à ¢ â ©¬¥à¥ |
341 | mov dword[offs_last_timer],0 ;¤«ï ®¡®¢«¥¨ï ¡ãä¥à ¢ â ©¬¥à¥ |
337 | @@: |
342 | @@: |
338 | 343 | ||
339 | mov eax,dword[procinfo.box.width] |
344 | mov eax,dword[procinfo.box.width] |
340 | cmp eax,400 |
345 | cmp eax,400 |
341 | jge @f |
346 | jge @f |
342 | mov eax,400 |
347 | mov eax,400 |
343 | @@: |
348 | @@: |
344 | sub eax,[buf_0.w] |
349 | sub eax,[buf_0.w] |
345 | sub eax,41 |
350 | sub eax,41 |
346 | mov dword[tree1.box_width],eax |
351 | mov dword[tree1.box_width],eax |
347 | add ax,word[tree1.box_left] |
352 | add ax,word[tree1.box_left] |
348 | mov word[w_scr_t1.start_x],ax |
353 | mov word[w_scr_t1.start_x],ax |
349 | add ax,16+5 |
354 | add ax,16+5 |
350 | mov word[buf_0.l],ax |
355 | mov word[buf_0.l],ax |
351 | 356 | ||
352 | mov eax,8 |
357 | mov eax,8 |
353 | mov ebx,(5 shl 16)+20 |
358 | mov ebx,(5 shl 16)+20 |
354 | mov ecx,(5 shl 16)+20 |
359 | mov ecx,(5 shl 16)+20 |
355 | mov edx,3 |
360 | mov edx,3 |
356 | mov esi,[sc.work_button] |
361 | mov esi,[sc.work_button] |
357 | int 0x40 |
362 | int 0x40 |
358 | 363 | ||
359 | mov ebx,(30 shl 16)+20 |
364 | mov ebx,(30 shl 16)+20 |
360 | mov edx,4 |
365 | mov edx,4 |
361 | int 0x40 |
366 | int 0x40 |
362 | 367 | ||
363 | cmp byte[can_save],0 |
368 | cmp byte[can_save],0 |
364 | je @f |
369 | je @f |
365 | mov ebx,(55 shl 16)+20 |
370 | mov ebx,(55 shl 16)+20 |
366 | mov edx,5 |
371 | mov edx,5 |
367 | int 0x40 |
372 | int 0x40 |
368 | @@: |
373 | @@: |
369 | 374 | ||
370 | mov ebx,(85 shl 16)+20 |
375 | mov ebx,(85 shl 16)+20 |
371 | mov edx,6 ;®ª® á ª®®à¤¨ â ¬¨ |
376 | mov edx,6 ;®ª® á ª®®à¤¨ â ¬¨ |
372 | int 0x40 |
377 | int 0x40 |
373 | 378 | ||
374 | mov ebx,(110 shl 16)+20 |
379 | mov ebx,(110 shl 16)+20 |
375 | mov edx,7 ;㤠«¥¨¥ ¡«®ª |
380 | mov edx,7 ;㤠«¥¨¥ ¡«®ª |
376 | int 0x40 |
381 | int 0x40 |
377 | 382 | ||
378 | mov eax,7 |
383 | mov eax,7 |
379 | mov ebx,[image_data_toolbar] |
384 | mov ebx,[image_data_toolbar] |
380 | mov ecx,(16 shl 16)+16 |
385 | mov ecx,(16 shl 16)+16 |
381 | mov edx,(7 shl 16)+7 ;new |
386 | mov edx,(7 shl 16)+7 ;new |
382 | int 0x40 |
387 | int 0x40 |
383 | 388 | ||
384 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
389 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
385 | mov edx,(32 shl 16)+7 ;open |
390 | mov edx,(32 shl 16)+7 ;open |
386 | int 0x40 |
391 | int 0x40 |
387 | 392 | ||
388 | cmp byte[can_save],0 |
393 | cmp byte[can_save],0 |
389 | je @f |
394 | je @f |
390 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
395 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
391 | mov edx,(57 shl 16)+7 ;save |
396 | mov edx,(57 shl 16)+7 ;save |
392 | int 0x40 |
397 | int 0x40 |
393 | sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
398 | sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
394 | @@: |
399 | @@: |
395 | 400 | ||
396 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
401 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
397 | mov edx,(87 shl 16)+7 |
402 | mov edx,(87 shl 16)+7 |
398 | int 0x40 |
403 | int 0x40 |
399 | 404 | ||
400 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
405 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
401 | mov edx,(112 shl 16)+7 |
406 | mov edx,(112 shl 16)+7 |
402 | int 0x40 |
407 | int 0x40 |
403 | 408 | ||
404 | mov dword[w_scr_t1.all_redraw],1 |
409 | mov dword[w_scr_t1.all_redraw],1 |
405 | stdcall [tl_draw],dword tree1 |
410 | stdcall [tl_draw],dword tree1 |
406 | 411 | ||
407 | stdcall [buf2d_draw], buf_0 |
412 | stdcall [buf2d_draw], buf_0 |
408 | 413 | ||
409 | mcall 12,2 |
414 | mcall 12,2 |
410 | popad |
415 | popad |
411 | ret |
416 | ret |
412 | 417 | ||
413 | align 4 |
418 | align 4 |
414 | key: |
419 | key: |
415 | mcall 2 |
420 | mcall 2 |
416 | stdcall [tl_key], dword tree1 |
421 | stdcall [tl_key], dword tree1 |
417 | jmp still |
422 | jmp still |
418 | 423 | ||
419 | 424 | ||
420 | align 4 |
425 | align 4 |
421 | button: |
426 | button: |
422 | mcall 17 |
427 | mcall 17 |
423 | cmp ah,3 |
428 | cmp ah,3 |
424 | jne @f |
429 | jne @f |
425 | call but_new_file |
430 | call but_new_file |
- | 431 | jmp still |
|
426 | @@: |
432 | @@: |
427 | cmp ah,4 |
433 | cmp ah,4 |
428 | jne @f |
434 | jne @f |
429 | call but_open_file |
435 | call but_open_file |
- | 436 | jmp still |
|
430 | @@: |
437 | @@: |
431 | cmp ah,5 |
438 | cmp ah,5 |
432 | jne @f |
439 | jne @f |
433 | call but_save_file |
440 | call but_save_file |
- | 441 | jmp still |
|
434 | @@: |
442 | @@: |
435 | cmp ah,6 |
443 | cmp ah,6 |
436 | jne @f |
444 | jne @f |
437 | call but_wnd_coords |
445 | call but_wnd_coords |
- | 446 | jmp still |
|
438 | @@: |
447 | @@: |
439 | cmp ah,7 |
448 | cmp ah,7 |
440 | jne @f |
449 | jne @f |
441 | call but_delete_chunk |
450 | call but_delete_chunk |
- | 451 | jmp still |
|
442 | @@: |
452 | @@: |
443 | 453 | ||
444 | cmp ah,1 |
454 | cmp ah,1 |
445 | jne still |
455 | jne still |
446 | .exit: |
456 | .exit: |
447 | mov dword[tree1.data_img],0 |
457 | mov dword[tree1.data_img],0 |
448 | mov dword[tree1.data_img_sys],0 |
458 | mov dword[tree1.data_img_sys],0 |
449 | stdcall dword[tl_data_clear], tree1 |
459 | stdcall dword[tl_data_clear], tree1 |
450 | stdcall [buf2d_delete],buf_0 |
460 | stdcall [buf2d_delete],buf_0 |
451 | stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à |
461 | stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à |
452 | stdcall mem.Free,[image_data_toolbar] |
462 | stdcall mem.Free,[image_data_toolbar] |
453 | stdcall mem.Free,[open_file_lif] |
463 | stdcall mem.Free,[open_file_lif] |
454 | mcall -1 |
464 | mcall -1 |
455 | 465 | ||
456 | 466 | ||
457 | align 4 |
467 | align 4 |
458 | but_new_file: |
468 | but_new_file: |
459 | mov byte[can_save],0 |
469 | mov byte[can_save],0 |
460 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
470 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
461 | stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
471 | stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
462 | stdcall [tl_draw], tree1 |
472 | stdcall [tl_draw], tree1 |
463 | stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
473 | stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
464 | ret |
474 | ret |
465 | 475 | ||
466 | align 4 |
476 | align 4 |
467 | but_open_file: |
477 | but_open_file: |
468 | pushad |
- | |
469 | copy_path open_dialog_name,communication_area_default_path,file_name,0 |
478 | copy_path open_dialog_name,communication_area_default_path,file_name,0 |
- | 479 | pushad |
|
470 | mov [OpenDialog_data.type],0 |
480 | mov [OpenDialog_data.type],0 |
471 | stdcall [OpenDialog_Start],OpenDialog_data |
481 | stdcall [OpenDialog_Start],OpenDialog_data |
472 | cmp [OpenDialog_data.status],2 |
482 | cmp [OpenDialog_data.status],2 |
473 | je .end_open_file |
483 | je .end_open_file |
474 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
484 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
475 | 485 | ||
476 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
486 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
477 | mov [run_file_70.Function], 0 |
487 | mov [run_file_70.Function], 0 |
478 | mov [run_file_70.Position], 0 |
488 | mov [run_file_70.Position], 0 |
479 | mov [run_file_70.Flags], 0 |
489 | mov [run_file_70.Flags], 0 |
480 | mov dword[run_file_70.Count], MAX_FILE_SIZE |
490 | mov dword[run_file_70.Count], MAX_FILE_SIZE |
481 | m2m [run_file_70.Buffer], dword[open_file_lif] |
491 | m2m [run_file_70.Buffer], dword[open_file_lif] |
482 | mov byte[run_file_70+20], 0 |
492 | mov byte[run_file_70+20], 0 |
483 | mov dword[run_file_70.FileName], openfile_path |
493 | mov dword[run_file_70.FileName], openfile_path |
484 | mov ebx,run_file_70 |
494 | mov ebx,run_file_70 |
485 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
495 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
486 | cmp ebx,0xffffffff |
496 | cmp ebx,0xffffffff |
487 | je .end_open_file |
497 | je .end_open_file |
488 | 498 | ||
489 | mov [open_file_size],ebx |
499 | mov [open_file_size],ebx |
490 | ;mcall 71,1,openfile_path |
500 | ;mcall 71,1,openfile_path |
491 | 501 | ||
492 | mov byte[can_save],0 |
502 | mov byte[can_save],0 |
493 | call init_tree |
503 | call init_tree |
494 | stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
504 | stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
495 | 505 | ||
496 | .end_open_file: |
506 | .end_open_file: |
497 | popad |
507 | popad |
498 | ret |
508 | ret |
499 | 509 | ||
500 | align 4 |
510 | align 4 |
501 | init_tree: |
511 | init_tree: |
502 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
512 | stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
503 | 513 | ||
504 | mov esi,dword[open_file_lif] |
514 | mov esi,dword[open_file_lif] |
505 | cmp word[esi],CHUNK_MAIN |
515 | cmp word[esi],CHUNK_MAIN |
506 | je @f |
516 | je @f |
507 | call buf_draw_beg |
517 | call buf_draw_beg |
508 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
518 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
509 | jmp .end_open |
519 | jmp .end_open |
510 | @@: |
520 | @@: |
511 | cmp dword[esi+2],MAX_FILE_SIZE |
521 | cmp dword[esi+2],MAX_FILE_SIZE |
512 | jle @f |
522 | jle @f |
513 | call buf_draw_beg |
523 | call buf_draw_beg |
514 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_big_file,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
524 | stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_big_file,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬ |
515 | jmp .end_open |
525 | jmp .end_open |
516 | @@: |
526 | @@: |
517 | ;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©« |
527 | ;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©« |
518 | mov eax,file_3ds |
528 | mov eax,file_3ds |
519 | mov dword[level_stack],0 ;®¡ã«ï¥¬ ã஢¥ì á⥪ |
529 | mov dword[level_stack],0 ;®¡ã«ï¥¬ ã஢¥ì á⥪ |
520 | mov dword[offs_last_timer],0 |
530 | mov dword[offs_last_timer],0 |
521 | ;--- ¤®¡ ¢«¥¨¥ £« ¢®£® ¡«®ª ¢ ᯨ᮪ |
531 | ;--- ¤®¡ ¢«¥¨¥ £« ¢®£® ¡«®ª ¢ ᯨ᮪ |
522 | stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0 |
532 | stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0 |
523 | call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
533 | call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
524 | 534 | ||
525 | mov edi,dword[file_3ds.offs] |
535 | mov edi,dword[file_3ds.offs] |
526 | add edi,dword[file_3ds.size] |
536 | add edi,dword[file_3ds.size] |
527 | .cycle_main: |
537 | .cycle_main: |
528 | cmp dword[level_stack],0 |
538 | cmp dword[level_stack],0 |
529 | jle .end_cycle |
539 | jle .end_cycle |
530 | 540 | ||
531 | cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
541 | cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
532 | jge .end_cycle |
542 | jge .end_cycle |
533 | 543 | ||
534 | mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
544 | mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
535 | call block_analiz |
545 | call block_analiz |
536 | cmp dword[bl_found],0 |
546 | cmp dword[bl_found],0 |
537 | jne @f |
547 | jne @f |
538 | ;®¡ê¥ªâ ¥ ¨§¢¥á⮣® ¢¨¤ |
548 | ;®¡ê¥ªâ ¥ ¨§¢¥á⮣® ¢¨¤ |
539 | stdcall add_3ds_object, ID_ICON_CHUNK_NOT_FOUND,dword[level_stack],edx,0 |
549 | stdcall add_3ds_object, ID_ICON_CHUNK_NOT_FOUND,dword[level_stack],edx,0 |
540 | call block_next |
550 | call block_next |
541 | jmp .cycle_main |
551 | jmp .cycle_main |
542 | @@: |
552 | @@: |
543 | ;®¡ê¥ªâ ¨§¢¥á⮣® ¢¨¤ |
553 | ;®¡ê¥ªâ ¨§¢¥á⮣® ¢¨¤ |
544 | mov ecx,dword[bl_found] |
554 | mov ecx,dword[bl_found] |
545 | mov bx,word[ecx+2] ;®¬¥à ¨ª®ª¨ ¤«ï ®¡ê¥ªâ |
555 | mov bx,word[ecx+2] ;®¬¥à ¨ª®ª¨ ¤«ï ®¡ê¥ªâ |
546 | stdcall add_3ds_object, ebx,dword[level_stack],edx,dword[ecx+5] |
556 | stdcall add_3ds_object, ebx,dword[level_stack],edx,dword[ecx+5] |
547 | cmp byte[ecx+4],1 |
557 | cmp byte[ecx+4],1 |
548 | je .bl_data |
558 | je .bl_data |
549 | ;¡«®ª ᮤ¥à¦¨â ¤®ç¥à¨¥ ¡«®ª¨ |
559 | ;¡«®ª ᮤ¥à¦¨â ¤®ç¥à¨¥ ¡«®ª¨ |
550 | call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
560 | call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
551 | jmp .cycle_main |
561 | jmp .cycle_main |
552 | .bl_data: |
562 | .bl_data: |
553 | ;¡«®ª ᮤ¥à¦¨â ¤ ë¥ |
563 | ;¡«®ª ᮤ¥à¦¨â ¤ ë¥ |
554 | call block_analiz_data |
564 | call block_analiz_data |
555 | jmp .cycle_main |
565 | jmp .cycle_main |
556 | .end_cycle: |
566 | .end_cycle: |
557 | stdcall [tl_cur_beg], tree1 |
567 | stdcall [tl_cur_beg], tree1 |
558 | stdcall [tl_draw], tree1 |
568 | stdcall [tl_draw], tree1 |
559 | .end_open: |
569 | .end_open: |
560 | ret |
570 | ret |
561 | 571 | ||
562 | ; «¨§ ¤ ëå ¡«®ª |
572 | ; «¨§ ¤ ëå ¡«®ª |
563 | ;input: |
573 | ;input: |
564 | ; esi - memory pointer |
574 | ; esi - memory pointer |
565 | ;output: |
575 | ;output: |
566 | ; eax - new stack pointer |
576 | ; eax - new stack pointer |
567 | ; esi - new memory pointer |
577 | ; esi - new memory pointer |
568 | align 4 |
578 | align 4 |
569 | block_analiz_data: |
579 | block_analiz_data: |
570 | push ebx ecx edx edi |
580 | push ebx ecx edx edi |
571 | mov dx,word[esi] |
581 | mov dx,word[esi] |
572 | mov ecx,dword[esi+2] |
582 | mov ecx,dword[esi+2] |
573 | sub ecx,6 ;à §¬¥à ¤ ëå ¢ ¡«®ª¥ |
583 | sub ecx,6 ;à §¬¥à ¤ ëå ¢ ¡«®ª¥ |
574 | add esi,6 |
584 | add esi,6 |
575 | mov ebx,dword[level_stack] |
585 | mov ebx,dword[level_stack] |
576 | inc ebx |
586 | inc ebx |
577 | ; *** «¨§ ¡«®ª®¢ á à §ë¬¨ ¤ 묨 ¨ ¢ë¤¥«¥¨¥¬ ¯®¤¡«®ª®¢ |
587 | ; *** «¨§ ¡«®ª®¢ á à §ë¬¨ ¤ 묨 ¨ ¢ë¤¥«¥¨¥¬ ¯®¤¡«®ª®¢ |
578 | cmp dx,CHUNK_OBJBLOCK ;®¡ê¥ªâ |
588 | cmp dx,CHUNK_OBJBLOCK ;®¡ê¥ªâ |
579 | jne @f |
589 | jne @f |
580 | push ax |
590 | push ax |
581 | cld |
591 | cld |
582 | xor al,al |
592 | xor al,al |
583 | mov edi,esi |
593 | mov edi,esi |
584 | repne scasb |
594 | repne scasb |
585 | pop ax |
595 | pop ax |
586 | sub edi,esi ;edi - strlen |
596 | sub edi,esi ;edi - strlen |
587 | stdcall add_3ds_object, ID_ICON_DATA,ebx,edi,0 ; §¢ ¨¥ ®¡ê¥ªâ |
597 | stdcall add_3ds_object, ID_ICON_DATA,ebx,edi,0 ; §¢ ¨¥ ®¡ê¥ªâ |
588 | add esi,edi |
598 | add esi,edi |
589 | ;sub ecx,edi ;㦥 ᤥ« ® ¢ repne |
599 | ;sub ecx,edi ;㦥 ᤥ« ® ¢ repne |
590 | jmp .next_bl |
600 | jmp .next_bl |
591 | @@: |
601 | @@: |
592 | cmp dx,CHUNK_VERTLIST ;ᯨ᮪ ¢¥àè¨ |
602 | cmp dx,CHUNK_VERTLIST ;ᯨ᮪ ¢¥àè¨ |
593 | je .vertexes |
603 | je .vertexes |
594 | cmp dx,0x4111 ;ä« £¨ ¢¥àè¨ |
604 | cmp dx,0x4111 ;ä« £¨ ¢¥àè¨ |
595 | je .vertexes |
605 | je .vertexes |
596 | cmp dx,CHUNK_MAPLIST ;⥪áâãàë¥ ª®®à¤¨ âë |
606 | cmp dx,CHUNK_MAPLIST ;⥪áâãàë¥ ª®®à¤¨ âë |
597 | je .vertexes |
607 | je .vertexes |
598 | jmp @f |
608 | jmp @f |
599 | .vertexes: ;®¡à ¡®âª ¡«®ª®¢, ᮤ¥à¦ é¨å ¤ ë¥ ¢¥àè¨ |
609 | .vertexes: ;®¡à ¡®âª ¡«®ª®¢, ᮤ¥à¦ é¨å ¤ ë¥ ¢¥àè¨ |
600 | stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® ¢¥àè¨ |
610 | stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® ¢¥àè¨ |
601 | add esi,2 |
611 | add esi,2 |
602 | sub ecx,2 |
612 | sub ecx,2 |
603 | stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;¤ ë¥ ¢¥àè¨ |
613 | stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;¤ ë¥ ¢¥àè¨ |
604 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
614 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
605 | call block_next |
615 | call block_next |
606 | jmp .end_f |
616 | jmp .end_f |
607 | @@: |
617 | @@: |
608 | cmp dx,CHUNK_FACELIST ;ᯨ᮪ £à ¥© |
618 | cmp dx,CHUNK_FACELIST ;ᯨ᮪ £à ¥© |
609 | jne @f |
619 | jne @f |
610 | stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® £à ¥© |
620 | stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® £à ¥© |
611 | push eax |
621 | push eax |
612 | xor eax,eax |
622 | xor eax,eax |
613 | mov ax,[esi] |
623 | mov ax,[esi] |
614 | shl eax,3 |
624 | shl eax,3 |
615 | add esi,2 |
625 | add esi,2 |
616 | sub ecx,2 |
626 | sub ecx,2 |
617 | stdcall add_3ds_object, ID_ICON_DATA,ebx,eax,0 ;¤ ë¥ ¢¥àè¨ |
627 | stdcall add_3ds_object, ID_ICON_DATA,ebx,eax,0 ;¤ ë¥ ¢¥àè¨ |
618 | 628 | ||
619 | sub ecx,eax |
629 | sub ecx,eax |
620 | cmp ecx,1 |
630 | cmp ecx,1 |
621 | jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨áë¢ î騩 ¬ â¥à¨ «, ¯à¨¬¥ï¥¬ë© ª ®¡ê¥ªâã |
631 | jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨áë¢ î騩 ¬ â¥à¨ «, ¯à¨¬¥ï¥¬ë© ª ®¡ê¥ªâã |
622 | add esi,eax |
632 | add esi,eax |
623 | pop eax |
633 | pop eax |
624 | jmp .next_bl |
634 | jmp .next_bl |
625 | ;stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;¤ ë¥ ¬ â¥à¨ « |
635 | ;stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;¤ ë¥ ¬ â¥à¨ « |
626 | ;sub esi,eax ;¢®ááâ ®¢«¥¨¥ esi |
636 | ;sub esi,eax ;¢®ááâ ®¢«¥¨¥ esi |
627 | .data_3: |
637 | .data_3: |
628 | 638 | ||
629 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
639 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi |
630 | pop eax |
640 | pop eax |
631 | call block_next |
641 | call block_next |
632 | jmp .end_f |
642 | jmp .end_f |
633 | @@: |
643 | @@: |
634 | cmp dx,CHUNK_FACEMAT ;¬ â¥à¨ «ë £à ¥© |
644 | cmp dx,CHUNK_FACEMAT ;¬ â¥à¨ «ë £à ¥© |
635 | jne @f |
645 | jne @f |
636 | push ax |
646 | push ax |
637 | cld |
647 | cld |
638 | xor al,al |
648 | xor al,al |
639 | mov edi,esi |
649 | mov edi,esi |
640 | repne scasb |
650 | repne scasb |
641 | pop ax |
651 | pop ax |
642 | sub edi,esi ;edi - strlen |
652 | sub edi,esi ;edi - strlen |
643 | stdcall add_3ds_object, ID_ICON_DATA,ebx,edi,0 ; §¢ ¨¥ ®¡ê¥ªâ |
653 | stdcall add_3ds_object, ID_ICON_DATA,ebx,edi,0 ; §¢ ¨¥ ®¡ê¥ªâ |
644 | add esi,edi |
654 | add esi,edi |
645 | ;sub ecx,edi ;㦥 ᤥ« ® ¢ repne |
655 | ;sub ecx,edi ;㦥 ᤥ« ® ¢ repne |
646 | stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® £à ¥© |
656 | stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® £à ¥© |
647 | add esi,2 |
657 | add esi,2 |
648 | sub ecx,2 |
658 | sub ecx,2 |
649 | stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;®¬¥à £à ¥©, ª ª®â®àë¬ ¯à¨¬¥¥ ¬ â¥à¨ « |
659 | stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 ;®¬¥à £à ¥©, ª ª®â®àë¬ ¯à¨¬¥¥ ¬ â¥à¨ « |
650 | sub esi,edi ;¢®ááâ ®¢«¥¨¥ esi (1) |
660 | sub esi,edi ;¢®ááâ ®¢«¥¨¥ esi (1) |
651 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi (2) |
661 | sub esi,8 ;¢®ááâ ®¢«¥¨¥ esi (2) |
652 | call block_next |
662 | call block_next |
653 | jmp .end_f |
663 | jmp .end_f |
654 | @@: |
664 | @@: |
655 | ; *** «¨§ ¡«®ª á ¤ 묨 ¯® 㬮«ç ¨î (¡¥§ ¢ë¤¥«¥¨ï ¯®¤¡«®ª®¢) |
665 | ; *** «¨§ ¡«®ª á ¤ 묨 ¯® 㬮«ç ¨î (¡¥§ ¢ë¤¥«¥¨ï ¯®¤¡«®ª®¢) |
656 | stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 |
666 | stdcall add_3ds_object, ID_ICON_DATA,ebx,ecx,0 |
657 | sub esi,6 ;¢®ááâ ®¢«¥¨¥ esi |
667 | sub esi,6 ;¢®ááâ ®¢«¥¨¥ esi |
658 | call block_next |
668 | call block_next |
659 | jmp .end_f |
669 | jmp .end_f |
660 | .next_bl: |
670 | .next_bl: |
661 | ; *** áâனª¨ ¤«ï «¨§ ®áâ ¢è¨åáï ¯®¤¡«®ª®¢ |
671 | ; *** áâனª¨ ¤«ï «¨§ ®áâ ¢è¨åáï ¯®¤¡«®ª®¢ |
662 | mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
672 | mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
663 | mov ebx,dword[esi+2] |
673 | mov ebx,dword[esi+2] |
664 | mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
674 | mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
665 | inc dword[level_stack] |
675 | inc dword[level_stack] |
666 | add eax,8 |
676 | add eax,8 |
667 | .end_f: |
677 | .end_f: |
668 | pop edi edx ecx ebx |
678 | pop edi edx ecx ebx |
669 | ret |
679 | ret |
670 | 680 | ||
671 | ;¢å®¤ ¢ 1-© ¤®ç¥à¨© ¡«®ª |
681 | ;¢å®¤ ¢ 1-© ¤®ç¥à¨© ¡«®ª |
672 | ;output: |
682 | ;output: |
673 | ; edx - destroy |
683 | ; edx - destroy |
674 | align 4 |
684 | align 4 |
675 | block_children: |
685 | block_children: |
676 | push ecx |
686 | push ecx |
677 | ;¯à®¢¥àª ¯à ¢¨«ì®áâ¨ à §¬¥à®¢ ¤®ç¥à¥£® ¡«®ª |
687 | ;¯à®¢¥àª ¯à ¢¨«ì®áâ¨ à §¬¥à®¢ ¤®ç¥à¥£® ¡«®ª |
678 | mov ebx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª |
688 | mov ebx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª |
679 | add ebx,6 ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª |
689 | add ebx,6 ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª |
680 | add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª |
690 | add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª |
681 | mov ecx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª |
691 | mov ecx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª |
682 | add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª |
692 | add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª |
683 | cmp ebx,ecx ;ãç¨âë¢ âì § £®«®¢ª¨ ¥ 㦮, â. ª. áà ¢¨¢ îâáï ⮫쪮 ¤ ë¥ ¡«®ª®¢ |
693 | cmp ebx,ecx ;ãç¨âë¢ âì § £®«®¢ª¨ ¥ 㦮, â. ª. áà ¢¨¢ îâáï ⮫쪮 ¤ ë¥ ¡«®ª®¢ |
684 | jle @f |
694 | jle @f |
685 | ;¤¨ £®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à¨© ¡«®ª ¢ë室¨â § ¯à¥¤¥«ë த¨â¥«ì᪮£® |
695 | ;¤¨ £®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à¨© ¡«®ª ¢ë室¨â § ¯à¥¤¥«ë த¨â¥«ì᪮£® |
686 | mov dword[level_stack],FILE_ERROR_CHUNK_SIZE |
696 | mov dword[level_stack],FILE_ERROR_CHUNK_SIZE |
687 | jmp .end_f |
697 | jmp .end_f |
688 | @@: |
698 | @@: |
689 | mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
699 | mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
690 | mov ebx,dword[esi+2] |
700 | mov ebx,dword[esi+2] |
691 | mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
701 | mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
692 | add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ë¬ ¡«®ª |
702 | add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ë¬ ¡«®ª |
693 | inc dword[level_stack] |
703 | inc dword[level_stack] |
694 | add eax,8 |
704 | add eax,8 |
695 | .end_f: |
705 | .end_f: |
696 | pop ecx |
706 | pop ecx |
697 | ret |
707 | ret |
698 | 708 | ||
699 | ;¯¥à¥å®¤ ª á«¥¤ã饬㠡«®ªã ⥪ã饣® ã஢ï |
709 | ;¯¥à¥å®¤ ª á«¥¤ã饬㠡«®ªã ⥪ã饣® ã஢ï |
700 | ;input: |
710 | ;input: |
701 | ; eax - ¤à¥á áâàãªâãàë á ¯¥à¥¬¥ë¬¨ |
711 | ; eax - ¤à¥á áâàãªâãàë á ¯¥à¥¬¥ë¬¨ |
702 | align 4 |
712 | align 4 |
703 | block_next: |
713 | block_next: |
704 | push ebx |
714 | push ebx |
705 | add esi,dword[esi+2] ;¯à®¯ã᪠¥¬ ¤ ë¥ ¡«®ª |
715 | add esi,dword[esi+2] ;¯à®¯ã᪠¥¬ ¤ ë¥ ¡«®ª |
706 | 716 | ||
707 | ;¯à®¢¥àª à §¬¥à®¢ த¨â¥«ì᪮£® ¡«®ª , ¤«ï ¢®§¬®¦®£® ¢ë室 ¢¥à娩 ã஢¥ì ¥á«¨ ª®¥æ ¡«®ª |
717 | ;¯à®¢¥àª à §¬¥à®¢ த¨â¥«ì᪮£® ¡«®ª , ¤«ï ¢®§¬®¦®£® ¢ë室 ¢¥à娩 ã஢¥ì ¥á«¨ ª®¥æ ¡«®ª |
708 | @@: |
718 | @@: |
709 | mov ebx,dword[eax-8] |
719 | mov ebx,dword[eax-8] |
710 | add ebx,dword[eax-4] |
720 | add ebx,dword[eax-4] |
711 | cmp esi,ebx |
721 | cmp esi,ebx |
712 | jl @f |
722 | jl @f |
713 | dec dword[level_stack] |
723 | dec dword[level_stack] |
714 | sub eax,8 |
724 | sub eax,8 |
715 | cmp dword[level_stack],0 |
725 | cmp dword[level_stack],0 |
716 | jg @b |
726 | jg @b |
717 | @@: |
727 | @@: |
718 | pop ebx |
728 | pop ebx |
719 | ret |
729 | ret |
720 | 730 | ||
721 | ;äãªæ¨ï ¯®¨áª áâàãªâãàë ®¯¨áë¢ î饩 ¡«®ª |
731 | ;äãªæ¨ï ¯®¨áª áâàãªâãàë ®¯¨áë¢ î饩 ¡«®ª |
722 | ;input: |
732 | ;input: |
723 | ;esi - memory pointer |
733 | ;esi - memory pointer |
724 | ;output: |
734 | ;output: |
725 | ;dword[bl_found] - pointer to chunk struct (= 0 if not found) |
735 | ;dword[bl_found] - pointer to chunk struct (= 0 if not found) |
726 | align 4 |
736 | align 4 |
727 | bl_found dd 0 |
737 | bl_found dd 0 |
728 | block_analiz: |
738 | block_analiz: |
729 | pushad |
739 | pushad |
730 | mov dword[bl_found],0 |
740 | mov dword[bl_found],0 |
731 | mov ecx,type_bloks |
741 | mov ecx,type_bloks |
732 | @@: |
742 | @@: |
733 | mov bx,word[ecx] |
743 | mov bx,word[ecx] |
734 | cmp word[esi],bx |
744 | cmp word[esi],bx |
735 | je .found |
745 | je .found |
736 | add ecx,sizeof.block_3ds |
746 | add ecx,sizeof.block_3ds |
737 | cmp ecx,type_bloks.end |
747 | cmp ecx,type_bloks.end |
738 | jl @b |
748 | jl @b |
739 | jmp .no_found |
749 | jmp .no_found |
740 | .found: |
750 | .found: |
741 | mov dword[bl_found],ecx |
751 | mov dword[bl_found],ecx |
742 | .no_found: |
752 | .no_found: |
743 | popad |
753 | popad |
744 | ret |
754 | ret |
745 | 755 | ||
746 | ;input: |
756 | ;input: |
747 | ; esi - 㪠§ â¥«ì «¨§¨àã¥¬ë¥ ¤ ë¥ |
757 | ; esi - 㪠§ â¥«ì «¨§¨àã¥¬ë¥ ¤ ë¥ |
748 | ; level - ã஢¥ì ¢«®¦¥®á⨠㧫 |
758 | ; level - ã஢¥ì ¢«®¦¥®á⨠㧫 |
749 | ; size_bl - à §¬¥à ¡«®ª |
759 | ; size_bl - à §¬¥à ¡«®ª |
750 | align 4 |
760 | align 4 |
751 | proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword |
761 | proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword |
752 | pushad |
762 | pushad |
753 | mov bx,word[icon] |
763 | mov bx,word[icon] |
754 | shl ebx,16 |
764 | shl ebx,16 |
755 | mov bx,word[level] |
765 | mov bx,word[level] |
756 | 766 | ||
757 | mov eax,esi |
767 | mov eax,esi |
758 | sub eax,dword[open_file_lif] |
768 | sub eax,dword[open_file_lif] |
759 | mov dword[buffer],eax ;ᬥ饨¥ ¡«®ª |
769 | mov dword[buffer],eax ;ᬥ饨¥ ¡«®ª |
760 | mov ecx,dword[size_bl] |
770 | mov ecx,dword[size_bl] |
761 | mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨) |
771 | mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨) |
762 | mov ecx,dword[bl_found] |
772 | mov ecx,dword[bl_found] |
763 | cmp ecx,0 |
773 | cmp ecx,0 |
764 | je @f |
774 | je @f |
765 | ;... §¤¥áì 㦥 ¤à㣮© «£®à¨â¬ § é¨âë ®â 㤠«¥¨ï |
775 | ;... §¤¥áì 㦥 ¤à㣮© «£®à¨â¬ § é¨âë ®â 㤠«¥¨ï |
766 | mov cl,byte[ecx+4] |
776 | mov cl,byte[ecx+4] |
767 | @@: |
777 | @@: |
768 | mov byte[buffer+list_offs_chunk_del],cl |
778 | mov byte[buffer+list_offs_chunk_del],cl |
769 | mov ecx,[level] |
779 | mov ecx,[level] |
770 | mov byte[buffer+list_offs_chunk_lev],cl |
780 | mov byte[buffer+list_offs_chunk_lev],cl |
771 | mov ecx,dword[info_bl] |
781 | mov ecx,dword[info_bl] |
772 | mov dword[buffer+list_offs_p_data],ecx |
782 | mov dword[buffer+list_offs_p_data],ecx |
773 | stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2 |
783 | stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2 |
774 | stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª |
784 | stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª |
775 | cmp ecx,0 |
785 | cmp ecx,0 |
776 | jne @f |
786 | jne @f |
777 | mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®æ áâப¨ |
787 | mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®æ áâப¨ |
778 | jmp .no_capt |
788 | jmp .no_capt |
779 | @@: |
789 | @@: |
780 | mov byte[buffer+list_offs_text+4],' ' |
790 | mov byte[buffer+list_offs_text+4],' ' |
781 | mov esi,ecx |
791 | mov esi,ecx |
782 | mov edi,buffer+list_offs_text+5 |
792 | mov edi,buffer+list_offs_text+5 |
783 | mov ecx,size_one_list-(list_offs_text+5) |
793 | mov ecx,size_one_list-(list_offs_text+5) |
784 | cld |
794 | cld |
785 | rep movsb |
795 | rep movsb |
786 | mov byte[buffer+size_one_list-1],0 ;0 - ᨬ¢®« ª®¥æ áâப¨ |
796 | mov byte[buffer+size_one_list-1],0 ;0 - ᨬ¢®« ª®¥æ áâப¨ |
787 | .no_capt: |
797 | .no_capt: |
788 | stdcall [tl_node_add], buffer, ebx, tree1 |
798 | stdcall [tl_node_add], buffer, ebx, tree1 |
789 | stdcall [tl_cur_next], tree1 |
799 | stdcall [tl_cur_next], tree1 |
790 | if debug |
800 | if debug |
791 | stdcall print_err,sz_add_3ds_object,buffer+list_offs_text |
801 | stdcall print_err,sz_add_3ds_object,buffer+list_offs_text |
792 | end if |
802 | end if |
793 | popad |
803 | popad |
794 | ret |
804 | ret |
795 | endp |
805 | endp |
796 | 806 | ||
797 | if debug |
807 | if debug |
798 | sz_add_3ds_object db 13,10,'3ds_object',0 |
808 | sz_add_3ds_object db 13,10,'3ds_object',0 |
799 | 809 | ||
800 | align 4 |
810 | align 4 |
801 | proc print_err, fun:dword, mes:dword ;¢ë¢®¤¨¬ á®®¡é¥¨¥ ®¡ 訡ª¥ ¤®áªã ®â« ¤ª¨ |
811 | proc print_err, fun:dword, mes:dword ;¢ë¢®¤¨¬ á®®¡é¥¨¥ ®¡ 訡ª¥ ¤®áªã ®â« ¤ª¨ |
802 | pushad |
812 | pushad |
803 | mov eax,63 |
813 | mov eax,63 |
804 | mov ebx,1 |
814 | mov ebx,1 |
805 | 815 | ||
806 | mov esi,[fun] |
816 | mov esi,[fun] |
807 | @@: |
817 | @@: |
808 | mov cl,byte[esi] |
818 | mov cl,byte[esi] |
809 | int 0x40 |
819 | int 0x40 |
810 | inc esi |
820 | inc esi |
811 | cmp byte[esi],0 |
821 | cmp byte[esi],0 |
812 | jne @b |
822 | jne @b |
813 | mov cl,':' |
823 | mov cl,':' |
814 | int 0x40 |
824 | int 0x40 |
815 | mov cl,' ' |
825 | mov cl,' ' |
816 | int 0x40 |
826 | int 0x40 |
817 | mov esi,[mes] |
827 | mov esi,[mes] |
818 | @@: |
828 | @@: |
819 | mov cl,byte[esi] |
829 | mov cl,byte[esi] |
820 | int 0x40 |
830 | int 0x40 |
821 | inc esi |
831 | inc esi |
822 | cmp byte[esi],0 |
832 | cmp byte[esi],0 |
823 | jne @b |
833 | jne @b |
824 | popad |
834 | popad |
825 | ret |
835 | ret |
826 | endp |
836 | endp |
827 | end if |
837 | end if |
828 | 838 | ||
829 | align 4 |
839 | align 4 |
830 | proc hex_in_str, buf:dword,val:dword,zif:dword |
840 | proc hex_in_str, buf:dword,val:dword,zif:dword |
831 | pushad |
841 | pushad |
832 | mov edi,dword[buf] |
842 | mov edi,dword[buf] |
833 | mov ecx,dword[zif] |
843 | mov ecx,dword[zif] |
834 | add edi,ecx |
844 | add edi,ecx |
835 | dec edi |
845 | dec edi |
836 | mov ebx,dword[val] |
846 | mov ebx,dword[val] |
837 | 847 | ||
838 | .cycle: |
848 | .cycle: |
839 | mov al,bl |
849 | mov al,bl |
840 | and al,0xf |
850 | and al,0xf |
841 | cmp al,10 |
851 | cmp al,10 |
842 | jl @f |
852 | jl @f |
843 | add al,'a'-'0'-10 |
853 | add al,'a'-'0'-10 |
844 | @@: |
854 | @@: |
845 | add al,'0' |
855 | add al,'0' |
846 | mov byte[edi],al |
856 | mov byte[edi],al |
847 | dec edi |
857 | dec edi |
848 | shr ebx,4 |
858 | shr ebx,4 |
849 | loop .cycle |
859 | loop .cycle |
850 | 860 | ||
851 | popad |
861 | popad |
852 | ret |
862 | ret |
853 | endp |
863 | endp |
854 | 864 | ||
855 | align 4 |
865 | align 4 |
856 | but_save_file: |
866 | but_save_file: |
857 | pushad |
867 | pushad |
858 | copy_path open_dialog_name,communication_area_default_path,file_name,0 |
868 | copy_path open_dialog_name,communication_area_default_path,file_name,0 |
859 | mov [OpenDialog_data.type],1 |
869 | mov [OpenDialog_data.type],1 |
860 | stdcall [OpenDialog_Start],OpenDialog_data |
870 | stdcall [OpenDialog_Start],OpenDialog_data |
861 | cmp [OpenDialog_data.status],2 |
871 | cmp [OpenDialog_data.status],2 |
862 | je .end_save_file |
872 | je .end_save_file |
863 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
873 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
864 | 874 | ||
865 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
875 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
866 | mov [run_file_70.Function], 2 |
876 | mov [run_file_70.Function], 2 |
867 | mov [run_file_70.Position], 0 |
877 | mov [run_file_70.Position], 0 |
868 | mov [run_file_70.Flags], 0 |
878 | mov [run_file_70.Flags], 0 |
869 | mov ebx, dword[open_file_lif] |
879 | mov ebx, dword[open_file_lif] |
870 | mov [run_file_70.Buffer], ebx |
880 | mov [run_file_70.Buffer], ebx |
871 | mov ebx,dword[ebx+2] |
881 | mov ebx,dword[ebx+2] |
872 | mov dword[run_file_70.Count], ebx ;à §¬¥à ä ©« |
882 | mov dword[run_file_70.Count], ebx ;à §¬¥à ä ©« |
873 | mov byte[run_file_70+20], 0 |
883 | mov byte[run_file_70+20], 0 |
874 | mov dword[run_file_70.FileName], openfile_path |
884 | mov dword[run_file_70.FileName], openfile_path |
875 | mov ebx,run_file_70 |
885 | mov ebx,run_file_70 |
876 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
886 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
877 | cmp ebx,0xffffffff |
887 | cmp ebx,0xffffffff |
878 | je .end_save_file |
888 | je .end_save_file |
879 | 889 | ||
880 | .end_save_file: |
890 | .end_save_file: |
881 | popad |
891 | popad |
882 | ret |
892 | ret |
883 | 893 | ||
884 | align 4 |
894 | align 4 |
885 | but_wnd_coords: |
895 | but_wnd_coords: |
886 | cmp byte[prop_wnd_run],0 |
896 | cmp byte[prop_wnd_run],0 |
887 | jne @f |
897 | jne @f |
888 | pushad |
898 | pushad |
889 | mcall 51,1,prop_start,thread_coords |
899 | mcall 51,1,prop_start,thread_coords |
890 | popad |
900 | popad |
891 | @@: |
901 | @@: |
892 | ret |
902 | ret |
893 | 903 | ||
894 | ;description: |
904 | ;description: |
895 | ; 㤠«¥¨¥ ¢ë¡à ®£® ¡«®ª ¨§ ®âªàë⮣® ä ©« |
905 | ; 㤠«¥¨¥ ¢ë¡à ®£® ¡«®ª ¨§ ®âªàë⮣® ä ©« |
896 | align 4 |
906 | align 4 |
897 | but_delete_chunk: |
907 | but_delete_chunk: |
898 | pushad |
908 | pushad |
899 | stdcall [tl_node_get_data],tree1 |
909 | stdcall [tl_node_get_data],tree1 |
900 | pop ebx |
910 | pop ebx |
901 | cmp ebx,0 |
911 | cmp ebx,0 |
902 | je .end_f |
912 | je .end_f |
903 | cmp byte[ebx+list_offs_chunk_del],0 ;¥á«¨ ¡«®ª § é¨é¥ ®â 㤠«¥¨ï |
913 | cmp byte[ebx+list_offs_chunk_del],0 ;¥á«¨ ¡«®ª § é¨é¥ ®â 㤠«¥¨ï |
904 | jne .notify |
914 | jne .notify |
905 | 915 | ||
906 | ;(1) ª®¯¨à®¢ ¨¥ ¨¦¥© ç áâ¨ ä ©« |
916 | ;(1) ª®¯¨à®¢ ¨¥ ¨¦¥© ç áâ¨ ä ©« |
907 | mov edx,dword[ebx+4] ;à §¬¥à ¡«®ª |
917 | mov edx,dword[ebx+4] ;à §¬¥à ¡«®ª |
908 | sub [open_file_size],edx ;¨§¬¥¥¨¥ à §¬¥à®¢ ä ©« |
918 | sub [open_file_size],edx ;¨§¬¥¥¨¥ à §¬¥à®¢ ä ©« |
909 | mov ecx,[open_file_size] |
919 | mov ecx,[open_file_size] |
910 | mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
920 | mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
911 | sub ecx,eax ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©« |
921 | sub ecx,eax ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©« |
912 | add eax,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
922 | add eax,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
913 | mov edi,eax |
923 | mov edi,eax |
914 | mov esi,eax |
924 | mov esi,eax |
915 | add esi,edx |
925 | add esi,edx |
916 | mov al,byte[ebx+list_offs_chunk_lev] ;¡¥à¥¬ ã஢¥ì ⥪ã饣® 㧫 |
926 | mov al,byte[ebx+list_offs_chunk_lev] ;¡¥à¥¬ ã஢¥ì ⥪ã饣® 㧫 |
917 | rep movsb |
927 | rep movsb |
918 | mov byte[can_save],1 |
928 | mov byte[can_save],1 |
919 | 929 | ||
920 | ;(2) ¨§¬¥¥¨¥ à §¬¥à®¢ த¨â¥«ìáª¨å ¡«®ª®¢ |
930 | ;(2) ¨§¬¥¥¨¥ à §¬¥à®¢ த¨â¥«ìáª¨å ¡«®ª®¢ |
921 | cmp al,0 |
931 | cmp al,0 |
922 | je .end_2 |
932 | je .end_2 |
923 | .cycle_2: |
933 | .cycle_2: |
924 | stdcall [tl_cur_perv], tree1 |
934 | stdcall [tl_cur_perv], tree1 |
925 | stdcall [tl_node_get_data],tree1 |
935 | stdcall [tl_node_get_data],tree1 |
926 | pop ebx |
936 | pop ebx |
927 | cmp ebx,0 |
937 | cmp ebx,0 |
928 | je .end_2 |
938 | je .end_2 |
929 | cmp byte[ebx+list_offs_chunk_lev],al |
939 | cmp byte[ebx+list_offs_chunk_lev],al |
930 | jge .cycle_2 |
940 | jge .cycle_2 |
931 | mov al,byte[ebx+list_offs_chunk_lev] |
941 | mov al,byte[ebx+list_offs_chunk_lev] |
932 | mov ecx,[ebx] |
942 | mov ecx,[ebx] |
933 | add ecx,[open_file_lif] |
943 | add ecx,[open_file_lif] |
934 | sub dword[ecx+2],edx |
944 | sub dword[ecx+2],edx |
935 | cmp al,0 ;¥á«¨ á ¬ë© ¢¥à娩 㧥«, â® al=0 |
945 | cmp al,0 ;¥á«¨ á ¬ë© ¢¥à娩 㧥«, â® al=0 |
936 | jne .cycle_2 |
946 | jne .cycle_2 |
937 | .end_2: |
947 | .end_2: |
938 | 948 | ||
939 | ;(3) ®¡®¢«¥¨¥ ᯨ᪠tree1 |
949 | ;(3) ®¡®¢«¥¨¥ ᯨ᪠tree1 |
940 | call init_tree |
950 | call init_tree |
941 | call draw_window |
951 | call draw_window |
942 | 952 | ||
943 | jmp .end_f |
953 | jmp .end_f |
944 | .notify: |
954 | .notify: |
945 | notify_window_run txt_not_delete |
955 | notify_window_run txt_not_delete |
946 | .end_f: |
956 | .end_f: |
947 | popad |
957 | popad |
948 | ret |
958 | ret |
949 | 959 | ||
950 | ;input: |
960 | ;input: |
951 | ; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
961 | ; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
952 | ;output: |
962 | ;output: |
953 | ; eax - ç¨á«® |
963 | ; eax - ç¨á«® |
954 | align 4 |
964 | align 4 |
955 | proc conv_str_to_int, buf:dword |
965 | proc conv_str_to_int uses ebx ecx esi, buf:dword |
956 | xor eax,eax |
966 | xor eax,eax |
957 | push ebx ecx esi |
- | |
958 | xor ebx,ebx |
967 | xor ebx,ebx |
959 | mov esi,[buf] |
968 | mov esi,[buf] |
960 | ;®¯à¥¤¥«¥¨¥ ®âà¨æ ⥫ìëå ç¨á¥« |
969 | ;®¯à¥¤¥«¥¨¥ ®âà¨æ ⥫ìëå ç¨á¥« |
961 | xor ecx,ecx |
970 | xor ecx,ecx |
962 | inc ecx |
971 | inc ecx |
963 | cmp byte[esi],'-' |
972 | cmp byte[esi],'-' |
964 | jne @f |
973 | jne @f |
965 | dec ecx |
974 | dec ecx |
966 | inc esi |
975 | inc esi |
967 | @@: |
976 | @@: |
968 | 977 | ||
969 | cmp word[esi],'0x' |
978 | cmp word[esi],'0x' |
970 | je .load_digit_16 |
979 | je .load_digit_16 |
971 | 980 | ||
972 | .load_digit_10: ;áç¨âë¢ ¨¥ 10-â¨çëå æ¨äà |
981 | .load_digit_10: ;áç¨âë¢ ¨¥ 10-â¨çëå æ¨äà |
973 | mov bl,byte[esi] |
982 | mov bl,byte[esi] |
974 | cmp bl,'0' |
983 | cmp bl,'0' |
975 | jl @f |
984 | jl @f |
976 | cmp bl,'9' |
985 | cmp bl,'9' |
977 | jg @f |
986 | jg @f |
978 | sub bl,'0' |
987 | sub bl,'0' |
979 | imul eax,10 |
988 | imul eax,10 |
980 | add eax,ebx |
989 | add eax,ebx |
981 | inc esi |
990 | inc esi |
982 | jmp .load_digit_10 |
991 | jmp .load_digit_10 |
983 | jmp @f |
992 | jmp @f |
984 | 993 | ||
985 | .load_digit_16: ;áç¨âë¢ ¨¥ 16-à¨çëå æ¨äà |
994 | .load_digit_16: ;áç¨âë¢ ¨¥ 16-à¨çëå æ¨äà |
986 | add esi,2 |
995 | add esi,2 |
987 | .cycle_16: |
996 | .cycle_16: |
988 | mov bl,byte[esi] |
997 | mov bl,byte[esi] |
989 | cmp bl,'0' |
998 | cmp bl,'0' |
990 | jl @f |
999 | jl @f |
991 | cmp bl,'f' |
1000 | cmp bl,'f' |
992 | jg @f |
1001 | jg @f |
993 | cmp bl,'9' |
1002 | cmp bl,'9' |
994 | jle .us1 |
1003 | jle .us1 |
995 | cmp bl,'A' |
1004 | cmp bl,'A' |
996 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'9' ¨ <'A' |
1005 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'9' ¨ <'A' |
997 | .us1: ;á®áâ ¢®¥ ãá«®¢¨¥ |
1006 | .us1: ;á®áâ ¢®¥ ãá«®¢¨¥ |
998 | cmp bl,'F' |
1007 | cmp bl,'F' |
999 | jle .us2 |
1008 | jle .us2 |
1000 | cmp bl,'a' |
1009 | cmp bl,'a' |
1001 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'F' ¨ <'a' |
1010 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'F' ¨ <'a' |
1002 | sub bl,32 ;¯¥à¥¢®¤¨¬ ᨬ¢®«ë ¢ ¢¥à娩 ॣ¨áâà, ¤«ï ã¯à®é¥¨ï ¨å ¯®á«¥¤ã饩 ®¡à ¡®âª¨ |
1011 | sub bl,32 ;¯¥à¥¢®¤¨¬ ᨬ¢®«ë ¢ ¢¥à娩 ॣ¨áâà, ¤«ï ã¯à®é¥¨ï ¨å ¯®á«¥¤ã饩 ®¡à ¡®âª¨ |
1003 | .us2: ;á®áâ ¢®¥ ãá«®¢¨¥ |
1012 | .us2: ;á®áâ ¢®¥ ãá«®¢¨¥ |
1004 | sub bl,'0' |
1013 | sub bl,'0' |
1005 | cmp bl,9 |
1014 | cmp bl,9 |
1006 | jle .cor1 |
1015 | jle .cor1 |
1007 | sub bl,7 ;convert 'A' to '10' |
1016 | sub bl,7 ;convert 'A' to '10' |
1008 | .cor1: |
1017 | .cor1: |
1009 | shl eax,4 |
1018 | shl eax,4 |
1010 | add eax,ebx |
1019 | add eax,ebx |
1011 | inc esi |
1020 | inc esi |
1012 | jmp .cycle_16 |
1021 | jmp .cycle_16 |
1013 | @@: |
1022 | @@: |
1014 | cmp ecx,0 ;¥á«¨ ç¨á«® ®âà¨æ ⥫쮥 |
1023 | cmp ecx,0 ;¥á«¨ ç¨á«® ®âà¨æ ⥫쮥 |
1015 | jne @f |
1024 | jne @f |
1016 | sub ecx,eax |
1025 | sub ecx,eax |
1017 | mov eax,ecx |
1026 | mov eax,ecx |
1018 | @@: |
1027 | @@: |
1019 | pop esi ecx ebx |
- | |
1020 | ret |
1028 | ret |
1021 | endp |
1029 | endp |
1022 | 1030 | ||
1023 | ;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢ |
1031 | ;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢ |
1024 | align 4 |
1032 | align 4 |
1025 | OpenDialog_data: |
1033 | OpenDialog_data: |
1026 | .type dd 0 ;0 - ®âªàëâì, 1 - á®åà ¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î |
1034 | .type dd 0 ;0 - ®âªàëâì, 1 - á®åà ¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î |
1027 | .procinfo dd procinfo ;+4 |
1035 | .procinfo dd procinfo ;+4 |
1028 | .com_area_name dd communication_area_name ;+8 |
1036 | .com_area_name dd communication_area_name ;+8 |
1029 | .com_area dd 0 ;+12 |
1037 | .com_area dd 0 ;+12 |
1030 | .opendir_path dd plugin_path ;+16 |
1038 | .opendir_path dd plugin_path ;+16 |
1031 | .dir_default_path dd default_dir ;+20 |
1039 | .dir_default_path dd default_dir ;+20 |
1032 | .start_path dd file_name ;+24 ¯ãâì ª ¤¨ «®£ã ®âªàëâ¨ï ä ©«®¢ |
1040 | .start_path dd file_name ;+24 ¯ãâì ª ¤¨ «®£ã ®âªàëâ¨ï ä ©«®¢ |
1033 | .draw_window dd draw_window ;+28 |
1041 | .draw_window dd draw_window ;+28 |
1034 | .status dd 0 ;+32 |
1042 | .status dd 0 ;+32 |
1035 | .openfile_path dd openfile_path ;+36 ¯ãâì ª ®âªàë¢ ¥¬®¬ã ä ©«ã |
1043 | .openfile_path dd openfile_path ;+36 ¯ãâì ª ®âªàë¢ ¥¬®¬ã ä ©«ã |
1036 | .filename_area dd filename_area ;+40 |
1044 | .filename_area dd filename_area ;+40 |
1037 | .filter_area dd Filter |
1045 | .filter_area dd Filter |
1038 | .x: |
1046 | .x: |
1039 | .x_size dw 420 ;+48 ; Window X size |
1047 | .x_size dw 420 ;+48 ; Window X size |
1040 | .x_start dw 10 ;+50 ; Window X position |
1048 | .x_start dw 10 ;+50 ; Window X position |
1041 | .y: |
1049 | .y: |
1042 | .y_size dw 320 ;+52 ; Window y size |
1050 | .y_size dw 320 ;+52 ; Window y size |
1043 | .y_start dw 10 ;+54 ; Window Y position |
1051 | .y_start dw 10 ;+54 ; Window Y position |
1044 | 1052 | ||
1045 | default_dir db '/rd/1',0 |
1053 | default_dir db '/rd/1',0 |
1046 | 1054 | ||
1047 | communication_area_name: |
1055 | communication_area_name: |
1048 | db 'FFFFFFFF_open_dialog',0 |
1056 | db 'FFFFFFFF_open_dialog',0 |
1049 | open_dialog_name: |
1057 | open_dialog_name: |
1050 | db 'opendial',0 |
1058 | db 'opendial',0 |
1051 | communication_area_default_path: |
1059 | communication_area_default_path: |
1052 | db '/rd/1/File managers/',0 |
1060 | db '/rd/1/File managers/',0 |
1053 | 1061 | ||
1054 | Filter: |
1062 | Filter: |
1055 | dd Filter.end - Filter.1 |
1063 | dd Filter.end - Filter.1 |
1056 | .1: |
1064 | .1: |
1057 | db '3DS',0 |
1065 | db '3DS',0 |
1058 | db 'TXT',0 |
1066 | db 'TXT',0 |
1059 | .end: |
1067 | .end: |
1060 | db 0 |
1068 | db 0 |
1061 | 1069 | ||
1062 | 1070 | ||
1063 | 1071 | ||
1064 | head_f_i: |
1072 | head_f_i: |
1065 | head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
1073 | head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
1066 | 1074 | ||
1067 | system_dir_0 db '/sys/lib/' |
1075 | system_dir_0 db '/sys/lib/' |
1068 | lib_name_0 db 'proc_lib.obj',0 |
1076 | lib_name_0 db 'proc_lib.obj',0 |
1069 | err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
1077 | err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
1070 | err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
1078 | err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
1071 | 1079 | ||
1072 | system_dir_1 db '/sys/lib/' |
1080 | system_dir_1 db '/sys/lib/' |
1073 | lib_name_1 db 'libimg.obj',0 |
1081 | lib_name_1 db 'libimg.obj',0 |
1074 | err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
1082 | err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
1075 | err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
1083 | err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
1076 | 1084 | ||
1077 | system_dir_2 db '/sys/lib/' |
1085 | system_dir_2 db '/sys/lib/' |
1078 | lib_name_2 db 'box_lib.obj',0 |
1086 | lib_name_2 db 'box_lib.obj',0 |
1079 | err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0 |
1087 | err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0 |
1080 | err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0 |
1088 | err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0 |
1081 | 1089 | ||
1082 | system_dir_7 db '/sys/lib/' |
1090 | system_dir_3 db '/sys/lib/' |
1083 | lib_name_7 db 'buf2d.obj',0 |
1091 | lib_name_3 db 'buf2d.obj',0 |
1084 | err_msg_found_lib_7 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
1092 | err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
1085 | err_msg_import_7 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
1093 | err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
1086 | 1094 | ||
1087 | l_libs_start: |
1095 | l_libs_start: |
1088 | lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\ |
1096 | lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\ |
1089 | err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i |
1097 | err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i |
1090 | lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\ |
1098 | lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\ |
1091 | err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i |
1099 | err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i |
1092 | lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\ |
1100 | lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\ |
1093 | err_msg_found_lib_2,head_f_l,import_box_lib,err_msg_import_2,head_f_i |
1101 | err_msg_found_lib_2,head_f_l,import_box_lib,err_msg_import_2,head_f_i |
1094 | lib_7 l_libs lib_name_7, sys_path, library_path, system_dir_7,\ |
1102 | lib_3 l_libs lib_name_3, sys_path, library_path, system_dir_3,\ |
1095 | err_msg_found_lib_7,head_f_l,import_buf2d,err_msg_import_7,head_f_i |
1103 | err_msg_found_lib_3,head_f_l,import_buf2d,err_msg_import_3,head_f_i |
1096 | l_libs_end: |
1104 | l_libs_end: |
1097 | 1105 | ||
1098 | align 4 |
1106 | align 4 |
1099 | import_libimg: |
1107 | import_libimg: |
1100 | dd alib_init1 |
1108 | dd alib_init1 |
1101 | img_is_img dd aimg_is_img |
1109 | img_is_img dd aimg_is_img |
1102 | img_info dd aimg_info |
1110 | img_info dd aimg_info |
1103 | img_from_file dd aimg_from_file |
1111 | img_from_file dd aimg_from_file |
1104 | img_to_file dd aimg_to_file |
1112 | img_to_file dd aimg_to_file |
1105 | img_from_rgb dd aimg_from_rgb |
1113 | img_from_rgb dd aimg_from_rgb |
1106 | img_to_rgb dd aimg_to_rgb |
1114 | img_to_rgb dd aimg_to_rgb |
1107 | img_to_rgb2 dd aimg_to_rgb2 |
1115 | img_to_rgb2 dd aimg_to_rgb2 |
1108 | img_decode dd aimg_decode |
1116 | img_decode dd aimg_decode |
1109 | img_encode dd aimg_encode |
1117 | img_encode dd aimg_encode |
1110 | img_create dd aimg_create |
1118 | img_create dd aimg_create |
1111 | img_destroy dd aimg_destroy |
1119 | img_destroy dd aimg_destroy |
1112 | img_destroy_layer dd aimg_destroy_layer |
1120 | img_destroy_layer dd aimg_destroy_layer |
1113 | img_count dd aimg_count |
1121 | img_count dd aimg_count |
1114 | img_lock_bits dd aimg_lock_bits |
1122 | img_lock_bits dd aimg_lock_bits |
1115 | img_unlock_bits dd aimg_unlock_bits |
1123 | img_unlock_bits dd aimg_unlock_bits |
1116 | img_flip dd aimg_flip |
1124 | img_flip dd aimg_flip |
1117 | img_flip_layer dd aimg_flip_layer |
1125 | img_flip_layer dd aimg_flip_layer |
1118 | img_rotate dd aimg_rotate |
1126 | img_rotate dd aimg_rotate |
1119 | img_rotate_layer dd aimg_rotate_layer |
1127 | img_rotate_layer dd aimg_rotate_layer |
1120 | img_draw dd aimg_draw |
1128 | img_draw dd aimg_draw |
1121 | 1129 | ||
1122 | dd 0,0 |
1130 | dd 0,0 |
1123 | alib_init1 db 'lib_init',0 |
1131 | alib_init1 db 'lib_init',0 |
1124 | aimg_is_img db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª ᤥ« âì ¨§ ¨å ¨§®¡à ¦¥¨¥ |
1132 | aimg_is_img db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª ᤥ« âì ¨§ ¨å ¨§®¡à ¦¥¨¥ |
1125 | aimg_info db 'img_info',0 |
1133 | aimg_info db 'img_info',0 |
1126 | aimg_from_file db 'img_from_file',0 |
1134 | aimg_from_file db 'img_from_file',0 |
1127 | aimg_to_file db 'img_to_file',0 |
1135 | aimg_to_file db 'img_to_file',0 |
1128 | aimg_from_rgb db 'img_from_rgb',0 |
1136 | aimg_from_rgb db 'img_from_rgb',0 |
1129 | aimg_to_rgb db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ¨¥ ¨§®¡à ¦¥¨ï ¢ ¤ ë¥ RGB |
1137 | aimg_to_rgb db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ¨¥ ¨§®¡à ¦¥¨ï ¢ ¤ ë¥ RGB |
1130 | aimg_to_rgb2 db 'img_to_rgb2',0 |
1138 | aimg_to_rgb2 db 'img_to_rgb2',0 |
1131 | aimg_decode db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ëå |
1139 | aimg_decode db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ëå |
1132 | aimg_encode db 'img_encode',0 |
1140 | aimg_encode db 'img_encode',0 |
1133 | aimg_create db 'img_create',0 |
1141 | aimg_create db 'img_create',0 |
1134 | aimg_destroy db 'img_destroy',0 |
1142 | aimg_destroy db 'img_destroy',0 |
1135 | aimg_destroy_layer db 'img_destroy_layer',0 |
1143 | aimg_destroy_layer db 'img_destroy_layer',0 |
1136 | aimg_count db 'img_count',0 |
1144 | aimg_count db 'img_count',0 |
1137 | aimg_lock_bits db 'img_lock_bits',0 |
1145 | aimg_lock_bits db 'img_lock_bits',0 |
1138 | aimg_unlock_bits db 'img_unlock_bits',0 |
1146 | aimg_unlock_bits db 'img_unlock_bits',0 |
1139 | aimg_flip db 'img_flip',0 |
1147 | aimg_flip db 'img_flip',0 |
1140 | aimg_flip_layer db 'img_flip_layer',0 |
1148 | aimg_flip_layer db 'img_flip_layer',0 |
1141 | aimg_rotate db 'img_rotate',0 |
1149 | aimg_rotate db 'img_rotate',0 |
1142 | aimg_rotate_layer db 'img_rotate_layer',0 |
1150 | aimg_rotate_layer db 'img_rotate_layer',0 |
1143 | aimg_draw db 'img_draw',0 |
1151 | aimg_draw db 'img_draw',0 |
1144 | 1152 | ||
1145 | align 4 |
1153 | align 4 |
1146 | proclib_import: ;®¯¨á ¨¥ íªá¯®àâ¨à㥬ëå äãªæ¨© |
1154 | proclib_import: ;®¯¨á ¨¥ íªá¯®àâ¨à㥬ëå äãªæ¨© |
1147 | OpenDialog_Init dd aOpenDialog_Init |
1155 | OpenDialog_Init dd aOpenDialog_Init |
1148 | OpenDialog_Start dd aOpenDialog_Start |
1156 | OpenDialog_Start dd aOpenDialog_Start |
1149 | dd 0,0 |
1157 | dd 0,0 |
1150 | aOpenDialog_Init db 'OpenDialog_init',0 |
1158 | aOpenDialog_Init db 'OpenDialog_init',0 |
1151 | aOpenDialog_Start db 'OpenDialog_start',0 |
1159 | aOpenDialog_Start db 'OpenDialog_start',0 |
1152 | 1160 | ||
1153 | align 4 |
1161 | align 4 |
1154 | import_buf2d: |
1162 | import_buf2d: |
1155 | dd sz_init0 |
1163 | dd sz_init0 |
1156 | buf2d_create dd sz_buf2d_create |
1164 | buf2d_create dd sz_buf2d_create |
1157 | buf2d_create_f_img dd sz_buf2d_create_f_img |
1165 | buf2d_create_f_img dd sz_buf2d_create_f_img |
1158 | buf2d_clear dd sz_buf2d_clear |
1166 | buf2d_clear dd sz_buf2d_clear |
1159 | buf2d_draw dd sz_buf2d_draw |
1167 | buf2d_draw dd sz_buf2d_draw |
1160 | buf2d_delete dd sz_buf2d_delete |
1168 | buf2d_delete dd sz_buf2d_delete |
1161 | buf2d_resize dd sz_buf2d_resize |
1169 | buf2d_resize dd sz_buf2d_resize |
1162 | buf2d_line dd sz_buf2d_line |
1170 | buf2d_line dd sz_buf2d_line |
1163 | buf2d_rect_by_size dd sz_buf2d_rect_by_size |
1171 | buf2d_rect_by_size dd sz_buf2d_rect_by_size |
1164 | buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size |
1172 | buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size |
1165 | buf2d_circle dd sz_buf2d_circle |
1173 | buf2d_circle dd sz_buf2d_circle |
1166 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
1174 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
1167 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
1175 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
1168 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
1176 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
1169 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
1177 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
1170 | buf2d_bit_blt dd sz_buf2d_bit_blt |
1178 | buf2d_bit_blt dd sz_buf2d_bit_blt |
1171 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
1179 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
1172 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
1180 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
1173 | buf2d_curve_bezier dd sz_buf2d_curve_bezier |
1181 | buf2d_curve_bezier dd sz_buf2d_curve_bezier |
1174 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
1182 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
1175 | buf2d_draw_text dd sz_buf2d_draw_text |
1183 | buf2d_draw_text dd sz_buf2d_draw_text |
1176 | buf2d_crop_color dd sz_buf2d_crop_color |
1184 | buf2d_crop_color dd sz_buf2d_crop_color |
1177 | buf2d_offset_h dd sz_buf2d_offset_h |
1185 | buf2d_offset_h dd sz_buf2d_offset_h |
1178 | buf2d_flood_fill dd sz_buf2d_flood_fill |
1186 | buf2d_flood_fill dd sz_buf2d_flood_fill |
1179 | buf2d_set_pixel dd sz_buf2d_set_pixel |
1187 | buf2d_set_pixel dd sz_buf2d_set_pixel |
1180 | dd 0,0 |
1188 | dd 0,0 |
1181 | sz_init0 db 'lib_init',0 |
1189 | sz_init0 db 'lib_init',0 |
1182 | sz_buf2d_create db 'buf2d_create',0 |
1190 | sz_buf2d_create db 'buf2d_create',0 |
1183 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
1191 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
1184 | sz_buf2d_clear db 'buf2d_clear',0 |
1192 | sz_buf2d_clear db 'buf2d_clear',0 |
1185 | sz_buf2d_draw db 'buf2d_draw',0 |
1193 | sz_buf2d_draw db 'buf2d_draw',0 |
1186 | sz_buf2d_delete db 'buf2d_delete',0 |
1194 | sz_buf2d_delete db 'buf2d_delete',0 |
1187 | sz_buf2d_resize db 'buf2d_resize',0 |
1195 | sz_buf2d_resize db 'buf2d_resize',0 |
1188 | sz_buf2d_line db 'buf2d_line',0 |
1196 | sz_buf2d_line db 'buf2d_line',0 |
1189 | sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 |
1197 | sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 |
1190 | sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 |
1198 | sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 |
1191 | sz_buf2d_circle db 'buf2d_circle',0 |
1199 | sz_buf2d_circle db 'buf2d_circle',0 |
1192 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
1200 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
1193 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
1201 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
1194 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
1202 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
1195 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
1203 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
1196 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
1204 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
1197 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
1205 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
1198 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
1206 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
1199 | sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 |
1207 | sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 |
1200 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
1208 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
1201 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
1209 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
1202 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
1210 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
1203 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
1211 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
1204 | sz_buf2d_flood_fill db 'buf2d_flood_fill',0 |
1212 | sz_buf2d_flood_fill db 'buf2d_flood_fill',0 |
1205 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
1213 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
1206 | 1214 | ||
1207 | align 4 |
1215 | align 4 |
1208 | import_box_lib: |
1216 | import_box_lib: |
1209 | dd sz_init1 |
1217 | dd sz_init1 |
1210 | init_checkbox dd sz_init_checkbox |
1218 | init_checkbox dd sz_init_checkbox |
1211 | check_box_draw dd sz_check_box_draw |
1219 | check_box_draw dd sz_check_box_draw |
1212 | edit_box_draw dd sz_edit_box_draw |
1220 | edit_box_draw dd sz_edit_box_draw |
1213 | edit_box_key dd sz_edit_box_key |
1221 | edit_box_key dd sz_edit_box_key |
1214 | edit_box_mouse dd sz_edit_box_mouse |
1222 | edit_box_mouse dd sz_edit_box_mouse |
1215 | edit_box_set_text dd sz_edit_box_set_text |
1223 | edit_box_set_text dd sz_edit_box_set_text |
1216 | scrollbar_ver_draw dd sz_scrollbar_ver_draw |
1224 | scrollbar_ver_draw dd sz_scrollbar_ver_draw |
1217 | scrollbar_hor_draw dd sz_scrollbar_hor_draw |
1225 | scrollbar_hor_draw dd sz_scrollbar_hor_draw |
1218 | 1226 | ||
1219 | tl_data_init dd sz_tl_data_init |
1227 | tl_data_init dd sz_tl_data_init |
1220 | tl_data_clear dd sz_tl_data_clear |
1228 | tl_data_clear dd sz_tl_data_clear |
1221 | tl_info_clear dd sz_tl_info_clear |
1229 | tl_info_clear dd sz_tl_info_clear |
1222 | tl_key dd sz_tl_key |
1230 | tl_key dd sz_tl_key |
1223 | tl_mouse dd sz_tl_mouse |
1231 | tl_mouse dd sz_tl_mouse |
1224 | tl_draw dd sz_tl_draw |
1232 | tl_draw dd sz_tl_draw |
1225 | tl_info_undo dd sz_tl_info_undo |
1233 | tl_info_undo dd sz_tl_info_undo |
1226 | tl_info_redo dd sz_tl_info_redo |
1234 | tl_info_redo dd sz_tl_info_redo |
1227 | tl_node_add dd sz_tl_node_add |
1235 | tl_node_add dd sz_tl_node_add |
1228 | tl_node_set_data dd sz_tl_node_set_data |
1236 | tl_node_set_data dd sz_tl_node_set_data |
1229 | tl_node_get_data dd sz_tl_node_get_data |
1237 | tl_node_get_data dd sz_tl_node_get_data |
1230 | tl_node_delete dd sz_tl_node_delete |
1238 | tl_node_delete dd sz_tl_node_delete |
1231 | tl_node_move_up dd sz_tl_node_move_up |
1239 | tl_node_move_up dd sz_tl_node_move_up |
1232 | tl_node_move_down dd sz_tl_node_move_down |
1240 | tl_node_move_down dd sz_tl_node_move_down |
1233 | tl_cur_beg dd sz_tl_cur_beg |
1241 | tl_cur_beg dd sz_tl_cur_beg |
1234 | tl_cur_next dd sz_tl_cur_next |
1242 | tl_cur_next dd sz_tl_cur_next |
1235 | tl_cur_perv dd sz_tl_cur_perv |
1243 | tl_cur_perv dd sz_tl_cur_perv |
1236 | tl_node_close_open dd sz_tl_node_close_open |
1244 | tl_node_close_open dd sz_tl_node_close_open |
1237 | tl_node_lev_inc dd sz_tl_node_lev_inc |
1245 | tl_node_lev_inc dd sz_tl_node_lev_inc |
1238 | tl_node_lev_dec dd sz_tl_node_lev_dec |
1246 | tl_node_lev_dec dd sz_tl_node_lev_dec |
1239 | tl_node_poi_get_info dd sz_tl_node_poi_get_info |
1247 | tl_node_poi_get_info dd sz_tl_node_poi_get_info |
1240 | tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info |
1248 | tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info |
1241 | tl_node_poi_get_data dd sz_tl_node_poi_get_data |
1249 | tl_node_poi_get_data dd sz_tl_node_poi_get_data |
1242 | 1250 | ||
1243 | dd 0,0 |
1251 | dd 0,0 |
1244 | sz_init1 db 'lib_init',0 |
1252 | sz_init1 db 'lib_init',0 |
1245 | sz_init_checkbox db 'init_checkbox2',0 |
1253 | sz_init_checkbox db 'init_checkbox2',0 |
1246 | sz_check_box_draw db 'check_box_draw2',0 |
1254 | sz_check_box_draw db 'check_box_draw2',0 |
1247 | sz_edit_box_draw db 'edit_box',0 |
1255 | sz_edit_box_draw db 'edit_box',0 |
1248 | sz_edit_box_key db 'edit_box_key',0 |
1256 | sz_edit_box_key db 'edit_box_key',0 |
1249 | sz_edit_box_mouse db 'edit_box_mouse',0 |
1257 | sz_edit_box_mouse db 'edit_box_mouse',0 |
1250 | sz_edit_box_set_text db 'edit_box_set_text',0 |
1258 | sz_edit_box_set_text db 'edit_box_set_text',0 |
1251 | sz_scrollbar_ver_draw db 'scrollbar_v_draw',0 |
1259 | sz_scrollbar_ver_draw db 'scrollbar_v_draw',0 |
1252 | sz_scrollbar_hor_draw db 'scrollbar_h_draw',0 |
1260 | sz_scrollbar_hor_draw db 'scrollbar_h_draw',0 |
1253 | 1261 | ||
1254 | sz_tl_data_init db 'tl_data_init',0 |
1262 | sz_tl_data_init db 'tl_data_init',0 |
1255 | sz_tl_data_clear db 'tl_data_clear',0 |
1263 | sz_tl_data_clear db 'tl_data_clear',0 |
1256 | sz_tl_info_clear db 'tl_info_clear',0 |
1264 | sz_tl_info_clear db 'tl_info_clear',0 |
1257 | sz_tl_key db 'tl_key',0 |
1265 | sz_tl_key db 'tl_key',0 |
1258 | sz_tl_mouse db 'tl_mouse',0 |
1266 | sz_tl_mouse db 'tl_mouse',0 |
1259 | sz_tl_draw db 'tl_draw',0 |
1267 | sz_tl_draw db 'tl_draw',0 |
1260 | sz_tl_info_undo db 'tl_info_undo',0 |
1268 | sz_tl_info_undo db 'tl_info_undo',0 |
1261 | sz_tl_info_redo db 'tl_info_redo',0 |
1269 | sz_tl_info_redo db 'tl_info_redo',0 |
1262 | sz_tl_node_add db 'tl_node_add',0 |
1270 | sz_tl_node_add db 'tl_node_add',0 |
1263 | sz_tl_node_set_data db 'tl_node_set_data',0 |
1271 | sz_tl_node_set_data db 'tl_node_set_data',0 |
1264 | sz_tl_node_get_data db 'tl_node_get_data',0 |
1272 | sz_tl_node_get_data db 'tl_node_get_data',0 |
1265 | sz_tl_node_delete db 'tl_node_delete',0 |
1273 | sz_tl_node_delete db 'tl_node_delete',0 |
1266 | sz_tl_node_move_up db 'tl_node_move_up',0 |
1274 | sz_tl_node_move_up db 'tl_node_move_up',0 |
1267 | sz_tl_node_move_down db 'tl_node_move_down',0 |
1275 | sz_tl_node_move_down db 'tl_node_move_down',0 |
1268 | sz_tl_cur_beg db 'tl_cur_beg',0 |
1276 | sz_tl_cur_beg db 'tl_cur_beg',0 |
1269 | sz_tl_cur_next db 'tl_cur_next',0 |
1277 | sz_tl_cur_next db 'tl_cur_next',0 |
1270 | sz_tl_cur_perv db 'tl_cur_perv',0 |
1278 | sz_tl_cur_perv db 'tl_cur_perv',0 |
1271 | sz_tl_node_close_open db 'tl_node_close_open',0 |
1279 | sz_tl_node_close_open db 'tl_node_close_open',0 |
1272 | sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
1280 | sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
1273 | sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
1281 | sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
1274 | sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0 |
1282 | sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0 |
1275 | sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0 |
1283 | sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0 |
1276 | sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 |
1284 | sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 |
1277 | 1285 | ||
1278 | 1286 | ||
1279 | 1287 | ||
1280 | mouse_dd dd 0x0 |
1288 | mouse_dd dd 0x0 |
1281 | sc system_colors |
1289 | sc system_colors |
1282 | last_time dd 0 |
1290 | last_time dd 0 |
1283 | 1291 | ||
1284 | align 16 |
1292 | align 16 |
1285 | procinfo process_information |
1293 | procinfo process_information |
1286 | 1294 | ||
1287 | align 4 |
1295 | align 4 |
1288 | buf_0: dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1296 | buf_0: dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1289 | .l: dw 205 ;+4 left |
1297 | .l: dw 205 ;+4 left |
1290 | .t: dw 35 ;+6 top |
1298 | .t: dw 35 ;+6 top |
1291 | .w: dd 340 ;+8 w |
1299 | .w: dd 340 ;+8 w |
1292 | .h: dd 250 ;+12 h |
1300 | .h: dd 250 ;+12 h |
1293 | .color: dd 0xffffd0 ;+16 color |
1301 | .color: dd 0xffffd0 ;+16 color |
1294 | db 24 ;+20 bit in pixel |
1302 | db 24 ;+20 bit in pixel |
1295 | 1303 | ||
1296 | align 4 |
1304 | align 4 |
1297 | buf_1: |
1305 | buf_1: |
1298 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1306 | dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
1299 | dw 25 ;+4 left |
1307 | dw 25 ;+4 left |
1300 | dw 25 ;+6 top |
1308 | dw 25 ;+6 top |
1301 | dd 128 ;+8 w |
1309 | dd 128 ;+8 w |
1302 | dd 144 ;+12 h |
1310 | dd 144 ;+12 h |
1303 | dd 0 ;+16 color |
1311 | dd 0 ;+16 color |
1304 | db 24 ;+20 bit in pixel |
1312 | db 24 ;+20 bit in pixel |
1305 | 1313 | ||
1306 | el_focus dd tree1 |
1314 | el_focus dd tree1 |
1307 | tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\ |
1315 | tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\ |
1308 | 16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,35,195-16,250, 16,list_offs_text,0, el_focus,\ |
1316 | 16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,35,195-16,250, 16,list_offs_text,0, el_focus,\ |
1309 | w_scr_t1,0 |
1317 | w_scr_t1,0 |
1310 | 1318 | ||
1311 | align 4 |
1319 | align 4 |
1312 | w_scr_t1: |
1320 | w_scr_t1: |
1313 | .size_x dw 16 ;+0 |
1321 | .size_x dw 16 ;+0 |
1314 | .start_x dw 0 |
1322 | .start_x dw 0 |
1315 | rb 2+2 |
1323 | rb 2+2 |
1316 | .btn_high dd 15 ;+8 |
1324 | .btn_high dd 15 ;+8 |
1317 | .type dd 1 ;+12 |
1325 | .type dd 1 ;+12 |
1318 | .max_area dd 100 ;+16 |
1326 | .max_area dd 100 ;+16 |
1319 | rb 4+4 |
1327 | rb 4+4 |
1320 | .bckg_col dd 0xeeeeee ;+28 |
1328 | .bckg_col dd 0xeeeeee ;+28 |
1321 | .frnt_col dd 0xbbddff ;+32 |
1329 | .frnt_col dd 0xbbddff ;+32 |
1322 | .line_col dd 0 ;+36 |
1330 | .line_col dd 0 ;+36 |
1323 | rb 4+2+2 |
1331 | rb 4+2+2 |
1324 | .run_x: |
1332 | .run_x: |
1325 | rb 2+2+2+2+4+4+4+4+4+4 |
1333 | rb 2+2+2+2+4+4+4+4+4+4 |
1326 | .all_redraw dd 0 ;+80 |
1334 | .all_redraw dd 0 ;+80 |
1327 | .ar_offset dd 1 ;+84 |
1335 | .ar_offset dd 1 ;+84 |
1328 | 1336 | ||
1329 | - | ||
1330 | - | ||
1331 | ;íâ®â ª®¤ ¥ ¬®©, ® ¯à¥®¡à §ã¥â ç¨á«® ¢ áâபã |
- | |
1332 | ;input: |
- | |
1333 | ; eax = value |
- | |
1334 | ; edi = string buffer |
- | |
1335 | ;output: |
- | |
1336 | align 4 |
- | |
1337 | tl_convert_to_str: |
- | |
1338 | pushad |
- | |
1339 | mov dword[edi+1],0;0x20202020 |
- | |
1340 | call .str |
- | |
1341 | popad |
- | |
1342 | ret |
- | |
1343 | 1337 | ||
1344 | align 4 |
- | |
1345 | .str: |
- | |
1346 | mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
- | |
1347 | ;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
- | |
1348 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
- | |
1349 | jb @f |
- | |
1350 | xor edx,edx ;®ç¨áâ¨âì edx |
- | |
1351 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
- | |
1352 | push edx ;¯®«®¦¨âì ¢ á⥪ |
- | |
1353 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
- | |
1354 | call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
- | |
1355 | pop eax |
- | |
1356 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
- | |
1357 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
- | |
1358 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
- | |
1359 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
- | |
1360 | 1338 | align 4 |
|
1361 | i_end: |
1339 | i_end: |
1362 | rb 1024 |
1340 | rb 1024 |
1363 | thread_coords: |
1341 | thread_coords: |
1364 | rb 1024 |
1342 | rb 1024 |
1365 | stacktop: |
1343 | stacktop: |
1366 | sys_path rb 1024 |
1344 | sys_path rb 1024 |
1367 | file_name: |
1345 | file_name: |
1368 | rb 1024 ;4096 |
1346 | rb 4096 |
1369 | library_path rb 1024 |
1347 | library_path rb 1024 |
1370 | plugin_path rb 4096 |
1348 | plugin_path rb 4096 |
1371 | openfile_path rb 4096 |
1349 | openfile_path rb 4096 |
1372 | filename_area rb 256 |
1350 | filename_area rb 256 |
1373 | mem:'a' |
1351 | mem:'a' |
1374 | >'A' |
1352 | >'A' |
1375 | > |
1353 | > |