diff --git a/doc/disk-zilogmcz.md b/doc/disk-zilogmcz.md index fdc2be13..7d2cb218 100644 --- a/doc/disk-zilogmcz.md +++ b/doc/disk-zilogmcz.md @@ -20,11 +20,8 @@ bytes per sector --- 128 bytes of user payload plus two two-byte metadata words used to construct linked lists of sectors for storing files. These stored 320kB each. -FluxEngine has experimental read support for these disks, based on a single -Catweasel flux file I've been able to obtain, which only contained 70 tracks. -I haven't been able to try this for real. If anyone has any of these disks, -an 8-inch drive, a FluxEngine and the appropriate adapter, please [get in -touch](https://github.com/davidgiven/fluxengine/issues/new)... +FluxEngine has read support for these, including support for RIO's ZDOS file +system. ## Options diff --git a/doc/filesystem.md b/doc/filesystem.md index b2822e71..3e31f1cd 100644 --- a/doc/filesystem.md +++ b/doc/filesystem.md @@ -26,6 +26,7 @@ The following file systems are supported so far. | Macintosh HFS | Y | Y | Only AppleDouble files may be written | | pSOS' PHILE | Y | | Probably unreliable due to lack of documentation | | Smaky 6 | Y | | | +| Zilog MCZ RIO's ZDOS | Y | | | {: .datatable } Please not that Atari disks do _not_ use standard FatFS, and the library I'm diff --git a/lib/vfs/zdos.cc b/lib/vfs/zdos.cc index 9c434c11..aa47bb7a 100644 --- a/lib/vfs/zdos.cc +++ b/lib/vfs/zdos.cc @@ -161,12 +161,15 @@ class ZDosFilesystem : public Filesystem attributes[Filesystem::LENGTH] = std::to_string(length); attributes[Filesystem::FILE_TYPE] = "file"; attributes[Filesystem::MODE] = mode; - attributes["zdos.descriptor_record"] = std::to_string(descriptorBlock); + attributes["zdos.descriptor_record"] = + std::to_string(descriptorBlock); attributes["zdos.first_record"] = std::to_string(zd.firstRecord); attributes["zdos.record_size"] = std::to_string(zd.recordSize); attributes["zdos.record_count"] = std::to_string(zd.recordCount); - attributes["zdos.last_record_size"] = std::to_string(zd.lastRecordSize); - attributes["zdos.start_address"] = fmt::format("0x{:04x}", zd.startAddress); + attributes["zdos.last_record_size"] = + std::to_string(zd.lastRecordSize); + attributes["zdos.start_address"] = + fmt::format("0x{:04x}", zd.startAddress); attributes["zdos.type"] = fileTypeMap.at(zd.type & 0xf0); attributes["zdos.ctime"] = convertTime(zd.ctime); attributes["zdos.mtime"] = convertTime(zd.mtime); @@ -277,7 +280,8 @@ private: auto dirent = std::make_unique( this, filename, descriptorBlock); - _usedBlocks += (dirent->zd.recordCount * dirent->zd.recordSize) / 0x80 + 1; + _usedBlocks += + (dirent->zd.recordCount * dirent->zd.recordSize) / 0x80 + 1; _dirents.push_back(std::move(dirent)); } } diff --git a/src/formats/zilogmcz.textpb b/src/formats/zilogmcz.textpb index 71fdd812..c6cae4f9 100644 --- a/src/formats/zilogmcz.textpb +++ b/src/formats/zilogmcz.textpb @@ -21,11 +21,8 @@ bytes per sector --- 128 bytes of user payload plus two two-byte metadata words used to construct linked lists of sectors for storing files. These stored 320kB each. -FluxEngine has experimental read support for these disks, based on a single -Catweasel flux file I've been able to obtain, which only contained 70 tracks. -I haven't been able to try this for real. If anyone has any of these disks, -an 8-inch drive, a FluxEngine and the appropriate adapter, please [get in -touch](https://github.com/davidgiven/fluxengine/issues/new)... +FluxEngine has read support for these, including support for RIO's ZDOS file +system. >>> documentation: