Write the correct values to the sector headers!

This commit is contained in:
David Given
2021-08-01 13:30:26 +02:00
parent a2911a9585
commit 86d49d563e

View File

@@ -174,9 +174,9 @@ static void write_sector(std::vector<bool>& bits, unsigned& cursor, const std::s
write_bits(bits, cursor, 0xff3fcff3fcffLL, 6*8); /* sync */
write_bits(bits, cursor, MAC_SECTOR_RECORD, 3*8);
uint8_t encodedTrack = sector->physicalHead & 0x3f;
uint8_t encodedTrack = sector->logicalTrack & 0x3f;
uint8_t encodedSector = sector->logicalSector;
uint8_t encodedSide = encode_side(sector->physicalCylinder, sector->logicalSide);
uint8_t encodedSide = encode_side(sector->logicalTrack, sector->logicalSide);
uint8_t formatByte = MAC_FORMAT_BYTE;
uint8_t headerChecksum = (encodedTrack ^ encodedSector ^ encodedSide ^ formatByte) & 0x3f;
@@ -240,7 +240,7 @@ public:
fillBitmapTo(bits, cursor, _config.post_index_gap_us() / clockRateUs, { true, false });
lastBit = false;
for (const auto& sector : collectSectors(physicalTrack, physicalSide, image))
for (const auto& sector : sectors)
write_sector(bits, cursor, sector);
if (cursor >= bits.size())