mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
First pass at automatic document generation.
This commit is contained in:
@@ -1,101 +0,0 @@
|
||||
Disk: Micropolis
|
||||
================
|
||||
|
||||
Micropolis MetaFloppy disks use MFM and hard sectors. Mod I was 48 TPI and
|
||||
stored 143k per side. Mod II was 100 TPI and stored 315k per side. Each of the
|
||||
16 sectors contains 266 bytes of "user data," allowing 10 bytes of metadata for
|
||||
use by the operating system. Micropolis DOS (MDOS) used the metadata bytes, but
|
||||
CP/M did not.
|
||||
|
||||
Some later systems were Micropolis-compatible and so were also 100 TPI, like
|
||||
the Vector Graphic Dual-Mode Disk Controller which was paired with a Tandon
|
||||
drive.
|
||||
|
||||
**Important note:** You _cannot_ read these disks with a normal PC drive, as
|
||||
these drives are 96tpi. The track spacing is determined by the physical geometry
|
||||
of the drive and can't be changed in software. You'll need to get hold of a
|
||||
100tpi Micropolis drive. Luckily these seem to use the same connector and
|
||||
pinout as a 96tpi PC 5.25" drive. In use they should be identical.
|
||||
|
||||
Reading disks
|
||||
-------------
|
||||
|
||||
Based on your floppy drive, just do one of:
|
||||
|
||||
```
|
||||
fluxengine read micropolis --143 # single-sided Mod I
|
||||
fluxengine read micropolis --287 # double-sided Mod I
|
||||
fluxengine read micropolis --315 # single-sided Mod II
|
||||
fluxengine read micropolis --630 # double-sided Mod II
|
||||
```
|
||||
|
||||
You should end up with a `micropolis.img` of the corresponding size. The image
|
||||
is written in CHS order, but HCS is generally used by CP/M tools so
|
||||
double-sided disk images may need to be post-processed. Half-full double-sided
|
||||
disks can be read as single-sided disks to work around the problem.
|
||||
|
||||
The [CP/M BIOS](https://www.seasip.info/Cpm/bios.html) defined SELDSK, SETTRK,
|
||||
and SETSEC, but no function to select the head/side. Double-sided floppies
|
||||
could be represented as having either twice the number of sectors, for CHS, or
|
||||
twice the number of tracks, HCS; the second side's tracks in opposite order
|
||||
logically followed the first side (e.g., tracks 77-153). Micropolis disks
|
||||
tended to be the latter.
|
||||
|
||||
It's also possible to output to VGI, which retains OS-specific "user data" and
|
||||
machine-specific ECC. Add `--vgi` to the command line after the chosen
|
||||
Micropolis profile:
|
||||
```
|
||||
fluxengine read micropolis --143 --vgi # single-sided Mod I
|
||||
fluxengine read micropolis --287 --vgi # double-sided Mod I
|
||||
fluxengine read micropolis --315 --vgi # single-sided Mod II
|
||||
fluxengine read micropolis --630 --vgi # double-sided Mod II
|
||||
```
|
||||
|
||||
You should end up with a `micropolis.vgi` instead. The format is well-defined
|
||||
for double-sided disks so post-processing is not necessary.
|
||||
|
||||
While most operating systems use the standard Micropolis checksum, Vector
|
||||
Graphic MZOS uses a unique checksum. The decoder will automatically detect
|
||||
the checksum type in use; however, a specific checksum type may be forced
|
||||
using the `--decoder.micropolis.checksum_type=n` where the type is one of:
|
||||
|
||||
| Type | Description |
|
||||
|------|-----------------------------------------|
|
||||
| 0 | Automatically detect |
|
||||
| 1 | Standard Micropolis (MDOS, CP/M, OASIS) |
|
||||
| 2 | Vector Graphic MZOS |
|
||||
|
||||
|
||||
Writing disks
|
||||
-------------
|
||||
|
||||
Just do one of:
|
||||
|
||||
```
|
||||
fluxengine write micropolis --143 # single-sided Mod I
|
||||
fluxengine write micropolis --287 # double-sided Mod I
|
||||
fluxengine write micropolis --315 # single-sided Mod II
|
||||
fluxengine write micropolis --630 # double-sided Mod II
|
||||
|
||||
fluxengine write micropolis --143 --vgi # single-sided Mod I
|
||||
fluxengine write micropolis --287 --vgi # double-sided Mod I
|
||||
fluxengine write micropolis --315 --vgi # single-sided Mod II
|
||||
fluxengine write micropolis --630 --vgi # double-sided Mod II
|
||||
```
|
||||
|
||||
Useful references
|
||||
-----------------
|
||||
|
||||
- [Micropolis 1040/1050 S-100 Floppy Disk Subsystems User's Manual][micropolis1040/1050].
|
||||
Section 6, pages 261-266. Documents pre-ECC sector format. Note that the
|
||||
entire record, starting at the sync byte, is controlled by software
|
||||
|
||||
- [Vector Graphic Dual-Mode Disk Controller Board Engineering Documentation][vectordualmode].
|
||||
Section 1.6.2. Documents ECC sector format
|
||||
|
||||
- [AltairZ80 Simulator Usage Manual][altairz80]. Section 10.6. Documents ECC
|
||||
sector format and VGI file format
|
||||
|
||||
[micropolis1040/1050]: http://www.bitsavers.org/pdf/micropolis/metafloppy/1084-01_1040_1050_Users_Manual_Apr79.pdf
|
||||
[vectordualmode]: http://bitsavers.org/pdf/vectorGraphic/hardware/7200-1200-02-1_Dual-Mode_Disk_Controller_Board_Engineering_Documentation_Feb81.pdf
|
||||
[altairz80]: http://www.bitsavers.org/simh.trailing-edge.com_201206/pdf/altairz80_doc.pdf
|
||||
Reference in New Issue
Block a user