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)
Zx()=-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