Front panel controller

From: Gooijen H <GOOI_at_oce.nl>
Date: Wed May 12 02:01:20 2004

Alright, I am awake. Several of you are heading to bed ...
I will give a short description of my project, then you can decide
for yourself which way you want to go.
Warning! Sort of longish reply ahead!
My design consist of 2 boards, one is called "Core", the other "I/O".
Both boards are almost Eurocard size. Power supply: only +5 Volts.

Features of the Core board.
---------------------------
Chips: 6809, 6821, 6850, 6264, 27128 and 27256, in words: the CPU
is the 6809 which is a 8/16 bit quite powerful CPU which has good
high-level language support (think of C), and you can read more abt
the 6809 in an other recent thread. The 27128 is 16k EPROM at memory
C000-FFFF, of which half is filled with a debug monitor and software
to control the I/O board. The 27256 is 32k -optional- EPROM at 4000-
BFFF. The 6264 is 8k RAM at 2000-3FFF. The 6821 (2x8bit I/O) forms
the buffered interface to the I/O board(s). Last, the 6850 is the ACIA,
which makes the serial (9600 Bd) connection to *any* host computer.
On board level conversion makes it a true RS-232 port.
The ACIA and the PIA are mapped in $0080-$00FF, that is legacy from
the design around the 6802 (RealConsole Mk I).
The serial port can be connected to a terminal (e.g. VT220) and you
use the monitor to debug your own (assembler) programs. Or you connect
the serial port to a PC, SUN workstation or whatever and control the
"thing" via the serial port. My application for it is to control the
I/O that drives LEDs and read switches from a home-brew console.
I have made some patches in SIMH, and I can *boot* RT11 via my console
as if were the real thing. See www.pdp-11.nl , click in the left menu
on "homebrew PDP-11". On the opening page click in the top section on
"SIMH software", "new design" and "action!" for more ...

Features of the I/O board.
--------------------------
The I/O board has 3 LS138 (1 to 8 decode chips) and octal latches
(373 and 374). One I/O board can have up to *eight* 8-bit output
ports and *eight* 8-bit input ports, thus there is on one I/O board
64 outputs and 64 input available, enough to drive a full PDP-11/70
console. The I/O board is connected to the Core board with a simple
20-wire flat cable. If what you want to control is bigger, or perhaps
totally different, you can cascade (theoretically) up to 8 I/O boards
by just running that flatcable from I/O board to I/O board.
A single jumper on the I/O board settles the addressing issues.
The practical limit of I/O boards is six (due to fan-out load issues),
but if you insist and go outside specifications I guess you could get
away with 7 I/O boards.

Applications for the Core and I/O board.
- First, the mentioned console, but *NOT* limited to PDP-xx/xx consoles!
Think of the IBM S3; not a small one, but it can be connected.
The console can be home made, but if you have a *real* console laying
around, that can be connected too! (I'd prefer a real console to go
with a real machine tough ...)
- Why limit to "blinkenlights" consoles? You can just as easy connect
it to the more modern console like the 11/34 or 11/60 ! The control of
the 7-segment displays is of course in software not with hex to 7 segment
decoder chips!
- Use some I/O to make a parallel I/O port (if you need it). I am not sure
if the speed will be sufficient to connect an IDE drive (in PIO mode 1), but
that is something I intend to try ...
- Whatever project to wanted to do! There is enough I/O capability ...

The monitor software is described on the site mentioned. If you know
the Motorola Mikbug monitor, this will look familiar.
The RealConsole software controls the I/O ports. The input ports are
read periodically in an interrupt service routine. The *debounced* data
from the switches is stored in memory locations, so your application can
read the switches from those memory locations. Several "hooks" (in fact
small subroutines) allow you to control any bit of any output port.
There are a few 'special' routines to handle the issues involved with
momentary push-buttons, toggles. A depressed toggle and then released
would mean that in memory that specific bit would be set for a brief
moment and then be reset. To solve that issue, you can specify via
a hook on which input port(*s*), which bit(*s*) are connected to toggles.
Those bits are processed differently. Once set (by pressing the toggle)
that bit remains set until you command (an other hook) to return to zero.
So, you can process each toggle when you want, and when that is actually
done you reset the "toggle".
Some "higher" level commands are e.g. "Axxxxx" where the "x" is a hex
number. This command will put xxxxx on the Address LEDs. Likewise, there
is a "Dxxxx" command. You figure out what it does :-)

Project status
--------------
The project was ready to go manufacture the lay-out PCB set prototype
tpo build it and check if it does not contain errors. This week I am
working on the "upgrade" from the 6802 to the 6809 CPU, because of its
better availability. Performance improvement etc. are a nice side effect
of this move.
When the prototype is checked (within one month), the board sets are
"mass produced" in the US. Silkscreened, solder mask, etc. - professional
quality. To keep those costs low, it takes 5 weeks to get them made.
(could be done in a few days, but don't ask what the compay charges!)
You can order the board set (or more I/O Boards than Core boards) either
bare, or together with the "difficult" chips, or as a complete kit
that contains all components. I am not going to make much profit on it,
but when more people join the bigger discount we can get on the parts!
For those who rather not solder the boards, I am prepared to do that
work and test them (for a fee though).
I will write a "manual" that described the software, give a step-by-step
DYI building the boards (with fotographs), connection diagrams, multiple
I/O Board configuration plus the fan-out load calculations.
>From my site you can download the software source code and the changes
made to the current version of SIMH.
Believe me, I am dedicated to this project!

As Vince said, he did the PCB design and solved the routing issues.
We try to buy the parts as cheap as possible, so those will probably
be bought in the US and not where I Live - The Netherlands. We are
working on how to ship it all. It is a little stupid to ship many
parts from US to Holland, assemble the kits, anmd the send back some
70% of it all to the US again ...

If you have any questions regarding this project, ask!
I will try to give an answer as good as I can, as soon as I can.
I will help thinking about your specific application. For example, one
guy asked for the possibility to connect an 8-bit input port directly
to an 8-bit output port and use the combination as a bi-directional
8-bit port. The final idea was building a setup to test M-boards!
(BTW, the answer is yes with a minor patch!)

  kind regards,
- Henk, PA8PDP
  gooi_at_oce.nl
Received on Wed May 12 2004 - 02:01:20 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:37:10 BST