Post Reply 
RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
12-01-2023, 07:20 PM (This post was last modified: 12-01-2023 07:50 PM by bxparks.)
Post: #36
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-01-2023 03:47 PM)goosnarrggh Wrote:  I gather that writing a community-driven freeware flash app for the 84+CE might be a dead end because TI has changed the signing algorithm for flash apps on that platform - I think the only viable path to distributing flash apps on that platform is to submit it to TI for commercial distribution.

Still, it might be viable to distribute it as a program that is totally resident in RAM. Although, native compiled/assembled programs running from RAM are restricted if the user has the latest OS version for the 84+CE. They'd need to jailbreak to get past this restriction.

Yes, there is at least one experimental fork of LLVM/clang with support for the eZ80. (And also the classic Z80 as part of the same fork.) Heck, the Z80 also had earlier C compilers as well, but to my knowledge none of them have been able to leverage the same kind of sophistication as you can get with LLVM. That being said, the Z80 architecture was never created with C-compatible calling conventions in mind, so it might be less efficient than what you could achieve coding assembly by hand.

There are several reasons why I hesitate to work on the TI84+CE platform, some of which you have described:
  • The CE platform uses a 2048-bit RSA signing key, which has not been broken, compared to the earlier calculators which use 512-bit RSA keys which have been cracked. So I would not be able to create flash apps on the CE.
  • TI furthermore disabled assembly language programs on the CE, to prevent cheating on exams. This forces users to run the arTIfiCE jailbreak, which increases friction and reduces the number of potential users of an RPN app for that platform.
  • The CE calculators use cellphone technologies, such as custom Li-polymer batteries, instead of standard AAA batteries. Those batteries will need to be replaced every 3-5 years, and their replacements may be almost as expensive as the calculator. Longer term, say 20-40 years, those batteries may be unobtainable because no one makes them anymore. It would be ironic if the older TI calculators, with standard batteries, survive better than these newer CE calculators in the long term.
  • (Added) I don't feel comfortable working on a platform where the manufacturer has expended so much energy to make sure that I fail. There are so many other interesting projects out there, why work in a hostile environment?

On the other hand, the 84+CE is appealing to me for the following reasons:
  • The eZ80 processor has a 3-stage pipeline architecture, which means that it is almost 3X faster than the Z80 at the same clock speed. So the 48 MHz eZ80 on the CE is the equivalent of a 150 MHz Z80, making the CE almost 10X faster than the older TI 83+/84+ calculators.
  • The eZ80 assembly is supposed to be backwards compatible with the Z80, which means that I might be able to reuse most of my RPN83P source code.
  • I am technically curious about the eZ80 processor and would enjoy learning about it. A processor with 24-bit registers. A C compiler. How well could that possibly work?
  • The backlit color display of the CE is actually useful in many situations. We expect our electronic devices to be as ergonomic as our cell phones.

I believe you are quite correct about a Z80 being terrible for C calling conventions. Even in hand-coded assembly, I am constantly suffering from register starvation, then forced to juggle them around due to the non-orthogonal Z80 instruction set, and the stack is basically useless for local variables due to the lack of stack addressing modes. (I am forced to use stack-local variables a handful times in the RPN83P, but it is not pretty.) No idea if the eZ80 fixes any of that pain.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S - bxparks - 12-01-2023 07:20 PM



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