mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2024-06-13 06:29:31 +00:00
check DOS format bug
This commit is contained in:
parent
26d218621b
commit
697c164aee
|
@ -395,7 +395,8 @@ public class DosDisk extends AbstractFormattedDisk
|
||||||
if (debug)
|
if (debug)
|
||||||
System.out.printf ("Catalog blocks: %s%n", catalogBlocks);
|
System.out.printf ("Catalog blocks: %s%n", catalogBlocks);
|
||||||
|
|
||||||
disk.setDosVersion (version);
|
if (catalogBlocks > 0)
|
||||||
|
disk.setDosVersion (version);
|
||||||
return catalogBlocks;
|
return catalogBlocks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,6 +404,13 @@ public class DosDisk extends AbstractFormattedDisk
|
||||||
private static int countCatalogBlocks (AppleDisk disk, byte[] buffer)
|
private static int countCatalogBlocks (AppleDisk disk, byte[] buffer)
|
||||||
// ---------------------------------------------------------------------------------//
|
// ---------------------------------------------------------------------------------//
|
||||||
{
|
{
|
||||||
|
if (!disk.isValidAddress (buffer[1], buffer[2]))
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
System.out.printf ("Invalid address1: %02X %02X%n", buffer[1], buffer[2]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
DiskAddress catalogStart = disk.getDiskAddress (buffer[1], buffer[2]);
|
DiskAddress catalogStart = disk.getDiskAddress (buffer[1], buffer[2]);
|
||||||
DiskAddress da = disk.getDiskAddress (catalogStart.getBlockNo ());
|
DiskAddress da = disk.getDiskAddress (catalogStart.getBlockNo ());
|
||||||
List<DiskAddress> catalogAddresses = new ArrayList<> ();
|
List<DiskAddress> catalogAddresses = new ArrayList<> ();
|
||||||
|
@ -430,14 +438,13 @@ public class DosDisk extends AbstractFormattedDisk
|
||||||
if (!disk.isValidAddress (buffer[1], buffer[2]))
|
if (!disk.isValidAddress (buffer[1], buffer[2]))
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
System.out.printf ("Invalid address: %02X %02X%n", buffer[1], buffer[2]);
|
System.out.printf ("Invalid address2: %02X %02X%n", buffer[1], buffer[2]);
|
||||||
return catalogAddresses.size ();
|
return catalogAddresses.size ();
|
||||||
}
|
}
|
||||||
|
|
||||||
catalogAddresses.add (da);
|
catalogAddresses.add (da);
|
||||||
|
|
||||||
da = disk.getDiskAddress (buffer[1], buffer[2]);
|
da = disk.getDiskAddress (buffer[1], buffer[2]);
|
||||||
|
|
||||||
} while (!da.isZero ());
|
} while (!da.isZero ());
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
|
|
|
@ -108,7 +108,6 @@ public class PascalDisk extends AbstractFormattedDisk
|
||||||
addresses.add (disk.getDiskAddress (i));
|
addresses.add (disk.getDiskAddress (i));
|
||||||
buffer = disk.readBlocks (addresses);
|
buffer = disk.readBlocks (addresses);
|
||||||
|
|
||||||
// loop through each catalog entry (what if there are deleted files?)
|
|
||||||
for (int i = 1; i <= volumeEntry.totalFiles; i++)
|
for (int i = 1; i <= volumeEntry.totalFiles; i++)
|
||||||
{
|
{
|
||||||
int ptr = i * CATALOG_ENTRY_SIZE;
|
int ptr = i * CATALOG_ENTRY_SIZE;
|
||||||
|
@ -179,11 +178,11 @@ public class PascalDisk extends AbstractFormattedDisk
|
||||||
}
|
}
|
||||||
|
|
||||||
int blocks = Utility.intValue (buffer[14], buffer[15]);
|
int blocks = Utility.intValue (buffer[14], buffer[15]);
|
||||||
if (blocks > 280)
|
if (blocks != 280 && blocks != 1600)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
System.out.printf ("Blocks > 280: %d%n", blocks);
|
System.out.printf ("Blocks > 280: %d%n", blocks);
|
||||||
// return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DiskAddress> addresses = new ArrayList<> ();
|
List<DiskAddress> addresses = new ArrayList<> ();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user