TI-59E MicroCode Emulator

What is TI-59E?

It is an Texas Instruments TI-59 MicroCode Emulator for HP-48SX/G+/GX and HP-49G calculators. This famous vintage calculator is fully recreated because I emulated the real CPU behavior and the emulator executes a code from the real TI-59 ROM. Hynek Sladky extracted the ROM from the real TI-59 calculator using a special device he built just for this purpose. The dump has been further compared against the listing published in the patent no. 4153937. So, all TI-59 hidden features like HIR registers, Fast Mode (the execution really is twice as fast in this mode), Hexadecimal Codes, Fractured Digits, Firmware Browsing etc. work exactly as on the real calculator. The emulator running on HP-48GX is generally about 50% faster than a real TI-59.

Recent addition: Thanks to some friends, I was able to get TI-58C ROM extracted from the real calculator. So, the package now contains TI-58E emulator as well (TI58E file). Contrary to the real TI-58C, the emulator contains 120 RAM registers so it is almost identical to TI-59E. The only missing feature is card reader emulation because TI-58C ROM doesn't have card reader support. Everything else in regard to TI-59E applies to TI-58E, too.

Installation:

Just send the TI59E or TI58E file (extracted from the ZIP distribution package) from the computer to the calculator, store it to a variable and run the emulator. No additional steps are required. Due to its size, the emulator cannot be installed on calculators with only 32K of RAM.

Keyboard mapping:

 TI-59

 HP-48SX/GX

 HP-49G

 ON

 ON

 ON

 OFF

 F

 F

 2nd

 RightShift

 RightShift

 INV

 LeftShift

 LeftShift

 A

 A

 A

 B

 B

 B

 C

 C

 C

 D

 D

 D

 E

 E

 E

 lnx

 MTH

 EQW

 CE

 E, DEL

 E, SYMB

 CLR

 <−

 <−

 LRN

 PRG

 APPS

 x<>t

 Alpha

 Alpha, X

 x^2

 SIN

 SIN

 SQRT

 COS, SQRT

 COS, SQRT

 1/x

 TAN, 1/X

 TAN, 1/X

 y^x

 Y^X

 Y^X

 SST

 DownArrow

 DownArrow

 BST

 UpArrow

 UpArrow

 STO

 STO

 STO

 RCL

 VAR

 VAR

 SUM

 EVAL

 MODE

 GTO

 NXT

 NXT

 SBR

 '

 TOOL, CAT

 RST

 CST

 HIST

 R/S

 SPC

 SPC

 EE

 EEX

 EEX

 (

 LeftArrow

 LeftArrow

 )

 RightArrow

 RightArrow

 0

 0

 0

 1

 1

 1

 2

 2

 2

 3

 3

 3

 4

 4

 4

 5

 5

 5

 6

 6

 6

 7

 7

 7

 8

 8

 8

 9

 9

 9

 .

 .

 .

 +/-

 +/-

 +/-

 +

 +

 +

 -

 -

 -

 *

 *

 *

 /

 /

 /

 =

 ENTER

 ENTER

Other keys used by the emulator:

<−: Cold start (if pressed immediately after ON). Note: This will clear all internal registers but will leave program/data memory intact (those can be cleared with CP/CMs afterwards).

ON&F: Return to the HP-48/49 operating system.
ON&STO: Activate RAM saving to RM59 (or RM58) variable.
ON&RCL: Deactivate RAM saving.
ON&+ and ON&−: Change display contrast.
ON&SPC: Turn printer ON/OFF.
ON&0: Activate printing to LCD only.
ON&2: Printer TRACE mode OFF.
ON&3: Printer TRACE mode ON.
ON&4: Activate PRINTing via IR LED (RedEye) mode.
ON&5: Activate PRINTing via IR serial mode (baud rate default to 2400).
ON&6: Activate PRINTing via RS-232 (Wire) serial mode (baud rate default to 9600).
ON&A: Printer emulation in HP82240A mode (Roman8 character set, no graphics mode).
ON&B: Printer emulation in HP82240B mode (ECMA94 character set, no graphics mode).
ON&C: Printer emulation in TI-100E mode (PC-100C character set + graphics mode).

Additional features:

(*) Continuous Memory - data and program memory is preserved after exiting the emulator.
(*) Light-sleep mode when waiting for a key is implemented.
(*) Auto power-off is implemented.
(*) Advanced LRN functionality: Current instruction is displayed as text in LRN mode.
(*) Master Library Module is included with the emulator.
(*) Card reader emulation.
(*) Printer emulation on LCD, HP82240A/B thermal printers (or my RedEye emulator) and TI-100E printer emulator.

The first three features in fact turn TI-59E into never released TI-59C calculator.

Note: Due to the technical limitations graphics mode printing is not possible on HP82240A/B thermal printers. You have to use my TI-100E printer emulator or the latest version of my RedEye printer emulator. RedEye emulator (http://www.hrastprogrammer.com/hpred/index.htm) is not free and is available exclusively to existing and new owners of my advanced (X-series) emulators (HP-41X, HP-42X and HP-71X). TI-100E emulator is free and can be found here (download, connect the calculator over serial port, start TI100E.EXE, choose COM port and print). None of them is compatible with HP-49G+/50G either.

Card reader emulation is done in the same way as with my HP-41X and HP-71X emulators. "Virtual cards" are HP-48/49 character string objects and to work with them just use regular card reader commands. Write will create a new virtual card on HP-48/49 stack (you can save/transfer it after exiting the emulator). To read virtual cards put them on the stack, start the emulator and use INV Write, simple as that.

Download

TI-59E and TI-58E are free and can be downloaded here:

HP-48G+/GX version
HP-48SX version
HP-49G version
HP-49G+/50G version

Note: TI-58E is still fresh so bugs are possible!

Prototype Windows version of TI-59E (which I also used as a development platform) is here. Note: The prototype has tracer and debugger built-in but they were removed from this public version. If you donate a few bucks I will send you the full version.

This prototype can also be used to enter TI-59 programs and save them in HP-48/49 format. To do this just enter 48 or 49 in the display, hold Ctrl key and click on the "Save" button. Then transfer this file to the calculator, rename it to RM59 and execute the emulator. Furthermore, the prototype can load virtual cards saved by TI-59E and save cards in TI-59E format (as HP-48 character strings - if you need to convert them to HP-49 format just change "48-W" to "49-B" at the beginning of the file using some hex editor).

The prototype contains TI-58C emulation as well. To activate it add the following option to TI59E.INI file:

[Calc]
...
Model=TI58C