New addition speed test (updated with results as of 20100602 1pm CDT) ...add machines / methods --- new champion Casio F



#2

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


#3

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.


#4

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

TW


#5

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

#6

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.


#7

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


#8

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

#9

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

#10

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.

#11

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.

#12

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.

#13

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.


#14

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


#15

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

#16

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


#17

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.


#18

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

TomC

#19

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

#20

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.


#21

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.


#22

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

:-(

#23

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


#24

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.


#25

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

#26

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

#27

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


#28

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.


#29

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.


#30

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


#31

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;
}

#32

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.


#33

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.

#34

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

HP bring back the 71B! :-)


#35

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.

#36

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.


#37

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. :-)


#38

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.


#39

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. :-(


#40

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.
#41

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!

#42

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.

#43

Hello,

HP 67

Code:

1

CHS

STO I

+

GOTO (i)

Count: 349

#44

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
#45

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;

}

#46

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


#47

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!


#48

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

#49

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


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP Prime finally updated! Les Koller 8 1,418 12-10-2013, 09:25 PM
Last Post: Les Koller
  HP-70 simulator updated Willy R. Kunz 3 744 11-26-2013, 08:20 PM
Last Post: BShoring
  HP Prime - Reset methods bluesun08 3 724 11-21-2013, 09:49 AM
Last Post: Joe Horn
  How to add image to HP Forum Posting Harold A Climer 2 627 11-20-2013, 02:28 PM
Last Post: Han
  48G vs 49G+ User RPL Speed Comparison John Colvin 7 998 11-16-2013, 10:07 PM
Last Post: Han
  ENG button (like Casio calculators) on HP Prime uklo 3 761 11-04-2013, 09:45 PM
Last Post: LHH
  HP-42S ESD self-test Yriarte 2 605 10-24-2013, 09:08 AM
Last Post: Yriarte
  hp prime - sending program results to the stack giancarlo 6 968 10-15-2013, 02:00 AM
Last Post: Giancarlo
  HP Prime complex results Javier Goizueta 0 427 10-06-2013, 12:59 PM
Last Post: Javier Goizueta
  HP Prime Solving Nonlinear System of Equations for Complex Results Helge Gabert 11 1,755 09-30-2013, 03:44 AM
Last Post: From Hong Kong

Forum Jump: