diff options
author | Alyssa Milburn | 2016-04-08 21:31:47 +0200 |
---|---|---|
committer | Walter van Niftrik | 2016-06-06 20:35:49 +0200 |
commit | 7dc5f636f8ebbff1ce46cad818f1e241017f83b0 (patch) | |
tree | 41a776db6590756fdeca357460551e35d570d866 | |
parent | ae405707cc398af3afbd7c5c00723eec2a5538f7 (diff) | |
download | scummvm-rg350-7dc5f636f8ebbff1ce46cad818f1e241017f83b0.tar.gz scummvm-rg350-7dc5f636f8ebbff1ce46cad818f1e241017f83b0.tar.bz2 scummvm-rg350-7dc5f636f8ebbff1ce46cad818f1e241017f83b0.zip |
ADL: Map DOS 3.3 NIB to logical sectors
-rw-r--r-- | engines/adl/disk.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/adl/disk.cpp b/engines/adl/disk.cpp index a9c7a5922e..214f76aeae 100644 --- a/engines/adl/disk.cpp +++ b/engines/adl/disk.cpp @@ -166,6 +166,11 @@ bool DiskImage_NIB::open(const Common::String &filename) { byte *output = diskImage + (track * _sectorsPerTrack + sector) * _bytesPerSector; if (newStyle) { + // We hardcode the DOS 3.3 mapping here. TODO: Do we also need raw/prodos? + int raw2dos[16] = { 0, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 15 }; + sector = raw2dos[sector]; + output = diskImage + (track * _sectorsPerTrack + sector) * _bytesPerSector; + // 6-and-2 uses 342 on-disk bytes byte inbuffer[342]; _f->read(inbuffer, 342); |