The Museum of HP Calculators

HP Forum Archive 20

[ Return to Index | Top of Index ]

WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #1 Posted by Neil Hamilton (Ottawa) on 4 June 2011, 8:32 p.m.

I haven't done an exhaustive search as yet but I can't seem to locate a bunch of the HP-16C-like functions such as rotate (RL, RLC, RR, RRC), shift (ASR), the DBL's, [RL] Justify, etc. in the X.FCN menu (emulator commit 993, calc.bin commit 994, and "ENTER_20b_1_18.pdf" commit 983 -- all from 999).

Are they yet to go in or have they been removed (sacrificed to the flash-size limitation gods)?

My apologies if this has been asked before but why are there 2 PDF manuals in the SVN tree ("ENTER_20b_1_18.pdf" -- strange name!, and "wp34s_Manual.pdf")? The former seems to be the more up-to-date, showing more details of the stack mechanics, for example, and showing a rev number of 1.18 vs. 1.17. Should one be removed from the repository to avoid confusion?

Thanks...

      
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #2 Posted by Paul Dale on 4 June 2011, 8:37 p.m.,
in response to message #1 by Neil Hamilton (Ottawa)

These functions are in the X.FCN catalogue when you are in integer mode only. I.e. this catalogue is context sensitive. Don't worry, they are all there and implemented and won't be removed. A lot of the real functions disappear when in integer mode and there is yet another version of the catalogue for when you are in alpha mode.

The ENTER_20b_1_18.pdf is the more recent documentation somewhat matching the subversion build. It won't necessarily match the release build however wp34s_Manual.pdf will.

So get the release, and the correct manual is included.

If you're going directly to subversion get the ENTER... version. If you are going to subversion, you are living on the leading edge and can cope with some degree of confusion :-)

Pauli

            
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #3 Posted by Neil Hamilton (Ottawa) on 5 June 2011, 8:35 a.m.,
in response to message #2 by Paul Dale

Ah! You are so right! I guess I have to pay more attention to the "in modes" column. My mistake.

I thought we all liked living on the (b)leading edge and that is why we so much like this project! Thanks for the explanation on the 2 documents. I fully understand. I also understand that the doc, by its very nature, will usually be a step or two behind the wavefront.

I have to say that I am still amazed by how much you guys have packed into this little beast.

BTW: RCF is still showing "xxx" in commit 1004. Reminds me of my days working with BSD! I am wondering what this X-rate function is all about.

Best regards...

                  
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #4 Posted by Paul Dale on 5 June 2011, 8:49 a.m.,
in response to message #3 by Neil Hamilton (Ottawa)

Quote:
BTW: RCF is still showing "xxx" in commit 1004. Reminds me of my days working with BSD! I am wondering what this X-rate function is all about.

It shouldn't be. The file name got changed to Manual_wp_34s_2_0.pdf for the soon to be released beta firmware. Subversion should have deleted the older manual file when you updated.

To answer your question, RCF is just like RCL except that it uses the backup flash register region as the register source. Thus, effectively doubling the number of registers available although half are basically read only.

It accepts a complex prefix and all the arithmetic suffixes of course. Indirection is supported as well and it gets the flash register number from a normal register which seems like the more useful option.

- Pauli

                  
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #5 Posted by Paul Dale on 5 June 2011, 8:50 a.m.,
in response to message #3 by Neil Hamilton (Ottawa)

Quote:
I fully understand. I also understand that the doc, by its very nature, will usually be a step or two behind the wavefront.

And vice-versa on occasions too.

Then are the times when the two are just plain different.

- Pauli

                        
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #6 Posted by Neil Hamilton (Ottawa) on 5 June 2011, 9:28 a.m.,
in response to message #5 by Paul Dale

Yes, SVN did delete the ENTER... and add Manual...

D    doc/ENTER_20b_1_18.pdf
A    doc/Manual_wp_34s_2_0.pdf
...
Updated to revision 1004.

Another question about the bit manipulation functions. My reading of the manual and the operation of the 34S is that these functions (eg: BC?, CB, etc.) operate on a *fixed* bit (ie: BC? 14) in the X register. It does not look like you can have the bit in question be a variable.

My reading of the HP16C manual shows that the 16C version of these operations has the bit to be operated upon as a variable (defined in X) with the value to be tested and/or modified being in Y.

Page 50 of the HP16C manual:

 The word containing the specific bit must be in the Y-register.
 The magnitude of the number in the X-register specifies the
  number of the bit to be set, cleared, or tested.

The 11C allows the operation to be used more effectively in a program where you want to scan through a word.

Is there a way to tell the op-code to use the 16C-like mode rather than a fixed bit position? Maybe something like the "x =" function requiring you to switch to alpha mode to enter "x=y"?

Thanks...

                              
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #7 Posted by Walter B on 5 June 2011, 10:09 a.m.,
in response to message #6 by Neil Hamilton (Ottawa)

That's a special topic. We had repeated discussions about parameter transfer to integer functions in the course of this project. In this very case, I advocated the 16C-way, while Pauli preferred the way it's implemented now with indirection and all bells and whistles. After all, he uses such operations more than I do, so I gave in to the expert :-)

Walter

                                    
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #8 Posted by Neil Hamilton (Ottawa) on 5 June 2011, 10:55 a.m.,
in response to message #7 by Walter B

Indirection you say?? Is there a thread you can point me to that would explain how that is done? That would be very useful.

Is there something in the manual that I missed? If not, perhaps a paragraph or two might help since this differs from the baseline 16C behaviour. :-)

BTW: The several of the blue underlined links in the manual are not working. Specific examples from the manual (most from the function description table): "above" in c..., "above" in BASE, "catalog of conversion table" in D->R, "below" in ERR, "above" in H.MS, "indicators" in RCLM, "catalog of conversion table" in R->D, "indicators" in STOM, first "addressing table above" in x < ...?, "tables" in 0...9, "addressing tables" in A...Z, "above" in h STATUS, "above" in XEQ, "tables" and "indicators" in the paragraphs immediately above the the function description table.

I am making heavy use of this table while learning the beast and like the hot-link capability (when it works :-).

It might be overkill but in the "Catalog contents in detail" tables, it would be really useful if this was hot linked to the more descriptive table entires (though I can fully understand if you don't want to do this!!!).

Thanks...

                                          
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #9 Posted by Walter B on 5 June 2011, 12:27 p.m.,
in response to message #8 by Neil Hamilton (Ottawa)

Quote:
Indirection you say?? Is there a thread you can point me to that would explain how that is done? That would be very useful.
I'd recommend page 14 :-) Page 26 explains how you recognice a command allowing indirect addressing. And then the index entry for the command(s) you are interested in ...

Thanks for checking the hyperlinks. I moved some chapters a few weeks ago and may have broken more than I thought.

Quote:
It might be overkill but in the "Catalog contents in detail" tables, it would be really useful if this was hot linked to the more descriptive table entires (though I can fully understand if you don't want to do this!!!).
That would mean defining a text mark for each and every cataloged command and establishing links to them. I count on your understanding ;-)

Walter

                                                
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #10 Posted by Neil Hamilton (Ottawa) on 5 June 2011, 2:06 p.m.,
in response to message #9 by Walter B

Hi Walter

Thanks for the patience and heads-up.

Quote:
I'd recommend page 14 :-) Page 26 explains how you recognice a command allowing indirect addressing. And then the index entry for the command(s) you are interested in ...

Page 16 turns out to be the critical table (go figure: "Addressing Labels" -- just like the broken link in the function table was trying to tell me!). The crucial piece of information I had missed was the "->" key being used for indirection.

Now I have to explore how it works.

                                    
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #11 Posted by Paul Dale on 5 June 2011, 5:29 p.m.,
in response to message #7 by Walter B

As Walter mentioned we discussed this long and hard. We started off having the bit commands operating as the 16c (BS, BC, ...). For a while these got extended like the flag commands were but that got lost later for reasons I don't remember. Then we added the current versions which are actually more flexible and more compact versions with arguments (BS#, BC#, ...). I've a suspicion that there was a third complete suite as well but I'm probably misremembering. Anyway, the result was a big mess of bit operations mostly alike.

After much back and forth, the decision was finally made to lose direct 16c compatibility here (helped along by the almost complete lack of published 16c programs) and stick with the single set that provided the more complete & useful range of functionality. I.e. the BS#, BC#, ... new commands.

The bottom line is that the current bit commands are considerably more flexible than the 16c's. The 16c's bit operations are available by swapping x and y before the operation and going indirect on y for the bit number. So were very nearly compatible and more flexible.

For similar reasons the shifts and rotates got count arguments. In this case we definitely had three flavours: SR, SRn, SRB. The first two being the 16c commands and the last being a byte shift as per the RPL machines. Giving the command an argument completely replaced all three (times five for the five shifts and rotates) with a single more powerful command with the proviso that direct 16c compatibility was lost for the SRn command. I think this loss of direct compatibility is worth the gain in usefulness.

If you really want the direct 16c commands, define them using alpha labels and XEQ them from a flash program region. We've got enough capability to exactly emulate the 16c here. From memory this is the kind of framework you'll require:

    LBL'BS'
    x<>y
    BS->Y
    x<>y
    STO L
    DROP
    RTN

Have fun with the indirection. Almost every command that takes an argument can take an indirect argument as well. Also, remember that all registers including the stack can be used for the indirect register.

- Pauli

Edited: 5 June 2011, 5:44 p.m.

                                          
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #12 Posted by Neil Hamilton (Ottawa) on 5 June 2011, 6:43 p.m.,
in response to message #11 by Paul Dale

Hi Paul,

After I got the hang of it (ie: once I had figured out the required swap-aroo -- no geographical pun intended!), I realized that this was indeed a more flexible option than the 16C version. I have never used a 16C myself and thus feel no great allegiance an exact replica of its functions. As I mentioned, it was my oversight of the "->" giving you indirect address mode.

I still suspect that a (short) paragraph (or two) in the document might help grease the wheel to usage of these beauties! I agree that most of the information is buried in there but the information density is quite high in places. :-)

BTW: I have noticed in the latest calc.bin binaries that the flashed calculators are showing "34s 2.0 ?100" rather than the "34s 2.0 ?1001" that shows up in the emulator. Does the emulator have an extra character in the dot matrix line or is something else happening?

                                                
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #13 Posted by Walter B on 5 June 2011, 7:08 p.m.,
in response to message #12 by Neil Hamilton (Ottawa)

Neil,

Since you keep asking for some more paragraphs: Looking at the examples given on pp. 14-16, what do you want added or explained in more depth? As I don't know what you don't know, some idea(s) will be helpful to meet your needs. TIA

Walter

                                                      
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #14 Posted by Neil Hamilton (Ottawa) on 5 June 2011, 7:33 p.m.,
in response to message #13 by Walter B

Hi Walter,

Honestly, I am not trying to be a pest.

Some of the content Paul put in his post might find its way into the manual. I did figure most of it out myself through a bit of trial and error (mostly error!) but without some seeding from you two, I doubt I would have gotten there.

I will see if I can boil down the information into a very few sentences and post it back to you. Would that be OK?

Cheers...

                                                            
Re: WP34S functions missing in action? (LJ, RJ, RL, RLC, RR, RRC, etc.)
Message #15 Posted by Walter B on 6 June 2011, 1:50 a.m.,
in response to message #14 by Neil Hamilton (Ottawa)

I'd appreciate that of course :-)


[ Return to Index | Top of Index ]

Go back to the main exhibit hall