CHS (Cylinder-Head-Sector) Address
CHS addressing is an early method for giving addresses to each physical block of data on a hard disk drive, identifying individual sectors on a disk by their position in a track, where the track is determined by the head and cylinder numbers.
Install via npm
$ npm install --save chsUsage
// Load module
var CHS = require( 'chs' )// Create a CHS address
var addr = new CHS( 5, 20, 8 )// Properties:
var c = addr.cylinder
var h = addr.head
var s = addr.sector// Convert to an LBA (Logical Block Address)
var lba = addr.toLBA( headsPerTrack, sectorsPerTrack )
var lba = addr.toLBA( 12, 32 )// Set it to an LBA
addr.setLBA( lba, headsPerTrack, sectorsPerTrack )
addr.setLBA( 3150, 16, 63 )// Get it as a buffer
var buf = addr.buffer
var buf = addr.toBuffer()// Set from buffer
addr.buffer = new Buffer([ 0xFE, 0xFF, 0xFF ])
addr.parse( new Buffer([ 0xFE, 0xFF, 0xFF ]) )API Reference
CHS
Kind: global class
- CHS
- new CHS([cylinder], [head], [sector])
- instance
- .cylinder :
Number - .head :
Number - .sector :
Number - .buffer :
Buffer - .setLBA(lba, hpt, spt) ⇒
CHS - .getLBA(hpt, spt) ⇒
Number - .toLBA(hpt, spt) ⇒
Number - .clone() ⇒
CHS - .copy(target) ⇒
CHS - .parse(buffer, [offset]) ⇒
CHS - .write(buffer, [offset]) ⇒
Buffer - .toBuffer() ⇒
Buffer - .fromNumber(value) ⇒
CHS - .toNumber() ⇒
Number
- .cylinder :
- static
new CHS([cylinder], [head], [sector])
Cylinder-Head-Sector Address
Params
- [cylinder]
Number|Buffer= 1023 - [head]
Number= 254 - [sector]
Number= 63
chS.cylinder : Number
Cylinder
Kind: instance property of CHS
chS.head : Number
Head
Kind: instance property of CHS
chS.sector : Number
Sector
Kind: instance property of CHS
chS.buffer : Buffer
Get/set values from/to a Buffer
Kind: instance property of CHS
chS.setLBA(lba, hpt, spt) ⇒ CHS
Set CHS to a Logical Block Address (LBA)
Kind: instance method of CHS
Params
- lba
Number- Logical Block Address - hpt
Number- Heads per Track - spt
Number- Sectors per Track
chS.getLBA(hpt, spt) ⇒ Number
Get the Logical Block Address (LBA) corresponding to the given disk geometry
Kind: instance method of CHS
Returns: Number - lba
Params
- hpt
Number- Heads per Track - spt
Number- Sectors per Track
chS.toLBA(hpt, spt) ⇒ Number
Kind: instance method of CHS
Returns: Number - lba
See: #getLBA()
Params
- hpt
Number- Heads per Track - spt
Number- Sectors per Track
chS.clone() ⇒ CHS
Clone the CHS Address
Kind: instance method of CHS
chS.copy(target) ⇒ CHS
Copy this address to a target address
Kind: instance method of CHS
Params
- target
CHS
chS.parse(buffer, [offset]) ⇒ CHS
Parse a given Buffer
Kind: instance method of CHS
Params
- buffer
Buffer - [offset]
Number= 0
chS.write(buffer, [offset]) ⇒ Buffer
Write the CHS address to a given buffer
Kind: instance method of CHS
Params
- buffer
Buffer - [offset]
Number= 0
chS.toBuffer() ⇒ Buffer
Create a Buffer representation of the CHS Address
Kind: instance method of CHS
chS.fromNumber(value) ⇒ CHS
Set the CHS address from its 24bit integer value
Kind: instance method of CHS
Params
- value
Number
chS.toNumber() ⇒ Number
Get the 24bit integer value of the CHS address
Kind: instance method of CHS
CHS.fromBuffer(buffer, [offset]) ⇒ CHS
Create a CHS Address from a given buffer
Kind: static method of CHS
Params
- buffer
Buffer - [offset]
Number= 0
CHS.fromLBA(lba, hpt, spt) ⇒ CHS
Create a CHS Address from a Logical Block Address (LBA)
Kind: static method of CHS
Params
- lba
Number- Logical Block Address - hpt
Number- Heads per Track - spt
Number- Sectors per Track