Subversion Repositories Kolibri OS

Rev

Rev 9461 | Rev 9726 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9461 Rev 9691
Line 397... Line 397...
397
 
397
 
398
	mov	[size_table],dword '----'
398
	mov	[size_table],dword '----'
399
	mov	[size_table+4],word '- '
399
	mov	[size_table+4],word '- '
400
	jmp	.date
400
	jmp	.date
-
 
401
;--------------------------------------
-
 
402
.qword_div:
-
 
403
	mov	eax,[edx-40+32]
-
 
404
	mov	ebx,[edx-40+32+4]
-
 
405
@@:	; /1024
-
 
406
	shrd	eax,ebx,5 ; /32
-
 
407
	shr	ebx,5 ; /32
-
 
408
	shrd	eax,ebx,5 ; /32
-
 
409
	shr	ebx,5 ; /32
-
 
410
	dec	ecx
-
 
411
	jnz	@b
-
 
412
; /(1024*1024)
-
 
413
	shr	eax,20
-
 
414
	test	eax,eax
-
 
415
	ret
401
;--------------------------------------
416
;--------------------------------------
-
 
417
.copy_size:
-
 
418
;/0x1000000000000000 - EB
-
 
419
;/0x4000000000000 - PB
402
.copy_size:
420
;/0x10000000000 - TB
403
;/0x40000000 - Gb
421
;/0x40000000 - GB
404
;/0x100000 - Mb
422
;/0x100000 - MB
405
;/0x400 Kb
423
;/0x400 - KB
406
	mov	[size_table],dword '    '
424
	mov	[size_table],dword '    '
407
	mov	[size_table+4],word '  '
425
	mov	[size_table+4],word '  '
408
	push	ebx
426
	push	ebx edx
409
	push	edx
-
 
410
	mov	eax,[edx-40+32]
427
	push	ecx
411
	mov	ebx,0x40000000
428
	mov	ecx,4
412
	xor	edx,edx
429
	call	.qword_div
413
	div	ebx
-
 
414
	cmp	eax,0
430
	pop	ecx
Line 415... Line 431...
415
	je	@f
431
	jz	@f
416
 
432
 
417
	mov	ebx,size_table
433
	mov	ebx,size_table
418
	call	decimal_string_4
434
	call	decimal_string_4
419
	mov	[ebx],byte 'G'
435
	mov	[ebx],byte 'E' ; Exa Byte
420
	jmp	.size_convert_end
436
	jmp	.size_convert_end
421
;--------------------------------------
437
;--------------------------------------
422
@@:
-
 
423
	mov	edx,[esp]
438
@@:
424
	mov	eax,[edx-40+32]
439
	push	ecx
425
	mov	ebx,0x100000
440
	mov	ecx,3
426
	xor	edx,edx
-
 
427
	div	ebx
441
	call	.qword_div
Line 428... Line 442...
428
	cmp	eax,0
442
	pop	ecx
429
	je	@f
443
	jz	@f
430
 
444
 
431
	mov	ebx,size_table
445
	mov	ebx,size_table
432
	call	decimal_string_4
446
	call	decimal_string_4
433
	mov	[ebx],byte 'M'
447
	mov	[ebx],byte 'P' ; Peta Byte
-
 
448
	jmp	.size_convert_end
434
	jmp	.size_convert_end
449
;--------------------------------------
435
;--------------------------------------
450
@@:
-
 
451
	push	ecx
-
 
452
	mov	ecx,2
-
 
453
	call	.qword_div
436
@@:
454
	pop	ecx
-
 
455
	jz	@f
-
 
456
 
-
 
457
	mov	ebx,size_table
-
 
458
	call	decimal_string_4
-
 
459
	mov	[ebx],byte 'T' ; Tera Byte
437
	mov	edx,[esp]
460
	jmp	.size_convert_end
438
	mov	eax,[edx-40+32]
461
;--------------------------------------
-
 
462
@@:
439
	mov	ebx,0x400
463
	push	ecx
440
	xor	edx,edx
464
	mov	ecx,1
Line 441... Line 465...
441
	div	ebx
465
	call	.qword_div
442
	cmp	eax,0
466
	pop	ecx
443
	je	@f
467
	jz	@f
444
 
468
 
445
	mov	ebx,size_table
469
	mov	ebx,size_table
446
	call	decimal_string_4
470
	call	decimal_string_4
447
	mov	[ebx],byte 'K'
-
 
448
	jmp	.size_convert_end
471
	mov	[ebx],byte 'G' ; Giga Byte
-
 
472
	jmp	.size_convert_end
-
 
473
;--------------------------------------
-
 
474
@@:
-
 
475
	mov	eax,[edx-40+32]
-
 
476
	mov	ebx,eax
-
 
477
	shr	eax,20 ; /(1024*1024)
-
 
478
	test	eax,eax
-
 
479
	jz	@f
-
 
480
 
-
 
481
	mov	ebx,size_table
-
 
482
	call	decimal_string_4
-
 
483
	mov	[ebx],byte 'M' ; Mega Byte
-
 
484
	jmp	.size_convert_end
-
 
485
;--------------------------------------
-
 
486
@@:
-
 
487
	mov	eax,ebx
-
 
488
	shr	eax,10 ; /1024
-
 
489
	test	eax,eax
-
 
490
	jz	@f
-
 
491
 
-
 
492
	mov	ebx,size_table
-
 
493
	call	decimal_string_4
-
 
494
	mov	[ebx],byte 'K' ; Kilo Byte
449
;--------------------------------------
495
	jmp	.size_convert_end
450
@@:
496
;--------------------------------------
451
	mov	edx,[esp]
497
@@:
452
	mov	eax,[edx-40+32]
498
	mov	eax,ebx
453
;.size_convert:
499
;.size_convert:
Line 471... Line 517...
471
	std
517
	std
472
	rep	movsb
518
	rep	movsb
473
	jmp	@r
519
	jmp	@r
474
;--------------------------------------
520
;--------------------------------------
475
@@:
521
@@:
476
	pop	edx
-
 
477
	pop	ebx
522
	pop	edx ebx
478
;--------------------------------------
523
;--------------------------------------
479
.date:
524
.date:
480
	xor	eax,eax
525
	xor	eax,eax
481
	mov	al,[edx-40+28]
526
	mov	al,[edx-40+28]
482
	push	ebx
527
	push	ebx