Add support for reading ADFS disks --- a slight variation to normal MFM IBM.

Made the IBM reader way more robust in terms of retrying bad reads, as my
sample disks were pretty dodgy.
This commit is contained in:
David Given
2019-01-21 22:42:10 +01:00
parent 6af432f798
commit 0e1d5b0470
5 changed files with 63 additions and 9 deletions

35
doc/acorn-adfs.md Normal file
View File

@@ -0,0 +1,35 @@
Acorn ADFS disks
================
Acorn ADFS disks are pretty standard MFM encoded IBM scheme disks, although
with different sector sizes and with the 0-based sector identifiers rather
than 1-based sector identifiers. There's nothing particularly special here.
There are various different kinds, which should all work out of the box.
Tested ones are:
- ADFS L: 80 track, 16 sector, 2 sides, 256 bytes per sector == 640kB.
- ADFE D/E: 80 track, 5 sector, 2 sides, 1024 bytes per sector == 800kB.
I expect the others to work, but haven't tried them; [get in
touch](https://github.com/davidgiven/fluxengine/issues/new) if you have any
news. For ADFS S (single sided 40 track) you'll want `-s :s=0:t=0-79x2`. For
ADFS M (single sided 80 track) you'll want `-s :s=0`.
Be aware that Acorn logical block numbering goes all the way up side 0 and
then all the way up side 1. However, FluxEngine uses traditional disk images
with alternating sides, with the blocks from track 0 side 0 then track 0 side
1 then track 1 side 0 etc. Most Acorn emulators will use both formats, but
they might require nudging as the side order can't be reliably autodetected.
Reading discs
-------------
Just do:
```
.obj/fe-readibm --sector-id-base=0
```
You should end up with an `ibm.img` of the appropriate size for your disk
format.