Example: The stack usually looks like this:
5: 'FOO'
4: 'BAR'
3: 'BAM'
2: 'BAS'
1: 'BAT'
but I want it to look like this:
'FOO'
'BAR'
'BAM'
'BAS'
'BAT'
all the time, without pressing any keys.
Some folks would surely not need or want such a stack replacement, but
I want one so badly that I'll send a brand new, unopened HP 50g to the
first person to post here a fast (not using "vectored enter") HP 49/50
stack replacement program as described above. Bonus: That HP 50g will
be accompanied with an additional USB cable and calculator case if the
program works as described in all display modes & settings, with any
object types on the stack. Offer void if such a program is already
available, of course.
Thanks in advance!
-Joe-
And now you made me regret that i never tried to make a stack replacement
or at least investigate the subject... shame on you ! :-)
anyway there are various stack replacements but i don't think there is
one without numbers, to make one without number should not be a problem
but to make one which will use the space gained for all objects... well...
good luck :-)
manjo
forgot to mention :
it's not that i'm greedy...
my 49G+ keys are 90% damaged it would be
interesting to earn something with a calculator.
i guess what i'm saying is:
Great offer from your part Joe !
manjo
> anyway there are various stack replacements but i don't think there is
> one without numbers, to make one without number should not be a problem
If they are programmed as a loop (as most are) they won´t work on the
interactive stack and not anywhere else where a POL is called (HALT,
all Inform Boxes, etc ...)
> but to make one which will use the space gained for all objects... well...
> good luck :-)
The stack picture probably has to be modified at the point where
the ... character is shown if a line is wider than the screen.
What I can offer if you ship to Germany:
Provide a modified libs for the key-handling. As you might now the
internal lib A1 (roughly 1,5 KB) contains the key-handling for non
shifted keys. At each key-press the stack-picture will be shifted to
the left, so that the numbers are not shown. This will work everywhere
in the calc if you are able to attach the replacement key-handling lib
intstead of the built-in lib. This does mean, that there is a free
area at the left side. Repgrogramming the way the stack lines are
shown is surely a major task without the source.
This will be done by a seperate config lib which will switch the hash
table of the built in lib with the hash table of the replacement lib.
I´m quite sure that this will work, because I already did this in the
emulator and was able to switch the hash table by hand and so
activating the replacement lib.
For ease of programming some restrictions apply: the replacement lib
and the config lib have to be stored in port 0, otherwise we have to
negotiate about your offering ;-)
Let me know what you think about it. To reach my by mail remove the
NOSPAM.
Greetings Andreas
::
xRCLF
InitSysUI
::
INCOMPDROP STOALLFcont2_
BEGIN
AtUserStack
SysMenuCheck
?DispCommandLine
?DispStatus
::
DispStack?skip
::
*/---> Stack arguments
TOADISP
ONE
::
StackLineHeight
CommandLineHeight
*/---> #1 #56/#42 #0 (g+/G) FONT8 Header2
CODE
AD1EX
D1=(5) #80EC0
C=DAT1 A
D1=A
?CBIT=1 2
GOYES +
LC(5) =ZERO
DAT1=C A
+ GOVLNG (=2DUP)+5
** GOVLNG =Loop
ENDCODE
** 2DUP
#=case 3DROP
*/---> #1 #56/#42 #0 (g+/G)
BINT83 SetSysFlag
DUP4UNROLL
#-
*/---> #0 #1 #56/#42 (g+/G)
SCANFONT
[BEGIN]
DUP
BINT95 TestSysFlag
*/---> #0 #1 #56/#42 #56/#42 F (g+/G)
ITE
NULL$
::
3PICK
*/---> #0 #1 #56/#42 #56/#42 #1 #1 ( 4 arguments )
DROP NULL$
;
4PICK #6+ DEPTH
#>ITE
'NOP
::
4PICK #5+ PICK
;
BINT74
SysITE
ONE
ZERO
BINT52 TestSysFlag
BINT65 TestSysFlag
IT
::
7PICK #1<> OR
;
FLASHPTR 002 95
UNROTDUP 6ROLL SWAP 5ROLL
ITE
FLASHPTR 002 93
FLASHPTR 002 94
4UNROLL
#-
SWAP#1+SWAP
DUP#0= [UNTIL]
* #0=UNTIL
3DROP
;
SetDA2aValid
;
;
?DispMenu
ClrDAsOK
GetKeyOb
ERRSET DoKeyOb
ERRTRAP SysErrorTrap
AGAIN
;
ERRTRAP
VLM
;
download: www.gaak.org/hp/zips/nolevrpn49.zip
for 49G/49g+/50G
enjoy it!
- GaaK -
> download:www.gaak.org/hp/zips/nolevrpn49.zip
> for 49G/49g+/50G
>
> enjoy it!
> - GaaK -
This is a stack replacement (without level numbers).
Tested on my 49G and emu50G. No changes HEADER or UP key (HISTory
Edit)
Storing in STARTUP or from Library command ($CONFIG) for AutoLoad.
Based on: SStack for 49G/50G written by GaaK.
- GaaK -
like I just said, it won´t work anywhere outside the loop.
Not in a HALT-enviroment, no InformBox and if an error is happening
the normal stack is shown also.
So it is as incomplete as the majority (or probably all) of stack
replacements.
Also it might make a difference how the stack replacement is started
due to the annoying use of LAM's when the editline is terminated.
There was a very interesting posting about it quite some time ago.
Search for the post
Problem whit EQSTK & TED
http://groups.google.com/group/comp.sys.hp48/browse_frm/thread/a1fe0be946631620/265b5a0fc6003f03?lnk=gst&q=Problem+whit+EQSTK+%26+TED+&rnum=1#265b5a0fc6003f03
Greetings
Andreas
Who is also still searching for a way to remap each key press under
all circumstandes to another ROMTR in a lib with a different Lib-ID
then the built-in keyhandling libs.
uhmm....
MainLoop is: StartupProc -> ?DispStack
My program is the replacement for this, but options like CALC from
Informs call to ?DispStack again... Then the replacement is not for
StartupProc, is for ?DispStack :-(
?DispStack uses SysNib flags (InternalSysFlags), but I don't
understand...
- GaaK -
> ... At each key-press the stack-picture will be shifted to
> the left, so that the numbers are not shown.
Sorry; my goal is not merely to HIDE the stack level numbers, but to
USE their space, so that each stack level uses the full 22
characters. Just put "12345678901234567890" on the stack, press ENTER
a few times, observe, and then go into ALG mode (briefly) to see what
I mean.
It looks like GaaK got the right idea... I'm gonna test his code
tonight.
-Joe-
So, the complete solution is to patch ?DispStack in the ROM.
On FPTR 2:90
BINT95 TestSysFlag
ITE
NULL$
::
3PICK
#:>$
;
Where TestSysFlag should be replaced with DROPTRUE to eliminate the
"1: " prefix. Optionally, replacing BINT95 with another flag number
you could control whether you want the numbers or not, regardless of
ALG/RPN settings (so you can get numbers on ALG mode).
If JH wants it done, just tell me the flag number to control it and
I'll send a patched ROM.
Claudio
Hi Joe, new version: (available at www.gaak.org/hp/zips/nolevrpn49.zip)
This version contains correction for objects like DIRS, SECOs, but the
Graphics are shows one line.
version: ß2A
============
* BINT83 SetSysFlag * Graphics one line (->Decomp1Line)
DUP4UNROLL
#-
*/---> #0 #1 #56/#42 (g+/G)
SCANFONT
[BEGIN]
DUP
NULL$
4PICK #6+ DEPTH
#>ITE
'NOP
::
4PICK #5+ PICK
;
BINT74
SysITE
ONE
ZERO
BINT52 TestSysFlag
BINT65 TestSysFlag
IT
::
7PICK #1<> OR
;
* the next lines:
* ... correctly width for objects like DIRs, COLs (External External)
* ... forces GROB one line
BINT95 DUP TestSysFlag OBJ>R_ ( save MODE )
SetSysFlag ( set ALG mode )
FLASHPTR 002 95 ( fix the object )
BINT95 R>OBJ_ ITE SetSysFlag ClrSysFlag ( restore MODE )
UNROTDUP 6ROLL SWAP 5ROLL
ITE
FLASHPTR 002 93
FLASHPTR 002 94
4UNROLL
#-
SWAP#1+SWAP
DUP#0= [UNTIL]
* #0=UNTIL
3DROP
;
SetDA2aValid
;
;
?DispMenu
ClrDAsOK
GetKeyOb
ERRSET DoKeyOb
ERRTRAP SysErrorTrap
AGAIN
;
ERRTRAP
VLM
;
- GaaK -
Hi Claudio, my version ß2A contains the *simualtion* for ALG mode when
the object is fixed (fptr 2 95).
* the next lines:
* ... correctly width for objects like DIRs, COLs
* ... forces GROB one line
BINT95 DUP TestSysFlag OBJ>R_ ( save MODE )
SetSysFlag ( set ALG mode )
FLASHPTR 002 95 ( fix the object )
BINT95 R>OBJ_ ITE SetSysFlag ClrSysFlag ( restore MODE )
- GaaK -
I've done a version of the ROM for you that uses user flag 62 to change
those settings. Check your mail
Doing such change is trivial (and will work with HALT etc..)
Interactive stack is still with 1: 2: 3: etc... wouldn't be hard to
change it to remove the line number (30s work).
And no, I'm not working on HP anymore
Cheers
JY
is there a way to get a "hook" into the ROM for the key processing so
that system rpl programers can circumvent some key presses and are
able to replace an existing ROM routine with their own program ?
Greetings and TIA
Andreas
http://www.software49g.gmxhome.de
> I've done a version of the ROM for you that uses user flag 62 to change
> those settings. Check your mail.
Thanks! However, I can't use it, because it only works on the
emulator (which I never use) and not on the real 50g. I'll try it on
the emulator, to enjoy your handiwork.
-Joe-
> Hi Joe, new version: (available atwww.gaak.org/hp/zips/nolevrpn49.zip)
> This version contains correction for objects like DIRS, SECOs, but the
> Graphics are shows one line.
Many thanks! I'll use this a LOT! Please send to < Joe Horn at Holy
Joe dot net > the shipping address to which you want your new HP 50g
sent.
Unfortunately, your program shows multi-line STRINGS on one line,
thereby failing in its main purpose of showing MORE of each object on
the stack. Would it be possible to handle strings separately? Other
peculiarities inherited from ALG mode include:
(1) Lists and arrays are displayed with commas between every element
if either (a) textbook mode is turned off, or (b) there are 256
elements or more in the list or array, or sufficient elements in a
matrix (depends on MEM). This is not a problem, since it doesn't cause
less information to be shown, and in fact sometimes causes MORE to be
shown. :-)
(2) Names are shown without delimiters. :-|
(3) System RPL stack mode (flag -85) no longer works at all. :-(
-Joe-
Bonjour Jean-Yves, comment ca va?
Glad to know you're still watching over this group :)
Hope to hear from you more and more in the near future.
A +.
Giancarlo
JY
So I would say, it is only one side of the coin.
Any suggestions to make it work if one doesn´t have the source for the
rom code ?
TIA
Andreas
Many thanks, I don't have 49g+ or 50G, only the old and loved 49G
(4MHz).
I'm grateful, and very happy... but from Peru :-(
Check your mail for my personal information.
Soon 'TED' for my new 50G :-)
> Unfortunately, your program shows multi-line STRINGS on one line,
> thereby failing in its main purpose of showing MORE of each object on
> the stack. Would it be possible to handle strings separately? Other
> peculiarities inherited from ALG mode include:
>
> (1) Lists and arrays are displayed with commas between every element
> if either (a) textbook mode is turned off, or (b) there are 256
> elements or more in the list or array, or sufficient elements in a
> matrix (depends on MEM). This is not a problem, since it doesn't cause
> less information to be shown, and in fact sometimes causes MORE to be
> shown. :-)
>
> (2) Names are shown without delimiters. :-|
>
> (3) System RPL stack mode (flag -85) no longer works at all. :-(
Fixed the bugs (1) (2) and (3) at www.gaak.org/hp/zips/nolevrpn49.zip
(ß3A)
>From RPN:
- multi-line STRINGS.
- Lists and arrays are not displayed with commas.
- Names are shown with delimiters.
- System RPL stack mode now works fine.
Related source:
* the next lines:
* ... correctly width for objects like DIRs, COLs (External External)
* ... forces GROB one line
* ... now works fine for CSTR, LISTs (Textbook clrd), MATRIX, ...
BINT95 TestSysFlag OBJ>R_ ( save MODE )
3PICK 'NOP EQ ( if object is NOP? )
?SKIP ( then skip )
::
BINT85 TestSysFlag ?SEMI ( if SysDisp -> end: always
RPN )
* 3PICK TYPECSTR? ?SEMI ( if object is CSTR? -> end )
{
BINT2 ( CSTR )
BINT3 ( ARRAY )
BINT4 ( MATRIX )
BINT29 ( ? )
BINT5 ( LIST )
BINT6 ( ID )
} ( {types} )
4PICK XEQTYPE COERCE SWAPDROP ( {types} #ObType )
#=POSCOMP #0<> ?SEMI ( if object str, ... -> end )
BINT95 SetSysFlag ( set ALG mode )
;
FLASHPTR 002 95 ( fix the object )
BINT95 R>OBJ_ ITE SetSysFlag ClrSysFlag ( restore MODE )
any other bug?, please report.
Cheers.
- GaaK -
hier mal auf Deutsch, ich hatte Dir diesen Text eigentlich
als Mail gesendet, die aber gebounct ist...
Das Problem ist auch bei dieser Idee immer das selbe,
nämlich dass man nur den normalen SysOuterLoop
direkt verändern kann.
Wir hatten darüber diskutiert,
und es gab damals auch einen Lösungsansatz,
der die meisten Sonderfälle wie HALT berücksichtigen würde,
nämlich den Austausch der User Command Library 1792.
Ich hatte damit schon angefangen, es aufgrund anderer
Priortäten (SpeedUI) aber nicht weiter verfolgt..
Und zu guter Letzt:
Es handelt sich beim SysOuterLoop eben *nicht* um ein 'Kernel',
sondern 'nur' um eine Command Shell, was etwas völlig Anderes ist.
Daher ist auch der Begriff 'MetaKernel' gelinde gesagt unpassend
bzw. Propaganda, weil die MK-Shell mit dem eigentlichen Kernel
nichts zu tun hat.
Siehe auch: http://de.wikipedia.org/wiki/Betriebssystemkern
Grüsse
Raymond
"Andreas Möller" <andreas_mo...@gmx.de> schrieb im Newsbeitrag
news:1173696708.6...@h3g2000cwc.googlegroups.com...
:: DEPTH #0=?SKIP DROP BINT95 SetSysFlag
?DispStack SetDA2Valid BINT95 ClrSysFlag ;
Compile and save in '\GbENTER' (Greek Beta),
set flags -62 and -63, and there you are.
This has the wonderful "feature" that you may at any time
use CANCEL to display stack levels, whenever you need them :)
and then any other action (or SPC Enter) to turn them off again.
[r->] [OFF]
> Wir hatten darüber diskutiert,
> und es gab damals auch einen Lösungsansatz,
> der die meisten Sonderfälle wie HALT berücksichtigen würde,
> nämlich den Austausch der User Command Library 1792.
Patching the ROM does even look easier than exchanging the whole Lib
1792.
Danke und Grüße.
Falls Dir doch noch eine einfachere Lösung in den Sinn kommt, bitte
immer her damit. Würde gern die letzte Hürde auch noch nehmen wollen.
Andreas
and now, imagine the "main stack" without levels and without menu,
yes, full screen.
... but the menu?, F1, F2, ... F6 keys... yep, always available, but
hidden.
Menu access: pressing [RS]+[DownArrow].
Example: The stack usually looks like this:
_________________________
|HEADER |
|-----------------------|
|5: 'FOO'|
|4: 'BAR'|
|3: 'BAM'|
|2: 'BAS'|
|1: 'BAT'|
|### ### ### ### ### ###|
-------------------------
new stack idea:
==============
_________________________
|HEADER |
|-----------------------|
|6: 'Extra1'|
|5: 'FOO'|
|4: 'BAR'|
|3: 'BAM'|
|2: 'BAS'|
|1: 'BAT'|
-------------------------
and, without header:
===================
_________________________
|8: 'Extra3'|
|7: 'Extra2'|
|6: 'Extra1'|
|5: 'FOO'|
|4: 'BAR'|
|3: 'BAM'|
|2: 'BAS'|
|1: 'BAT'|
-------------------------
available soon...
- GaaK -
P.S. my problem is the CommandLine :-(
Desc
====
Display without level numbers and without menu.
Screenshot (temp)
=========
www.gaak.org/hp/temp50g.gif
HEX-Data (to compile: H->)
========
D9D20517B3570F2D9D20FAB53AA3F22A170C6FE266FE2F91F2113C2D9D20C82A2D9D206616211133D9D208826261653A9FE2CCD20D20001331F0CE08147131808B2C034701331458D1B1302D8432D143C23430ED30E72622A17088130FD550A8443C0653C4130D3F6360363D9D20A8443706532E230B2130BE33397F631113370133F033307162193330716222A43D9D2099443D035357B30B2130DB43307162EB8B25844360363E2B30A2170D9D2095433071621AA4347A20B113352133F2133922339313334133B2130A844334CB31F262A1243257737CC301AA43DB433D4162B2130CA6202005900DB4336E8B2E3B43D416244062C1D53182433223075243E3B43CCD20070008FD5F30068FB97601B2B22810007D5CA34040008F41FF35603105E21FD8608143C6CAF2CA131D9C6F2C9C98FC0760D4118CA8DC7530CCD20B80008FD5F30100068FB97601BDF818142342B228C4C2F0C213411010007D5CA34040008F41FF35603105E21FD8608143C6CAF2CA131D9C6F2C9C98FC0760D4118CA8DC7530133430ED3099082DB2538C1702D143B213089FE2B2130B2130CCD20020001321B8210031F314C1308D94150643A2D9D20701331113314A40688523E133B113314A4068852FB2335213314A40688521192024000F213314A406885211920850009313314A406885211920E60003413314A40688523DC2299FE2B2130D6EE29DE52E5E405CE528BE40E5EE2BA170B21308BE40A0F52B2130
Bug
===
with the CommandLine
Please
======
I need name for the two programs :-(
.1. 'NoLevRPN' (No Levels RPN)
.2. 'FSR' (Full Stack Replacement)
suggestions?...
- GaaK -
> HEX-Data (to compile: H->)
[extremely long line, too long for NNTP server, also without checksum]
Here's a suggestion for posting in hex for HP49G[+]/50G/48Gii,
in a manner which avoids long lines and includes a checksum:
ASCI and ASCO (like HP48 ASC) for HP49G[+]/50G/48Gii
http://groups.google.com/group/comp.sys.hp48/msg/8ad9a09874a2d1c1
[r->] [OFF]
Thanks and sorry, now available at my site.
- GaaK -
My Hp-50g arrived. Yesterday I got my new calculator.
Date: April 02, 2007
Time: 11.03 (GMT -5)
The pack contains:
- 01 Manual
- 01 CD-ROM
- 01 Case
- 01 USB cable
- 01 CR2032 (bat)
- 04 AAA (bat)
- 01 HP-50g
thanks Joe ;-)
Bonus: new FSR added (Full Stack Replacement)
FSR clear menu and stack level numbers.
To view the MENU press [RS]+[Down].
To exit press [ON] twice.
If editLine exists then MENU is enabled.
download: www.gaak.org/hp/zips/nolevrpn49.zip
Cheers.
- GaaK -
> Bonus: new FSR added (Full Stack Replacement)
>
> FSR clear menu and stack level numbers.
> To view the MENU press [RS]+[Down].
> To exit press [ON] twice.
>
> If editLine exists then MENU is enabled.
Every attempt I've made to run FSR has caused an instantaneous Memory
Clear. It looks like it uses several unsupported entry points,
including the following (in the order used):
PTR 2F3AA
PTR 2A32D
PTR 2A28C
GOVLNG 031B1
PTR 2B8BE
PTR 2B8E6
PTR 2A346
PTR 22CD3
Bad upload? Bad download?
-Joe-
?? ... not for me... downloading again is Ok.
BYTES: #8EECh 549.5
MASD Code:
!NO CODE
!RPL
::
xRCLF
InitSysUI
::
INCOMPDROP
STOALLFcont2_
BEGIN
AtUserStack
SysMenuCheck
PTR 2A32D
::
EditLExists?
IT
CODE 0001B 1321B82100317314C1308D94150
DispCommandLine
;
?DispStatus
::
PTR 2A28C
::
TOADISP
BINT1
::
StackLineHeight
EditLExists?
?SKIP
#8+
CommandLineHeight
CODE 00028 1331F0CE08147131808B2C034701331458D1B130
#=case
3DROP
DUP4UNROLL
#-
SCANFONT
BEGIN
DUP
NULL$
4PICK
#6+
DEPTH
#>ITE
'NOP
::
4PICK
#5+
PICK
;
BINT74
SysITE
BINT1
BINT0
BINT52
TestSysFlag
ARRYREAL
TestSysFlag
IT
::
7PICK
#1<>
OR
;
BINT95
TestSysFlag
OBJ>R_
3PICK
'NOP
EQ
?SKIP
::
2LIST
TestSysFlag
?SEMI
{
BINT2
BINT3
BINT4
BINT29
BINT5
BINT6
}
4PICK
XEQTYPE
COERCE
SWAPDROP
#=POSCOMP
#0<>
?SEMI
BINT95
SetSysFlag
;
FPTR 2 95
BINT95
R>OBJ_
ITE
SetSysFlag
ClrSysFlag
UNROTDUP
6ROLL
SWAP
5ROLL
EditLExists?
CODE 000CB
8428F86A435508528F86A434606A708FD5F30068FB97601B2B22810007D5CA340400082480B83460310586280818FA7E21FD8608143C6CAF2CA131D9C6F2C9C98FC0760D4118CA8DC75308FD5F30100068FB97601BDF818142342B228C4C2F0C21341106D6F
4UNROLL
#-
SWAP#1+SWAP
DUP#0=
UNTIL
3DROP
;
SetDA2aValid
;
;
EditLExists?
?SKIP
CODE 0001B 1321B8210031F314C1308D94150
PTR 2A346
::
BINT0
BINT1
GETDF
DoLabel
BINT22
BINT2
GETDF
DoLabel
BINT44
BINT3
GETDF
DoLabel
BINT66
BINT4
GETDF
DoLabel
BINT88
BINT5
GETDF
DoLabel
BINT110
BINT6
GETDF
DoLabel
PTR 22CD3
SetDA3Valid
;
ClrDAsOK
GetKeyOb
ERRSET
DoKeyOb
ERRTRAP
SysErrorTrap
AGAIN
;
ERRTRAP
VLM
;
@
Cheers.
- GaaK -
>> Bad upload? Bad download?
> ?? ... not for me... downloading again is Ok.
Your program uses PTR 22CD3, which works in ROM version 2.09,
but it causes an instant Memory Clear in ROM version 2.10-7.
The code that you wish to call has moved to address 22CD2 in ROM
2.10-7.
It's unsupported and should not be called by address. It's the final
command
in the supported word "DispMenu.1".
I poked 22CD2 into my copy of your program, and it works great! But
of course
it's not portable to my other machines, each of which has a different
ROM version.
Can it be made fully portable?
Thanks again!
-Joe-
...sorry ... sorry. this entry works only in ROM 2.09 (no other).
the replacement for any ROM:
CODE
LC(5) (=DispMenu.1)+150
CD0EX
A=DAT0 A
D0=C
PC=(A)
ENDCODE
So, the full masd code :
CODE 00014 34A80E2136142134808C
SetDA3Valid
;
ClrDAsOK
GetKeyOb
ERRSET
DoKeyOb
ERRTRAP
SysErrorTrap
AGAIN
;
ERRTRAP
VLM
;
@
BYTES: #24C2h 562
Enjoy it and sorry again.
- GaaK -