mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Merge pull request #157 from davidgiven/amigacorruption
Fix some issues causing corruption when reading Amiga disks
This commit is contained in:
@@ -32,6 +32,8 @@ AbstractDecoder::RecordType AmigaDecoder::advanceToNextRecord()
|
||||
void AmigaDecoder::decodeSectorRecord()
|
||||
{
|
||||
const auto& rawbits = readRawBits(AMIGA_RECORD_SIZE*16);
|
||||
if (rawbits.size() < (AMIGA_RECORD_SIZE*16))
|
||||
return;
|
||||
const auto& rawbytes = toBytes(rawbits).slice(0, AMIGA_RECORD_SIZE*2);
|
||||
const auto& bytes = decodeFmMfm(rawbits).slice(0, AMIGA_RECORD_SIZE);
|
||||
|
||||
|
||||
@@ -261,13 +261,13 @@ void readDiskCommand(AbstractDecoder& decoder)
|
||||
if (dumpSectors)
|
||||
{
|
||||
std::cout << "\nDecoded sectors follow:\n\n";
|
||||
for (auto& i : readSectors)
|
||||
for (auto& sector : track->sectors)
|
||||
{
|
||||
auto& sector = i.second;
|
||||
std::cout << fmt::format("{}.{:02}.{:02}: I+{:.2f}us with {:.2f}us clock\n",
|
||||
sector->logicalTrack, sector->logicalSide, sector->logicalSector,
|
||||
sector->position.ns() / 1000.0, sector->clock / 1000.0);
|
||||
hexdump(std::cout, sector->data);
|
||||
std::cout << fmt::format("{}.{:02}.{:02}: I+{:.2f}us with {:.2f}us clock: status {}\n",
|
||||
sector.logicalTrack, sector.logicalSide, sector.logicalSector,
|
||||
sector.position.ns() / 1000.0, sector.clock / 1000.0,
|
||||
sector.status);
|
||||
hexdump(std::cout, sector.data);
|
||||
std::cout << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user