HyperSpeed XL/XE, A Processor Extension
for Atari XL/XE
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).
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
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