Roughly 20 years ago, when I was involved in the Cambridge University Computer Preservation Society, I was given three A680 main boards by an ex-Acorn employee.
I've not done much with them, and thought I should document these boards a little! The machine itself is pretty well-documented on Chris's Acorns.
As the A680 was a prototype-only machine, I'm not entirely sure if these boards ever had a case - they've got a little plastic foot on the back to allow them to rest on a surface without being mounted in a case.
They're quite clearly prototype-y - they've all got bodge wires on them, pretty much everything's socketed, EPROMs for ROMs, etc. One of them has a little daughterboard to adapt the surface-mount CPU to the socket, and one of them is missing the CPU. It looks like the internal model number is 0174 or 0274 (I don't know much about Acorn model numbers).
Photos here!
Chris's Acorns contains some schematics as part of the official documentation, but I managed to get another copy via a different route:
Back when I first got the boards, I mentioned this to another CUCPS person, and they told me they could get me schematics, which might be useful if I were to play about with the boards... and they did! It appears they came from a different source, because they have different engineering metadata stuff around the edge of the schematics, which is kind of interesting, but I suspect the schematics from the above link will be better for most users.
I have scanned (and reassembled the dodgy photocopying) here.
The roms directory contains the 4 EPROM images that each
provide a byte of the 32-bit data the CPU needs. The a680.bin
file
interleaves the ROMs to produce the image seen by the processor. The
ROMs contain little-endian ARM code, which I've done a little
reversing of in Ghidra.
The EPROMs are half-empty, having 256kB of contents in 512kB total EPROMs (4x128kB). They are labelled "0274,20[0-3]-C BOOT ROM [0-3] (C) ACORN 1988".
They appear to run the self-tests 1-7 as shown on the hexadecimal display, only doing the follow-up tests if the NVRAM has a bit set to run these extra tests.
I have tried to avoid reversing the whole ROM, concentrating on just the self-diagnostics, but from the strings involved it looks like it has the following modules:
Name | Help | Version |
---|---|---|
Acorn ADFS | ADFS | 1.02140 DEVELOPMENT VERSION |
Debugger | Debugger | 1.00 (11 Sep 1987) |
FileCore | FileCore | 1.02117 DEVELOPMENT VERSION |
FileSwitch | FileSwitch | 1.29 (19 Jul 1988) |
UNIX BOOT system | 0.32 (19 Jul 1988) | |
UNIXCLI | UNIX boot CLI | 0.02 (18 Jul 1988) |
UtilityModule | CLI utilities | 0.32 (19 Jul 1988) |
If you want to poke around further, you can open up the Ghidra image!
It also looks like some parts of the OS_CLI
were removed to make
space - the ROM contains "Removed for UNIX version"." I have not dug
further.
I have exported my reversing so far as a680.bin.gzf
, from Ghidra
10.1.3.
TODO: Cross-checking contents between EPROM sets.
TODO: The board has 16 GALs on it. I have yet to try dumping them, and don't know if they're protected.
I have managed to get one of the boards to POST. Looking at the schematics, it appears the -5V rail is only used to pass through the -5V supply to the backplane. As such, I managed to power the board from the floppy connector of an ATX power supply (5V and 12V).
On initial power-up it fails the DRAM test (step 5), but once warmed up a little it gets as far as step E. This video shows POST process at double speed:
- Chris's Acorns includes the Technical Reference Manuals, which are pretty good for technical details.
- Data sheets for the Acorn custom ICs are available on BitSavers.
- The ARM instruction set was very helpful for understanding the bits of assembly that are not well-supported by Ghidra.
- When trying to reverse the more Acorn-y parts of the ROM, Archimedes Operating System: A Dabhand Guide by the van Somerens was a helpful introduction, while the RISC OS Programmer's Manuals provided detailed information.
- Theo Markettos' Acorn technical documents gave another view.
I've copied key datasheets to the datasheets directory. They're pretty small and it makes this repo rather more self-contained.