home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / forth / forst.zoo / forst / lib / siever.s < prev    next >
Text File  |  1990-12-10  |  671b  |  36 lines

  1. DECIMAL
  2. : TASK ;
  3.  
  4. 8190 CONSTANT SIZE
  5.  
  6. : DO-PRIME
  7.  
  8. {  5 REGS P Q PRIMECOUNT LOOPCOUNT LIMIT  SIZE LOCBUFF FLAGS }
  9.  
  10.    FLAGS SIZE 1 FILL
  11.    
  12.    FLAGS SIZE + TO LIMIT
  13.    0 TO PRIMECOUNT   0 TO LOOPCOUNT
  14.    
  15.    BEGIN
  16.       FLAGS LOOPCOUNT + C@
  17.       IF LOOPCOUNT 2* 3 +  TO P
  18.          FLAGS P + LOOPCOUNT +  TO Q
  19.          Q LIMIT <
  20.          IF
  21.            BEGIN
  22.             0 Q C!
  23.             P ADDTO Q
  24.             Q LIMIT < NOT
  25.            UNTIL 
  26.          THEN 
  27.          1 ADDTO PRIMECOUNT 
  28.       THEN
  29.    1 ADDTO LOOPCOUNT 
  30.    LOOPCOUNT SIZE  =   UNTIL 
  31.    PRIMECOUNT . ." primes " 
  32. ;
  33.  
  34. : PRIMES  { 1 REGARG CNT }
  35.   FOR CNT  DO-PRIME  NEXT ;
  36.