-
Notifications
You must be signed in to change notification settings - Fork 73
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9dc6bdb
commit ca8f2a8
Showing
37 changed files
with
73 additions
and
1,700 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,2 @@ | ||
40track_drive | ||
==== | ||
## Adjust configuration for a 40-track drive | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
This is an extension profile; adding this to the command line will configure | ||
FluxEngine to read from 40-track, 48tpi 5.25" drives. You have to tell it because there is | ||
no way to detect this automatically. | ||
|
||
For example: | ||
|
||
``` | ||
fluxengine read ibm --180 40track_drive | ||
``` | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,2 @@ | ||
acornadfs | ||
==== | ||
## BBC Micro, Archimedes | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
Acorn ADFS disks are used by the 6502-based BBC Micro and ARM-based Archimedes | ||
series of computers. They are yet another variation on MFM encoded IBM scheme | ||
disks, although with different sector sizes and with the 0-based sector | ||
identifiers rather than 1-based sector identifiers. The index hole is ignored | ||
and sectors are written whereever, requiring FluxEngine to do two revolutions | ||
to read a disk. | ||
|
||
There are various different kinds, which should all work out of the box. | ||
|
||
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. | ||
|
||
## Options | ||
|
||
- Format variants: | ||
- `160`: 160kB 3.5" or 5.25" 40-track SSDD; S format | ||
- `320`: 320kB 3.5" or 5.25" 80-track SSDD; M format | ||
- `640`: 640kB 3.5" or 5.25" 80-track DSDD; L format | ||
- `800`: 800kB 3.5" 80-track DSDD; D and E formats | ||
- `1600`: 1600kB 3.5" 80-track DSHD; F formats | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read acornadfs --160 -s drive:0 -o acornadfs.img` | ||
- `fluxengine read acornadfs --320 -s drive:0 -o acornadfs.img` | ||
- `fluxengine read acornadfs --640 -s drive:0 -o acornadfs.img` | ||
- `fluxengine read acornadfs --800 -s drive:0 -o acornadfs.img` | ||
- `fluxengine read acornadfs --1600 -s drive:0 -o acornadfs.img` | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,2 @@ | ||
acorndfs | ||
==== | ||
## Acorn Atom, BBC Micro series | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
Acorn DFS disks are used by the Acorn Atom and BBC Micro series of computers. | ||
They are pretty standard FM encoded IBM scheme disks, with 256-sectors and | ||
0-based sector identifiers. There's nothing particularly special here. | ||
|
||
DFS disks are all single-sided, but allow the other side of the disk to be | ||
used as another volume. | ||
|
||
They come in two varieties, 40 track and 80 track. These should both work. | ||
Some rare disks are both at the same time. FluxEngine can read these but it | ||
requires a bit of fiddling as they have the same tracks on twice. | ||
|
||
## Options | ||
|
||
- Format variants: | ||
- `100`: 100kB 40-track SSSD | ||
- `200`: 200kB 80-track SSSD | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read acorndfs --100 -s drive:0 -o acorndfs.img` | ||
- `fluxengine read acorndfs --200 -s drive:0 -o acorndfs.img` | ||
|
||
To write: | ||
|
||
- `fluxengine write acorndfs --100 -d drive:0 -i acorndfs.img` | ||
- `fluxengine write acorndfs --200 -d drive:0 -i acorndfs.img` | ||
|
||
## References | ||
|
||
- [The Acorn DFS disc format](https://beebwiki.mdfs.net/Acorn_DFS_disc_format) | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,2 @@ | ||
aeslanier | ||
==== | ||
## 616kB 5.25" 77-track SSDD hard sectored | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
Back in 1980 Lanier released a series of very early integrated word processor | ||
appliances, the No Problem. These were actually [rebranded AES Data Superplus | ||
machines](http://vintagecomputers.site90.net/aes/). They were gigantic, | ||
weighed 40kg, and one example I've found cost ꆲ5bb4 | ||
of nearly ㇢1a6e | ||
|
||
8080 machines with 32kB of RAM, they ran their own proprietary word | ||
processing software off twin 5.25" drive units, but apparently other software | ||
was available. | ||
|
||
The disk format is exceptionally weird. They used 77 track, 32 sector, single-sided | ||
_hard_ sectored disks, where there were multiple index holes, | ||
indicating to the hardware where the sectors start. The encoding scheme | ||
itself is [MMFM (aka | ||
M2FM)](http://www.retrotechnology.com/herbs_stuff/m2fm.html), an early | ||
attempt at double-density disk encoding which rapidly got obsoleted by the | ||
simpler MFM --- and the bytes are stored on disk _backwards_. Even aside from | ||
the encoding, the format on disk was strange; unified sector header/data | ||
records, so that the sector header (containing the sector and track number) | ||
is actually inside the user data. | ||
|
||
FluxEngine can read these, but I only have a single, fairly poor example of a | ||
disk image, and I've had to make a lot of guesses as to the sector format | ||
based on what looks right. If anyone knows _anything_ about these disks, | ||
[please get in touch](https://github.com/davidgiven/fluxengine/issues/new). | ||
|
||
## Options | ||
|
||
(no options) | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read aeslanier -s drive:0 -o aeslanier.img` | ||
|
||
## References | ||
|
||
* [SA800 Diskette Storage Drive - Theory Of | ||
Operations](http://www.hartetechnologies.com/manuals/Shugart/50664-1_SA800_TheorOp_May78.pdf): | ||
talks about MMFM a lot, but the Lanier machines didn't use this disk | ||
format. | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,2 @@ | ||
agat | ||
==== | ||
## 840kB 5.25" 80-track DS | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
The Agat (Russian: ↊fd74 | ||
1983. These were based around a 6502 and were nominally Apple II-compatible | ||
although with enough differences to be problematic. | ||
|
||
They could use either standard Apple II 140kB disks, or a proprietary 840kb | ||
MFM-based double-sided format. FluxEngine supports both of these; this profile | ||
is for the proprietary format. for the Apple II format, use the `apple2` | ||
profile. | ||
|
||
## Options | ||
|
||
(no options) | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read agat -s drive:0 -o agat.img` | ||
|
||
To write: | ||
|
||
- `fluxengine write agat -d drive:0 -i agat.img` | ||
|
||
## References | ||
|
||
- [Magazine article on the | ||
Agat](https://sudonull.com/post/54185-Is-AGAT-a-bad-copy-of-Apple) | ||
|
||
- [Forum thread with (some) documentation on the | ||
format](https://torlus.com/floppy/forum/viewtopic.php?t=1385) | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,2 @@ | ||
amiga | ||
==== | ||
## 880kB 3.5" DSDD | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
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. | ||
|
||
This metadata is mostly unused, so the default for FluxEngine is to ignore it | ||
and just use the 512 bytes of main sector data. If you want it, specify a | ||
528-byte sector size. The metadata will come after the user data. | ||
|
||
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. | ||
|
||
## Options | ||
|
||
- Sector size: | ||
- `without_metadata`: 512-byte sectors | ||
- `with_metadata`: 528-byte sectors | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read amiga -s drive:0 -o amiga.adf` | ||
|
||
To write: | ||
|
||
- `fluxengine write amiga -d drive:0 -i amiga.adf` | ||
|
||
## References | ||
|
||
- [The Amiga Floppy Boot Process and Physical | ||
Layout](https://wiki.amigaos.net/wiki/Amiga_Floppy_Boot_Process_and_Physical_Layout) | ||
|
||
- [The Amiga Disk File FAQ](http://lclevy.free.fr/adflib/adf_info.html) | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,2 @@ | ||
ampro | ||
==== | ||
## CP/M | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
The Ampro Little Board was a very simple and cheap Z80-based computer from | ||
1984, which ran CP/M. It was, in fact, a single PCB which you could mount | ||
on the bottom of a 5.25" drive. | ||
|
||
[All about the Ampro Little Board](http://oldcomputers.net/ampro-little-board.html) | ||
|
||
It stored either 400kB on a double-sided 40-track drive or 800kB on a | ||
double-sided 80 track drive. The disk format it used was a slightly quirky | ||
variation of the standard MFM IBM scheme --- sector numbering starts at 17 | ||
rather than 1 (or Acorn's 0). FluxEngine supports this. | ||
|
||
FluxEngine has direct filesystem support for these disks, or you can pass the | ||
disk images into [cpmtools](http://www.moria.de/~michael/cpmtools/): | ||
|
||
``` | ||
$ cpmls -f ampdsdd ampro.img | ||
0: | ||
-a60014.e | ||
amprodsk.com | ||
bitchk.doc | ||
bitchk.mac | ||
cpmmac.mac | ||
dir.com | ||
himem.doc | ||
himem.mac | ||
kaydiag.lbr | ||
kayinfo.lbr | ||
...etc... | ||
``` | ||
|
||
## Options | ||
|
||
- Format variants: | ||
- `400`: 400kB 40-track DSDD | ||
- `800`: 800kB 80-track DSDD | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read ampro --400 -s drive:0 -o ampro.img` | ||
- `fluxengine read ampro --800 -s drive:0 -o ampro.img` | ||
|
||
## References | ||
|
||
- [The Ampro Little Board](http://oldcomputers.net/ampro-little-board.html) | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,2 @@ | ||
apple2 | ||
==== | ||
## Prodos, Appledos, and CP/M | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
Apple II disks are nominally fairly sensible 40-track, single-sided, 256 | ||
bytes-per-sector jobs. However, they come in two varieties: DOS 3.3/ProDOS and | ||
above, and pre-DOS 3.3. They use different GCR encoding systems, dubbed | ||
6-and-2 and 5-and-3, and are mutually incompatible (although in some rare | ||
cases you can mix 6-and-2 and 5-and-3 sectors on the same disk). | ||
|
||
The difference is in the drive controller; the 6-and-2 controller is capable | ||
of a more efficient encoding, and can fit 16 sectors on a track, storing | ||
140kB on a disk. The 5-and-3 controller can only fit 13, with a mere 114kB. | ||
|
||
Both formats use GCR (in different varieties) in a nice, simple grid of | ||
sectors, unlike the Macintosh. Like the Macintosh, there's a crazy encoding | ||
scheme applied to the data before it goes down on disk to speed up | ||
checksumming. | ||
|
||
In addition, a lot of the behaviour of the drive was handled in software. | ||
This means that Apple II disks can do all kinds of weird things, including | ||
having spiral tracks! Copy protection for the Apple II was even madder than | ||
on other systems. | ||
|
||
FluxEngine can only read well-behaved 6-and-2 disks. It doesn't even try to | ||
handle the weird stuff. | ||
|
||
Apple DOS also applies logical sector remapping on top of the physical sector | ||
numbering on the disk, and this _varies_ depending on what the disk is for. | ||
FluxEngine can remap the sectors from physical to logical using modifiers. If | ||
you don't specify a remapping modifier, you get the sectors in the order they | ||
appear on the disk. | ||
|
||
If you don't want an image in physical sector order, specify one of the | ||
filesystem ordering options. These also select the appropriate file system; | ||
FluxEngine has read-only support for all of these. | ||
|
||
In addition, some third-party systems use 80-track double sides drives, with | ||
the same underlying disk format. The complication here is that the AppleDOS | ||
filesystem only supports up to 50 tracks, so it needs tweaking to support | ||
larger disks. It treats the second side of the disk as a completely different | ||
volume. | ||
|
||
## Options | ||
|
||
- Format variants: | ||
- `140`: 140kB 5.25" 35-track SS | ||
- `640`: 640kB 5.25" 80-track DS | ||
- Filesystem and sector skew: | ||
- `nofs`: use physical CHS sector order and no file system | ||
- `appledos`: use AppleDOS soft sector skew and file system | ||
- `prodos`: use ProDOS soft sector skew and filesystem | ||
- `cpm`: use CP/M soft sector skew and filesystem | ||
- `side1`: for AppleDOS file system access, read the volume on side 1 of a disk | ||
|
||
## Examples | ||
|
||
To read: | ||
|
||
- `fluxengine read apple2 --140 -s drive:0 -o apple2.img` | ||
- `fluxengine read apple2 --640 -s drive:0 -o apple2.img` | ||
|
||
To write: | ||
|
||
- `fluxengine write apple2 --140 -d drive:0 -i apple2.img` | ||
- `fluxengine write apple2 --640 -d drive:0 -i apple2.img` | ||
|
||
## References | ||
|
||
- [Beneath Apple DOS](https://fabiensanglard.net/fd_proxy/prince_of_persia/Beneath%20Apple%20DOS.pdf) | ||
|
||
- [MAME's ap2_dsk.cpp file](https://github.com/mamedev/mame/blob/4263a71e64377db11392c458b580c5ae83556bc7/src/lib/formats/ap2_dsk.cpp) | ||
|
||
-d | ||
\r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,2 @@ | ||
apple2_drive | ||
==== | ||
## Adjust configuration for a 40-track Apple II drive | ||
<!-- This file is automatically generated. Do not edit. --> | ||
|
||
This is an extension profile; adding this to the command line will configure | ||
FluxEngine to adjust the pinout and track spacing to work with an Apple II | ||
drive. This only works on Greaseweazle hardware and requires a custom | ||
connector. | ||
|
||
For example: | ||
|
||
``` | ||
fluxengine read apple2 --160 apple2_drive | ||
``` | ||
|
||
-d | ||
\r |
Oops, something went wrong.