2018-08-11 00:07:50 +00:00
|
|
|
package com.bytezone.diskbrowser.disk;
|
|
|
|
|
|
|
|
public abstract class DiskReader
|
|
|
|
{
|
|
|
|
static final int BLOCK_SIZE = 256;
|
|
|
|
static final byte[] dataPrologue = { (byte) 0xD5, (byte) 0xAA, (byte) 0xAD };
|
|
|
|
|
2018-08-11 04:12:21 +00:00
|
|
|
final int sectorsPerTrack;
|
2018-08-11 00:07:50 +00:00
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
// constructor
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
|
|
|
|
DiskReader (int sectorsPerTrack)
|
|
|
|
{
|
|
|
|
this.sectorsPerTrack = sectorsPerTrack;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
// abstract functions
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
|
2018-08-13 09:17:05 +00:00
|
|
|
abstract byte[] decodeSector (byte[] buffer) throws DiskNibbleException;
|
2018-08-11 00:07:50 +00:00
|
|
|
|
|
|
|
abstract byte[] encodeSector (byte[] buffer);
|
|
|
|
|
2018-08-13 09:17:05 +00:00
|
|
|
abstract void storeBuffer (RawDiskSector diskSector, byte[] diskBuffer);
|
2018-08-11 00:07:50 +00:00
|
|
|
|
|
|
|
abstract int expectedDataSize ();
|
|
|
|
}
|