Scroll to navigation

BCAL(1) User Commands BCAL(1)

NAME

bcal - Perform storage conversions and calculations.

SYNOPSIS

bcal [-c N] [-s bytes] [-h]
[N unit]

DESCRIPTION

bcal (Byte CALculator) is a command-line utility to help with numerical calculations involving data storage units, addressing, base conversions etc.

Features

* convert to IEC/SI standard data storage units * show the address in bytes * show address as LBA:OFFSET * convert CHS to LBA and vice versa * show binary, decimal and hex representation of a number * custom sector size, max heads/cylinder and max sectors/track * minimal dependencies

bcal follows Ubuntu's standard unit conversion and notation policy.

Refer to: https://wiki.ubuntu.com/UnitsPolicy

OPERATIONAL NOTES

N unit: N can be decimal or '0x' prefixed hex value. Unit can be B/KiB/MiB/GiB/TiB/kB/MB/GB/TB following Ubuntu policy. As all of these tokens are unique, unit is case-insensitive.

Fractional bytes do not exist, because they can't be addressed. bcal shows the floor value of non-integer bytes.

Hex and decimal inputs are recognized for all inputs. Binary inputs are supported only with '-c'. This is a provision to convert a binary number to decimal/hex before using it as an input to other operations. No octal support.

Syntax: Prefix hex inputs with '0x', binary inputs with '0b'.

Default values: - sector size: 0x200 (512) - max heads per cylinder: 0x10 (16) - max sectors per track: 0x3f (63)

CHS and LBA inputs for format conversion are hyphen separated. The syntax is: - LBA: 'lLBA-MAX_HEAD-MAX_SECTOR' [NOTE: LBA starts with 'l' (case ignored)] - CHS: 'cC-H-S-MAX_HEAD-MAX_SECTOR' [NOTE: CHS starts with 'c' (case ignored)] Any unspecified value, including the one preceding the first '-' to the one following the last '-', is considered '0'.

No negative numbers allowed. Input limits are 'unsigned long long' and 'double'.

OPTIONS

-c=N
Show decimal, binary and hex representation of N. Use prefix '0b' for binary and '0x' for hex. N must be non-negative.
-f=FORMAT
Convert CHS to LBA or LBA to CHS. FORMAT is hyphen-separated representation of LBA or CHS. Decimal or '0x' prefixed hex values are accepted.

LBA: lLBA-MAX_HEAD-MAX_SECTOR (starts with 'l')
CHS: cC-H-S-MAX_HEAD-MAX_SECTOR (starts with 'c')

Omitted values, (other than MAX_HEAD and MAX_SECTOR) are considered 0. Default MAX_HEAD: 16, default MAX_SECTOR: 63.

-s=bytes
Sector size in bytes. Default value is 512. Decimal and '0x' prefixed hex values accepted.
-h
Show program help and exit.

EXAMPLES

1.
Convert storage capacity to other units and get address, LBA.

$ bcal 20140115 b
$ bcal 0x1335053 B
$ bcal 0xaabbcc kb
$ bcal 0xdef Gib
Note that the units are case-insensitive.
    
2.
Convert storage capacity, set sector size to 4096 to calculate LBA.

$ bcal 0xaabbcc kb -s 4096
    
3.
Convert LBA to CHS.

$ bcal -f l500
$ bcal -f l0x600-18-0x7e
$ bcal -f l0x300-0x12-0x7e
    
4.
Convert CHS to LBA.

$ bcal -f c10-10-10
$ bcal -f c0x10-0x10-0x10
$ bcal -f c0x10-10-2-0x12
$ bcal -f c-10-2-0x12
$ bcal -f c0x10-10--0x12
    
5.
Show binary, decimal and hex representations of a number.

$ bcal -c 20140115
$ bcal -c 0b1001100110101000001010011
$ bcal -c 0x1335053
    

AUTHORS

Arun Prakash Jana <engineerarun@gmail.com>

HOME

https://github.com/jarun/bcal

REPORTING BUGS

https://github.com/jarun/bcal/issues

LICENSE

Copyright © 2016 Arun Prakash Jana <engineerarun@gmail.com>

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Oct 2016 Version 1.4