Emulator Story

by Martin Harevia, Malaysia

Introduction

When the venerable Texas Instruments Programmable 59 (TI59) was first released in 1977, it constituted a giant leap in handheld computing power, of similar magnitude to, say, Psion’s first programmable organiser, or the first Palm Pilot, or perhaps the release of the first really usable notebook (Compaq?).

Despite having some obvious quirks – like proprietary battery pack, slow execution, very limited I/O features, and the lack of alphanumeric display and thus need to memorise programming codes – it was indeed possible to do quite a lot of useful things with the TI59. At the peak of its popularity you could find TI59s in all kinds of places; in a water treatment plant close to my hometown (‘cause they didn’t trust the system), in a chemical plant where one of my friends worked (In fact I spoke once with a clever gentleman in this plant that had developed some circuits to enable the TI59 cum PC100 to import certain critical values from the Honeywell TCD system for further analysis. I do not know how it was done in detail, but similar ideas were presented in several hobbyist magazines at the time.), at the local sailing club for calculating yatch handicaps and race results, at a maritime science centre across the bay and at the local Lybrant financial auditing office (this was at a time when spreadsheet calculations required a mini-computer). In addition, TI59 programs were published in all kinds of magazines and books, for dentists and doctors, for chemical engineers, for sailors, for civil engineers, for farmers, for accountants, for financial planners and for astronomers. The leading three book volume on Coastal and High Seas Navigation that was used for university level education of ship captains and engineers had a complete appendix with TI59 programs.

At the time I was studying in a technical college and later went for university where I studied electric engineering while doing some extra work at a radio physics lab in the campus. Although the HP41 was starting to make inroads into students’ calculating habits, when I needed some computer power myself my choice fell on the TI59 mainly due to dislike of the RPN entry method. So I got a TI59 and later bought a second hand PC100C printer and some additional module libraries: Maths, Statistics, Electronic Engineering, Business Decision, Navigation and Flight Navigation. And due to some request for programming labs from the school, I went into programming, which I actually had not done before. So among other things, we did numerical solutions to partial differential equations, heat propagation problems, transient analysis, optical wave propagation and many others. The TI59 was just perfect for all this.

I think my largest program ever was a very large PID-type regulator analysis program that stretched some 12 magnetic cards, parts of which were published in the Swedish TI59 magazine Programbiten. Another ‘personal achievement’ was a radio beacon positioning program, where data for radio beacon groups around the North Sea and the Baltic Sea were stored in a magnetic card library. I had plans of extending the beacon database to the British Isles, the Gulf of Biscaya and the Mediterranean, but for reasons described below, this proved futile as I realised that using the TI59 cum PC100C in a 30 to 40 feet yatch was not practical. For a while I was contemplating moving the whole thing to HP41 due to its alphanumeric capability and superior power supply (standard batteries), but the HP41 magnetic card reader comprised additional cost, very few people actually bought it, and the HP41 cards stored much less data than the TI59 cards did. Every radio beacon needed 2 registers for its name, 2 registers for the Morse code identifier, 1 register for Longitude, 1 register for Latitude and 1 register for its local magnetic deviation. That is 7 registers in total. To ensure accuracy I needed 4 beacons per group so as to allow for two independent triangularisations from which inaccuracies could be estimated. This made it 28 registers which fit perfectly into the 30 register capacity of the TI59 card, just leaving two registers enough for giving the beacon group a title.  This was obviously not possible on the HP41. But the real death blow to these plans was that DECCA systems were getting increasingly affordable and the first satellite navigation GPS modules began to appear.

There would probably have been many TI59s still in use today, if it was not for one single horrendous shortcoming. The TI59 probably had the worst power supply solution ever seen in a handheld device. It had to be constantly recharged, which effectively excluded outdoor use. The 4 hours battery life claimed by TI at the point of release proved to be wishful thinking at best. In fact, after a few months usage of a new battery pack, it went down to about 30 minutes. When I did my MSc exams, every examination test was exactly 4 hours. Even with 3 spare fully charged battery packs, I usually ran out of power about halfway through and eventually I caved in and bought a cheap Casio calculator as a backup. Principally for this reason, the TI59 was stuck to its PC100C printer, and effectively became a desktop rather than a handheld, hence over time competing with a completely different category of computer devices without any hope of endurance. For this reason, ever since then I have never trusted proprietary rechargeables. My current workhorse is my trustworthy Psion Series 5, which uses standard AA batteries thus ensuring a power solution that never will become obsolenscent and where spare power is available at any supermarket, petrol station or seven-eleven-type shop.

Introducing the TI59C

With this background, it is a pleasure to note that the TI59 has reawakened in form of TI59C. The TI59C is simply the most accurate and innovative ‘old calculator’ emulator that I have come across to date. Despite a few bugs, it is a pleasure to use. In fact, ignoring for a while its designation as “TI-59 Emulator”, it is a useful and user friendly desktop calculator by its own right, offering more advanced functions than most, and it could potentially attract many other users than ex-TI59 users. In addition, and the reason I am not complaining too much about its shortcomings, it is freeware.

TI59C was developed by Miroslav Nemecek from a company Gemtree in the Czech Republic. Gemtree has previously gained international fame for their Peter-system. Peter is a visual programming tool designed for a simple and fast generation of the programs for Windows 95/98/NT/2000.

From now on I am going to briefly describe some of the features of the TI59C in the hope that more users will join possibly spurring Miroslav and his team to further improve this product. Considering the programming effort involved, I would not be too upset to see this product in an upgraded shareware version. 

The TI59C comes as a Windows .EXE file and can be launched under the Windows Start-button just like the ordinary Windows desktop calculator. The main screen is zoomable a la Windows and the it has the familiar look of a TI Programmable 59, complete with the original key labels, key positions, colouring and the red LED display.  The slightly blur but yet easily readable keytops reveal some clever scanning of the original. This instant familarity reduces the learning curve for a the ex-TI59 user to almost zero. 

The only user interface item absent compared to the original is the card slot for the magnetic and plastic cards, on which the user definable label key associations could be printed or written by hand. Actually, I would have preferred to have the option of a graphic recreation of key labels, something like [DEF] [A] “5 character text” but you cannot wish for everything. 

At the bottom of the screen there are five additional buttons: ‘Help’, ‘Save’, ‘Load’, ‘Module’ and ‘Setup’. The ‘Help’ button brings up a help window, unfortunately only in Czech. The help window is more or less a TI59C manual with lists of TI59C functions and PC keyboard shortcuts. The ‘Save’ and ‘Load’ buttons are for saving and loading programs into Program Memory. They partially replace # [Write] and # [INV] [Write], where # is the bank number, but the # [Write] functions are still maintained for storing and loading Registers. The ‘Module’ button will bring you to a module selector. Currently, only the Master Library (ML) module and parts of the Electric Engineering (EE) module have been recreated, but with a bit of work, any module could be recreated, including custom modules (for instance that elusive German civil engineering module which you read about in the 59-magazines but never managed to find) and those that did not previously exist.

When moving the cursor over the TI59 front plate, a yellow square will indicate the active button. As a seasoned TI59 and Psion user, I really miss having a touch screen – think about actually being able to touch those buttons –  but the yellow square is an important contribution to the overall user-friendliness of this emulator. In any case, except for mouse clicking, which is tedius and causes strain after a while, most buttons can also be accessed from the keyboard. Here I have to make a slight complaint, because some key assignments of the TI59C are not at all what I would consider logical and intuitive. For instance, using Pg Up and Pg Dn for [2nd] and [INV], when Shift and Ctrl could have been used, and Insert and Delete for [SST] and [BST], when there are arrow buttons, is short of annoying.

However, some other great improvements to the TI59 ‘user interface’ have been made. Red lamps have been added to indicate [2nd] and [INV], indicating [Fix] and [Eng] mode, as well as indicating the angle format [Rad], [Grad] or [Deg]. These are very thoughtful additions. An issue, however, all the documentation about the TI59C are in Czech, including the ‘Help’ file. But this is freeware of course, so English cannot be expected yet. If wide interest in this emulator take up, I am sure we can have an English translation some day.

Working with the TI59C

All the important documented functions of the original TI59 seem to be working flawlessly, including printing, statistics, module calls etc. Apart from that, the most well known ‘undocumented’ function is also working, i.e. accessing the internal hirarchical registers (HIR). When first started up, TI59C has the Standard Module loaded. By pressing ‘Setup’ and selecting ‘Program Description’ the calculator window will expand to the right, providing useful information about the module programs, albeit still in Czech.

 

Selecting ‘Printer’ under ‘Setup’ will bring up a replica of the PC-100C printer, which is accessed exactly like on the original. ‘Trace’ mode is enabled by setting flag 9, but there is currently a minor bug in the ‘Trace’ mode as it will not display the result of a calculation until the next button is pressed. 

As expected, Fast Mode does not work, but the execution speed of the TI59C is already more than enough. I did not try Graphics Mode, because I do not remember anymore how to initialise it, but we can safely assume that it does not work. In any case with such wonderful gadgets as Psions, spreadsheets and graphic calculators such as the TI92, all with amazing plotting and graphic features, there would really be no point.

Speaking of spreadsheets, what really could have been useful for a desktop version of the TI59 would have been the ability to import and export register content to Excel spreadsheets. That would have been something…in particular since the built in Excel function definer is very limited. Unfortunately, in this version, not even Copy to Clipboard and Pasting from Clipboard works. This lack of desktop integration could have been useful when using TI59C together with spreadsheet and word applications.

Memory Capacity

In addition to emulating TI59 functions, the TI59C has been expanded to 1000 Program Steps and 10000 Registers compared to maximum 960 Program Steps and 100 Registers of the original. In TI59C, Program Steps are not reconfigurable to Registers, so the program and register memory space is available all the time. Consequently, operations such as Op 16 and Op 17 do not make sense on the TI59C. Both will return the display 999.99.

At first glance, it seems odd to have this many Registers compared to Program Steps, but with the TI59C it is possible to write ‘Module Programs’ giving access to up to 25 Module Program Banks, each with up to 1000 Program Steps. Therefore, the theoretical maximum number of steps in a program is 25 × 1000 + 1000 = 26,000 steps, which should be sufficient for most TI59C programs (!). This overcomes the issue of having to add new functions for extended space addressing – as I believe was attempted in the TI88 – which would add very unuserfriendly assembler-like complexities such as [GTE] =’Go To Extended’. Now [GTO] 9 99 will move the program pointer to the last step in the Program Memory instead of giving an error message as in the TI59. As in the TI59, Module Programs are addressed with [Pgm] nn [GTO] N NN etc.

For Registers, an equally simple approach has been taken. Simply, Registers 00 to 99 are addressed as normal, e.g. [RCL] 03, [Prd] 44 etc. Registers 0100 to 9999 can only be accessed with indirect addressing which should not cause much of a problem since those registers would seldom be accessed otherwise. For instance, accessing R534, can be done by pressing the following sequence: [5] [3] [4] [STO] [0] [1] [RCL] [Ind] [0] [1]. This fabulous extension of memory allows much larger arrays and matrices than was possible in the TI59, which not the least Master Library programs such as MU-02 and MU-03 for determinant and matrix calculations can take advantage of.

Saving and Loading

In TI59C, the magnetic card saving and loading functions have been replaced by the ‘Save’ and ‘Load’ buttons for Program Steps and with N [Write] and N [INV] [Write] for Register blocks. Pressing Save will bring up a Windows file selector, where the name of the Program can be entered. The file will be given the endearing extension .t59 to signify a TI59 program source file. Saving will include the complete Program Memory of the calculator, i.e. [Pgm] 00. Module programs can only be saved this way by the sequence [Pgm] nn [Op] 09 ‘Save’ after which the selected bank will be moved to the Program Memory and the Save window will be opened. Just as with Module programs, custom program files can be saved with information of the program, which is a very useful feature for program documentation.

Loading Programs into Program Memory is performed by ‘Load’ which will bring up a file selector. Selecting a file and pressing ‘OK’ will load the content into the Program Memory.  

Saving registers is performed in a similar fashion to the original TI59. It is done by giving the bank number and pressing [Write]. As in TI59, [4] [Write] means saving R00 to R29, [3] [Write] means saving R30 to R59, [2] [Write] means saving R60 to R89 and [1] [Write] means saving R90-R119. Loading registers is done by entering the bank number and pressing [INV] [Write].

Both loading and saving registers work in programs. The execution will in fact halt to bring up the file selector window and then continue. However, saving and loading Program Files files is not supported, since the save and load functions do not have program instructions. In fact additional functions could have been implemented by using unused [Op] functions, i.e. [Op] 41 to [Op] 99. (N.B. [Op] 40 was used on the TI58C to set flag 8 if the printer is connected.)

Programming

Just like with the TI59, pressing the LRN button enters programming mode. the SST, BST, Ins, and Del work as expected and the TI59C works in overwrite mode just like the original. An important improvement over the original is an indicator to the left indicating the mnemonic of the visible keycode. This feature compensates for one of TI59’s original shortcomings compared to HP41 as well as compared to its own later siblings such as the TI65 and TI66. However, the mnemonic function is not as intelligent as the printer function in that it does not recognise multi-step instructions. For instance [Op] 11 is shown as [Op] [A] and [RCL] 77 is shown as [RCL] [x>=t].

As far as I have been able to test, most standard document functions work as expected in the TI59C. And running through a few of the Master Library programs seems to give the same results as on the TI59 original.

However, several common undocumented programming tricks do not work, such as the [Dsz] NN [BST], which could be used on the TI59 to decrement Registers 10 to 99 and the use of [Ins] in expressions like [(] [Ins] [+] [RCL] 01 [)], to avoid clearing the error flag by using [Ins] in lieu of [CE]. And I have already mentioned that Fast Mode and Graphics Mode do not work, but on the other hand I am fairly happy to get rid of them.

Wishlist

bullet

Mobility – running in a PC, the TI59C is not very mobile even if installed in a notebook.

bullet

Data entry – I would wish for a TI59 emulator to run i something like a Psion or a Palm or a Pocket PC device, where the touch screen can be used to access the calculator functions, rather than the mouse or keyboard shortcuts. Or why not in a touch screen handphone such as the Ericsson R380 which just happens to run the same operating system as the later Psion models.

bullet

Accessibility – a PC typically take 5 minutes to boot these days, even with faster Pentium III processors. In comparison, the old TI59 was instantly onable, just like a Psion or Palm.

bullet

Clipboard compatibility – this is a serious omission.

bullet

Microsoft Excel import and export – this would be a wonderful nice-to-have that could make the TI59C useful many people that are struggling with the built in Excel functions.

bullet

English documentation in addition to Czech.

bullet

Ability to define ‘magnetic card labels’ above the keys [A] to [E] and [A’] to [E’]. 

Back Home Up Next