HP Forums

You're currently viewing a stripped down version of our content. View the full version with proper formatting.

I just bought a HP 48G+ just for collecting purposes. It looks almost new, but I am puzzled about the speed of this unit, most functions take more time than I expected (based on my HP41 and 42 experience). Perhaps it is right this way, I don’t know.

I would like to run a simple benchmark to see if this particular unit is OK or not. On a HP 41, I’d write a simple program (infinite loop) just as:

LBL 00

1

+

GTO 00

and see how many iterations took place during, say, one minute.

(In fact, on a HP 41 I would use automatic duplication of the T stack register, or use a ISG loop, but I am trying to keep this example very simple and clear)

I’ve found (as expected) that none of my programming experience in HP25, HP41, HP42 or HP32Sii is of any help. While I am prepared to work through the manuals to learn the HP 48 programming model, I would appreciate any shortcut right now! :-)

Could someone please let me know how to create and run a infinite loop program on a HP 48?

If someone knows, what speed (iterations per minute) should I expect?

Thank you in advance

Andres

Try the following for infinite loops:

WHILE 0 0 SAME REPEAT
/* Body of loop here */
END

Essentially, what's happening is that the loop will repeat for as long as 0 and 0 are the same (i.e., always).

You can use DO...UNTIL instead:

DO
/* Body of loop here */
UNTIL 1 2 SAME END

which will repeat the loop until 1=2 (i.e., will never stop).

-EM

Andres,

A good source for HP48 programs is www.hpcalc.org. Using a loop yields different results depending upon the manner a value is incremented. A basic "infinite" loop is:

DO
UNTIL 0
END

This doesn't count a value. You could add something after the DO before the UNTIL such as:

'A' INCR DROP assuming the variable A exists

or try a stack solution:

0
DO
1 +
UNTIL 0
END

Joe

Thank you Ernie and Joe!

The simplest loop program (just add 1 to the x register and loop back) was run for 1 minute. The results are the number of iterations made by each model (approx):

HP 41 C: 450

HP 42 S: 1750

HP 32 Sii: 3250

HP 48 G+: 11800

I don't have the exact numbers, I am posting this here just as an order of magnitude reference.

Andres,

Just for fun I tried the same loops in System RPL.

This one did about 30,000 in one minute:

``` System RPL code
%0         real  number 0
BEGIN      begin loop
%1+        add real number 1 to item on stack
ATTN?      check if ON key is pressed
UNTIL      end of loop structure```

While this did about 50,000:

```ZERO       binary integer zero
BEGIN
#1+        add binary integer 1 to item on stack
ATTN?
UNTIL```

I'm sure someone knowing assembly can acheive even greater performance.

Joe

As you found out that the 48 would run programs much faster than the 41 or 42. However, you did mentioned that it seemed slow for most functions. I think the 48 is slower in manual calculation because it often has to do its garbage cleaning on its very large stack.