From: Alain on
Sorry for the delay for my answer...
It must be me misinterpreting the results, due to my lack oef
experience/knowledge.
When I try the example of nosy.txt (d/L from HPCALC.ORG) I don't get the
exact same results, but I don't know on which calc the example was tested
for the manual.
It says to type {!} then launch nosy and you get:
xFACT 3ABAF
::
CK1&Dispatch
BINT1
%FACT
BINT10
PTR 2EF44
;

so far so good, it's the same, then go to PTR 2EF44 and you get:

2EF44->FPTR 1 EB=1:6FA67
::
cknumdsptch1
FPTR 6 575=^xSYMFACT
xFACT
;

but I get this instead (the calc is set to hexadecimal too)

2EF44->FPTR 1 EB=1:73F50
::
cknumdsptch1
FPTR 6 575=^xSYMFACT
xFACT
;

Then go to ^xSYMFACT and get this:

^xSYMFACT FTPR 6 575=6:7BD2B
::
PTR 67430
#0=case
PTR 7BD5D
PTR 67532<-^metainftype
#1=
NOTcase
PTR 67477<-^metaundef
PTR 675BA<-^plusinf

I get this:

^xSYMFACT FTPR 6 575=6:7C415
::
PTR 6792C
#0=case
PTR 7C447
PTR 67A2E<-^metainftype
#1=
NOTcase
PTR 67973<-^metaundef
PTR 67AB6<-^plusinf

then press enter on PTR 7BD5D (7C447 for me) and get this:

6:7BD5D
::
OVER
PTR 54BF9<-^TYPEZ?
NOTcase
PTR 7BF71
DROP
PTR 4F621<-^DupZIsNeg?
casedrop
PTR 67569<-^unsigendinf

Again all the addresses are different for me. Is that normal? I suppose
so...

Alain
"Alain" <f4rpw(a)free.fr> a �crit dans le message de news:
45dd88bc$0$19197$426a74cc(a)news.free.fr...
> Sorry for the delay,
>
> If i follow the examples in nosy.txt, the addresses on top of screen are
> different for {!} for example, and in all subsequent screens also. Is that
> normal? I think it's me misinterpreting due to my lack of
> knowledge/experience...
>
> Alain
>
> "John H Meyers" <jhmeyers(a)nomail.invalid> a �crit dans le message de news:
> op.tn2104k6nn735j(a)w2kjhm.ia.mum.edu...
>> On Tue, 20 Feb 2007 04:13:09 -0600, Alain wrote:
>>
>>> I played a little with Nosy on the calc, and noticed that the function
>>> addresses are not the same in the 49G+ and the 50G, though those calcs
>>> are
>>> supposed to be the same, only the 50G got relooked and a better
>>> (hopefully)
>>> keyboard. Is that normal? I assume it is, because I have updated the 50G
>>> firmware with the latest version which must be different from the latest
>>> 49G+ version.
>>
>> Since 49G+ and 50G (and 48Gii) use the exact same ROM series,
>> differences should be due only to different ROM versions,
>> which thus far are interchangeable between calcs.
>>
>> What gives you the impression of different function addresses
>> between 49G+ and 50G?
>>
>> [r->] [OFF]
>
>


From: John H Meyers on
On Thu, 22 Feb 2007 06:25:25 -0600, Alain wrote:

> When I try the example of nosy.txt (d/L from www.hpcalc.org)
> I don't get the exact same results...

That "nosy.txt" was as of March 2004 [if from Nosy41.zip],
so it's for an older ROM; I thought that you were
comparing current HP49G+ ROM with current HP50G ROM
(or running Nosy on each calc), in which case
the results should not be different.

> It says to type {!} then launch nosy and you get...
> [comparing the old document "nosy.txt" with current ROM]

> 2EF44->FPTR 1 EB=1:6FA67
> [vs.]
> 2EF44->FPTR 1 EB=1:73F50

> PTR 67532<-^metainftype
> [vs.]
> PTR 67A2E<-^metainftype
> [Etc.]

"Supported" symbols in ROM that refer to direct addresses (PTR nnnnn)
will not change; symbols preceded by ~ or ^ mean that
the program being inspected contains ROMPTR or FPTR objects,
and what doesn't change about those are the two numbers
following ROMPTR or FPTR -- when FPTR numbers, for example,
are dynamically translated into addresses in various "flash banks,"
those addresses (which are never directly referred to
in program code, but are looked up in tables) may vary.

In FPTR 1 EB=1:6FA67 for example, the "1:6FA67" refers
to an offset in its particular flash bank that has been
looked up from a table in that same flash bank;
however, the program itself contained
the same object FPTR 1 EB in each case.

It's like when the river floods -- my house
floats down-river a bit, but it still has the same house number :)

Thanks for so kindly illustrating what you observed;
hope this explains how references to the entry points
of all the "supported" ROM functions remain stable, even though
addresses looked up indirectly during execution may change.

[r->] [OFF]
From: Albert Graef on
Alain wrote:
> It must be me misinterpreting the results, due to my lack oef
> experience/knowledge.

John already explained very lucidly what's up with those PTRs and FPTRs.
I only wanted to add that if you want to know which addresses are safe
to use (and their symbolic names), you can take a look at extable (or
the SUPROM file included with Debug4x). Also recommended: Eduardo
Kalinowski's and Carsten Dominik's excellent SysRPL book:
http://www.hpcalc.org/details.php?id=5142

--
Dr. Albert Gr"af
Dept. of Music-Informatics, University of Mainz, Germany
Email: Dr.Graef(a)t-online.de, ag(a)muwiinfa.geschichte.uni-mainz.de
WWW: http://www.musikinformatik.uni-mainz.de/ag
From: Alain on
Thanks for your answers. Though I'm not ready to do SysRPL just now (still
learning UserRPL first), I get the idea allright. These are the addresses
looked up in the table. For "unsupported" ROM function, you have to enter
the correct address yourself, or define it yourself when coding.

Thanks a lot.
Alain

"John H Meyers" <jhmeyers(a)nomail.invalid> a �crit dans le message de news:
op.tn5l88qsnn735j(a)w2kjhm.ia.mum.edu...
On Thu, 22 Feb 2007 06:25:25 -0600, Alain wrote:

> When I try the example of nosy.txt (d/L from www.hpcalc.org)
> I don't get the exact same results...

That "nosy.txt" was as of March 2004 [if from Nosy41.zip],
so it's for an older ROM; I thought that you were
comparing current HP49G+ ROM with current HP50G ROM
(or running Nosy on each calc), in which case
the results should not be different.

> It says to type {!} then launch nosy and you get...
> [comparing the old document "nosy.txt" with current ROM]

> 2EF44->FPTR 1 EB=1:6FA67
> [vs.]
> 2EF44->FPTR 1 EB=1:73F50

> PTR 67532<-^metainftype
> [vs.]
> PTR 67A2E<-^metainftype
> [Etc.]

"Supported" symbols in ROM that refer to direct addresses (PTR nnnnn)
will not change; symbols preceded by ~ or ^ mean that
the program being inspected contains ROMPTR or FPTR objects,
and what doesn't change about those are the two numbers
following ROMPTR or FPTR -- when FPTR numbers, for example,
are dynamically translated into addresses in various "flash banks,"
those addresses (which are never directly referred to
in program code, but are looked up in tables) may vary.

In FPTR 1 EB=1:6FA67 for example, the "1:6FA67" refers
to an offset in its particular flash bank that has been
looked up from a table in that same flash bank;
however, the program itself contained
the same object FPTR 1 EB in each case.

It's like when the river floods -- my house
floats down-river a bit, but it still has the same house number :)

Thanks for so kindly illustrating what you observed;
hope this explains how references to the entry points
of all the "supported" ROM functions remain stable, even though
addresses looked up indirectly during execution may change.

[r->] [OFF]


From: John H Meyers on
On Fri, 23 Feb 2007 06:52:26 -0600, Alain wrote:

> For "unsupported" ROM function, you have to enter
> the correct address yourself, or define it yourself when coding.

If you use any non-stable values, then of course
you may end up with programs dependent upon
one particular ROM version,
which one would want to avoid for public distribution.

So many functions are currently "supported," however,
that hardly anything requires resorting to this.

Note that even the original HP Equation Library's
version dependencies were somehow removed by JYA,
so that the current library apparently works
with every ROM since 1.19-6 (which was for 49G!)

[r->] [OFF]