Subversion Repositories Kolibri OS

Rev

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: