[abc80] abc80sim

H. Peter Anvin hpa at zytor.com
Sat Sep 29 15:05:51 PDT 2018

So after another sleepless night, abc80sim now has a working CAS: for ABC800,
and the print/filesharing interface is hooked up to the PR serial port ("CH
A") in a way that should genuinely work on a physical ABC800 as well, without
any extra hardware.

Unfortunately the ABC800 is limited to clock frequencies that are divisors of
93750 bps because the serial port system is fed from a 1.5 MHz clock.  I am
not sure from the documentation whether the minimum divisor is 1 or 2; my
*guess* is that it is 2 as it looks to me that the CTC will output DC for a
divisor of 1.

Either way, the smallest divisor that generates a standard baud rate is 5
which corresponds to 18750 bps, within tolerance for 19200 bps (the manual
says 19200...)  Many modern (non-UART, like USB based) serial ports can run at
nearly arbitrary speeds, though.

In synchronous mode (available only on the V24/CH B serial port, and requires
opening the machine to flip DIP switches around) much higher speeds are
possible, up to about 500 kbps (at which point one is limited by Luxor
apparently not having bothered to hook up the WAIT# line from the SIOs to the
CPU and so explicit handshake is needed for everything. However, this probably
requires at least a small bit of custom external hardware (possibly as simple
as a couple of resistors and diodes) since finding ready-made SPI or other
synchronous-serial dongles tolerant of 12 V aren't exactly common; the
CY7C65211   Either way they are far less common and convenient than
asynchronous USB serial adapters. Too bad the ABC series use a very different
pinout than what is common today.

The sad part is that now I have three different implementations of the SIO,
each with different arbitrary limitations (and the ABC80 model has two
different PIO models); this really should be fixed.

(That being said, it would be *awesome* if the ABCio card would provide some
sane way to connect to abcprintd using the ABC-bus oriented interface, which
in turn is approximately based on the parallel port cards for ABC80.)

I have not yet ported the device driver: I want to write it to share as much
code as possible if at all practical, and to make it possible to stuff it in
ROM or RAM. I also want to build the proper standalone abcprintd from common
source code, which really shouldn't be very hard at all.

I would still love to find a circuit diagram and ROM dumps for ABC800C (for
circuit diagram just the VU card would obviously be enough.)  I'm 99% sure it
used the Mullard SAA5020/5052 Teletext chipset rather than a CRTC, but it
would be lovely to see that confirmed and what the programming interface
looked like.

Out of the rest of the 800 series the 800C is the most interesting to me...
the 800M and 802 are virtually identical from a programming perspective with
the only exception of optional HR graphics vs MEM area - an easy enough thing
to deal with; and the 806 feels like a huge set of bolt-ons to a computer that
is too small to handle it.


More information about the ABC80 mailing list