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