Casio AL-2000 Programmable Calculator
The Casio AL-2000 is a follow-on to Casio's first programmable electronic calculator, the Casio(Commodore) AL-1000. The two machines are very similar in functionality and capability, but differ in the technology used in their implementation. The AL-2000 uses Integrated Circuit technology, while the earlier AL-1000 was implemented with discrete transistor logic. As a result of the use of integrated circuits, the AL-2000 is significantly smaller, lighter, slightly faster, and consumes less power than its predecessor.
It appears that the AL-2000 was sold through OEM channels in North America by both Commodore and Remington, both under the AL-2000 model designation. The only difference between the Casio-branded AL-2000 and the Commodore/Remington versions is the nameplate and manufacturer model/serial number tag.
A profile view of the Casio AL-2000
The exhibited AL-2000 dates from early 1970, based on date codes on devices within the machine. It appears that the AL-2000 was released for sale by Casio sometime in the mid-to-late 1969 timeframe. Sales of the machine continued until sometime in 1972, by which time the machine was quite outdated, with LSI (Large Scale Integration) IC's making calculators much smaller and more capable. The fact that the AL-2000 used integrated circuits wasn't really much of a big deal at the time...by the late 1960's Canon, Singer/Friden, and Sharp, among others, were all using small scale bipolar and early MOS integrated circuit devices in their calculators, basically replacing discrete diode/transistor gates with their integrated circuit counterparts. Three gates that used to take a few diodes, a couple of resistors and a couple of transistors each could all be put into a single integrated circuit package, saving a lot of space as well as power. The AL-2000 used small-scale IC's as replacements for much of the discrete component logic of earlier machines, but also used some more advanced technology to reduce the parts count. This took the form of two medium-scale integrated circuits that combined to provide a good portion of the arithmetic processing circuitry for the machine. Later Casio machines, like the Casio 121-A further integrated the arithmetic function onto a single chip. A total of 90 integrated circuit devices, along with countless diodes, transistors, resistors, and capacitors make up the circuitry of the machine.
AL-2000 Keyboard Detail
The AL-2000 is a 14-digit, five function (standard functions plus square root) programmable calculator with four memory registers. The machine uses a 14-digit Nixie tube display, with each Nixie tube containing the digits zero through nine and a right-hand decimal point. To the left of the array of Nixies, a neon indicator tube with a '-' cutout positioned in front of it provides negative number indication. The display does not provide any leading or trailing zero suppression. The AL-2000 uses a magnetic reed-switch keyboard as opposed to the leaf-switch contact keyboard on the AL-1000. The AL-2000 provides the standard four math functions, along with a 'two key' square root function. This implementation of square root is curious, as the earlier AL-1000 had a separate "one touch" square root key, while on the AL-2000, the square root key is combined with the divide key. To calculate a square root on the AL-2000, the user enters the number to have its root extracted, presses the [÷] key immediately followed by the [=+] key to calculate the result. Sharp used this method for invoking the square root function on many of their earlier electronic calculators, but this is the first (and only, I believe) instance of Casio using this method for invoking the square root function.
The four memory registers that the machine provides are designated with keys labeled [I], [II], [III], and [IV]. Each memory register has a single key on the keyboard for storing or recalling a value. Pressing the [KC] (keyboard clear) key, followed by one of the memory register keys will recall the content of the specified memory register to the display. Pressing a memory key without first pressing [KC] will cause whatever is on the display to be stored (or added) into the appropriate memory register. Immediately to the left of the memory control keys on the keyboard are four black push-on/push-off switches labeled with a "<+>" annotation. These keys control the mode of the corresponding memory register. When the mode switch for a given memory register is on (depressed), the register acts as an accumulator. When off, the memory register is overwritten with new content each time a store operation is performed. The memory registers are stored within the AL-2000's magnetic core memory, and are thus non-volatile, meaning that the memory register contents are retained even while there is no power applied to the calculator.
The AL-2000 Minus Upper Cabinet
The [AC] key clears entire machine with exception of the memory registers. It also is used to clear the overflow error condition. The [KC] key clears the display, and is used for correcting erroneous entries, as well as a prefix to the memory keys to signal recalling from a memory register. The [-] key is a prefix used to enter negative numbers. The [-] key must be pressed before digit entry is done in order to enter a negative number. If pressed after digit entry has begun, the key seems to have no effect. At the left end of the keyboard panel, a slide switch selects the rounding mode of the machine, in conjunction with a thumbwheel switch that selects the digit position to be scrutinized for rounding. When the rounding mode is set to "CUT", the digit behind the decimal point position designated by the thumbwheel switch (which ranges from 0 to 9) is forced to zero regardless of its content, truncating results from the selected point in the result. If the round mode is set to "5/4", then the digit selected by the thumbwheel is observed, and if four or less, the digit and succeeding digits are forced to zero. If the digit is five or above, then the digit prior to the selected digit is incremented by 1, and the selected digit and successive digits are forced to zero, effectively rounding the number up to the selected number of digits.
The [=+] and [=-] keys are used for addition and subtraction, and operate arithmetically. The [X] key, as expected, is used for multiplication, and as mentioned earlier the combination [√/÷] key provides access to square root and division functions.
The AL-2000 has full floating decimal, meaning that the calculator automatically positions the decimal point in results to provide the maximum accuracy. However, the algorithm it uses for decimal point positioning isn't perfect. For example, performing 1.0001 times itself repeatedly will cause an overflow after just three cycles, because the decimal point ends up off the left end of the display. It appears that the AL-2000 doesn't have the logic to truncate the least significant digits of the results, allowing such a calculation to continue.
Board 1 and 2 (INDICATOR ADDRESS, MAIN 1)
Moving inside the machine, the AL-2000 is built in very typical Casio fashion. As with most early Casio machines, there are a number of circuit boards that plug into a backplane that provides power distribution and interconnection between the boards. The majority of the circuitry of the AL-2000 (excluding power supply) resides on five circuit boards that plug into the backplane horizontally. The backplane is a printed circuit board with all of the inter-board connections laid out on it, as well as connections to external entities such as the keyboard, power supply, and display module. Each logic circuit board, measuring approximately 12" x 7", has two sets of edge connectors, with fingers on both the component and wire sides of the board. The circuit boards are made of phenolic, and have traces on both sides. Jumper wires are used in some places, and feed-through holes have wires soldered through them to assure a good side-to-side connection. The boards are populated the Hitachi-made HD31xx-series PMOS small- and medium-scale IC's, along with a great many discrete components.
Each board has a specific function or set of functions, with nomenclature on the board indicating its function. The top-most board in the stack is called the "INDICATOR ADDRESS" board, and contains the display scanning and drive circuitry, as well as the master clock oscillator that runs at approx. 50KHz. This board contains mostly discrete components used to drive the Nixie display tubes. A few IC's populate the board, mostly flip flops configured as shift registers used for timing the display multiplexing, as well as a decoder IC that converts the internal BCD (Binary-Coded Decimal) representation of each digit to the appropriate 1-of-10 signal for displaying the number on a Nixie tube. The Nixie tubes connect to this circuit board via a wiring harness that comes off the backplane and connects to the display subassembly.
The next board in the stack, designated "MAIN 1", contains mostly combinatorial logic related to governing the sequencing of the machine. Most all of the 28 IC's on this board are simple multiple-gate devices containing AND, OR, or INVERT functions.
Board 3 and 4 (MAIN 2, SUB)
The third board, designated "MAIN 2", carries the rest of the control logic of the machine, including the chain of flip flops that provides the major timing states of the calculator, along with the all of the combinatorial logic to govern the state changes of the timing of the machine. This board contains 33 IC's, along with a significant count of discrete components.
The Philco-Made "Adder" and "Complementer" IC's
The fourth board, designated "SUB", contains the majority of the arithmetic logic of the machine. This board has a complement of 22 IC's, two of which are unusual medium-scale devices. The unusual aspect of these two chips is that they were sourced by an American company. Casio was quite fervent in their use of components made in Japan. For them, it was much more cost-effective to use components made in the homeland, but in this case, the benefit of the higher-level of integration offered by these chips was apparently worth importing them. These two chips are located near the center of the board, and are contained in 24-pin "flat pack" packages. These devices are manufactured by Philco-Ford Microelectronics Division in Santa Clara, California. One device, designated SC1770, makes up the logic for a four-bit Binary-Coded Decimal(BCD) Adder, and the other, SC1771, is a device that complements a BCD number, for use when performing operations that involve subtraction. It appears that the calculator shifts numbers out of the accumulator and addend registers in groups of four bits (one BCD digit) at a time, performs the necessary addition/subtraction in 4-bit parallel fashion, then shifts the result out bit at a time. This architecture is called bit-serial, digit parallel, because the adder circuits serially accumulate the four bits that make up a digit one bit at a time, then perform the math operation in parallel on all four bits at once, then shifts out the result a bit at a time to the result register. The logic to implement such an architecture, as opposed to the fully bit-serial adders of earlier calculators, was too complex to implement using small-scale IC technology and still have the calculator fit within its small footprint, but the Philco integrated adder and complementer made the parallel addition (or subtraction) of two BCD digits possible.
Board 5 (Core & Drivers)
The bottom-most board in the calculator contains the core memory stack and the circuitry for running it. The board has the name "DRIVE", which likely refers to the driver circuitry for the core stack. The core stack itself is mounted in the center of the circuit board, with wire leads soldered directly to the board. The memory stack is a complete core memory plane subassembly made by Mitsubishi Electronics (Part number MC-05S). The core memory array is arranged in four planes of 16x8 bits, for a total of 512 bits of storage. This arrangement would allow for eight registers of 16 BCD digits each to be stored. With the machine having a capacity of 14 digits, this leaves two 'extra' digits in each register, one of which is likely used for storing the decimal point location, and the other may be used for indicating the sign of the number (albeit somewhat wastefully). Most of the circuitry on the "DRIVE" board is made up of discrete components, with only two IC's on the board used for data path gating.
Like its predecessor, the AL-2000 is programmable, albeit in a rather primitive fashion, with only very simple linear programs possible. Compared to the programmability of a competitive machine of similar design timeframe, the Hewlett Packard 9100B, the AL-2000 is very limited in its capabilities. Though, at a price of around $1400, the AL-2000 was significantly less expensive than the nearly $5000 HP 9100B.
The programming functionality of the machine works similarly to that of AL-1000, with single digit codes indicating the operation to be performed. The programming functionality of the machine is controlled by a three-position programming mode slide switch, a push-on/push-off key labeled [Pr/2], and a keyboard key labeled [PROGRAM]. Above the [PROGRAM] key is an indicator jewel that lights up via a neon bulb when a program is executing. The calculator is capable of storing two independent programs, each containing up to 28 steps. The [Pr/2] switch is used to select which of two different programs the user wishes to work with. The programming mode slide switch has three positions labeled "Pr M", "A", and "Pr A". In the "A" position the calculator operates as a calculator, with depression of the [PROGRAM] key causing the selected program (as defined by the position of the [Pr/2] key) to be immediately executed from the beginning. The other two positions of the programming mode switch allow entry of programs into program memory. When the mode switch is in "Pr M" mode, any programmed reference to the four memory registers are forced to utilize the memory registers as simple store/recall registers during the execution of the program. In "Pr A" mode, memory registers are forced to operate in accumulator mode. Essentially, the "Pr A" and "Pr M" modes override the settings of the memory mode switches when programs are entered or executed. When the mode switch is in the "Pr A" or "Pr M" position, pressing the [PROGRAM] key will cause the display to show the first 14 steps of the selected program, and a subsequent press will show the next 14 steps. Program steps are entered using the digits zero through nine and the decimal point to define a code that describes the operation to perform. For example, the digit '2' is the operation code for the [=+] key, and pressing  followed by the [.] key (showing on the display as 2.) is the operation code for the [AC] (Clear All) key. As program steps are entered, the display shows each operation code, in much the same way as when entering numbers when the calculator is operating in calculator mode. Once the steps (up to 14) are typed in, the [PROGRAM] key is pressed to write the steps into the program memory, at which time the next 14 steps of the program are displayed and become available for entry. For example, entering a simple program that would recall memory register I and add 1 to the number recalled, then halt, would show on the display once entered as: 0000000003.44.27. The individual operation codes are "3." ([KC]), "4" (Memory I), "4." (Load "1"), "2" ([=+]), and "7." (Halt). There are no program opcodes to enter numbers into the machine via a program, except for one instruction (4.) that causes a "1" to be entered as if the  key on the keyboard were pressed. Constants need to be stored in memory registers prior to program execution, and recalled at the appropriate place within the program. The "6." instruction pauses program execution to allow user input, leaving the "program running" indicator on to cue the user in that input is required. Once the user has made the necessary input, pressing the [PROGRAM] key resumes execution of the program. There are no branching or conditional operations available, meaning that programs on the machine are simply linear sequences of operations. The lack of branch or looping instructions means that iterative programs are not easily handled by the machine. The table below shows a list of the program operation codes and their function.
0 No Operation 1 Negative Prefix (-) 2 Add (=+) 3 Subtract (=-) 4 Memory I (I) 5 Memory II (II) 6 Memory III (III) 7 Memory IV (IV) 8 Multiply (X) 9 Divide/Square Root 2. All Clear (AC) 3. Clear Entry (KC) 4. Simulate press of the  key 6. Pause (data entry, leaves 'run' light on) 7. Halt
The AL-2000 does provide overflow detection, as opposed to the earlier AL-1000 that simply threw out any overflow. When the machine overflows, the display is cleared to all zeroes and the keyboard is disabled, requiring a press of the [AC] key to re-enable the keyboard and clear the working registers. As mentioned before, the overflow detection is a bit overzealous, triggering overflow conditions when a simple shifting of the result to the right (dropping off least significant digits) would allow a correct result without causing an overflow. Also common to many pre-'70's electronic calculators, division by zero causes the machine to lose its marbles, requiring a press of the [AC] key to return it to sanity. Considering the rather slow 50KHz master clock rate, the machine isn't as slow as one might expect. The "all-nines" division (14 9's divided by 1) takes about 0.6 seconds to complete. Square root takes a little longer, with the square root of 99,999,999,999,999. taking about 3/4 second. Program execution occurs at full-speed - there seems to be little to no overhead for program execution. Running a program of nothing but "NO OPERATION" codes takes about 0.1 second. During calculations (either manual or automatic through program execution) the Nixie tubes are left active, and provide quite a show as the machine churns through the math.