Rip out the old approach to soft sector remapping as it wasn't working.

This commit is contained in:
David Given
2022-09-11 17:05:40 +02:00
parent ea1ab029f3
commit 3cb098f9ba
43 changed files with 141 additions and 161 deletions

View File

@@ -144,7 +144,7 @@ public:
_sector->logicalTrack = br.read_8();
_sector->logicalSide = br.read_8();
_sector->physicalSector = br.read_8();
_sector->logicalSector = br.read_8();
_currentSectorSize = 1 << (br.read_8() + 7);
uint16_t gotCrc = crc16(CCITT_POLY, bytes.slice(0, br.pos));
uint16_t wantCrc = br.read_be16();
@@ -159,7 +159,7 @@ public:
_sector->logicalTrack = _sector->physicalTrack;
for (int sector : trackdata.ignore_sector())
if (_sector->physicalSector == sector)
if (_sector->logicalSector == sector)
{
_sector->status = Sector::MISSING;
break;
@@ -207,7 +207,7 @@ public:
std::set<unsigned> requiredSectors(const Location& location) const override
{
auto& trackLayout = Layout::getLayoutOfTrack(location.logicalTrack, location.head);
return std::set<unsigned>(trackLayout.logicalSectors.begin(), trackLayout.logicalSectors.end());
return std::set<unsigned>(trackLayout.logicalSectorOrder.begin(), trackLayout.logicalSectorOrder.end());
}
private:

View File

@@ -118,11 +118,10 @@ public:
Layout::getLayoutOfTrack(location.logicalTrack, location.head);
int logicalSide = location.head ^ trackdata.swap_sides();
for (unsigned physicalSectorId : trackLayout.physicalSectors)
for (unsigned sectorId : trackLayout.diskSectorOrder)
{
unsigned logicalSectorId = trackLayout.physicalSectorToLogical(physicalSectorId);
const auto& sector =
image.get(location.logicalTrack, logicalSide, logicalSectorId);
image.get(location.logicalTrack, logicalSide, sectorId);
if (sector)
sectors.push_back(sector);
}
@@ -226,7 +225,7 @@ public:
bw.write_8(idamUnencoded);
bw.write_8(sectorData->logicalTrack);
bw.write_8(sectorData->logicalSide);
bw.write_8(sectorData->physicalSector);
bw.write_8(sectorData->logicalSector);
bw.write_8(sectorSize);
uint16_t crc = crc16(CCITT_POLY, header);
bw.write_be16(crc);