2014. november 15.

Commodore calculator SR4148R repair

Last week I managed to put my hands on a 1974 Commodore SR4148R calculator. It was said to be non working. Never the less, I was thinking that this one seems to be in very good visual condition, just a little bit dirty, and in worst case, it could be used as a spare part donor, whenever I manage to get an other one. There was unfortunately no leather case, nor AC adapter packed with it, and the operating manual was also missing.

Getting home, I quickly opened the case, and saw that the original 500 mAh, 3 cell NiCd battery pack was in very bad condition. Electrolyte was flown out of the batteries, and made a big mess all over, inside the casing.

My first move was to take it apart, into as small pieces as I could, and wash the casing, and display. I soldered out the battery pack, and unscrewed the jack plug to be able to remove the display from it's place, and unfold all of the electronics, which consist of two PCBs, where the button back panel is a double sided PCB, and the logic board is a single sided, through hole mounted one. Awesome! The display has a series of small lenses in front of the very small LED display, melted together.

As I took it apart, when unscrewing the back panel of the keyboard, I had the feeling getting stronger and stronger, that the keys would be something very unusual these days. When lifting off finally the panel, I saw the following: every key on the keyboard is a separate small piece of plastic, with rubber/carbon circuit touch contactors, and a small spring for every single button. It also seems, that the buttons are not just simply painted ones, but there must be some protecting layer above the paint, preventing the signs to wear off. All of these features add a very pleasant, and very distinct touch feeling of the buttons, even though they are small.

I have the feeling, that this calculator was designed for eternity. The buttons practically were never meant to wear off, the PCB is small, simple, through-hole type, and very easy to fix, in case something goes wrong. Since I didn't have any jack plugging adapters right at hand, I decided to quickly wire up a small temporary replacement battery pack, from AAA alkaline batteries, just to try whether the thing as operational at all. Turned on, nothing happened. Measured the electric flow, and it was 800mA when turned on, but no display. There must be some shorts, or disconnects.

As I suspected, I have found some disconnects, since the electrolyte during the years managed to make complete PCB track segments to disappear. I have created some jump routs out of wire, and TA-DA! It works! It's consumption is around 70 mA, when simply turned on. Put together everything, and started to joy-key on some expressions.

Testing it I started to like it more and more. There are three blue keys on the top, marked EE, EE *down*, EE *up*. I have never seen such thing before. Ok, the EE is quite self explaining the exponential enter button, however with the other two, one can modify the punctuation on the fly, converting even a calculation result into other exponential result. This also makes counting 10s, 1000s, millions, very easy! I have also discovered a bug! 2^31 is OK, However, 2^32 is 4294967297 according to the calc, instead of 4294967296. However, when I divide the result of 2^32 by 2, I will get the correct 2147483648.
Even more strange, when I type in 4294967297, and divide by 2, I will get the mathematically correct 2147483648.5 as the result. 2^33 is also problematic, it is also bigger by one then the correct answer. Strange. I also very much like the small, thin LED numbers, and the strange delay we are not used to these days, when hitting the equals sign. :) After all, it is a very attractive, good to handle small scientific calculator, which was made for eternity! :)

Update: testing further the x^y functionality, it seems that it is a rounding problem inside the calculation, since 2^3-8 yields 1.6E-10. This also means, that the internal floating point representation is more precise than 10 decimals. Since single precision floating point numbers (32bits) can represent only 2^23 precision, it is too small for that purpose. Double precision (64bits) however would be a waste. My guess is it uses some arbitrary floating point representation, like 1bit sign, 8bits exponent, and at least 35bits fraction, which gives at least 44bits all together. Strange.

Nincsenek megjegyzések:

Megjegyzés küldése