dmolony-DiskBrowser/src/com/bytezone/diskbrowser/nib/DiskAddressField.java

41 lines
1.2 KiB
Java

package com.bytezone.diskbrowser.nib;
class DiskAddressField
{
int track, sector, volume, checksum;
// ---------------------------------------------------------------------------------//
// constructor
// ---------------------------------------------------------------------------------//
DiskAddressField (byte[] buffer)
{
volume = decode4and4 (buffer, 0);
track = decode4and4 (buffer, 2);
sector = decode4and4 (buffer, 4);
checksum = decode4and4 (buffer, 6);
}
// ---------------------------------------------------------------------------------//
// decode4and4
// ---------------------------------------------------------------------------------//
private int decode4and4 (byte[] buffer, int offset)
{
int odds = ((buffer[offset] & 0xFF) << 1) | 0x01;
int evens = buffer[offset + 1] & 0xFF;
return odds & evens;
}
// ---------------------------------------------------------------------------------//
// toString
// ---------------------------------------------------------------------------------//
@Override
public String toString ()
{
return String.format ("[volume: %02X, track: %02X, sector: %02X, checksum: %02X]",
volume, track, sector, checksum);
}
}