Post Reply 
RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
12-04-2023, 01:59 AM (This post was last modified: 12-04-2023 04:16 AM by bxparks.)
Post: #41
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-04-2023 01:31 AM)Eddie W. Shore Wrote:  I think the arguments for polar/rectangular conversions are "reversed" from most RPN calculators:

Yup I noticed that too. This is fixed in the next release that I just pushed.

The new release v0.8.0 (2023-12-03) is here: https://github.com/bxparks/rpn83p/releases

Major changes:
* fix order of arguments in polar-rectangular conversion functions
* fix somewhat obscure stack-lift bug
* increase speed by up to 2.5X on 83+SE/84+/84+SE
* add SHOW mode (invoked by 2ND ENTER)
* UI and usability improvements to BASE functions, especially in BIN mode
* more built-in HELP pages
Find all posts by this user
Quote this message in a reply
12-04-2023, 03:29 AM (This post was last modified: 12-04-2023 04:13 AM by bxparks.)
Post: #42
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-03-2023 02:45 PM)ijabbott Wrote:  I've just tried out version 0.7, but haven't tried earlier versions yet. I couldn't get the SHOW (2ND ENTRY) function to work. Perhaps it got broken on this version?

SHOW was added in 0.8.0, which I released an hour ago.
I have a convention of setting the GitHub 'default' branch to be my 'dev' branch instead of my 'master' branch (which contains the stable releases). So you were probably reading about SHOW in the dev branch, which applies to the upcoming release.

(12-03-2023 02:45 PM)ijabbott Wrote:  
  • 2ND ( could be used for ROLL UP.
  • 2ND ) could have the same effect as ) ) (X⇄Y X⇄Y), effectively terminating digit entry, similar to the ON/EXIT key on HP-42S. (Maybe not worth it as ) ) would be easier to press.)
  • If it is easy to do, could the leading 0 of decimal fractions between 0 and 1 be shown in fixed/normal mode (for example "0.1" rather than ".1")? (I suspect it isn't shown because the TI-83/84 routines do not show it either!)

Those are good suggestions. Though I am trying to be a bit conservative in commandeering an intrinsic button or key label from the TI keyboard, since it's easier to add a binding, rather than remove a key binding later.
  • Yeah, binding 2ND ( to RollUp is very tempting. On the TI keyboard, it is labeled left-curly-brace {. I had wanted to keep that character unused for now, just in case I want to use left-curly brace later. It's the character used for literal maps/dictionaries in JavaScript, Python, or JSON (e.g. {"name": "brian", "id": 2}), or for code blocks in C-style languages (e.g. { a=sin(x) }).
  • Ha, I never knew that ON/EXIT terminates digit entry on the HP-42S. (I looked, I couldn't find it in the HP-42S manual.) I should be able to add that in RPN83P. I think I would prefer that over 2ND ), which I think is harder to press than ) ).
  • Yup, I use the TI-OS FormReal() function, which does not print a leading zero. It has no option to print the leading zero as far as I know. I agree it looks a bit awkward, but the LCD screen real estate is limited to 16 characters, so the missing zero allows for one more significant digit to be shown. For the SHOW function, I actually implemented my own formatting code, but the SHOW format never needs a leading zero, since it always uses scientific notation for floating point numbers.
Find all posts by this user
Quote this message in a reply
12-04-2023, 04:10 AM (This post was last modified: 12-04-2023 04:25 AM by bxparks.)
Post: #43
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-03-2023 09:37 AM)jthole Wrote:  About keystroke programming; I agree that it wouldn't be really needed on the TI-8x Plus, since it already supports TI-Basic. But it would be really nice if I could XEQ a Basic program from within the RPN app. However, I understand that might be challenging to implement.

To be honest, I know very little about TI-BASIC, having written only 3-4 TI-BASIC programs in my life. I guess you are looking to run a BASIC program that can read and update the REGS and STK variables used by RPN83P? It's an interesting idea, but it feels like a LOT of work. If someone who knows the TI-OS better than me wants to explore that, and eventually sends me a PR, I would be willing to take a look.

Off the top of my head, I can think of some major obstacles or features that need to be addressed:

* A program/file browser: The user needs to be able to view, select, and execute the BASIC program from the RPN83P program. No idea how easy or hard this would be.
* Handling archived programs: A BASIC program can be "archived" into flash memory. Normally, TI-OS forces you to "unarchive" the program to RAM before it can be executed. There are "shells" that have gotten around that and allow launching programs from flash directly, but that level of TI-OS manipulation is beyond my technical expertise.

(12-03-2023 09:37 AM)jthole Wrote:  I would love keystroke programming and a solver, but that is probably way more work than being able to call Basic programs. If I understand correctly, the register list variable can be manipulated from within a Basic program, so that these register values are available within the RPN app (would work both ways).

Me too, I would love to implement the keystroke programming feature. The interesting thing is that I already have a pretty good idea how to implement this. I can already see the code in my head: I know how I would write the parser, how to write the interpreter loop, how to encode the data structures, and so on. The problem is that all that code in my head is in C or C++. From my coding experience so far on this project, I don't know if I can implement all that in Z80 assembly language before I start losing my mind.

The Solver is another feature that I would love to implement, but I think it is a tough problem. The algorithms used by HP, even in their earliest HP-34C calculator, are so advanced, I don't know if I have the mathematical and programming skills to create something that would satisfy an HP calculator user.
Find all posts by this user
Quote this message in a reply
12-04-2023, 08:23 AM
Post: #44
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
After update 23/12 PRIM factorizes faster on 83+SE than 84+ and 84+SE (input 2709571927).
Find all posts by this user
Quote this message in a reply
12-04-2023, 08:33 AM
Post: #45
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-04-2023 04:10 AM)bxparks Wrote:  Off the top of my head, I can think of some major obstacles or features that need to be addressed:

* A program/file browser: The user needs to be able to view, select, and execute the BASIC program from the RPN83P program. No idea how easy or hard this would be.
* Handling archived programs: A BASIC program can be "archived" into flash memory. Normally, TI-OS forces you to "unarchive" the program to RAM before it can be executed. There are "shells" that have gotten around that and allow launching programs from flash directly, but that level of TI-OS manipulation is beyond my technical expertise.

First of all, I have no experience with TI-Basic, so maybe it's a horrible language (I saw that Forth and BBC Basic interpreters are available as community projects as well).
Before trying a TI-84 Plus for testing your excellent RPN app, I had no TI experience at all.

But the way I was thinking (and maybe that's very difficult or impractical to do):

- in the TI-84 Plus "shell", you can execute a Basic program, by executing the 'prgm' command, concatenated by the program name (it would have been nicer if you could specify the program name as an argument of a prgm() command).
- I think it's reasonable condition to expect that a program should be in RAM (so no dealing with archived programs), and that the user knows the TI-Basic program name and is able to type it in.
- maybe from within the RPN app, you could request the program name, hand control to the native TI shell, and have it execute the prgm<Program name> command.
- ideally execution should jump back to the RPN app after completion of the TI-Basic program, but it would be acceptable to call it up from the Apps menu as well.
- if you want to re-use values generated by the TI-Basic program, you should put those in the REGS variable (or make sure the value is available in the Ans "variable?").
- the other way around, inputs for the TI-Basic program should also be in a register (or in the L on the RPN stack).

I am not sure if this would be doable, and would be really worth it. Of course, you can already exit the RPN app, execute a program from the TI-shell, and return to the RPN app. Your choice of using a REGS variable ensures that you already can use that from within a TI-Basic program (theory from my side, I have not tested that yet).

While keystroke programming would be superior, in my opinion, I think having the RPN app as a non-programmable scientific calculator, and using the native TI-84 Plus functionality for the remaining functions (programming, solver) might be a pragrmatic solution.

11C, 12C, 15C CE, 17Bii, DM42
Find all posts by this user
Quote this message in a reply
12-04-2023, 06:04 PM
Post: #46
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-04-2023 08:23 AM)Gerald H Wrote:  After update 23/12 PRIM factorizes faster on 83+SE than 84+ and 84+SE (input 2709571927).

The 83+SE fastorizes faster than the 84+ and 84+SE even before the update. About 20% faster according to my stopwatch.
Find all posts by this user
Quote this message in a reply
12-04-2023, 06:19 PM
Post: #47
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-04-2023 03:29 AM)bxparks Wrote:  
(12-03-2023 02:45 PM)ijabbott Wrote:  2ND ) could have the same effect as ) ) (X⇄Y X⇄Y), effectively terminating digit entry, similar to the ON/EXIT key on HP-42S. (Maybe not worth it as ) ) would be easier to press.)
Ha, I never knew that ON/EXIT terminates digit entry on the HP-42S. (I looked, I couldn't find it in the HP-42S manual.) I should be able to add that in RPN83P. I think I would prefer that over 2ND ), which I think is harder to press than ) ).

So I checked the HP-42S (actually Free42), and it seems like ON/EXIT terminates edit mode as a *side effect* of exiting the current menu bar. On my RPN83P, ON/EXIT affects *only* the menu hierarchy and has no effect on the edit mode. I actually prefer my implementation rather than the HP-42S, because if I'm in the middle of entering a number, I want to be able to navigate the menu without terminating the digit entry.

My question is: When is this feature used and how important is it? In an RPN system, I have rarely (if ever) needed to just terminate digit entry, for the purpose of simply placing it into the X register. When I enter a number, I usually (always?) want to apply an operation to that number.
Find all posts by this user
Quote this message in a reply
12-04-2023, 08:24 PM (This post was last modified: 12-05-2023 07:33 PM by jthole.)
Post: #48
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
Communicating via the registers (and stack) already works fine between TI-Basic and RPN83P.

PROGRAM:STOREG
Prompt R
Prompt V
V -> lREGS(R+1)

(TI-OS)
prgmSTOREG
V=?123
R=?0

(RPN83P)
RCL 00
123

Edit:

Of course you can do that from the TI-OS home screen as well (instead of from a program). What is nice as well, is that you can use the Ans variable (corresponding to LastX in RPN83P) in the TI-84+ solver too.

So the STK, REGS, and Ans (list) variables are really the link between the RPN calculator part, and the remaining TI-84+ functions.

11C, 12C, 15C CE, 17Bii, DM42
Find all posts by this user
Quote this message in a reply
12-05-2023, 07:40 AM
Post: #49
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
Not a bug, but something that surprised me:

lSTK(1) only contains the X register after an operation is performed on it. That is contrary to what I would expect in a HP 42S.

But of course that’s only visible when looking at the calculator from the outside.

As an example:

After I cleared the stack, I enter 1 and exit the RPN app. lSTK(1) contains 0.
When I go back, press (X^-1), and examine the first element in the STK list, it contains 1, as expected.

Again, not a bug, but unexpected when you think lSTK would reflect the current stack state.

Simple resolution: if you want to use any other value than LastX outside of the RPN app, store it in a register (the lREGS list).

11C, 12C, 15C CE, 17Bii, DM42
Find all posts by this user
Quote this message in a reply
12-18-2023, 07:52 PM (This post was last modified: 12-18-2023 07:53 PM by floppy.)
Post: #50
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
Loading of RPN83 into TI84 Plus:
- first calculator: failed (see pictures)
- second calculator: upload success (test / try coming next)
Both had the latest OS V2.55.
Will have to see later what was going on with the first calculator (reset done before; RAM cleaned); not a priority since another seems ok for uploading the app. Message say there was not enough archive on the calculator.


Attached File(s) Thumbnail(s)
       

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
12-19-2023, 01:28 PM (This post was last modified: 12-19-2023 01:29 PM by jthole.)
Post: #51
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
I backed up and removed most of the default apps on my TI-84 before installing RPN83P.

Edit: is the second one a Silver Edition, by chance? They have more flash available for apps storage, if I am correct.

11C, 12C, 15C CE, 17Bii, DM42
Find all posts by this user
Quote this message in a reply
12-19-2023, 02:31 PM
Post: #52
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-18-2023 07:52 PM)floppy Wrote:  Loading of RPN83 into TI84 Plus:
- first calculator: failed (see pictures)
- second calculator: upload success (test / try coming next)
Both had the latest OS V2.55.
Will have to see later what was going on with the first calculator (reset done before; RAM cleaned); not a priority since another seems ok for uploading the app. Message say there was not enough archive on the calculator.

You may need to free up some flash memory ("ARC FREE"). Your second calculator says "ARC FREE 9126", which I think means 9126 bytes free. The RPN83P needs 32 kB. My 84+SE says "ARC FREE 1297K", which means 1.3 MB free. My lowly 83+ says "ARC FREE 114688".

Also, when you upload a new version of RPN83P, you may have to delete the old version manually before uploading. I get errors when I try to overwrite the old version, I don't know why.
Find all posts by this user
Quote this message in a reply
12-19-2023, 06:51 PM
Post: #53
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-04-2023 08:24 PM)jthole Wrote:  So the STK, REGS, and Ans (list) variables are really the link between the RPN calculator part, and the remaining TI-84+ functions.

I want to give you a heads-up that I had to redesign the REGS and STK variables to support complex numbers in RPN83P. Unfortunately, as a consequence, TI-BASIC can no longer parse those variables. ANS still works. (Technical details if you are curious: The TI-OS seems to support Real Lists and Complex Lists, but not a polymorphic List that holds both types. I had to create my own List type and storage format, which TI-OS does not know how to parse.) If we want interoperability between TI-BASIC and RPN83P, I think that may still be possible, but I think it needs to be a deliberate feature, with an explicit API between the two systems, instead of relying on an accident of the implementation details.

I'm about 60-70% done with complex number support.
Find all posts by this user
Quote this message in a reply
12-20-2023, 08:14 AM
Post: #54
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-19-2023 06:51 PM)bxparks Wrote:  
(12-04-2023 08:24 PM)jthole Wrote:  So the STK, REGS, and Ans (list) variables are really the link between the RPN calculator part, and the remaining TI-84+ functions.

I want to give you a heads-up that I had to redesign the REGS and STK variables to support complex numbers in RPN83P. Unfortunately, as a consequence, TI-BASIC can no longer parse those variables. ANS still works.

Thanks, I already read so in your latest commits to (I believe) the readme.md file.

Being able to use the REGS variable would be nice, but having ANS is already very useful.

The TI-84+ is a bit large to carry with me (I always have a DM42 with me), so I mainly use it at home.

11C, 12C, 15C CE, 17Bii, DM42
Find all posts by this user
Quote this message in a reply
12-20-2023, 10:04 AM
Post: #55
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-20-2023 08:14 AM)jthole Wrote:  The TI-84+ is a bit large to carry with me (I always have a DM42 with me), so I mainly use it at home.

The "pocket" version of the TI-84+SE is quite nice.

— Ian Abbott
Find all posts by this user
Quote this message in a reply
12-21-2023, 05:39 AM
Post: #56
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-20-2023 10:04 AM)ijabbott Wrote:  The "pocket" version of the TI-84+SE is quite nice.

I think you or someone else mentioned this "TI-84 Plus Pocket SE" once before in this thread. I had never heard of it. It was apparently made only for the Asian market. There is no record of one being sold on ebay in its recent history (last 90 days?). There is exactly one for sale right now, from Australia. A little voice on my left side says, "It's cool, get it, Aussie dollars are cheap!" But another voice on my right side says, "Do you really need another TI-83/84 calculator??" I think I'm going to pass.
Find all posts by this user
Quote this message in a reply
12-21-2023, 03:02 PM
Post: #57
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
I have a TI-84 Plus and I can confirm that the RPN83P app works.

And that Pocket edition of the 84-Plus is tempting me to hunt for one.
Visit this user's website Find all posts by this user
Quote this message in a reply
12-23-2023, 01:15 AM (This post was last modified: 12-23-2023 01:28 AM by bxparks.)
Post: #58
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
(12-19-2023 06:51 PM)bxparks Wrote:  I'm about 60-70% done with complex number support.

An update on this before heading into the holidays: I had wanted to give you folks a Christmas present and get this done. But realistically, it will be just a little longer, maybe 2-3 weeks. I'm about 80-90% done:

- [done] redesign RPN stack and storage registers to support both real and complex numbers
- [done] extend arithmetic, algebraic, transcendental handlers to support complex numbers
- [deferred] complex numbers for trigonometric and hyperbolic functions (not supported by TI-OS)
- [done] add explicit CPLX menu group with (currently): REAL, IMAG, CONJ, CABS, CANG
- [done] support RRES (real result) and CRES (complex result) menu settings
- [done] support RECT (Rectangular), PRAD (Polar Radian), PDEG (Polar Degree) menu settings
- [done] display complex numbers in RPN stack in rect and polar modes
- [done] support complex numbers in SHOW, in rect and polar modes
- [done] support Linking/Unlinking a complex number and its 2 real components. This is the COMPLEX key button on an HP-42S, but the TI-83/84 does not have a COMPLEX button. The most reasonable alternative seemed to be 2ND LINK.

These features make the RPN83P basically on-par with the HP-42S. What's left? Well, I've never been happy with the COMPLEX button being the only way to enter complex numbers on the 42S. Instead, I am inspired by the HP-35s to extend the user interface for entering and editing complex numbers:

- [TBD] support entering complex numbers in Rectangular mode using the 2ND IMAGINARY-I button
- [TBD] support entering complex numbers in Polar mode using the 2ND ANGLE button (an alternative is the ALPHA THETA button if people prefer that, that's a one-line change, so we can discuss that later)

It's funny because I don't actually own a 35s and have never used one, so I am depending on its User's Manual to be reasonably accurate.

Once I finish the coding part, I suspect it will take me about a week to update the documentation. So with my holiday schedule involving some traveling, I am looking at early January for v0.9 with complex number support.

Brian
Find all posts by this user
Quote this message in a reply
01-07-2024, 12:41 AM (This post was last modified: 01-07-2024 05:55 AM by bxparks.)
Post: #59
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
I just released v0.9.0 of RPN83P which contains complex number support similar to the HP-42S, with some features borrowed from the HP-35s. (I have updated the list of features on the original post that I created for this thread.) You can grab the rpn83p.8xk file from the GitHub Releases page. That page also contains a copy of the CHANGELOG for this release.

Please send feedback of the complex number support in RPN83P. As I noted earlier, I can use Free42 as a reference for the HP-42S, but I don't actually have an HP-35s calculator, so I don't know how it handles things which aren't documented in its User's Guide. Also, I have not used complex numbers for, maybe 30 years. I think I recall using them in EE circuit analysis, maybe in E&M, or control theory, or quantum mechanics? I don't really remember. It would be great to have feedback from people who actually use them for real work.

The Complex Numbers section in USER_GUIDE.md adds 12 pages, making it 67 pages long as a PDF file. Sorry about that. A new annunciator for the Complex Display Mode was added to the top of the screen. That forced me to update about 120 screenshots.

If you already know RPN83P, here is my suggestion for getting up to speed on the new features:

* look at the animated GIF in the new Example 4 section in the README.md
* review the Input and Editing section for the new key bindings related to complex numbers
* scan through the new Complex Numbers section
* play around with complex numbers in the app itself, consulting the USER_GUIDE as needed

There is one notable feature that I will highlight here, because I have implemented it differently from any calculator that I am familiar with: In RPN83P, the Trigonometric Mode (DEG, RAD) is completely unrelated to the Complex Display Mode (RECT, PRAD, PDEG). The Trigonometric Mode affects how trig functions perform their calculations. The Complex Display Mode affects how complex numbers are rendered on the screen. The 2 concepts are completely decoupled in RPN83P. It makes sense to me, but I don't know about other people. Complex numbers are always stored internally in rectangular form. The Complex Display Mode controls only the rendering of the complex numbers on the screen.
Find all posts by this user
Quote this message in a reply
01-07-2024, 11:28 PM
Post: #60
RE: RPN83P: RPN calculator for TI-83+ TI-84+ inspired by HP-42S
Well done! It installed fine on my TI-83+, and seems to work well. I don't understand complex numbers at all, I'm kinda a bit suspicious of them.
Find all posts by this user
Quote this message in a reply
Post Reply 




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