]> git.sur5r.net Git - cc65/blobdiff - samples/sieve.c
Added space after function name.
[cc65] / samples / sieve.c
index b2fc9cdbc7eef5e3fedd327579e7cdf84a8e15dc..8d0619888235d9c2e3549919b584474be4496501 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Calculate all primes up to a specific number.
- */
+** Calculate all primes up to a specific number.
+*/
 
 
 
 #include <conio.h>
 
 
+/* Workaround missing clock stuff */
+#ifdef __APPLE2__
+#  define clock()               0
+#  define CLOCKS_PER_SEC        1
+#endif
+
+
 
 /*****************************************************************************/
-/*                                          Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
 
-#define COUNT          8192            /* Up to what number? */
-#define SQRT_COUNT     91              /* Sqrt of COUNT */
+#define COUNT           16384           /* Up to what number? */
+#define SQRT_COUNT      128             /* Sqrt of COUNT */
 
 static unsigned char Sieve[COUNT];
 
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
 
-#pragma staticlocals(1);
+#pragma static-locals(1);
 
 
 
@@ -52,8 +59,8 @@ int main (void)
 
     /* This is an example where register variables make sense */
     register unsigned char* S;
-    register unsigned      I;
-    register unsigned      J;
+    register unsigned       I;
+    register unsigned       J;
 
     /* Output a header */
     printf ("Sieve benchmark - calculating primes\n");
@@ -66,16 +73,17 @@ int main (void)
     /* Execute the sieve */
     I = 2;
     while (I < SQRT_COUNT) {
-       if (Sieve[I] == 0) {
-           /* Prime number - mark multiples */
-           S = &Sieve[J = I*2];
-                   while (J < COUNT) {
-               *S = 1;
-               S += I;
-               J += I;
-           }
-       }
-       ++I;
+        if (Sieve[I] == 0) {
+            /* Prime number - mark multiples */
+            J = I*2;
+            S = &Sieve[J];
+            while (J < COUNT) {
+                *S = 1;
+                S += I;
+                J += I;
+            }
+        }
+        ++I;
     }
 
     /* Calculate the time used */
@@ -89,11 +97,11 @@ int main (void)
 
     /* Wait for a key and print the list if not 'Q' */
     if (ReadUpperKey () != 'Q') {
-       /* Print the result */
+        /* Print the result */
         J = 0;
-       for (I = 2; I < COUNT; ++I) {
-           if (Sieve[I] == 0) {
-               printf ("%4d\n", I);
+        for (I = 2; I < COUNT; ++I) {
+            if (Sieve[I] == 0) {
+                printf ("%4d\n", I);
                 if (++J == 23) {
                     printf ("Q to quit, any other key continues\n");
                     if (ReadUpperKey () == 'Q') {
@@ -101,11 +109,11 @@ int main (void)
                     }
                     J = 0;
                 }
-           }
-                   if (kbhit() && ReadUpperKey == 'Q') {
-               break;
-           }
-       }
+            }
+            if (kbhit() && ReadUpperKey () == 'Q') {
+                break;
+            }
+        }
     }
 
     return EXIT_SUCCESS;