Home » Archimedes archive » Acorn User » AU 1995-03.adf » !StarInfo_StarInfo » RiscPC/Ooze32K
RiscPC/Ooze32K
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 1995-03.adf » !StarInfo_StarInfo |
Filename: | RiscPC/Ooze32K |
Read OK: | ✔ |
File size: | 067F bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >Ooze32K 20REM Original by Jan Vibe 30REM Updated for 16-bit colour by DA 40REM (c) AU March 1995 50: 60PROCselect_mode 70ON ERROR ERROR EXT ERR,REPORT$+" at line "+STR$ERL:END 80DIM x(15),y(15),z(15),r(15),g(15),b(15) 90x()=-100 100x1 =RND(width*3/4)+width/8 110y1 =RND(height*3/4)+height/8 120dx1=RND(16)*SGNRND 130dy1=RND(16)*SGNRND 140x2 =RND(width*3/4)+width/8 150y2 =RND(height*3/4)+height/8 160dx2=RND(16)*SGNRND 170dy2=RND(16)*SGNRND 180r =RND(360) 190g =RND(360) 200b =RND(360) 210a =0 220left=width/8 230right=width*7/8 240bottom=height/8 250top=height*7/8 260REPEAT 270 IF x1+dx1<left OR x1+dx1>right dx1=RND(16)*SGN(-dx1) 280 IF y1+dy1<bottom OR y1+dy1>top dy1=RND(16)*SGN(-dy1) 290 x1+=dx1 300 y1+=dy1 310 IF x2<x1 AND dx2<24 dx2+=1 320 IF x2>x1 AND dx2>-24 dx2-=1 330 IF y2<y1 AND dy2<24 dy2+=1 340 IF y2>y1 AND dy2>-24 dy2-=1 350 x2+=dx2 360 y2+=dy2 370 a=(a+2)MOD360 380 r=(r+RND(12))MOD360 390 g=(g+RND(12))MOD360 400 b=(b+RND(12))MOD360 410 FOR i=2 TO 15 420 x(i-1)=x(i) 430 y(i-1)=y(i) 440 z(i-1)=z(i) 450 r(i-1)=r(i) 460 g(i-1)=g(i) 470 b(i-1)=b(i) 480 NEXT 490 x(15)=x2 500 y(15)=y2 510 z(15)=(1+SINRADa)+2 520 r(15)=(1+SINRADr)/2 530 g(15)=(1+SINRADg)/2 540 b(15)=(1+SINRADb)/2 550 FOR i=1 TO 15 560 rr=255*(1-i/15*r(i)) 570 gg=255*(1-i/15*g(i)) 580 bb=255*(1-i/15*b(i)) 590 GCOL rr,gg,bb 600 CIRCLE FILL x(i),y(i),i*z(i) 610 NEXT 620UNTIL INKEY-113 640END 650: 670DEF PROCselect_mode 680DIM mode% 24 690!mode%=1 700mode%!4=800 710mode%!8=600 720mode%!12=4 730mode%!16=-1 740mode%!20=-1 750MODE mode% 760OFF 770SYS "OS_ReadModeVariable",-1,11 TO ,,XWindLimit 780SYS "OS_ReadModeVariable",-1,12 TO ,,YWindLimit 790SYS "OS_ReadModeVariable",-1,4 TO ,,XEigFactor 800SYS "OS_ReadModeVariable",-1,5 TO ,,YEigFactor 810width=(XWindLimit+1)<<XEigFactor 820height=(YWindLimit+1)<<YEigFactor 830ENDPROC
� >Ooze32K � Original by Jan Vibe %� Updated for 16-bit colour by DA (� (c) AU March 1995 2: <�select_mode F!� � � � �,�$+" at line "+Þ:� P)� x(15),y(15),z(15),r(15),g(15),b(15) Zx()=-100 dx1 =�(width*3/4)+width/8 ny1 =�(height*3/4)+height/8 xdx1=�(16)*�� �dy1=�(16)*�� �x2 =�(width*3/4)+width/8 �y2 =�(height*3/4)+height/8 �dx2=�(16)*�� �dy2=�(16)*�� �r =�(360) �g =�(360) �b =�(360) � a =0 �left=width/8 �right=width*7/8 �bottom=height/8 �top=height*7/8 � 3 � x1+dx1<left � x1+dx1>right dx1=�(16)*�(-dx1) 3 � y1+dy1<bottom � y1+dy1>top dy1=�(16)*�(-dy1) " x1+=dx1 , y1+=dy1 6 � x2<x1 � dx2<24 dx2+=1 @ � x2>x1 � dx2>-24 dx2-=1 J � y2<y1 � dy2<24 dy2+=1 T � y2>y1 � dy2>-24 dy2-=1 ^ x2+=dx2 h y2+=dy2 r a=(a+2)�360 | r=(r+�(12))�360 � g=(g+�(12))�360 � b=(b+�(12))�360 � � i=2 � 15 � x(i-1)=x(i) � y(i-1)=y(i) � z(i-1)=z(i) � r(i-1)=r(i) � g(i-1)=g(i) � b(i-1)=b(i) � � � x(15)=x2 � y(15)=y2 � z(15)=(1+��a)+2 r(15)=(1+��r)/2 g(15)=(1+��g)/2 b(15)=(1+��b)/2 & � i=1 � 15 0 rr=255*(1-i/15*r(i)) : gg=255*(1-i/15*g(i)) D bb=255*(1-i/15*b(i)) N � rr,gg,bb X ȏ Ȑ x(i),y(i),i*z(i) b � l� �-113 �� �: �� �select_mode �� mode% 24 �!mode%=1 �mode%!4=800 �mode%!8=600 �mode%!12=4 �mode%!16=-1 �mode%!20=-1 �� mode% �� 1ș "OS_ReadModeVariable",-1,11 � ,,XWindLimit 1ș "OS_ReadModeVariable",-1,12 � ,,YWindLimit 1ș "OS_ReadModeVariable",-1,4 � ,,XEigFactor 1ș "OS_ReadModeVariable",-1,5 � ,,YEigFactor *$width=(XWindLimit+1)<<XEigFactor 4%height=(YWindLimit+1)<<YEigFactor >� �
00000000 0d 00 0a 11 f4 20 20 20 20 3e 4f 6f 7a 65 33 32 |..... >Ooze32| 00000010 4b 0d 00 14 1a f4 20 4f 72 69 67 69 6e 61 6c 20 |K..... Original | 00000020 62 79 20 4a 61 6e 20 56 69 62 65 0d 00 1e 25 f4 |by Jan Vibe...%.| 00000030 20 55 70 64 61 74 65 64 20 66 6f 72 20 31 36 2d | Updated for 16-| 00000040 62 69 74 20 63 6f 6c 6f 75 72 20 62 79 20 44 41 |bit colour by DA| 00000050 0d 00 28 17 f4 20 28 63 29 20 41 55 20 4d 61 72 |..(.. (c) AU Mar| 00000060 63 68 20 31 39 39 35 0d 00 32 05 3a 0d 00 3c 10 |ch 1995..2.:..<.| 00000070 f2 73 65 6c 65 63 74 5f 6d 6f 64 65 0d 00 46 21 |.select_mode..F!| 00000080 ee 20 85 20 85 20 a2 20 9f 2c f6 24 2b 22 20 61 |. . . . .,.$+" a| 00000090 74 20 6c 69 6e 65 20 22 2b c3 9e 3a e0 0d 00 50 |t line "+..:...P| 000000a0 29 de 20 78 28 31 35 29 2c 79 28 31 35 29 2c 7a |). x(15),y(15),z| 000000b0 28 31 35 29 2c 72 28 31 35 29 2c 67 28 31 35 29 |(15),r(15),g(15)| 000000c0 2c 62 28 31 35 29 0d 00 5a 0c 78 28 29 3d 2d 31 |,b(15)..Z.x()=-1| 000000d0 30 30 0d 00 64 1c 78 31 20 3d b3 28 77 69 64 74 |00..d.x1 =.(widt| 000000e0 68 2a 33 2f 34 29 2b 77 69 64 74 68 2f 38 0d 00 |h*3/4)+width/8..| 000000f0 6e 1e 79 31 20 3d b3 28 68 65 69 67 68 74 2a 33 |n.y1 =.(height*3| 00000100 2f 34 29 2b 68 65 69 67 68 74 2f 38 0d 00 78 10 |/4)+height/8..x.| 00000110 64 78 31 3d b3 28 31 36 29 2a b4 b3 0d 00 82 10 |dx1=.(16)*......| 00000120 64 79 31 3d b3 28 31 36 29 2a b4 b3 0d 00 8c 1c |dy1=.(16)*......| 00000130 78 32 20 3d b3 28 77 69 64 74 68 2a 33 2f 34 29 |x2 =.(width*3/4)| 00000140 2b 77 69 64 74 68 2f 38 0d 00 96 1e 79 32 20 3d |+width/8....y2 =| 00000150 b3 28 68 65 69 67 68 74 2a 33 2f 34 29 2b 68 65 |.(height*3/4)+he| 00000160 69 67 68 74 2f 38 0d 00 a0 10 64 78 32 3d b3 28 |ight/8....dx2=.(| 00000170 31 36 29 2a b4 b3 0d 00 aa 10 64 79 32 3d b3 28 |16)*......dy2=.(| 00000180 31 36 29 2a b4 b3 0d 00 b4 0e 72 20 20 3d b3 28 |16)*......r =.(| 00000190 33 36 30 29 0d 00 be 0e 67 20 20 3d b3 28 33 36 |360)....g =.(36| 000001a0 30 29 0d 00 c8 0e 62 20 20 3d b3 28 33 36 30 29 |0)....b =.(360)| 000001b0 0d 00 d2 09 61 20 20 3d 30 0d 00 dc 10 6c 65 66 |....a =0....lef| 000001c0 74 3d 77 69 64 74 68 2f 38 0d 00 e6 13 72 69 67 |t=width/8....rig| 000001d0 68 74 3d 77 69 64 74 68 2a 37 2f 38 0d 00 f0 13 |ht=width*7/8....| 000001e0 62 6f 74 74 6f 6d 3d 68 65 69 67 68 74 2f 38 0d |bottom=height/8.| 000001f0 00 fa 12 74 6f 70 3d 68 65 69 67 68 74 2a 37 2f |...top=height*7/| 00000200 38 0d 01 04 05 f5 0d 01 0e 33 20 e7 20 78 31 2b |8........3 . x1+| 00000210 64 78 31 3c 6c 65 66 74 20 84 20 78 31 2b 64 78 |dx1<left . x1+dx| 00000220 31 3e 72 69 67 68 74 20 64 78 31 3d b3 28 31 36 |1>right dx1=.(16| 00000230 29 2a b4 28 2d 64 78 31 29 0d 01 18 33 20 e7 20 |)*.(-dx1)...3 . | 00000240 79 31 2b 64 79 31 3c 62 6f 74 74 6f 6d 20 84 20 |y1+dy1<bottom . | 00000250 79 31 2b 64 79 31 3e 74 6f 70 20 64 79 31 3d b3 |y1+dy1>top dy1=.| 00000260 28 31 36 29 2a b4 28 2d 64 79 31 29 0d 01 22 0c |(16)*.(-dy1)..".| 00000270 20 78 31 2b 3d 64 78 31 0d 01 2c 0c 20 79 31 2b | x1+=dx1..,. y1+| 00000280 3d 64 79 31 0d 01 36 1d 20 e7 20 78 32 3c 78 31 |=dy1..6. . x2<x1| 00000290 20 80 20 64 78 32 3c 32 34 20 20 64 78 32 2b 3d | . dx2<24 dx2+=| 000002a0 31 0d 01 40 1d 20 e7 20 78 32 3e 78 31 20 80 20 |1..@. . x2>x1 . | 000002b0 64 78 32 3e 2d 32 34 20 64 78 32 2d 3d 31 0d 01 |dx2>-24 dx2-=1..| 000002c0 4a 1d 20 e7 20 79 32 3c 79 31 20 80 20 64 79 32 |J. . y2<y1 . dy2| 000002d0 3c 32 34 20 20 64 79 32 2b 3d 31 0d 01 54 1d 20 |<24 dy2+=1..T. | 000002e0 e7 20 79 32 3e 79 31 20 80 20 64 79 32 3e 2d 32 |. y2>y1 . dy2>-2| 000002f0 34 20 64 79 32 2d 3d 31 0d 01 5e 0c 20 78 32 2b |4 dy2-=1..^. x2+| 00000300 3d 64 78 32 0d 01 68 0c 20 79 32 2b 3d 64 79 32 |=dx2..h. y2+=dy2| 00000310 0d 01 72 10 20 61 3d 28 61 2b 32 29 83 33 36 30 |..r. a=(a+2).360| 00000320 0d 01 7c 14 20 72 3d 28 72 2b b3 28 31 32 29 29 |..|. r=(r+.(12))| 00000330 83 33 36 30 0d 01 86 14 20 67 3d 28 67 2b b3 28 |.360.... g=(g+.(| 00000340 31 32 29 29 83 33 36 30 0d 01 90 14 20 62 3d 28 |12)).360.... b=(| 00000350 62 2b b3 28 31 32 29 29 83 33 36 30 0d 01 9a 0f |b+.(12)).360....| 00000360 20 e3 20 69 3d 32 20 b8 20 31 35 0d 01 a4 11 20 | . i=2 . 15.... | 00000370 20 78 28 69 2d 31 29 3d 78 28 69 29 0d 01 ae 11 | x(i-1)=x(i)....| 00000380 20 20 79 28 69 2d 31 29 3d 79 28 69 29 0d 01 b8 | y(i-1)=y(i)...| 00000390 11 20 20 7a 28 69 2d 31 29 3d 7a 28 69 29 0d 01 |. z(i-1)=z(i)..| 000003a0 c2 11 20 20 72 28 69 2d 31 29 3d 72 28 69 29 0d |.. r(i-1)=r(i).| 000003b0 01 cc 11 20 20 67 28 69 2d 31 29 3d 67 28 69 29 |... g(i-1)=g(i)| 000003c0 0d 01 d6 11 20 20 62 28 69 2d 31 29 3d 62 28 69 |.... b(i-1)=b(i| 000003d0 29 0d 01 e0 06 20 ed 0d 01 ea 0d 20 78 28 31 35 |).... ..... x(15| 000003e0 29 3d 78 32 0d 01 f4 0d 20 79 28 31 35 29 3d 79 |)=x2.... y(15)=y| 000003f0 32 0d 01 fe 14 20 7a 28 31 35 29 3d 28 31 2b b5 |2.... z(15)=(1+.| 00000400 b2 61 29 2b 32 0d 02 08 14 20 72 28 31 35 29 3d |.a)+2.... r(15)=| 00000410 28 31 2b b5 b2 72 29 2f 32 0d 02 12 14 20 67 28 |(1+..r)/2.... g(| 00000420 31 35 29 3d 28 31 2b b5 b2 67 29 2f 32 0d 02 1c |15)=(1+..g)/2...| 00000430 14 20 62 28 31 35 29 3d 28 31 2b b5 b2 62 29 2f |. b(15)=(1+..b)/| 00000440 32 0d 02 26 0f 20 e3 20 69 3d 31 20 b8 20 31 35 |2..&. . i=1 . 15| 00000450 0d 02 30 1a 20 20 72 72 3d 32 35 35 2a 28 31 2d |..0. rr=255*(1-| 00000460 69 2f 31 35 2a 72 28 69 29 29 0d 02 3a 1a 20 20 |i/15*r(i))..:. | 00000470 67 67 3d 32 35 35 2a 28 31 2d 69 2f 31 35 2a 67 |gg=255*(1-i/15*g| 00000480 28 69 29 29 0d 02 44 1a 20 20 62 62 3d 32 35 35 |(i))..D. bb=255| 00000490 2a 28 31 2d 69 2f 31 35 2a 62 28 69 29 29 0d 02 |*(1-i/15*b(i))..| 000004a0 4e 10 20 20 e6 20 72 72 2c 67 67 2c 62 62 0d 02 |N. . rr,gg,bb..| 000004b0 58 1c 20 20 c8 8f 20 c8 90 20 78 28 69 29 2c 79 |X. .. .. x(i),y| 000004c0 28 69 29 2c 69 2a 7a 28 69 29 0d 02 62 06 20 ed |(i),i*z(i)..b. .| 000004d0 0d 02 6c 0b fd 20 a6 2d 31 31 33 0d 02 80 05 e0 |..l.. .-113.....| 000004e0 0d 02 8a 05 3a 0d 02 9e 12 dd 20 f2 73 65 6c 65 |....:..... .sele| 000004f0 63 74 5f 6d 6f 64 65 0d 02 a8 0e de 20 6d 6f 64 |ct_mode..... mod| 00000500 65 25 20 32 34 0d 02 b2 0c 21 6d 6f 64 65 25 3d |e% 24....!mode%=| 00000510 31 0d 02 bc 0f 6d 6f 64 65 25 21 34 3d 38 30 30 |1....mode%!4=800| 00000520 0d 02 c6 0f 6d 6f 64 65 25 21 38 3d 36 30 30 0d |....mode%!8=600.| 00000530 02 d0 0e 6d 6f 64 65 25 21 31 32 3d 34 0d 02 da |...mode%!12=4...| 00000540 0f 6d 6f 64 65 25 21 31 36 3d 2d 31 0d 02 e4 0f |.mode%!16=-1....| 00000550 6d 6f 64 65 25 21 32 30 3d 2d 31 0d 02 ee 0b eb |mode%!20=-1.....| 00000560 20 6d 6f 64 65 25 0d 02 f8 05 87 0d 03 02 31 c8 | mode%........1.| 00000570 99 20 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 |. "OS_ReadModeVa| 00000580 72 69 61 62 6c 65 22 2c 2d 31 2c 31 31 20 b8 20 |riable",-1,11 . | 00000590 2c 2c 58 57 69 6e 64 4c 69 6d 69 74 0d 03 0c 31 |,,XWindLimit...1| 000005a0 c8 99 20 22 4f 53 5f 52 65 61 64 4d 6f 64 65 56 |.. "OS_ReadModeV| 000005b0 61 72 69 61 62 6c 65 22 2c 2d 31 2c 31 32 20 b8 |ariable",-1,12 .| 000005c0 20 2c 2c 59 57 69 6e 64 4c 69 6d 69 74 0d 03 16 | ,,YWindLimit...| 000005d0 31 c8 99 20 22 4f 53 5f 52 65 61 64 4d 6f 64 65 |1.. "OS_ReadMode| 000005e0 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c 34 20 20 |Variable",-1,4 | 000005f0 b8 20 2c 2c 58 45 69 67 46 61 63 74 6f 72 0d 03 |. ,,XEigFactor..| 00000600 20 31 c8 99 20 22 4f 53 5f 52 65 61 64 4d 6f 64 | 1.. "OS_ReadMod| 00000610 65 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c 35 20 |eVariable",-1,5 | 00000620 20 b8 20 2c 2c 59 45 69 67 46 61 63 74 6f 72 0d | . ,,YEigFactor.| 00000630 03 2a 24 77 69 64 74 68 3d 28 58 57 69 6e 64 4c |.*$width=(XWindL| 00000640 69 6d 69 74 2b 31 29 3c 3c 58 45 69 67 46 61 63 |imit+1)<<XEigFac| 00000650 74 6f 72 0d 03 34 25 68 65 69 67 68 74 3d 28 59 |tor..4%height=(Y| 00000660 57 69 6e 64 4c 69 6d 69 74 2b 31 29 3c 3c 59 45 |WindLimit+1)<<YE| 00000670 69 67 46 61 63 74 6f 72 0d 03 3e 05 e1 0d ff |igFactor..>....| 0000067f