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