diff options
author | 2020-01-03 13:39:00 +0000 | |
---|---|---|
committer | 2020-01-07 12:39:15 +0000 | |
commit | ec751fc8c669a5725e1678a59e6b6efc91dafd6e (patch) | |
tree | 69bafa1c0c44fa0fa6a15c3bf4cbd08107c92c8b /src/lib/formats/acorn_dsk.cpp | |
parent | cdd3c6bb01dea9ed3ca49988b732e51018e62156 (diff) |
acorn_dsk: Added support for HADFS floppy images.
Diffstat (limited to 'src/lib/formats/acorn_dsk.cpp')
-rw-r--r-- | src/lib/formats/acorn_dsk.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/formats/acorn_dsk.cpp b/src/lib/formats/acorn_dsk.cpp index d8992b9ad5a..d0f0bdb93aa 100644 --- a/src/lib/formats/acorn_dsk.cpp +++ b/src/lib/formats/acorn_dsk.cpp @@ -45,6 +45,11 @@ int acorn_ssd_format::find_size(io_generic *io, uint32_t form_factor) if (memcmp(cat, "\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd", 4) == 0 && size == (uint64_t)compute_track_size(f) * f.track_count * f.head_count) return i; + // test for HADFS - test pattern at sector 70 + io_generic_read(io, cat, 0x04610, 8); + if (memcmp(cat, "\x00\x28\x43\x29\x4a\x47\x48\x00", 4) == 0 && size == (uint64_t)compute_track_size(f) * f.track_count * f.head_count) + return i; + // read sector count from side 0 catalogue io_generic_read(io, cat, 0x100, 8); sectors0 = ((cat[6] & 3) << 8) + cat[7]; @@ -170,6 +175,11 @@ int acorn_dsd_format::find_size(io_generic *io, uint32_t form_factor) if (memcmp(cat, "\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd", 4) == 0 && size == (uint64_t)compute_track_size(f) * f.track_count * f.head_count) return i; + // test for HADFS - test pattern at sector 70 + io_generic_read(io, cat, 0x08c10, 8); + if (memcmp(cat, "\x00\x28\x43\x29\x4a\x47\x48\x00", 4) == 0 && size == (uint64_t)compute_track_size(f) * f.track_count * f.head_count) + return i; + // read sector count from side 0 catalogue io_generic_read(io, cat, 0x100, 8); sectors0 = ((cat[6] & 3) << 8) + cat[7]; |