Hi, I have been a satisfied user of the HP41C for best part of 20 years until mine died on me last december. A friend of mine was travelling to NYC at the time, so I asked him to get me a 50G to replace my defunct 41C. Apart from the inferior key action and double-bounce, I'm happy with it, but I have a couple of memory-related questions for seasoned users of the HP50G: Firstly, what happened to the LastX function, and secondly, how do you store a variable (i.e. the contents of the X register) part-way through a calculation? The functions STO (store) and RCL (recall) do not appear in the User Guide index. I use RPN mode exclusively. Can anybody please offer any useful assistance?
Regards,
Steve.
HP 50G - memory issues
|
|
« Next Oldest | Next Newest »
|
▼
09-11-2007, 10:59 AM
▼
09-11-2007, 11:19 AM
You might want to take a look at the Advanced Users Guide (the programming chapter). There are two ways to store and reuse variables. If you are using Local Vars it is like this: << -> A B << A B * 'A' STO A B >>] >> ( After the >>] your local; variables are wiped - don't use the ] it is just for marking) Same in a regular program. Anytime you'd like to store an object, use the tics to surround it as this prevents execution. << 'A' STO >> Will store an object into A. To later use A, just leave it unquoted. << A >> TW
09-11-2007, 02:13 PM
Quote:This thread provides a discussion of that particular issue. (All discussion related to the 49g+ applies to the 50g.) Quote:Not that I am any sort of expert on the 50g (far from it, actually), but to expound a little on the information that Tim provided, to store a value you need to specify a variable or register name in which the value is to be stored. So if you have the value 123.4 on the stack and you wish to save it somewhere, let's say a register named "A", press the key with the "tick" mark (fourth row, third key), then ALPHA, then the F1 key to enter the letter A. Then press the STO key. This will create the variable named "A", store the 123.4 in it, and remove the value 123.4 from the stack. If you want it back, press the VAR key, which will give you a list of the variables in the directory in which you happen to be. Since you just created the "A" variable, it should be the first one on the left. Pressing F1 will copy the value to the stack. The value will still be stored in "A". "A" will remain in your list of variables until you purge it, which you do by pressing the tick mark key, then the F1 key, then ENTER, then TOOL, then PURGE (soft key above F5). I find it handy to create a list of registers for routine use, called R1 through R6. If the register is already created, pressing the left-shift key followed by the function key under the soft label for the appropriate register will store the value presently on the stack in that register. You can control the order in which the variable names appear when you press the VAR key using the ORDER command. Quote:I assume you mean that you do not use the algebraic mode of the 50g, but it bears stating that the 50g and its progenitors actually utilize RPL vs. the classic RPN of your late 41C. The differences between RPN and RPL are, well, suffice it to say there are more than a few. They have been discussed here at the MoHPC Forum on numerous occasions. For a start on how the 50g works, search the Archives for posts by James M. Prange. The comp.sys.hp48 newsgroup is basically dedicated to discussion of the HP-48 and its descendants (including the 50g) and so would be a good place to go for answers.
Edited: 11 Sept 2007, 2:21 p.m. ▼
09-12-2007, 12:26 AM
Quote: That's a useful tip, Jeff. When first getting to grips with use of existing variables on the 48, I found it useful to visualise the variables as being "off to the left" of the calculator screen. Then:
Hopefully, this might help novices get it clear, at least until it becomes second nature. Best,
--- Les
09-11-2007, 08:12 PM
With the 50g there is almost always more than one way to do it.
For the double-bounce (the -> is right-shift 0) 256 ->KEYTIMETo make it permanent, make sure you are in home directory, then type: <<256 ->KEYTIME>>Variables:
To create: 'A' STOTo recall (soft menu key or type in variable name ATo update REG X -> A: Left Shift Soft Menu A LASTX: Left Shift HIST, AKA CMD, will pop up the last 4 LASTX Other tips:
Get 50g emulator: http://www.debug4x.com/If you have a lot of 41C code you can run it on the 50G: http://www.hrastprogrammer.com ▼
09-11-2007, 08:41 PM
Egan, I was under the impression the KEYTIME instruction did what you said in early ROM version but has since become a NO-OP instruction. Here's the text from the 49g+ AUR version 1.1 published 2006/3/20 regarding the KEYTIME instruction: "This command is provided for compatibility with earlier calculators, but does nothing on the hp49g+/hp48gII." Given that the 49g+ and 50g share the same ROM, does KEYTIME really do anything on the 50g? Was the instruction resurrected in ROM v.92 which was released after this AUR was published? Regards, Dan ▼
09-11-2007, 09:51 PM
There are many references on comp.sys.hp48 about KEYTIME solving 50g keyboard problems. It solved my missing keystrokes.
09-11-2007, 10:11 PM
Quote: The KEYTIME instructions were restored for the hp49g+ (and the later HP50G) in late 2005 with ROM version 2.05 and later. Unfortunately, even though the hp49g+ AUR 1.1 has been updated as late as March 20, 2006, the KEYTIME-> and ->KEYTIME descriptions on page 3-89 have not been corrected. Instead, the correct information is buried way back on page H-8, as a sort of addendum.
Regards,
09-11-2007, 10:18 PM
The 49g+ AUR is correct for early 49g+ ROM revisions, but incorrect for recent ROM revisions The KEYTIME\-> and \->KEYTIME commands were indeed "resurrected" in the 49g+, although I don't recall with which ROM revision. I suppose that the ROM revision could be found with a search of the comp.sys.hp48 usenet group. The ROMs intended for the 49G have working keytime commands, but that model has little, if any, problem with doubled keystrokes due to key bounce, and having the keytime value set too high can cause missed keystrokes. The default value (1365) seems too high for most users. When the 49g+ was first released, its ROM didn't have working keytime commands; after all, they seemed to be more trouble than they were worth in the 49G. But it soon became all too obvious that the keyboard on the 49g+ has various problems, sometimes including missed or doubled keystrokes, so at some ROM revision, the keytime commands were made active again. The 50g has active keytime commands, unless it's been flashed it with an early 49g+ ROM. The keytime value is the number of ticks (1 second = 8192 ticks) that a repeated press of the same key will be ignored for, with a range of 0 through 4096. KEYTIME\-> returns the current keytime value as a "real number". \->KEYTIME takes a real or zint (exact integer) for an argument, and sets a new keytime value. \->KEYTIME rounds fractional arguments to integer values, treats negative arguments as 0, and arguments over 4096 as 4096. With ROM version G revision 2.10-7 (and, I believe, other ROMs intended for the 49g+ or 50g that have active keytime commands), the default keytime value is 1138 (ticks), or somewhat over 1/8 second, which seems rather high. I recommend setting the keytime much lower, perhaps 256 (1/32 second), and actually, my 50g seems to work just fine with it set to 0.
Regards, ▼
09-12-2007, 07:12 AM
James, Thx. a lot! Using 0 ->KEYTIME instead of 300 solved the long lasting problem of scrolling through e.g. CAS CMDS. It now works w/o "hickups"! CAS 4.20, ROM 2.09, HP49G+ CNA51505618 Best regards, Peter A. Gebhardt
Edited: 14 Sept 2007, 5:51 p.m.
09-12-2007, 09:37 PM
Thank you James & Mike for the detailed KEYTIME info. I experimented with times from 128 to 4096 and it is obvious to me now that it is active - especially at 4096 where the half second wait is very noticeable. -Dan |