Before the Wang VS systems, before the Wang 2200, before the Wang 3300, came Wang's first programmable computer system, the Wang 4000. It was created in 1966 by Wang manager Frank Trantanella by repurposing much of the logic of the Wang calculator systems. To read a great account of the Wang 4000, please visit Rick Bensene's Old Calculator Museum, this page in particular, to learn more.
Wang Labs kept a small museum of Wang's history, including a number of their older machines. In the 1980s, when Wang was enduring some rough times, and after An Wang had retired, the museum was scrapped. Employee Bob Trottier was aghast at this but didn't have the room to save much of it, so he took a few pictures and saved a few mementos. He supplied the following photographs, some of which are also on Rick Bensene's site.
The machine description above has image links scattered throughout. Here are links to the same pictures, labeled more clearly.
In 2012, Frank Trantanella, the engineer behind the Wang 4000, conacted me with more information and some pictures of the Wang 4000. Here is what he sent; click on any image to get the full resolution image. A very large "Thanks" to him for being generous with his time and taking the effort to dig out these photos and to explain things. The images below were taken by Henry Fredette, who joined the 4000 project in its later days.
Frank also supplied a scan of an article from the April 24, 1967 issue of Product Engineering. It describes the novel system Frank designed to allow the various subsystems of the Wang 4000 to communicate to each other as a network of peers.
Here is Frank in his own words describing the system a bit more.
We are talking about 45 years ago, and I don't have any program samples to verify what I am saying, but I would suppose that the 4000 included all of the Loci or calculator commands, plus those extra keys shown on the 4000 keyboard. I would also guess that almost every command had a key so that a program could be entered directly from the keyboard. Special codes, if any, and text could be entered using the toggle switches. An entire program, including text, could probably also be entered via the teletype keyboard, and could be saved to and reread from teletype tale. Remember ... I'm guessing and I'm old. And my recollection of how things worked will be colored by how things, that were designed later, worked.
The 4000 consisted of a number of modules connected by a common bus. Any module could assume control of the bus and any module could transfer data directly to any other module, or receive data from any other module. Codes could be sent directly from the keyboard to the teletype, say to produce a program tape, or sent directly to memory and later sent from memory to the teletype to produce the tape. This was not traditional thinking at the time, whereby everything went though the central processor. It was probably also not a stroke of genius, but rather born of necessity. Since the processor was a standard calculator, there was no way to pass data, particularly alphanumeric codes, through it. However, once the idea came to mind, the benefits of this architecture became apparent. I was awarded a patent for this concept (US3470542) in 1969.
The basic architecture of the 4000 is described in the Product Engineering article of April 24, 1967. Reading this article will help to understand what follows below.
From the keyboard photo, I make out the extra stuff along the top to be:
- CCS (n): select module n as control
- ICS (n): select module n as Input, authorize module n to strobe data onto the bus
- OCS (n): select module n as Output, authorize module n to read data from the bus
- Shift: I'm not sure, maybe just a shift key to accommodate more commands
- JMP (address) would allow program branching. Loci literature would explain how it worked
- TRA would initiate a transfer of data from the input module to the output module
- LSA (address) would specify a storage address
- TTC - ?
- PTR - ? printer or pointer?
- TSW test the W register prior to a jump. W is the main calculator disply
- EOT end of transmission, probably terminated the input output transfer
- LDW (digits) load W with digits
The three lights O-I-C probably specify the current role of the keyboard: output, input, or control
The eight toggle switches allow entering special codes
The eight lights show the code on the bus in Octal ( I never liked Hex )
The Step-Run toggle allowed single stepping the program for debugging
Along the right side:
- STROBE would impress the code designated by the top row toggle switches onto the bus
- ACK would acknowledge receipt of a code
- STEP alows single stepping a program. The lights below the toggles would show the code on the bus
- CTU - ? Continue? There must be a STOP code somewhere
- WRITE ? probably writes the entire program to the output module
- READ probably reads the entire program from theinput module
- STORE stores the value of W to the designated storage address
- RECALL reads the value at the designated storage address into W
If you have any more information about the Wang 4000, I'd love to hear about it. If you want to contact me for whatever reason, try me at firstname.lastname@example.org.