Home » Archimedes archive » Acorn User » AU 1997-10 A.adf » Regulars » StarInfo/Adcock/HairNet

StarInfo/Adcock/HairNet

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-10 A.adf » Regulars
Filename: StarInfo/Adcock/HairNet
Read OK:
File size: 05BE bytes
Load address: 0000
Exec address: 0000
File contents
   10MODE 1:OFF
   20ON ERROR PRINTERL:REPORT:END
   30R=300
   40S=5
   50RD=360/S
   60X=R
   70Y=0
   80ORIGIN 640,512
   90REM GCOL 4,0
  100BANK=1
  110A=1
  120B=1
  130C=1
  140D=1
  150DIM MX(2),MY(2),MXP(2),MYP(2)
  160FOR L = 1 TO 2
  170MX(L)=RND(1280)-640
  180MY(L)=RND(1024)-512
  190MXP(L)=RND(10)*SGN(RND)
  200MYP(L)=RND(10)*SGN(RND)
  210NEXT L
  220DIM XR(360),YR(360)
  230DIM X(RD,360),Y(RD,360)
  240FOR DG = 0 TO 360
  250XR(DG)=X*COS(RAD(DG))-Y*SIN(RAD(DG))
  260YR(DG)=X*SIN(RAD(DG))+Y*COS(RAD(DG))
  270NEXT DG
  280FOR R = 1 TO RD
  290PRINTTAB(0,0);INT(100*(R/RD));"%"
  300FOR DG = 1 TO 360
  310X(R,DG)=COS(RAD(R*S))*XR(DG)-SIN(RAD(R*S))*XR(DG)
  320Y(R,DG)=SIN(RAD(R*S))*YR(DG)+COS(RAD(R*S))*YR(DG)
  330NEXT DG
  340NEXT R
  350R=5
  360
  370REPEAT
  380IF INKEY-99 Ab=0 ELSE Ab=1
  390MOUSE MX,MY,NULL
  400XS=(MX+640)/640
  410YS=(MY+512)/512
  420:
  430   FOR L = 1 TO 2
  440   MX(L)=MX(L)+MXP(L)*4
  450   MY(L)=MY(L)+MYP(L)*4
  460   REM MXP(L)=MXP(L)+RND(10)-RND(10)
  470   REM MYP(L)=MYP(L)+RND(10)-RND(10)
  480   IF MX(L)>640 OR MX(L)<-640 THEN MXP(L)=-MXP(L)+RND(5)-RND(5):MYP(L)=MYP(L)+RND(2)-RND(2):MX(L)=0.95*MX(L)
  490   IF MY(L)>512 OR MY(L)<-512 THEN MYP(L)=-MYP(L)+RND(5)-RND(5):MXP(L)=MXP(L)+RND(2)-RND(2):MY(L)=0.95*MY(L)
  500   IF MXP(L)>20 OR MXP(L)<-20 THEN MXP(L)=MXP(L)*0.9
  510   IF MYP(L)>20 OR MYP(L)<-20 THEN MYP(L)=MYP(L)*0.9
  520   NEXT L
  530:
  540A=(MX(1)+640)/320
  550B=(MY(1)+512)/256
  560C=(MX(2)+640)/320
  570D=(MY(2)+512)/256
  580R+=5
  590IF R>360 R=10
  600:
  610FOR DG = S TO 360-S STEP S
  620ELLIPSE X(Ab*(R/S-1)+1,DG)*XS,Y(Ab*(R/S-1)+1,DG)*YS,XS*(YR(DG)*A+XR(DG)*B)/(A+B+1),YS*(YR(DG)*C+XR(DG)*D)/(C+D+1)
  630NEXT DG
  640SYS 6,19
  650SYS 6,112,BANK
  660SYS 6,113,3-BANK
  670BANK=3-BANK
  680CLS
  690UNTIL FALSE
  700END

	� 1:�
� � �:�:�
	R=300
(S=5
2RD=360/S
<X=R
FY=0
Pȑ 640,512
Z� GCOL 4,0
d
BANK=1
nA=1
xB=1
�C=1
�D=1
�� MX(2),MY(2),MXP(2),MYP(2)
�� L = 1 � 2
�MX(L)=�(1280)-640
�MY(L)=�(1024)-512
�MXP(L)=�(10)*�(�)
�MYP(L)=�(10)*�(�)
�� L
�� XR(360),YR(360)
�� X(RD,360),Y(RD,360)
�� DG = 0 � 360
� XR(DG)=X*�(�(DG))-Y*�(�(DG))
 YR(DG)=X*�(�(DG))+Y*�(�(DG))
� DG
� R = 1 � RD
"�0,0);�(100*(R/RD));"%"
,� DG = 1 � 360
6-X(R,DG)=�(�(R*S))*XR(DG)-�(�(R*S))*XR(DG)
@-Y(R,DG)=�(�(R*S))*YR(DG)+�(�(R*S))*YR(DG)
J� DG
T� R
^R=5
h
r�
|� �-99 Ab=0 � Ab=1
�ȗ MX,MY,NULL
�XS=(MX+640)/640
�YS=(MY+512)/512
�:
�   � L = 1 � 2
�   MX(L)=MX(L)+MXP(L)*4
�   MY(L)=MY(L)+MYP(L)*4
�&   � MXP(L)=MXP(L)+RND(10)-RND(10)
�&   � MYP(L)=MYP(L)+RND(10)-RND(10)
�c   � MX(L)>640 � MX(L)<-640 � MXP(L)=-MXP(L)+�(5)-�(5):MYP(L)=MYP(L)+�(2)-�(2):MX(L)=0.95*MX(L)
�c   � MY(L)>512 � MY(L)<-512 � MYP(L)=-MYP(L)+�(5)-�(5):MXP(L)=MXP(L)+�(2)-�(2):MY(L)=0.95*MY(L)
�3   � MXP(L)>20 � MXP(L)<-20 � MXP(L)=MXP(L)*0.9
�3   � MYP(L)>20 � MYP(L)<-20 � MYP(L)=MYP(L)*0.9

   � L
:
A=(MX(1)+640)/320
&B=(MY(1)+512)/256
0C=(MX(2)+640)/320
:D=(MY(2)+512)/256
DR+=5
N� R>360 R=10
X:
b� DG = S � 360-S � S
lpȝ X(Ab*(R/S-1)+1,DG)*XS,Y(Ab*(R/S-1)+1,DG)*YS,XS*(YR(DG)*A+XR(DG)*B)/(A+B+1),YS*(YR(DG)*C+XR(DG)*D)/(C+D+1)
v� DG
�ș 6,19
�ș 6,112,BANK
�ș 6,113,3-BANK
�BANK=3-BANK
��
�� �
��
�
00000000  0d 00 0a 09 eb 20 31 3a  87 0d 00 14 0e ee 20 85  |..... 1:...... .|
00000010  20 f1 9e 3a f6 3a e0 0d  00 1e 09 52 3d 33 30 30  | ..:.:.....R=300|
00000020  0d 00 28 07 53 3d 35 0d  00 32 0c 52 44 3d 33 36  |..(.S=5..2.RD=36|
00000030  30 2f 53 0d 00 3c 07 58  3d 52 0d 00 46 07 59 3d  |0/S..<.X=R..F.Y=|
00000040  30 0d 00 50 0e c8 91 20  36 34 30 2c 35 31 32 0d  |0..P... 640,512.|
00000050  00 5a 0e f4 20 47 43 4f  4c 20 34 2c 30 0d 00 64  |.Z.. GCOL 4,0..d|
00000060  0a 42 41 4e 4b 3d 31 0d  00 6e 07 41 3d 31 0d 00  |.BANK=1..n.A=1..|
00000070  78 07 42 3d 31 0d 00 82  07 43 3d 31 0d 00 8c 07  |x.B=1....C=1....|
00000080  44 3d 31 0d 00 96 1f de  20 4d 58 28 32 29 2c 4d  |D=1..... MX(2),M|
00000090  59 28 32 29 2c 4d 58 50  28 32 29 2c 4d 59 50 28  |Y(2),MXP(2),MYP(|
000000a0  32 29 0d 00 a0 0f e3 20  4c 20 3d 20 31 20 b8 20  |2)..... L = 1 . |
000000b0  32 0d 00 aa 15 4d 58 28  4c 29 3d b3 28 31 32 38  |2....MX(L)=.(128|
000000c0  30 29 2d 36 34 30 0d 00  b4 15 4d 59 28 4c 29 3d  |0)-640....MY(L)=|
000000d0  b3 28 31 30 32 34 29 2d  35 31 32 0d 00 be 15 4d  |.(1024)-512....M|
000000e0  58 50 28 4c 29 3d b3 28  31 30 29 2a b4 28 b3 29  |XP(L)=.(10)*.(.)|
000000f0  0d 00 c8 15 4d 59 50 28  4c 29 3d b3 28 31 30 29  |....MYP(L)=.(10)|
00000100  2a b4 28 b3 29 0d 00 d2  07 ed 20 4c 0d 00 dc 15  |*.(.)..... L....|
00000110  de 20 58 52 28 33 36 30  29 2c 59 52 28 33 36 30  |. XR(360),YR(360|
00000120  29 0d 00 e6 19 de 20 58  28 52 44 2c 33 36 30 29  |)..... X(RD,360)|
00000130  2c 59 28 52 44 2c 33 36  30 29 0d 00 f0 12 e3 20  |,Y(RD,360)..... |
00000140  44 47 20 3d 20 30 20 b8  20 33 36 30 0d 00 fa 20  |DG = 0 . 360... |
00000150  58 52 28 44 47 29 3d 58  2a 9b 28 b2 28 44 47 29  |XR(DG)=X*.(.(DG)|
00000160  29 2d 59 2a b5 28 b2 28  44 47 29 29 0d 01 04 20  |)-Y*.(.(DG))... |
00000170  59 52 28 44 47 29 3d 58  2a b5 28 b2 28 44 47 29  |YR(DG)=X*.(.(DG)|
00000180  29 2b 59 2a 9b 28 b2 28  44 47 29 29 0d 01 0e 08  |)+Y*.(.(DG))....|
00000190  ed 20 44 47 0d 01 18 10  e3 20 52 20 3d 20 31 20  |. DG..... R = 1 |
000001a0  b8 20 52 44 0d 01 22 1c  f1 8a 30 2c 30 29 3b a8  |. RD.."...0,0);.|
000001b0  28 31 30 30 2a 28 52 2f  52 44 29 29 3b 22 25 22  |(100*(R/RD));"%"|
000001c0  0d 01 2c 12 e3 20 44 47  20 3d 20 31 20 b8 20 33  |..,.. DG = 1 . 3|
000001d0  36 30 0d 01 36 2d 58 28  52 2c 44 47 29 3d 9b 28  |60..6-X(R,DG)=.(|
000001e0  b2 28 52 2a 53 29 29 2a  58 52 28 44 47 29 2d b5  |.(R*S))*XR(DG)-.|
000001f0  28 b2 28 52 2a 53 29 29  2a 58 52 28 44 47 29 0d  |(.(R*S))*XR(DG).|
00000200  01 40 2d 59 28 52 2c 44  47 29 3d b5 28 b2 28 52  |.@-Y(R,DG)=.(.(R|
00000210  2a 53 29 29 2a 59 52 28  44 47 29 2b 9b 28 b2 28  |*S))*YR(DG)+.(.(|
00000220  52 2a 53 29 29 2a 59 52  28 44 47 29 0d 01 4a 08  |R*S))*YR(DG)..J.|
00000230  ed 20 44 47 0d 01 54 07  ed 20 52 0d 01 5e 07 52  |. DG..T.. R..^.R|
00000240  3d 35 0d 01 68 04 0d 01  72 05 f5 0d 01 7c 16 e7  |=5..h...r....|..|
00000250  20 a6 2d 39 39 20 41 62  3d 30 20 8b 20 41 62 3d  | .-99 Ab=0 . Ab=|
00000260  31 0d 01 86 11 c8 97 20  4d 58 2c 4d 59 2c 4e 55  |1...... MX,MY,NU|
00000270  4c 4c 0d 01 90 13 58 53  3d 28 4d 58 2b 36 34 30  |LL....XS=(MX+640|
00000280  29 2f 36 34 30 0d 01 9a  13 59 53 3d 28 4d 59 2b  |)/640....YS=(MY+|
00000290  35 31 32 29 2f 35 31 32  0d 01 a4 05 3a 0d 01 ae  |512)/512....:...|
000002a0  12 20 20 20 e3 20 4c 20  3d 20 31 20 b8 20 32 0d  |.   . L = 1 . 2.|
000002b0  01 b8 1b 20 20 20 4d 58  28 4c 29 3d 4d 58 28 4c  |...   MX(L)=MX(L|
000002c0  29 2b 4d 58 50 28 4c 29  2a 34 0d 01 c2 1b 20 20  |)+MXP(L)*4....  |
000002d0  20 4d 59 28 4c 29 3d 4d  59 28 4c 29 2b 4d 59 50  | MY(L)=MY(L)+MYP|
000002e0  28 4c 29 2a 34 0d 01 cc  26 20 20 20 f4 20 4d 58  |(L)*4...&   . MX|
000002f0  50 28 4c 29 3d 4d 58 50  28 4c 29 2b 52 4e 44 28  |P(L)=MXP(L)+RND(|
00000300  31 30 29 2d 52 4e 44 28  31 30 29 0d 01 d6 26 20  |10)-RND(10)...& |
00000310  20 20 f4 20 4d 59 50 28  4c 29 3d 4d 59 50 28 4c  |  . MYP(L)=MYP(L|
00000320  29 2b 52 4e 44 28 31 30  29 2d 52 4e 44 28 31 30  |)+RND(10)-RND(10|
00000330  29 0d 01 e0 63 20 20 20  e7 20 4d 58 28 4c 29 3e  |)...c   . MX(L)>|
00000340  36 34 30 20 84 20 4d 58  28 4c 29 3c 2d 36 34 30  |640 . MX(L)<-640|
00000350  20 8c 20 4d 58 50 28 4c  29 3d 2d 4d 58 50 28 4c  | . MXP(L)=-MXP(L|
00000360  29 2b b3 28 35 29 2d b3  28 35 29 3a 4d 59 50 28  |)+.(5)-.(5):MYP(|
00000370  4c 29 3d 4d 59 50 28 4c  29 2b b3 28 32 29 2d b3  |L)=MYP(L)+.(2)-.|
00000380  28 32 29 3a 4d 58 28 4c  29 3d 30 2e 39 35 2a 4d  |(2):MX(L)=0.95*M|
00000390  58 28 4c 29 0d 01 ea 63  20 20 20 e7 20 4d 59 28  |X(L)...c   . MY(|
000003a0  4c 29 3e 35 31 32 20 84  20 4d 59 28 4c 29 3c 2d  |L)>512 . MY(L)<-|
000003b0  35 31 32 20 8c 20 4d 59  50 28 4c 29 3d 2d 4d 59  |512 . MYP(L)=-MY|
000003c0  50 28 4c 29 2b b3 28 35  29 2d b3 28 35 29 3a 4d  |P(L)+.(5)-.(5):M|
000003d0  58 50 28 4c 29 3d 4d 58  50 28 4c 29 2b b3 28 32  |XP(L)=MXP(L)+.(2|
000003e0  29 2d b3 28 32 29 3a 4d  59 28 4c 29 3d 30 2e 39  |)-.(2):MY(L)=0.9|
000003f0  35 2a 4d 59 28 4c 29 0d  01 f4 33 20 20 20 e7 20  |5*MY(L)...3   . |
00000400  4d 58 50 28 4c 29 3e 32  30 20 84 20 4d 58 50 28  |MXP(L)>20 . MXP(|
00000410  4c 29 3c 2d 32 30 20 8c  20 4d 58 50 28 4c 29 3d  |L)<-20 . MXP(L)=|
00000420  4d 58 50 28 4c 29 2a 30  2e 39 0d 01 fe 33 20 20  |MXP(L)*0.9...3  |
00000430  20 e7 20 4d 59 50 28 4c  29 3e 32 30 20 84 20 4d  | . MYP(L)>20 . M|
00000440  59 50 28 4c 29 3c 2d 32  30 20 8c 20 4d 59 50 28  |YP(L)<-20 . MYP(|
00000450  4c 29 3d 4d 59 50 28 4c  29 2a 30 2e 39 0d 02 08  |L)=MYP(L)*0.9...|
00000460  0a 20 20 20 ed 20 4c 0d  02 12 05 3a 0d 02 1c 15  |.   . L....:....|
00000470  41 3d 28 4d 58 28 31 29  2b 36 34 30 29 2f 33 32  |A=(MX(1)+640)/32|
00000480  30 0d 02 26 15 42 3d 28  4d 59 28 31 29 2b 35 31  |0..&.B=(MY(1)+51|
00000490  32 29 2f 32 35 36 0d 02  30 15 43 3d 28 4d 58 28  |2)/256..0.C=(MX(|
000004a0  32 29 2b 36 34 30 29 2f  33 32 30 0d 02 3a 15 44  |2)+640)/320..:.D|
000004b0  3d 28 4d 59 28 32 29 2b  35 31 32 29 2f 32 35 36  |=(MY(2)+512)/256|
000004c0  0d 02 44 08 52 2b 3d 35  0d 02 4e 10 e7 20 52 3e  |..D.R+=5..N.. R>|
000004d0  33 36 30 20 52 3d 31 30  0d 02 58 05 3a 0d 02 62  |360 R=10..X.:..b|
000004e0  18 e3 20 44 47 20 3d 20  53 20 b8 20 33 36 30 2d  |.. DG = S . 360-|
000004f0  53 20 88 20 53 0d 02 6c  70 c8 9d 20 58 28 41 62  |S . S..lp.. X(Ab|
00000500  2a 28 52 2f 53 2d 31 29  2b 31 2c 44 47 29 2a 58  |*(R/S-1)+1,DG)*X|
00000510  53 2c 59 28 41 62 2a 28  52 2f 53 2d 31 29 2b 31  |S,Y(Ab*(R/S-1)+1|
00000520  2c 44 47 29 2a 59 53 2c  58 53 2a 28 59 52 28 44  |,DG)*YS,XS*(YR(D|
00000530  47 29 2a 41 2b 58 52 28  44 47 29 2a 42 29 2f 28  |G)*A+XR(DG)*B)/(|
00000540  41 2b 42 2b 31 29 2c 59  53 2a 28 59 52 28 44 47  |A+B+1),YS*(YR(DG|
00000550  29 2a 43 2b 58 52 28 44  47 29 2a 44 29 2f 28 43  |)*C+XR(DG)*D)/(C|
00000560  2b 44 2b 31 29 0d 02 76  08 ed 20 44 47 0d 02 80  |+D+1)..v.. DG...|
00000570  0b c8 99 20 36 2c 31 39  0d 02 8a 11 c8 99 20 36  |... 6,19...... 6|
00000580  2c 31 31 32 2c 42 41 4e  4b 0d 02 94 13 c8 99 20  |,112,BANK...... |
00000590  36 2c 31 31 33 2c 33 2d  42 41 4e 4b 0d 02 9e 0f  |6,113,3-BANK....|
000005a0  42 41 4e 4b 3d 33 2d 42  41 4e 4b 0d 02 a8 05 db  |BANK=3-BANK.....|
000005b0  0d 02 b2 07 fd 20 a3 0d  02 bc 05 e0 0d ff        |..... ........|
000005be