Rev 5388 | Rev 6259 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5388 | Rev 6175 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0x0 |
3 | db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
3 | db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
4 | dd 0x1 |
- | |
5 | dd start |
- | |
6 | dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
4 | dd 1,start,i_end,mem,stacktop,0,sys_path |
7 | dd mem |
- | |
8 | dd stacktop |
- | |
9 | dd 0 |
- | |
10 | dd sys_path |
- | |
Line 11... | Line 5... | ||
11 | 5 | ||
12 | include '../../../../programs/macros.inc' |
6 | include '../../../../programs/macros.inc' |
- | 7 | include '../../../../programs/proc32.inc' |
|
13 | include '../../../../programs/proc32.inc' |
8 | include '../../../../programs/KOSfuncs.inc' |
14 | include '../../../../programs/develop/libraries/box_lib/load_lib.mac' |
9 | include '../../../../programs/develop/libraries/box_lib/load_lib.mac' |
15 | include '../../../../programs/dll.inc' |
10 | include '../../../../programs/dll.inc' |
Line 16... | Line 11... | ||
16 | include '../trunk/str.inc' |
11 | include '../trunk/str.inc' |
17 | 12 | ||
18 | vox_offs_tree_table equ 4 |
13 | vox_offs_tree_table equ 4 |
19 | vox_offs_data equ 12 |
14 | vox_offs_data equ 12 |
Line 20... | Line 15... | ||
20 | txt_buf rb 8 |
15 | txt_buf rb 8 |
21 | include '../trunk/vox_rotate.inc' |
16 | include '../trunk/vox_rotate.inc' |
Line 22... | Line 17... | ||
22 | 17 | ||
23 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
18 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
24 | caption db 'Voxel creator 29.01.15',0 ;¯®¤¯¨áì ®ª |
19 | caption db 'Voxel creator 08.02.16',0 ;¯®¤¯¨áì ®ª |
25 | 20 | ||
Line 68... | Line 63... | ||
68 | local .path_str |
63 | local .path_str |
69 | .path_str db path ;ä®à¬¨à㥬 «®ª «ìãî ¯¥à¥¬¥ãî |
64 | .path_str db path ;ä®à¬¨à㥬 «®ª «ìãî ¯¥à¥¬¥ãî |
70 | db 0 |
65 | db 0 |
71 | @@: |
66 | @@: |
72 | ;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
67 | ;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
73 | copy_path .path_str,[32],file_name,0x0 |
68 | copy_path .path_str,[32],file_name,0 |
74 | else |
69 | else |
75 | copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
70 | copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
76 | end if |
71 | end if |
Line 77... | Line 72... | ||
77 | 72 | ||
78 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
73 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
Line 79... | Line -... | ||
79 | mov [buf],eax |
- | |
80 | 74 | mov [buf],eax |
|
81 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
75 | |
82 | mov [run_file_70.Function], 0 |
76 | mov [run_file_70.Function], SSF_READ_FILE |
83 | mov [run_file_70.Position], 0 |
77 | mov [run_file_70.Position], 0 |
84 | mov [run_file_70.Flags], 0 |
78 | mov [run_file_70.Flags], 0 |
85 | mov [run_file_70.Count], dword size |
79 | mov [run_file_70.Count], dword size |
86 | m2m [run_file_70.Buffer], [buf] |
80 | mov [run_file_70.Buffer], eax |
87 | mov byte[run_file_70+20], 0 |
- | |
88 | mov [run_file_70.FileName], file_name |
81 | mov byte[run_file_70+20], 0 |
89 | mov ebx,run_file_70 |
82 | mov [run_file_70.FileName], file_name |
90 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
83 | mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
91 | cmp ebx,0xffffffff |
84 | cmp ebx,0xffffffff |
92 | je @f |
85 | je @f |
93 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
86 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
Line 107... | Line 100... | ||
107 | load_libraries l_libs_start,l_libs_end |
100 | load_libraries l_libs_start,l_libs_end |
108 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì ¡¨¡«¨®â¥ª |
101 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì ¡¨¡«¨®â¥ª |
109 | mov ebp,lib_0 |
102 | mov ebp,lib_0 |
110 | cmp dword [ebp+ll_struc_size-4],0 |
103 | cmp dword [ebp+ll_struc_size-4],0 |
111 | jz @f |
104 | jz @f |
112 | mcall -1 ;exit not correct |
105 | mcall SF_TERMINATE_PROCESS |
113 | @@: |
106 | @@: |
114 | mcall 48,3,sc,sizeof.system_colors |
107 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors |
115 | mcall 40,0x27 |
108 | mcall SF_SET_EVENTS_MASK,0x27 |
116 | stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
109 | stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
Line 117... | Line 110... | ||
117 | 110 | ||
118 | stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
111 | stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
119 | stdcall [buf2d_create], buf_0z |
112 | stdcall [buf2d_create], buf_0z |
Line 124... | Line 117... | ||
124 | stdcall mem.Alloc,max_open_file_size |
117 | stdcall mem.Alloc,max_open_file_size |
125 | mov dword[open_file_vox],eax |
118 | mov dword[open_file_vox],eax |
126 | stdcall mem.Alloc,max_open_file_size |
119 | stdcall mem.Alloc,max_open_file_size |
127 | mov dword[open_file_img],eax |
120 | mov dword[open_file_img],eax |
Line 128... | Line 121... | ||
128 | 121 | ||
129 | mcall 26,9 |
122 | mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
Line 130... | Line 123... | ||
130 | mov [last_time],eax |
123 | mov [last_time],eax |
131 | 124 | ||
132 | align 4 |
125 | align 4 |
Line 133... | Line 126... | ||
133 | red_win: |
126 | red_win: |
134 | call draw_window |
127 | call draw_window |
135 | 128 | ||
136 | align 4 |
129 | align 4 |
137 | still: |
130 | still: |
138 | mcall 26,9 |
131 | mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
139 | mov ebx,[last_time] |
132 | mov ebx,[last_time] |
140 | add ebx,10 ;§ ¤¥à¦ª |
133 | add ebx,10 ;§ ¤¥à¦ª |
141 | cmp ebx,eax |
134 | cmp ebx,eax |
142 | jge @f |
135 | jge @f |
143 | mov ebx,eax |
136 | mov ebx,eax |
144 | @@: |
- | |
145 | sub ebx,eax |
- | |
146 | ;cmp ebx,10 ;§ ¤¥à¦ª |
- | |
147 | ;ja timer_funct |
- | |
148 | ;test ebx,ebx |
137 | @@: |
149 | ;jz timer_funct |
138 | sub ebx,eax |
Line 150... | Line 139... | ||
150 | mcall 23 |
139 | mcall SF_WAIT_EVENT_TIMEOUT |
151 | cmp eax,0 |
140 | cmp eax,0 |
Line 164... | Line 153... | ||
164 | timer_funct: |
153 | timer_funct: |
165 | cmp byte[calc],0 |
154 | cmp byte[calc],0 |
166 | je still |
155 | je still |
Line 167... | Line 156... | ||
167 | 156 | ||
168 | pushad |
157 | pushad |
169 | mcall 26,9 |
158 | mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
Line 170... | Line 159... | ||
170 | mov [last_time],eax |
159 | mov [last_time],eax |
171 | 160 | ||
172 | ; ᪨¤ë¢ ¥¬ 㪠§ ⥫¨ ¡ãä¥à®¢ buf_npl_p, buf_npl, buf_npl_n |
161 | ; ᪨¤ë¢ ¥¬ 㪠§ ⥫¨ ¡ãä¥à®¢ buf_npl_p, buf_npl, buf_npl_n |
Line 392... | Line 381... | ||
392 | ret |
381 | ret |
Line 393... | Line 382... | ||
393 | 382 | ||
394 | align 4 |
383 | align 4 |
395 | draw_window: |
384 | draw_window: |
396 | pushad |
385 | pushad |
Line 397... | Line 386... | ||
397 | mcall 12,1 |
386 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
398 | - | ||
399 | ; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
387 | |
400 | xor eax,eax |
388 | ; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
401 | mov edx,[sc.work] |
389 | mov edx,[sc.work] |
Line 402... | Line 390... | ||
402 | or edx,(3 shl 24)+0x30000000 |
390 | or edx,(3 shl 24)+0x30000000 |
403 | mcall ,(20 shl 16)+410,(20 shl 16)+520,,,caption |
391 | mcall SF_CREATE_WINDOW,(20 shl 16)+410,(20 shl 16)+520,,,caption |
404 | 392 | ||
Line 405... | Line 393... | ||
405 | ; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
393 | ; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
406 | mov esi,[sc.work_button] |
394 | mov esi,[sc.work_button] |
407 | mcall 8,(5 shl 16)+20,(5 shl 16)+20,3 |
395 | mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(5 shl 16)+20,3 |
Line 442... | Line 430... | ||
442 | mov edx,12 |
430 | mov edx,12 |
443 | int 0x40 |
431 | int 0x40 |
Line 444... | Line 432... | ||
444 | 432 | ||
445 | ; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
433 | ; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
446 | mov edx,(7 shl 16)+7 ;icon new |
434 | mov edx,(7 shl 16)+7 ;icon new |
Line 447... | Line 435... | ||
447 | mcall 7,[image_data_toolbar],(16 shl 16)+16 |
435 | mcall SF_PUT_IMAGE,[image_data_toolbar],(16 shl 16)+16 |
448 | 436 | ||
449 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
437 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
450 | add edx,(25 shl 16) ;icon open |
438 | add edx,(25 shl 16) ;icon open |
Line 476... | Line 464... | ||
476 | int 0x40 |
464 | int 0x40 |
Line 477... | Line 465... | ||
477 | 465 | ||
478 | call draw_buffers |
466 | call draw_buffers |
Line 479... | Line 467... | ||
479 | call draw_pok |
467 | call draw_pok |
480 | 468 | ||
481 | mcall 12,2 |
469 | mcall SF_REDRAW,SSF_END_DRAW |
Line 482... | Line 470... | ||
482 | popad |
470 | popad |
483 | ret |
471 | ret |
Line 511... | Line 499... | ||
511 | 499 | ||
512 | ;à¨á®¢ ¨¥ ⥪áâ |
500 | ;à¨á®¢ ¨¥ ⥪áâ |
513 | mov ecx,[sc.work_text] |
501 | mov ecx,[sc.work_text] |
514 | or ecx,0x80000000 or (1 shl 30) |
502 | or ecx,0x80000000 or (1 shl 30) |
515 | mov edi,[sc.work] ;梥â ä® ®ª |
503 | mov edi,[sc.work] ;梥â ä® ®ª |
Line 516... | Line 504... | ||
516 | mcall 4,(275 shl 16)+7,,txt_f_size |
504 | mcall SF_DRAW_TEXT,(275 shl 16)+7,,txt_f_size |
Line 517... | Line 505... | ||
517 | 505 | ||
518 | ret |
506 | ret |
519 | 507 | ||
520 | align 4 |
508 | align 4 |
Line 521... | Line 509... | ||
521 | key: |
509 | key: |
522 | mcall 2 |
510 | mcall SF_GET_KEY |
523 | jmp still |
511 | jmp still |
524 | 512 | ||
525 | 513 | ||
526 | align 4 |
514 | align 4 |
527 | button: |
515 | button: |
528 | mcall 17 |
516 | mcall SF_GET_BUTTON |
Line 579... | Line 567... | ||
579 | stdcall [buf2d_delete],buf_npl |
567 | stdcall [buf2d_delete],buf_npl |
580 | stdcall [buf2d_delete],buf_npl_n |
568 | stdcall [buf2d_delete],buf_npl_n |
581 | stdcall mem.Free,[image_data_toolbar] |
569 | stdcall mem.Free,[image_data_toolbar] |
582 | stdcall mem.Free,[open_file_vox] |
570 | stdcall mem.Free,[open_file_vox] |
583 | stdcall mem.Free,[open_file_img] |
571 | stdcall mem.Free,[open_file_img] |
584 | mcall -1 |
572 | mcall SF_TERMINATE_PROCESS |
Line 585... | Line 573... | ||
585 | 573 | ||
586 | 574 | ||
587 | align 4 |
575 | align 4 |
Line 639... | Line 627... | ||
639 | inc edi |
627 | inc edi |
640 | loop @b |
628 | loop @b |
641 | cmp bx,28 ;28=0+1+2+...+7 |
629 | cmp bx,28 ;28=0+1+2+...+7 |
642 | jne .err_open |
630 | jne .err_open |
Line 643... | Line 631... | ||
643 | 631 | ||
644 | mcall 71,1,openfile_path |
632 | mcall SF_SET_CAPTION,1,openfile_path |
645 | stdcall buf2d_vox_obj_get_size,[open_file_vox] |
633 | stdcall buf2d_vox_obj_get_size,[open_file_vox] |
646 | mov [vox_obj_size],eax |
634 | mov [vox_obj_size],eax |
Line 647... | Line 635... | ||
647 | call draw_object |
635 | call draw_object |
Line 1106... | Line 1094... | ||
1106 | m2m buf2d_h,eax |
1094 | m2m buf2d_h,eax |
1107 | stdcall [buf2d_create],edi |
1095 | stdcall [buf2d_create],edi |
1108 | jmp .end_0 |
1096 | jmp .end_0 |
1109 | @@: |
1097 | @@: |
1110 | ; *** ¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à®¢ |
1098 | ; *** ¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à®¢ |
1111 | stdcall [buf2d_resize], edi, eax,eax |
1099 | stdcall [buf2d_resize], edi, eax,eax,1 |
1112 | mov edi,buf_npl_p |
1100 | mov edi,buf_npl_p |
1113 | stdcall [buf2d_resize], edi, eax,eax |
1101 | stdcall [buf2d_resize], edi, eax,eax,1 |
1114 | mov edi,buf_npl_n |
1102 | mov edi,buf_npl_n |
1115 | stdcall [buf2d_resize], edi, eax,eax |
1103 | stdcall [buf2d_resize], edi, eax,eax,1 |
1116 | .end_0: |
1104 | .end_0: |
1117 | mov dword[n_plane],1 |
1105 | mov dword[n_plane],1 |
1118 | mov byte[calc],1 |
1106 | mov byte[calc],1 |
1119 | call get_scale |
1107 | call get_scale |
1120 | call set_borders |
1108 | call set_borders |
Line 1203... | Line 1191... | ||
1203 | stdcall [buf2d_create_f_img], edi,[open_file_img] |
1191 | stdcall [buf2d_create_f_img], edi,[open_file_img] |
1204 | jmp .end_1 |
1192 | jmp .end_1 |
1205 | @@: |
1193 | @@: |
1206 | mov ebx,dword[eax+4] |
1194 | mov ebx,dword[eax+4] |
1207 | mov ecx,dword[eax+8] |
1195 | mov ecx,dword[eax+8] |
1208 | stdcall [buf2d_resize], edi, ebx,ecx ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
1196 | stdcall [buf2d_resize], edi, ebx,ecx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
1209 | imul ecx,ebx |
1197 | imul ecx,ebx |
1210 | lea ecx,[ecx+ecx*2] |
1198 | lea ecx,[ecx+ecx*2] |
1211 | mov edi,buf2d_data |
1199 | mov edi,buf2d_data |
1212 | mov esi,[open_file_img] |
1200 | mov esi,[open_file_img] |
1213 | cld |
1201 | cld |