Tools

Some utilities to help you managing your hardware. Some are self-written by the authors, some are linked to the web.

UniProbe - an UNIBUS signal adapter

Category: Tools
Written by Administrator

When repairing DEC PDP-11s there's always the need to see whats happening on the main system bus. On older 11s this is the UNIBUS.

After several try-and-error cycles, I think I now have the perfect signal adapter for UNIBUS ... calling it "UniProbe". In KiCAD 3D rendering it looks like this:

uniprobe3d total

Such an adapter needs to fulfill these criteria:

  1. must be pluggable into UNIBUS backplanes, and must not break the UNIBUS signal or termination chain.
  2. should have some lights to visualize bustraffic and error conditions.
  3. must have some means to connect logic analyzer probes to UNIBUS signals.
  4. lights and probes must be accessible even if the adapter is completely hidden in the card cage.
  5. be mechanically robust and compact enough to make not more problems than it helps solving.

My typical setups always violated condition 5:

ratsnest

 

Front panel LED and power

All 56 UNIBUS signals are shown by diagnostic LEDs on card front. Also supply powers are routed out for easy testing.

uniprobe3d leds

When viewing onto the card front from outside the PDP-11 card cage, we see these indicators:

1. Far left power connector:

uniprobe3d front power

2. Left half of LEDs:

uniprobe3d front leds left

3. Right half of LEDs:

uniprobe3d front leds right

These LEDs ares not just to have a light show. Dead bus driver may cause constant "active" levels, these are visible immediately.

Also an open "GRANT" chain shows up immediately by "active" BG* signals.

The LED drivers are analogous op amps, the LEDs show the voltage level ... which may be of some use. Input impedance is very high, so an open signal input may cause irregular flicker.

Most LEDs are lit on "LOW" voltage on the bus, as this is defined as "active" or "asserted". Only BG4,5,6,7,NPG light on "High".

 

Standard UNIBUS, Modified UNIBUS

There are 2 different "UNIBUS" connectors on PDP-11 backplanes.

The "Standard UNIBUS" slot typical sits at the edge of backplanes, and is used to connect backplanes via UNIBUS BC11 white flat cable, or hold an terminator.

backplanes

The "Modified UNIBUS" ("ModUB") often occupies Slot A and B of the hex socket which have an SPC in slots C to F.
It is optimized to hold memory cards and differs from the Standard UNIBUS:

  • There are additional voltages for memory boards exposed.
    We have -5V and +20V for core, and Battery Backup voltages of -15V, +15V and +5V there.
  • There is support for a separate parity controller (M7850). We have extra parity lines, and a internal SSYN signal, all that is not used in UniProbe.
  •  the Bus GRANT lines BG4,5,6,7 and NPG, which are daisy chained from socket to socket, are missing.
    This has some advantage, as a card can plug into a ModUB socket without need to open or close GRANT jumpers.
    Just plug in "on-the-fly".
  • the "SACK turnaround" logic of M9302 is not used. Good if you don't have these 8881 and 8837 DEC driver chips.
  • as regular terminators remain plugged in, UniProbe on "Modified" sockets are not allowed to have own terminator packs.
    This makes UniProbe "neutral" to the bus, you can plug in and out without consequences.

Putting a standard UNIBUS card into a "ModUB" socket may cause major damage, as the >15V voltages are routed to signal wires then.
See the BIG warning label on the M9302 card below!

Signal differences between Standard and Modified UNIBUS are (from the 11/34 system manual):

stdub modub

UniProbe can be build for either Standard or (exclusive or!) Modified UNIBUS sockets.
If build for ModUB:

  • set the solder jumpers to 2-3 position
  • do not populate the M9302 "SACK turnaraound logic" U1,U2,U3
  • do not populate the BG4,5,6,7 and NPG LEDs
  • replace the 180/390 ohm terminator resistors by high ohm 100k/100k.
    This allows for diagnostic of open signal wires: LEDs light with half intensity then.
  • use a two-row male connector for voltage measuring, the additional supply voltages can be checked at the upper front connector row.
  • clear the "Standard UNIBUS" text in the warning label!

 

M9302 functionality

When build for Standard UNIBUS, UniProbe is plugged into the backplane "end" sockets and must act as bus terminator. It is identical to a regular M9302 terminator card then.

m9302

 With inline resistor packs we can build it smaller:

 

uniprobe3d m9302

There are some differences to the original M9302:

  •  the voltage dividers are not 178 / 383 ohm, but 180 / 390 ... the ratio error is 1%.
  •  the source voltage for the terminators can be separated from +5V.
    By varying the terminator voltage, "Margin Testing" on the bus can be performed, as described by DEC.
  •  the M9302 terminator has "SACK turnaround logic."
    This function answers any BUS GRANT with a proper SACK, if a GRANT is ignored by all device cards.
    Here it can be disabled by a jumper, converting UniProbe back into an older M930 terminator.

sack turnaround

 

Logic analyzer interface


All 56 Unibus signals are routed to plugs for logic analyzer ("LA") probes.

uniprobe3d laconnectors

There's no way to repair a PDP-11 without logic analyzer. Today you have typically two choices:

  • buy an used ancient LA from the good old days. On the plus side, these are cheap and can have 100+ probe channels. Drawbacks are: big case, bad integration into the modern workplace (typically file transfer over floppy disk!), reliability, lack of trace memory and lack of bandwidth.
  • get a modern USB and FPGA based device. These integrate well, bandwidth is typically 500Msamples/sec, many options for trace memory exists. However low price devices scale not behind the invisible wall of 34 probe channels.

So when working with logic analyzers on PDP-11s, the main challenge is to deal with limited probe count. In theory UNIBUS traffic needs 56 signals wires on its own, before any tracing in the circuitry can start. But you can get a feeling of bus traffic by just watching data, a few lower address lines and some protocol signals.

To help a bit, UniProbe allows to connects flexible only a subset of UniBus cables to the LA, leaving other LA signals for circuit diagnostics.

Probe connectors

Seven 8-channel plugs for LA cables are provided, labeled "A-Lo", "A-Hi", "B-Lo", etc. until "D-Lo".

UniProbe supports the "Zeroplus" probe standard: A probe cable carries 8 signals on a standard flatcable. Typical 2x8 pinheaders are crimped to the cable.

Output on the LA is (view onto the LA case):

Male signal pins  Usage
 7  6  5  4  3  2  1  0  upper row: Signals
 G  G  G  G  G  G  G  G  lower row: Ground

 

UniProbe contains the mating female sockets. View onto the connector front:

Female signal sockets  Usage
 0  1  2  3  4  5  6  7  upper row: Signals
 G  G  G  G  G  G  G  G  lower row: Ground

 

Mapping channels to UNIBUS signals

There is support for 3 signal mapping styles:

"Hard wired mapping": UNIBUS DATA <15:00> and ADDR<07:00> are always connected to probes "A-Lo", "A-Hi" and "B-Lo".
I can imagination no situation were you don't need to see these.

"Fixed position jumper mapping": To display the regular UNIBUS data cycle, signals ADDR<17:08>,C0,C1,MSYN,SSYN are needed. As I have a 70 channel LA and want to see these always, jumper brigdes are provided to save on plug wires.

"Patch panel mapping":For all other signals a patchpanel is provided. Every remaining UNIBUS signal can be routed freely to any LA probe plug. This allows for greatest flexibility and ensures no LA channels are wasted.

 Additionally, a special "IOPAGE" signal is added, which decodes addresses in the 760000 range. Its just the AND of ADDR<17:13>, so five wires are replaced by a single wire for "IOPAGE", also low active. Together with A<07:00> this allows to follow peripheral accesses and program execution with just 9 address lines.

Organizing all these wires

From painful experience, UniProbe has functions to tame the LA cable tree.

  • it can serve as cable hub, to route all LA probes into one place, then going from that into the PDP-11.
  • it has mounting holes to allow for struts and a lid to keep all the bread board cables flat on surface.
  • it allows for longer LA cables, as mechanical dimensions in a PDP-11 may be challenging. 
    Long flatcables introduce additional impedance, causing signals to reflect between the high-impedance LA inputs and the UNIBUS signal sources.
    The reflections oscillate between UNIBUS and LA and cause additional signal spikes.
    They can be damped by adding in-series resistors.

 

Importance of inline-terminators

High frequency signals behave like water waves: they get reflected on cable ends, if the receivers impedance does not match cables wave resistance. Logic analyzer inputs have an impedance of > 100kOhm, but if the probes are lengthed with flat cable we get 100-150 ohm per meter extra. This additional impedance must be damped by resistors inserted into the wires. UniProbe has positions for these resistors.

This is indeed important, see example. Here the transition of address line ADDR00 from "inactive" to "asserted" (logic 0 to 1) is shown.

The "blue" signal is measured at the UNIBUS pin, "red" is at the logic analyzer inputs via 50cm flat cable. The scope had a bandwidth of 200MHz, scale division is 20ns.

Without inline terminators, you see:

  • delay by the flat cable is about 7 nano seconds.
  • Without inline resistors, there are heavy signal reflections.
  • At the LA input, the reflections reach the logic threshold voltage of 1.5 V.
  • the reflections even impact UNIBUS signal quality.

The frequency of the oscillation is surprisingly low: 40ns peak-to-peak, about 25MHz. Apparently the cables form an inductivity-capacity (LC) resonator .

 

term 0ohm d0assert d0 7toggle

 

Here with 82 ohm terminators the reflections are damped, while preserving signal levels and timing:

term 68ohm d0assert d0 7toggle

 

The best resistors values depend from quite a few factors and must be optimized individually for each probe&logic analyzer combination.

 

PDP11MONLOADER - code download into PDP-11's over serial monitor

Category: Tools
Written by Administrator

Code download?

Most PDP-11's have a serial console monitor. This is a simple line based user interface which allows to write, read and execute code.

This is important

  • if you need to boot device which the Boot ROM is missing. Then you have to enter the boot loader code over monitor.
  • if you want to run diagnostics, and have no working disk or tape devices yet.

 

pdp11monloader

Many many people have written auxillary programs to automate code download. Here comes my contribution: "pdp11monloader". 

It is a command line program, written in C for Linux platforms. On MS-Windows it can be compiled for CYGWIN.

Main features:

  • serial port, baudrate and data format settable
  • can work with QBUS-PDP-11's (ODT monitor) and with UNIBUS machines (M9312 / M9301 console emulator).
  • can load code from MACRO-11 listing files, standard paper tape images and plain textfiles with octal <address> - <value> pairs in each line.
  • can start execution of downloaded code
  • can stay in primitive tty-like terminal emulator to let you immediately work with the running code.

 

Links

Download here: https://github.com/j-hoppe/pdp11monloader. The "demo_files" contains some example code formats.

More info by built in help: https://github.com/j-hoppe/pdp11monloader/blob/master/README.md

 

 

 

An UNIBUS signal adapter

Category: Tools
Written by Administrator

( This is older work, and has been superseded by UniProbe. )

unibus signal adapter-09

 

Problem: How to access UNIBUS signals?

Often when you debug your PDP-11, you wish you could measure the signal lines of the UNIBUS. These signals appear in every slot of the backplane, but are usually buried deep inside the card cage:

unibus signal adapter-15 unibus signal adapter-14

Attaching your signal probes to the wire-wrap pins on the backplane's backside seems possible, but is impratical: finding the right pins can take hours!

 

So you have to make an adapter for routing the signals out of the machine. Here's how you can build one:

Solution: Building an UNIBUS signal adapter!

In PDP-11's many backplane types are used, general purpose ones and such for special controller or memory assemblies. On almost all of these backplane types the UNIBUS signals are concentrated to two standard FlipChip sockets at both ends of the backplane. The UNIBUS has 56 data signals and some GND and Vcc, see the  pdp11bus handbook (1979)" for reference. The standard UNIBUS slots are used to plug in bus terminator cards, or bus cables to connect backplanes in a chain.

Requirement 1: your adapter should use these standard slots, but without blocking it for further use by the system.

Another problem is that the boards are packed very tight together. The board-to board distance is only 10 mm, there is no vertical space for test points on the boards.

Requirement 2: every board you plug into the PDP-11 card cage may be just 10 mm high. You need to route the testpoints outside the case.

A design to meet these requirements has to look like this:

unibus signal adapter-01

There are three separate components (the small terminator is not part of the design):

unibus signal adapter-02

  1. A two-unit width modified extender board (lets call it "MEB") to get the signals out of the machine. You still can attach terminators or bus cables to the original slot  (in the picture a 11/05 terminator is plugged in).
  2. A bread board to sort out the cables, so you can attach a logic analyzer or an oscilloscope. Lets call it the "signal adapter board", or "SAB".
  3. Two normal 40 wire flat cable to connect SAB and MEB. This even gives you the option to plug other boards than the SAB to the MEB. The cables should be not too long , I think 30cm are enough.

The modified extender board "MEB"

In total the two FlipChip sockets of a standard UNBUS slot have 2x2x18 pins, you need to route 72 signals. I reworked a commercial DEC extender board from Douglas Electronics.

unibus signal adapter-13

 These are the modifications:

  1. Two flat cable were crimped to two male 2x20 connectors. We need just 2x36 pins, put 40 wire cable is a standard,
  2. The two connectors were hot-glued to the board.
  3. Holes for 36 wires were drilled through the board (1.5 mm diameter).
  4. Half the wires were soldered on the connector side, the other to the backside.
  5. Paper labels with UNIBUS signals names were taped onto all four connector rows.

unibus signal adapter-05

In result, the MEB remains slim enough to fit into the card cage:

unibus signal adapter-04 rotated unibus signal adapter-12

The MEB can be used as regular extender board again when the flat cables are disconnected.

The signal adapter board "SAB"

The signal adapter board contains test points for the UNIBUS signals. They are nicely labeled and arranged into "Data Transfer Section", "Priority Arbitration Section" and "Initialization Section" signals. Every signals gets two pins, so you can attached both a logic analyzer probe and an oscilloscope.

unibus signal adapter-07

There's only a lot of wire-wrapping on the backside.

Later I added LEDs for the control signals, and decoded A17-A13 into a single "IOpage" signal. This saves logic analyzer probes. The LED drivers are CMOS type with very high impedance, but the IOpage decoder adds one 74LS TTL load to the address lines, I'm not too happy with that. However, all driver chips can be plugged out of their sockets, making the board totally passive.

unibus signal adapter-03-leds

See SACK lighting, because it's being asserted? Yes, this photo was made with an open GRANT chain!

The only hard thing was to get all the wires sorted. Find my net list document in the attachement.

QBUS?

You can also make a SAB with QBUS test points and plug it to the MEB.

I didn't made one yet because

  • I like the big old UNIBUS machines more.
  • QBUS periphery seems much more reliable than UNIBUS boards. Maybe this is because  they're usually younger.

Working with the adapter

Read on here about working with the adapter on my 11/05!

unibus signal adapter-10

 

Attachments:
Download this file (unibus_signals.txt)unibus_signals.txt[UNIBUS signals, flip-chip connectors and signal adapter wires]8 kB

Hints on testing a dead PDP-11

Category: Tools
Written by Administrator

The web page "Hints on Testing a Dead PDP-11" lists many common reasons for PDP-11 failures, and how to fix them.

Premium content, thanks for it!

Subcategories

  • PDP11GUI

    PDP11GUI is an integrated development environment (IDE) for PDP-11’s, running under MS Windows.

    You can write programms in assembler and load them onto the PDP-11, run programs or single step them, disassemble code, load, dump and display memory and inspect registers.

    You can use it in conjunction with SimH to learn about PDP-11’s, or you can attach it to a real PDP-11 as an handy hardware investigation and diagnostic tool.

    First I’ve written PDP11GUI for some diagnostic tasks on my 11/44, then it developed its own momentum and kept me busy for nearly a year. And it’s still growing.

    PDP11GUI is distributed as a self-installer at GitGub .

    Before installation, backup all files you eventually modified!

    Then proceed through installation instructions and the tutorial.

    pdp11gui

     

  • SimH with telnet console access

    A modification of SimH to access it's command prompt over telnet.

  • MACRO11 cross assembler
    Info about different version of MACRO11 for MS-Windows.
  • UNIBUS diagnostic procedures
  • PDP-11 Diagnostic Database

    DEC made diagnostic procedures for all of their hardware, here we concentrate on the PDP-11 universe.

    Many of these diagnostics are on the web today, but widely scattered around. 

    They have several designations, come on several media, are made for different devices, run under several supervisor monitors and are separated from their documentiation.

    So here is a try to pull all pieces together and order them into one system:

    The PDP-11 Diagnostics Database

  • TU58FS - file sharing with a DECtape II emulator

    This is a tool to share files between a DEC PDP-11 and a modern computer.

    The software emulates an TU58 DECtape II, which is controlled by the PDP over serial RS232 line.

    The "tape content" appears as plain files in a shared directory, and can be accessed on both sides. So you can easily exchange files between PDP-11 and your host, just by copying to and from the shared directory, even per drag'n drop.

    XXDP and RT-11 filesystem are implemented.

    Requirements on PDP-11 side are minimal: only a 2nd serial port is needed. Not even TU58 "DD" Boot ROMs are necessary, as tu58fs contains an option to download a boot loader over ODT and M9312 console.

    There is full support for "oversized" TU58 tapes: a TU58 tape image can hold up to 32MB, breaking the 256KB barrier.

    This allows to run the full XXDP diagnostic file set over a single RS232 connection. No need to create special XXDP cartridges, or to wear your RL02 drive while reparing & testing.

    Or you can run a full RT-11 distribution to a host directory, modify sources with your host editor and compile on your PDP-11 simultaneously.