AMONSON@IDCSVAX.BITNET (11/30/89)
Charles Green (or any interested parties; I couldn't reach your address),
This is the C code that I used for my sieve speed test on the cc65 compiler.
From what I know about Action!, the conversion should be fairly simple. The
code may look familiar, I think it originated from the cc8 distribution...
o /
---- X ---- Cut Here ----------------------------------------------------------
O \
#define TRUE 1
#define FALSE 0
#define SIZE 8190
char flags[SIZE+1];
char start[3], stop[3];
main ()
{
int i, prime, k, count, iter, total;
printf("10 iterations\n");
total = 0;
for (iter=1; iter<=10; iter++)
{
printf("iter %d\n", iter);
gtime(start);
count = 0;
for (i=0; i<=SIZE; i++)
flags[i] = TRUE;
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++;
}
}
gtime(stop);
printf("Start: %x, %x, %x\n",
(int)start[2],
(int)start[1],
(int)start[0]);
printf(" Stop: %x, %x, %x\n",
(int)stop[2],
(int)stop[1],
(int)stop[0]);
}
printf("\gDone!\g\n");
}
gtime (time)
char *time;
{
time[0] = *((char *) 0x12);
time[1] = *((char *) 0x13);
time[2] = *((char *) 0x14);
}
o /
---- X ---- Cut Here ----------------------------------------------------------
O \
I have used the curly braces instead of "$(" and "$)" (I use textpro with a
TEXTPRO.FNT file defining the characters.) I don't know what the Action!
editor will do with these. I calculated the running time by hand using a
hex calculator. The gtime() function should have been in pure 6502 code with
interupts shut off. I didn't check what this code compiles to, but it may be
slow enough to get a bad reading from the jiffy clock rolling over midway
through. In my 10 iterations I never had obvious bad data, so I left it.
Have Fun! It will be interesting to see the results.
Duane Tribe, University of Idaho
Internet: tribe@ed.cs.uidaho.edu (129.101.100.25)
My benefactor on BITNET: amonson@idcsvax