[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [N8VEM-S100:4753] Re: An ARM CPU on the S100 bus

On 7/30/2014 10:49 AM, Andrew Bingham wrote:
I actually have one of Bob Anderson's excellent SBC6120 boards.  Getting
OS/8 up and running was no problem at all.  However the way the PDP-8
handles IOTs almost requires some GALs to interface it with the bus (the
GALs take the PDP-8 IOTs and generate the actual addresses of the
devices on the bus).  You can communicate with 8-bit data IO devices by
leaving off 4 bits of the 12-bit PDP8 word.

There is a *lot* of PDP-8 assembly programming that goes into making a
working system where the use of "modern" peripherals is "transparent" to
OS/8 so that vintage software will run properly.   Bob wrote all this
for the SBC6120, with the BTS6120 monitor.  The HD6120 supports two
types of RAM - 32 Kwords of main memory, and 32 Kwords of "panel" memory
(which was intended to be used for programs that simulate the front
panel operation in embedded sysyetems).  The "panel memory" is mapped to
a ROM on the SBC6120 which has the monitor code and the handler routines
for all the "modern" hardware.

So if we wanted to put a board on the S-100 bus, I would see two
options.  (All of Bob's schematics and the BTS6120 software & source coe
are GPL licensed):
-Recreate the SBC6120 on 1 S-100 board with the RAM, ROM, parallel/IDE
and serial interface chips built in so that we could use the BTS6120
monitor unmodified, and make using our other S-100 boards a "secondary"
feature that we could add at our leisure.  (I think this would be
relatively easy, but it kind of "goes against" the way the
S100Computers.com CPU boards are done)
-Build a board with just the HD6120 and EEPROMS and use 16-bit RAM
transfers and 8-bit I/O transfers to access our regular RAM, Parallel
I/O, Serial I/O, CF Card, etc boards.  Use BTS6120 as an example but
modify the sections of code called to interface with the S-100 hardware.
(I think this would be harder, one of us would have to get pretty deep
into the PDP-8 assembly to make it work).

There were, I believe, 3 different versions of the PDP-11 in ICs, one
with multiple ICs for the CPU and 2 with single-package solutions.  The
big difference is since the HD6120 was a product offered to everyone,
there is a complete datasheet for it.  The PDP-11 ICs were special made
for DEC so while there are DEC "specification" documents, you'd need
BOTH details on the CPU chip and the PDP-11 design details to build a
board that would run vintage software like old Unix "out of the box".


I designed a PDP-8/E FPGA once-upon-a-time. See

Obviously connecting a 12-bit computer to a 8-bit (or better 16-bit) bus
would do-able.

None of the PDP8 peripherals look anything like S100 peripherals so you
could probably forget strict software compatibility. You could probably
patch OS/8 but anything software that touched the bare hardware just
wouldn't work. This SBC6120 did a proper implementation of the TTY IOTS - which is probably mandatory.

The big issue is how IOT instruction work. Many IOT instructions have
'skip on peripheral status bit set' semantics. The HD6120 has a SKIP
input pin on it's bus for that purpose. I just don't see how you could
implement an IOT instruction across an S100 bus.