mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Add CRC checking for IBM disks. Weirdly, my 1200kB disk appears to have deleted
sectors (id mark F8) on it, where the checksums don't match. Myserious...
This commit is contained in:
12
lib/image.cc
12
lib/image.cc
@@ -15,10 +15,10 @@ void writeSectorsToFile(const std::vector<std::unique_ptr<Sector>>& sectors, con
|
||||
size_t sectorSize = 0;
|
||||
for (auto& sector : sectors)
|
||||
{
|
||||
trackCount = std::max(sector->track()+1, trackCount);
|
||||
sideCount = std::max(sector->side()+1, sideCount);
|
||||
sectorCount = std::max(sector->sector()+1, sectorCount);
|
||||
sectorSize = std::max(sector->data().size(), sectorSize);
|
||||
trackCount = std::max(sector->track+1, trackCount);
|
||||
sideCount = std::max(sector->side+1, sideCount);
|
||||
sectorCount = std::max(sector->sector+1, sectorCount);
|
||||
sectorSize = std::max(sector->data.size(), sectorSize);
|
||||
}
|
||||
|
||||
size_t sideSize = sectorCount * sectorSize;
|
||||
@@ -35,7 +35,7 @@ void writeSectorsToFile(const std::vector<std::unique_ptr<Sector>>& sectors, con
|
||||
|
||||
for (auto& sector : sectors)
|
||||
{
|
||||
outputFile.seekp(sector->track()*trackSize + sector->side()*sideSize + sector->sector()*sectorSize, std::ios::beg);
|
||||
outputFile.write((const char*) §or->data().at(0), sector->data().size());
|
||||
outputFile.seekp(sector->track*trackSize + sector->side*sideSize + sector->sector*sectorSize, std::ios::beg);
|
||||
outputFile.write((const char*) §or->data[0], sector->data.size());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user