D16 Design and Construction Notes.
The only D16 implementation thus far is the D16/M, where M stands for Mini. I anticipate someday implementing a D16/µ (µ for Micro), in a field-programmable gate array or similar programmable-logic device.
The unit's enclosure is a Bud "Rak-Mount" chassis, model RM-14215. Expensive! It's just a raw open box, so in addition, I had to buy an internal chassis for mounting the bus cage and a pair of covers for the top and the bottom. These latter were intended to be attached using self-tapping sheet metal screws; that's unsatisfactory, and so I installed PEM fasteners instead. I really think, for $32 apiece per cover, that Bud should have used PEMs in the first place!
The main CPU logic is built on an Augat model 8136-SCH19-54 wire-wrap board (6 groups, double-height). It contains 157 IC's and nearly 2500 wires. The Augat board is mounted horizontally in the bottom of the enclosure, so that the wiring is accessible just inside the bottom cover.
The external bus card-cage is made from an old California Computer Systems S-100 computer chassis and motherboard. I shortened the chassis to eliminate the portion where CSC originally had mounted a big linear power supply, and I eliminated the lid, allowing the whole thing to fit inside my enclosure. The main memory and peripheral interfaces themselves are built on Vector model 8804 S-100 prototyping boards.
I used S-100 hardware for the D16/M bus because the boards are large and are still relatively easy to obtain. I must emphasize that my bus is *not* the same as the S-100 bus electrically; for one thing, it has some grounds on it!
The power supply is a PC ATX switcher I salvaged from an old desktop computer. I could not find a free-hanging mating receptacle for the Molex Mini-Fit, Jr. plug that came on the supply, so I just chopped it and the disk-drive power connectors off of the unit and installed new Molex 0.090 power connectors instead. This may not have been the best way to do it—when the supply fails, I won’t be able to just “drop in” a replacement. I think that if I had this to do over again, I would make a PC-board-based adapter which could accept the supply’s stock connectors directly.
There are power resistors connected across the +5V, +3.3V, and +12V supplies in order to meet the switcher’s minimum load current requirements (which were, conveniently, printed on the unit’s label).
Probably the most elaborate part of the whole machine is the front panel (or the “Programmer’s Console,” in DEC parlance). All of the electronics associated with the panel, including the LED indicators, are mounted on a large perforated board that is mounted behind the aluminum rack panel on spacers. The LEDs then shine through holes in the aluminum panel.
The front of the rack panel is covered by a 10.5 inch by 17 inch acrylic fascia or “dress” panel, which has lamp windows and all of the front-panel legends on it.
I have always been partial to panels such the ones made by Lucas Duralith, which MITS had used on their Altair 8800b computer back in the late ‘70’s. They have durable embedded graphics, and attractive “frosted-looking” windows for the lamps to shine through. Unfortunately, such panels are economical only when manufactured in large quantities; they don’t make much sense for one-offs like my project…
A more traditional approach, with individual lamp-holders mounted in a metal panel the way IBM did it on their model 360 computers, would have been too expensive also. There are 112 lamps in the D16/M front panel.
I ended up making my dress panel out of clear cast acrylic, by simply painting the back of the plastic and then engraving away the paint where I didn’t want it using an Epilog laser cutting and engraving machine.
Here is the procedure: First, I designed the panel graphics using a drawing program, Corel Draw, on the PC. The areas that were ultimately to be engraved away (LED windows, legend text, etc.) were filled in black, and the areas that were to be cut out (switch mounting holes, screw holes, etc.) were left as empty circles (not filled).
Then, I painted the back of the acrylic panel, which I had already cut to size using the laser. I masked where the red “racing stripe” on the panel was to go using 0.75 inch Scotch tape. Next, I applied a coat of black Krylon acrylic paint (non-acrylic paints may be incompatible with the acrylic plastic used in the panel). I applied additional coats until no light was visible through the paint when illuminated from behind by a bright light source. For best appearance, I painted the acrylic’s edges as well. The front of the acrylic was masked throughout the process; I simply left the manufacturer's protective paper on it.
After the black paint had cured, I peeled off the Scotch tape and then painted the masked area with multiple coats of red Krylon.
The result, viewed from the front, was a solid-black acrylic panel with a bright red stripe a half-inch above its bottom edge. I placed this, painted side up and red stripe toward the front, into the laser engraver.
Next, I loaded the artwork and mirror-imaged it so that it would appear correct when viewed from the front of the panel after having been engraved.
I accomplished the actual engraving/cutting procedure in three steps. First, I selected the Doran Engineering and D16/M logos in the artwork, which were to go onto the red stripe, and engraved them in raster mode. Before actually putting the laser to the work, I placed little scraps of wood onto the surface of the panel and engraved on them first, ensuring that the logos were aligned precisely with the center of the stripe. I had to make little tweaks to the panel’s position in order to get it just right—unfortunately, the laser engraving machine does not have “machine tool” accuracy. Once everything was lined up properly, I removed the scraps of wood and engraved the logos directly onto the panel.
Second, I selected all of the panel legends and LED windows in the artwork and engraved them in raster mode.
Third and last, I selected all of the holes in the artwork and cut them out in vector mode.
That completed the engraving and cutting. Where the paint is engraved, the acrylic gets a “frosted,” ground-glass appearance that is perfect for illumination from behind by an LED. I left the LED windows untouched, and filled in all of the legends with titanium-white acrylic paint using a fine brush.
I was pleased with the result; it exceeded my expectations. The legends are crisp and bright.
This technique may be used to make custom panels for just about any application, and Epilog laser machines may be found in engraving shops all over the world.
The choice of LED lamps was more difficult than I expected. I had to try a lot of parts, made by a lot of manufacturers, before I found ones that looked satisfactory. My red LEDs ended up being Lumex SSL-LX5093LID parts; the others are all made by Panasonic: P375 (green), P372 (yellow), and P466 (blue). I have since found that Kingbright LEDs work well for this application (Bob Armstrong used their red L53ID parts in the front panel for his SBC-6120 PDP-8E replica).
I bought ordinary miniature bat-handled toggle switches to use in the D16 front panel. I wasn’t able to find satisfactory paddle-type switches at the time, and in practice, you don’t flip the switches all that often anyway. They are really nice to have when hacking on the system (and I couldn’t imagine building a homebrew computer without them), but they don’t get used nearly to the extent they did in the early days of minicomputers, when there was no such thing as ROM and you always had to load a bootstrap manually!
I did buy the highest-quality switches I could find, though (they cost about $5 apiece). Where possible, I used DC-rated switches with gold contacts.
As I mention in the D16/M FAQ, the computer’s circuits consist almost entirely of CMOS (HC and HCT) logic. Remember that when using CMOS, it is imperative that all unused IC inputs be connected either to + 5V or to ground—if the circuit contains an open input somewhere, it is virtually guaranteed not to work! Should you experience erratic operation in a CMOS circuit, suspect this problem first. Suspect an open/missing power or ground connection next.
Here are some references that I found particularly useful as I designed the D16/M.
C. Gordon Bell, J. Craig Mudge, and John E. McNamara, Computer Engineering: A DEC View of Hardware Systems Design. Bedford, MA: Digital Press (1978).
This fascinating book, written by engineers at the Digital Equipment Corporation, contains a detailed survey of all of the computers built by DEC from their first (the PDP-1) up through the VAX-11. Throughout, it reveals the thought-processes and considerations of the managers and designers as they developed their machines.
C. Gordon Bell and Allen Newell, Computer Structures:
This book is largely a survey of some older computer architectures, and is useful for seeing how other designers have approached the problem. It contains the definitive exposition of Gordon Bell’s PMS (Processor-Memory-Switch) and ISP (Instruction Set Processor) description languages, which endeavor to provide a standard means of describing any specific computer’s configuration and function. Understanding these languages is a challenge; requiring a significant effort on the part of the reader! I hope to include PMS and ISP descriptions for the D16/M on this site sometime in the future.
Vincent P. Heuring and Harry F.
Jordan, Computer Systems Design and
Architecture, 2nd Edition.
This up-to-the-minute text on computer architecture addresses such modern techniques as RISC, pipelining, and branch prediction. Together with Mano (see below), I consider it essential for anyone interested in designing his own processor.
M. Morris Mano, Computer System Architecture, 2nd
This older book is an excellent introduction to basic computer organization and design. Reading it gave me the confidence to stop dreaming and actually design my own machine!
John Mick and James Brick, Bit-Slice Microprocessor Design.
“Mick and Brick” is oriented specifically toward the application of American Micro Devices’ line of bit-slice microprocessor parts (such as the AMD 2900 series), but it contains a detailed and easily-understood discussion of microprogramming, the technique I used to implement the timing and control unit of the D16/M.
John B. Peatman, Microcomputer-Based Design.
I was privileged to take Dr. Peatman’s microprocessor course at Georgia Tech. His book is concerned mostly with application of microprocessors rather than with their design. Still, it contains much useful general system design information. It also has a detailed survey of the microprocessors available when the book was written, which was useful to me as a reference (the architecture of the D16/M owes much to the designs of the early microprocessors).