[WP34s] expert's catalog?



#2

Is there now a common concordance in the WP34s team that the commands SKIP, BACK, CASE and RTN+1 should be in the 'expert' catalog ([CPX][P.FCN]) starting with the next build, or is this just Walters own preference and decision?

Just a question ...

Franz


#3

It's a way to get rid of splitting the blind-jump (unstructured^2) commands in two catalogs. So far I didn't observe anyone but an expert use those. Thus it's called the expert's catalog and was moved to CPX h P.FCN in that course. P.FCN and X.FCN became quite crowded. And software is called SOFTware because ...


#4

Quote:
It's a way to get rid of splitting the blind-jump (unstructured^2) commands in two catalogs. So far I didn't observe anyone but an expert use those.

Well, that was not my question - I wanted to know if also Pauli and Marcus agree with you, or if it's only you who decides which commands 'normal' or 'expert' users should use in their programs.

I could agree with you for CASE (and maybe even with RTN+1), but definitely not for SKIP and BACK, these both are some of the most used commands in programs at all.

(and NO, I don't want to use a label for each and every command that returns a 'true/false' result like e.g. FS?, x=?, ENTRY?, etc. etc. ...

Franz

Edited: 12 May 2012, 6:15 a.m.


#5

RTN+1 is newly added and has not been discussed, although it seems like a good candidate for this catalogue. The rest have been discussed.

BACK takes one extra keystroke to access (CPX before h-P.FCN), SKIP at least one less. These commands are not going to go away, that much is certain.

- Pauli

Edited: 12 May 2012, 6:55 a.m.


#6

We don't have assignable keys but we might be able to define a user catalogue. A possible implementation could be a special 'program' in flash that is never run but read in as sort of catalogue. Sorting will be a manual task and it's not clear if the quick keyboard access will work. Let me see if I can come up with something useful.


#7

I like the idea of a "user catalog (US spelling)" very much.

Instead of the standard up/down access or the fast alpha access, you might simply allow for random access based on the key pressed. The top row of keys would map to the first 6 items in the catalog, the 2'vd row the next 6 items, etc. (left to right top to bottom). This would allow fast access for up to 36 (or 37 if the EXIT key is allowed) commands without regard to alpha ordering. A user catalog of 36/37 commands would give most users all they needed on a regular basis.

Edited: 12 May 2012, 11:36 a.m.


#8

Looks good in first view :-) I'd keep EXIT, however, for obvious reasons ;-) assuming the user catalogue is closed when any function is picked. Further effects and possible collateral damages require some more thinking, but we'll do this.


#9

XEQ and ENTER will be exempt for obvious reasons.

Why catalogue? Pauli is Australian (British Empire) and Walter and I are neutral in this respect. I decided for myself to adhere to British spelling while talking about WP 34S.


#10

And why 'catalog' in the manual then? Very simple: It saves two letters - and I'm very short on space sometimes :-)

#11

I can understand your thinking on XEQ and ENTER. However, I was thinking more along the lines of an implied ENTER as soon as you hit the key.

For example:

Let's assume that the user catalog is invoked by some hidden, fast-to-type sequence like: <h><h><h>, then as soon as the the next key is pressed the user catalog command in that location (if there is one) will execute immediately.

If you had say, prtSTK, as the first user catalog command, then <h><h><h><A> would execute that Print Stack command immediately (or enter it in a program).

If there was a command that required an argument then the command sans argument would be shown on the display as if you had selected it from the standard catalog.

There would then be no reason that I can think of to exclude XEQ and ENTER from the possible mapping of user catalog functions to keys. EXIT, I suppose, would still need to be excluded to allow for an abort.


#12

Quote:
EXIT, I suppose, would still need to be excluded to allow for an abort.

Exactly :-)

#13

What with UP/DOWN? Katie's suggestion looks more like a configurable keyboard than anything else. I have to think about it.

A possible solution could be to precede each command with a label that represents a keycode (LBL 11; STOSTK 00). This would result in executing STOSTK when the user presses A in said catalogue. The question remains: Where to put the access to this to make it useful?


#14

Quote:
Katie's suggestion looks more like a configurable keyboard than anything else.

Exactly :-) But only a temporary one - until any key is pressed: EXIT for canceling, any other for executing the function assigned to it.

The access could be put anywhere - how about f+EXIT ;-)


#15

Quote:
The access could be put anywhere - how about f+EXIT ;-)

We just assigned the print X function to this key.

I still don't like the 'user keyboard' like approach because it deviates to much from what we have on the device. I will give the catalogue approach a first try and see if you like it or not.

CPX h-CAT seems appropriate. I'd prefer h (hold)+CAT but I know that Walter doesn't like any shift hold combinations.


#16

Quote:
I still don't like the 'user keyboard' like approach because it deviates to much from what we have on the device.

Yes, I agree. Especially executing the function _immediately_ is quite dangerous - who would remember more than 30 key assignments (even if he assigned them himself)!?
Quote:
I will give the catalogue approach a first try and see if you like it or not.

CPX h-CAT seems appropriate. I'd prefer h (hold)+CAT but I know that Walter doesn't like any shift hold combinations.


Why not any other key (e.g. [->] or XEQ) after CPX that has no complex function? This would need only 2 keystrokes (and [CPX][->] would be quite fast because they are side-by-side).

BTW, another question, Marcus:

Would it be possible to implement for the already existing catalogs, that each of them remembers the last selected position?

As it is now this works only if I re-open the same catalog as before - then I'm on the last command again. But when I use a different catalog in the meantime, then the position of the previous catalog is lost.

It would be nice (and a big improvement of the catalog handling) if every catalog would have its own 'last-command' variable.

Franz


Edited: 13 May 2012, 6:31 a.m.


#17

Quote:
Would it be possible to implement for the already existing catalogs, that each of them remembers the last selected position?

At the moment we don't have the memory for this. We would need to rearrange memory and reduce the number of program steps.

#18

Quote:
At the moment we don't have the memory for this. We would need to rearrange memory and reduce the number of program steps.

Well, maybe I should have added that it won't be necessary to retain these catalog-positions for an OFF/ON switching - it would be enough during one session. So volatile RAM would be sufficient, maybe there's some of this one still available?

Edited: 13 May 2012, 8:16 a.m.


#19

We don't have any IDLE surviving RAM left either. Most of the RAM is lost while the keyboard is idle.

Edited: 13 May 2012, 8:19 a.m.

#20

Quote:
EXIT, I suppose, would still need to be excluded to allow for an abort.

Not necessarily: Instead of EXIT there could be a time-out.

Speaking about time, I can think of another method to invoke the USER CAT function on a key. Right now, when pressing and holding a key, the function of that key is shown and after a short time NULL. What about the following:

press and hold - show original key function for 2 seconds - switch to alternate USER CAT function for the next 2 seconds (if you release the key now, that USER CAT function is executed) - switch to NULL

Quote:
The access could be put anywhere - how about f+EXIT ;-)

f+EXIT is a very handy print shortcut. I would miss that one. :-(

Edited: 13 May 2012, 2:34 a.m.


#21

Quote:
press and hold - show original key function for 2 seconds - switch to alternate USER CAT function for the next 2 seconds (if you release the key now, that USER CAT function is executed) - switch to NULL

Too complicated I'm afraid. Everything that has to do with timing ends up as very convoluted unreadable code scattered across multiple places. I have no intention to add more of this.

#22

Too bad, I thought it had a very elegant touch to it... :-(

While I follow your reasoning, I would not have imagined it to be significantly more complicated to put a second layer of 'hold and wait' in, when the function-to-NULL-switch is already there.

What about the idea to NULL out the USER CAT function by holding the key and thus not needing an EXIT?

Edited: 13 May 2012, 5:14 a.m.


#23

Alexander, the whole user keyboard business is a bad idea in my opinion. I've implemented the simple approach: Write a program named 'CAT', put all commands in it you like, then hit CPX h CAT and you are there. As an alternate access path I have implemented h (hold) CAT. This is the only way to access the catalogue when integer mode is active because the latter blocks the CPX key.


#24

Quote:
I've implemented the simple approach: Write a program named 'CAT', put all commands in it you like, then hit CPX h CAT and you are there.

I've now tried this new user-catalog and in principle it works fine. :-)

I've only found one problem:

Since it's not a good idea to keep this 'CAT' program im RAM, I've put it into the flash and then removed it from RAM.

After a re-start of the calculator this user-catalog isn't found automatically in flash, i.e. it shows "???" if you call it with CPX[h]CAT. You have first to set the PC into this 'CAT' program in flash to get it working - I guess this should still be changed.

And the need for 3 keystrokes [CPX][h][CAT] is indeed a bit much effort in my opinion ...

Franz


Edited: 13 May 2012, 9:32 a.m.


#25

I'm open to suggestions for an easier assignment. The bug you found shouldn't happen and will be fixed.


#26

Quote:
I'm open to suggestions for an easier assignment.

Well, e.g. a combination of [CPX] and [->] would be quite comfortable (and fast to type), or [XEQ][XEQ] (even faster).

But of course [CPX][h][CAT] is indeed the most consistent position for a user-catalog, I guess I'm just a bit too lazy when it comes to typing ... ;-)

Edited: 13 May 2012, 10:21 a.m.


#27

Try a right click on CAT in the Windows emulator. This emulates a h (hold) sequence. Holding down the h key on the keyboard while clicking into CAT will do, too.

The next commit will fix the bug you found.

Edited: 13 May 2012, 10:25 a.m.


#28

Quote:
Try a right click on CAT in the Windows emulator. This emulates a h (hold) sequence.

Yes I know, but this requires that I click h once more to switch it off again.
Quote:
Holding down the h key on the keyboard while clicking into CAT will do, too.

Yeah, that's better, but requires 2 hands (and usually I'm working on my netbook while I'm lying on the couch). ;-)
#29

Quote:
The next commit will fix the bug you found.

Yep, user-catalog works fine now in SVN 3030! :-)

Thanks,

Franz


#30

And a single right click on CAT will do (not on h!).


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-41 CATALOG Siegfried (Austria) 3 421 05-22-2013, 02:20 PM
Last Post: Ángel Martin
  [hp41] reading the catalog under program control Wolfgang 3 485 02-25-2013, 01:32 PM
Last Post: Dan Grelinger
  [WP34S] WP34S firmware on the AT91SAM7L-STK dev kit? jerome ibanes 1 372 10-04-2012, 04:59 PM
Last Post: Paul Dale
  Lovely old catalog picture (Commodore) Gene Wright 4 512 06-07-2012, 11:31 PM
Last Post: Bruce Bergman
  HP-75 CATALOG 2.8 robertoataulfo 0 203 12-30-2011, 04:24 PM
Last Post: robertoataulfo
  HP-75 CATALOG 2.7 robertoataulfo 0 193 12-26-2011, 07:03 PM
Last Post: robertoataulfo
  HP-75 CATALOG 2.6 robertoataulfo 0 244 12-21-2011, 07:02 AM
Last Post: robertoataulfo
  [ilper] Expert in "C" Please robertoataulfo 2 345 12-19-2011, 06:33 PM
Last Post: Christoph Giesselink
  HP-75 CATALOG 2.5 robertoataulfo 0 216 12-17-2011, 09:41 AM
Last Post: robertoataulfo
  HP-75 CATALOG 2.4 robertoataulfo 0 207 12-15-2011, 08:02 AM
Last Post: robertoataulfo

Forum Jump: