Home » Archimedes archive » Acorn User » AU 1997-08 B.adf » Regulars » starinfo/Tunnel/Adcock/Plug

starinfo/Tunnel/Adcock/Plug

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-08 B.adf » Regulars
Filename: starinfo/Tunnel/Adcock/Plug
Read OK:
File size: 0386 bytes
Load address: 0000
Exec address: 0000
File contents
   10MODE 12:OFF
   20ON ERROR PRINT ERL:REPORT:END
   30DIM X(50),Y(50)
   40NO_OF_LINES=180
   50CLOCKWISE=1
   60STP=360/NO_OF_LINES
   70ORIGIN 640,512
   80X(1)=900
   90Y(1)=0
  100FOR L = 2 TO 50
  110  PROCROT(X(L-1),Y(L-1),3.6)
  120  X(L)=NX*0.9
  130  Y(L)=NY*0.9
  140NEXT L
  150:
  160SHADE=0
  170FOR C = 1 TO NO_OF_LINES
  180SHADE+=1*CLOCKWISE
  190IF SHADE>15 THEN SHADE=1
  200IF SHADE<1 THEN SHADE=15
  210GCOL SHADE
  220FOR L = 2 TO 50
  230PROCROT(X(L),Y(L),C*STP)
  240X1=NX
  250Y1=NY
  260PROCROT(X(L),Y(L),C*STP+STP)
  270X2=NX
  280Y2=NY
  290:
  300PROCROT(X(L-1),Y(L-1),C*STP)
  310X3=NX
  320Y3=NY
  330PROCROT(X(L-1),Y(L-1),C*STP+STP)
  340X4=NX
  350Y4=NY
  360:
  370MOVE X1,Y1
  380MOVE X2,Y2
  390PLOT &55,X3,Y3
  400PLOT &55,X4,Y4
  410NEXT L
  420NEXT C
  430:
  440CC=1
  450REPEAT
  460:
  470CS=CC
  480  COLOUR 0,0,0,180
  490  FOR C = 1 TO 15
  500    COLOUR CS,0,C*8,C*5+180
  510    CS+=1
  520    IF CS>15 THEN CS=1
  530  NEXT C
  540  CC+=1
  550  IF CC>15 THEN CC=1
  560WAIT
  570:
  580UNTIL FALSE
  590:
  600END
  610DEF PROCROT(RX,RY,RD)
  620R=RAD(-RD)
  630NX=RX*COS(R)-RY*SIN(R)
  640NY=RX*SIN(R)+RY*COS(R)
  650ENDPROC


� 12:�
� � � �:�:�
� X(50),Y(50)
(NO_OF_LINES=180
2CLOCKWISE=1
<STP=360/NO_OF_LINES
Fȑ 640,512
PX(1)=900
Z
Y(1)=0
d� L = 2 � 50
n  �ROT(X(L-1),Y(L-1),3.6)
x  X(L)=NX*0.9
�  Y(L)=NY*0.9
�� L
�:
�SHADE=0
�� C = 1 � NO_OF_LINES
�SHADE+=1*CLOCKWISE
�� SHADE>15 � SHADE=1
�� SHADE<1 � SHADE=15
�� SHADE
�� L = 2 � 50
��ROT(X(L),Y(L),C*STP)
�	X1=NX
�	Y1=NY
�ROT(X(L),Y(L),C*STP+STP)
	X2=NX
	Y2=NY
":
,�ROT(X(L-1),Y(L-1),C*STP)
6	X3=NX
@	Y3=NY
J!�ROT(X(L-1),Y(L-1),C*STP+STP)
T	X4=NX
^	Y4=NY
h:
r� X1,Y1
|� X2,Y2
�� &55,X3,Y3
�� &55,X4,Y4
�� L
�� C
�:
�CC=1
��
�:
�	CS=CC
�  � 0,0,0,180
�  � C = 1 � 15
�    � CS,0,C*8,C*5+180
�
    CS+=1
    � CS>15 � CS=1
	  � C
  CC+=1
&  � CC>15 � CC=1
0Ȗ
::
D� �
N:
X�
b� �ROT(RX,RY,RD)
lR=�(-RD)
vNX=RX*�(R)-RY*�(R)
�NY=RX*�(R)+RY*�(R)
��
�
00000000  0d 00 0a 0a eb 20 31 32  3a 87 0d 00 14 0f ee 20  |..... 12:...... |
00000010  85 20 f1 20 9e 3a f6 3a  e0 0d 00 1e 11 de 20 58  |. . .:.:...... X|
00000020  28 35 30 29 2c 59 28 35  30 29 0d 00 28 13 4e 4f  |(50),Y(50)..(.NO|
00000030  5f 4f 46 5f 4c 49 4e 45  53 3d 31 38 30 0d 00 32  |_OF_LINES=180..2|
00000040  0f 43 4c 4f 43 4b 57 49  53 45 3d 31 0d 00 3c 17  |.CLOCKWISE=1..<.|
00000050  53 54 50 3d 33 36 30 2f  4e 4f 5f 4f 46 5f 4c 49  |STP=360/NO_OF_LI|
00000060  4e 45 53 0d 00 46 0e c8  91 20 36 34 30 2c 35 31  |NES..F... 640,51|
00000070  32 0d 00 50 0c 58 28 31  29 3d 39 30 30 0d 00 5a  |2..P.X(1)=900..Z|
00000080  0a 59 28 31 29 3d 30 0d  00 64 10 e3 20 4c 20 3d  |.Y(1)=0..d.. L =|
00000090  20 32 20 b8 20 35 30 0d  00 6e 1d 20 20 f2 52 4f  | 2 . 50..n.  .RO|
000000a0  54 28 58 28 4c 2d 31 29  2c 59 28 4c 2d 31 29 2c  |T(X(L-1),Y(L-1),|
000000b0  33 2e 36 29 0d 00 78 11  20 20 58 28 4c 29 3d 4e  |3.6)..x.  X(L)=N|
000000c0  58 2a 30 2e 39 0d 00 82  11 20 20 59 28 4c 29 3d  |X*0.9....  Y(L)=|
000000d0  4e 59 2a 30 2e 39 0d 00  8c 07 ed 20 4c 0d 00 96  |NY*0.9..... L...|
000000e0  05 3a 0d 00 a0 0b 53 48  41 44 45 3d 30 0d 00 aa  |.:....SHADE=0...|
000000f0  19 e3 20 43 20 3d 20 31  20 b8 20 4e 4f 5f 4f 46  |.. C = 1 . NO_OF|
00000100  5f 4c 49 4e 45 53 0d 00  b4 16 53 48 41 44 45 2b  |_LINES....SHADE+|
00000110  3d 31 2a 43 4c 4f 43 4b  57 49 53 45 0d 00 be 18  |=1*CLOCKWISE....|
00000120  e7 20 53 48 41 44 45 3e  31 35 20 8c 20 53 48 41  |. SHADE>15 . SHA|
00000130  44 45 3d 31 0d 00 c8 18  e7 20 53 48 41 44 45 3c  |DE=1..... SHADE<|
00000140  31 20 8c 20 53 48 41 44  45 3d 31 35 0d 00 d2 0b  |1 . SHADE=15....|
00000150  e6 20 53 48 41 44 45 0d  00 dc 10 e3 20 4c 20 3d  |. SHADE..... L =|
00000160  20 32 20 b8 20 35 30 0d  00 e6 19 f2 52 4f 54 28  | 2 . 50.....ROT(|
00000170  58 28 4c 29 2c 59 28 4c  29 2c 43 2a 53 54 50 29  |X(L),Y(L),C*STP)|
00000180  0d 00 f0 09 58 31 3d 4e  58 0d 00 fa 09 59 31 3d  |....X1=NX....Y1=|
00000190  4e 59 0d 01 04 1d f2 52  4f 54 28 58 28 4c 29 2c  |NY.....ROT(X(L),|
000001a0  59 28 4c 29 2c 43 2a 53  54 50 2b 53 54 50 29 0d  |Y(L),C*STP+STP).|
000001b0  01 0e 09 58 32 3d 4e 58  0d 01 18 09 59 32 3d 4e  |...X2=NX....Y2=N|
000001c0  59 0d 01 22 05 3a 0d 01  2c 1d f2 52 4f 54 28 58  |Y..".:..,..ROT(X|
000001d0  28 4c 2d 31 29 2c 59 28  4c 2d 31 29 2c 43 2a 53  |(L-1),Y(L-1),C*S|
000001e0  54 50 29 0d 01 36 09 58  33 3d 4e 58 0d 01 40 09  |TP)..6.X3=NX..@.|
000001f0  59 33 3d 4e 59 0d 01 4a  21 f2 52 4f 54 28 58 28  |Y3=NY..J!.ROT(X(|
00000200  4c 2d 31 29 2c 59 28 4c  2d 31 29 2c 43 2a 53 54  |L-1),Y(L-1),C*ST|
00000210  50 2b 53 54 50 29 0d 01  54 09 58 34 3d 4e 58 0d  |P+STP)..T.X4=NX.|
00000220  01 5e 09 59 34 3d 4e 59  0d 01 68 05 3a 0d 01 72  |.^.Y4=NY..h.:..r|
00000230  0b ec 20 58 31 2c 59 31  0d 01 7c 0b ec 20 58 32  |.. X1,Y1..|.. X2|
00000240  2c 59 32 0d 01 86 0f f0  20 26 35 35 2c 58 33 2c  |,Y2..... &55,X3,|
00000250  59 33 0d 01 90 0f f0 20  26 35 35 2c 58 34 2c 59  |Y3..... &55,X4,Y|
00000260  34 0d 01 9a 07 ed 20 4c  0d 01 a4 07 ed 20 43 0d  |4..... L..... C.|
00000270  01 ae 05 3a 0d 01 b8 08  43 43 3d 31 0d 01 c2 05  |...:....CC=1....|
00000280  f5 0d 01 cc 05 3a 0d 01  d6 09 43 53 3d 43 43 0d  |.....:....CS=CC.|
00000290  01 e0 11 20 20 fb 20 30  2c 30 2c 30 2c 31 38 30  |...  . 0,0,0,180|
000002a0  0d 01 ea 12 20 20 e3 20  43 20 3d 20 31 20 b8 20  |....  . C = 1 . |
000002b0  31 35 0d 01 f4 1a 20 20  20 20 fb 20 43 53 2c 30  |15....    . CS,0|
000002c0  2c 43 2a 38 2c 43 2a 35  2b 31 38 30 0d 01 fe 0d  |,C*8,C*5+180....|
000002d0  20 20 20 20 43 53 2b 3d  31 0d 02 08 16 20 20 20  |    CS+=1....   |
000002e0  20 e7 20 43 53 3e 31 35  20 8c 20 43 53 3d 31 0d  | . CS>15 . CS=1.|
000002f0  02 12 09 20 20 ed 20 43  0d 02 1c 0b 20 20 43 43  |...  . C....  CC|
00000300  2b 3d 31 0d 02 26 14 20  20 e7 20 43 43 3e 31 35  |+=1..&.  . CC>15|
00000310  20 8c 20 43 43 3d 31 0d  02 30 06 c8 96 0d 02 3a  | . CC=1..0.....:|
00000320  05 3a 0d 02 44 07 fd 20  a3 0d 02 4e 05 3a 0d 02  |.:..D.. ...N.:..|
00000330  58 05 e0 0d 02 62 14 dd  20 f2 52 4f 54 28 52 58  |X....b.. .ROT(RX|
00000340  2c 52 59 2c 52 44 29 0d  02 6c 0c 52 3d b2 28 2d  |,RY,RD)..l.R=.(-|
00000350  52 44 29 0d 02 76 16 4e  58 3d 52 58 2a 9b 28 52  |RD)..v.NX=RX*.(R|
00000360  29 2d 52 59 2a b5 28 52  29 0d 02 80 16 4e 59 3d  |)-RY*.(R)....NY=|
00000370  52 58 2a b5 28 52 29 2b  52 59 2a 9b 28 52 29 0d  |RX*.(R)+RY*.(R).|
00000380  02 8a 05 e1 0d ff                                 |......|
00000386