I'd imaged my A1200's 1.3GB IDE hard disk — but I wanted to replace it with something more modern...
The obvious choice to replace an IDE hard disk is a Compact Flash card. I had a 4GB card and an IDE adapter around already. I reasoned that once I'd imaged a load of floppies onto the CF filesystem, I could move the CF card to a Linux machine to copy them off.
Using a PCMCIA disk box
I'd also bought this at a boot fair a few years ago, along with some Amiga software:
This is a Zappo-branded Archos AmiQuest disk box, which plugs into the A1200's PCMCIA connector and takes a 3.5" IDE disk — and yes, that's the same Archos who make media players and Android tablets these days. The manual and installation disk are available from resource.cx. I'd never used the PCMCIA connector before; I was pleased to discover that it did actually work.
I fitted the CF adaptor to the box using a standoff:
... and booted up the installation disk, which just contains the normal HDToolbox partitioning software. This didn't blink at partitioning a 4GB disk, although formatting the resulting partitions took a long time (since I didn't do a non-verifying quick format):
Once it was done, I had what appeared to be a 4GB floppy disk:
Installing a minimal Workbench 3.0 system was similarly straightforward; I've got several sets of installation floppies.
It turns out that while the filesystem is apparently fine with a 4GB partition, some other bits of software aren't — for example, the Workbench installer thinks there isn't enough space to install the fonts. Keeping the partition sizes under 2GiB avoids this.
I then moved the card to my Linux machine — which couldn't read
the partition table.
Hmm.
Dumping the CF card with od
revealed the cause:
3740000 O D 001 S \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
444f 5301 0000 0000 0000 0000 0000 0000
3740020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000 0000 0000 0000 0000 0000 0000 0000
That's the start of an Amiga bootblock — but it's been
byteswapped!
It ought to start DOS\001
(as the equivalent did on the real hard
disk).
So the AmiQuest box has its IDE data lines connected backwards from the
usual convention for the Amiga — which means that it'll work fine
by itself, but you can't move a disk out of it to a different IDE
interface.
The AmiQuest manual doesn't mention this, which isn't terribly
surprising; it might just never have occurred to anyone to try it.
ADFlib provides userspace tools for reading Amiga filesystems; hacking ADFlib to always byteswap its input made the filesystem readable. However, ADFlib is pretty clunky, and I'd much rather just be able to mount the filesystem directly to read it. So it looks like the AmiQuest box isn't going to be the right way to do this.
Using an internal CF adapter
Plan B: install the CF adapter inside the A1200, using the cables for the 3.5" hard disk. With some careful folding of cables, the CF card is accessible without needing to move the keyboard.
It would be pretty straightforward to mount the adapter at the left-hand side above to the PCMCIA slot, but I didn't really want to cut a slot in the case for this; it's easier just to leave the top off.
I repartitioned the CF card using HDToolbox to match the partitions from
the 3.5" hard disk, setting MaxTransfer
to 0x1FE00
as
recommended for CF cards,
and adding an extra 2GB partition to fill up the rest of the space.
I moved it back to the PC:
# ./amiga-fdisk -l /dev/sdb
Disk /dev/sdb: 16 heads, 63 sectors, 7964 cylinders, RDB: 0
Logical Cylinders from 2 to 7963, 516096 bytes/Cylinder
Device Boot Mount Begin End Size Pri BBlks System
/dev/sdb1 * * 2 172 86184 -1 0 Amiga FFS
/dev/sdb2 * 173 1428 633024 0 0 Amiga FFS
/dev/sdb3 * 1429 1635 104328 0 0 Amiga FFS
/dev/sdb4 * 1636 2483 427392 0 0 Amiga FFS
/dev/sdb5 * 2484 7963 2761920 0 0 Amiga FFS
... and copied over the original partitions from the image of the 3.5"
hard disk, using the "Begin/End" values reported by amiga-fdisk
to
find the offsets:
dd if=a1200-hd.ahd of=/dev/sdb bs=516096 skip=2 seek=2 count=170
dd if=a1200-hd.ahd of=/dev/sdb bs=516096 skip=173 seek=173 count=1255
dd if=a1200-hd.ahd of=/dev/sdb bs=516096 skip=1429 seek=1429 count=206
dd if=a1200-hd.ahd of=/dev/sdb bs=516096 skip=1636 seek=1636 count=847
Putting the CF card back in the Amiga gave me a working clone of the original system — now with no moving parts.
Building a new AmigaOS system
I decided to start from scratch with a clean installation for disk-imaging purposes. I created three partitions of 1GB, 1.5GB and 1.5GB (i.e. all under 2GiB), and did a full Workbench 3.0 installation on the first partition. In addition, I installed the latest versions of:
- SetPatch, which has the official fixes for various OS bugs.
- Term, for serial communications.
- KingCON, which gives better terminal windows with scrollback and filename completion (indeed, it's better at the latter than most Unix shells). Unfortunately there's no newer version of this than the one I used to use — and there's a separate patch that needs applying to fix some problems.
- MCP, which does a comprehensive range of Workbench commodity stuff — keyboard shortcuts, a screensaver, etc.
So my A1200 now works very nicely — with more memory and disk space than it ever had in the 1990s. Having hooked up all the floppy drives I could find, I was then ready to start imaging floppy disks...