In the HP49G, some keys act differently when you *hold down* a shift
while pressing the key, as opposed to pressing and releasing the shift
and *then* pressing the key. Example: pressing right-shift *and holding
it down* while pressing the 9 key gives a different TIME menu than
pressintg right-shift *and releasing it* and then pressing 9.
These "shift-and-hold" key definitions have been discussed in various
fashion in various places at various times by various people, but
nowhere was there a complete list of them, nor any mechanism to find any
new ones that might be introduced in a new ROM version, nor old ones
that had been hitherto undiscovered.
Until now!
KEYHUNT scans your ROM for *all* existing shift-and-hold key
definitions. They are placed on the stack, and are tagged with their
keycode number (rc.p) for easy identification. If a particular
definition is cryptic, the built-in hacking tools and/or MASD tools can
decypher it.
As of ROM version B-1.17-7, there are 20 shift-and-hold keys defined,
and KEYHUNT takes approximately 20 seconds to run. Not bad for a User
RPL program.
The shift-and-hold keys in ROM version B-1.17-7 are:
11.2 = Define Plotter Functions
12.2 = Set Plotter Window
13.2 = Graph
14.2 = Plot Setup
15.2 = Table Setup
16.2 = Generate Table
23.2 = Real/Complex Toggle
31.2 = HOME
33.2 = Last Menu
35.2 = ??? different from regular 35.2 ???
36.3 = SERVER
43.3 = ``
74.3 = Time tools (menu 94)
104.3 = . or ; depending on flag -51
105.3 = Exact/Approx Toggle
43.6 = Omega
84.6 = Degree Symbol
93.6 = Upside-down Exclamation Point
94.6 = Upside-down Question
104.6 = . or ; depending on flag -51
'KEYHUNT' (be sure to attach library 256 before typing this in)
@ FOR HP49G ONLY!!! Do NOT use on HP48!
<< 162 166
FOR m 0 50
FOR n m n 51 + XLIB~ #7E99h SYSEVAL DROP
IF DUP m n XLIB~ SAME
THEN DROP
ELSE n 1 + R~SB m 160 - R~SB
#25EA9h SYSEVAL DUP 1 DISP ->TAG
END
NEXT
NEXT
>>
BYTES: #4882h 190.5
Disclaimer: This program uses SYSEVALS and such-like. Type it VERY
carefully. Use at own risk.
-Joe-
Sent via Deja.com http://www.deja.com/
Before you buy.
Wow, I haven't been around here for _years_, and what do I see when I come
back? Joe Horn is still punching out new, innovative HP code. You rock, Joe!
:)
--
White Flame (aka David Holz)
http://fly.to/theflame
GOZER
Are you a god?
(PETER nods "yes" to RAY)
RAY
No.
GOZER
(reaching its arms back into the temple)
Then... die!
(Fires lightning at the GXbusters. They sail across the temple, clinging
to the edge of the building.)
WINSTON
Ray, when someone asks you if you're a god, you say, "Yes!"
(RAY nods)
PETER
All right. This chick is toast!
(they march up to the temple)
Got your stick?
PETER, RAY, EGON, WINSTON
(unhooking proton guns)
Holding!
PETER
Heat 'em up!
PETER, RAY, EGON, WINSTON
(charging guns)
Smoking!
PETER
Make 'em hard!
PETER, RAY, EGON, WINSTON
Ready!
PETER
Let's show this prehistoric bitch how we do things downtown. Strike!
(They blast GOZER. It yowls and flips across the temple.)
Nimble little minx, isn't she? Aim for the flat top!
(They blast again. GOZER vanishes.)
Well! That wasn't so hard.
RAY
We neutralized it! You know what that means? A complete particle
reversal!
WINSTON
Hey, we have the tools, we have the talent!
PETER
It's Miller time!
EGON
(looking at PKE meter)
Ray? This looks extraordinarily bad.
(Earthquake at the temple. Rocks fall.)
Look out!
GOZER
Subcreatures! Gozer the Gherkin, Gozer the Destructor, Volguus
Zildrohar, the Traveler, has come! Choose and perish!
RAY
What do you mean, choose? We don't understand!
GOZER
Choose! Choose the form of the Destructor!
PETER
Whoa! I get it, I get it. Very cute! Whatever we think of - if we think
of J. Edgar Hoover, J. Edgar Hoover will appear and destroy us, okay? So
empty your heads. Empty your heads. Don't think of anything. We've only
got one shot at this.
GOZER
The choice is made! The Traveler has come!
PETER
Whoa! Whoa! Nobody choosed anything! Did you choose anything?
EGON
You kidding? My choose box hasn't even rendered yet.
PETER
Did you?
WINSTON
I'm still doing a garbage collect!
PETER
I didn't choose anything!
(PETER, EGON and WINSTON stare at RAY)
RAY
(trembling)
I couldn't help it. It just popped in there!
PETER
What? What just popped in there?
RAY
I - I tried to think -
(crashing and screaming from below)
EGON
Look!
RAY
No! It can't be!
WINSTON
What is it?
RAY
It can't be!
WINSTON
What did you do, Ray?
RAY
It can't be!
WINSTON
Aw, shit!
RAY
(solemnly)
It's an HP calculator!
(Huge HP49G lumbers through the street as people run and scream in
terror.)
PETER
Well, there's something you don't see every day. Hardly even *looks*
like an HP!
RAY
I tried to think of the most harmless thing. Something I loved from my
childhood. Something that could never, ever possibly destroy us. A
Hewlett Packard calculator!
PETER
Nice thinking, Ray.
RAY
We used to teach the girls Reverse Polish Notation at Camp Waconda!
PETER
Ray has gone bye-bye, Egon. What have you got left?
EGON
Sorry, Venkman. I'm terrified beyond the capacity for Rational thought.
WINSTON
Quick! Toggle into Irrational mode! Press left-shift and TOOL!
(HP49G crashes into building. It begins to crumble.)
EGON
It didn't work! I'm still in Rational Mode!
PETER
No no no! HOLD the shift key DOWN and THEN press the ...
(Temple collapses from the force of the HP49G's indestructible and
unremovable translucent iMac cover. Entire building crumbles in a
cloud of dust. HP49G turns southwest and heads off towards Texas
Instruments.)
The End
Charles Perry P.E.
<<snipped an absolutely hilarious "movie script">>
God bless you, Joe !
> BYTES: #4882h 190.5
>
> Disclaimer: This program uses SYSEVALS and such-like. Type it VERY
> carefully. Use at own risk.
>
> -Joe-
>
>
JKH> KEYHUNT: An HP49 Shift-And-Hold Key Definition Hunter and
JKH> Gatherer by Joseph K. Horn, 2/22/2000 --
[...]
JKH> KEYHUNT scans your ROM for *all* existing shift-and-hold key
JKH> definitions. They are placed on the stack, and are tagged with
JKH> their keycode number (rc.p) for easy identification. If a
JKH> particular definition is cryptic, the built-in hacking tools
JKH> and/or MASD tools can decypher it.
I would like to learn this decyphering stuff - so please exlain how to
use the 256 Menu(?) to decipher the cryptic stuff your program
dumps on the stack. Can you give 2 or 3 examples? Thanks!
- Carsten
Joseph K. Horn <joe...@jps.net> wrote in message
news:890ia7$lp0$1...@nnrp1.deja.com...
> Hmmm... possibilities for a movie script here... -jkh-
<SNIP>
> PETER
> No no no! HOLD the shift key DOWN and THEN press the ...
At this point burst at laughter and couln't stop it at all.
My friendly neighbors called an ambulance and I'm writing
these lines from a mental rest-house (or whatever these are
called nowadays).
I was one month unemployed and in a deep depression
which is now totally cured, but now I must use this small
red ones...hmmm.says "tranqualizers" or something like
that - to just stop me going hysterous again.
Thanx Joe
;-)
With Best Regards, Veli-Pekka
_________________________________________________________
Veli-Pekka Nousiainen ; e-mail= vp.nou...@eiffel.fi
Sokinsuontie 3 A 1, FIN-02760 Espoo, Finland
TEL, WORK= +358 (9) 859 2025 ; (WORK2= +358 (3) 4728 300)
Eiffel Oy ; URL= http://www.eiffel.fi
_________________________________________________________
;-) We R TiBORG - Res. is Futile - Ur 49 ~ Assimilated !
PS: Do you like "Love Bytes" at all?
VPN
> (Temple collapses from the force of the HP49G's indestructible and
> unremovable translucent iMac cover. Entire building crumbles in a
> cloud of dust. HP49G turns southwest and heads off towards Texas
> Instruments.)
>
> The End
>
>
>> KEYHUNT scans your ROM for *all* existing shift-and-hold key
>> definitions. They are placed on the stack, and are tagged with
>> their keycode number (rc.p) for easy identification. If a
>> particular definition is cryptic, the built-in hacking tools
>> and/or MASD tools can decypher it.
>
> I would like to learn this decyphering stuff - so please exlain how to
> use the 256 Menu(?) to decipher the cryptic stuff your program
> dumps on the stack. Can you give 2 or 3 examples?
Surely! (May I call you Surely?)
EXAMPLE 1, for those *without* MASD/extable installed.
Run KEYHUNT and drop the first 5 items or so, until you get key 105.3
down to level 1. Then press ->S2 in menu 256.06 and you'll get this:
"TAG 105.3
::
PTR 275C6
# 69
PTR 03188
PTR 36F79
PTR 26044
PTR 2614D
;
@"
This is the definition of key 105.3 when the shift key is held down.
You can use the Entry Point Table to look up these PTRs. It's a little
tedious, but doable.
EXAMPLE 2, for those *with* MASD/extable installed:
Same method as above, but look at the much nicer output:
"TAG 105.3
::
TakeOver
BINT105
DUP
SysITE
ClrSysFlag
SetSysFlag
;
@"
Fast, easy, and fun. Enjoy!
-Joe-
So, Mighty Joe -- when are you gonna tell us the secret to creating our own
definitions. We *know* you know.. ;)
> So, Mighty Joe -- when are you gonna tell us the secret to creating
> our own definitions. We *know* you know.. ;)
It's easy in theory: to "modify" a built-in library, all you have to do
is copy it into RAM and modify it there. Libraries in RAM take
precedence over the ROM ones (yes? I think?). So, for example, to
redefine a left-shift-and-hold key, just extract library 162 (it's only
about 1.2K bytes), modify the corresponding entry (numbers 0-50 are the
regular shifted keys and 51-102 are the shift-and-hold keys, in strict
keyboard order), and install it into a port. That *should* work...
unless HP made the ROM libraries override RAM libraries with the same ID
number, in which case we are truly hosed.
So, Keith... ya wanna be the first to try it, and find out?
So you knew how ;-)
But ACO should give us an extende ASN
'TEST' 74.2 ASN here you can have an invisible 0 appended
'TEXT' 74.21 ASN here we "just" append 1 to denote HOLD
The easy stuff I leave to ACO
;-)
Regards, Veli-Pekka
_________________________________________________________
Veli-Pekka Nousiainen ; e-mail= vp.nou...@eiffel.fi
Sokinsuontie 3 A 1, FIN-02760 Espoo, Finland
TEL, WORK= +358 (9) 859 2025 ; (WORK2= +358 (3) 4728 300)
Eiffel Oy ; URL= http://www.eiffel.fi
_________________________________________________________
HP25,HP28S,HP39G,HP41CX,HP48SX,HP48GX,HP49G,HP71B,HP75C
http://www.hpmuseum.org/journals/71curve.htm
Vote for the "82484A Curve Fit for HP71B" => HP49G !!!
Joseph K. Horn <joe...@jps.net> wrote in message
news:892uv1$dej$1...@nnrp1.deja.com...
first a bit of code:
ST=0 15
LA 00020
LC 00006 (We want to detect either RS or LS, the codes might be
different on a 49)
OUT=C
GOSBVL =CINRTN
C&A.A
?C#0.A
GOYES true (The shift key is held)
ST=1
GOVLNG =PushFLoop
*true
ST=1 15
GOVLNG =PushTLoop
This returns TRUE if you hold a Shift key or False otherwise.
Then you can use some RPL like this
::
The CODE goes here
ITE
:: the program you want to run when Shift is held;
:: the program you want to run when shift is not held
or #key_number THREE (for RS)(or TWO for LS) Key>StdKeyOb EVAL;
Then you assign this program to the shifted key and here you go
--
Arnaud AMIEL
------------
http://www.chez.com/amiel
I'd be happy to, if I knew how to extract 162. Could be fun (and perhaps
less messy than Amiel's method.
> It's easy in theory: to "modify" a built-in library, all you have to do
> is copy it into RAM and modify it there. Libraries in RAM take
> precedence over the ROM ones (yes? I think?). So, for example, to
> redefine a left-shift-and-hold key, just extract library 162 (it's only
Can someone remind me how to extract a library? (And in which manual
I should be looking?)
--
Nate Eldredge
neld...@hmc.edu
> Heu, too bad, the ROM libs have priority over the user libs.
> The only way to do it would be to install the user lib, and then override
> the ROMPTAB with your information... This should not be too difficult.
For someone intimate with such things. I haven't touched ASM or internals
at all (well, except with manually doing a HYDE-like operation, using
instructions).
So how would I go about doing this, or would y'all wanna put in into ROM
(hint)?
%%HP: T(3)A(R)F(.);
"{
TAG 11.2
::
PTR 275DA
FPTR 3 9D
;
TAG 12.2
::
PTR 275DA
FPTR 4 57
;
TAG 13.2
::
PTR 275DA
FALSE
FALSE
FPTR 2 1F
;
TAG 14.2
::
PTR 275DA
FPTR 4 54
;
TAG 15.2
::
PTR 275DA
FPTR 4 53
;
TAG 16.2
::
PTR 275DA
FPTR 2 62
;
TAG 23.2
::
TakeOver
BINT103
DUP
SysITE
ClrSysFlag
SetSysFlag
;
TAG 31.2
xHOME
TAG 33.2
::
MenuMaker
ROMPTR A9 0
PTR 1BC70
;
TAG 35.2
::
PTR 2BF9E
PTR 2F3AB
CMD_PAGED
SetDAsNoCh
;
TAG 36.3
::
TakeOver
EditLExists?
case
ROMPTR A3 F
xSERVER
;
TAG 43.3
::
PTR 2C002
ROMPTR A3 12
PTR 1BCAC
\\"``\\"
PTR 1BCD9
PTR 2EF9C
;
TAG 74.3
::
MenuMaker
ROMPTR A9 5E
PTR 1BC70
;
TAG 104.3
::
TakeOver
BINT51
SysITE
CHR_.
CHR_;
EchoChrKey
;
TAG 105.3
::
TakeOver
BINT105
DUP
SysITE
ClrSysFlag
SetSysFlag
;
TAG 43.6
CHR \\\\9D
TAG 84.6
CHR \\\\B0
TAG 93.6
CHR \\\\A1
TAG 94.6
CHR \\\\BF
TAG 104.6
ROMPTR A3 64
}
@"
Heu, too bad, the ROM libs have priority over the user libs.
The only way to do it would be to install the user lib, and then override
the ROMPTAB with your information... This should not be too difficult.
regards, Cyrille.
"Joseph K. Horn" <joe...@jps.net> wrote in message
news:892uv1$dej$1...@nnrp1.deja.com...
> Keith J. Farmer wrote:
>
> > So, Mighty Joe -- when are you gonna tell us the secret to creating
> > our own definitions. We *know* you know.. ;)
>
> It's easy in theory: to "modify" a built-in library, all you have to do
> is copy it into RAM and modify it there. Libraries in RAM take
> precedence over the ROM ones (yes? I think?). So, for example, to
> redefine a left-shift-and-hold key, just extract library 162 (it's only
> about 1.2K bytes), modify the corresponding entry (numbers 0-50 are the
> regular shifted keys and 51-102 are the shift-and-hold keys, in strict
> keyboard order), and install it into a port. That *should* work...
> unless HP made the ROM libraries override RAM libraries with the same ID
> number, in which case we are truly hosed.
>
> So, Keith... ya wanna be the first to try it, and find out?
>
> -Joe-