The Museum of HP Calculators

HP Forum Archive 19

[ Return to Index | Top of Index ]

New addition speed test (updated with results as of 20100602 1pm CDT) ...add machines / methods --- new champion Casio FX-9860g Slim
Message #1 Posted by gene wright on 31 May 2010, 9:26 a.m.

Presently in order from fastest to slowest.

I'd like to get a list of speeds for a much simpler program, that ONLY goes after one thing: loops of addition.

LBL 01 + GTO 01

where the stack contains 0 1 1 1 on 4 level machines. In other words, start with 0 and do repeated additions of 1 for 60 seconds. What is the result? I know Xerxes' test checks many other things, but how do they stack up with this?

Please post:

The machine used Your count after 60 seconds Your program code.

=============================================

Casio fx-9860g Slim Compiled C program SDK V 1.0
Count: 349,700,000
Code:
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
unsigned long int counter = 0;
Bdisp_AllClr_DDVRAM();
do {
counter++;
} while (counter < 349700000);
locate(1,5);
Print((unsigned char*)" end");
while(1){
GetKey(&key);
}

return 1; }

HP-12C+, Scott’s custom integer firmware, overclocked to 48.75 MHz Count: 261,602,459 Code: Unspecified

HP 50g 2.15, HPGCC, 75MHz Count: 161,722,281 Code: #include <hpgcc49.h> int main(void) { unsigned int c=0; unsigned int volatile * GPFDAT = (int*) 0x7A00054;

sys_slowOff(); //press ON to stop while(!(*GPFDAT&1)) c++; sat_push_zint_llong(c); return 0; }

HP-12C+, Scott’s custom firmware Count: 10,794,647 Code: Do { ++x; } while ((((*(unsigned long int*)PIOC_PDSR) & c_mask)==c_mask));

HP-71B USA:2504A00223 HP71:1BBBB FTH:1A, year of production 1984? Count: 1,069,543 Code: Forth + Assembler: ADD1 D.

Press any key (except ON) to stop counting. Count => double length value on the stack.

First assemble ADD1 into the Forth dictionary:

File: ADD1 FORTH WORD 'ADD1' ** overflows in about 470 secs .... P= xx where xx>6 gives more time P= 6 C=0 A A=0 WP LOOP A=A+1 WP C=IN // Keyboard touched (except ON key !) ?C=0 A GOYES LOOP D1=D1- 5 DAT1=A A ASR W ASR W ASR W ASR W ASR W D1=D1- 5 DAT1=A A RTNCC END

BR

HP 30b with TSTSYS ON Count: 531,131 Code: LBL 00 ISG 0 Stop GOTO 00, with 0 pre-stored in 0. Result indicates count of loops in one minute. Each loop adds 1 to value in memory 0. (as first program in memory)

FX-9860G SD Fast Mode Count: 370,230 Code: Lbl 0 : Isz A : Goto 0

FX-9860G SD Fast Mode Count: 237,780 Code: Lbl 0 : Ans+1 : Goto 0

HP 30b with TSTSYS ON Count: 222,578 Code: LBL 00 + GOTO 00 (as first program in memory)

HP 30b with TSTSYS ON Count: 209,038 Code: LBL 00 STO+0 GOTO 00 with 0 pre-stored in 0 and 1’s filling the stack (as first program in memory)

FX-9860G SD Fast Mode Count: 206,250 Code: 0->A : Lbl 0 : A+1->A : Goto 0

FX-9860G SD Count: 177,230 Code: Lbl 0 : Isz A : Goto 0

HP 50g (SysRPL bint) Count: 124,445 Code: !NO CODE !RPL :: ZERO BEGIN #1+ GETTOUCH UNTIL DROP ; @

FX-9860G SD Count: 110,140 Code: Lbl 0 : Ans+1 : Goto 0

FX-9860G SD Count: 97,950 Code: 0->A : Lbl 0 : A+1->A : Goto 0

HP 12c+ Count: 78,640 Code: + GTO 01

HP 30b Count: 72,517 Code: LBL 00 + GOTO 00 (as first program in memory)

HP 9825 B Count: 59,568 Code: 0->A; "start"; A+1->A; gto "start"; end

HP 50g (SysRPL floating point) Count: 56,994 Code: !NO CODE !RPL :: BEGIN %1+ GETTOUCH UNTIL DROP ; @

Casio fx-9860G Slim Count: 55,924 Code: 0->A Lbl 0 A+1->A Goto 0

HP-9100A SERIAL NUMBER 816-01071 (1971?) Count: 49,391 Code: +, GO TO 00

HP 9815S Count: 47,592 Code: 000 + 001 GOTO 000

HP-9100B Count: 47,394 Code: +, GO TO, 0, 0

HP-71B Forth Xerxes: COUNT: 46,575 Code: Forth : XERXES 1 SWAP 0 DO 1+ LOOP ; 46575 XERXES DROP BYE

HP 50g Count: 31,849 Code: 1. << DO 1. + UNTIL 0. END >>

HP 9815A/S Count: 31,156 Code; LBL, A, 1, +, GTO A

HP 48gII Exact mode (old version) Count: 28,160 Code: 1. << DO 1. + UNTIL 0. END >> EVAL

HP 48gII Count: 26,439 // Approx Mode Code: << WHILE 1 REPEAT 1. + END >>

TI-83+ SE Count: 24,840 Code: Lbl 0 : Ans+1 : Goto 0

HP 85 Count: 23,605 Code: 10 Let A=0; 20 Let A=A+1; 30 goto 20; 40 END

HP-75C (1982) Count: 21,717 Code:&#8232;10 A=0&#8232;20 A=A+1 @ GOTO 20&#8232;30 END

TI-81 Count: 20,191 Code: Lbl A : Ans + 1 : Goto A : End

HP 9810A Count: 15,355 Code LBL, 1, +, GTO, 1

TI-81 Count: 15,116 Code: Lbl A : B + 1 > B : Goto A : End

TI-84 Silver Edition Count: 13,838 Code: Lbl 1:A+1->A: Goto 1

TI-83 Count: 12,986 Code: Lbl B: ans +1: goto B

HP 48GX Count: 11,636 Code: << WHILE 1 REPEAT 1 + END >>

TI-85 Count 11,100 Code: Lbl A : Ans + 1 : Goto A : End

Psion Organiser II CM (1997) Count: 10,949 Code:&#8232; LOCAL a&#8232;a=1&#8232;DO&#8232;a=a+1&#8232;UNTIL KEY$="S"&#8232;PRINT a&#8232;GET

HP-48G Count: 10,726 Code: << WHILE 1 REPEAT 1 + END >>

TI-83+ Count 10,385 Code: Lbl A : Ans + 1 : Goto A : End

HP 33s Count: 10,097 Code: LBL A + GTO A

TI CC-40 Count: 9,339 Code: 10 A = A+ 1 : 20 GOTO 10

TI-89 Titanium Count: 9,339 Program: aa():Prgm:Lbl b:a+1->a:Goto 1: EndPrgm

TI-83 Count: 8,106 Code: LBL B, A+1>>A, goto B

Casio fx-7000GB Result: 7,437 Code: LbL 1; A+1->A; Goto A

HP-48SX Count: 7,352 Code: Unknown

FX-603P Count: 7,240 Code: AC 1 + + LBL 0 = GOTO 0

HP-42s FAST MODE S/N 2849A with goose disabled Count: 6,485 Code: CLLCD LBL 01 + GTO 01

HP-32s Count: 5,973 Code: LBL A + GTO A

TI-92 Count: 5,686 Code: 0->a Lbl aa a+1->a Goto aa

HP-28S Count: 5,677 Code: HOME 1 << WHILE 1 REPEAT 1 + END >> EVAL

HP 50G (normal speed) Count: 5,510 Code: << 1 + A >> stored in A, start with 1 on stack line 1:

HP 35s Count: 5,504 Code: B001 LBL B B002 STO+ Z B003 GTO B002, with Z initialized to 0

TI-86 Count 5,347 Code: Lbl A : Ans + 1 : Goto A : End

FX-5800P Count: 5,340 Code: Lbl 0 : Ans+1 : Goto 0

PC-1247 Count: 5,180 Code: 1:A=A+1:GOTO1

HP 20S Count: 4,837 Code: LBL A, +, GTO A

HP-32sii Count: 4,715 Code: LBL A, +, GTO A

HP-42s FAST MODE S/N 2849A Count: 4,419 Code: LBL 01 + GTO 01

HP-71B Count: 4,320 Code:

10 DESTROY A @ A=0 20 ON TIMER #1,60 GOTO 40 30 A=A+1 @ GOTO 30 40 DISP A

HP 48gII (Original 3 batteries, NO USB) Count: 4,296 Code: << TICKS 8192 60 * + << -> t << DO 1. + UNTIL TICKS t >= END >> >> EVAL >>

HP-20S Count: 4,170 Code: Unknown

HP 35s Count: 3,652 Code: LBL B, +, GTO B001

TI-86 Count: 3,612 Code: Lbl B:1+A->A:Goto B

HP 39gs Count: 3,607 Code: 1->A: DO A+1->A UNTIL A<=0 END:

Aurora HP 12c clone Count: 3,554 Code: +, GTO 01

TI-95 Count: 3,350 counts Code: 1 + GTO 0000

Radio Shack PC-2 Count: 3,317 Code: 1: A=A+1 2: GOTO 1 ; start with 0 stored in A.

Casio fx602p Count: 3,111 Code: AC 1++ LBL1 = GOTO1

HP 48gII (Original 3 batteries, NO USB) Count: 3,088 Code: << WHILE 1 REPEAT 1. + END >>

HP-42S with "goose" disabled. Non-fast mode. Count: 3,067 Code: CLLCD, LBL 00 + GTO 00

HP 48gii Exact mode (Original 3 batteries, NO USB) Count: 3,036 Code: << WHILE 1 REPEAT 1 + END >>

TI-80 Count 2,279 Code: Lbl A : Ans + 1 : Goto A : End

HP-42S Count: 2,115 Code: LBL 00 + GTO 00

HP-41CY Turbo Count: 1,982 Code: LBL 00, +, GTO 00

HP 9G Count: 1,470 Code: A=0; Lbl 0=; A=A+1; GOTO 0; END

HP 12c plat 25th anniv. Count: 1,435 Code: +, Goto 001

HP 12c platinum Count: 1,386 Code: + GTO 001

HP41CX Synthetic: Count: 1,298 Code: 01 LBL "X” 02 1 03 "SeeRemark"

!!! Synthetic string 9 long Decimal 249 96 7 117 131 131 131 64 178 176 this places 96 7 in N to be transferred in reg b, resulting in program counter in reg M, byte 6. In reg M synthetic code results in: RDN ENTER ENTER ENTER + GTO 01. The GTO 01 is a COMPILED GTO jumping to the + before it! You can SST this code but the GTO 01 takes a long time to reposition! Yes, this can be optimized still a bit, but the loop is using 3 bytes!

04 0 05 X<> N 06 BEEP 07 STOP 08 STO b 09 END

INSTRUCTION: READ THIS XEQ "X" wait until beep, 000000,06 is displayed press [R/S] to start counting press [R/S] after 60 seconds, write down the count perform a GTO .. !!! because the program pointer is in reg M, switching to program mode and TOUCHING A KEY results in MEMORY LOST!

CASIO PB-700 Count: 1,282 Code: 1: A=A+1 2: GOTO 1 ; start with 0 stored in A.

Sharp PC-1251 Count: 1,277 Code: 1: A=A+1 2: GOTO 1 ; start with 0 stored in A.

HP41CX: Count 1,075 Code: LBL 01 + GTO 01

HP 41c Count: 1,063 Code: LBL 01 + GTO 01

HP-65 Count: 578 Code: Lbl 1, +, Goto 1

HP-10C Count: 514 Code: LBL 0 + GTO 0

HP-25 Count: 512 Code: 01 + 02 GTO 01

HP 12c original (mfg. 1985) Count: 500 Code: +; GTO 01

TI-57 Count: 498 Code: + 1 RST

HP 25 Count: 483 Code: + GTO 01

TI SR-56 Count: 461 Code: + 1 = RST

TI SR-52 Count: 425 Code: + 1 = RST

HP-38C Count: 387 Code: + GTO 01

TI 58C Count: 387 Code: + 1 = RST

HP-29C Count: 361 Code: LBL 0; +; GOTO 0

SHARP PC-1211 Count: 358 Code 1:Z=Z+1:GOTO 1 (starting with Z=0)

HP 11c Count: 353 Code: Lbl 1, +, Goto 1

HP-33c (mfg. 1982) Count: 319 Code: 01 + 02 GTO 01

HP 67 Count: 349 Code: 1 CHS STO I + GOTO (i)

HP 55 Count: 312 Code: + GTO 01

HP-19c Count: 301 Code: LBL 1 + GTO 1

HP 15c (mfg. 1983) Count: 297 Code: LBL A; +; GTO A

HP 16c: 293 (float 4) Count: 293 Code: LBL A + GTO A

HP 34c: (I program) with -1 stored in I Count: 277 Code: LBL A + GTO f I

HP 34c (mfg. 1981) Count: 269 Code: LBL A; +; GTO A

TI-55 Count: 267 Code: + 1 RST

HP 34c: Count: 259 Code: LBL A + GTO A

HP 16c Count: 245 Code: Lbl 1, +, Goto 1

HP 16c: 230 (decimal, wsize 16, 2-complement) Count: 230 Code: LBL A + GTO A

HP 67 Count: 226 Code: LBL 1 + GTO 1

HP-97 Count: 223 Code: LBL1; +; GOTO 1

Texas Instrument TI-57LCD Count: 216 Code: LBL_01 1 + GTO_01

TI-66 Count: 210 Code: + 1 = RST

TI-65 Count: 205 Code: 1 + RST

Texas Instrument TI-57LCD Count: 195 Code: 1 + RST

TI-55 Count: 189 Code: + 1 = RST

TI BA 55 Count: 139 Code: + 1 = RST

Human hand Tapping + key Count: 133

Elektronika MK-61 Count: 106 Code: + GSB 00

TI-62 Count: 100 Code: 1 + RST

Commodore P50 Count: 97 Code: + 1 = SKZ GOTO 00 R/S ( Start with -97 )

TI-59 with RPN Module: Count: 74 HP-67 code: LBL 1 + 1 GOTO 1 The RPN Module translated that to: LBL LNX PGM 51 A 1 PGM 12 A GTO LNX

Edited: 2 June 2010, 2:06 p.m. after one or more responses were posted

      
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #2 Posted by Don Shepherd on 31 May 2010, 10:38 a.m.,
in response to message #1 by gene wright

Gene, very interesting. Who would have thought that the lowly 12c would be number one in any speed contest?

I agree with you regarding emulator results, keep 'em outta here.

            
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #3 Posted by Tim Wessman on 31 May 2010, 11:42 a.m.,
in response to message #2 by Don Shepherd

I don't think an overclocked ARM chip doing nothing but looping and adding counts as a 12c anymore. . .

TW

                  
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #4 Posted by Martin Pinckney on 31 May 2010, 11:49 a.m.,
in response to message #3 by Tim Wessman

Good point. It says "custom firmware". Is this anything remotely similar to a 12c calculator?

                  
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #5 Posted by Israel Otero on 31 May 2010, 1:33 p.m.,
in response to message #3 by Tim Wessman

Hi (from Puerto Rico)

Quote:
I don't think an overclocked ARM chip doing nothing but looping and adding counts as a 12c anymore. . .

A custom firmware design or overclocked calculator is not a product than anyone here could get and have a use as intended.

Is my opinion to consider for testing those machines that in one time or the other were sold or there is usually a market for them.

                        
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #6 Posted by Tim Wessman on 31 May 2010, 4:10 p.m.,
in response to message #5 by Israel Otero

Well, the custom firmware of which he is referring is either that function stuck in as a part of a larger software program which does allow calculations and so on, or else it just boots, begins to run, and then waits for the button press to stop it.

Running full out at 36MHz, the battery will be completely drained in about 6 hours. That is why you probably don't want to run your 12c+ or 20/30b in test system mode. Unless you've got a lot of spare coin cells that is. . . :-)

TW

                              
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #7 Posted by Katie Wasserman on 31 May 2010, 8:34 p.m.,
in response to message #6 by Tim Wessman

Tim,

How does one put a 12C+ into test mode anyway? I think it was at one point ON+[g] but that's not true any longer.

-Katie

                              
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #8 Posted by Israel Otero on 1 June 2010, 12:45 a.m.,
in response to message #6 by Tim Wessman

Thank you Tim for explaining that to me. ;-)

                  
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #9 Posted by Han on 2 June 2010, 9:27 a.m.,
in response to message #3 by Tim Wessman

I'm pretty sure that if you wrote a native ARM loop on the 50G, you would obtain a result that is even faster than that of the 12C. HPGCC is still slow with its overhead.

Also, the HP50G is faster when calling UsrRPL commands that operate on reals as opposed to integers.

            
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #10 Posted by Donald Williams on 1 June 2010, 2:28 p.m.,
in response to message #2 by Don Shepherd

While on the topic of irrelevant speed tests, I did another pass on the Casio fx-9860g Slim. Using the Casio SDK I compiled a simple DO LOOP with an iteration count in the statement of the loop. By trial and error I hard coded the loop count and tested for the loop exit. The counter value had to be set for an iteration of 350,000,000 for the loop to last for 60 seconds. Of course the results of this type of test are, once again trivial, since the tools are not available to the casual user, but the fx-9860 is one really fast calculator.

Edited: 2 June 2010, 11:00 a.m.

      
Re: New addition speed test (updated with results as of 8am CDT 20100531) ...add machines / methods
Message #11 Posted by Bart (UK) on 31 May 2010, 6:54 p.m.,
in response to message #1 by gene wright

And another:

Machine: Casio fx-7000GB
Result: 7,437
Code: LbL 1; A+1->A; Goto A (start with 0 in A)


Machine: Texet GR4F-x3 (Casio fx-7000 clone)
Result: 1,744
Code: LbL 1; A+1->A; Goto A (start with 0 in A)

Edited: 1 June 2010, 4:31 a.m.

      
Re: Faster results for TI graphic machines
Message #12 Posted by Palmer O. Hanson, Jr. on 31 May 2010, 10:55 p.m.,
in response to message #1 by gene wright

Gene:

TI CC-40 Count 9,339 Program: 10 A = A+ 1 : 20 GOTO 10

If the program it placed at higher line numbers the execution slows down.

The entries already submitted for the TI graphic machines have typically used a program such as

Lbl A : B + 1 > B : Goto A : End

which works but which is slowed considerably by the storing and recalliing of the contents of B. A faster program will be

Lbl A : Ans + 1 : Goto A : End

where the result is recovered by pressing 2nd ANS ENTER . This method avoids using a memory register which is similar in a way to the RPN solutions which use only the stack. For the TI-81 the entries for your table would be

TI-81 Count 20,191 Code: Lbl A : Ans + 1 : Goto A : End

TI-81 Count 15,116 Code: Lbl A : B + 1 > B : Goto A : End

Results using the Ans method for other TI graphic machines are

TI-80 Count 1,809 Code: Lbl A : Ans + 1 : Goto A : End

TI-83+ Count 6,860 Code: Lbl A : Ans + 1 : Goto A : End

TI-85 Count 11,100 Code: Lbl A : Ans + 1 : Goto A : End

TI-86 Count 5,347 Code: Lbl A : Ans + 1 : Goto A : End

where I don't know why the TI-81 is so much faster. It seems to me that we addressed that in this forum before but I can't find it.

            
Re: Faster results for TI graphic machines
Message #13 Posted by PatrickR on 1 June 2010, 3:14 a.m.,
in response to message #12 by Palmer O. Hanson, Jr.

Your TI83+ is a lot slower than my TI83. They both have the same chip. Mine: 8106 Code: LBL B, A+1->A, goto B Could it be that the use of ANS instead of the variable is making a speed difference? I will check on mine later.

edit: I tested following: Lbl B: ans +1: goto b This gave 12986! This is a significantly faster method than assigning to variables. This leaves me even more puzzled why your 83+ is doing nearly half of that.

Edited: 1 June 2010, 6:58 a.m. after one or more responses were posted

                  
Re: Faster results for TI graphic machines
Message #14 Posted by Johnny Bjoern Rasmussen on 1 June 2010, 4:23 a.m.,
in response to message #13 by PatrickR

Very very impressive. I will report back with a couple of calcs / computers not yet listed here.

BTW: Have anyone taken the challenge with an abacus or even with pen and paper? ;-)

Regards!
Johnny

                  
Re: Faster results for TI graphic machines
Message #15 Posted by Palmer O. Hanson, Jr. on 1 June 2010, 9:01 p.m.,
in response to message #13 by PatrickR

Quote:
Your TI83+ is a lot slower than my TI83. They both have the same chip. Mine: 8106 Code: LBL B, A+1->A, goto B Could it be that the use of ANS instead of the variable is making a speed difference? I will check on mine later.

edit: I tested following: Lbl B: ans +1: goto b This gave 12986! This is a significantly faster method than assigning to variables. This leaves me even more puzzled why your 83+ is doing nearly half of that.


The TI-83+ number I used was for the LBL B : A + 1 : goto B method. I apologize for that.

The correct TI-83+ number for the LBL B : Ans + 1 : goto B was 10,385. I don't know why it's slower than your TI-83.

I also transmitted an incorrect number for the TI-80 with the Ans method. It should have been 2,279.

I will edit the original transmission.

Palmer

                        
Re: Faster results for TI graphic machines
Message #16 Posted by gene wright on 1 June 2010, 9:43 p.m.,
in response to message #15 by Palmer O. Hanson, Jr.

I think I've updated all the responses.

I think what I will do is start a thread tomorrow and ask for any corrections from the original posters.

Then I will put it in the articles section.

Thanks to all.

Note to Palmer: I'm sure some of those early TI machines will be faster if I redo the + 1 = RST to be + 1 RST instead. Will try to redo them.

                              
Re: Faster results for TI graphic machines
Message #17 Posted by Thomas Chrapkiewicz on 2 June 2010, 8:56 a.m.,
in response to message #16 by gene wright

It would be nice to have the data in a Spreadsheet (or at least a comma separated variable) file for analysis.

TomC

            
Re: Faster results for TI graphic machines
Message #18 Posted by Xerxes on 1 June 2010, 12:55 p.m.,
in response to message #12 by Palmer O. Hanson, Jr.

Some additional results using the "Ans+1" method:

Code: Lbl 0 : Ans+1 : Goto 0

FX-5800P -> 5,340

TI-83+ SE -> 24,840

FX-9860G SD -> 110,140

FX-9860G SD Fast Mode -> 237,780

      
Re: New addition speed test (updated with results as of 20100601) ...add machines / methods
Message #19 Posted by Ken Shaw on 1 June 2010, 11:55 a.m.,
in response to message #1 by gene wright

Human hand tapping + key
on a 17BII (which is otherwise excluded from this test)
Count: 458

This beats the previous poster's human hand result, but I must disclose that the displayed count continued to climb about half a dozen or more after I stopped tapping, so there is a non-trivial keyboard buffer on this machine, which I wasn't really aware of.

Edited: 1 June 2010, 11:56 a.m.

            
Re: New addition speed test (updated with results as of 20100601) ...add machines / methods
Message #20 Posted by Bart (UK) on 1 June 2010, 12:14 p.m.,
in response to message #19 by Ken Shaw

I tried to explain in a previous post that it was using the Elektronika MK-61, it just did not accept inputs any faster. I was sure others could do faster on another calculator - as you have proven.

Edit: I was actually merely trying to see if I could beat the running of a program on the MK-61, and indeed I could :).

Edited: 1 June 2010, 12:20 p.m.

                  
Re: New addition speed test (updated with results as of 20100601) ...add machines / methods
Message #21 Posted by Ken Shaw on 1 June 2010, 2:24 p.m.,
in response to message #20 by Bart (UK)

And I was able to beat my 15c, but (sadly) unable to beat my 12c

:-(

      
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #22 Posted by Xerxes on 1 June 2010, 2:12 p.m.,
in response to message #1 by gene wright

FX-9860G SD
Count: 177,230
Code: Lbl 0 : Isz A : Goto 0

FX-9860G SD Fast Mode Count: 370,230 Code: Lbl 0 : Isz A : Goto 0

            
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #23 Posted by gene wright on 1 June 2010, 2:52 p.m.,
in response to message #22 by Xerxes

Xerxes, STOP turning in such fast times! :-)

Seriously, the 9860 SD in fast mode is impressive. How does one put it into fast mode? Might just have to pick up one of those machines.

                  
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #24 Posted by Xerxes on 1 June 2010, 4:13 p.m.,
in response to message #23 by gene wright

You need the "cpu speed changer" add-in: http://www.casiocalc.org/to/fsdisplay.php?cat2disp=FS.FX-9860G.casm

      
Re: New addition speed test OT - I think she should get honorable mention
Message #25 Posted by Norman Dziedzic on 1 June 2010, 3:19 p.m.,
in response to message #1 by gene wright

http://www.uniquedaily.com/worlds-fastest-calculator-operator/

      
Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #26 Posted by Raymund Heuvel on 1 June 2010, 3:22 p.m.,
in response to message #1 by gene wright

Going for the first place with available approach ....

HP-71B USA:2504A00223 HP71:1BBBB FTH:1A, year of production 1984? Count: 1,069,543 Code: Forth + Assembler: ADD1 D.

Press any key (except ON) to stop counting. Count => double length value on the stack.

First assemble ADD1 into the Forth dictionary:

File: ADD1 FORTH WORD 'ADD1' ** overflows in about 470 secs .... P= xx where xx>6 gives more time P= 6 C=0 A A=0 WP LOOP A=A+1 WP C=IN // Keyboard touched (except ON key !) ?C=0 A GOYES LOOP D1=D1- 5 DAT1=A A ASR W ASR W ASR W ASR W ASR W D1=D1- 5 DAT1=A A RTNCC END

BR

Ray

            
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #27 Posted by Egan Ford on 1 June 2010, 4:16 p.m.,
in response to message #26 by Raymund Heuvel

Quote:
Going for the first place with available approach ....
HP 50g 2.15, HPGCC, 75MHz: 24,041,072
#include <hpgcc49.h>
int main(void)
{
    unsigned int c=0;
    sys_slowOff();
    while(!keyb_isAnyKeyPressed())
        c++;
    sat_push_zint_llong(c);
    return 0;
}
Notes:
  1. keyb_isAnyKeyPressed() may be slowing me down. May look for alternative.
  2. Someone else can do the ARM ASM version.

Edited: 1 June 2010, 4:21 p.m.

                  
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #28 Posted by Egan Ford on 1 June 2010, 4:36 p.m.,
in response to message #27 by Egan Ford

Quote:
keyb_isAnyKeyPressed() may be slowing me down. May look for alternative.
Faster version:

HP 50g 2.15, HPGCC, 75MHz: 161,722,281

#include <hpgcc49.h>
int main(void)
{
    unsigned int c=0;
    unsigned int volatile * GPFDAT = (int*) 0x7A00054;
    sys_slowOff();
    //press ON to stop
    while(!(*GPFDAT&1))
        c++;
    sat_push_zint_llong(c);
    return 0;
}
I guess the next step would be to run at 192MHz, but then I'd have to flash my 50g with a special 2.09 firmware. Too lazy. ARM ASM should still be better.

Edited: 1 June 2010, 4:37 p.m.

                        
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #29 Posted by Raymund Heuvel on 1 June 2010, 6:15 p.m.,
in response to message #28 by Egan Ford

Considerations:
register unsigned int c=0;
register unsigned char volatile * GPFDAT = (char*) 0x7A00054

could speed up, depending on compiler and processor.

I have no ARM neither 50G knowledge.

The Titan counting with C=C+1 A versus C=C+1 W results in +30% using only the A field. (Therefore the WP construction).

BR.

Ray

                              
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #30 Posted by Egan Ford on 1 June 2010, 7:11 p.m.,
in response to message #29 by Raymund Heuvel

After I posted I did try 'register c' and also used a compiler #define for GPFDAT. No increase. Modern compilers are pretty smart.

Code:

#include <hpgcc49.h>
#define GPFDAT (int*)0x7A00054
int main(void)
{
    register unsigned int c=0;
    sys_slowOff();
    while(!(*GPFDAT&1))
        c++;
    sat_push_zint_llong(c);
    return 0;
}
                                    
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #31 Posted by Scott Newell on 1 June 2010, 10:13 p.m.,
in response to message #30 by Egan Ford

Quote:
After I posted I did try 'register c' and also used a compiler #define for GPFDAT. No increase. Modern compilers are pretty smart.

Optimizer on? Interrupts off? Cache on? At 75MHz, I would expect the ARM9 to whip a ~50MHz ARM7 running from flash with wait states.

                                          
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #32 Posted by Egan Ford on 2 June 2010, 8:22 p.m.,
in response to message #31 by Scott Newell

Quote:
Optimizer on? Interrupts off? Cache on? At 75MHz, I would expect the ARM9 to whip a ~50MHz ARM7 running from flash with wait states.
Yes. No. Yes.

I am a bit stumped as well, but to be honest I didn't really try. If I have time this weekend I'll take a look at the compiler options more closely or try my hand at ARM ASM.

            
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #33 Posted by Egan Ford on 1 June 2010, 5:01 p.m.,
in response to message #26 by Raymund Heuvel

The 71B is still one of the most awesome things ever made.

HP bring back the 71B! :-)

                  
Re: Titan hits back !! Re: New addition speed test (updated with results as of 20100601 noon CDT) ...
Message #34 Posted by Garth Wilson on 1 June 2010, 8:55 p.m.,
in response to message #33 by Egan Ford

Quote:
The 71B is still one of the most awesome things ever made.

HP bring back the 71B! :-)


Yes, it's an absolute travesty, a disgrace, how HP management misunderstood, mistreated, and killed it. So idiotic.

Edited: 1 June 2010, 8:56 p.m.

      
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #35 Posted by Egan Ford on 1 June 2010, 4:58 p.m.,
in response to message #1 by gene wright

Quote:
approach available to everyone

I think this statement is ambiguous. I would argue that any benchmark method is available to anyone.

If you are looking for a way to distinguish relatively easy vs. hard. Then I would suggest 'on-board' vs. external development. I think that is what you were aiming for. That would put my HPGCC results up there with Scott's.

            
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #36 Posted by gene wright on 1 June 2010, 5:01 p.m.,
in response to message #35 by Egan Ford

I agree it is ambiguous.

I mean...

Should it be limited to "using the machine as-is out of the box without being hooked up to any external devices?"

Should it be "using code that can be typed in / edited on the machine even if using an external tool previously loaded into the machine?"

etc. :-)

                  
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #37 Posted by Egan Ford on 1 June 2010, 5:37 p.m.,
in response to message #36 by gene wright

The later. Regardless on how the code got into the machine any should be able to reproduce the results with only the machine.

For Scott and myself it is clear. For HP41 M-code, its clearly easier to do this externally, however it is possible to do M-code on-board (e.g. HEPAX). Why suffer if you do not have to?

Perhaps internal vs. external too limiting. Perhaps stock vs. modified? e.g. HPGCC code runs on unmodified 50gs. Scott's 12C+ is only a 12C+ shell; its soul was ripped out and is now possessed by something more powerful. Of course, what does modified mean? Is using a FORTH or HEPAX module a modification?

Unsure if this really matters.

                        
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #38 Posted by gene wright on 1 June 2010, 5:48 p.m.,
in response to message #37 by Egan Ford

True, and I won't worry about it. With each entry showing the code/method used, it should be ok.

For being about to get fast results VERY easy, the following three machines really stand out (to me):

HP 30b

FX-9860G SD

HP 12c+

I give them an extra round of applause.

So far, the solution that had me laughing and applauding for its audacity is certainly Raymund's synthetic HP 41CX solution. :-)

I'm also quite sad that my FAST MODE HP-42s that I've cherished all this time is no longer looking quite so fast. :-(

                              
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #39 Posted by Egan Ford on 1 June 2010, 7:23 p.m.,
in response to message #38 by gene wright

Quote:
So far, the solution that had me laughing and applauding for its audacity is certainly Raymund's synthetic HP 41CX solution. :-)
Personally I admire Raymund's 71B FORTH/ASM solution the most. I'll double my admiration if Raymund developed, tested, and debugged his program on the 71B. I've never written a 71B program on the 71B. I always use EMU71 and then HP-IL it to my 71B.
            
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #40 Posted by Raymund Heuvel on 1 June 2010, 5:40 p.m.,
in response to message #35 by Egan Ford

I agree it is ambiguous. I just copied it from the (previous) list of Xerxes. Nice marketing teaser! (You couldn't see the smile on my face ...)

Maybe we should introduce A and B grades, The A for the technical/performance part and B for the way it is implemented.

Then I would strongly promote my 'STO b' solution on the 41CX (again a smile ..).

Although your C Solution copes with the level "Real programmers don't use Pascal", resulting in a best note for this!

      
Re: New addition speed test (updated with results as of 20100601 noon CDT) ...add machines / methods
Message #41 Posted by Marc van Lemmen on 1 June 2010, 5:15 p.m.,
in response to message #1 by gene wright

Hello Gene,

Casio fx602p
Count: 3,111
Code: AC 1++ LBL1 = GOTO1

TI-57
Count: 498
Code: + 1 RST

Commodore P50
Count 97
Code: + 1 = SKZ GOTO 00 R/S ( Start with -97 )

TI-59 with RPN Module:
Count 74
HP-67 code: LBL 1 + 1 GOTO 1
The RPN Module translated that to : LBL LNX PGM 51 A 1 PGM 12 A GTO LNX
( HP-67 Count: 178 )

Marc.

      
Re: New addition speed test (updated with results as of 20100601 8pm CDT) ...add machines / methods
Message #42 Posted by marcelo vanti(brasil) on 1 June 2010, 10:34 p.m.,
in response to message #1 by gene wright

Hello,
HP 67
Code:
1
CHS
STO I
+
GOTO (i)
Count: 349

      
Re: New addition speed test (updated with results as of 20100601 8pm CDT) ...add machines / methods
Message #43 Posted by John Keith on 2 June 2010, 10:52 a.m.,
in response to message #1 by gene wright

It seems that the UserRPL results for the 50g have gone missing from this version. My result (average of 3 tries) is 31849 for the following code:

 1. << DO 1. + UNTIL 0. END >>

John
      
Re: New addition speed test (updated with results as of 20100601 8pm CDT) ...add machines / methods
Message #44 Posted by Donald Williams on 2 June 2010, 1:33 p.m.,
in response to message #1 by gene wright

Casio fx-9860g Slim Compiled C program SDK V 1.0

Count 349,700,000

Code

int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
unsigned long int counter = 0;
Bdisp_AllClr_DDVRAM();
do {
counter++;
} while (counter < 349700000);
locate(1,5);
Print((unsigned char*)" end");
while(1){
GetKey(&key);
}

return 1;
}

      
Re: New addition speed test
Message #45 Posted by Alex L on 3 June 2010, 2:18 p.m.,
in response to message #1 by gene wright

A few more models...

Sharp EL-9900
23483
Sharp EL-9650
3093
avg, 2 runs. 0=>A, <ON> to break.
Program:
Label X
A+1=>A
Goto X

Casio FX-7500G 15364 av, 2 runs. 0->A, <AC> to break. Program: Lbl 1 Isz A Goto 1

Casio FX-7500G 10692 av, 2 runs. 0., <AC> to break. Ans holds value. Program: Lbl 1 Ans+1 Goto 1

Casio FX-7500G 8878 av, 2 runs. 0->A, <AC> to break. Program: Lbl 1 A+1->A Goto 1

Casio FX-7500G 8105 av, 2 runs. <AC> to break. Program: 0->A Lbl 1 A+1->A Goto 1

Sharp EL-5500II 1510 Sharp EL-5500III 2056 av, 2 runs. A=0, <BRK> to break. Program: 1 A=A+1: GOTO 1

            
Re: New addition speed test
Message #46 Posted by Alex L on 8 June 2010, 11:02 a.m.,
in response to message #45 by Alex L

Another pair of Sharps....

Sharp PC-E500
Count: 16656
Code: 1 A=A+1:GOTO 1

Sharp Wizard OZ-8200 with IQ-707 Scientific Computer card Count: 21914 Code: 1 A=A+1:GOTO 1 Not bad for an organizer!

                  
Re: New addition speed test
Message #47 Posted by Katie Wasserman on 8 June 2010, 3:12 p.m.,
in response to message #46 by Alex L

Quote:
IQ-707 Scientific Computer card

This was the best reason to buy a Wizard. It was a really fast BASIC for a small device with 20 digit BCD math (using double precession), a full DOS-like OS and even (undocumented) calls to machine code along with PEEK and POKE. I used this a lot until I got my HP100LX and later HP200LX.

-Katie

      
Re: New addition speed test (updated with results as of 20100602 1pm CDT) ...add machines / methods --- new champion Casio FX-9860g Slim
Message #48 Posted by Paul Dale on 13 June 2010, 11:50 p.m.,
in response to message #1 by gene wright

I fiddled around with my 16c a bit more and came up with a slightly better result:

    LBL A
    ISZ
    GTO A

In float mode this gave 325 after a minute. In unsigned integer mode 378 (size of the integer didn't seem to make a difference).

Of course, I started with 0 in I.

- Pauli


[ Return to Index | Top of Index ]

Go back to the main exhibit hall