chs

Cylinder-Head-Sector Address (CHS)

  • chs

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
chs
401.1.07 years ago10 years agoMinified + gzip package size for chs in KB

Readme

CHS (Cylinder-Head-Sector) Address
npm npm license npm downloads build status
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 chs
Usage
// 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
* [new CHS([cylinder], [head], [sector])](#new_CHS_new)
* _instance_
    * [.cylinder](#CHS+cylinder) : <code>Number</code>
    * [.head](#CHS+head) : <code>Number</code>
    * [.sector](#CHS+sector) : <code>Number</code>
    * [.buffer](#CHS+buffer) : <code>Buffer</code>
    * [.setLBA(lba, hpt, spt)](#CHS+setLBA) ⇒ [<code>CHS</code>](#CHS)
    * [.getLBA(hpt, spt)](#CHS+getLBA) ⇒ <code>Number</code>
    * [.toLBA(hpt, spt)](#CHS+toLBA) ⇒ <code>Number</code>
    * [.clone()](#CHS+clone) ⇒ [<code>CHS</code>](#CHS)
    * [.copy(target)](#CHS+copy) ⇒ [<code>CHS</code>](#CHS)
    * [.parse(buffer, [offset])](#CHS+parse) ⇒ [<code>CHS</code>](#CHS)
    * [.write(buffer, [offset])](#CHS+write) ⇒ <code>Buffer</code>
    * [.toBuffer()](#CHS+toBuffer) ⇒ <code>Buffer</code>
    * [.fromNumber(value)](#CHS+fromNumber) ⇒ [<code>CHS</code>](#CHS)
    * [.toNumber()](#CHS+toNumber) ⇒ <code>Number</code>
* _static_
    * [.fromBuffer(buffer, [offset])](#CHS.fromBuffer) ⇒ [<code>CHS</code>](#CHS)
    * [.fromLBA(lba, hpt, spt)](#CHS.fromLBA) ⇒ [<code>CHS</code>](#CHS)

new CHS(cylinder, head, sector)

Cylinder-Head-Sector Address
Params

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

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