Wang 600 Programmable Calculator
A most wonderful addition to the museum is the Wang 600-series calculator. The Wang 600 series is a follow-on to the amazing Wang 700-series calculators (see the exhibit on the Wang 720C for more information on the 700-series). The 700-series was Wang's tour-de-force calculator, intended to challenge the dominance of Hewlett Packard's 9100A and 9100B calculators. After the 700-series debuted, Wang realized that not everyone needed such a complex and expensive calculator, and that the same general microcoded architecture of the 700-series calculators could be tailored into calculators targeted to users whose needs were not as intense. The result was two series of calculators, the Wang 500 and Wang 600 series calculators. The 500-series was essentially a scaled-down 700-series calculator, providing a lower-cost calculating solution to scientific users, and the 600-series calculators were intended to address business and engineering uses, with a more generalized feature set.
The calculator exhibited here appears to be one of the higher-end 600-series calculators, with the optional built-in impact printer, expanded memory, and built-in cassette tape drive for program storage and retrieval. The 600-series debuted in 1972, and appears to have sold into the late 1970's, when Wang phased itself out of the calculator business.
Profile View of the Wang 600
While architecturally similar to the 700- series calculators, the 600-series machines operate substantially differently from their 700-series predecessors. The 600-series was targeted at a slightly less technical market than the computer-like 700-series calculator. It also appears that Wang perhaps targeted the 600-series calculator as an upgrade path for users of the older Wang 300-series calculators (see the Wang 360SE exhibit for more information on the 300-series), as there are some operational similarities between the 600-series and 300-series calculators. Physically, there are many similarities in design between the 700-series and 600-series calculators. The same basic cabinet design is used, with a heavy cast-plastic base, and a molded plastic upper cabinet. The 600-series uses the same cassette tape drive as the 700-series, and the design of the keyboard assembly is shared. The chassis is of similar design, using heavy aluminum plate construction. The 600-series calculators use a printed-circuit board backplane versus the hand-wired backplane of the 700-series calculators, and also use a single line gas-discharge display panel versus the two line Nixie-tube display of the 700-series machines.
The Wang 600 With Upper Cabinet Removed
Electronically, the 700 and 600-series calculators are similar, with the 600-series calculator using exclusively small and medium-scale 7400-series TTL (Transistor-Transistor Logic) integrated circuit devices, while the earlier 700-series calculators uses a mix of small-scale DTL (Diode-Transistor Logic) and TTL integrated circuits. The primary electronic difference between the 600-series and 700-series calculators is that Wang abandoned the magnetic core memory technology used in the 700-series (and earlier) calculators in favor of early integrated circuit RAM (Random Access Memory) as the method of storage for program instructions and memory registers. Although integrated circuit technology had infiltrated just about every aspect of Wang's calculators by the time the 600-series was introduced, one area hadn't changed from the 700-series calculators - the ferrite transformer-based ROM (Read Only Memory) used to hold the calculator's microcoded brains. It appears that somewhere during the Wang 600-Series' lifetime, a solid-state microcode ROM board was either made available in production, or as a replacement part, as in Wang's Catalog of Integrated Circuit Part Numbers indicates part numbers 377-0117 through 377-0127 were used as "Solid State Microcode ROM for Model 600", on a circuit board approximately 1/5th the size of the transformer-based ROM, indicated in other literature as circuit board #6293.
From an operator's perspective, the Wang 600 would feel fairly comfortable to a user who is familiar with the Wang 300 series calculators. A key aspect of the 300-series is that the calculator has two accumulators. The accumulators are designated as the LEFT and RIGHT accumulators, identified as such because of their proximity to the numeric entry keypad. Each accumulator on the 300 series can accumulate results of addition or subtraction operations. This same principle carries over to the 600, but rather than simply providing a place for results for addition and subtraction to be stored, the 600 provides full four-function arithmetic capability for each accumulator. Thus, the 600 has two add, subtract, multiply, and divide keys. This might seem a little confusing at first, but simply considering the accumulators as individual four-function calculators, whose results can be recalled to the display at any point, serves to demystify the concept.
The Wang 600 Keyboard
The keyboard on the Wang 600 is almost as impressive (and intimidating) as the Wang 700-series. The 600 keyboard has seventy keys, grouped into six different areas. Across the top of the keyboard panel is a group of sixteen keys labeled  through , which serve multiple purposes, but mainly serve as the means to access to the 600's memory registers. At the left end of the keyboard are the higher-level math function keys. The 600 has a nice complement of scientific functions, including trigonometric functions (SIN, COS, TAN and inverse functions), degree to radian and radian to degree conversion, square and square root, base e and base 10 logarithm and antilog, reciprocal, absolute value, and integerize functions. A mode switch selects whether the trig. functions operate on arguments expressed in degrees or radians.
The Illuminated "Shift" Key
This area of the keyboard includes a [SHIFT] Key, which allows access to secondary functions on some of the keys. Pressing the [SHIFT] key lights an indicator under the keycap, which indcates that a successive keypress on a key with a secondary function will result in the secondary function being executed. For example, the [SIN] key, when pressed after the [SHIFT] key has been pressed, will calculate the ARCSIN (inverse SIN) function. Once the function is completed, the indicator under the [SHIFT] key is extinguished, and the calculator is ready for the next operation.
Also in this left-most group of keys, the [PRIME] key is used as the master clear for the calculator. The [PRIME] key should be pressed after the calculator is first powered up to assure that the machine is cleared and ready for operation. Anytime the state of the calculator needs to be set to a clean state, the [PRIME] key can be pressed, which will result in both accumulators and all memory registers being set to zero, any pending operations cleared, program execution halted and the calculator placed in a state where it is ready for input.
Moving to the right of the higher math keyboard group, the next group of keys control the left accumulator. This group of seven keys contains keys labeled [TOTAL], [STORE], [RECALL], [+], [-], [X=], and [÷=]. Thinking of this group of keys as a simple four function calculator will make it easy to understand the function of the arithmetic units on the Wang 600. The [STORE] key simply takes the number currently in the display and places it into the accumulator. The [RECALL] key takes the content of the accumulator and posts it in the display. The [TOTAL] key does the same thing as the [RECALL] key, but clears the accumulator after posting its content in the display. The math function keys simply perform the specified operation on the content of the accumulator and the content of the display, placing the result in the accumulator, and recalling the accumulator to the display after the calculation is complete.
To the right of the left accumulator control keys is the numeric keypad. The standard 0-9 keys, along with decimal point are found there, along with [CHANGE SIGN], which toggles the sign of the number being entered, [CLEAR DISPLAY], which clears the display register allowing for correction of incorrectly entered data, and [SET EXP], which enables entry of an exponent for numbers expressed in scientific notation.
Next to the numeric entry keys are the controls for the right accumulator, which are identical to those used to control the left accumulator. Both the right and left accumulator are totally independent math processors that, in fact, operate on memory registers 14 and 15. The right accumulator actually resides in memory register 14, and the left accumulator resides in memory register 15. The memory architecture of the 600-series calculators is quite unique, and will be explained further later in the exhibit.
On the right end of the keyboard panel is a group of fifteen keys used for various control and programming functions. The [LOAD PROG] and [RECORD PROG] keys are used with the magnetic tape cassette deck to recall and save programs from/to the tape. The [SEARCH] key, and its shifted function "MARK", are used for branching operations, with MARK used to set a label as a destination for a branch, and SEARCH used to branch to a given label. The [J IF 0] and [J IF +] keys are used for testing the display for zero or positive numbers, and branching if the condition is true. Shifted versions of these conditional test keys allow for branching if the calculator has detected an error condition, and if the content of the display is non-zero. The [RECALL] key, [and its shifted function "STORE", allow direct access to the memory registers of the calculator by pressing the [STORE/RECALL] key followed by one of the sixteen memory register selection keys. More on why the [STORE/RECALL] key exists in the section on the memory architecture of the calculator. The [PRINT] key causes the content of the display to be printed on the optional built-in printer, with a shifted function allowing access to limited alphanumeric labeling features of the printer. The [INDIR] key is used to provide indirect access to memory registers, using the content of a memory register to serve as a 'pointer' to another memory register. The [I/O], [GROUP 1] and [GROUP 2] keys are used to control input and output to/from the calculator from externally connected peripheral devices. The [GO] key initiates execution of a stored program, and the [STEP] key allows a program to be executed one step at a time for debugging purposes. The [SET PC] key allows manual setting of the program counter, and the [VERIFY PROG] key generates a checksum of a program stored in memory to allow verification that a program properly loaded from the cassette tape. Shifted versions of the [SET PC], [VERIFY PROG] and [RECORD PROG] keys allow for editing of programs in memory, including deleting and inserting program steps.
The Wang 600's Circuit Boards
Returning inside the Wang 600, the calculator is really quite simple. All of the main electronics of the machine are found on a total of eight main circuit boards, with additional electronics sprinkled around in the keyboard assembly, the microcode store, and the display circuit board. The circuit boards are similar in size and design to those used in the Wang 700-series calculators, with each card having three edge-connectors allowing the card to be plugged into the backplane. Because of the greater integration levels available in the medium-scale IC's used in the 600, the number of circuit boards required to implement the logic of the machine is reduced in comparison to the Wang 700. In the Wang 700, a four-bit counter would require a couple of IC's. In the 600, a single IC can provide that function. In total, just over 200 integrated circuits make up the logic of this Wang 600, as compared to over 300 in the Wang 720C in the museum. Even with fewer IC's, the machine generates a significant amount of heat, which is exhausted from the cabinet by a large (and fairly noisy) fan mounted on the back of the cabinet.
The circuit boards are made of fiberglass, and have etch on both sides of the board, with plated-through feedthroughs connecting the two sides of the board. The logic used is all standard 7400-series TTL, with small and medium-scale devices. Only three of the main logic boards have obvious functions, with the front-most board dedicated to driving the printer, the next to the back board containing the calculator's IC-based memory, and the rear-most board appearing to be involved in I/O interface functionality.
The RAM Memory Board in the Wang 600
The program and register storage technology in the 600 is noteworthy, as it is a departure from Wang's tried-and-true magnetic core memory technology used in its earlier calculators. The memory is implemented with sixteen Mostek MK-4008 dynamic RAM (Random Access Memory) devices. The MK-4008 was one of the early 1024-bit RAM chips, with each chip organized as 1024 individual bits. The MK-4008 is a dynamic RAM, meaning that the content of the memory cells must be periodically refreshed, or the content of the memory cell will bleed off. The state of a memory cell in a dynamic memory device is stored in a tiny capacitor. Capacitors store electrical charges, however, they can not store a charge indefinitely. The act of refreshing the memory cells periodically assures that a '1' stays a '1'. The MK-4008 is rather a famous chip, because it was found that if the lid covering the IC die was carefully removed from the package, the chip itself was light-sensitive. Popular Electronics magazine had an article that appeared in the February, 1796 edition that used a modified MK-4008 memory chip as the image sensor for a do it yourself all-solid state video camera called "Cyclops", with 32 X 32 pixel resolution.
The Wang 600's Printer
The Wang 600 was offered in a fairly diverse selection of configurations. The amount of program memory, and whether the machine came with the printer and/or cassette tape drive appear to be the various options that the machine could be ordered with. This particular machine has a model number of 600-14-TP. The 14 appears to be an option number describing the amount of memory in the machine. The machine exhibited here contains enough memory to allow programs of up to 1848 steps. Program steps can be traded off for additional storage registers -- more on that below in the explanation of the memory register architecture of the 600. The "T" option code indicates that the machine has the built-in cassette tape drive, and the "P" code indicates that the machine is equipped with the built-in 21-column drum printer.
Printer Hammer Detail
The printer is a fairly amazing piece of technology in itself. According to information I've found by talking to former employees of Wang, the printer technology used by Wang in their calculators was OEM'd from Suwa Seikosha Co., Ltd. (which later became known as Epson). In September of 1968, Suwa Seikosha introduced the EP-101 printer, which was developed as an outfall of the Seiko group (of which Suwa Seikosha was part of) having been chosen as the official timekeeper for the 1964 Olympics. A compact, reliable printer was needed to record the output of the electronic timers. The EP-101 printer was the result of this requirement. During the sales lifetime of this printer, over 1.5 million units were sold, mostly for calculators, but also for instrumentation, cash register, and many other markets requiring hardcopy output.
The printer uses a drum and hammer approach to print on a wide paper tape. A drum with embossed characters spins behind the paper at a rate of approximately 300 RPM. Positioned in front of the paper is a row of 21 hammers. Located between the hammers and the paper is an inked ribbon. When the character to be printed in any given position is coming into position as the drum spins, a solenoid causes the hammer to move forward and strike the ribbon at just the right time to cause an inked impression of the character to be deposited on the paper. A total of seven solenoids control the hammers, with each of solenoid shuttling across three different hammers to timeshare the solenoids. The printer prints a total of 120 lines per minute, or two lines per second. The printer is positioned under a clear plastic cover that can easily be removed to allow loading paper and replacing the ribbon. A push-on/push off switch on the keyboard panel turns the printer on when activated. If commands are given that reference the printer when the printer is powered off, the command is simply ignored.
The Wang 600's Gas-Discharge Display Panel
The Wang 600 uses a Burroughs Panaplex neon gas-discharge display panel. The display panel consists of 16 digits, with each digit containing a nine-segment digit representation, and a right-hand decimal point. The extra two segments are positioned vertically inside the '8' formed by the standard seven-segment representation to allow the display of '1' to be centered within the digit. The vertical bar added by the two additional segments also allows the display of a "+" sign. The display panel uses an entire digit position for the display of the decimal point, which is unusual.
The Display Circuit Board, with Scientific Notation Display
The display can be presented in either standard numeric format, with the sign at the far left of the display, followed by ten significant digits. In this mode, the calculator operates with fully floating decimal. The calculator can also display in scientific notation. A mode switch on the keyboard panel provides settings to allow the calculator to operate in conventional mode, automatically shifting into scientific notation when numbers are too small or too large to display conventionally, or to force the calculator into always displaying its results in scientific form. When displaying numbers in scientific notation, the calculator displays the sign of the mantissa left justfitied in the display, with ten significant digits of mantissa displayed, followed by a blank digit, then the sign of the exponent, followed by two digits of exponent. In scientific display mode, the decimal point is always located after the first significant digit.
ROM Pack Connector on top of Wang 600, and a photo of a populated ROM Pack
The Wang 600 shares a similar architecture to the 700-series for connecting external peripheral devices to the calculator. There are two connectors on the back panel of the calculator that provide for connection of external devices, along with a rather clunky-looking cover on the top panel of the machine (you can see the cover very clearly in the rear panel view of the calculator as shown below). This cover is removable, and underneath is a cutout in the case that provides access to a connector on the rear-most circuit board in the calculator that allowed for the insertion of ROM Modules that contain programs for a number of pre-defined applications. An article in a trade publication describing the Wang 600 mentions that, at the time(mid-1972), there were five available ROM Modules that provided programs for statistics, advanced statistics, surveying, algebraic programming, and extended alphanumeric program listing (on an external printer). The article also mentions that Wang provided a service whereby customer's programs could be custom coded into a ROM module, eliminating the need to load a program from cassette each time the machine is powered down. Each ROM Module could hold up to 2048 program steps. The ROM Modules used early MOS Integrated Circuit ROM devices (a total of four) as the storage medium for the program in the ROM Module. The ROM Pack is secured with two snaps, similar to that used on a coat or jacket. Simply grabbing the cover and pulling it upwards releases the snaps, exposing the connector. When an actual ROM Pack isn't in place on the calculator, Wang provided a dummy ROM Pack with no electrical connections in it to cover and protect the connector.
Back Panel of Wang 600 (Note the large cooling fan)
A wide range of peripherals were available for most Wang calculators, including punched card readers, teletype I/O interfaces, interfaces to modified IBM Selectric typewriters for output purposes, plotters, external magnetic tape drives, paper tape readers and punchers, as well as general pupose digital I/O interfaces that allowed the Wang 600 calculator to serve as the controller in automated test and process control systems.
This particular Wang 600 is equipped with the optional built-in cassette tape drive. This drive, while it will accept standard audio cassettes, is intended to be used with special digital-grade data cassettes. The drive is pretty much a duplicate of a standard audio cassette tape transport. Four buttons control the operation of the tape drive. The "RELEASE" button ejects the cassette. The "FORWARD" button advances the cassette forward while engaged. The "REWIND" button rewinds the cassette, and the "READY" button places the tape read/write head in contact with the tape, and readies the tape drive for operation. The [LOAD PROG] and [RECORD PROG] keys on the keyboard control the actual loading and saving of program memory to the cassette. When either of these buttons is pressed, the calculator triggers a relay that starts the tape transport, and the data is read or written from/to the tape. It is up to the user to properly position the tape to the right spot on the tape using the "FORWARD" and "REWIND" controls.
Wang 600 ROM Board (Front, Rear)
Images Courtesy Allard Schapp
Like the 700-series calculators, the Wang 600 uses a ferrite transformer ROM to hold the microcode that directs the operation of the calculator. The ROM is physically virtually identical to the microcode ROM in the Wang 700. The only real differences between the ROM assemblies for the 600 and 700-series machines are that the sense amplifiers for the memory array on the Wang 600 ROM use integrated circuits as opposed to the transistorized sense amps on the Wang 700 ROM (Wang apparently had a lot of problems with the transistor sense amps in the Wang 700 ROM based on some comments from a former Wang service technician that I talked to), and that the ROM for the 600 stores a 42-bit microcode word as opposed to the 43-bit microcode word in the Wang 700 calculators. For a complete description and photos of the amazing Wang ferrite transformer ROM, have a look at the exhibit for the Wang 720C.
The Memory Mode Control Switches
The memory register architecture of the
600-series calculators is dramatically different than that used in the
700-series machines. The Wang 600 allows math operations to be performed
on memory registers, just as if they were individual 'virtual' calculators.
The row of keyswitches across the top of the keyboard function as direct-access
keys to the basic sixteen memory registers of the calculator. Above these
keys, a row of mutually exclusive (meaning when one switch
is depressed, all others are released) pushbuttons select the operating
mode of the memory registers. Depending on the setting of the memory
mode switches, when one of the memory register selector keys is pressed,
the operation selected by the mode switch is performed on the memory register
selected. The mode selection switches provide access to seven different
memory functions. The table below outlines the function of each of the
memory functions. In the table, "Mem" indicates the selected memory register,
and "Display" designates the display register.
|Mode Switch||Memory Function|
|T||Mem -> Display, 0 -> Mem|
|+||Mem + Display -> Mem|
|-||Mem - Display -> Mem|
|X||Mem X Display -> Mem|
|÷||Mem ÷ Display -> Mem|
|St||Display -> Mem|
|Re||Mem -> Display|
Next to the memory mode selection switches is a red pushbutton labeled "CLEAR", which causes all sixteen memory registers to be cleared when it is depressed. Depending on the amount of memory installed in the calculator, a number of banks of memory registers can exist. The sixteen memory register selection keys always address memory bank zero when pressed by themselves. For example, to recall the content of memory register 12, one would simply make sure that the "Re" memory mode switch is depressed, then press the memory reference key labeled "12". Immediately the content of memory register 12 would be placed in the display. To access other banks of memory registers, the function of the memory mode switches changes to that of a memory bank selector, and access to the memory registers is performed through the [STORE/RECALL] key in the right-most group of keys on the keyboard (see the explanation of the keyboard above). Depending on the memory configuration of the calculator, up to fifteen additional banks of sixteen registers can be addressed this way. In the photo of the memory mode selector switches, note the small numbers printed below the mode selection switches. When alternate memory banks are to be accessed, the switch corresponding to the bank of sixteen registers to be addressed is depressed. Then, to store or recall a number to/from any of the sixteen memory registers in that bank, the [STORE/RECALL] key is depressed (preceded by the [SHIFT] key if the RECALL operation is required), then one of the sixteen memory register selection keys is depressed to select the memory register within the bank to be stored into or recalled from.
Memory references can also be performed indirectly through any of the memory registers in bank zero, using the [INDIR] key. Indirect addressing allows a memory register to contain a pointer to another memory register. For example, if memory register #1 contains the number 12, and the display contains "123", and the "St" memory mode switch is depressed, pressing [INDIR] followed by memory selection keyswitch  will cause 123 to be stored into memory register 12. To clarify, the INDIR reference of memory register 1 (which contains 12) causes 12 to be used as the destination memory register for the selected memory function. It's kind of hard to explain, but the concept is very powerful, and allows the 600 to perform operations such as list processing and matrix manipulation. This particular Wang 600 appears to have the maximum amount of memory installed, which allows up to 256 individual memory registers to be addressed.
Program Mode Display
Like its 700-series predecessor, the Wang 600-series calculators are programmable. The calculator provides a fairly substantial set of programming capabilities, including test and skip instructions, labeling and branching, and subroutine call and return functions. Programming is controlled by a set of four pushbutton switches on the left upper part of the keyboard panel. The "RUN" switch puts the calculator in normal operation mode, where the calculator operates as a calculator, and any programs in the calculator's memory can be started by setting the program counter to the correct starting location (via the [SET PC] key) and pressing the [GO] key.
A Program Listing Printed by the Wang 600 (Factorial Program)
The "LEARN" switch puts the calculator in programming mode. In programming mode, the calculator stores keypresses as special codes, represented by two two-digit numbers. When the calculator is in programming mode, the display changes to show a four digit address, and two two-digit numbers which make up the operation code stored at that address (see photo above). The [STEP] key can be used to step through program memory one step at a time and view the content of the program memory. Most of the keys on the keyboard have a specific operation code (for example, the code for the  key is '00 03') that represents the key's function in program memory. The "LEARN AND PRINT" switch operates the same way as the "LEARN" switch, except in this mode, the depression of each program operation key prints the memory step number and operation code of each program step as it is entered. This is handy for making a printed record of a program as it is typed into the calculator that can be used later to verify correct entry of a pre-prepared program. The "LIST PROGRAM" switch puts the calculator into a mode where the printer will list out the content of program memory from a specified start point through an "END" step. This is useful for making final hard-copy listings of a program that has been entered and debugged. The listing shown above was produced using the "LIST PROGRAM" function.
The Wang 600 calculator is fast. All operations return results that appear virtually instantaneous to the operator. The 600 also executes programs at a fairly frenetic pace, with a simple program that increments the content of the right accumulator accumulating aproximately 500 counts per second. Not quite as fast as the Wang 700, but close. The simple factorial calculating program listed above runs for approximately one second to calculate the factorial of 69, which is the largest factorial the calculator can represent without overflowing. The display is blanked with the exception of the left-most digit, which displays a flickering "+" while programs are running. A programmed PAUSE instruction can allow output to be sent to the display, followed by approximately 1/2 second of delay, after which the program continues. Output can also be directed to the printer under program control, with special instructions to allow specifying the format of the output.
Like the 700-series calculators, the Wang 600 has two incandescent indicators on the keyboard panel used to indicate error or fault conditions. The "PROG ERROR" indicator lights when any overflow or error condition exists. This indicator lights, for example, if the machine is commanded to take the logarithm of zero. Along with this indication, the display also flashes at approximately 2 cycles per second to clearly communicate that an improper operation or overflow has occured. Overflow and error indications do not cause the machine to 'lock up'. Along with the "PROG ERROR" indicator, a "MACH ERROR" (MACHine ERROR) indicator illuminates to indicate a fault with the machine, or when the cassette tape device gets an I/O error. Pressing the "PRIME" key will clear the "MACH ERROR" indicator and returns the machine to normal operation.
Model/Serial Tag and Q/A Sticker on the Museum's Wang 600
The Wang 600 exhibited here received its final Q/A inspection on March 31, 1974. It appears that the Wang 600-series calculators were announced in December of 1971, so this calculator is a later production machine.