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

StarInfo/Adcock/NotHairNet

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

	� 1:�

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