Rev 3969 | Rev 6175 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3969 | Rev 5388 | ||
---|---|---|---|
Line 11... | Line 11... | ||
11 | 11 | ||
12 | include '../../../../programs/macros.inc' |
12 | include '../../../../programs/macros.inc' |
13 | include '../../../../programs/proc32.inc' |
13 | include '../../../../programs/proc32.inc' |
14 | include '../../../../programs/develop/libraries/box_lib/load_lib.mac' |
14 | include '../../../../programs/develop/libraries/box_lib/load_lib.mac' |
- | 15 | include '../../../../programs/dll.inc' |
|
Line 15... | Line 16... | ||
15 | include '../../../../programs/dll.inc' |
16 | include '../trunk/str.inc' |
16 | 17 | ||
17 | vox_offs_tree_table equ 4 |
18 | vox_offs_tree_table equ 4 |
18 | vox_offs_data equ 12 |
19 | vox_offs_data equ 12 |
Line 19... | Line 20... | ||
19 | txt_buf rb 8 |
20 | txt_buf rb 8 |
20 | include '../trunk/vox_rotate.inc' |
21 | include '../trunk/vox_rotate.inc' |
Line 21... | Line 22... | ||
21 | 22 | ||
22 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
23 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
23 | caption db 'Voxel creator 03.10.13',0 ;¯®¤¯¨áì ®ª |
24 | caption db 'Voxel creator 29.01.15',0 ;¯®¤¯¨áì ®ª |
24 | 25 | ||
Line 395... | Line 396... | ||
395 | pushad |
396 | pushad |
396 | mcall 12,1 |
397 | mcall 12,1 |
Line 397... | Line 398... | ||
397 | 398 | ||
398 | ; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
399 | ; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
399 | xor eax,eax |
- | |
400 | mov ebx,(20 shl 16)+410 |
- | |
401 | mov ecx,(20 shl 16)+520 |
400 | xor eax,eax |
402 | mov edx,[sc.work] |
401 | mov edx,[sc.work] |
403 | or edx,(3 shl 24)+0x30000000 |
402 | or edx,(3 shl 24)+0x30000000 |
404 | mov edi,caption |
- | |
Line 405... | Line 403... | ||
405 | int 0x40 |
403 | mcall ,(20 shl 16)+410,(20 shl 16)+520,,,caption |
406 | - | ||
407 | ; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
- | |
408 | mov eax,8 |
- | |
409 | mov ebx,(5 shl 16)+20 |
- | |
410 | mov ecx,(5 shl 16)+20 |
404 | |
411 | mov edx,3 |
405 | ; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
Line 412... | Line 406... | ||
412 | mov esi,[sc.work_button] |
406 | mov esi,[sc.work_button] |
413 | int 0x40 |
407 | mcall 8,(5 shl 16)+20,(5 shl 16)+20,3 |
414 | 408 | ||
Line 447... | Line 441... | ||
447 | add ebx,25 shl 16 |
441 | add ebx,25 shl 16 |
448 | mov edx,12 |
442 | mov edx,12 |
449 | int 0x40 |
443 | int 0x40 |
Line 450... | Line 444... | ||
450 | 444 | ||
451 | ; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
- | |
452 | mov eax,7 |
- | |
453 | mov ebx,[image_data_toolbar] |
- | |
454 | mov ecx,(16 shl 16)+16 |
445 | ; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
455 | mov edx,(7 shl 16)+7 ;icon new |
446 | mov edx,(7 shl 16)+7 ;icon new |
Line 456... | Line 447... | ||
456 | int 0x40 |
447 | mcall 7,[image_data_toolbar],(16 shl 16)+16 |
457 | 448 | ||
458 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
449 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
459 | add edx,(25 shl 16) ;icon open |
450 | add edx,(25 shl 16) ;icon open |
Line 502... | Line 493... | ||
502 | 493 | ||
503 | align 4 |
494 | align 4 |
504 | draw_pok: |
495 | draw_pok: |
505 | ;®¡®¢«¥¨¥ ¯®¤¯¨á¨ à §¬¥à ä ©« |
496 | ;®¡®¢«¥¨¥ ¯®¤¯¨á¨ à §¬¥à ä ©« |
506 | mov edi,txt_f_size.size |
- | |
507 | mov dword[edi],0 |
- | |
508 | mov dword[edi+4],0 |
497 | mov edi,txt_f_size.size |
509 | mov eax,dword[vox_obj_size] |
498 | mov eax,dword[vox_obj_size] |
510 | mov ebx,txt_pref |
499 | mov ebx,txt_pref |
511 | .cycle: |
500 | .cycle: |
512 | cmp eax,1024 |
501 | cmp eax,1024 |
513 | jl @f |
502 | jl @f |
514 | shr eax,10 |
503 | shr eax,10 |
515 | add ebx,4 |
504 | add ebx,4 |
516 | jmp .cycle |
505 | jmp .cycle |
Line 517... | Line 506... | ||
517 | @@: |
506 | @@: |
518 | 507 | ||
519 | call convert_int_to_str |
508 | stdcall convert_int_to_str, 16 |
Line 520... | Line 509... | ||
520 | stdcall str_cat, edi,ebx |
509 | stdcall str_cat, edi,ebx |
521 | stdcall str_cat, edi,txt_space ;§ ¢¥àè î騩 ¯à®¡¥« |
- | |
522 | 510 | stdcall str_cat, edi,txt_space ;§ ¢¥àè î騩 ¯à®¡¥« |
|
523 | mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ |
511 | |
524 | mov ebx,(275 shl 16)+7 |
- | |
525 | mov ecx,[sc.work_text] |
512 | ;à¨á®¢ ¨¥ ⥪áâ |
526 | or ecx,0x80000000 or (1 shl 30) |
513 | mov ecx,[sc.work_text] |
Line 527... | Line 514... | ||
527 | mov edx,txt_f_size |
514 | or ecx,0x80000000 or (1 shl 30) |
Line 528... | Line 515... | ||
528 | mov edi,[sc.work] ;梥â ä® ®ª |
515 | mov edi,[sc.work] ;梥â ä® ®ª |
529 | int 0x40 |
516 | mcall 4,(275 shl 16)+7,,txt_f_size |
Line 1235... | Line 1222... | ||
1235 | .end_open_file: |
1222 | .end_open_file: |
1236 | popad |
1223 | popad |
1237 | ret |
1224 | ret |
1238 | endp |
1225 | endp |
Line 1239... | Line -... | ||
1239 | - | ||
1240 | ;input: |
- | |
1241 | ; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
- | |
1242 | ;output: |
- | |
1243 | ; eax - ç¨á«® |
- | |
1244 | align 4 |
- | |
1245 | proc conv_str_to_int, buf:dword |
- | |
1246 | xor eax,eax |
- | |
1247 | push ebx ecx esi |
- | |
1248 | xor ebx,ebx |
- | |
1249 | mov esi,[buf] |
- | |
1250 | ;®¯à¥¤¥«¥¨¥ ®âà¨æ ⥫ìëå ç¨á¥« |
- | |
1251 | xor ecx,ecx |
- | |
1252 | inc ecx |
- | |
1253 | cmp byte[esi],'-' |
- | |
1254 | jne @f |
- | |
1255 | dec ecx |
- | |
1256 | inc esi |
- | |
1257 | @@: |
- | |
1258 | - | ||
1259 | cmp word[esi],'0x' |
- | |
1260 | je .load_digit_16 |
- | |
1261 | - | ||
1262 | .load_digit_10: ;áç¨âë¢ ¨¥ 10-â¨çëå æ¨äà |
- | |
1263 | mov bl,byte[esi] |
- | |
1264 | cmp bl,'0' |
- | |
1265 | jl @f |
- | |
1266 | cmp bl,'9' |
- | |
1267 | jg @f |
- | |
1268 | sub bl,'0' |
- | |
1269 | imul eax,10 |
- | |
1270 | add eax,ebx |
- | |
1271 | inc esi |
- | |
1272 | jmp .load_digit_10 |
- | |
1273 | jmp @f |
- | |
1274 | - | ||
1275 | .load_digit_16: ;áç¨âë¢ ¨¥ 16-à¨çëå æ¨äà |
- | |
1276 | add esi,2 |
- | |
1277 | .cycle_16: |
- | |
1278 | mov bl,byte[esi] |
- | |
1279 | cmp bl,'0' |
- | |
1280 | jl @f |
- | |
1281 | cmp bl,'f' |
- | |
1282 | jg @f |
- | |
1283 | cmp bl,'9' |
- | |
1284 | jle .us1 |
- | |
1285 | cmp bl,'A' |
- | |
1286 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'9' ¨ <'A' |
- | |
1287 | .us1: ;á®áâ ¢®¥ ãá«®¢¨¥ |
- | |
1288 | cmp bl,'F' |
- | |
1289 | jle .us2 |
- | |
1290 | cmp bl,'a' |
- | |
1291 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'F' ¨ <'a' |
- | |
1292 | sub bl,32 ;¯¥à¥¢®¤¨¬ ᨬ¢®«ë ¢ ¢¥à娩 ॣ¨áâà, ¤«ï ã¯à®é¥¨ï ¨å ¯®á«¥¤ã饩 ®¡à ¡®âª¨ |
- | |
1293 | .us2: ;á®áâ ¢®¥ ãá«®¢¨¥ |
- | |
1294 | sub bl,'0' |
- | |
1295 | cmp bl,9 |
- | |
1296 | jle .cor1 |
- | |
1297 | sub bl,7 ;convert 'A' to '10' |
- | |
1298 | .cor1: |
- | |
1299 | shl eax,4 |
- | |
1300 | add eax,ebx |
- | |
1301 | inc esi |
- | |
1302 | jmp .cycle_16 |
- | |
1303 | @@: |
- | |
1304 | cmp ecx,0 ;¥á«¨ ç¨á«® ®âà¨æ ⥫쮥 |
- | |
1305 | jne @f |
- | |
1306 | sub ecx,eax |
- | |
1307 | mov eax,ecx |
- | |
1308 | @@: |
- | |
1309 | pop esi ecx ebx |
- | |
1310 | ret |
- | |
1311 | endp |
- | |
1312 | - | ||
1313 | align 4 |
- | |
1314 | proc str_cat uses eax ecx edi esi, str1:dword, str2:dword |
- | |
1315 | mov esi,dword[str2] |
- | |
1316 | stdcall str_len,esi |
- | |
1317 | mov ecx,eax |
- | |
1318 | inc ecx |
- | |
1319 | mov edi,dword[str1] |
- | |
1320 | stdcall str_len,edi |
- | |
1321 | add edi,eax |
- | |
1322 | cld |
- | |
1323 | repne movsb |
- | |
1324 | ret |
- | |
1325 | endp |
- | |
1326 | - | ||
1327 | ;output: |
- | |
1328 | ; eax = strlen |
- | |
1329 | align 4 |
- | |
1330 | proc str_len, str1:dword |
- | |
1331 | mov eax,[str1] |
- | |
1332 | @@: |
- | |
1333 | cmp byte[eax],0 |
- | |
1334 | je @f |
- | |
1335 | inc eax |
- | |
1336 | jmp @b |
- | |
1337 | @@: |
- | |
1338 | sub eax,[str1] |
- | |
1339 | ret |
- | |
1340 | endp |
- | |
1341 | 1226 | ||
1342 | msgbox_0: |
1227 | msgbox_0: |
1343 | db 1,0 |
1228 | db 1,0 |
1344 | db '¨¬ ¨¥',0 |
1229 | db '¨¬ ¨¥',0 |
1345 | db ' §¬¥à ¢¥à奣® ¨§®¡à ¦¥¨ï ¥ ª®à¥ªâë©',0 |
1230 | db ' §¬¥à ¢¥à奣® ¨§®¡à ¦¥¨ï ¥ ª®à¥ªâë©',0 |
Line 1689... | Line 1574... | ||
1689 | buf_vox: |
1574 | buf_vox: |
1690 | db 6,7,4,3 ;w,h,h_osn,n |
1575 | db 6,7,4,3 ;w,h,h_osn,n |
1691 | rb BUF_STRUCT_SIZE*(2+1) |
1576 | rb BUF_STRUCT_SIZE*(2+1) |
Line 1692... | Line -... | ||
1692 | - | ||
1693 | - | ||
1694 | - | ||
1695 | ;input: |
- | |
1696 | ; eax = value |
- | |
1697 | ; edi = string buffer |
1577 | |
1698 | ;output: |
- | |
1699 | align 4 |
- | |
1700 | convert_int_to_str: |
- | |
1701 | pushad |
- | |
1702 | cld |
- | |
1703 | mov dword[edi+1],0 |
- | |
1704 | mov word[edi+5],0 |
- | |
1705 | call .str |
- | |
1706 | popad |
- | |
1707 | ret |
- | |
1708 | - | ||
1709 | align 4 |
- | |
1710 | .str: |
- | |
1711 | mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
- | |
1712 | ;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
- | |
1713 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
- | |
1714 | jb @f |
- | |
1715 | xor edx,edx ;®ç¨áâ¨âì edx |
- | |
1716 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
- | |
1717 | push edx ;¯®«®¦¨âì ¢ á⥪ |
- | |
1718 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
- | |
1719 | call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
- | |
1720 | pop eax |
- | |
1721 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
- | |
1722 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
- | |
1723 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
- | |
1724 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
1578 | |
1725 | 1579 | align 16 |
|
1726 | i_end: |
1580 | i_end: |
1727 | rb 2048 |
1581 | rb 2048 |
1728 | thread: |
1582 | thread: |