DEC MI8-E Bootstrap loader for PDP-8/e

The MI8-E is a “hardware bootstrap loader” for a PDP-8/e. It has a large diode matrix that allows a 32-word bootstrap loader to be effectively coded in as a ROM. A series of wire links are inserted or removed to configure the load and start addresses.

I have one of these boards. It came with my “Industrial 8” system which include a DECtape unit.

Th part number on the handle is M847-YH, which means that it is the bootstrap loader for the TD8-E.

Mine was faulty when it arrived. Lowering and raising “SW” on the front panel would usually result in no noticeable result. Very rarely it would work. When it did work, I was able to see that the bootstrap loader code has successfully been transferred into core memory. Sometimes leaving the SW in the raised position would not work immediately, but might take effect 15 to 60 minutes later (I’d come back and find that the RUN light was on – indicating that the board had loaded code into core and was now executing it).

The problem turned out to be in the switch-input circuitry. At pins 6 and 7 of U27 (an SP380), the voltage would be -0.15V when the SW was in the down position, and only 0.62V when SW was in the up position. It should be at logic HIGH level when the SW is in the up position. By temporarily isolating the R48/R52 junction from U27, I was able to confirm that it was the input to U27 that was “dragging down” this line. If I boosted the pull-up effect of R48 (by putting a 1K resistor in parallel with the existing 3K R48), this still was not enough to pullup the input to U27.

I removed U27 (15 April 2018) and replaced it with another one purchased on eBay (27 April 2018). The board now works reliably. Looking at the debounced SW signal at pins 6 & 7 of U27, I now see about -0.5V when the switch is in the down position, and +3.3V when the SW is in the up position.

How does it work?

The MI8-E is described in detail in Chapter 4 of Volume 2 of the PDP8/e Maintenance Manual (Order No. DEC-8E-HMM2A-D-D). A link to this manual is provided in the Resources section below.

The timing diagram is provided as Figure 4.2 of that manual. It is shown below.

Observations

PULSE-LA-H

The MI8-E pulls this signal HIGH using an NPN transistor (Q1). The collector is connected to +5V via a 12R resistor (R44). The emitter goes directly to OMNIBUS pin DR2. The base is driven HIGH (assisted by 470R pull-up resistor R43) or LOW by a 7402 via a 27R series resistor (R45). This 27R resistor seems very small, but I note the output stage of the 7402 has a 130R resistor between the VCC rail and the high-side output transistor, so the total peak base current would be about 36mA (27mA from the 7402 and 9 mA from the pull-up resistor).

I observed the signal on the collector of Q1. On the leading (negative-going) edge, it drops from +5.0V to approximately +4.0V then linearly ramps back to +5.0V. This indicates that the peak collector current is about 83mA (1.0 volt divided by 12R).

PWR-OK-H

This signal is driven HIGH by external circuitry. The MI8-E temporarily negates this signal (for 1uS) by forcing it to GND, via NPN transistor Q2. It does this while the line is being asserted HIGH by external circuitry, so the current needed to force it LOW will be substantial. Q2’s collector connects directly to OMNIBUS pin BV2, and the emitter connects directly to GND. The base is driven directly by a 7402 with no series resistor, assisted by a 270R pull-up resistor (R51). The base current is therefore around 49mA (33mA from the 7402 plus 16mA from the pull-up resistor).

With the MI8-E installed, I forced pin BV2 to GND via my Fluke multimeter on 300mA current-test range. The sink current on the short circuit was 129.7mA.

OS/8 Notes

As at July 2018, I am in the process of collating (and understanding) bootstrap loaders for various PDP-8/e devices. I am doing this as part of my PDP-8/e multi-device hardware bootloader project.

Here is a list of the key websites that I have found helpful so far:

Create a PDP-8 OS8 RK05 system disk

David Gesswein’s OS/8 Images

Getting started with the OS/8 PAL8 Assembler

David Gesswein’s RX01 Bootstrap Loader (no source code)

RX01 Instructions

Explanation regarding RX01 Bootstrap process

A fully commented source code listing for an RX02 bootloader is available. Google “Device Extensions User’s Guide – the van der Mark Site”.

Resources

MI8-E Hardware Bootloader Schematic

pdp8/e maintenance manual volume 2 (DEC-8E-HMM2A-D-D)