My first computer was an 8 Bit Atari XL/XE model and it took not a long time before I started to add several self-made enhancements to it. The largest one of these enhancements was a CPU extension called HyperSpeed XL/XE, that adds a 65C816 processor to the small XL/XE. Actually, the designation “CPU extension” is not true. Rather it is a more or less individual computer that takes control over the attached XL/XE and has access to all of its components.
A few features:
- The original 6502 inside the XL/XE is kept intact and can be released on demand. This is important in order to run software that is very timing sensitive or makes use of illegal 6502 instructions. Basically, you have a “normal” machine when you make use of this feature.
- The 65C816 can access the Atari’s components while the old CPU is running. Whenever the 65C816 wants to access the Atari’s bus, the old 6502 is stopped just like when the ANTIC wants to draw some data out of the Video RAM.
- The projected clock frequency of the 65C816 was 14MHz, and this clock is basically completely asynchronous to the Atari’s clock. However, that time I made some small mistakes in the handling of the asynchronous clocks that lead to some problems. So I took the 14.xxxMHz that is used inside the Atari as base clock. This results in about 7MHz for the 65C816 and the system is running very stable because of the synchronous clocks.
Note: It should be possible to fix the clocking problem by reprogramming the clock manager, but I was too lazy to do this…
- HyperSpeed has it’s own fast memory where the 65C816 can work without the need to access the Atari’s memory.
- A banked memory management of the Atari’s memory makes it possible for the 65C816 to map Atari-Memory only where it is needed – for instance the Video RAM. With this feature the general speed can be increased a lot without rewriting software.
That time, I made a few benchmarks with a program called “SysInfo” from Konrad M. Kokoszkiewicz, and the speedup with the OS shadowed in fast, local memory was quite impressive.
- There’s a special feature that allows HyperSpeed to capture accesses of the 65C816 to the Atari’s hardware registers ($D000-$D7FF), so that Operating System software can decide how to proceed in this case. However, as far as I remember, this feature was not fully implemented yet (especially the software-side).
Of course, there are also some nasty things associated with HyperSpeed XL/XE. First, it cannot be simply attached to the Atari XL/XE like a “normal” expansion card. A few changes have to be made on the XL/XE motherboard and several signals that are not available on the expansion slot have to be brought via an extra cable to the HyperSpeed board.
Additionally, a connection to the XE models requires an extra adapter board.
The resulting system is from a mechanical point of view a very bad one (a big “Klapperatismus”, as we say in Germany 🙂
These things also have influence on the stability of the whole system, that won’t be improved…
Another issue is the need of the eight-fold CPU clock for synchronization purposes. This clock is only in Atari XL/XE models with FREDDY (DRAM-Controller) available. Others have got the double CPU clock only. Theoretically, it should be possible to live just with the doubled clock, but only with a degradation of performance for accesses onto the Atari’s bus. What might be considered today is the use of a clock multiplier (PLL).
Hardware HyperSpeed XL/XE is built of the following components:
- WDC 65C816, 16-Bit CPU compatible to 65C02, up to 14MHz clock
- WDC 65C22 VIA for additional IO-Lines and control stuff
- A ROM socket that accepts Flash EEPROMs up to 512kB
- Three RAM sockets for up to 3x128kB of fast static RAM
(Wait States can be inserted for slow RAMs or ROMs)
- Real Time Clock
- several supporting chips such as bus drivers, programable logic devices, etc. for maintaining the functionality
… is a 2-layer PCB designed with Eagle from CadSoft and was manufactured by a professional company (thanks to Sven Lasch!). The components were manually mounted.
There’s a quite extensive documentation available as gzipped PostScript or PDF. Please excuse the more or less bad English, but that time my English was not the best and I do not see any need to enhance the documentation regarding this issue …
As usual, things change and I’ve made no further development on HyperSpeed since 1996. Today, I’m using computers more as a tool to do something with them rather than just developing them for no specific need.
HyperSpeed in its current state is quite stable (under the conditions described above) and for my needs it is working fine. For instance, I have used it as development platform for my DAT Recorder in order to assemble code, test some routines, and misuse it as a Flash programmer.
For those who are interested you can find additional information here: