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