mirror of
https://github.com/AppleCommander/AppleCommander.git
synced 2025-08-07 23:25:09 +00:00
With the new image order and layout, needed to fix these specialized
formats.
This commit is contained in:
@@ -100,4 +100,29 @@ public class OzDosFormatDisk extends DosFormatDisk {
|
||||
getImageOrder().format();
|
||||
format(31, 50, 32);
|
||||
}
|
||||
/**
|
||||
* Retrieve the specified sector.
|
||||
*/
|
||||
public byte[] readSector(int track, int sector) throws IllegalArgumentException {
|
||||
byte[] blockData = readBlock(getBlockNumber(track,sector));
|
||||
byte[] sectorData = new byte[SECTOR_SIZE];
|
||||
System.arraycopy(blockData, logicalOffset, sectorData, 0, SECTOR_SIZE);
|
||||
return sectorData;
|
||||
}
|
||||
/**
|
||||
* Write the specified sector.
|
||||
*/
|
||||
public void writeSector(int track, int sector, byte[] bytes)
|
||||
throws IllegalArgumentException {
|
||||
int blockNumber = getBlockNumber(track,sector);
|
||||
byte[] blockData = readBlock(blockNumber);
|
||||
System.arraycopy(bytes, 0, blockData, logicalOffset, SECTOR_SIZE);
|
||||
getImageOrder().writeBlock(blockNumber, blockData);
|
||||
}
|
||||
/**
|
||||
* Compute the block number.
|
||||
*/
|
||||
protected int getBlockNumber(int track, int sector) {
|
||||
return (track * 32) + sector;
|
||||
}
|
||||
}
|
||||
|
@@ -32,14 +32,14 @@ import com.webcodepro.applecommander.storage.physical.ImageOrder;
|
||||
public class UniDosFormatDisk extends DosFormatDisk {
|
||||
/**
|
||||
* Use this indicator to work with logical disk #1.
|
||||
* It is essentially the offset into the disk image.
|
||||
* It is essentially the track offset into the disk image.
|
||||
*/
|
||||
public static final int UNIDOS_DISK_1 = 0;
|
||||
/**
|
||||
* Use this indicator to work with logical disk #2.
|
||||
* It is essentially the offset into the disk image.
|
||||
* It is essentially the track offset into the disk image.
|
||||
*/
|
||||
public static final int UNIDOS_DISK_2 = 409600;
|
||||
public static final int UNIDOS_DISK_2 = 50;
|
||||
/**
|
||||
* Indicates which logical disk to work with (by offset
|
||||
* into the disk image itself).
|
||||
@@ -99,4 +99,19 @@ public class UniDosFormatDisk extends DosFormatDisk {
|
||||
getImageOrder().format();
|
||||
format(31, 50, 32);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the specified sector.
|
||||
*/
|
||||
public byte[] readSector(int track, int sector) throws IllegalArgumentException {
|
||||
return getImageOrder().readSector(track+logicalOffset, sector);
|
||||
}
|
||||
|
||||
/**
|
||||
* Write the specified sector.
|
||||
*/
|
||||
public void writeSector(int track, int sector, byte[] bytes)
|
||||
throws IllegalArgumentException {
|
||||
getImageOrder().writeSector(track+logicalOffset, sector, bytes);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user