mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2025-02-21 11:28:58 +00:00
allow sectors to know their own address
This commit is contained in:
parent
bb38d3d68f
commit
06b4a4cfea
@ -1,16 +1,26 @@
|
|||||||
package com.bytezone.diskbrowser.applefile;
|
package com.bytezone.diskbrowser.applefile;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
|
|
||||||
public class BootSector extends AbstractSector
|
public class BootSector extends AbstractSector
|
||||||
{
|
{
|
||||||
AssemblerProgram assembler;
|
AssemblerProgram assembler;
|
||||||
String name; // DOS or Prodos
|
String name; // DOS or Prodos
|
||||||
|
|
||||||
public BootSector (Disk disk, byte[] buffer, String name)
|
public BootSector (Disk disk, byte[] buffer, String name, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BootSector (Disk disk, byte[] buffer, String name,
|
||||||
|
List<DiskAddress> diskAddressList)
|
||||||
|
{
|
||||||
|
super (disk, buffer, diskAddressList);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,14 +2,15 @@ package com.bytezone.diskbrowser.cpm;
|
|||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
|
|
||||||
public class CPMCatalogSector extends AbstractSector
|
public class CPMCatalogSector extends AbstractSector
|
||||||
{
|
{
|
||||||
private static int CATALOG_ENTRY_SIZE = 32;
|
private static int CATALOG_ENTRY_SIZE = 32;
|
||||||
|
|
||||||
public CPMCatalogSector (Disk disk, byte[] buffer)
|
public CPMCatalogSector (Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -130,7 +130,7 @@ public class CPMDisk extends AbstractFormattedDisk
|
|||||||
byte[] buffer = disk.readSector (da);
|
byte[] buffer = disk.readSector (da);
|
||||||
|
|
||||||
if (type == catalogSector)
|
if (type == catalogSector)
|
||||||
return new CPMCatalogSector (disk, buffer);
|
return new CPMCatalogSector (disk, buffer, da);
|
||||||
|
|
||||||
return super.getFormattedSector (da);
|
return super.getFormattedSector (da);
|
||||||
}
|
}
|
||||||
|
@ -306,14 +306,14 @@ public abstract class AbstractFormattedDisk implements FormattedDisk
|
|||||||
String address = String.format ("%02X %02X", da.getTrack (), da.getSector ());
|
String address = String.format ("%02X %02X", da.getTrack (), da.getSector ());
|
||||||
|
|
||||||
if (sectorType == emptySector)
|
if (sectorType == emptySector)
|
||||||
return new DefaultSector ("Empty sector at " + address, disk, buffer);
|
return new DefaultSector ("Empty sector at " + address, disk, buffer, da);
|
||||||
if (sectorType == usedSector)
|
if (sectorType == usedSector)
|
||||||
return new DefaultSector ("Orphan sector at " + address, disk, buffer);
|
return new DefaultSector ("Orphan sector at " + address, disk, buffer, da);
|
||||||
|
|
||||||
String name = getSectorFilename (da);
|
String name = getSectorFilename (da);
|
||||||
if (!name.isEmpty ())
|
if (!name.isEmpty ())
|
||||||
name = " : " + name;
|
name = " : " + name;
|
||||||
return new DefaultSector ("Data sector at " + address + name, disk, buffer);
|
return new DefaultSector ("Data sector at " + address + name, disk, buffer, da);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.bytezone.diskbrowser.disk;
|
package com.bytezone.diskbrowser.disk;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
@ -16,14 +17,23 @@ public abstract class AbstractSector implements DataSource
|
|||||||
|
|
||||||
public byte[] buffer;
|
public byte[] buffer;
|
||||||
protected Disk disk;
|
protected Disk disk;
|
||||||
|
protected DiskAddress diskAddress;
|
||||||
|
protected List<DiskAddress> diskAddressList;
|
||||||
AssemblerProgram assembler;
|
AssemblerProgram assembler;
|
||||||
String description;
|
String description;
|
||||||
|
|
||||||
// maybe this should just use a DiskAddress
|
public AbstractSector (Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
public AbstractSector (Disk disk, byte[] buffer)
|
|
||||||
{
|
{
|
||||||
this.buffer = buffer;
|
this.buffer = buffer;
|
||||||
this.disk = disk;
|
this.disk = disk;
|
||||||
|
this.diskAddress = diskAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AbstractSector (Disk disk, byte[] buffer, List<DiskAddress> diskAddressList)
|
||||||
|
{
|
||||||
|
this.buffer = buffer;
|
||||||
|
this.disk = disk;
|
||||||
|
this.diskAddressList = diskAddressList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -6,9 +6,9 @@ public class DefaultSector extends AbstractSector
|
|||||||
{
|
{
|
||||||
String name;
|
String name;
|
||||||
|
|
||||||
public DefaultSector (String name, Disk disk, byte[] buffer)
|
public DefaultSector (String name, Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package com.bytezone.diskbrowser.dos;
|
|||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
||||||
|
|
||||||
class DosCatalogSector extends AbstractSector
|
class DosCatalogSector extends AbstractSector
|
||||||
@ -11,9 +12,9 @@ class DosCatalogSector extends AbstractSector
|
|||||||
"SS file", "Relocatable file", "AA file", "BB file" };
|
"SS file", "Relocatable file", "AA file", "BB file" };
|
||||||
private static int CATALOG_ENTRY_SIZE = 35;
|
private static int CATALOG_ENTRY_SIZE = 35;
|
||||||
|
|
||||||
public DosCatalogSector (Disk disk, byte[] buffer)
|
public DosCatalogSector (Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -47,11 +47,13 @@ public class DosDisk extends AbstractFormattedDisk
|
|||||||
sectorTypesList.add (tsListSector);
|
sectorTypesList.add (tsListSector);
|
||||||
sectorTypesList.add (dataSector);
|
sectorTypesList.add (dataSector);
|
||||||
|
|
||||||
byte[] sectorBuffer = disk.readSector (0, 0); // Boot sector
|
DiskAddress da = disk.getDiskAddress (0, 0);
|
||||||
bootSector = new BootSector (disk, sectorBuffer, "DOS");
|
byte[] sectorBuffer = disk.readSector (da); // Boot sector
|
||||||
|
bootSector = new BootSector (disk, sectorBuffer, "DOS", da);
|
||||||
|
|
||||||
sectorBuffer = disk.readSector (CATALOG_TRACK, 0); // VTOC
|
da = disk.getDiskAddress (CATALOG_TRACK, 0);
|
||||||
dosVTOCSector = new DosVTOCSector (this, disk, sectorBuffer);
|
sectorBuffer = disk.readSector (da); // VTOC
|
||||||
|
dosVTOCSector = new DosVTOCSector (this, disk, sectorBuffer, da);
|
||||||
|
|
||||||
DiskAddress catalogStart = disk.getDiskAddress (sectorBuffer[1], sectorBuffer[2]);
|
DiskAddress catalogStart = disk.getDiskAddress (sectorBuffer[1], sectorBuffer[2]);
|
||||||
|
|
||||||
@ -77,7 +79,7 @@ public class DosDisk extends AbstractFormattedDisk
|
|||||||
rootNode.add (volumeNode);
|
rootNode.add (volumeNode);
|
||||||
|
|
||||||
// flag the catalog sectors before any file mistakenly grabs them
|
// flag the catalog sectors before any file mistakenly grabs them
|
||||||
DiskAddress da = disk.getDiskAddress (catalogStart.getBlock ());
|
da = disk.getDiskAddress (catalogStart.getBlock ());
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (!disk.isValidAddress (da))
|
if (!disk.isValidAddress (da))
|
||||||
@ -324,14 +326,14 @@ public class DosDisk extends AbstractFormattedDisk
|
|||||||
String address = String.format ("%02X %02X", da.getTrack (), da.getSector ());
|
String address = String.format ("%02X %02X", da.getTrack (), da.getSector ());
|
||||||
|
|
||||||
if (type == tsListSector)
|
if (type == tsListSector)
|
||||||
return new DosTSListSector (getSectorFilename (da), disk, buffer);
|
return new DosTSListSector (getSectorFilename (da), disk, buffer, da);
|
||||||
if (type == catalogSector)
|
if (type == catalogSector)
|
||||||
return new DosCatalogSector (disk, buffer);
|
return new DosCatalogSector (disk, buffer, da);
|
||||||
if (type == dataSector)
|
if (type == dataSector)
|
||||||
return new DefaultSector (
|
return new DefaultSector (
|
||||||
"Data Sector at " + address + " : " + getSectorFilename (da), disk, buffer);
|
"Data Sector at " + address + " : " + getSectorFilename (da), disk, buffer, da);
|
||||||
if (type == dosSector)
|
if (type == dosSector)
|
||||||
return new DefaultSector ("DOS sector at " + address, disk, buffer);
|
return new DefaultSector ("DOS sector at " + address, disk, buffer, da);
|
||||||
return super.getFormattedSector (da);
|
return super.getFormattedSector (da);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,9 +9,9 @@ class DosTSListSector extends AbstractSector
|
|||||||
{
|
{
|
||||||
String name;
|
String name;
|
||||||
|
|
||||||
public DosTSListSector (String name, Disk disk, byte[] buffer)
|
public DosTSListSector (String name, Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,10 +52,12 @@ class DosTSListSector extends AbstractSector
|
|||||||
@Override
|
@Override
|
||||||
public String createText ()
|
public String createText ()
|
||||||
{
|
{
|
||||||
// should check whether the next sector address is this sector
|
DiskAddress da = disk.getDiskAddress (buffer[1], buffer[2]);
|
||||||
|
String msg = da.compareTo (diskAddress) == 0 ? " (circular reference)" : "";
|
||||||
|
|
||||||
StringBuilder text = getHeader ("TS List Sector : " + name);
|
StringBuilder text = getHeader ("TS List Sector : " + name);
|
||||||
addText (text, buffer, 0, 1, "Not used");
|
addText (text, buffer, 0, 1, "Not used");
|
||||||
addText (text, buffer, 1, 2, "Next TS list track/sector");
|
addText (text, buffer, 1, 2, "Next TS list track/sector" + msg);
|
||||||
addText (text, buffer, 3, 2, "Not used");
|
addText (text, buffer, 3, 2, "Not used");
|
||||||
addTextAndDecimal (text, buffer, 5, 2, "Sector base number");
|
addTextAndDecimal (text, buffer, 5, 2, "Sector base number");
|
||||||
addText (text, buffer, 7, 4, "Not used");
|
addText (text, buffer, 7, 4, "Not used");
|
||||||
|
@ -2,6 +2,7 @@ package com.bytezone.diskbrowser.dos;
|
|||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
||||||
|
|
||||||
class DosVTOCSector extends AbstractSector
|
class DosVTOCSector extends AbstractSector
|
||||||
@ -18,9 +19,10 @@ class DosVTOCSector extends AbstractSector
|
|||||||
int maxSectors;
|
int maxSectors;
|
||||||
int maxTracks;
|
int maxTracks;
|
||||||
|
|
||||||
public DosVTOCSector (DosDisk parentDisk, Disk disk, byte[] buffer)
|
public DosVTOCSector (DosDisk parentDisk, Disk disk, byte[] buffer,
|
||||||
|
DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
|
|
||||||
this.parentDisk = parentDisk;
|
this.parentDisk = parentDisk;
|
||||||
DOSVersion = buffer[3];
|
DOSVersion = buffer[3];
|
||||||
|
@ -2,9 +2,11 @@ package com.bytezone.diskbrowser.pascal;
|
|||||||
|
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
||||||
|
|
||||||
class PascalCatalogSector extends AbstractSector
|
class PascalCatalogSector extends AbstractSector
|
||||||
@ -13,9 +15,9 @@ class PascalCatalogSector extends AbstractSector
|
|||||||
private static String[] fileTypes =
|
private static String[] fileTypes =
|
||||||
{ "Volume", "Bad", "Code", "Text", "Info", "Data", "Graf", "Foto", "SecureDir" };
|
{ "Volume", "Bad", "Code", "Text", "Info", "Data", "Graf", "Foto", "SecureDir" };
|
||||||
|
|
||||||
public PascalCatalogSector (Disk disk, byte[] buffer)
|
public PascalCatalogSector (Disk disk, byte[] buffer, List<DiskAddress> diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -47,9 +47,10 @@ public class PascalDisk extends AbstractFormattedDisk
|
|||||||
sectorTypesList.add (grafSector);
|
sectorTypesList.add (grafSector);
|
||||||
sectorTypesList.add (fotoSector);
|
sectorTypesList.add (fotoSector);
|
||||||
|
|
||||||
|
// DiskAddress da = disk.getDiskAddress (0);
|
||||||
List<DiskAddress> blocks = disk.getDiskAddressList (0, 1);
|
List<DiskAddress> blocks = disk.getDiskAddressList (0, 1);
|
||||||
byte[] buffer = disk.readSectors (blocks);
|
byte[] buffer = disk.readSectors (blocks);
|
||||||
this.bootSector = new BootSector (disk, buffer, "Pascal");
|
this.bootSector = new BootSector (disk, buffer, "Pascal", blocks);
|
||||||
|
|
||||||
buffer = disk.readSector (2);
|
buffer = disk.readSector (2);
|
||||||
byte[] data = new byte[CATALOG_ENTRY_SIZE];
|
byte[] data = new byte[CATALOG_ENTRY_SIZE];
|
||||||
@ -78,7 +79,7 @@ public class PascalDisk extends AbstractFormattedDisk
|
|||||||
}
|
}
|
||||||
|
|
||||||
buffer = disk.readSectors (sectors);
|
buffer = disk.readSectors (sectors);
|
||||||
diskCatalogSector = new PascalCatalogSector (disk, buffer); // uses all 4 sectors
|
diskCatalogSector = new PascalCatalogSector (disk, buffer, sectors);
|
||||||
|
|
||||||
DefaultMutableTreeNode root = getCatalogTreeRoot ();
|
DefaultMutableTreeNode root = getCatalogTreeRoot ();
|
||||||
DefaultMutableTreeNode volumeNode = new DefaultMutableTreeNode (volume);
|
DefaultMutableTreeNode volumeNode = new DefaultMutableTreeNode (volume);
|
||||||
@ -220,7 +221,7 @@ public class PascalDisk extends AbstractFormattedDisk
|
|||||||
return diskCatalogSector;
|
return diskCatalogSector;
|
||||||
String name = getSectorFilename (da);
|
String name = getSectorFilename (da);
|
||||||
if (name != null)
|
if (name != null)
|
||||||
return new DefaultSector (name, disk, disk.readSector (da));
|
return new DefaultSector (name, disk, disk.readSector (da), da);
|
||||||
return super.getFormattedSector (da);
|
return super.getFormattedSector (da);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,13 +8,13 @@ import com.bytezone.diskbrowser.disk.DiskAddress;
|
|||||||
|
|
||||||
class ProdosBitMapSector extends AbstractSector
|
class ProdosBitMapSector extends AbstractSector
|
||||||
{
|
{
|
||||||
private final DiskAddress da;
|
// private final DiskAddress da;
|
||||||
private final ProdosDisk parent;
|
private final ProdosDisk parent;
|
||||||
|
|
||||||
ProdosBitMapSector (ProdosDisk parent, Disk disk, byte[] buffer, DiskAddress da)
|
ProdosBitMapSector (ProdosDisk parent, Disk disk, byte[] buffer, DiskAddress da)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, da);
|
||||||
this.da = da;
|
// this.da = da;
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ class ProdosBitMapSector extends AbstractSector
|
|||||||
|
|
||||||
// check range of bits for current block - so far I don't have a disk that needs
|
// check range of bits for current block - so far I don't have a disk that needs
|
||||||
// more than a single block
|
// more than a single block
|
||||||
int relativeBlock = da.getBlock () - parent.vdh.bitMapBlock;
|
int relativeBlock = diskAddress.getBlock () - parent.vdh.bitMapBlock;
|
||||||
int startBit = relativeBlock * 4096;
|
int startBit = relativeBlock * 4096;
|
||||||
int endBit = startBit + 4096;
|
int endBit = startBit + 4096;
|
||||||
if (startBit >= grid.width * grid.height)
|
if (startBit >= grid.width * grid.height)
|
||||||
|
@ -6,13 +6,14 @@ import java.util.GregorianCalendar;
|
|||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
||||||
|
|
||||||
class ProdosCatalogSector extends AbstractSector
|
class ProdosCatalogSector extends AbstractSector
|
||||||
{
|
{
|
||||||
ProdosCatalogSector (Disk disk, byte[] buffer)
|
ProdosCatalogSector (Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,8 +51,9 @@ public class ProdosDisk extends AbstractFormattedDisk
|
|||||||
if (!disk.isSectorEmpty (disk.getDiskAddress (block)))
|
if (!disk.isSectorEmpty (disk.getDiskAddress (block)))
|
||||||
sectorTypes[block] = dosSector;
|
sectorTypes[block] = dosSector;
|
||||||
|
|
||||||
byte[] buffer = disk.readSector (0);
|
DiskAddress da = disk.getDiskAddress (0);
|
||||||
bootSector = new BootSector (disk, buffer, "Prodos");
|
byte[] buffer = disk.readSector (da);
|
||||||
|
bootSector = new BootSector (disk, buffer, "Prodos", da);
|
||||||
|
|
||||||
DefaultMutableTreeNode root = getCatalogTreeRoot ();
|
DefaultMutableTreeNode root = getCatalogTreeRoot ();
|
||||||
DefaultMutableTreeNode volumeNode = new DefaultMutableTreeNode ("empty volume node");
|
DefaultMutableTreeNode volumeNode = new DefaultMutableTreeNode ("empty volume node");
|
||||||
@ -224,19 +225,19 @@ public class ProdosDisk extends AbstractFormattedDisk
|
|||||||
SectorType type = sectorTypes[da.getBlock ()];
|
SectorType type = sectorTypes[da.getBlock ()];
|
||||||
|
|
||||||
if (type == catalogSector || type == subcatalogSector)
|
if (type == catalogSector || type == subcatalogSector)
|
||||||
return new ProdosCatalogSector (disk, buffer);
|
return new ProdosCatalogSector (disk, buffer, da);
|
||||||
if (type == volumeMapSector)
|
if (type == volumeMapSector)
|
||||||
return new ProdosBitMapSector (this, disk, buffer, da);
|
return new ProdosBitMapSector (this, disk, buffer, da);
|
||||||
if (type == masterIndexSector || type == indexSector)
|
if (type == masterIndexSector || type == indexSector)
|
||||||
return new ProdosIndexSector (getSectorFilename (da), disk, buffer);
|
return new ProdosIndexSector (getSectorFilename (da), disk, buffer, da);
|
||||||
if (type == extendedKeySector)
|
if (type == extendedKeySector)
|
||||||
return new ProdosExtendedKeySector (disk, buffer);
|
return new ProdosExtendedKeySector (disk, buffer, da);
|
||||||
if (type == dosSector)
|
if (type == dosSector)
|
||||||
return new DefaultSector ("Boot sector", disk, buffer);
|
return new DefaultSector ("Boot sector", disk, buffer, da);
|
||||||
|
|
||||||
String name = getSectorFilename (da);
|
String name = getSectorFilename (da);
|
||||||
if (name != null)
|
if (name != null)
|
||||||
return new DefaultSector (name, disk, buffer);
|
return new DefaultSector (name, disk, buffer, da);
|
||||||
return super.getFormattedSector (da);
|
return super.getFormattedSector (da);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,12 +2,13 @@ package com.bytezone.diskbrowser.prodos;
|
|||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
|
|
||||||
class ProdosExtendedKeySector extends AbstractSector
|
class ProdosExtendedKeySector extends AbstractSector
|
||||||
{
|
{
|
||||||
public ProdosExtendedKeySector (Disk disk, byte[] buffer)
|
public ProdosExtendedKeySector (Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,15 +2,16 @@ package com.bytezone.diskbrowser.prodos;
|
|||||||
|
|
||||||
import com.bytezone.diskbrowser.disk.AbstractSector;
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
||||||
import com.bytezone.diskbrowser.disk.Disk;
|
import com.bytezone.diskbrowser.disk.Disk;
|
||||||
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
||||||
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
||||||
|
|
||||||
class ProdosIndexSector extends AbstractSector
|
class ProdosIndexSector extends AbstractSector
|
||||||
{
|
{
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
ProdosIndexSector (String name, Disk disk, byte[] buffer)
|
ProdosIndexSector (String name, Disk disk, byte[] buffer, DiskAddress diskAddress)
|
||||||
{
|
{
|
||||||
super (disk, buffer);
|
super (disk, buffer, diskAddress);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user