BYTE RTCLOK=20, ; addr of sys timer
    SDMCTL=559 ; DMA control

BYTE ARRAY FLAGS(8190)

CARD COUNT,I,K,PRIME,TIME

PROC SIEVE()

 SDMCTL=0 ; shut off Antic
 RTCLOK=0 ; only one timer needed

 COUNT=0         ; init count
 FOR I=0 TO 8190 ; and flags
   DO
   FLAGS(I)='T
   OD

 FOR I=0 TO 8190 ; and flags
   DO
   IF FLAGS(I)='T THEN
     PRIME=I+I+3
     K=I+PRIME
     WHILE K<=8190
       DO
       FLAGS(K)='F
       K==+PRIME
       OD
     COUNT==+1
   FI
   OD
 TIME=RTCLOK ; get timer reading
 SDMCTL=34   ; restore screen

 PRINTF("%E %U PRIMES IN",COUNT)
 PRINTF("%E %U JIFFIES",TIME)
RETURN
