2012-12-21 · in Media Archiving · 929 words

X-Copy

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:

AmiQuest/Zappo disk box

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:

AmiQuest with CF adapter

... 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):

Verifying the CF disk

Once it was done, I had what appeared to be a 4GB floppy disk:

Empty disk, 4GB free

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.

A1200 with CF adaptor

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.

A1200 running off CF

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:

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...