HP Forums
HP-41 ROM Module wishlist from PPC V9N4P35-36 - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not quite HP Calculators - but related (/forum-8.html)
+--- Thread: HP-41 ROM Module wishlist from PPC V9N4P35-36 (/thread-16674.html)



HP-41 ROM Module wishlist from PPC V9N4P35-36 - Gene - 04-16-2021 08:19 PM

Eh, this could have gone into the General Forum, but put it here.

The note on the bottom right of the first page of the attached PDF was a wish list for microcoded functions for the PPC ROM II which never materialized.

I thought... what if any of these do we still not have ?

Item 1: math functions. Check. Those are all in either Sandmath or Extended Stats roms.

Item 2: In various ROMs now so check.

Item 3: Utility routines --- a) Reverse order catalogs - Nope.

Item 4: Extended functions --- a) Store and Recall relative - Don't think so.

Item 5: Extended memory functions --- c) POPX - inverse of SAVEX. No ?

Item 6: Synthetic programming aids ---- all in various roms.

Item 7: Misc. Functions ----- b) and c) Store and Recall a single byte --- ?


Of these, POPX is the most interesting to me. Allows use of an extended memory data file as a LIFO stack. SAVEX and the POPX. Does a POPX for that exist ?

All the rest of pretty much there or don't generate much excitement from me... except for POPX :-)


And it is certainly possible these ARE here and I have forgotten! Oops.


RE: HP-41 ROM Module wishlist from PPC V9N4P35-36 - twoweims - 04-16-2021 08:36 PM

Hakan Thorngren's Boost module implements something similar to Item 5 but I don't think it uses extended memory for the stack.


RE: HP-41 ROM Module wishlist from PPC V9N4P35-36 - rprosperi - 04-16-2021 09:45 PM

(04-16-2021 08:36 PM)twoweims Wrote:  Hakan Thorngren's Boost module implements something similar to Item 5 but I don't think it uses extended memory for the stack.

Ohhh.... I like the new Avatar Dan, and am officially jealous. You creative guys have all the tricks. I wonder if id 2CDCC is taken in NY...?


RE: HP-41 ROM Module wishlist from PPC V9N4P35-36 - Ángel Martin - 04-17-2021 06:48 AM

Not exactly the same as an inverse to GETX, but quite worth looking into:

Doug Wilder's POP/PUSH function set use a LIFO file in X-Mem, and are all included in the WARP Module ;-)

I added a couple more options and a launcher that groups the different options as follows:

PUSH I:A:F:X:Z:T:R <- [SHIFT] -> POP I:A:F:X:Z:T:R

with:

I: Initialization
A: ALPHA
F: Flags
X: X-Reg
Z: Complex value (X & Y)
T: Stack {Y,Y,Z,T}
R: RTN Stack

See attached the relevant pages from the WARP manual with the description.

Cheers,
ÁM


RE: HP-41 ROM Module wishlist from PPC V9N4P35-36 - Ángel Martin - 04-17-2021 07:17 AM

Very nice wish-list, especially considering it pre-dates the CX.

Here's a few random comments on other entries:

1. Store/Recall Relative.- I like this one, and it's quite easy to implement. But still, wouldn't that be the same as STO IND / RCL IND on the s-Reg location? Thus: STOR = sREG?, X<>Y, STO IND Y; and: RCLR = sREG? , RCL IND X would do the job.

2. COMPILE - in the AMC_OS/X
3. View Program - See CSST in WARP et al.
4. Save/Get Keyboard - See SAVEKA / GETKA in AMC_OS/X
5. MCODE Version of LoadBytes - See LOADB and LOADB+ in the WARP module
6. Reverse CATs - a curious idea but IMHO it's superseded by the XEQ+ concept
7. POPX (again) - not quite the same but in the Equation Solver ROM I added a couple of file pointer functions that facilitate this.: REC+ and REC- move the record pointer by one up and down (and a third function ADVREC moves it by the number of bytes in X).. This: POPX = REC- , GETX
But if the goal of said POPX was to use it combined with GETX, wouldn't it be better to use a PUSHX that saves the X-value but doesn't move the file record pointer instead?

Ruminating in the background... ;-)


RE: HP-41 ROM Module wishlist from PPC V9N4P35-36 - Ángel Martin - 04-18-2021 06:38 AM

FWIW, here's the code for STOR and RCLR in case you're interested:

Code:
092    "R"    
00C    "L"    RCL Relative
003    "C"    uses IND SREG
012    "R"    
378    READ 13(c)    get .END. Location
10E    A=C S&X    put in A.X for compares
1BC    RCR 11    location of SREG
306    ?A<C  S&X    off limits?
0B3    JNC +22d    yes, show "NONEXISTENT"
270    RAMSLCT    select SREG
038    READATA    read value
0EE    C<>B ALL    done.
18C    ?FSET  11    
3B5    ?C XQ    
051    ->14ED    [R^SUB]
046    C=0 S&X    
270    RAMSLCT    
0CE    C=B ALL    
0E8    WRIT 3(X)    
3E0    RTN    
092    "R"    
00F    "O"    STO Relative
014    "T"    uses IND SREG
013    "S"    
0F8    READ 3(X)    read value
070    N=C ALL    put in in N
378    READ 13(c)    get .END. Location
10E    A=C S&X    put in A.X for compares
1BC    RCR 11    location of SREG
306    ?A<C  S&X    off limits?
381    ?NC GO    yes, show "NONEXISTENT"
00A    ->02E0    [ERRNE]
270    RAMSLCT    select SREG
0B0    C=N ALL    recall value
2F0    WRTDATA    put in SREG
3C1    ?NC GO    terminate
002    ->00F0    [NFRPU]