This commit is contained in:
Denis Molony 2019-08-03 17:49:10 +10:00
parent 80fcc09ab4
commit 5350214271
2 changed files with 15 additions and 58 deletions

View File

@ -1,6 +1,8 @@
package com.bytezone.diskbrowser.nib;
// -----------------------------------------------------------------------------------//
public class DiskReader13Sector extends DiskReader
// -----------------------------------------------------------------------------------//
{
private static final int RAW_BUFFER_SIZE = 410;
private static final int BUFFER_WITH_CHECKSUM_SIZE = RAW_BUFFER_SIZE + 1;
@ -11,20 +13,16 @@ public class DiskReader13Sector extends DiskReader
private final ByteTranslator byteTranslator = new ByteTranslator5and3 ();
// ---------------------------------------------------------------------------------//
// constructor
// ---------------------------------------------------------------------------------//
DiskReader13Sector ()
// ---------------------------------------------------------------------------------//
{
super (13);
}
// ---------------------------------------------------------------------------------//
// decodeSector
// ---------------------------------------------------------------------------------//
@Override
byte[] decodeSector (byte[] buffer, int offset) throws DiskNibbleException
// ---------------------------------------------------------------------------------//
{
byte[] decodedBuffer = new byte[BLOCK_SIZE];
// int offset = 0;
@ -78,35 +76,18 @@ public class DiskReader13Sector extends DiskReader
}
// ---------------------------------------------------------------------------------//
// encodeSector
// ---------------------------------------------------------------------------------//
@Override
byte[] encodeSector (byte[] buffer)
// ---------------------------------------------------------------------------------//
{
System.out.println ("encodeSector() not written");
return null;
}
// ---------------------------------------------------------------------------------//
// storeBuffer
// ---------------------------------------------------------------------------------//
// @Override
// void storeBuffer (RawDiskSector diskSector, byte[] diskBuffer)
// {
// DiskAddressField addressField = diskSector.addressField;
// byte[] sectorBuffer = diskSector.buffer;
// int offset = addressField.track * 0x0D00 + addressField.sector * 256;
// System.arraycopy (sectorBuffer, 0, diskBuffer, offset, 256);
// }
// ---------------------------------------------------------------------------------//
// expectedDataSize
// ---------------------------------------------------------------------------------//
@Override
int expectedDataSize ()
// ---------------------------------------------------------------------------------//
{
return BUFFER_WITH_CHECKSUM_SIZE;
}

View File

@ -1,6 +1,8 @@
package com.bytezone.diskbrowser.nib;
// -----------------------------------------------------------------------------------//
public class DiskReader16Sector extends DiskReader
// -----------------------------------------------------------------------------------//
{
private static final int RAW_BUFFER_SIZE = 342;
private static final int BUFFER_WITH_CHECKSUM_SIZE = RAW_BUFFER_SIZE + 1;
@ -13,24 +15,17 @@ public class DiskReader16Sector extends DiskReader
private final ByteTranslator byteTranslator = new ByteTranslator6and2 ();
private static int[] interleave =
{ 0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15 };
// ---------------------------------------------------------------------------------//
// constructor
// ---------------------------------------------------------------------------------//
DiskReader16Sector ()
// ---------------------------------------------------------------------------------//
{
super (16);
}
// ---------------------------------------------------------------------------------//
// decodeSector
// ---------------------------------------------------------------------------------//
@Override
byte[] decodeSector (byte[] buffer, int offset) throws DiskNibbleException
// ---------------------------------------------------------------------------------//
{
// rearrange 342 bytes into 256
byte[] decodedBuffer = new byte[BLOCK_SIZE]; // 256 bytes
@ -66,13 +61,11 @@ public class DiskReader16Sector extends DiskReader
return decodedBuffer;
}
// ---------------------------------------------------------------------------------//
// encodeSector
// ---------------------------------------------------------------------------------//
// convert 256 data bytes into 342 translated bytes plus a checksum
// ---------------------------------------------------------------------------------//
@Override
byte[] encodeSector (byte[] buffer)
// ---------------------------------------------------------------------------------//
{
byte[] encodedBuffer = new byte[BUFFER_WITH_CHECKSUM_SIZE];
@ -112,35 +105,18 @@ public class DiskReader16Sector extends DiskReader
return encodedBuffer;
}
// ---------------------------------------------------------------------------------//
// reverse
// ---------------------------------------------------------------------------------//
// reverse 2 bits - 0 <= bits <= 3
// ---------------------------------------------------------------------------------//
private static int reverse (int bits)
// ---------------------------------------------------------------------------------//
{
return bits == 1 ? 2 : bits == 2 ? 1 : bits;
}
// ---------------------------------------------------------------------------------//
// storeBuffer
// ---------------------------------------------------------------------------------//
// @Override
// void storeBuffer (RawDiskSector diskSector, byte[] diskBuffer)
// {
// DiskAddressField addressField = diskSector.addressField;
// byte[] sectorBuffer = diskSector.buffer;
// int offset = addressField.track * 0x1000 + interleave[addressField.sector] * 256;
// System.arraycopy (sectorBuffer, 0, diskBuffer, offset, 256);
// }
// ---------------------------------------------------------------------------------//
// expectedDataSize
// ---------------------------------------------------------------------------------//
@Override
int expectedDataSize ()
// ---------------------------------------------------------------------------------//
{
return BUFFER_WITH_CHECKSUM_SIZE;
}