Home » Archimedes archive » Acorn User » AU 1997-02 B.adf » Regulars » StarInfo/circles/Stoner/Bubbles

StarInfo/circles/Stoner/Bubbles

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 » Archimedes archive » Acorn User » AU 1997-02 B.adf » Regulars
Filename: StarInfo/circles/Stoner/Bubbles
Read OK:
File size: 036D bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Bubbles
   11REM by Nigel Stoner
   40
   50ON ERROR MODE12:REPORT:PRINT " at line ";ERL:END
   60
   70PROCinit
   80REPEAT
   90SYS 6,112,s%:s%=s%EOR3:SYS6,113,s%:WAIT:CLS
  100PROCrotate
  110PROCdraw
  120UNTIL FALSE
  130END
  140
  150
  160DEFPROCinit
  170MODE 9+128:ORIGIN640,512:OFF
  180PROCcolors
  190DIM lx(99),ly(99),lz(99),depth(1024)
  200s%=1:lines%=31
  210FOR a%=-512 TO 512
  220depth(a%+512) = 1/((a%/640)+1)
  230NEXT a%
  240ang%=0
  250FOR a%=0 TO lines%
  260lx(a%)=(50+RND(290))*SINRAD(RND(360))
  270ly(a%)=a%*1024/lines%-512
  280lz(a%)=50+(RND(290))*COSRAD(RND(360))
  290NEXT a%
  300c=COSRAD(PI):s=SINRAD(PI)
  310ENDPROC
  320
  330DEFPROCrotate
  340FOR vtx%= 0 TO lines%
  350xnew=lx(vtx%)*c-lz(vtx%)*s:znew=lx(vtx%)*s+lz(vtx%)*c:lx(vtx%)=xnew:lz(vtx%)=znew
  360ly(vtx%)=ly(vtx%)+4+(vtx%/2)-(1024 AND ly(vtx%)>512)
  370NEXT vtx%
  380ENDPROC
  390REM f=1/((lz(a%)/640)+1)
  400DEFPROCdraw
  410FOR a%=0 TO lines%
  420f=depth(INT(lz(a%))+512)
  430GCOL f*7+1:CIRCLElx(a%)*f,ly(a%)*f,f*32
  440NEXT a%
  450ENDPROC
  460
  470DEFPROCcolors
  480FOR a%=0 TO 15
  490COLOUR a%,a%*16,a%*12,a%*16
  500NEXT a%
  510ENDPROC


� Bubbles
� by Nigel Stoner
(
2� � �12:�:� " at line ";�:�
<
F	�init
P�
Z'ș 6,112,s%:s%=s%�3:ș6,113,s%:Ȗ:�
d�rotate
n	�draw
x� �
��
�
�
�
��init
�� 9+128:ȑ640,512:�
��colors
�&� lx(99),ly(99),lz(99),depth(1024)
�s%=1:lines%=31
�� a%=-512 � 512
�"depth(a%+512) = 1/((a%/640)+1)
�� a%
�
ang%=0
�� a%=0 � lines%
!lx(a%)=(50+�(290))*��(�(360))
ly(a%)=a%*1024/lines%-512
!lz(a%)=50+(�(290))*��(�(360))
"� a%
,c=��(�):s=��(�)
6�
@
J��rotate
T� vtx%= 0 � lines%
^Uxnew=lx(vtx%)*c-lz(vtx%)*s:znew=lx(vtx%)*s+lz(vtx%)*c:lx(vtx%)=xnew:lz(vtx%)=znew
h6ly(vtx%)=ly(vtx%)+4+(vtx%/2)-(1024 � ly(vtx%)>512)
r
� vtx%
|�
�� f=1/((lz(a%)/640)+1)
�
��draw
�� a%=0 � lines%
�f=depth(�(lz(a%))+512)
�$� f*7+1:ȏlx(a%)*f,ly(a%)*f,f*32
�� a%
��
�
���colors
�� a%=0 � 15
�� a%,a%*16,a%*12,a%*16
�� a%
��
�
00000000  0d 00 0a 0d f4 20 42 75  62 62 6c 65 73 0d 00 0b  |..... Bubbles...|
00000010  15 f4 20 62 79 20 4e 69  67 65 6c 20 53 74 6f 6e  |.. by Nigel Ston|
00000020  65 72 0d 00 28 04 0d 00  32 1f ee 20 85 20 eb 31  |er..(...2.. . .1|
00000030  32 3a f6 3a f1 20 22 20  61 74 20 6c 69 6e 65 20  |2:.:. " at line |
00000040  22 3b 9e 3a e0 0d 00 3c  04 0d 00 46 09 f2 69 6e  |";.:...<...F..in|
00000050  69 74 0d 00 50 05 f5 0d  00 5a 27 c8 99 20 36 2c  |it..P....Z'.. 6,|
00000060  31 31 32 2c 73 25 3a 73  25 3d 73 25 82 33 3a c8  |112,s%:s%=s%.3:.|
00000070  99 36 2c 31 31 33 2c 73  25 3a c8 96 3a db 0d 00  |.6,113,s%:..:...|
00000080  64 0b f2 72 6f 74 61 74  65 0d 00 6e 09 f2 64 72  |d..rotate..n..dr|
00000090  61 77 0d 00 78 07 fd 20  a3 0d 00 82 05 e0 0d 00  |aw..x.. ........|
000000a0  8c 04 0d 00 96 04 0d 00  a0 0a dd f2 69 6e 69 74  |............init|
000000b0  0d 00 aa 17 eb 20 39 2b  31 32 38 3a c8 91 36 34  |..... 9+128:..64|
000000c0  30 2c 35 31 32 3a 87 0d  00 b4 0b f2 63 6f 6c 6f  |0,512:......colo|
000000d0  72 73 0d 00 be 26 de 20  6c 78 28 39 39 29 2c 6c  |rs...&. lx(99),l|
000000e0  79 28 39 39 29 2c 6c 7a  28 39 39 29 2c 64 65 70  |y(99),lz(99),dep|
000000f0  74 68 28 31 30 32 34 29  0d 00 c8 12 73 25 3d 31  |th(1024)....s%=1|
00000100  3a 6c 69 6e 65 73 25 3d  33 31 0d 00 d2 13 e3 20  |:lines%=31..... |
00000110  61 25 3d 2d 35 31 32 20  b8 20 35 31 32 0d 00 dc  |a%=-512 . 512...|
00000120  22 64 65 70 74 68 28 61  25 2b 35 31 32 29 20 3d  |"depth(a%+512) =|
00000130  20 31 2f 28 28 61 25 2f  36 34 30 29 2b 31 29 0d  | 1/((a%/640)+1).|
00000140  00 e6 08 ed 20 61 25 0d  00 f0 0a 61 6e 67 25 3d  |.... a%....ang%=|
00000150  30 0d 00 fa 13 e3 20 61  25 3d 30 20 b8 20 6c 69  |0..... a%=0 . li|
00000160  6e 65 73 25 0d 01 04 21  6c 78 28 61 25 29 3d 28  |nes%...!lx(a%)=(|
00000170  35 30 2b b3 28 32 39 30  29 29 2a b5 b2 28 b3 28  |50+.(290))*..(.(|
00000180  33 36 30 29 29 0d 01 0e  1d 6c 79 28 61 25 29 3d  |360))....ly(a%)=|
00000190  61 25 2a 31 30 32 34 2f  6c 69 6e 65 73 25 2d 35  |a%*1024/lines%-5|
000001a0  31 32 0d 01 18 21 6c 7a  28 61 25 29 3d 35 30 2b  |12...!lz(a%)=50+|
000001b0  28 b3 28 32 39 30 29 29  2a 9b b2 28 b3 28 33 36  |(.(290))*..(.(36|
000001c0  30 29 29 0d 01 22 08 ed  20 61 25 0d 01 2c 13 63  |0))..".. a%..,.c|
000001d0  3d 9b b2 28 af 29 3a 73  3d b5 b2 28 af 29 0d 01  |=..(.):s=..(.)..|
000001e0  36 05 e1 0d 01 40 04 0d  01 4a 0c dd f2 72 6f 74  |6....@...J...rot|
000001f0  61 74 65 0d 01 54 16 e3  20 76 74 78 25 3d 20 30  |ate..T.. vtx%= 0|
00000200  20 b8 20 6c 69 6e 65 73  25 0d 01 5e 55 78 6e 65  | . lines%..^Uxne|
00000210  77 3d 6c 78 28 76 74 78  25 29 2a 63 2d 6c 7a 28  |w=lx(vtx%)*c-lz(|
00000220  76 74 78 25 29 2a 73 3a  7a 6e 65 77 3d 6c 78 28  |vtx%)*s:znew=lx(|
00000230  76 74 78 25 29 2a 73 2b  6c 7a 28 76 74 78 25 29  |vtx%)*s+lz(vtx%)|
00000240  2a 63 3a 6c 78 28 76 74  78 25 29 3d 78 6e 65 77  |*c:lx(vtx%)=xnew|
00000250  3a 6c 7a 28 76 74 78 25  29 3d 7a 6e 65 77 0d 01  |:lz(vtx%)=znew..|
00000260  68 36 6c 79 28 76 74 78  25 29 3d 6c 79 28 76 74  |h6ly(vtx%)=ly(vt|
00000270  78 25 29 2b 34 2b 28 76  74 78 25 2f 32 29 2d 28  |x%)+4+(vtx%/2)-(|
00000280  31 30 32 34 20 80 20 6c  79 28 76 74 78 25 29 3e  |1024 . ly(vtx%)>|
00000290  35 31 32 29 0d 01 72 0a  ed 20 76 74 78 25 0d 01  |512)..r.. vtx%..|
000002a0  7c 05 e1 0d 01 86 1a f4  20 66 3d 31 2f 28 28 6c  ||....... f=1/((l|
000002b0  7a 28 61 25 29 2f 36 34  30 29 2b 31 29 0d 01 90  |z(a%)/640)+1)...|
000002c0  0a dd f2 64 72 61 77 0d  01 9a 13 e3 20 61 25 3d  |...draw..... a%=|
000002d0  30 20 b8 20 6c 69 6e 65  73 25 0d 01 a4 1a 66 3d  |0 . lines%....f=|
000002e0  64 65 70 74 68 28 a8 28  6c 7a 28 61 25 29 29 2b  |depth(.(lz(a%))+|
000002f0  35 31 32 29 0d 01 ae 24  e6 20 66 2a 37 2b 31 3a  |512)...$. f*7+1:|
00000300  c8 8f 6c 78 28 61 25 29  2a 66 2c 6c 79 28 61 25  |..lx(a%)*f,ly(a%|
00000310  29 2a 66 2c 66 2a 33 32  0d 01 b8 08 ed 20 61 25  |)*f,f*32..... a%|
00000320  0d 01 c2 05 e1 0d 01 cc  04 0d 01 d6 0c dd f2 63  |...............c|
00000330  6f 6c 6f 72 73 0d 01 e0  0f e3 20 61 25 3d 30 20  |olors..... a%=0 |
00000340  b8 20 31 35 0d 01 ea 1a  fb 20 61 25 2c 61 25 2a  |. 15..... a%,a%*|
00000350  31 36 2c 61 25 2a 31 32  2c 61 25 2a 31 36 0d 01  |16,a%*12,a%*16..|
00000360  f4 08 ed 20 61 25 0d 01  fe 05 e1 0d ff           |... a%.......|
0000036d