Post Reply 
TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
06-24-2014, 09:11 AM (This post was last modified: 06-02-2015 05:48 PM by HrastProgrammer.)
Post: #1
TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
I think this deserves a separate thread because the other one (http://www.hpmuseum.org/forum/thread-382...l#pid14129) is dealing with TI-59E prototype for Windows.

I am very happy to announce the availability of a real TI-59 emulator for HP48GX, HP-48SX, HP-49G and HP-49G+/50G calculators Big Grin This famous vintage calculator is fully recreated because I emulated the real CPU behaviur 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.

[Image: ti59e.jpg]

The emulator can be downloaded here (it is free to use although a small donation is highly appreciated):

http://www.hrastprogrammer.com/ti59e/index.htm
(on this page you'll find keyboard mapping and other info as well)

Card reader and printer are not emulated yet but are planned for the foreseeable future (as time permits).

Unfortunately, my TI-59 is not working anymore and I cannot do any benchmarks against the real calculator. So, I would appreciate if some of you can compare the speed of TI-59E running on HP-48/49 to the speed of real TI-59.

The latest version of TI-59E prototype for Windows has the ability to save memory 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.

BTW, I will ask Hynek if he is ready to publish TI-59 ROM so, please, don't pollute this thread asking for the ROM.

I also took the opportunity to fix some small bugs in my other free emulators (HP-41E & TI-57E):

http://www.hrastprogrammer.com/hp41e/index.htm
http://www.hrastprogrammer.com/ti57e/index.htm

Furthermore, TI-57E has gone through a small redesign - I added DEG/RAD/GRAD/2nd/INV annunciators and keyboard layout is reworked to accommodate the new TI-59E layout.

All this, more or less, closed a full circle as far as emulators are concerned, and I am not interested in developing any other emulator.

What I will do in the future is to work further on my HRAST BASIC for HP-48/49 as I think this project has a lot to offer. The kernel engine is finished and the execution time for HRAST BASIC version of that 8-queens benchmark (http://www.hpmuseum.org/cgi-sys/cgiwrap/...i?read=700) was ~16 seconds on the HP-48GX ... Not bad for an interpreter running on ancient CPU Smile

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
06-24-2014, 09:32 AM
Post: #2
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Your well deserved applause:

[Image: giphy.gif]

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
06-24-2014, 10:12 AM
Post: #3
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Hahaha, thanks Massimo Smile

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
06-25-2014, 08:48 AM
Post: #4
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Bravo! Works very nicely on the 49g.
Find all posts by this user
Quote this message in a reply
06-25-2014, 09:40 AM
Post: #5
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Thanks!

Just don't execute List command because (due to a bug in the emulation of one CPU instruction) it can act weirdly (although there is no printer emulation yet). I already fixed this and will upload the new version in a day or two together with card reader emulation I am currently working on ...

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
06-26-2014, 08:52 AM (This post was last modified: 06-26-2014 10:43 AM by HrastProgrammer.)
Post: #6
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
New version uploaded:

(*) Card reader emulation
(*) Printer emulation (LCD only)
(*) Some bugs fixed

Printing to real HP82240A/B printer is not implemented yet and is planned for the foreseeable future. But given that HP and TI printers are very different and it won't be possible to implement, for example, graphics mode on HP printer, I am not in a big hurry to do this. I very rarely do "real printing" from my emulators anyway - I am mainly using "LCD printing" (utilizing printer commands to display results, prompts, etc. on LCD) as the extension of one line display (or two lines in case of HP-42X), and in this regard printer is fully implemented (graphics mode works too, as seen on the image below).

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.

TI-59E Windows 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).

[Image: ti59eg.jpg]

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
07-08-2014, 09:10 AM
Post: #7
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Printer emulation on HP82240A/B thermal printers (or my RedEye emulator) and TI-100E printer emulator has been implemented.

More info here:

http://www.hrastprogrammer.com/ti59e/index.htm

That's it ... TI-59E is finished.

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
07-08-2014, 05:06 PM
Post: #8
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(07-08-2014 09:10 AM)HrastProgrammer Wrote:  More info here:
http://www.hrastprogrammer.com/ti59e/index.htm

It looks like there is a typing mistake in the keyboard table for the 48G:

   

Marcus von Cube
Wehrheim, Germany
http://www.mvcsys.de
http://wp34s.sf.net
http://mvcsys.de/doc/basic-compare.html
Find all posts by this user
Quote this message in a reply
07-09-2014, 05:10 AM
Post: #9
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(07-08-2014 05:06 PM)Marcus von Cube Wrote:  It looks like there is a typing mistake in the keyboard table for the 48G:

Corrected.

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
04-10-2015, 06:29 PM
Post: #10
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
I received a few complaints that TI-59E and TI-57E aren't working correctly on HP-50G with ROM version 2.15, so I took some time to investigate and finally found the cause of the problem. The new versions are uploaded and should work OK now ...

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
04-29-2015, 09:17 AM
Post: #11
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Due to some memory arrangement difficulties I had to make a separate TI-59E and TI-57E versions for HP-48S/SX. Those should work OK now but I would appreciate more feedback ...

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
04-29-2015, 03:38 PM
Post: #12
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(04-10-2015 06:29 PM)HrastProgrammer Wrote:  I received a few complaints that TI-59E and TI-57E aren't working correctly on HP-50G with ROM version 2.15, so I took some time to investigate and finally found the cause of the problem. The new versions are uploaded and should work OK now ...

Gene: I surely hope they were not really "complaints" but perhaps reports of problems. :-)

Thank you for all you have done to make playing and working with our machines so much fun.
Find all posts by this user
Quote this message in a reply
04-29-2015, 04:44 PM
Post: #13
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(04-29-2015 03:38 PM)Gene Wrote:  Gene: I surely hope they were not really "complaints" but perhaps reports of problems. :-)

Thank you for all you have done to make playing and working with our machines so much fun.

Yes, I didn't mean "complaints" in a negative sense Smile

But I agree that "reports" is much more appropriate word for this.

Hopefully, I will have more funny things to present in 2-3 weeks ...

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
04-29-2015, 05:01 PM
Post: #14
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(06-24-2014 09:11 AM)HrastProgrammer Wrote:  Unfortunately, my TI-59 is not working anymore and I cannot do any benchmarks against the real calculator. So, I would appreciate if some of you can compare the speed of TI-59E running on HP-48/49 to the speed of real TI-59.

Do you expect the emulator to be faster or slower than the real TI 59? I have never written an emulator, so this might be utter nonsense, but: Couldn't you virtualize the clock, and run the TI59E at exactly 100% of the real TI 59 speed?

Regards, Martin

P.S. Just before finding your emulator I have thrown away my TI 59, because it's card reader was broken beyond repair. So I can't test either.
Find all posts by this user
Quote this message in a reply
04-29-2015, 05:27 PM
Post: #15
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(04-29-2015 05:01 PM)Tinue Wrote:  Do you expect the emulator to be faster or slower than the real TI 59? I have never written an emulator, so this might be utter nonsense, but: Couldn't you virtualize the clock, and run the TI59E at exactly 100% of the real TI 59 speed?

I expect it to be faster, especially on HP-49G+ and HP-50G. Unfortunately, Saturn CPU doesn't have enough power for "cycle counting" so I doubt it would be possible to 100% match the speed of the real TI-59. There are TI-59 CPU instructions which are very complex to emulate (read: need a lot of Saturn instructions and a lot of cycles), while the others need just a few cycles. So, in order to simulate the real speed I would have to pad simpler instructions with a lot of dummy NOP instructions because all instructions on the real TI-59 CPU execute in 16 state times (the execution time is fixed). There is not much sense in implementing this on such not-too-powerful architecture like the good old Saturn. On ARM this would probably be possible.

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
04-29-2015, 05:46 PM
Post: #16
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
I see, thanks for the explanation!

Don't the HP 49G+ and the 50G actually have an ARM CPU, and emulate the Saturn? So the TI 59E is basically an emulated TI 59 CPU on an emulated Saturn CPU on an ARM CPU.

Of course, an ARM version of TI 59E would be very interesting, especially if it also runs on the HP Prime.
Find all posts by this user
Quote this message in a reply
04-29-2015, 06:09 PM
Post: #17
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
(04-29-2015 05:46 PM)Tinue Wrote:  Don't the HP 49G+ and the 50G actually have an ARM CPU, and emulate the Saturn? So the TI 59E is basically an emulated TI 59 CPU on an emulated Saturn CPU on an ARM CPU.

Exactly. Furthermore, you can emulate HP-50G under Emu48 on Windows running on VMware on Linux, and then run RPN Simulator program on TI-59E running on emulated HP-50G Smile

I am avoiding ARM because I want to cover both real-Saturn (like HP-48GX and HP-49G) and emulated-Saturn calculators with a single codebase ...

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
06-05-2016, 11:23 AM (This post was last modified: 06-05-2016 11:34 AM by HrastProgrammer.)
Post: #18
RE: TI-59E for HP48GX, HP-48SX, HP-49G and HP-49G+/50G
Thanks to my hardware-guru friend and some code developed by myself, after a lot of work we were able to extract TI-58C ROM 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.

HP-48G+/GX version: http://www.hrastprogrammer.com/ti59e/ti59e48.zip
HP-48SX version: http://www.hrastprogrammer.com/ti59e/ti59e48s.zip
HP-49G version: http://www.hrastprogrammer.com/ti59e/ti59e49.zip
HP-49G+/50G version: http://www.hrastprogrammer.com/ti59e/ti59e50.zip

Windows Prototype: http://www.hrastprogrammer.com/ti59e/ti59epc.zip

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

[Calc]
...
Model=TI58C

The TI-58E emulator now gives the same results as the real TI-58C on all calculations from the following thread:

http://www.hpmuseum.org/forum/thread-6291.html

http://www.hrastprogrammer.com/hrastwerk/
http://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)