In this set of videos, I work on getting a used Convergent Technologies NGEN computer up and working:
In the second video, I figure out the pinout for the 25-pin connector, and I get the keyboard working and the video displayed on an MCE2VGA.
In the third video of the series, I design and build a breakout board that implements the keyboard/video breakout that I described in the second video. I also install the CTOS operating system, and spend some time trying out operating system features.
For part four, I go through a set of unique Convergent modules that were donated to me by a viewer, Joe. These include 286 and 386 CPUs, SCSI disk drives, a QIC tape module, even an Ethernet module. Joe was also kind enough to send along some real convergent Monitors, so I no longer need to use my breakout board.
I briefly encountered a few of these Convergent Technologies / Burroughs units back in the 1980s, and I wanted to have one to play with. I had been watching eBay for a while, and when some reasonably priced ones showed up, I decided it was time to acquire one and get it going.
Convergent Technologies was a computer manufacturer back in the 1980s, eventually bought out by Unisys. The company produced several different computers over its lifespan, the IWS, AWS, NGEN, and a few mainframe-like computers called the Miniframe and Mightyframe. These machines were marketed by Burroughs at the time, so you might come across these workstations marketed as the Burroughs B20 or B21 (AWS), or the B25 (NGEN).
One thing that separates out the Convergent Technologies NGEN computers from other offerings at the time was the modular design. As shown in the video at the top of the page, the computer is designed based on several different modules that are coupled together electrically by a large header, and mechanically by a latching mechanism. The computer I purchased consisted of a CPU module (CPU, RAM, IO, Video) and a storage module (HDD, FDD). Other modules available at the time would have been dual floppy storage modules, a color graphics module, and disk expansion modules.
Each module is powered by 36 volts DC, and includes one or more built-in DC/DC converters that convert the 36V down to something more useful, such as 12V or 5V. The 36V is distributed from one module to another via the header connectors that couple modules together.
The 36V power is sourced from one or more external power bricks. The bricks connect to the modules using 8-pin SDL connectors. You can power multiple modules from a single power brick if the combined power consumption of the modules is less than the amount of power provided by the bricks. Each module typically has a power requirement printed on the back. For example my CPU module is a 4 and my FDD/HDD module is a 6. This adds up to 10. The single power brick I have is also a 10, so we can power the whole computer from one power brick.
Here is the pinout for the power connector:
Note that I’ve shown the SDL connector pin-side-up. Beware that if you’ve lost your power cable, you cannot substitute a keyboard cable for a power cable even though they are both SDL cables. 1) They are keyed differently and will not physically plug in, and 2) The keyboard cable has pins 2 and 7 swapped.
Remember that time the power brick caught on fire?
Yes, the power brick caught on fire, we’ll get to that in a moment. In the meantime, here is a picture of the power brick:
The power supply is made by astec. It’s full of lots of beefy transformers, transistors, diodes, and a couple massive heatsinks.
Notice the small white/yellow rectangular part under some wires between four large capacitors and the AC jack on the left. About 10 minutes into my first run of the power supply, it did this.
The above picture is a minute after the initial combustion, I didn’t have the camera setup. There really wasn’t a whole lot of fire, just a little bit, but quite a lot of smoke and the office stunk for a day or so. The culprit was an “X2 Safety Capacitor”. These caps go between the line and neutral and are used to reduce AC line interference. Caps from the 1980s are notorious for undergoing spontaneous combustion. Fortunately the rest of the supply was not damaged and it continued to work fine once the cap was removed. It’s not critical, but I’ll make a note to replace it.
At first it looks like your typical PC keyboard, but it’s really quite a bit different. The keyboard has LEDs on some of the function keys. It uses SDL connectors, similar to the ones used by the power cable. The pinout is nothing like a PC connector.
The CPU in the keyboard is an 8051. The interface communicates to the computer with three IO lines: Reset, Data_In, and Data_Out.
Here is the pinout of the keyboard cable:
My CPU module included a monochrome video board. The problem is, this video is output through a DB25 connector on the IO Board, and there is no known pinout for this video connector. The NGEN series has a special purpose-built monitor that connects via the DB25. The keyboard signals are routed through the DB25, and broken out on an SDL connector on the monitor. As of today while I’m writing this, the schematic for the monitor and the schematic for the IO Board and Video Board are unknown to the Internet, so there’s no obvious source to get the data other than experimentation.
I started by pulling the IO Board, so that I could trace what wires connected to the monitor DB25.
Here’s what I found by examining all 25 pins of the monitor connector:
|EC-67 SPEAKER||1||25||NC (35 VDC from LM317)|
|EC-29 PWR_ON (Low)||2||24||G|
|EC-32 Monitor_Detect||4||22||EC-94 – out to kbd|
|G||5||21||EC-93 – in from kbd|
|OUT (74S240N-??) VIDEO||7||19||G|
|OUT (74S240N-16) INTEN||8||18||OUT (74S240N-14) VSYNC|
|G||9||17||OUT (74S240N-18) HSYNC|
|35 VDC from LM317||12||14||EC-10 – kbd reset|
|NC (35 VDC from LM317)||13|
Note 1: On the DB25, pin25 is next to pin13 — the breakout board I used kinda flips the rightmost column.
Note 2: Pins 12, 13, and 25 were connected on my CP-001 80186 unit, but documentation leads me to believe that 13 and 25 may be unconnected on a color graphics adapter. This is unconfirmed. My first version of the breakout board has all three pins connected.
Note 3: Pins 15 and 16 were connected to GND in my CP-001 80186 computer, but documentation leads me to believe they are connected to signals on a color graphics adapter. May be best to leave them not connected.
Several of the pins (5, 6, 9, 10, 11, 15, 16, 19, 20, 24) are grounds. This is not unusual. Having many grounds allows them to put power returns separate from signal returns and to give some signals isolated returns. It’s possible that the factory cables might have used twisted pair or coax on the video signals, for example.
Pins 12, 13, and 25 provide some voltage from an LM317 voltage regulator on the IO Board. These pins have approximately 35 VDC on them when enabled. The LM317 appears to be enabled by placing a low signal on pin 23. This could be the monitor’s way of signalling to the PC that it is connect ed and that power should be supplied.
Pins 7, 8, 17, and 18 are all connected to a 74S240N gate on the ioboard. My original hypothesis was that these were for the keyboard circuit, but I can confirm that at least three of them are video! Pin 18 is the Vertical Sync at 60 Hz, ping 17 is the Horizontal Sync at approximately 22 Khz, and pin 7 is Video Out. Pin 8 is Intensity. There is a 19.980 Mhz crystal on the video board, and my hypothesis is that the video bitclock is 19.980 Mhz.
A total of six pins go out to the edge connector on the IO board. Of those, four of them I was able to trace to the edge connector on the video board:
|IO Pin||Video Pin||Notes|
|EC-32||EC-32||Input to a 74LS240 pin 2 (D1) and|
74LS74 pin 11 (B12), 1K pullup
|EC-67||EC-67||Output from 74LS38 pin 3 (F7)|
|EC-93||EC-93||Present on video board edge connector,|
but unable to trace on video board
|EC-94||EC-97||Present on video board edge connector,|
but unable to trace on video board
The video board’s EC-93 and EC-97 pins I was unable to trace to any component on the video board.
Pin 1 is a logic-level audio output. You can use this together with appropriate resistors and a PNP transistor to drive a speaker and the computer will beep as appropriate.
Pin 2 appears to be a power_on signal. It is active low, and pulls itself up to around 4V when inactive.
Pin 4 is used to detect the monitor. If this pin is left floating then some weird things will happen — B25 diagnostics does not have video tests but does show a dual-drive unit that didn’t exist, for example. Some versions of CTOS either would not install or would not work. I think the OS either turns off the video if it thinks the monitor is not present, or it simply misbehaves. Connect this pin to ground to signify that a monochrome monitor is present. For other monitors (color, VGA, ??) then I’m not sure exactly what you should connect this pin to.
Viewing on a VGA Monitor
I used an MCE2VGA (https://sites.google.com/site/tandycocoloco/mda-cga-ega-to-vga), which is a small board that converts digital monochrome video to analog vga. It deals with all the grief about converting different refresh rates and different resolutions to something a vga monitor can deal with. In it’s native form, it can handle IBM PC MDA (monochrome), CGA, and EGA.
However, the convergent video output is not the same as IBM PC MDA, so I had to make a few changes:
- I modified the MCE2VGA dot clock to be 19.980 Mhz instead of 16.257 Mhz
- I modified the MCE2VGA monochrome vertical sync to be positive instead of negative
- I disabled the MCE2VGA’s CGA and EGA modes
My custom fork of MCE2VGA is available at https://github.com/sbelectronics/mce2vga-convergent-technologies
Viewing on an IBM-5151 Monochrome Monitor
If an MCE2VGA and a modern flat panel isn’t really your thing, but you don’t have access to a convergent monitor, then you can get the machine to work with something like an IBM 5151 monitor.
Note that the dot clock and refresh rates of an IBM MDA are different from the convergent’s native output, and connecting a 5151 as-is will likely damage the 5151 monitor. You’ll need to do two things to get it to work right:
- Change the crystal on the Convergent’s video board from 19.980 to 16.257.
- Invert the video sync pulse, for example with a 74xx04 hex inverter.
In my third video linked at the top of this blog post, I do exactly these steps, and get some video output on my trusty 5151. It sure is better viewing a vintage PC on a green monochrome CRT than on a modern LCD. It just doesn’t feel the same on the LCD.
Connecting the Keyboard
Combining the tables above, we can establish an interconnect for the keyboard and monitor connectors:
|20||1, 6, 8||GND|
|21||7 *||Serial – Keyboard to Computer|
|22||2 *||Serial – Computer to Keyboard|
* Important Note: the KBD pins above are on the connector on the keyboard. Keep in mind that the standard coiled keyboard cable swaps pins 2 and 7. If you’re making your own cable, use the pin numbers I specified above. If you’re using the coiled convergent keyboard cable, then make sure to swap these two pins. Refer to the picture further up in the document that shows both ends of the keyboard cable if you have any question.
There is no +5V source on the DB-25. In my prototype I used an external wall wart to power the keyboard. When I make a final board, my plan is to use a switching regulator to step the 35 VDC on pins 12/13/25 down to 5V.
Using a PS2 Keyboard with the Convergent NGEN
Convergent keyboards are few and far between, and the one I own is starting to get really funky with some of the keys being intermittent, so I decided I would build a converter to use a PS2 keyboard. Fortunately, Joe had donated me one of his development workstations, and it included some documentation on the Convergent I-BUS, and on the design of one of the Convergent keyboards. This described not only the IBUS protocol, but even the scancodes used by the keyboard. The only thing that wasn’t clear to me was the reset timing, so I took a few scans with the oscilloscope.
As you can see above, on the low-to-high transition of RESET, the keyboard sends a sequence of 120 alternating FE and 87 bytes (NOTE: Official documentation only mentions the FE bytes, but the 87s are observed in the keyboard diagnostics). After the FE/87 sequence the keyboard sends an id of B0 and 04. The B0 identifies it as a dual-ported keyboard, and the 04 identifies the layout as a US K1 keyboard . Then the keyboard sleeps until it receives a soft reset (0x92) from the computer. That will enable the keyboard’s periodic scan, and the first scan will usually be “all keys up”, which is a 0xC0.
The scanning protocol is fairly simple. The keyboard scans itself periodically and it reports the scancodes of all the keys that are depressed, with the high bit set on the last key that is pressed during the scan. If no keys are pressed, it reports C0. There’s no specific “key up” sequence like there is on a PS2 keyboard — when you release a key, the next scan simply won’t list that key as being down.
I built a couple prototypes of a PS2-Convergent converter. The first was based on an ATTINY85, which was a bit problematic due to the lack of a real UART. I won’t say much more about that prototype, as I immediately designed a second one that used an ATMEGA328. The 328 has a real UART, and many more GPIO pins. Below is the schematic of my keyboard converter:
The serial logic on the Convergent side of things is inverted, so there’s a 74HC05 hex inverter on the serial lines from the ATMEGA328 to the convergent PC. The PS2 connector is bit-banged from the ATMEGA328. That’s really all there is to it.
I had a bunch of spare GPIO on the 328, so I added support for 12 optional keys that could be direct-wired to the 328. You can build the converter with or without these optional keys. If you build without, then all of the “special” convergent keys (help, scroll up/down, cancel, finish, etc) can be emulated with a 104 key PC keyboard. If you build the converter with the optional 12 keys, then you can have a dedicated keypad for those special convergent keys. It’s really nice to have the dedicated keys, rather than rely on wacky remapping of a PC keyboard.
Below is a picture of the completed adapter sitting next to my old dirty compact PS2 keyboard:
The code and the schematics for the keyboard adapter are available on my github repository at https://github.com/sbelectronics/convergent-kbd.
Convergent DC-DC Converter
As shown in the videos, each Convergent module typically has one or two DC-DC converters. For some modules, the CP-001 CPU module, for example, there are two 5V converters. Other modules, such as the HDD/FDD may have one 5V and one 12V. I did take the time to map out the pins on these modules.
|2||GND-IN, also connected to system GND in CPU module|
|8||Leave floating and module will output 5V. Pull down to GND|
and module will output 12V.
|13||Unknown (see note)|
|14||Enable — pull to GND to enable module|
Pin 13 I’m not sure about. The CPU module shows a 1K resistance between this pin and GND. When the module is turned off, I measure about 0.6V. When the module is turned on, I measure about 2.4V. Unsure of the function on this pin.