From: Gurveer on
>> The HP49G/50G series internal library contains more functions,
>> and renumbered some of the original HP48G internal functions,
>> hence you may need a "library function browser" (easy to make)
>> to discover the correspondence
>> between the old function numbers and the new ones :)

As John said exactly one year ago, what is a library function browser?

Regards,

Gurveer
From: Andreas Möller on
Hello,

> similar documentation about the ROMPTRs associated with the BRbrowse
BRbrowse is documented in "Programming in SYS-RPL" IIRC.

Regards,
Andreas
http://www.software49g.gmxhome.de
From: Gurveer on
On Feb 17, 12:14 am, Andreas Möller <andreas_moellerNOS...(a)gmx.de>
wrote:
> Hello,
>
> > similar documentation about the ROMPTRs associated with the BRbrowse
>
> BRbrowse is documented in "Programming in SYS-RPL" IIRC.
>
> Regards,
> Andreashttp://www.software49g.gmxhome.de

Yeah, I looked into that manual. He describes the commands used but
not exactly which PTR corresponds to which ROMPTR of the library 224.
Anyways, I looked at your code and worked around the same way as John
said to find the corresponding ROM pointer and I think ultimately I
figured it out and this is what I believe it is:


::
CLCD10
UnLockAlpha
' ROMPTR E0 15 ROMPTR@ DROP FPTR 3 0
FPTR 3 A5
FPTR 3 A6
ClrDAsOK
' ::
' ROMPTR E0 12 ROMPTR@ DROP FPTR 3 0
;
' ::
' ROMPTR E0 26 ROMPTR@ DROP FPTR 3 0
;
TrueTrue
5ROLL
ONEFALSE'
LAM 'BR20
'ERRJMP
' POLSetUI FPTR 3 0
' POLKeyUI FPTR 3 0
ABND
ClrDAsOK
;
@


Looked into Nosy and found that it's using Flash Page 3 as ROMPTR2
~BRbrowse is essentially FPTR 3 4.

Anyways, thanks a lot guys. It really helped me solve a big problem(at
least big for me:-)

Regards,

Gurveer
From: Andreas Möller on
Hello,

you might be able to speed up your program at the expense of your
program size by ripping the corresponding FLASHPTR/ROMPTR out of the
ROM instead of recalling it from the ROM everytime it is called/
executed.

For example:
' ::
' ROMPTR E0 12 ROMPTR@ DROP FPTR 3 0
;
This is really slow because a secondary is placed on the stack which
is used by the POL, now everytime the POL executes this the ROMPTR is
copied to TEMPOB and executed from there with the EVAL from Flash Bank
3.

Your code would run a lot faster if you would use something like this:
' ::
Code from ROMPTR E0 12
FPTR 3 0
;

However, it might be a little bit tricky to write the code that
creates the above program at runtime and the drawback is that your
program will most likely be bigger and will also need more RAM to run.

Also note that you can extract the code of a ROMPTR/FLASHPTR with NOSY
by pressing the [STO] button and also Keyman (from Wolfgang
Rautenberg) contains an option/code to extract a FLASHPTR. I use a
standalone code from Keyman in some of my programs to extract the
content of FLASHPTRs at runtime, modify them and then run my modified
program. The delay at start up is almost of no consequence compared to
the gain of speed at runtime of the POL.

Hope my explanations makes sense to you.

Regards,
Andreas
http://www.software49g.gmxhome.de




From: Gurveer on
On Feb 17, 2:49 pm, Andreas Möller <andreas_moellerNOS...(a)gmx.de>
wrote:
> Hello,
>
> you might be able to speed up your program at the expense of your
> program size by ripping the corresponding FLASHPTR/ROMPTR out of the
> ROM instead of recalling it from the ROM everytime it is called/
> executed.
>
> For example:
>   ' ::
>     ' ROMPTR E0 12  ROMPTR@ DROP FPTR 3 0
>   ;
> This is really slow because a secondary is placed on the stack which
> is used by the POL, now everytime the POL executes this the ROMPTR is
> copied to TEMPOB and executed from there with the EVAL from Flash Bank
> 3.
>
> Your code would run a lot faster if you would use something like this:
> ' ::
>     Code from ROMPTR E0 12
>     FPTR 3 0
>   ;
>
> However, it might be a little bit tricky to write the code that
> creates the above program at runtime and the drawback is that your
> program will most likely be bigger and will also need more RAM to run.
>
> Also note that you can extract the code of a ROMPTR/FLASHPTR with NOSY
> by pressing the [STO] button and also Keyman (from Wolfgang
> Rautenberg) contains an option/code to extract a FLASHPTR. I use a
> standalone code from Keyman in some of my programs to extract the
> content of FLASHPTRs at runtime, modify them and then run my modified
> program. The delay at start up is almost of no consequence compared to
> the gain of speed at runtime of the POL.
>
> Hope my explanations makes sense to you.
>
> Regards,
> Andreashttp://www.software49g.gmxhome.de

I understand what you said but just a basic question which I kept
trying figuring out. When you say that FLASHPTR is recalled in the
runtime, isn't this what was happening before as ROMPTR@ was recalling
the ROMPTR? I'm kinda an amateur at this stuff and I try to get it.
So, what about that code, is this what you meant:

Instead of

' ::
' ROMPTR E0 12 ROMPTR@ DROP FPTR 3 0
;


Should I have

::
' ::
DA3OK?
?SKIP
::
DispMenu
SetDA3Valid
;
FPTR 3 0
;
;

for all those ROMPTRs which are evaluated at the Flash Page 3 in my
code?

Because what I understood from your code was that ROMPTR@ was
recalling the ROMPTR in the runtime.

Or is the speed has to do something with the FPTR?

Thanks for the Nosy trick BTW, I used the COPY shortcut earlier.

And yeah, I should better look at Keyman now, had heard about it but
never used it. Looks like a good tool to speed up programming...:-)

Regards,

Gurveer