The Web Site to Remember National Semiconductor's Series 32000 Family


In April 2017 I got contact to Gilbert. He lives in California, US. In his first email he described some of his projects. One of them is still on the to-do list and will use his DB32000 board (see one at Systems/National Semiconductor). The plan is to use the second processor socket. This is an exciting project and for sure any results will be reported here.

A software project works for the GNU assembler "gas". Support for Series 32000 is getting less in the GNU community year by year. Therefore I was glad to read the following text in one of his emails:

"Since we last emailed, there have been developments with the GNU binutils community. My patch was accepted so that means that ns32k will not be removed from binutils (which includes GNU assembler, linker, objdump, objcopy and some others). However, I did have to volunteer to become the maintainer for ďall things ns32kĒ in binutils. The leaders then immediately gave me some assignments to get started improving the NS32K support. One person also asked if I intended to restore ns32k functionality in GCC, and I said that I might like to do that eventually, but would probably have to do one thing at a time.

In order to help with my binutils work, I have wired up a small 32008-based computer on a breadboard. Itís just the ICU&32008, a static RAM, an EPROM, and a 16550. I wrote a simple Intel-hex downloader and put it into ROM and the board works quite well.

Iíve come across some bugs in the GNU assembler for ns32k and some shortcomings. For instance, as far as I can tell, the GNU assembler doesnít have the module concept therefore it doesnít handle the CXP instruction or EXT addressing properly. Also, I havenít yet figured out a way for it to automatically use label(SB) addressing when specifying just label as an argument when label comes from a .static section. These appear to be a main features of NS32K tools from 30 years ago. I may be mistaken and will investigate further.

As the official maintainer of NS32K in the GNU binutils ;-) I definitely want to make these tools good enough to adequately make use of the entire NS32K architecture, even though there might have to be slight syntax changes from the NS32K tools of the 1980ís."

Even the best microprocessor (Series 32000 is close to that :-)) will not be used if software tools are missing. Thanks to Gilbert the future of the GNU binutils looks promising!

NS32016 based computer built with wire-wrap

Working for the binutils requires solide software knowledge. But Gilbert is doing some good jobs in hardware too. He wrote about this machine:

"The wire-wrap board is a 6Mhz NS32016 board that I built in late 1986 from the Series 32000 Designer Kit (32016 version). It uses the NS32201-6 TCU, NS32016-6 CPU, and NS32081-6 FPU from the designer kit. I did not include the NS32202 ICU, NS32082 MMU or two 27128 TDS EPROMs that also came with the designer kit. The board also has two NS8250A UARTs, two 6264 8Kx8bit static RAMs and two 2764 (8Kx8bit) EPROMs. The single INT line comes from the first serial port. The second serial port does not operate with interrupts. Originally, the computer interfaced to another board that would drive a gas-plasma display similar to the one found in a PLATO V terminal*).

The board still works. It boots the ROMs at 000000h, runs a little program to download more code via the Comm port into RAM at 100000h, and then jumps to it. The module table exists in ROM and therefore cannot be changed.

I made the wire-wrap paper labels on a fairly new technology at the time called a ďLaser PrinterĒ ! My Universityís Electrical Engineering Department had one in the office. This was before Postscript was common in laser printers and I had a program that used the raw graphics capability of the laser printer to print these labels, top side and bottom side."

*) A photo of the terminal is available at wikipedia.

Fig. 1. Top view of the NS32016 based computer. But where are the capacitors? Below the IC's?

Fig. 2. Bottom view of the NS32016 based computer. The wiring is very clean and tidy.

Fig. 3. A detailed view of the bottom side showing some manually made additions to the labels.

The small inverters drawn on the paper for the 7404 are nice. Some of the inputs have no wire connected to. In this case the output may oscillate if the device is not made in TTL technology.

NS32008 based computer built on a solderless breadboard

Is this crazy? A computer with a 32-bit processor running at 10 MHz build on a solderless breadboard? In my opinion "yes". But Gilbert has done such a project successfully! Here is what he said about it:

"The ratís nest of wires is a 10Mhz 32008 computer that I started building in April 2017 (just a few weeks ago). Iíve been working on GNU binutils for the assembler and linker for NS32K and I want to work more with the NS32K module linking concept. Module tables must live in the bottom 64k of the address space and my 32016 wire-wrap boardís RAM is up higher. I do have a DB32000 board which has RAM down low, but my DB32000 is unreliable and will crash for no apparent reason after several hours. Instead of re-working my wire-wrap board, I decided to start wiring up a new computer on solderless breadboards. I chose to use the 32008 with the 8-bit bus for a few reasons. First, I donít need the higher data throughput of a Ď016 or Ď032, but I want the 8-bit bus so that when Iím burning EPROMs for the computer, I only have to burn one. Another bonus is I have a bunch of 61256 static RAM parts so by stacking them and soldering the pins together (except the chip select), I am able to get a quick 64k of RAM with a fewer wires (see picture). Also, the NS32008-10 and NS32201-10 parts are still readily available on ebay. I use a NS16550 for a serial port.

Currently, the firmware downloads an Intel HEX file from the serial port and jumps to it. The computer is still a work in progress. When the changes to my design settle down, I may get more ambitious and create a real circuit board for it. However, it really is quite a feat of the original NS design team that you can just slap together some parts in an afternoon and have a working computer.

I do have the 32008 running at 10Mhz by using a 20Mhz oscillator with the 32201. The static RAM is fairly modern and has no trouble at all with the access time. Iím not so sure about the ROM, itís a vintage 2716 and Iím not sure of the access time. It seems to run fine without wait-states. I havenít looked at the read cycle timing chart carefully to see if Iím within specifications. I used the /PER line on the 32201 for the 16550. Again, I didnít look carefully at the timing charts of the 16550, but overall I donít access the 16550 often so the 5 wait states is fine."

Fig. 4. This photo is for sure a candidate for the "Photo-of-the-Year" contest!

Again in Figure 4 I don't see any capacitors used for filtering the supply voltage. It is big surprise if the system is running stable without them.

The stacked SRAMs are packaged in a narrow 0.3 inch wide 28-pin DIP. Their access time of 15 ns is ten times faster than required.

Fig. 5. SRAMs caught in the wire jungle ...

Next chapter: Indel AG