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