1) change a menu while a program is running. I want it to tell the
functions associated with active keys (top row). The "hard way" is to
park a graphics object that looks like the menu at the bottom of the
lcd. If I say 'menu' TMENU, the menu will change after the program
terminates.
2) Highlight text that's displayed. I'm putting up text via (for
example)
"Sample Text"
1
DISP.
How do I highlight it? Again, the hard way is to isolate that part of
the graphics object and reverse the pixels.
3) Use the 12th line of the display via commands given in item (2),
above. If I use 12 DISP, nothing happens - the bottom line remains
blank.
> I need to know how to
> 1) change a menu while a program is running.
> 2) Highlight text that's displayed.
> I'm putting up text via (for example) "Sample Text"
> 1 DISP. How do I highlight it?
Did you see the replies already posted?
http://groups.google.com/group/comp.sys.hp48/browse_thread/thread/fd0e81e04b188506
> 3) Use the 12th line of the display via commands
> given in item (2), above. If I use 12 DISP, nothing happens -
> the bottom line remains blank.
Did you see the reply about this?
http://groups.google.com/group/comp.sys.hp48/msg/f929d22d8d36ea8b
[r->] [OFF]
No, that thread somehow was dropped from my listing. I didn't see
it.
In response to a question from that thread, what I see (from bottom
up) is the menu, a blank line (12th from the top), then the 11 other
lines.
So long as a program is actually *running*
(not waiting for user input),
there is no opportunity for the user
to interact with the calculator.
Aside from commands which do immediate,
direct writing to the display (e.g. CLLCD, DISP),
the display remains exactly as it was when the user
last directly interacted with the system
(in particular, the stack is *not* continuously displayed,
so one does not see the program operate upon the stack
in "real-time").
When any program exits or halts, then the "SysDisplay"
internal function is automatically invoked; this function
re-draws every element of the screen (including the menu)
for any area which has not meanwhile been marked as "frozen."
If the user program waits for a key to be pressed using WAIT,
then using the argument -1 WAIT (or any negative number)
also tells the system to re-draw just the menu,
which takes care of most user programs which want to
show a menu of top-row functions and wait for a keypress.
If you otherwise want to force immediate re-drawing of the
menu (or entire display), you can yourself call system
function DispMenu.1 (or SysDisplay); if you don't have
the "extable" library (containing command GETADR
to look up the address of an internal function by name),
then you can look up system function addresses in a document,
and use any direct address with SYSEVAL in a user program,
to invoke the internal function.
Here's a document listing internal functions,
with ROM addresses for each calc series (old 48 vs new 48/49/50)
http://www.hpcalc.org/search.php?query=xref
Since DispMenu.1 and SysDisplay require no stack arguments,
you can't go wrong calling them whenever you want
(unless you use the wrong address with SYSEVAL),
although in general, most internal functions
are a bit dangerous to use with wrong (or missing)
stack arguments, or using any wrong ROM address,
which is why it's prudent to make a memory backup
before plunging into calling internal "system" functions.
Hope this provides some useful input.
[r->] [OFF]
> In response to a question from that thread, what I see
> (from bottom up) is the menu, a blank line (12th from the top),
> then the 11 other lines.
I gather that you are using the system font with height of 6,
which is the only way to get 12 lines, in addition to the menu,
on the HP49G+/50G screen.
I see that 12 DISP (expecting to write on the line
displaying stack level 1) is ignored in this case,
which I guess is what you are reporting.
Halloo, anyone at HP -- is there a reason
why the system treats display line 11, rather than 12,
as the last displayable line for font size 6?
(even for system function DISPLASTROW, as it happens).
If there are 80 pixel rows on the screen, and if the
last 8 pixel rows are reserved for the menu, that
would appear to leave 72 pixel rows for the menu+stack
area, and that would seem to fit 12 rows at font height 6,
just as it does when the stack is displayed, no?
("descenders" occupy the lowest pixel row in the font,
while all characters otherwise fit in the upper five
pixel rows of the font, and are written, for display line 1,
to be flush with the top pixel row of the entire screen).
If you want to suggest that DISP (and DISPLASTROW)
therefore have a bug when used with system font height 6,
and think that HP will ever update ROM again,
and if this wasn't already reported,
you could add a bug report at http://bugs.hpcalc.org
If you meanwhile do CLLCD before you start to write to the screen,
hardly anyone will notice that you don't use line 12 :)
I can get the 12th row to display using Disp5x7 (system function),
but I also got a memory wipe out a bit later, so perhaps
this may not be good to recommend at the moment.
[r->] [OFF]
> Halloo, anyone at HP -- is there a reason
> why the system treats display line 11, rather than 12,
isn't this fixed in 2.10?
JY
Hmmm, what 2.10 and WHERE!
Does it include the EMU ROM ??
Parisse version or something else?
[<-l] [CONT]
AFAIK, The only publicly available 2.10 is BP's 2.10, which is
available at his web site. You should be able to tell that the rom
running is a beta of version 2.10-7. The only such beta is BPs. Other
2.10 ROMs do exist, and I would not be surprised if JYA had some, but
AFAICT nobody but HP and apparently BP have the authority to release
ROMs. And HP seems to have an official policy to not release any new
ROMs. Unless somebody can convince HP to let them take over software
development responsibilities for the system (which would also probably
require providing full support for the calculators), it seems quite
likely that no new official ROMs will over be seen. However more
unofficial ROMs might one day be made once all the relevant copyrights
expire, if anybody still cares that far into the future.
> AFAIK, The only publicly available 2.10 is BP's 2.10, which is
> available at his web site. You should be able to tell that the rom
> running is a beta of version 2.10-7. The only such beta is BPs. Other
> 2.10 ROMs do exist, and I would not be surprised if JYA had some, but
> AFAICT nobody but HP and apparently BP have the authority to release
> ROMs. And HP seems to have an official policy to not release any new
> ROMs. Unless somebody can convince HP to let them take over software
> development responsibilities for the system (which would also probably
> require providing full support for the calculators), it seems quite
> likely that no new official ROMs will over be seen. However more
> unofficial ROMs might one day be made once all the relevant copyrights
> expire, if anybody still cares that far into the future.
I have no idea who authorizes whom to do what,
but I would guess that the special version (with Geometry and spreadsheet),
made for French teachers, might have led to additional sales,
which might suit HP very well.
The "Unsupported Beta ROM 1.19-6" for HP49G (original),
available at www.hpcalc.org, was never offered through HP itself,
but was a significant improvement over version 1.18,
which is the last version HP offers (still available, BTW),
and likewise may have improved the "bottom line."
Of course, you can also actually install "50G" version 2.09 or 2.10
into an HP49G, albeit indirectly, via "ROMUPLOAD" from Emu48/49,
thru a serial port, when using an emulator ROM file.
-[ ]-