Post Reply 
[50G] Question
03-25-2015, 12:00 PM
Post: #41
RE: [50G] Question
(03-25-2015 11:17 AM)Jlouis Wrote:  
(03-25-2015 06:55 AM)Massimo Gnerucci Wrote:  Not at all, I don't forget (and, coincidentally, I should receive a B&W 48GX just today...)

As you can see from the first post Tugdual has the blue on green variant. Wink
Hi Massimo,

Yes, you are right in the context.

Enjoy your black 48gx. Best of both worlds.

Cheers

If you're a purist & demand the pure Saturn chip, yes.

If you just want to enjoy a good calculator the 50G is the way to go. How much does a 1 MB memory card for the 48GX cost? How convenient is an SD card?....
Find all posts by this user
Quote this message in a reply
03-25-2015, 12:08 PM
Post: #42
RE: [50G] Question
(03-25-2015 04:33 AM)Tim Wessman Wrote:  
(03-24-2015 06:51 AM)Tugdual Wrote:  Wonder if the PC emulator is emulating the ARM that emulates the Saturn or if the PC is a recompilation of the same ARM emulator code.

Actually, it is a bit more complicated then that. The ROM is Saturn code. There is then an emulator (called the Saturnator, made by JYA I think) which emulates the Saturn processor. This runs the ROM. However, some Saturn op codes could be sped up considerably by replacing them with an ARM call that would do a similar thing. For example, moving memory up/down.

From my understanding, the compilation process for a complete compilation looks roughly like this: a) compile the C code saturnator and underlying OS b) compile the saturn ROM code c) run a perl script that scans the saturn code and replaces OP codes with ARM calls. D) package the whole thing up

For the windows emulator, only step B is done. That can then be used by any proper emulator of the saturn code (I think there are 3 of these - emu48, the saturnator, and then an HP only version of a saturn emulator made by the original emu48 author)

Quote: The second would make sense especially when we know that the prime on PC is a simulator, meaning that the ARM code was recompiled.

Well, I think "simulator" is murky here. It actually is a native application in all locations. For example, you have Chrome on OSX and Chrome on windows. Is one a simulator of the other? The underlying code is essentially identical if you look at the whole. True, there are some specific bits that are different to handle differences in the underlying OS that is running the application, but the core of the application is identical.

The same is true of the prime - it has a core application and then that is targetted to run on different OS platforms. Currently, you can see 3 - windows, the hardware OS, and android.

Where the confusion comes in is that the "emulators" you see on windows or android resemble the hardware visibly with skins. So arguably, calling it a simulator is valid. The underlying reality is more complicated and could be argued either way.
Hi Tim, thanks for the time you spent explaining all this. Good to have you aboard for that level of detail!
Find all posts by this user
Quote this message in a reply
03-26-2015, 02:50 PM
Post: #43
RE: [50G] Question
(03-25-2015 04:33 AM)Tim Wessman Wrote:  Well, I think "simulator" is murky here. It actually is a native application in all locations. For example, you have Chrome on OSX and Chrome on windows. Is one a simulator of the other? The underlying code is essentially identical if you look at the whole. True, there are some specific bits that are different to handle differences in the underlying OS that is running the application, but the core of the application is identical.

I think "simulator" is an appropriate term. I'd say:
Emulator = One hardware platform trying to mimic exactly the behavior of a different platform. The same binary (possibly for a different CPU) runs on the emulator, and may not be aware that is not running on the original hardware.
Simulator = The same high level code or very similar, but a different binary (recompiled) running natively on a different platform. The simulation part comes from additional native code not present in the original platform that tries to replicate or "simulate" the behavior of the other platform's hardware, not necessarily identical, but using at least a similar API.

In this regards, the Prime is a simulator, not a native application because it tries to simulate the same hardware screen, with the same fixed resolution, and also draws a keyboard simulating the keys of the hardware platform.
Chrome is a native portable application, runs on all platforms, not simulating the screen, or the keys, or anything, but taking what's available on each platform and using it.
The Prime would be a native application if you could for example make it fullscreen and it would take advantage of the bigger screen to show more pixels (scaling the fixed resolution screen doesn't count, it's still "simulating" the low-res screen).

Back to the 50g: ARM improvements were implemented as new opcodes in the emulated platform: First you have a 100% compatible emulation of the old hardware, then they added a few new "instructions" to the old processor to do things faster, and even to do direct code execution on the host platform, but all within the emulated platform.
So what you have is a new binary ROM that is slightly modified to run on the enhanced virtual Saturn, which has a few improvements over the physical chip but is still a completely emulated platform.

To answer the original question, on the PC, Android and iOS, you have Emu48 (and various others derivatives and rewrites), which is a Saturn emulator, running the hp49 original Saturn ROM with no enhancements.
At first, it appears logical to provide the same enhancements to the virtual Saturn in Emu48 as the 50g emulator has, then running the new enhanced ROM for faster response.
The problem with that is that one of the key enhancements was to allow running native ARM code (hpgcc used those extensions to run C programs). You can only use those extensions if you actually emulate the ARM processor too, otherwise programs using hpgcc wouldn't execute. So it would be faster, enhanced but crippled and not 100% identical to a real 50g.
That gave birth to x49gp, the only one I know of that is an ARM emulator capable of running the same ARM binary ROM that runs on the 50g, which in turn emulates the new "enhanced" virtual Saturn.

Claudio
Find all posts by this user
Quote this message in a reply
03-27-2015, 12:44 PM (This post was last modified: 03-27-2015 12:45 PM by Tugdual.)
Post: #44
RE: [50G] Question
Fresh question: when viewing a text expression, like a 30 digits number, is there a way to wrap text or the horizontal scrolling is the only option to read digits?

Seems to be no polynomial regression. Reading the manual I found a small rpl application to address this. A bit surprised this is not in standard rom. There are s so many things... Engineers do polynomial regression on a regular base.
Find all posts by this user
Quote this message in a reply
03-27-2015, 01:02 PM
Post: #45
RE: [50G] Question
(03-27-2015 12:44 PM)Tugdual Wrote:  Fresh question: when viewing a text expression, like a 30 digits number, is there a way to wrap text or the horizontal scrolling is the only option to read digits?

Depending on how long the string is, this may help:

With the string on the the stack, press [Up-Arrow] [NXT] [INFO] and the info box will show you up to 4 lines of 15 chars, plus the object's size and CRC.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
03-27-2015, 03:02 PM
Post: #46
RE: [50G] Question
(03-27-2015 12:44 PM)Tugdual Wrote:  Seems to be no polynomial regression. Reading the manual I found a small rpl application to address this. A bit surprised this is not in standard rom. There are s so many things... Engineers do polynomial regression on a regular base.

Perhaps this is due to the presence of the LSQ (least squares) command that can be used on an appropriate Vandermonde matrix (and VANDERMONDE is also a command available on the 50G).

Graph 3D | QPI | SolveSys
Find all posts by this user
Quote this message in a reply
03-27-2015, 09:57 PM
Post: #47
RE: [50G] Question
(03-27-2015 01:02 PM)rprosperi Wrote:  
(03-27-2015 12:44 PM)Tugdual Wrote:  Fresh question: when viewing a text expression, like a 30 digits number, is there a way to wrap text or the horizontal scrolling is the only option to read digits?

Depending on how long the string is, this may help:

With the string on the the stack, press [Up-Arrow] [NXT] [INFO] and the info box will show you up to 4 lines of 15 chars, plus the object's size and CRC.
Very convenient trick! Thanks for sharing this Bob.
Find all posts by this user
Quote this message in a reply
03-27-2015, 10:04 PM (This post was last modified: 03-27-2015 10:05 PM by Tugdual.)
Post: #48
RE: [50G] Question
(03-27-2015 03:02 PM)Han Wrote:  
(03-27-2015 12:44 PM)Tugdual Wrote:  Seems to be no polynomial regression. Reading the manual I found a small rpl application to address this. A bit surprised this is not in standard rom. There are s so many things... Engineers do polynomial regression on a regular base.

Perhaps this is due to the presence of the LSQ (least squares) command that can be used on an appropriate Vandermonde matrix (and VANDERMONDE is also a command available on the 50G).
Yes I saw that, it is also the example given in the user guide p18-62. I am just surprised this little rpl is not part of the ROM like other common regressions. Thanks.
Find all posts by this user
Quote this message in a reply
03-28-2015, 12:42 PM (This post was last modified: 03-28-2015 04:55 PM by Gilles.)
Post: #49
RE: [50G] Question
(03-24-2015 06:41 AM)Tugdual Wrote:  
(03-23-2015 12:39 PM)Gilles Wrote:  Another way is to use the SOLVE command. I will post the source if I found some time...
You tickle my curiosity. Do you mean something like building and solving a system of equations by developing LU=A?

yes...

EDIT : this v2 allows parameters in the input matrix

Code:
LU2
«
 DUP SIZE HEAD → d     @ Empile A. Ordre de la matrice : d
 « d DUP
  « → I J 
   « CASE 
     'I==J' THEN 1 END
     'I<J'  THEN 0 END
     "l" I + J + S~N 
     END
   » 
  » LCXM               @ Initialse L

  d DUP
  « → I J 
   « CASE 
    'I>J' THEN 0 END
     "u" I + J + S~N  
     END
   » 
  » LCXM              @ Initialise U
  
  → L U
  «
   L U * LVAR UNROT
   AXL SWAP AXL 2. «=» DOLIST
   «EVAL» DOSUBS AXL  SWAP SOLVE 
   IF DUP {} == THEN DROP "No LU factorisation" DOERR END
   HEAD DUP
   
   L SWAP SUBST        @ renvoie L
   SWAP U SWAP SUBST   @ renvoie U
  » 
 » 
»

The code is from HPUserEdit
Exact mode, and flag -86 set (or 256 ATTACH)
To understand how it works, the debug mode is perfect.

Code:
 Examples :

[[ 2 -1 0 ]
 [ -1 2 -1 ]
 [ 0 -1 2 ]]
->

[[ 1 0 0 ]
 [ '-1/2' 1 0 ]
 [ 0 '-2/3' 1 ]]

[[ 2 -1 0 ]
 [ 0 '3/2' -1 ]
 [ 0 0 '4/3' ]]

--------------

[[ 1 5 8 0 ]
 [ 0 2 6 9 ]
 [ 1 5 11 7 ]
 [ 0 2 6 13 ]]

->

[[ 1 0 0 0 ]
 [ 0 1 0 0 ]
 [ 1 0 1 0 ]
 [ 0 1 0 1 ]]

[[ 1 5 8 0 ]
 [ 0 2 6 9 ]
 [ 0 0 3 7 ]
 [ 0 0 0 4 ]]

-------------
[[ 4 0 1 ]
 [ 2 1 0 ]
 [ 2 2 3 ]]

->

[[ 1 0 0 ]
 [ '1/2' 1 0 ]
 [ '1/2' 2 1 ]]

[[ 4 0 1 ]
 [ 0 1 '-1/2' ]
 [ 0 0 '7/2' ]]

--------------
[[4  4  3  ]
[3  -10  8 ]
[1  -4  'z'  ]]

->

[[ 1 0 0 ]
 [ '3/4' 1 0 ]
 [ '1/4' '5/13' 1 ]]

[[ 4 4 3 ]
 [ 0 -13 '23/4' ]
 [ 0 0 '(26*z-77)/26' ]]
Find all posts by this user
Quote this message in a reply
03-29-2015, 09:59 PM
Post: #50
RE: [50G] Question
(03-28-2015 12:42 PM)Gilles Wrote:  
(03-24-2015 06:41 AM)Tugdual Wrote:  You tickle my curiosity. Do you mean something like building and solving a system of equations by developing LU=A?

yes...

EDIT : this v2 allows parameters in the input matrix

Code:
LU2
«
 DUP SIZE HEAD → d     @ Empile A. Ordre de la matrice : d
 « d DUP
  « → I J 
   « CASE 
     'I==J' THEN 1 END
     'I<J'  THEN 0 END
     "l" I + J + S~N 
     END
   » 
  » LCXM               @ Initialse L

  d DUP
  « → I J 
   « CASE 
    'I>J' THEN 0 END
     "u" I + J + S~N  
     END
   » 
  » LCXM              @ Initialise U
  
  → L U
  «
   L U * LVAR UNROT
   AXL SWAP AXL 2. «=» DOLIST
   «EVAL» DOSUBS AXL  SWAP SOLVE 
   IF DUP {} == THEN DROP "No LU factorisation" DOERR END
   HEAD DUP
   
   L SWAP SUBST        @ renvoie L
   SWAP U SWAP SUBST   @ renvoie U
  » 
 » 
»

The code is from HPUserEdit
Exact mode, and flag -86 set (or 256 ATTACH)
To understand how it works, the debug mode is perfect.

Hi Gilles, thanks for digging this up this from your archives. Very interesting piece of code, the matrices fabrication is pretty tricky showing interesting features of the 50g. Use of Solve is a bit expensive but this is very instructive.
Find all posts by this user
Quote this message in a reply
04-08-2015, 06:21 AM
Post: #51
RE: [50G] Question
After less than a month, batteries of the 50g are already drained. Pretty shocking life cycle... So now I'm considering the use of rechargeable batteries. Providing that the standard voltage of commom batteries is 1.2V instead of 1.5V for chemical and providing that the 50g alarm raises @ 4.8V it doesn't seem realistic to use rechargeable batteries. Does anybody have an experience about that?
Find all posts by this user
Quote this message in a reply
04-08-2015, 09:01 AM
Post: #52
RE: [50G] Question
(04-08-2015 06:21 AM)Tugdual Wrote:  After less than a month, batteries of the 50g are already drained. Pretty shocking life cycle... So now I'm considering the use of rechargeable batteries. Providing that the standard voltage of commom batteries is 1.2V instead of 1.5V for chemical and providing that the 50g alarm raises @ 4.8V it doesn't seem realistic to use rechargeable batteries. Does anybody have an experience about that?

Hi,

With regards to the 50G battery life & using rechargeables, you may find the following threads useful:

http://www.hpmuseum.org/cgi-sys/cgiwrap/...ead=112307

http://www.hpmuseum.org/cgi-sys/cgiwrap/...ead=255731

Best regards.


Visit this user's website Find all posts by this user
Quote this message in a reply
04-08-2015, 06:19 PM
Post: #53
RE: [50G] Question
(04-08-2015 06:21 AM)Tugdual Wrote:  After less than a month, batteries of the 50g are already drained. Pretty shocking life cycle... So now I'm considering the use of rechargeable batteries. Providing that the standard voltage of commom batteries is 1.2V instead of 1.5V for chemical and providing that the 50g alarm raises @ 4.8V it doesn't seem realistic to use rechargeable batteries. Does anybody have an experience about that?

Not all NiMH batteries are the same. One thing you may wish to do is buy some low self discharge types (Tenergy and Eneloop are two popular choices) as a normal NiMH cell, even when new, will lose a third or more of its charge in a month. I have Eneloops in my 50g and they perform well. When it's time to charge them I power the 50g over USB, so I don't discharge the backup battery too heavily.

You must be careful with NiMH batteries - if you discharge them too deeply you will damage them. They do not have onboard protection to prevent this like some Li-Ion types - your device will typically run them "dry" or at least until the batteries are unable to supply adequate voltage to power your device - and perhaps even after that.

Regarding the difference between rechargeable and alkaline type batteries, you'll find that alkalines soon drop from 1.5v to 1.2 volts or so when power is being drawn from them. If you have a multimeter, try it yourself and see.
Find all posts by this user
Quote this message in a reply
04-08-2015, 06:43 PM
Post: #54
RE: [50G] Question
(04-08-2015 06:21 AM)Tugdual Wrote:  After less than a month, batteries of the 50g are already drained. Pretty shocking life cycle... So now I'm considering the use of rechargeable batteries. Providing that the standard voltage of commom batteries is 1.2V instead of 1.5V for chemical and providing that the 50g alarm raises @ 4.8V it doesn't seem realistic to use rechargeable batteries. Does anybody have an experience about that?

Assuming that most of the time you're not using the calculator "on the road", it might be advisable to hook the HP50 to some charging device with an USB mini plug .

HTH Günter
Find all posts by this user
Quote this message in a reply
04-08-2015, 08:59 PM
Post: #55
RE: [50G] Question
All right so based on what seems to be a common practice, I purchased 4 x 850mA/h NiMH batteries and fully loaded they are about 1.39V each which is way above my expectations. I thought chemistry was imposing 1.2V as a maximum...
Now the other thing that worries me is: right now I'm recharging the bateries, meaning there is only the CR2032 to keep memory for the night. Is that a good practice or will it drain the CR2032? Should I have a second set of batteries just for the sake of never leaving the 50g empty?
Find all posts by this user
Quote this message in a reply
04-08-2015, 09:23 PM
Post: #56
RE: [50G] Question
(04-08-2015 08:59 PM)Tugdual Wrote:  All right so based on what seems to be a common practice, I purchased 4 x 850mA/h NiMH batteries and fully loaded they are about 1.39V each which is way above my expectations. I thought chemistry was imposing 1.2V as a maximum...
Now the other thing that worries me is: right now I'm recharging the bateries, meaning there is only the CR2032 to keep memory for the night. Is that a good practice or will it drain the CR2032? Should I have a second set of batteries just for the sake of never leaving the 50g empty?

Power it via the micro USB port.

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
04-09-2015, 03:01 AM
Post: #57
RE: [50G] Question
(04-08-2015 08:59 PM)Tugdual Wrote:  All right so based on what seems to be a common practice, I purchased 4 x 850mA/h NiMH batteries and fully loaded they are about 1.39V each which is way above my expectations. I thought chemistry was imposing 1.2V as a maximum...

NiMH will often measure close to 1.5v when immediately taken off charge and measured without load. Leave them for a day and they'll probably be closer to 1.35v depending on quality or if they're a slow self-discharge type like Eneloop.

However once under load in your calculator they'll tend to provide most of their useful energy at around 1.2v. The actual discharge voltage curve will depend on load and can often be downloaded from the site of whoever made the battery.
Find all posts by this user
Quote this message in a reply
04-21-2015, 06:45 PM
Post: #58
RE: [50G] Question
One more (very) naive question: what if I erase L226, L227 and or L229?
I was shocked to see I could do it ! Of course it is on EEPROM and in a sense it is good to have a choice to do whatever you want with your EEPROM but what is the alternative if you erase it?

Another thing I discovered is that any time the 50g is resetted (even hot reset) at least two essential things are lost: KEYTIME and Contrast/ So I created a program called Settings that sets back the Keytime to 500 and I will extend to whatever flag is lost (apparently none) but then I still need to set the contrast with ON+ or ON-.
1. is it possible to set contrast programmatically?
2. is there a better way to save/restore ones settings?
Find all posts by this user
Quote this message in a reply
04-21-2015, 08:32 PM (This post was last modified: 04-21-2015 08:38 PM by Voldemar.)
Post: #59
RE: [50G] Question
(04-21-2015 06:45 PM)Tugdual Wrote:  One more (very) naive question: what if I erase L226, L227 and or L229?
I was shocked to see I could do it ! Of course it is on EEPROM and in a sense it is good to have a choice to do whatever you want with your EEPROM but what is the alternative if you erase it?
You can erase L226, L227 and L229. In this way you will lose the equation libraries and periodic table. To restore these files, you will need to reflash the ROM. Or copy lib files on Your calculator if You have these files.
Find all posts by this user
Quote this message in a reply
04-21-2015, 08:37 PM (This post was last modified: 04-21-2015 09:22 PM by Tugdual.)
Post: #60
RE: [50G] Question
(04-21-2015 08:32 PM)Voldemar Wrote:  
(04-21-2015 06:45 PM)Tugdual Wrote:  One more (very) naive question: what if I erase L226, L227 and or L229?
I was shocked to see I could do it ! Of course it is on EEPROM and in a sense it is good to have a choice to do whatever you want with your EEPROM but what is the alternative if you erase it?
You can erase L226, L227 and L229. In this way you will lose the equation libraries and periodic table. To restore these files, you will need to reflash the ROM.

Thanks Voldemar.
To my second question, I found the beginning of an answer. After warm reset, the 50g is evaluating 'STARTUP'. So I created a small RPL ':2:Settings' that sets defaults things such as KEYTIME. Then I created 'STARTUP' in Home that evaluates ':2:Settings'.
Works quite nicely except for the contrast that I cannot tune manually yet.

Edit:Also found trhis: http://www.hpcalc.org/details.php?id=3384 but still doesn't address contrast.
Find all posts by this user
Quote this message in a reply
Post Reply 




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