mdttool/README.md

119 lines
3.7 KiB
Markdown

# MDTTool
MDTTool is a simple multiplatform Python tool for manipulating CF card images
for the Reactive Micro MicroDrive/Turbo card for the Apple II family.
It is written in Python 3 and licenced under GPL v3.
## Usage
There are really three use cases for the tool at the current time:
1. Display MicroDrive/Turbo partition table in human-readable format.
2. Take a CF card image (or raw CF card device) and extract all the
partitions as disk images.
3. Take a list of disk images and construct a MicroDrive/Turbo disk image
(or write directly to the raw CF card device.)
```
Usage:
mdttool [-haxl] [-C nnnn] [-H nn] [-S nn] [-D mode] [-o outputfile] inputfile [inputfile2...]
-h Show this help
-a Assemble CF Card image from list of .PO disk images
-x eXplode a CF Card image into constituent partitions
-l Display partition table
-C nnnn Set number of cylinders (when assembling new image)
-H nn Set number of heads (when assembling new image)
-S nn Set number of sectors (when assembling new image)
-D mode DMA mode (when assembling new image)
mode can be off, iie, gsrom01, gsrom03
```
## Display Partition Table
The `-l` flag is used to display the partition table embedded in a
MicroDrive/Turbo CF card image.
For example:
```
$ mdttool -l cf-card.img
MicroDrive/Turbo Partition Table
Cylinders: 995
Heads: 16
Sectors: 63
GS ROM Vers: 0
# Start End Length
1 256 65790 65535
2 65791 131325 65535
3 131326 196860 65535
4 196861 696892 500032
```
## Explode a CF Card Image into .PO Disk Images
Each partition will be written to a separate file in the current working
directory.
For each partition, `mdttool` checks if the filesystem is HFS (whuch can
be easily identified). If the filesystem is not HFS it is assumed to be
ProDOS format. For both HFS and ProDOS the tool extracts the volume
name and uses for the filename.
For example:
```
$ ~/Personal/Development/mdttool/mdttool -x cf.img
** Partition 1 ProDOS Volume 'SYSTEM.6.0.4'
Writing 33553920 bytes to SYSTEM.6.0.4.po
** Partition 2 ProDOS Volume 'H1'
Writing 33553920 bytes to H1.po
** Partition 3 HFS Volume 'GNO'
Writing 33553920 bytes to GNO.hfs
** Partition 4 HFS Volume 'GS.Apps'
Writing 402653184 bytes to GS.Apps.hfs
```
## Assemble a CF Card Image from a list of .PO Disk Images
This command builds a MicroDrive/Turbo partition table from scratch.
The partition table embeds the physical drive parameters - the number of
cylinders, heads and sectors. It also encodes the setting for the DMA
mode (off, Apple //e, Apple IIgs ROM01 or Apple IIgs ROM03.)
When creating a new CF card image in this way, MDTTool will use the
hard-coded defaults for cylinders, heads, sectors and GS ROM version. These
defaults were copied from typical 512MB CF card.
You can override these with the `-C`, `-H`, `-S` and `-D` command line
options. The heads always seems to be set to 16 and the number of sectors
to 63. However the number of cylinders depends on the size of the CF card
in question.
For example:
```
$ mdttool -a -o new-cf.img partition1.po partition2.po partition3.po partition4.po
Reading partition1.po ...
Reading partition2.po ...
Reading partition3.po ...
Reading partition4.po ...
New CF card image created in new-cf.img
```
Another example, overriding the number of cylinders and setting the DMA mode
for the Apple //e:
```
$ mdttool -a -D iie -C 32000 -o new-cf.img partition1.po partition2.po partition3.po partition4.po
Reading partition1.po ...
Reading partition2.po ...
Reading partition3.po ...
Reading partition4.po ...
New CF card image created in new-cf.img
```