Archive for October, 2009

29-Oct-09: TI & Calculator Hackers

October 29, 2009

While it’s not vintage calculators at play here, I came across the following article today that is definitely interesting. There is relatively small but dedicated group of folks that have a keen interest in hacking calculators. The calculator make of choice for hacking is the TI 84+, a very capable calculator made by Texas Instruments. The article talks about a calculator hacker that figured out the keys to the encryption scheme that protects the TI 84+’s firmware from modification. Once these keys were hacked, it is possible to make changes, or even completely replace the firmware that forms the operating kernel for the calculator. Quite an amazing accomplishment.

However, Texas Instruments is not taking this at all well. The company’s legal department has sent DMCA (Digital Millennium Copyright Act) cease-and-desist letters to a number of folks who posted details and mods online for the TI 84+. In response, the Electronic Freedom Foundation (EFF) is backing the calculator hackers, stating that there is no harm in their activities since TI makes the code for the calculator available for download.

The article can be seen at: IEEE’s Spectrum Online Magazine.

Hacking calculators is not new. Back in the old days, a lot of modifications were made to calculators to augment or improve their function. In the days of mechanical adding machines, contraptions were built that used solenoids to activate keys on the keyboard to automate data entry and problem solving, with the printing action of these machines recording the results. Sometimes such modifications were used to make inexpensive numeric printers. Benson-Lehner made modifications to a Friden rotary electromechanical calculator to interface it to an electric typewriter that allowed the calculator to serve as a math unit for a system, called the Computyper, that would perform functions such as invoicing. Once electronics came on the scene, necessity being the mother of invention, all kinds of hacks were developed to allow the machines to be programmed or automated in various ways. Some calculator manufacturers would make machines that had chipsets that had more capability than the function keys on the keyboard allowed. This was done to provide a line of calculators with different functions depending on how many keys were available on the keyboard, and how the keys were wired. By rewiring keys, or adding additional keys, folks could access these additional functions. Folks also used scientific calculator chips as peripherals on early home computers to act as math co-processors.

With today’s calculators essentially being computers with LCD displays, USB and serial connectivity, flash memory for firmware storage, and lots of keys on the keyboard, it seems only natural that folks would want to customize their machines to their liking. While the author won’t condemn TI for their action, nor condone the activities of the “hackers”, it just seems to me that this making a big deal out of something that is a natural tendency of bright folks to do. Let’s hope that this all settles on its own and doesn’t result in a big waste of time and money for all parties involved.

11-Oct-09: Catching up

October 11, 2009

Greetings to all.

It has been a while since I’ve post anything here as a lot of things have happened since the last posting. The biggest news is that, after a long period of unemployment (almost two years), I have finally found a new job. With the economic conditions so poor, it was a very scary time to be unemployed. After a very long time of submitting applications, one finally came through with a request to interview. Thankfully, I did well enough to get offered the job, which I happily accepted. The job is working for a local university as their Technical Services Manager. The position involves leading a team of Information Technology professionals who are charged with growing, maintaining and supporting the university’s information technology infrastructure; including networks, computing resources, and telecommunications. I have been on the job now for a little over three months and am starting to get my feet under me. It is quite an experience working in an educational institution, as it is very different than the high-tech commercial environments that I’ve worked in for so many years. Surprisingly, at least to me, it is quite a technology challenge, because the student body and faculty always have very interesting things that they wish to do with the computing environment that can stretch the bounds of maintaining a secure and safe computing environment. I have a good group of people that I work with and am very glad to be back among the employed. The only downside is that it leaves much less time to work on the calculators, maintain the Old Calculator Museum website, and write in this blog. But rest assured, I’ll somehow find the time to keep things moving along.

On the calculator side of things, in early July the museum received a calculator that it has has been seeking for a very long time. A Wang 500-Series (Model 500-2TP) was recently acquired by the museum. It was made possible through the kindness of Mr. Tim Ogsbury, and also through the generosity of Mr. Arnold Allen. Tim had the machine in his posession for a very long time. It was owned by his father who used it in his business for many years. After his father passed away, Tim kept the machine stored away. In the course of doing research on the Internet, Tim found the Old Calcualtor Web Museum, and ended up writing an EMail asking if the museum might be interested in acquiring the calculator. At the time, I was unemployed, and had virtually no financial resources to make a fair offer on the calculator, much less pay the costs for packing and shipping it to the museum. I sadly replied indicating that it just couldn’t work out at this time. Tim wrote back and said that he was willing to be patient. After some months, Tim wrote to me saying that he was going to have to move, and that it’d be best if the calculator could be shipped out before the move. Still unemployed, I was in a real quandary…there was just no money to be had. As it happened, I had been engaged in on-going dialog with Mr. Arnold Allen, a frequent donor to the museum who has sent a great deal of wonderful calculator and computer materials over the past nine months. I had mentioned in passing that an opportunity had come up to acquire a Wang 500, and Arnold immediately indicated an interest to help. A few days later, a check appeared in the mail with a donation that would cover the necessary expenses for the museum to acquire Tim’s calculator. Shortly thereafter, the machine was on its way to the museum. Suffice it to say that I can’t begin to express my gratitude to both of these wonderful gentlemen for making it possible for the museum to acquire the last machine in the “triple-crown” of the Wang 500/600/700-Series machines.

The Wang 500-series calculators consisted of two models, the 500, and 520, with the main different between the two models being the amount of memory available. The 500-Series calculators grew out of a perception within Wang Labs that it’s flagship machines, the 700-Series calculator (see the exhibit on the Wang 720C for more information on the 700-Series calculators), were too complex and expensive for some buyers. The 700-Series machines had extensive I/O interfacing capabilities that in many cases weren’t really needed for mathematics, scientific, and engineering calculations. The 500-Series was conceived as a high-end programmable calculator with only very basic I/O capabilities, much more suitable for general calculating requirements. Along with the removal of the advanced I/O capabilities, advances in integrated circuit technology, combined with the use of Metal Oxide Semiconductor (MOS) Random Access Memory (RAM) to replace the expensive magnetic core memory of the 700-series, allowed the 500-series to be less complex, and thus, less expensive. Along with these changes, the 500-Series also moved away from the rather unique 2-level stack architecture (X and Y register) of the 700-Series, going back to an architecture similar to that of Wang’s earlier, but market-making 300-Series calculators (see the Wang 360E exhibit for more information), which provided two complete arithmetic units called the “Left” and “Right” adders. This architecture, while unusual, was quite powerful. The architecture was extended by allowing memory registers to behave the same as these two built in arithmetic units, providing full add/subtract/multiple/divide capabilities for all memory registers. While somewhat different in terms of electronic implementation and operational architecture, the 500-Series calculators stuck with the basic microcoded architecture of it’s big brother. The microcode word in the 500 was shortened to 42 bits versus the 43 bits of the 700-Series, but the ROM was essentially identical to that used in the 700-Series, simplified slightly by use of IC-based sense amplifiers and latches.

The machine arrived during the day while I was at work. When I got home that evening, it had been signed for by my wife, and was waiting for me over in the museum building. I went over to check it out. The box looked to be in pretty good shape…no big holes or caved in areas, which was a good sign. The machine was packed quite well, double boxed, with lots of padding materials to isolate the machine from shock. The calculator looked to have made the trip from New York with no obvious visual damage. The machine was a little grubby, partly from years of use, and partly from simply being stored away for so long. It came with the original dust cover, the original Operating and Programming manual, a soft-bound publication containing listings of programs from Wang’s 500-Series program library, a couple of original pads of programming forms, and quite a few cassette tapes used for storing programs and data.

The 500-Series calculators made some changes over the 700-series, by making the cassette tape drive an optional component, as well as adding another optional device, a built-in 21-column printer. The machine obtained by the museum has both of these options. The printer was added as an option to the 500-Series because of the primary complaint of 700-Series customers…the lack of printed output. To get printed output on a 700-Series calculators, one had a to purchase a rather expensive modified IBM Selectric Typewriter that could be connected to the calculator through its I/O capabilities. This added even more cost to the expensive base price of a 700-Series calculator. The Seiko-made drum impact printer offered on the 500-Series calculators was a much less expensive alternative, and yet still provided the capability of providing formatted and annotated output under program control, as well as hard-copy of entry and results when using the calculator manually.

A curiousity of the 500-series is the decision by Wang to make the cassette tape drive an option. With the 500-Series machine using solid-state memory for its memory and program storage, programs and data stored in the machine are lost if the machine is powered off. With the 700-Series’ magnetic core memory, the state of the memory is maintained when power is removed. This seemingly makes the cassette tape even more necessary on the 500-Series machines, as the only other way to reload a program into memory once the machine has been powered off would be to key it back in by hand from the keyboard…a rather slow and tedious process. The cassette was mandatory on the 700-Series, yet made an option on the 500-Series. The only reason that I can think of for this is that Wang wanted to allow a 500-series to have a market-making price point for a stripped down machine, providing great fodder for marketing bragging rights, while not really providing a very usable machine in practical terms.

After a visual inspection of the outside of the machine, it was time to take the cabinet off, and see how things faired inside. Again, there was no sign of any obvious damage. All of the circuit boards were well-seated in their sockets, the Nixie tubes were all intact, and there was nothing loose rattling around inside the machine. The keyboard looked to be in good shape. The cassette drive, however, had some problems, which are not at all uncommon on these machines. The main drive belt that links the motor to the tape transport had disintegrated. These belts are made for a rubber-based compound, kind of like a rubber band with a cylindrical profile. Over time, ozone and other components of the atmosphere attack some of the chemicals that make up the belt, causing it to turn gooey. Over time, the belt literally dissolves, leaving nothing but oily goo in its place. This isn’t the first time that I’ve encountered this on Wang 500/600/700-Series machines (the tape drive assembly is the same across all of the machines in the line), so it’s no big deal — finding an appropriate replacement drive belt is not a big problem.

The next step was to pull out all of the circuit boards and inspect them for any signs of damage. This involves very carefully looking at the boards through a magnifier to check for overheated components, obvious broken components, corrosion, and other maladies that can affect circuit boards when stored for long periods of time. All of the boards looked good with the exception being corrosion on the tin-plated edge connector fingers — a very common occurrence on all of Wang’s calculators. The 500-Series continued Wang Labs’ practice of stamping each circuit board with an inspection date, with the boards in this machine having dates ranging from late 1971 through early 1972. After the boards were removed and their edge connector fingers cleaned, it was time to pull the keyboard and check it out. As the keyboard was removed, a piece of what looked like plastic fell out from inside the keyboard assembly. Wang’s keyboards for were known for their microswitch-based design which made the keyboards have a very unique feel…very short key travel with a positive ‘click’ as the key was actuated. As it turned out, the piece of plastic was part of one of the many microswitches that make up the keyboard. This meant that the keyboard had to be completely disassembled to repair the broken switch. This wasn’t a big problem, because the keyboard was pretty grimy and needed cleaning anyway. It’s much easier to clean the parts of the keyboard when it’s all disassembled. Once the keyboard was apart, the offending microswitch was pretty obvious…it was missing part of its case. The switch still worked properly, but in the interest of long-term reliability, I decided to replace it. The bad switch was carefully desoldered, and a replacement switch (from a spare 700-Series keyboard) was put in its place. The keyboard circuit board was inspected for any other problems, and everything else looked good. The rest of the keyboard assembly was thoroughly washed and cleaned, and once everything had dried, the keyboard was re-assembled, and once finished, looked almost new.

While waiting for the keyboard parts to dry, the electronics chassis was lifted out of the cabinet base. This was done because the microcode ROM is located underneath the chassis. This is a somewhat delicate operation, as there are two connectors that go from the backplane of the machine to the ROM, and the cables are rather short. The chassis is pretty heavy, and it must be carefully held up and away from the ROM while the connectors are removed, then the chassis can be moved away. Dropping the chassis on the ROM would likely cause irreparable damage to the ROM, meaning great care must be taken. It really should be a two-person job, but after lots of practice on 700-series machines, I’ve gotten good at performing this operation by myself. As an aside, it should be noted that the 500, 600, and 700-Series machines all share the same basic mechanical design. The cabinet base is the same for all of the machines, the main chassis is very similar, and the upper cabinet is also similar between all of the machines.

The ROM is one of the most critical, and also most prone to failure, parts of the 500/600/700-Series calculator. One tiny broken wire, or any type of electrical fault (a bad transistor or diode) will either render the machine completely non-functional, or cause malfunctions that effectively render the machine useless. The ROM is a very delicately made contraption consisting of literally thousands of tiny enamel-insulated copper wires (just about the diameter of a human hair) that are hand-threaded through horseshoe-shaped ferrite elements to encode the bits that make up the microcode that controls the operation of the calculator. The ROM has a plastic cover over it that protects the delicate wiring. This cover is taped to the metal frame of the ROM circuit board with simple transparent tape. The tape was carefully removed, and the cover taken off so that the ROM wiring could be inspected. It’s impossible to trace each and every wire…there are simply too many of them, and with all of them looking the same, it’d be way too tedious. The ROM was inspected with a magnifying glass to see if there were any obvious problems, and none were seen. The rest of the board was inspected, looking at the electronics to see if there were any obvious component failures or other issues. The ROM looked good. The cover was replaced, and the ROM set safely aside.

The chassis was then inspected. The 500-series machines implemented a change from the 700-Series calculators. The 700-Series machines used a hand-wired backplane, with long tailed edge connector sockets to which special clips attach. These clips allowed wires to be mechanically and electrically attached to the edge connector socket terminals. Wiring the backplane on a 700-Series machine was another example of a tedious manual process that was performed by very patient assembly line workers. The 500-Series machines dramatically simplified the wiring job by replacing the vast majority of the backplane wiring with an etched circuit board providing the connections between the edge connector sockets. The only point-to-point wiring that was required was that of connecting the rest of the machine (ROM, keyboard, cassette drive, printer, and power supply) to the backplane. The power supply, though of a very similar design to that of the 700-Series, was also simplified by use of a circuit board versus point-to-point wiring.

The backplane was inspected, along with the power supply components, and all looked good — no broken wires or signs of overheated or stressed components. With everything taken apart, it was now possible to power up the machine to test the power supply. The power cord was plugged into a variac, and a number of digital voltmeters were connected to various spots in the machine where the various power supply voltages were expected to be present. The power was turned on, and the variac slowly ramped up to 100% line voltage. As the supply was ramped up, the DVM’s started registering. By the time the power was at 100%, all of the voltmeters were showing voltages that appeared to be in-line with expectations. The oscilloscope was fired up and connected to various places to check for power supply ripple. Excessive ripple (basically, a low-level alternating current riding on top of a direct current voltage) can cause digital logic to malfunction (at best), and at worst can actually cause component damage and failure. Ripple is caused by the fact that transformers work on alternating current…a current that switches direction once every 1/60th of a second. Diodes are used to split off the positive and negative transitions of the alternating current in a process called rectification that allows a direct current to be made from alternating current. Capacitors are then used to smooth the switching transients caused by the diodes to allow a clean, stable direct current (DC) voltage to be formed from the alternating current (AC) output of the transformer. The capacitors that perform this function are called filter capacitors, and are typically high capacitance electrolytic capacitors. These devices, if not used for long periods of time, can have electrochemical reactions that occur inside them that reduce their effectiveness, which can result in the diode switching transients leaking into the DC signal, which, as mentioned earlier, can cause havoc with the digital logic. Fortunately, all of the various DC voltages used in the machine had ripple voltages that were well within acceptable ranges. This meant that the power supply was in good shape.

With the power supply checked out, it was time to put everything back together again, and see if the machine would run. The machine was carefully re-assembled, with every connector and circuit board triple-checked to assure that it was installed in the right location and orientation.

At last, the moment of truth. The Variac was again used to power up the machine. As the voltage neared 100%, only one Nixie tube was glowing, and it had multiple digits on at the same time, creating a “fuzzy orange” appearance rather than that of any distinct digit. This behavior continued once the Variac was at 100%. I wasn’t too worried at this point because when powered up slowly with the Variac, the calculator’s power-on initialization circuitry can’t work properly. So, the [PRIME] key was pressed. Wang, for whatever reason, started calling their “reset” button PRIME on their earliest LOCI calculators. This persisted through the 500/600/700-Series calculators. When the [PRIME] key was pressed, while the key was down, the display was blank (which is normal behavior). When released, sadly, the “fuzzy orange” tube was again lit, and there was no response at all to the keyboard. This is a symptom that I’ve observed on many 700-series calculators indicating that there’s definitely an electronics problem, most likely either in the ROM, or with the random access memory system. It will take some detailed digging into the machine to figure out what is going on. All I can hope is that the ROM doesn’t have broken wires, as repairing such a failure is virtually impossible.

Because of the new job, I haven’t had much time to spend digging into the machine further, though with fall arriving, the pace of various projects around the house that consume time on the weekends is beginning to slow down, and I should have more time to work on the long list of projects that have accumulated. I have quite a backlog of exhibits to create, repair work on the Wang 370 programmer to complete, and of course, diagnostics on the Wang 500, which I am hopeful I can get running again.

Other things brewing — I have received an original drive belt for the Wanderer Conti calculator from my friends at the Heinz Nixdorf Museum in Germany. They have a number of Wanderer Conti calculators, and were kind enough to send a drive belt on loan so I can look into trying to find something similar from a supplier, or at worst, have an equivalent manufactured. The museum was donated a Monroe 1655 programmable calculator in fine condition, which I’m working on getting documented in an exhibit for the museum. The Monroe 1655 is an example of the first-generation of Computer Design Corporation (a.k.a. Compucorp)-designed advanced desktop Nixie-display calculators. The most interesting thing about this particular machine is that it is the earliest example found of this first-generation Compucorp architecture. There are some historical tidbits that I ran into while digging into this machine as part of preparing the exhibit, which should be good reading for visitors once I finish it.

I am looking forward to the opportunity for a return visit to the museum by Bob Norman (see the May 21st Posting – Distinguished Visitor) during the rapidly approaching holiday season. I hope to soon publish an essay that has been a work-in-progress for a long time relating to the development of the amazing Victor 3900 calculator, just one of the many projects that Bob worked on during his illustrious career. Bob’s insights have been profoundly valuable in documenting the story behind this historic calculator.

Until the next time, I wish everyone health, safety, peace and happiness.