Amiga disks use MFM, but don’t use IBM scheme. Instead, the entire track is read and written as a unit, with each sector butting up against the previous one. This saves a lot of space which allows the Amiga to not just store 880kB on a DD disk, but also allows an extra 16 bytes of metadata per sector.

Bizarrely, the data in each sector is stored with all the odd bits first, and then all the even bits. This is tied into the checksum algorithm, which is distinctly subpar and not particularly good at detecting errors.

Reading disks

Just do:

fluxengine read amiga

You should end up with an amiga.adf which is 901120 bytes long (for a normal DD disk) — it ought to be a perfectly normal ADF file which you can use in an emulator.

If you want the metadata as well, specify a 528 byte sector size for the output image:

fluxengine read amiga -o amiga.adf:b=528

You will end up with a 929280 byte long image which you probably can’t use in an emulator; each sector will contain the 512 bytes of user payload followed by the 16 bytes of metadata.

Writing disks

Just do:

fluxengine write amiga -i amiga.adf

This will rake a normal 901120 byte long ADF file and write it to a DD disk. Note that writing to an HD disk will probably not work (this will depend on your drive and disk and potential FluxEngine bugs I’m still working on — please get in touch if you have any insight here).

If you want to write the metadata as well, specify a 528 byte sector size for the output image and supply a 929280 byte long file as described above.

fluxengine write amiga -i amiga.adf:b=528

Useful references

Previous page Next page