Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199201.adf » January92 » !AWJan92/Goodies/ArcAut/Automatons/Rug

!AWJan92/Goodies/ArcAut/Automatons/Rug

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199201.adf » January92
Filename: !AWJan92/Goodies/ArcAut/Automatons/Rug
Read OK:
File size: 01DD bytes
Load address: 0000
Exec address: 0000
File contents
AUTOMATON*

  Rug

  A simple 256 state Moore neighbourhood automaton. Each cell is replaced by
  the average of it's eight neighbours plus a small increment. This
  produces waves of colour which sweep over the display. Compare with 'Hodge
  Podge'. Try a 200x100 window.

INITIALISATION*

  10DEF PROCdo
  20*SetEval wrap on
  30*SetEval i 2
  40ENDPROC

SCREEN*

  10DEF PROCdo
  20PROCsoup(0,256,1)
  30ENDPROC

CODE*

( READ_NEIG
  SUM_NEIG  3 >> 
  <i> +       == )

END*
00000000  41 55 54 4f 4d 41 54 4f  4e 2a 0a 0a 20 20 52 75  |AUTOMATON*..  Ru|
00000010  67 0a 0a 20 20 41 20 73  69 6d 70 6c 65 20 32 35  |g..  A simple 25|
00000020  36 20 73 74 61 74 65 20  4d 6f 6f 72 65 20 6e 65  |6 state Moore ne|
00000030  69 67 68 62 6f 75 72 68  6f 6f 64 20 61 75 74 6f  |ighbourhood auto|
00000040  6d 61 74 6f 6e 2e 20 45  61 63 68 20 63 65 6c 6c  |maton. Each cell|
00000050  20 69 73 20 72 65 70 6c  61 63 65 64 20 62 79 0a  | is replaced by.|
00000060  20 20 74 68 65 20 61 76  65 72 61 67 65 20 6f 66  |  the average of|
00000070  20 69 74 27 73 20 65 69  67 68 74 20 6e 65 69 67  | it's eight neig|
00000080  68 62 6f 75 72 73 20 70  6c 75 73 20 61 20 73 6d  |hbours plus a sm|
00000090  61 6c 6c 20 69 6e 63 72  65 6d 65 6e 74 2e 20 54  |all increment. T|
000000a0  68 69 73 0a 20 20 70 72  6f 64 75 63 65 73 20 77  |his.  produces w|
000000b0  61 76 65 73 20 6f 66 20  63 6f 6c 6f 75 72 20 77  |aves of colour w|
000000c0  68 69 63 68 20 73 77 65  65 70 20 6f 76 65 72 20  |hich sweep over |
000000d0  74 68 65 20 64 69 73 70  6c 61 79 2e 20 43 6f 6d  |the display. Com|
000000e0  70 61 72 65 20 77 69 74  68 20 27 48 6f 64 67 65  |pare with 'Hodge|
000000f0  0a 20 20 50 6f 64 67 65  27 2e 20 54 72 79 20 61  |.  Podge'. Try a|
00000100  20 32 30 30 78 31 30 30  20 77 69 6e 64 6f 77 2e  | 200x100 window.|
00000110  0a 0a 49 4e 49 54 49 41  4c 49 53 41 54 49 4f 4e  |..INITIALISATION|
00000120  2a 0a 0a 20 20 31 30 44  45 46 20 50 52 4f 43 64  |*..  10DEF PROCd|
00000130  6f 0a 20 20 32 30 2a 53  65 74 45 76 61 6c 20 77  |o.  20*SetEval w|
00000140  72 61 70 20 6f 6e 0a 20  20 33 30 2a 53 65 74 45  |rap on.  30*SetE|
00000150  76 61 6c 20 69 20 32 0a  20 20 34 30 45 4e 44 50  |val i 2.  40ENDP|
00000160  52 4f 43 0a 0a 53 43 52  45 45 4e 2a 0a 0a 20 20  |ROC..SCREEN*..  |
00000170  31 30 44 45 46 20 50 52  4f 43 64 6f 0a 20 20 32  |10DEF PROCdo.  2|
00000180  30 50 52 4f 43 73 6f 75  70 28 30 2c 32 35 36 2c  |0PROCsoup(0,256,|
00000190  31 29 0a 20 20 33 30 45  4e 44 50 52 4f 43 0a 0a  |1).  30ENDPROC..|
000001a0  43 4f 44 45 2a 0a 0a 28  20 52 45 41 44 5f 4e 45  |CODE*..( READ_NE|
000001b0  49 47 0a 20 20 53 55 4d  5f 4e 45 49 47 20 20 33  |IG.  SUM_NEIG  3|
000001c0  20 3e 3e 20 0a 20 20 3c  69 3e 20 2b 20 20 20 20  | >> .  <i> +    |
000001d0  20 20 20 3d 3d 20 29 0a  0a 45 4e 44 2a           |   == )..END*|
000001dd