The Museum of HP Calculators

HP Articles Forum

[Return to the Index ]
[ Previous | Next ]


Calculator Benchmark: Loops of addition

Posted by gene wright on 2 June 2010, 2:51 p.m.

Presently in order from fastest to slowest.

This benchmark goes after 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? Alternative methods that count 1 at a time are allowed and included, such as going through an ISG / DSE loop. Long repeated programs of + + + + are not.

The list shows:

The machine used The count after 60 seconds The 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

HP 34s Build 1099 Count: 272,538 Code: LBL A, +, BACK 01

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

Sharp EL-9900 Count: 23,483 Code: Label X A+1=>A Goto X

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

Casio FX-7500G Count: 15,364 Code: Lbl 1 Isz A Goto 1

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 49G Count: 12,351 Code: 1. << DO 1. + UNTIL 0. END >>

The NEWT 41CL logic board upgrade for the HP 41. Code: LBL 00 + GTO 00

1X mode: 1,055 2X Turbo mode: 1,913 5X Turbo mode: 4,153 10X Turbo mode: 6,538 20X Turbo mode: 9,179 50X Turbo mode: 12,022

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

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

HP 49G Count: 11,041 Code: << WHILE 1. REPEAT 1. + 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 >>

Casio FX-7500G Count: 10,692 Code: Lbl 1 Ans+1 Goto 1

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

Casio FX-7500G CountL 8,878 Code: Lbl 1 A+1->A Goto 1

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

Casio FX-7500G Count: 8,105 Code: 0->A Lbl 1 A+1->A Goto 1

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

Sharp EL-9650 Count: 3,093 Code: Label X A+1=>A Goto X

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

Sharp EL-5500III Count: 2,056 Code: 1 A=A+1: GOTO 1

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

Sharp EL-5500II Count: 1,510 Code: 1 A=A+1: GOTO 1

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

TI-59 Count: 635 Code: 1 + RST

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

TI-59 starting with 1 in the display Count: 501 Code: SUM 00 RST

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

TI-57 Count: 498 Code: + 1 RST

TI-59 Count: 492 Code: OP20 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

TI-59 Count: 336 Code: 1 + GTO 000

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: 13 June 2011, 3:11 p.m.

Password:

[ Return to the Message Index ]

Go back to the main exhibit hall