Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
000059r 1 ; p2[0] = 255;
000059r 1 ;
000059r 1 A9 FF lda #$FF
00005Br 1 A0 00 ldy #$00
00005Dr 1 91 rr sta (regbank+2),y
00005Fr 1 ;
00005Fr 1 ; p2[1] = 255;
00005Fr 1 ;
00005Fr 1 C8 iny
000060r 1 91 rr sta (regbank+2),y
000062r 1 ;
000062r 1 ; p2[2] = 255;
000062r 1 ;
000062r 1 C8 iny
000063r 1 91 rr sta (regbank+2),y
INCLUDE D:TERMINAL.LIB
INT a,b,i
CONST none=255
BYTE CH=764, stop
BYTE RTCLOCK=20
MAIN()
BEGIN
RTCLOCK=0
WHILE RTCLOCK < 100 DO
a=a+1
b=a
b=b+1
a=b
i=i+1
ENDWHILE
stop=RTCLOCK
WRITE(i) WRTLN(" iterations")
WHILE CH=none DO ENDWHILE CH=none
END
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
Fast Basic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
INCLUDE D:TERMINAL.LIB
INCLUDE D:GRAPHICS.LIB
CONST NONE=255
INT SAVMSC=88
BYTE CH=764
BYTE RTCLOCK=20,STOP
BYTE COL1=709
BYTE COL2=710
BYTE COL4=712
PROC DRAWBOARD()
INT I1B,I2B,I3B
POINTER SCREEN
BYTE CELL BASED SCREEN
BEGIN
SCREEN=SAVMSC
FOR I3B=1 TO 8 DO
FOR I2B=1 TO 24 DO
FOR I1B=1 TO 4 DO
CELL=255
SCREEN=SCREEN+1
CELL=255
SCREEN=SCREEN+1
CELL=255
SCREEN=SCREEN+4
NEXT
SCREEN=SCREEN+16
NEXT
IF (I3B AND 1) = 0 THEN SCREEN=SCREEN-3 ELSE SCREEN=SCREEN+3 ENDIF
NEXT
END
MAIN()
BYTE ITERS=0
BEGIN
GRAPHICS(8+16)
COL1=1
COL2=11
COL4=12
RTCLOCK=0
WHILE RTCLOCK < 150 DO
DRAWBOARD()
ITERS=ITERS+1
ENDWHILE
STOP=RTCLOCK
GRAPHICS(0)
WRITE(ITERS) WRTLN(" iterations")
WHILE CH=NONE DO ENDWHILE CH=NONE
END
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
Fast Basic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
BYTE
[
RT=20
]
WORD
[
A,B,I
]
MAIN
I=0
RT=0
WHILE RT<100
ADD(A,1,A)
B=A
ADD(B,1,B)
A=B
ADD(I,1,I)
WEND
?("ITERATIONS: ",I)
ENDMAIN
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
Fast Basic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
Quick-Sourcetext
H6:BOARD.QIK
----------------
Length: $0330
Free : $743B
----------------
INCLUDE
[
D:GRAPH.LIB
]
BYTE
[
RTC=20
COL1=709
COL2=710
COL4=712
GM,STOP,L1B
]
WORD
[
SAVMSC=88
]
MAIN
UNSIGN
L1B=0
ADD(8,16,GM)
.GRAPHICS(GM)
COL1=1
COL2=11
COL4=12
RTC=0
WHILE RTC<150
.DRAWBOARD
ADD(L1B,1,L1B)
WEND
STOP=RTC
.GRAPHICS(0)
?("ITERATIONS IN 150 TICKS: ", L1B)
ENDMAIN
PROC DRAWBOARD
BYTE
[
I1B,I2B,I3B,C,Z
]
WORD
[
SC
]
BEGIN
SC=SAVMSC
C=255
I3B=0
I2B=0
I1B=0
WHILE I3B<8
WHILE I2B<24
WHILE I1B<4
POKE(SC,C)
ADD(SC,1,SC)
POKE(SC,C)
ADD(SC,1,SC)
POKE(SC,C)
ADD(SC,4,SC)
I1B+
WEND
I1B=0
ADD(SC,16,SC)
I2B+
WEND
I2B=0
I3B+
AND(I3B,1,Z)
IF Z=0
SUB(SC,3,SC)
ELSE
ADD(SC,3,SC)
ENDIF
WEND
ENDPROC
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
Fast Basic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
Quick 2.2 Chessboard: 27 iterations in 150 ticks
Quick 1.6 Chessboard: 16 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Effectus 0.3.1 YoshPlus: 33944 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
Fast Basic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
Quick 2.2 Chessboard: 27 iterations in 150 ticks
Quick 1.6 Chessboard: 16 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
Quick-Sourcetext
H6:SIEVE.QIK
----------------
Length: $02B2
Free : $74B9
----------------
BYTE
[
RT1=19
RT2=20
J,F
]
WORD
[
PRIME,COUNT,STOP
K,I,IA,Z,P1
]
MAIN
J=0
RT1=0
RT2=0
WHILE J<10
J+
IA=32768
PRIME=0
COUNT=0
K=0
WHILE IA<40958
POKE(IA,1)
ADD(IA,1,IA)
WEND
IA=32768
WHILE IA<40958
SUB(IA,32768,I)
PEEK(IA,F)
IF F=1
ADD(I,I,P1)
ADD(P1,3,PRIME)
ADD(PRIME,I,K)
WHILE K<=8190
ADD(K,32768,Z)
POKE(Z,0)
ADD(K,PRIME,K)
WEND
ADD(COUNT,1,COUNT)
ENDIF
ADD(IA,1,IA)
WEND
WEND
MULT(RT1,256,STOP)
ADD(STOP,RT2,STOP)
?(COUNT, " PRIMES")
?(STOP, " TICKS IN 10 INTERATIONS")
ENDMAIN
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
Fast Basic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
Quick 2.2 Chessboard: 27 iterations in 150 ticks
Quick 1.6 Chessboard: 16 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Mad Pascal SIEVE: 739 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
Quick 1.6 SIEVE: 2022 ticks in 10 iterations
Quick 2.2 SIEVE: 2199 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
/* PRIME.C */
/* The sieve of Eratoshenes Prime number benchmark */
#define TRUE 1
#define FALSE 0
#define SIZE 8190
#define COUNT 10
char flags[SIZE+1];
main() $(
int i,prime,k,count,iter;
printf("%d iteration%s\n",COUNT,(COUNT == 1) ? "." : "s.");
fast(); /* turn off the screen */
clrtime(); /* reset the system clock */
for(iter=1;iter <= COUNT;++iter) $(
count=0;
for(i=0;i <= SIZE;++i) flags[i]=TRUE; /* could use setblock(flags,SIZE,1); */
for(i=0;i <= SIZE;++i) $(
if(flags[i]) $(
prime=i+i+3;
for(k=i+prime;k<=SIZE;k += prime) flags[k]=FALSE;
++count;
$)
$)
$)
k=gtime()/60; /* time in seconds */
slow(); /* turn on the screen */
printf("%d primes in %d seconds\n",count,k);
$)
? "Starting!"
NumIter = 10
sTime = TIME
' Arrays are initialized to 0
DIM A(8190) Byte
FOR Iter= 1 TO NumIter
MSET Adr(A), 8190, 0
Count = 0
FOR I = 0 TO 8190
IF NOT A(I)
Prime = I + I + 3
FOR K = I + Prime TO 8190 STEP Prime
A(K) = 1
NEXT K
INC Count
ENDIF
NEXT I
NEXT Iter
eTime = TIME
? "End."
? "Elapsed time: "; eTime-sTime; " in "; NumIter; " iterations."
? "Found "; Count; " primes."
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
FastBasic FBI YoshPlus: 1458 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
Quick 2.2 Chessboard: 27 iterations in 150 ticks
Quick 1.6 Chessboard: 16 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Mad Pascal SIEVE: 739 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
Quick 1.6 SIEVE: 2022 ticks in 10 iterations
Quick 2.2 SIEVE: 2199 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
FastBasic FBI SIEVE: 6312 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
FastBasic FBI YoshPlus: 2427 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
Quick 2.2 Chessboard: 27 iterations in 150 ticks
Quick 1.6 Chessboard: 16 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Mad Pascal SIEVE: 739 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
Quick 1.6 SIEVE: 2022 ticks in 10 iterations
Quick 2.2 SIEVE: 2199 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
FastBasic FBI SIEVE: 6312 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
LOAD /X will execute the file under the control of X.COM (equivalent to the command 'X fname').
CC65 YoshPlus: 41844 iterations in 100 ticks
Mad Pascal YoshPlus: 35572 iterations in 100 ticks
Action! YoshPlus: 33239 iterations in 100 ticks
Quick 2.2 YoshPlus: 21320 iterations in 100 ticks
Quick 1.6 YoshPlus: 16242 iterations in 100 ticks
PL65 YoshPlus: 4708 iterations in 100 ticks
FastBasic FBI YoshPlus: 2427 iterations in 100 ticks
fig-Forth 1.1 YoshPlus: 715 iterations in 100 ticks
CLSN Pascal YoshPlus: 487 iterations in 100 ticks
CC65 Chessboard: 76 iterations in 150 ticks
Mad Pascal Chessboard: 40 iterations in 150 ticks
Action! Chessboard: 35 iterations in 150 ticks
Quick 2.2 Chessboard: 27 iterations in 150 ticks
Quick 1.6 Chessboard: 16 iterations in 150 ticks
PL65 Chessboard: 12 iterations in 150 ticks
MADS (opt) SIEVE: 440 ticks in 10 iterations
CC65 (opt) SIEVE: 602 ticks in 10 iterations
Mad Pascal (opt) SIEVE: 644 ticks in 10 iterations
Mad Pascal SIEVE: 739 ticks in 10 iterations
Action! SIEVE: 1003 ticks in 10 iterations
Quick 1.6 SIEVE: 2022 ticks in 10 iterations
Quick 2.2 SIEVE: 2199 ticks in 10 iterations
PL65 SIEVE: 3853 ticks in 10 iterations
FastBasic FBI SIEVE: 6312 ticks in 10 iterations
fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
BASIC SIEVE: 217700 ticks in 10 iterations