Resolved a OzDOS and UniDOS format issue. #12

This commit is contained in:
Rob Greene 2018-03-03 12:22:31 -06:00
parent 28e966db9f
commit c93d7095a1
2 changed files with 26 additions and 4 deletions

View File

@ -98,8 +98,19 @@ public class OzDosFormatDisk extends DosFormatDisk {
* @see com.webcodepro.applecommander.storage.FormattedDisk#format()
*/
public void format() {
getImageOrder().format();
format(31, 50, 32);
final int tracksPerDisk = 50;
final int sectorsPerTrack = 32;
final int firstCatalogSector = 31;
// We can't use the ImageLayout to format this disk since that actually wipes the entire
// 800K volume (that is, both disk1 and disk2 get cleared).
byte[] data = new byte[SECTOR_SIZE];
for (int t = 0; t < tracksPerDisk; t++) {
for (int s = 0; s < sectorsPerTrack; s++) {
writeSector(t, s, data);
}
}
// Lay down the catalog track...
format(firstCatalogSector, tracksPerDisk, sectorsPerTrack);
}
/**
* Retrieve the specified sector.

View File

@ -97,8 +97,19 @@ public class UniDosFormatDisk extends DosFormatDisk {
* @see com.webcodepro.applecommander.storage.FormattedDisk#format()
*/
public void format() {
getImageOrder().format();
format(31, 50, 32);
final int tracksPerDisk = 50;
final int sectorsPerTrack = 32;
final int firstCatalogSector = 31;
// We can't use the ImageLayout to format this disk since that actually wipes the entire
// 800K volume (that is, both disk1 and disk2 get cleared).
byte[] data = new byte[SECTOR_SIZE];
for (int t = 0; t < tracksPerDisk; t++) {
for (int s = 0; s < sectorsPerTrack; s++) {
writeSector(t, s, data);
}
}
// Lay down the catalog track...
format(firstCatalogSector, tracksPerDisk, sectorsPerTrack);
}
/**