Home » Archimedes archive » Acorn User » AU 1994-08.adf » !StarInfo_StarInfo » VanMourik/SpherAgate

VanMourik/SpherAgate

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 1994-08.adf » !StarInfo_StarInfo
Filename: VanMourik/SpherAgate
Read OK:
File size: 04AA bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >SpherAgate
   20REM (c) JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ  UK. 94
   30
   40PROCMODE
   50DIM A(777),B(777)
   60C%=0
   70ORIGIN 640,512
   80D=PI/2
   90E=PI*2
  100FOR X=0TO15
  110 READ R,G,B
  120 COLOUR X,R,G,B
  130NEXT
  140P%=1111:REM P% = TOTAL NUMBER OF SEED POINTS
  150REM EQUAL RANDOM DISTRIBUTION OF POINTS ON A SPHERE
  160FOR Z%=0 TO P%
  170 X=RND(1)*D
  180 IF RND(1)<COSX A(C%)=RND(1)*E:B(C%)=X:C%+=1
  190NEXT
  200R%=511
  210D%=C%-1:REM D% = VISIBLE NUMBER OF CIRCLE CENTRES
  220
  230Q%=1:REM Q% = CIRCLE SIZE
  240REM MAIN LOOP
  250FOR X=15 TO 1 STEP -1
  260 GCOL X
  270 F=RAD(SQRX*Q%)
  280 R=R%*COSF
  290 Q=R%*SINF
  300 FOR Y%=0 TO D%
  310  F=A(Y%)
  320  T=R*COSB(Y%)
  330  ELLIPSE FILL -T*SINF,T*COSF,Q,Q*SINB(Y%),F
  340 NEXT
  350NEXT
  360PRINT"CLICK MOUSE"
  370GCOL 0
  380FOR X=514 TO 520 STEP.2
  390 CIRCLE 0,0,X
  400NEXT
  410REPEAT
  420 MOUSE A,B,C
  430UNTIL C
  440FOR X=1 TO 15
  450 Y=(15-X)*16
  460 COLOUR X,Y,Y,Y
  470NEXT
  480REPEAT
  490 MOUSE A,B,C
  500UNTIL C=0
  510REPEAT
  520 MOUSE A,B,C
  530UNTIL C
  540END
  550
  560REM R,G,B VALUE OF THE PALETTE
  570DATA 0,0,0,192,0,240,144,48,240,96,96,240,48,144,240,0,192,240,0,240,192,48,240,144,96,240,96,144,240,48,192,240,0,240,192,0,240,144,48,240,96,96,240,48,144,240,0,192
  580
  590REM SUITABLE MODE DETECTION ROUTINE
  600DEF PROCMODE
  610LOCALC%,F%
  620SYS 63,20 TO ;F%
  630C%=(F%AND%0010)>>1
  640IF NOT (C%=1) MODE 20:B_%=1 ELSE MODE 12:B_%=0
  650OFF
  660ENDPROC

� >SpherAgate
M� (c) JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ  UK. 94

(	�MODE
2� A(777),B(777)
<C%=0
Fȑ 640,512
P	D=�/2
Z	E=�*2
d� X=0�15
n � R,G,B
x � X,R,G,B
��
�.P%=1111:� P% = TOTAL NUMBER OF SEED POINTS
�5� EQUAL RANDOM DISTRIBUTION OF POINTS ON A SPHERE
�� Z%=0 � P%
�
 X=�(1)*D
�) � �(1)<�X A(C%)=�(1)*E:B(C%)=X:C%+=1
��
�
R%=511
�3D%=C%-1:� D% = VISIBLE NUMBER OF CIRCLE CENTRES
�
�Q%=1:� Q% = CIRCLE SIZE
�� MAIN LOOP
�� X=15 � 1 � -1
 � X
 F=�(�X*Q%)
 R=R%*�F
" Q=R%*�F
, � Y%=0 � D%
6
  F=A(Y%)
@  T=R*�B(Y%)
J#  ȝ Ȑ -T*�F,T*�F,Q,Q*�B(Y%),F
T �
^�
h�"CLICK MOUSE"
r� 0
|� X=514 � 520 �.2
�
 ȏ 0,0,X
��
��
�
 ȗ A,B,C
�� C
�� X=1 � 15
� Y=(15-X)*16
� � X,Y,Y,Y
��
��
�
 ȗ A,B,C
�	� C=0
��

 ȗ A,B,C
� C
�
&
0 � R,G,B VALUE OF THE PALETTE
:�� 0,0,0,192,0,240,144,48,240,96,96,240,48,144,240,0,192,240,0,240,192,48,240,144,96,240,96,144,240,48,192,240,0,240,192,0,240,144,48,240,96,96,240,48,144,240,0,192
D
N%� SUITABLE MODE DETECTION ROUTINE
X� �MODE
b
�C%,F%
lș 63,20 � ;F%
vC%=(F%�%0010)>>1
�&� � (C%=1) � 20:B_%=1 � � 12:B_%=0
��
��
�
00000000  0d 00 0a 11 f4 20 3e 53  70 68 65 72 41 67 61 74  |..... >SpherAgat|
00000010  65 0d 00 14 4d f4 20 28  63 29 20 4a 45 41 4e 20  |e...M. (c) JEAN |
00000020  56 41 4e 20 4d 4f 55 52  49 4b 20 4d 49 4c 4c 43  |VAN MOURIK MILLC|
00000030  4f 54 54 41 47 45 20 44  45 52 57 59 44 44 20 41  |OTTAGE DERWYDD A|
00000040  4d 4d 41 4e 46 4f 52 44  20 44 59 46 45 44 20 53  |MMANFORD DYFED S|
00000050  41 31 38 33 4c 51 20 20  55 4b 2e 20 39 34 0d 00  |A183LQ  UK. 94..|
00000060  1e 04 0d 00 28 09 f2 4d  4f 44 45 0d 00 32 13 de  |....(..MODE..2..|
00000070  20 41 28 37 37 37 29 2c  42 28 37 37 37 29 0d 00  | A(777),B(777)..|
00000080  3c 08 43 25 3d 30 0d 00  46 0e c8 91 20 36 34 30  |<.C%=0..F... 640|
00000090  2c 35 31 32 0d 00 50 09  44 3d af 2f 32 0d 00 5a  |,512..P.D=./2..Z|
000000a0  09 45 3d af 2a 32 0d 00  64 0c e3 20 58 3d 30 b8  |.E=.*2..d.. X=0.|
000000b0  31 35 0d 00 6e 0c 20 f3  20 52 2c 47 2c 42 0d 00  |15..n. . R,G,B..|
000000c0  78 0e 20 fb 20 58 2c 52  2c 47 2c 42 0d 00 82 05  |x. . X,R,G,B....|
000000d0  ed 0d 00 8c 2e 50 25 3d  31 31 31 31 3a f4 20 50  |.....P%=1111:. P|
000000e0  25 20 3d 20 54 4f 54 41  4c 20 4e 55 4d 42 45 52  |% = TOTAL NUMBER|
000000f0  20 4f 46 20 53 45 45 44  20 50 4f 49 4e 54 53 0d  | OF SEED POINTS.|
00000100  00 96 35 f4 20 45 51 55  41 4c 20 52 41 4e 44 4f  |..5. EQUAL RANDO|
00000110  4d 20 44 49 53 54 52 49  42 55 54 49 4f 4e 20 4f  |M DISTRIBUTION O|
00000120  46 20 50 4f 49 4e 54 53  20 4f 4e 20 41 20 53 50  |F POINTS ON A SP|
00000130  48 45 52 45 0d 00 a0 0f  e3 20 5a 25 3d 30 20 b8  |HERE..... Z%=0 .|
00000140  20 50 25 0d 00 aa 0d 20  58 3d b3 28 31 29 2a 44  | P%.... X=.(1)*D|
00000150  0d 00 b4 29 20 e7 20 b3  28 31 29 3c 9b 58 20 41  |...) . .(1)<.X A|
00000160  28 43 25 29 3d b3 28 31  29 2a 45 3a 42 28 43 25  |(C%)=.(1)*E:B(C%|
00000170  29 3d 58 3a 43 25 2b 3d  31 0d 00 be 05 ed 0d 00  |)=X:C%+=1.......|
00000180  c8 0a 52 25 3d 35 31 31  0d 00 d2 33 44 25 3d 43  |..R%=511...3D%=C|
00000190  25 2d 31 3a f4 20 44 25  20 3d 20 56 49 53 49 42  |%-1:. D% = VISIB|
000001a0  4c 45 20 4e 55 4d 42 45  52 20 4f 46 20 43 49 52  |LE NUMBER OF CIR|
000001b0  43 4c 45 20 43 45 4e 54  52 45 53 0d 00 dc 04 0d  |CLE CENTRES.....|
000001c0  00 e6 1b 51 25 3d 31 3a  f4 20 51 25 20 3d 20 43  |...Q%=1:. Q% = C|
000001d0  49 52 43 4c 45 20 53 49  5a 45 0d 00 f0 0f f4 20  |IRCLE SIZE..... |
000001e0  4d 41 49 4e 20 4c 4f 4f  50 0d 00 fa 13 e3 20 58  |MAIN LOOP..... X|
000001f0  3d 31 35 20 b8 20 31 20  88 20 2d 31 0d 01 04 08  |=15 . 1 . -1....|
00000200  20 e6 20 58 0d 01 0e 0f  20 46 3d b2 28 b6 58 2a  | . X.... F=.(.X*|
00000210  51 25 29 0d 01 18 0c 20  52 3d 52 25 2a 9b 46 0d  |Q%).... R=R%*.F.|
00000220  01 22 0c 20 51 3d 52 25  2a b5 46 0d 01 2c 10 20  |.". Q=R%*.F..,. |
00000230  e3 20 59 25 3d 30 20 b8  20 44 25 0d 01 36 0d 20  |. Y%=0 . D%..6. |
00000240  20 46 3d 41 28 59 25 29  0d 01 40 10 20 20 54 3d  | F=A(Y%)..@.  T=|
00000250  52 2a 9b 42 28 59 25 29  0d 01 4a 23 20 20 c8 9d  |R*.B(Y%)..J#  ..|
00000260  20 c8 90 20 2d 54 2a b5  46 2c 54 2a 9b 46 2c 51  | .. -T*.F,T*.F,Q|
00000270  2c 51 2a b5 42 28 59 25  29 2c 46 0d 01 54 06 20  |,Q*.B(Y%),F..T. |
00000280  ed 0d 01 5e 05 ed 0d 01  68 12 f1 22 43 4c 49 43  |...^....h.."CLIC|
00000290  4b 20 4d 4f 55 53 45 22  0d 01 72 07 e6 20 30 0d  |K MOUSE"..r.. 0.|
000002a0  01 7c 15 e3 20 58 3d 35  31 34 20 b8 20 35 32 30  |.|.. X=514 . 520|
000002b0  20 88 2e 32 0d 01 86 0d  20 c8 8f 20 30 2c 30 2c  | ..2.... .. 0,0,|
000002c0  58 0d 01 90 05 ed 0d 01  9a 05 f5 0d 01 a4 0d 20  |X.............. |
000002d0  c8 97 20 41 2c 42 2c 43  0d 01 ae 07 fd 20 43 0d  |.. A,B,C..... C.|
000002e0  01 b8 0e e3 20 58 3d 31  20 b8 20 31 35 0d 01 c2  |.... X=1 . 15...|
000002f0  10 20 59 3d 28 31 35 2d  58 29 2a 31 36 0d 01 cc  |. Y=(15-X)*16...|
00000300  0e 20 fb 20 58 2c 59 2c  59 2c 59 0d 01 d6 05 ed  |. . X,Y,Y,Y.....|
00000310  0d 01 e0 05 f5 0d 01 ea  0d 20 c8 97 20 41 2c 42  |......... .. A,B|
00000320  2c 43 0d 01 f4 09 fd 20  43 3d 30 0d 01 fe 05 f5  |,C..... C=0.....|
00000330  0d 02 08 0d 20 c8 97 20  41 2c 42 2c 43 0d 02 12  |.... .. A,B,C...|
00000340  07 fd 20 43 0d 02 1c 05  e0 0d 02 26 04 0d 02 30  |.. C.......&...0|
00000350  20 f4 20 52 2c 47 2c 42  20 56 41 4c 55 45 20 4f  | . R,G,B VALUE O|
00000360  46 20 54 48 45 20 50 41  4c 45 54 54 45 0d 02 3a  |F THE PALETTE..:|
00000370  a7 dc 20 30 2c 30 2c 30  2c 31 39 32 2c 30 2c 32  |.. 0,0,0,192,0,2|
00000380  34 30 2c 31 34 34 2c 34  38 2c 32 34 30 2c 39 36  |40,144,48,240,96|
00000390  2c 39 36 2c 32 34 30 2c  34 38 2c 31 34 34 2c 32  |,96,240,48,144,2|
000003a0  34 30 2c 30 2c 31 39 32  2c 32 34 30 2c 30 2c 32  |40,0,192,240,0,2|
000003b0  34 30 2c 31 39 32 2c 34  38 2c 32 34 30 2c 31 34  |40,192,48,240,14|
000003c0  34 2c 39 36 2c 32 34 30  2c 39 36 2c 31 34 34 2c  |4,96,240,96,144,|
000003d0  32 34 30 2c 34 38 2c 31  39 32 2c 32 34 30 2c 30  |240,48,192,240,0|
000003e0  2c 32 34 30 2c 31 39 32  2c 30 2c 32 34 30 2c 31  |,240,192,0,240,1|
000003f0  34 34 2c 34 38 2c 32 34  30 2c 39 36 2c 39 36 2c  |44,48,240,96,96,|
00000400  32 34 30 2c 34 38 2c 31  34 34 2c 32 34 30 2c 30  |240,48,144,240,0|
00000410  2c 31 39 32 0d 02 44 04  0d 02 4e 25 f4 20 53 55  |,192..D...N%. SU|
00000420  49 54 41 42 4c 45 20 4d  4f 44 45 20 44 45 54 45  |ITABLE MODE DETE|
00000430  43 54 49 4f 4e 20 52 4f  55 54 49 4e 45 0d 02 58  |CTION ROUTINE..X|
00000440  0b dd 20 f2 4d 4f 44 45  0d 02 62 0a ea 43 25 2c  |.. .MODE..b..C%,|
00000450  46 25 0d 02 6c 12 c8 99  20 36 33 2c 32 30 20 b8  |F%..l... 63,20 .|
00000460  20 3b 46 25 0d 02 76 14  43 25 3d 28 46 25 80 25  | ;F%..v.C%=(F%.%|
00000470  30 30 31 30 29 3e 3e 31  0d 02 80 26 e7 20 ac 20  |0010)>>1...&. . |
00000480  28 43 25 3d 31 29 20 eb  20 32 30 3a 42 5f 25 3d  |(C%=1) . 20:B_%=|
00000490  31 20 8b 20 eb 20 31 32  3a 42 5f 25 3d 30 0d 02  |1 . . 12:B_%=0..|
000004a0  8a 05 87 0d 02 94 05 e1  0d ff                    |..........|
000004aa