02-09-2017, 01:18 PM
Post: #541
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-08-2017 04:27 PM)Helix Wrote:  I miss the ->LIST command.

I like this one! Actually, here's what I think should be implemented:

When you have a selection, the + key (also { }) will convert selected items to a list at the cursor position.
The - key (also ( ) ) will convert 2 items into a complex number. Will do nothing if your selection contains anything other than 2 items.
The * key (also [ ] ) will convert the selected items to a vector. If the items are already vectors of the proper size it will create a matrix by rows.

How does that sound?
02-09-2017, 05:42 PM
Post: #542
 Francois Lanciault Member Posts: 104 Joined: Dec 2013
Hi Claudio,

On the latest firmware the following command do not work:

FC?
FS?

But all other flag commands works ok like FC?C and FS?C

Another bug I saw (without consequences) is while typing in the program editor, when the screen is full and you are at the end of the line, sometime the screen goes blank (except for the menu). However typing an additional character always bring back the display and everything is fine.

Also, the problem I had a couple of week ago is back i.e. the calculator does not remember if the second menu should be displayed or not after a power cycle, an error display or a help message... Right now my HP-50 always revert to full stack display (no 2nd menu) after power up.

Finally, this is just a request, when you are in the program editor the cursor is either P,C or L and everything is fine until you need a double single quote (to identify a variable before STO let’s say). Then the cursor changes from P to A inside the quotes as it should but will remain an A even when exiting the quotes. Pressing Alpha will cycle between C, L and A even if not inside quotes. Is there a way to have the P back? It is not the end of the world as everything can be typed anyway but it is a bit annoying as the automatic spaces are not inserted anymore for the basic operation and the function like SIN, MOD etc are inserted with parentheses.

Otherwise, I found the HP-50 more and more useful with NewRPL installed. Keep on the good work (that applies also to all other newRPL contributors)

François
02-09-2017, 10:43 PM
Post: #543
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-09-2017 05:42 PM)Francois Lanciault Wrote:  Hi Claudio,

On the latest firmware the following command do not work:

FC?
FS?

But all other flag commands works ok like FC?C and FS?C
I'm not seeing that on my calc. How do they fail? Bear in mind there's no user flags (not sure they are useful or not, I never used them myself), only system so flag numbers are always negative.
(02-09-2017 05:42 PM)Francois Lanciault Wrote:  Another bug I saw (without consequences) is while typing in the program editor, when the screen is full and you are at the end of the line, sometime the screen goes blank (except for the menu). However typing an additional character always bring back the display and everything is fine.
Also could not reproduce it here. Any chance you can come up with a reproducible sequence of keypresses so I can see what's going on?

(02-09-2017 05:42 PM)Francois Lanciault Wrote:  Also, the problem I had a couple of week ago is back i.e. the calculator does not remember if the second menu should be displayed or not after a power cycle, an error display or a help message... Right now my HP-50 always revert to full stack display (no 2nd menu) after power up.
Also tried this, can't make it fail at all on my calc. Menu 2 goes back to hiding after help or error or power cycle. Or stays visible when it's supposed to.
Is there any chance you flashed an old firmware? Make sure your update.scp is pointing to the right file.
All other issues you mentioned could also be due to going back to an older firmware version.

(02-09-2017 05:42 PM)Francois Lanciault Wrote:  Finally, this is just a request, when you are in the program editor the cursor is either P,C or L and everything is fine until you need a double single quote (to identify a variable before STO let’s say). Then the cursor changes from P to A inside the quotes as it should but will remain an A even when exiting the quotes. Pressing Alpha will cycle between C, L and A even if not inside quotes. Is there a way to have the P back? It is not the end of the world as everything can be typed anyway but it is a bit annoying as the automatic spaces are not inserted anymore for the basic operation and the function like SIN, MOD etc are inserted with parentheses.
Ahhh... the dynamic mode switching feature again. It's useful, though not trivial to implement. Could be implemented in the future so I'll add it to the bug tracker. Right now it's the same as the 50g: ALG also stays on in the stock firmware as you described. You can use ENTRY to go back to P mode (same as stock firmware, right-shift+alpha).

(02-09-2017 05:42 PM)Francois Lanciault Wrote:  Otherwise, I found the HP-50 more and more useful with NewRPL installed. Keep on the good work (that applies also to all other newRPL contributors)

François
Thanks, in the name of everyone.
02-09-2017, 11:25 PM
Post: #544
 Francois Lanciault Member Posts: 104 Joined: Dec 2013
Re my last post:

Quote:But all other flag commands works ok like FC?C and FS?C
I'm not seeing that on my calc. How do they fail? Bear in mind there's no user flags (not sure they are useful or not, I never used them myself), only system so flag numbers are always negative.

It's ok for the flag command FC? and FS? they do work. The problem was that I used them from the /Prog/Flag menu where the names have been mis-typed CF? SF?. So only typos to correct in the menus.

BTW I do like user flags...

Quote:Also could not reproduce it here. Any chance you can come up with a reproducible sequence of keypresses so I can see what's going on?

For the editor problem (screen that goes blank) I will try to provide you with a series of keystrokes to reproduce the issue. So that you know, I was typing a small program (about 30 screens lines) and it happened twice.

Quote:Also tried this, can't make it fail at all on my calc. Menu 2 goes back to hiding after help or error or power cycle. Or stays visible when it's supposed to.
Is there any chance you flashed an old firmware? Make sure your update.scp is pointing to the right file.
All other issues you mentioned could also be due to going back to an older firmware version

I do have the latest firmware. For example the interactive stack works. I will try to re-flash anyway.

Quote:Ahhh... the dynamic mode switching feature again. It's useful, though not trivial to implement. Could be implemented in the future so I'll add it to the bug tracker. Right now it's the same as the 50g: ALG also stays on in the stock firmware as you described. You can use ENTRY to go back to P mode (same as stock firmware, right-shift+alpha).

François
02-10-2017, 12:11 AM
Post: #545
 Helix Member Posts: 207 Joined: Dec 2013
(02-09-2017 01:18 PM)Claudio L. Wrote:  When you have a selection, the + key (also { }) will convert selected items to a list at the cursor position.
The - key (also ( ) ) will convert 2 items into a complex number. Will do nothing if your selection contains anything other than 2 items.
The * key (also [ ] ) will convert the selected items to a vector. If the items are already vectors of the proper size it will create a matrix by rows.

How does that sound?

Good for me!

Jean-Charles
Post: #546
 The Shadow Member Posts: 226 Joined: Jan 2014
(02-09-2017 10:43 PM)Claudio L. Wrote:  Bear in mind there's no user flags (not sure they are useful or not, I never used them myself), only system so flag numbers are always negative.

What, really? I use them quite a bit, especially for recursive programs. (You set a flag to tell whether you're on the first pass or not.) They're also handy when jiggering something to let a later IF know you jiggered it.

Granted, you could treat a local variable like a flag, but user flags have the handy benefit of having a default value (of 0). Though unlike local variables you do have to remember to clear them before the program ends - using FC?C or FS?C suffices.

I'm still wrapping my mind around newRPL's vastly increased use of local variables, so ultimately I may come around to using them as flags. But I can't imagine that user flags would be difficult to implement, and if done right, they might be faster than looking up a name.

(Just spitballing here, but what if "flag" were an object type, taking on values of 0 or 1 only? Would there be any benefit to such a thing?)

EDIT: I keep forgetting to ask: How does one access the 8 levels of undo/redo?
02-10-2017, 07:31 PM
Post: #547
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-09-2017 10:43 PM)Claudio L. Wrote:  Bear in mind there's no user flags (not sure they are useful or not, I never used them myself), only system so flag numbers are always negative.

What, really? I use them quite a bit, especially for recursive programs. (You set a flag to tell whether you're on the first pass or not.) They're also handy when jiggering something to let a later IF know you jiggered it.

Granted, you could treat a local variable like a flag, but user flags have the handy benefit of having a default value (of 0). Though unlike local variables you do have to remember to clear them before the program ends - using FC?C or FS?C suffices.

I'm still wrapping my mind around newRPL's vastly increased use of local variables, so ultimately I may come around to using them as flags. But I can't imagine that user flags would be difficult to implement, and if done right, they might be faster than looking up a name.
Well, since there's 2 people vouching for user flags, I don't see why not implement them (2 people is probably 25% of newRPL's total user base, so it's a lot

(02-10-2017 05:36 AM)The Shadow Wrote:  (Just spitballing here, but what if "flag" were an object type, taking on values of 0 or 1 only? Would there be any benefit to such a thing?)
Flag objects would waste way too much space, as objects use 32-bit minimum, using 1-bit per flag there's space for 32 flags right there. I'll just implement them the traditional (and compatible) way.

(02-10-2017 05:36 AM)The Shadow Wrote:  EDIT: I keep forgetting to ask: How does one access the 8 levels of undo/redo?

Left cursor while at the stack does UNDO. Left-Shift+Left does Redo (if it doesn't work try right-shift, I'm writing from memory now with no access to the calc to test it).
02-10-2017, 07:40 PM
Post: #548
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-09-2017 11:25 PM)Francois Lanciault Wrote:  It's ok for the flag command FC? and FS? they do work. The problem was that I used them from the /Prog/Flag menu where the names have been mis-typed CF? SF?. So only typos to correct in the menus.

Now I got it. Thanks for reporting it.

(02-09-2017 11:25 PM)Francois Lanciault Wrote:  BTW I do like user flags...
Duly noted. Will be implemented soon.

(02-09-2017 11:25 PM)Francois Lanciault Wrote:  For the editor problem (screen that goes blank) I will try to provide you with a series of keystrokes to reproduce the issue. So that you know, I was typing a small program (about 30 screens lines) and it happened twice.

I do have the latest firmware. For example the interactive stack works. I will try to re-flash anyway.

More than reflashing, try a full memory wipe (On+A+F, then hit Clear Memory while pressing all 3 shifts at once). If that doesn't work then I need to find the bug with your help somehow.
Post: #549
 The Shadow Member Posts: 226 Joined: Jan 2014
(02-10-2017 07:31 PM)Claudio L. Wrote:  Well, since there's 2 people vouching for user flags, I don't see why not implement them (2 people is probably 25% of newRPL's total user base, so it's a lot

Now that's what I call service.

Something else I've been pondering... I've hardly ever used STO+, INCR, and other commands of that type. But I can definitely see uses for local variable equivalents!
02-10-2017, 11:29 PM (This post was last modified: 02-10-2017 11:33 PM by Claudio L..)
Post: #550
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-10-2017 07:31 PM)Claudio L. Wrote:  Well, since there's 2 people vouching for user flags, I don't see why not implement them (2 people is probably 25% of newRPL's total user base, so it's a lot

Now that's what I call service.

Something else I've been pondering... I've hardly ever used STO+, INCR, and other commands of that type. But I can definitely see uses for local variable equivalents!

There's no need. You only need to use LSTO when you create the local variable, once you know it's been created, all other "normal" STO variants and INCR can be used and will properly find the local.
Having said that, using INCR may not be the best choice, for example let's compare:
<< 3 'N' LSTO N 1 + 'N' STO >>
vs.
<< 3 'N' LSTO 'N' INCR DROP >>

The first version internally is compiled to something like this (you won't ever see it, though):
<< 3 'N' LSTO 1GETLAM 1 + 1PUTLAM >>
The version using INCR will first push the name on the stack, then search by name, does the same 1 + (about the same speed as running 1 + in RPL code) and stores the result directly.
The version with GETLAM/PUTLAM doesn't do the search by name, so it is faster in the end.

The optimization is only done when using LSTO or STO, and when using RCL, LRCL or the name of the variable unquoted. All other commands like STO+, etc. are not subject to optimization with locals.
02-10-2017, 11:54 PM
Post: #551
 The Shadow Member Posts: 226 Joined: Jan 2014
(02-10-2017 11:29 PM)Claudio L. Wrote:  There's no need. You only need to use LSTO when you create the local variable, once you know it's been created, all other "normal" STO variants and INCR can be used and will properly find the local.

Huh. Very much worth knowing! I'm now a little surprised that LRCL is needed, though.

Quote:Having said that, using INCR may not be the best choice,

Also worth knowing.
02-13-2017, 05:07 PM
Post: #552
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-10-2017 11:54 PM)The Shadow Wrote:  Huh. Very much worth knowing! I'm now a little surprised that LRCL is needed, though.

LRCL will guarantee you are accessing a local you created, never some global that the user left created in the current directory or any parent directory, so it has its niche use when you are trying to encapsulate a program. You can also trap the errors with IFERR for example to give a default value if a local doesn't exist yet, or to detect if it's the first pass of a recursive algorithm.
02-13-2017, 05:51 PM
Post: #553
 Francois Lanciault Member Posts: 104 Joined: Dec 2013
(02-10-2017 07:31 PM)Claudio L. Wrote:  Well, since there's 2 people vouching for user flags, I don't see why not implement them (2 people is probably 25% of newRPL's total user base, so it's a lot

Thank you Claudio from all user flag fans!

I think it is important also for backward compatibility reason since user flags where available in RPL as early as the HP-48G (and maybe the 28 series I don't know). What I like about them is the ability to test and clear/set in one instruction.

The other very nice thing on the 48 was that you could see the status of the first few flags directly on the display (like some RPN calculator). This would give some live feedback about your program while it was running.

Would it be possible to have the same flag indicator for the first 4 flags in the status area of newRPL ?

Have a nice day.
02-18-2017, 02:24 PM (This post was last modified: 05-15-2017 12:49 AM by compsystems.)
Post: #554
 compsystems Senior Member Posts: 1,269 Joined: Dec 2013
Hello Claudio, the NEW-RPL demo, without a keyboard guide is not useful especially for a new tester, I suggest adding a guide image of useful keyboard shortcuts.
02-20-2017, 01:43 PM
Post: #555
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-18-2017 02:24 PM)compsystems Wrote:  Hello Claudio, the NEW-RPL demo, without a keyboard guide is not useful especially for a new tester, I suggest adding a guide image of useful keyboard shortcuts.

Thank you

As I said a couple of times before, the demo is only a byproduct of the development process, used to debug the code faster. It serves as a preview for some people to encourage them to flash their calculators with the firmware (have you?) but it is not the intended target of newRPL.
We cannot afford to spend too much time developing the demo with features that won't be useful to the actual firmware, time is very limited.
You seem to dedicate a long time at creating illustrated posts, perhaps you should take a more active approach and help writing documentation.
With the time you spent creating the picture for that post, you could've created a picture with the real shortcuts (many in your image are wrong) or perhaps write a short tutorial describing all the key assignments that we could include in the docs. My suggestion to you is instead of spending so much time posting colorful requests, go ahead and write something useful that will help the project, and other users.
For example, Egan wrote and published many years ago a tutorial page on hpgcc, and it became more popular than hpgcc's own page, it helped a lot of people get started with C on the 50g. If you write something nice and complete, send it to me in plain HTML and I can host it on the official website, so you don't even have to have your own hosting.
Same offer goes for anyone willing to help the newRPL project with examples, tutorials, or plain boring documentation.
02-20-2017, 03:06 PM
Post: #556
 compsystems Senior Member Posts: 1,269 Joined: Dec 2013
Hi Claudio, the image above is a quick sketch, a more successful image is.

I want to write a programming document in USER-NewRPL, but I need the tool to write and try the programs, a "NEW-RPL" simulator, let's say that it is already, you only need the skin or keyboard guide to adhere, otherwise I have to buy an hp50, because fortunately I no longer have a real calculator

A doc in programming language in algebraic mode that I call HP50PL but to execute in RPN view
http://eonicasys.com.co/public/math/RPL/...HP50PL.pdf
02-20-2017, 07:22 PM
Post: #557
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-20-2017 03:06 PM)compsystems Wrote:  I want to write a programming document in USER-NewRPL, but I need the tool to write and try the programs, a "NEW-RPL" simulator, let's say that it is already, you only need the skin or keyboard guide to adhere, otherwise I have to buy an hp50, because fortunately I no longer have a real calculator

Don't forget also x49gp, the latest sources are here, which was updated to run newRPL firmware directly. It has the keyboard, you can replace it with a different one or edit the skin, and it runs newRPL quite well. Many linux distros and also FreeBSD have x49gp as a package so it's easy to install and use, though I'm not sure where they pull their sources from.
02-21-2017, 08:47 PM
Post: #558
 TheKaneB Member Posts: 175 Joined: Jul 2014
Hi,
I've seen some tutorials on the website about setting up the toolchain for development.
Is the info still relevant?

Is it possible to build the firmware myself? I'd like to do some experiments on it.
I'm fluent with C, C++ and ARMv4 assembly, so don't spare the technical details

Thanks!
Antonio

Software Failure: Guru Meditation

--
Antonio
IU2KIY
02-21-2017, 11:01 PM (This post was last modified: 02-21-2017 11:06 PM by Claudio L..)
Post: #559
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
(02-21-2017 08:47 PM)TheKaneB Wrote:  Hi,
I've seen some tutorials on the website about setting up the toolchain for development.
Is the info still relevant?

Is it possible to build the firmware myself? I'd like to do some experiments on it.
I'm fluent with C, C++ and ARMv4 assembly, so don't spare the technical details

Thanks!
Antonio

Actually it's quite easy.

Most of it is overkill for MacOSX, if you use Ubuntu or an Ubuntu VM things are much simpler.
Let me copy/paste some better steps that got lost around post #400 in this thread:

The steps are quite simple, the following should work on any Linux/FreeBSD:

* git clone the repository with:
Code:
git clone https://git.code.sf.net/p/newrpl/sources newrpl
* Install gcc or Clang compiler.
* Install Qt with Qt Creator (for easier coding).
* Install arm-none-eabi-gcc and arm-none-eabi-binutils
* Install libelf-devel package (if it's not already installed).
* Open Qt Creator, first you need to build the tools: go to the newrpl/tools directory and open the project elf2rom, choose the "Release" version, edit the make steps to add a "make install" step at the end.
* Do a build-all, look at the output to make sure the executable was copied properly.
* Now do the same with the other tools.
* Now go back to the main directory, open the project newrpl-comp.pro. Same thing (select Release, add a make install step, then build-all).
* Now close all, open newrpl-fw.pro, edit the .pro file as needed to change the folders where you have arm-none-eabi-gcc (they change according to version, look at the file).
* Hit build and everything should work fine, if there are no errors, you should see the last line "Binary newrplfw.bin written".

If you have any questions, just ask here!

EDIT: Since you know armv4t assembler, in the build directory you'll find newrplfw.elf that corresponds to the .bin ROM file. I always use:
arm-none-eabi-objdump -D newrplfw.elf > newrplfw.diss
to get the full ROM disassembly, useful when you get CPU exceptions.
02-21-2017, 11:18 PM
Post: #560
 Claudio L. Senior Member Posts: 1,703 Joined: Dec 2013
Another update!

In this build:

* Added composite objects to the interactive stack:

Key * --> Compose vectors or matrices
Key - --> Compose complex numbers
Key + --> Compose a list
Key / --> "Divide" a composite in its component parts

* User flags are back! 128 user flags. The status area has 6 dots for flags 1 thru 6 (try setting/clearing flags and you'll see what I mean).

Bug fixes:
* Fixed potential crash due to GC during bitmap cache rendering
* Limited rendering of stack objects to 4 screens wide and 4 screens high due to high memory usage.
* Fixed NEXT bug when counting in reverse.

Enjoy!

PS: To construct a matrix, first select a few elements and create a row, then select all the rest together with the row and will assemble the matrix. Mixing any combination of matrices, row vectors and loose numbers is allowed as long as the loose numbers cover entire rows, and all row vectors and matrices have the same number of columns (easier to test on-calc than try to explain here). The "Divide" key will split matrices by rows, press again to go by elements.
 « Next Oldest | Next Newest »

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