Merge from master.

This commit is contained in:
David Given
2022-02-23 20:43:19 +01:00
13 changed files with 26 additions and 32 deletions

View File

@@ -35,7 +35,7 @@ public:
return seekToPattern(SECTOR_PATTERN); return seekToPattern(SECTOR_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
/* Skip ID mark (we know it's a AESLANIER_RECORD_SEPARATOR). */ /* Skip ID mark (we know it's a AESLANIER_RECORD_SEPARATOR). */

View File

@@ -76,7 +76,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
if (readRaw24() != APPLE2_SECTOR_RECORD) if (readRaw24() != APPLE2_SECTOR_RECORD)
return; return;
@@ -94,7 +94,7 @@ public:
_sector->status = Sector::DATA_MISSING; /* unintuitive but correct */ _sector->status = Sector::DATA_MISSING; /* unintuitive but correct */
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
/* Check ID. */ /* Check ID. */

View File

@@ -64,7 +64,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
if (readRaw32() != BROTHER_SECTOR_RECORD) if (readRaw32() != BROTHER_SECTOR_RECORD)
return; return;
@@ -86,7 +86,7 @@ public:
_sector->status = Sector::DATA_MISSING; _sector->status = Sector::DATA_MISSING;
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
if (readRaw32() != BROTHER_DATA_RECORD) if (readRaw32() != BROTHER_DATA_RECORD)
return; return;

View File

@@ -63,7 +63,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
if (readRaw20() != C64_SECTOR_RECORD) if (readRaw20() != C64_SECTOR_RECORD)
return; return;
@@ -79,7 +79,7 @@ public:
_sector->status = Sector::DATA_MISSING; /* unintuitive but correct */ _sector->status = Sector::DATA_MISSING; /* unintuitive but correct */
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
if (readRaw20() != C64_DATA_RECORD) if (readRaw20() != C64_DATA_RECORD)
return; return;

View File

@@ -63,7 +63,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
/* Skip sync bits and ID byte. */ /* Skip sync bits and ID byte. */
@@ -84,7 +84,7 @@ public:
_sector->status = Sector::DATA_MISSING; /* unintuitive but correct */ _sector->status = Sector::DATA_MISSING; /* unintuitive but correct */
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
/* Skip sync bits ID byte. */ /* Skip sync bits ID byte. */

View File

@@ -109,7 +109,7 @@ public:
return seekToPattern(SECTOR_ID_PATTERN); return seekToPattern(SECTOR_ID_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
auto rawbits = readRawBits(FB100_RECORD_SIZE*16); auto rawbits = readRawBits(FB100_RECORD_SIZE*16);

View File

@@ -134,7 +134,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
if (readRaw24() != MAC_SECTOR_RECORD) if (readRaw24() != MAC_SECTOR_RECORD)
return; return;
@@ -163,7 +163,7 @@ public:
_sector->status = Sector::DATA_MISSING; /* unintuitive but correct */ _sector->status = Sector::DATA_MISSING; /* unintuitive but correct */
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
if (readRaw24() != MAC_DATA_RECORD) if (readRaw24() != MAC_DATA_RECORD)
return; return;
@@ -183,7 +183,7 @@ public:
_sector->data.writer().append(userData.slice(12, 512)).append(userData.slice(0, 12)); _sector->data.writer().append(userData.slice(12, 512)).append(userData.slice(0, 12));
} }
std::set<unsigned> requiredSectors(unsigned cylinder, unsigned head) const std::set<unsigned> requiredSectors(unsigned cylinder, unsigned head) const override
{ {
int count; int count;
if (cylinder < 16) if (cylinder < 16)

View File

@@ -106,7 +106,7 @@ public:
return clock; return clock;
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
readRawBits(48); readRawBits(48);
auto rawbits = readRawBits(MICROPOLIS_ENCODED_SECTOR_SIZE*16); auto rawbits = readRawBits(MICROPOLIS_ENCODED_SECTOR_SIZE*16);

View File

@@ -30,7 +30,7 @@ public:
AbstractDecoder(config) AbstractDecoder(config)
{} {}
void beginTrack() void beginTrack() override
{ {
_clock = _sector->clock = seekToPattern(ID_PATTERN); _clock = _sector->clock = seekToPattern(ID_PATTERN);
_currentSector = 0; _currentSector = 0;
@@ -38,7 +38,7 @@ public:
nanoseconds_t advanceToNextRecord() override nanoseconds_t advanceToNextRecord() override
{ {
if (_currentSector == 10) if (_currentSector == 11)
{ {
/* That was the last sector on the disk. */ /* That was the last sector on the disk. */
return 0; return 0;
@@ -47,7 +47,7 @@ public:
return _clock; return _clock;
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
/* Skip the ID pattern and track word, which is only present on the /* Skip the ID pattern and track word, which is only present on the
* first sector. We don't trust the track word because some driver * first sector. We don't trust the track word because some driver

View File

@@ -52,7 +52,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
auto bits = readRawBits(TIDS990_SECTOR_RECORD_SIZE*16); auto bits = readRawBits(TIDS990_SECTOR_RECORD_SIZE*16);
auto bytes = decodeFmMfm(bits).slice(0, TIDS990_SECTOR_RECORD_SIZE); auto bytes = decodeFmMfm(bits).slice(0, TIDS990_SECTOR_RECORD_SIZE);
@@ -74,7 +74,7 @@ public:
_sector->status = Sector::DATA_MISSING; /* correct but unintuitive */ _sector->status = Sector::DATA_MISSING; /* correct but unintuitive */
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
auto bits = readRawBits(TIDS990_DATA_RECORD_SIZE*16); auto bits = readRawBits(TIDS990_DATA_RECORD_SIZE*16);
auto bytes = decodeFmMfm(bits).slice(0, TIDS990_DATA_RECORD_SIZE); auto bytes = decodeFmMfm(bits).slice(0, TIDS990_DATA_RECORD_SIZE);

View File

@@ -64,7 +64,7 @@ public:
return seekToPattern(ANY_RECORD_PATTERN); return seekToPattern(ANY_RECORD_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
/* Check the ID. */ /* Check the ID. */
@@ -89,7 +89,7 @@ public:
_sector->status = Sector::DATA_MISSING; /* unintuitive but correct */ _sector->status = Sector::DATA_MISSING; /* unintuitive but correct */
} }
void decodeDataRecord() void decodeDataRecord() override
{ {
/* Check the ID. */ /* Check the ID. */

View File

@@ -26,7 +26,7 @@ public:
return seekToPattern(SECTOR_START_PATTERN); return seekToPattern(SECTOR_START_PATTERN);
} }
void decodeSectorRecord() void decodeSectorRecord() override
{ {
readRawBits(14); readRawBits(14);

View File

@@ -58,17 +58,11 @@ std::string Logger::toString(const AnyLogMessage& message)
60e9 / m.rotationalPeriod); 60e9 / m.rotationalPeriod);
}, },
/* Indicates that we're starting a write operation. */ (??) /* Indicates that we're working on a given cylinder and head */
[&](const BeginWriteOperationLogMessage& m) (??) [](const DiskContextLogMessage& m)
{ {
stream << fmt::format("{:2}.{}: ", m.cylinder, m.head); (??) std::cout << fmt::format("{:2}.{}: ", m.cylinder, m.head)
indented = true; (??) << std::flush;
},
/* Indicates that we're starting a read operation. */
[&](const BeginReadOperationLogMessage& m)
{
stream << fmt::format("{:2}.{}: ", m.cylinder, m.head);
indented = true; indented = true;
}, },