Combine the DCJ11 SBC with Breadboards


Expansion Slot and Simple Project

It is obvious that you don’t want to create a distinct PCB for the expansion slot for every small project or circuit you want to test. Therefore I designed a small circuit board that fits into the card edge holder of the DCJ11 SBC and has two rows of pins that accept Dupont wires typically found for breadbaord projects. This can be used to safely connect signals from the expansion slot to a breadboard and try your first ideas. Here you can see the 3D model from KiCAD.

Breadboard Connector

This will be much safer than the previously shown “non-existant memory Hack” in the article about the optional memory and memory logic. Unfortunately I messed with some silkscreen texts, DAL9 on the lower row should be DAL8 and the second WEL is actually ALE

Breadboard Connector PCB

Here you can see the finished adapter in action in one of the projects described below.

Breadboard Connector In Action

Breadboard Interface Experiments

Note that during the testing of the DCJ11 SBC I built many of the experiments that were intended to be built using this breadboard interface expansion card with my first DCJ11 SBC Prototype which was equipped with pin plug strip lines instead of an edge card holder, so many pictures you see here with experiments that connect to the expansion slot do not use the breadboard expansion card. But this is functionally identical. So don’t get confused if you see breadboard experiments without the breadboard interface card.

Second Serial Interface using DC319

One of the first experiments using breadboard to extend the DCJ11 SBC was adding a second serial interface using a second DC319.

Breadboard Connector w/ DC319

This is a relatively simple addition however requires quite some connections as the DC319 interfaces to the multiplexed data/address bus with all 16 data lines.

The circuit latches address bits A0..4, A9, A10, A11. Address bits A0, A1 and A2 are routed to the DC319. A3 and A4 are not used in this circuit and A9, A10 and A11 are connected to the select inputs of a 74HCT138 3-line to 8-line decoder, which divides the IO address in 8 ranges. Note you would normally use A12 to decode the IO page addresses, however I wanted to be able to distinguish the standard console address 1775608 from the standard base address of the first DL11 serial interface which is 1765008. By omitting A12 each output of the 74HCT138 will be active for two address ranges, but in our case this is not an issue. This second serial interface was actually used for the development of the TU-58 routines for the stand-alone FIG Forth.

Breadboard Connector w/ DC319

For this experiment you need to disable the on-board logic for the IO signal generated by U14, the 74HCT139. I simply bended Pin 6 of the IC and reinserted it.

Bent Pin6 of U14

IO is now replaced by CON which is generated by the 74HCT138 of the circuit and connects to the IO pin of the expansion slot. Now only addresses 177xxx..1777768 select the on-board console and the addresses 176xxx..1767768, which includes the standard address for the first serial line unit in a PDP-11, now selects the DC319 of the circuit. Therefore you can always use the standard addresses for the console and the SLU.

Second Serial Interface using CDP6402

Of course I also wanted to verify the second serial interface option with the final version of the DCJ11 SBC. But this time I decided to use a CDP6402 as UART.

Breadboard Connector w/ DC319

There are several reasons, first I wanted to verify the design of the enhanced glue logic. The glue logic not only emulates bit 7 of the RCSR and XCSR register but as well includes the necessary logic to implement bit 0 of XCSR, the BRK bit. The BRK bit is necessary to generate the RS-232 BREAK signal required by the TU-58 protocol. Second I wanted to profit from the higher baud-rates possible with the CDP6402, which supports up to 115'200baud. And last but not least I wanted to test the option for an alternative to the DC319.

The glue logic for the serial line unit uses a GAL22V10 in order to minimize the number of wires on the bread board. This time only a minimum of address bits are latched: A1, A2 and A9. The DC319 does not really require A0. When the DCJ11 reads from external IO register it always reads 16-bits regardless whether a word or byte was requested. When we write to the DCJ319 then the UART is only selected when WEL as asserted which is only the case when the DCJ11 writes a word or the low byte of a word, in either case A0 is low. Also only A9 is latched as I only wanted to distinguish the standard console address 1775608 from the standard base address of the first DL11 serial interface which is 1765008. A9 happens to be the highest address bit which is different. For the purpose of the test any other addressbit that differs between the two devices would do the job, i.e. A4 or A5 would have been as well an option.

Breadboard Connector w/ CDP6402

Again you need to disable the on-board IO signal. If you are using the TTL devices for the glue logic, then this would be the same pin of the same U14 you have to bend as in the experiment with the DC319. In case you are using a GAL for the DCJ11 SBC glue logic, then you could either reprogram the GAL so that this signal is no longer generated or use the same trick as with the TTL devices, only this time you need to bend Pin 18 from U18, the GAL16V8.

Bent Pin6 of U14

Download

CUPL project including JEDEC file to program GAL16V8 used for the second serial interface using the CDP6402

GPIO using W65C22S Versatile Interface Adapter (VIA)

When you think about a DCJ11 SBC computer you often come accross the Falcon, officially called SBC-11/21 or KXT11-AA (M8063) and KXT11-CA (M8377). This Q-Bus card was using a T11 processor and featured a total of three serial line units, three programmable timers and 20 general purpose IO pins. The timers and GPIO were provided by a Zilog Z8036 Z-CIO. As I’m a big fan of the 6502 architecture and because I’m more familiar with the peripherals for the 6502 systems I decided to use a 6522 Versatile Interface Adapter (VIA) for the GPIO, or to be more specific the W65C22S from WDC, which is the CMOS version of the MOS6522 and is still in production. Also it is much faster which makes it easier to integrate with the DCJ11 bus.

Here you can see the setup which was used to verify the synchronization logic of the asynchronuous bus of the DCJ11 and the synchronous bus of the W65C22S. In fact only one Pin PA0 was used to blink a LED.

Breadboard Connector w/ DC319

Again the circuit is quite simple and it requires as well that the on-board IO signal is disabled. This time I was lazy and used two GALs. But only U2 is special. The GAL16V8 just combines the address latch with the address decoder and could easily be replaced by a 74HCT574 and a 74HCT138 as with the two serial interface projects.

Breadboard Connector w/ CDP6402

I will go into more details about the logic and the design of the GAL22V10 in the next chapter.