This page documents what you need to know in order to use an M7554 board. Some versions of this board are MicroPDP-11/53 CPUs, others are used in the DECserver 500 or 550. The DECserver board can be converted to a PDP-11/53 or 11/53+ CPU. At present, it is possibly the cheapest and easiest PDP-11 to find and implement. It is almost a single board PDP-11. All you need to add is a hard drive controller.
The DEC manual for this board is now available online here: EK-KDJ1D-UG_KDJ11-D_May87.pdf.
There are several flavors available, in two artworks. All versions have these characteristics in common:
The older artwork runs at 15 MHz and has 512K of RAM on board. The newer artwork uses custom chips to replace much of the random logic, and therefore has room for 1.5 megs of onboard RAM. The newer artwork also can run up to 18 MHz.
The flavors that I have seen are:
The card edge contains the Qbus on the A-B side, and nothing but power connections and bus grant jumpers on the C-D side. On the front edge there is a 34 pin ribbon cable connector for the console. On this connector are found:
All the jumpers and switches on the connector are paralleled with jumpers elsewhere on the board. There are a couple other jumpers not found on the connector.
The following sections will describe how to set up the console serial port, the jumpers, and the boot ROMs.
Console serial port connections
The console connector is a 34 pin connector that is physically the same as the floppy cable connector on an IBM-PC main board. I figured out the connections to the console serial port by following the traces from the RS-232 buffer chips. The receiver is a differential type, and both + and - are brought out to the connector. To build a temporary cable to connect to the COM1 port of a PC, I cut the end off an old floppy drive cable, cut the cord off a dead serial port mouse, stripped the wires with my thumbnail, and twisted the ends of the wire together as follows:
M7554 end PC end
34 Pin Connector
Pin one of the connector should be marked on the body of the connector with a raised triangular marking. The pins are numbered like this, looking from the front edge of the card, with the parts side up:
The 7 segment LED is driven by 4 data bits. It contains a built-in BCD to 7 segment decoder. (at least on the KDJ11-DS / M7554)
|W1||out: trap on kernel halt; in: disabled|
|22||W2||boot mode switch bit 3|
|21||W3||boot mode switch bit 2|
|24||W4||SLU 0 baud rate bit 2|
|14||W5||boot mode switch bit 1|
|25||W6||SLU0 baud bit 1|
|10||W7||SLU1 baud bit 1|
|13||W8||boot mode switch bit 0|
|26||W9||SLU 0 baud bit 0|
|11||W10||SLU1 baud bit 2|
|23||W11||out: halt on break; in: disabled|
|9||W12||SLU1 baud bit 0|
|W13||in: 32 Kbyte ROMs|
|R14||in: 16 Kbyte ROMs|
|W20||interrupt daisy chain jumper for C-D side, soldered in|
|W21||DMA daisy chain jumper for C-D side, soldered in|
|W22||in: boot to console routine, out: autoboot|
|8||W23||in: supply -12v power to J1|
|W24||in: special application; out: normal|
|W25||in: 512Kbytes RAM; out: 1.5 megs RAM|
W1, W22, W2, W3, W5, W8: all in.
W13, W24, W25, W11: out.
SLU 0 38400 baud: W9, W6, W4 in.
SLU 1 9600 baud: W10, W12 in, W7 out.
The baud rate jumpers are near the front edge of the board. There are two
groups of 8 pins. The pins that control the console serial port are closer to
the UART chips. 0 means jumper out, 1 means jumper in. Note that the two groups
of three are not parallel, but are offset by one pin.
>>> front edge of board >>>
000 000 300
001 001 600
010 010 1200
011 011 2400
100 100 4800
101 101 9600
110 110 19200
111 111 38400
In this table, 1 means jumper in, 0 means jumper out.
The DECserver has a front panel with two MMJ (Modified Modular Jack) connectors. The top one is labeled A2, and is SLU1. The bottom one is labeled A1, and is SLU 0, the console. The MMJ connector has 6 pins. MMJ cables and adapters can be purchased inexpensively at http://www.l-com.com/.
XMIT---+ | | +----RCVE(+)
(++)--+ | | | | +--(--)
| | | | | |
|o o o o o o|
| | This picture may not make much sense,
----- -- but when you are looking at an MMJ connector
| | it might become clear.
(++) is connected to +5 via a 150 ohm resistor. (--) is connected to ground via a 3K resistor
You can remove the S-box front panel by carefully drilling out the rivets and screw on a stiffener rail/ejector latch assembly. I bought some new rails from Ethan Dicks, and stole another one off a scrap board.
Installing Boot ROMs
Here is how to install the boot ROMs that convert a KDJ11-SD from a DECserver
550 to a PDP-11/53+ CPU. This is for the new artwork.
Burning the ROMs
Find the ROM images 261E5.hex and 262E5.hex on the Internet. Obtain two 27128 or 27256 UVROMs. Burn the images into the ROMs. If you have the 27256 ROM, burn the image into the second (upper) half of the ROM. What goes into the lower half should be irrelevent, but I would burn all ones (FF). Some people burn the same image into both halves. Install the ROMs. 261E5 goes in the socket toward the CPU, 262E5 goes in the other one. The pin 1 end of the ROM, which usually has a notch, goes toward the front edge of the board.
Adding a pullup resistor
Warm up the soldering pencil. You'll need solder wick or a solder-sucker, the usual soldering supplies (including safety glasses), and a 1K resistor. You are going to be installing a pullup for the A14/PGM pin. Installing the jumper tells the board that 27128's are installed. If all you can find are 27256's, the way they are burned makes them look enough like a 27128 to fool the KDJ11. Just burning the firmware into a ROM, of either type, and plugging it into a DECserver board, does not work. You have to add the resistor.
ASCII art, with the front of the board to the left:
CPU is that way
| +---------------+ JUMPERS
AMI9215 | | 20 pin 74F373 |
-------------+ o o
UART | Y X o +-----------
| Y X o Z |
AMI9215 | Y X Z | ROM
-------------+ o o o | 261E5
| 20 pin 74F373 | +-----------
+---------------+ | ROM
YYY is a 47 ohm resistor (yellow, purple, black, gold). ZZ is a bypass capacitor. On some boards they are yellow blobs, on others they are glass and look a lot like diodes. The circles are the vias where the leads are soldered. XXX should be missing. You need to install the 1K resistor there.
There are other vias near there, like this:
Y o-Z----ignore this via
Y o---Z----ignore this via
o o o
Here's one more picture, with the via's where the resistor goes indicated by "G":
Y o Z
Y o Z
o G o
I made a picture of the mod:
(I made made the picture on the right using a picture editor, the actual resistor you will solder in will be 1K, not 47)
If you want to check continuity, the upper end of the resistor is connected
to +5, the lower end is connected to pin 27 of both ROMs.
I've been quite detailed up till now. If I have to tell you how to open the holes and solder in the resistor, you need to get someone else to do this for you.
When the resistor is in, reinstall the board, connect the terminal, and turn it on. The the first thing you should see is:
9 8 7 6 5 4 3 2 1
On the older artwork a similar mod is required, except you also have to cut out a zero-ohm jumper. I don't have a picture yet, but, holding the board with the backplane connector to the right and the front edge to the left, and the ROMs at the bottom: the pads for the resistor are to the left of the ROMs, and the zero ohm jumper is just above it. If you are need to do this before I get the picture drawn, trace the circuit from pin 27 of the ROM with an ohmeter.
The boot ROM firmware has commands like BOOT, LIST, HELP, and MAP. When I
type "BOOT DU0" RT-11 comes right up. MAP prints out a memory map. LIST tells
you which devices the ROMs know how to boot from.
The ROM also handles several languages. You can select the language by changing the jumpers next to the 261E5 ROM. I think you can select the language via a software command also.
Boot jumper table, note that, since the jumpers ground a signal, 0 means "jumper in", and 1 means "jumper out".
00000 console mode in English
00001 console mode in French
00010 console mode in German
00011 console mode in Dutch
00100 console mode in Swedish
00101 console mode in Italian
00110 console mode in Spanish
00111 console mode in Portugese
01000 console mode (reserved)
01001 console mode (reserved)
01010 console mode (reserved)
01011 console mode (reserved)
01100 quick test, autoboot, user selected language
01101 autoboot DPV11, DUV11, DLV11-E/F, TU58, RK05
01110 autoboot DEQNA
01111 manufacturing test loop
10000 autoboot in English
10001 autoboot in French
10010 autoboot in German
10011 autoboot in Dutch
10100 autoboot in Swedish
10101 autoboot in Italian
10110 autoboot in Spanish
10111 autoboot in Portugese
11000 autoboot (reserved)
11001 autoboot (reserved)
11010 autoboot (reserved)
11011 autoboot (reserved)
11100 Emulate powerup mode 24 with no messages (whatever that means)
11101 ODT if trap-on-halt enabled, else loop
11110 autoboot DEQNA
11111 enter console mode, user selects language
0 Halt sw on, CPU fault, power fault, or control has
passed to secondary boot
1 preliminary CPU test running, limited error messages
2 console SLU testing
3 CPU testing
4 onboard RAM testing
5 external RAM testing
6 floating point, LTC interrupt, SLU interrupt testing
7 not used
8 not used
9 not used
A not used
B not used
C not used
D wrap mode in progress (see boot ROM commands)
E boot in progress
F console mode in progress
The built-in help is pretty good. Here are a few things that are only found in the manual
B DU0 boot from DU0
B DUA boot from standard controller address
B DUB boot using first floating controller address
B/A option: prompt for alternate CSR
B/O option: override boot block check (use for non-standard boot block)
TEST run tests 3-6 in continuous loop until ^C
WRAP SLU0 to SLU1 pass-through mode, exit on ^D
WRAP/A prompt for alternate CSR for SLU1
test 1: "KDJ11-D/S 1.00" -- something wrong with MMU or ROM
test 2: SLU test, hang on error
print "KDJ11-D/S M:NN"
where M is the test number, NN is the subtest number
^O4 at a test failure overrides the the test and goes to console mode
L continues looping tests with errors ignored
If you don't have boot ROMs yet, you can still fire up your system if you have another board with a boot ROM on it, and that ROM understands your disk controller. Some third party disk controllers, like the Andromeda UDC11 have their own boot ROM. Here's how I do it:
|Put the 11/53 CPU in the top slot of the chassis. For now I'm using a DSD StacPac chassis rather than the BA23. This chassis is a 6-slot, quad wide Qbus with a serpentine daisy chain and no C-D bus.|
|Put the UDC11 hard drive controller (borrowed from 11/23) in the second slot on the right side, for a non-CD chassis, or the left side, for a CD chassis. Change the boot address jumper on the UDC11 so its boot ROM appears at 17771000 rather than 17773000.|
|Attach the hard drive (also borrowed from the 11/23 which was running RT-11)|
|toggle halt or hit break to get ODT's attention|
If you find any corrections to this page, please email me.
2/22/2003 updated pinouts and tables from the real manual
3/2/2003 changed recommendations for W24, console baud rate, clarified meaning of 1 and 0 in jumper tables.
2/17/2007 Bela Török (St. Gallen, Switzerland) figured out the connections of the 7 segment LED and sent me the corrections
Last modified: December 31, 2009