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

StarInfo/vanMourik/QUAD6

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/vanMourik/QUAD6
Read OK:
File size: 03BC bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >QUAD6
   20REM vastly speeded up version of an OLD acorn user 1-liner
   30REM this version hacked up by D.Northcott,
   40REM AND HACKED A BIT MORE BY JEAN VAN MOURIK (MADE IT INTERACTIVE)
   50MODE0:MODE128:*POINTER
   60ORIGIN640,512:OFF:B%=180:ON ERROR PROCERR:END
   70DIM X(B%),Y(B%),Z(B%),YF(B%),M(B%),N(B%),XA(B%),XC(B%),YA(B%),YC(B%),ZA(B%),ZC(B%):C%=6:D%=480:E%=-1:PROCCALC:s%=0:t%=1:H=2*PI/1276
   80
   90REM MAIN LOOP
  100REPEAT:MOUSEA%,D%,C%:P=H*A%:C=COSP:A=SINP:D=C*C:F=C*A:G=A*A:E=G*C
  110XA()=X()*A:YC()=Y()*C:XC()=X()*D:YA()=Y()*E:ZC()=Z()*F:ZA()=Z()*A:YF()=XA()+YC():YC()=YF()*G:M()=XC()-YA():YA()=YC()+ZC():M()=M()+YA():YC()=YF()*C:N()=YC()-ZA()
  120M()=M()*1.3:WAIT:SYS6,112,s%:SYS6,113,t%:SWAPs%,t%:MOVEM(0),N(0):CLS
  130FORK%=1TOB%:DRAWM(K%),N(K%):NEXT:FORK%=1TOB%:DRAW-M(K%),-N(K%):NEXT
  140UNTILC%=1
  150
  160*FX21
  170*FX15
  180*DESKTOP
  190END
  200
  210DEFPROCCALC
  220FOR P%=0TOB%:C=COSRAD(E%)*D%:A%=P%*C%:X(P%)=SINRAD(A%)*C:Y(P%)=COSRAD(A%)*C:Z(P%)=(SINRAD(A%+E%)*COSRAD(A%+E%))*C:E%=E%+7:NEXT
  230ENDPROC
  240 
  250DEFPROCERR
  260*FX112,0
  270*FX113,0
  280REPORT:PRINT" at line ";ERL
  290ENDPROC

� >QUAD6
<� vastly speeded up version of an OLD acorn user 1-liner
,� this version hacked up by D.Northcott,
(D� AND HACKED A BIT MORE BY JEAN VAN MOURIK (MADE IT INTERACTIVE)
2�0:�128:*POINTER
<!ȑ640,512:�:B%=180:� � �ERR:�
F�� X(B%),Y(B%),Z(B%),YF(B%),M(B%),N(B%),XA(B%),XC(B%),YA(B%),YC(B%),ZA(B%),ZC(B%):C%=6:D%=480:E%=-1:�CALC:s%=0:t%=1:H=2*�/1276
P
Z� MAIN LOOP
d9�:ȗA%,D%,C%:P=H*A%:C=�P:A=�P:D=C*C:F=C*A:G=A*A:E=G*C
n�XA()=X()*A:YC()=Y()*C:XC()=X()*D:YA()=Y()*E:ZC()=Z()*F:ZA()=Z()*A:YF()=XA()+YC():YC()=YF()*G:M()=XC()-YA():YA()=YC()+ZC():M()=M()+YA():YC()=YF()*C:N()=YC()-ZA()
x=M()=M()*1.3:Ȗ:ș6,112,s%:ș6,113,t%:Ȕs%,t%:�M(0),N(0):�
�5�K%=1�B%:�M(K%),N(K%):�:�K%=1�B%:�-M(K%),-N(K%):�
�	�C%=1
�
�	*FX21
�	*FX15
�*DESKTOP
��
�
�
��CALC
�h� P%=0�B%:C=��(E%)*D%:A%=P%*C%:X(P%)=��(A%)*C:Y(P%)=��(A%)*C:Z(P%)=(��(A%+E%)*��(A%+E%))*C:E%=E%+7:�
��
� 
�	��ERR
*FX112,0
*FX113,0
�:�" at line ";�
"�
�
00000000  0d 00 0a 0c f4 20 3e 51  55 41 44 36 0d 00 14 3c  |..... >QUAD6...<|
00000010  f4 20 76 61 73 74 6c 79  20 73 70 65 65 64 65 64  |. vastly speeded|
00000020  20 75 70 20 76 65 72 73  69 6f 6e 20 6f 66 20 61  | up version of a|
00000030  6e 20 4f 4c 44 20 61 63  6f 72 6e 20 75 73 65 72  |n OLD acorn user|
00000040  20 31 2d 6c 69 6e 65 72  0d 00 1e 2c f4 20 74 68  | 1-liner...,. th|
00000050  69 73 20 76 65 72 73 69  6f 6e 20 68 61 63 6b 65  |is version hacke|
00000060  64 20 75 70 20 62 79 20  44 2e 4e 6f 72 74 68 63  |d up by D.Northc|
00000070  6f 74 74 2c 0d 00 28 44  f4 20 41 4e 44 20 48 41  |ott,..(D. AND HA|
00000080  43 4b 45 44 20 41 20 42  49 54 20 4d 4f 52 45 20  |CKED A BIT MORE |
00000090  42 59 20 4a 45 41 4e 20  56 41 4e 20 4d 4f 55 52  |BY JEAN VAN MOUR|
000000a0  49 4b 20 28 4d 41 44 45  20 49 54 20 49 4e 54 45  |IK (MADE IT INTE|
000000b0  52 41 43 54 49 56 45 29  0d 00 32 14 eb 30 3a eb  |RACTIVE)..2..0:.|
000000c0  31 32 38 3a 2a 50 4f 49  4e 54 45 52 0d 00 3c 21  |128:*POINTER..<!|
000000d0  c8 91 36 34 30 2c 35 31  32 3a 87 3a 42 25 3d 31  |..640,512:.:B%=1|
000000e0  38 30 3a ee 20 85 20 f2  45 52 52 3a e0 0d 00 46  |80:. . .ERR:...F|
000000f0  81 de 20 58 28 42 25 29  2c 59 28 42 25 29 2c 5a  |.. X(B%),Y(B%),Z|
00000100  28 42 25 29 2c 59 46 28  42 25 29 2c 4d 28 42 25  |(B%),YF(B%),M(B%|
00000110  29 2c 4e 28 42 25 29 2c  58 41 28 42 25 29 2c 58  |),N(B%),XA(B%),X|
00000120  43 28 42 25 29 2c 59 41  28 42 25 29 2c 59 43 28  |C(B%),YA(B%),YC(|
00000130  42 25 29 2c 5a 41 28 42  25 29 2c 5a 43 28 42 25  |B%),ZA(B%),ZC(B%|
00000140  29 3a 43 25 3d 36 3a 44  25 3d 34 38 30 3a 45 25  |):C%=6:D%=480:E%|
00000150  3d 2d 31 3a f2 43 41 4c  43 3a 73 25 3d 30 3a 74  |=-1:.CALC:s%=0:t|
00000160  25 3d 31 3a 48 3d 32 2a  af 2f 31 32 37 36 0d 00  |%=1:H=2*./1276..|
00000170  50 04 0d 00 5a 0f f4 20  4d 41 49 4e 20 4c 4f 4f  |P...Z.. MAIN LOO|
00000180  50 0d 00 64 39 f5 3a c8  97 41 25 2c 44 25 2c 43  |P..d9.:..A%,D%,C|
00000190  25 3a 50 3d 48 2a 41 25  3a 43 3d 9b 50 3a 41 3d  |%:P=H*A%:C=.P:A=|
000001a0  b5 50 3a 44 3d 43 2a 43  3a 46 3d 43 2a 41 3a 47  |.P:D=C*C:F=C*A:G|
000001b0  3d 41 2a 41 3a 45 3d 47  2a 43 0d 00 6e a4 58 41  |=A*A:E=G*C..n.XA|
000001c0  28 29 3d 58 28 29 2a 41  3a 59 43 28 29 3d 59 28  |()=X()*A:YC()=Y(|
000001d0  29 2a 43 3a 58 43 28 29  3d 58 28 29 2a 44 3a 59  |)*C:XC()=X()*D:Y|
000001e0  41 28 29 3d 59 28 29 2a  45 3a 5a 43 28 29 3d 5a  |A()=Y()*E:ZC()=Z|
000001f0  28 29 2a 46 3a 5a 41 28  29 3d 5a 28 29 2a 41 3a  |()*F:ZA()=Z()*A:|
00000200  59 46 28 29 3d 58 41 28  29 2b 59 43 28 29 3a 59  |YF()=XA()+YC():Y|
00000210  43 28 29 3d 59 46 28 29  2a 47 3a 4d 28 29 3d 58  |C()=YF()*G:M()=X|
00000220  43 28 29 2d 59 41 28 29  3a 59 41 28 29 3d 59 43  |C()-YA():YA()=YC|
00000230  28 29 2b 5a 43 28 29 3a  4d 28 29 3d 4d 28 29 2b  |()+ZC():M()=M()+|
00000240  59 41 28 29 3a 59 43 28  29 3d 59 46 28 29 2a 43  |YA():YC()=YF()*C|
00000250  3a 4e 28 29 3d 59 43 28  29 2d 5a 41 28 29 0d 00  |:N()=YC()-ZA()..|
00000260  78 3d 4d 28 29 3d 4d 28  29 2a 31 2e 33 3a c8 96  |x=M()=M()*1.3:..|
00000270  3a c8 99 36 2c 31 31 32  2c 73 25 3a c8 99 36 2c  |:..6,112,s%:..6,|
00000280  31 31 33 2c 74 25 3a c8  94 73 25 2c 74 25 3a ec  |113,t%:..s%,t%:.|
00000290  4d 28 30 29 2c 4e 28 30  29 3a db 0d 00 82 35 e3  |M(0),N(0):....5.|
000002a0  4b 25 3d 31 b8 42 25 3a  df 4d 28 4b 25 29 2c 4e  |K%=1.B%:.M(K%),N|
000002b0  28 4b 25 29 3a ed 3a e3  4b 25 3d 31 b8 42 25 3a  |(K%):.:.K%=1.B%:|
000002c0  df 2d 4d 28 4b 25 29 2c  2d 4e 28 4b 25 29 3a ed  |.-M(K%),-N(K%):.|
000002d0  0d 00 8c 09 fd 43 25 3d  31 0d 00 96 04 0d 00 a0  |.....C%=1.......|
000002e0  09 2a 46 58 32 31 0d 00  aa 09 2a 46 58 31 35 0d  |.*FX21....*FX15.|
000002f0  00 b4 0c 2a 44 45 53 4b  54 4f 50 0d 00 be 05 e0  |...*DESKTOP.....|
00000300  0d 00 c8 04 0d 00 d2 0a  dd f2 43 41 4c 43 0d 00  |..........CALC..|
00000310  dc 68 e3 20 50 25 3d 30  b8 42 25 3a 43 3d 9b b2  |.h. P%=0.B%:C=..|
00000320  28 45 25 29 2a 44 25 3a  41 25 3d 50 25 2a 43 25  |(E%)*D%:A%=P%*C%|
00000330  3a 58 28 50 25 29 3d b5  b2 28 41 25 29 2a 43 3a  |:X(P%)=..(A%)*C:|
00000340  59 28 50 25 29 3d 9b b2  28 41 25 29 2a 43 3a 5a  |Y(P%)=..(A%)*C:Z|
00000350  28 50 25 29 3d 28 b5 b2  28 41 25 2b 45 25 29 2a  |(P%)=(..(A%+E%)*|
00000360  9b b2 28 41 25 2b 45 25  29 29 2a 43 3a 45 25 3d  |..(A%+E%))*C:E%=|
00000370  45 25 2b 37 3a ed 0d 00  e6 05 e1 0d 00 f0 05 20  |E%+7:.......... |
00000380  0d 00 fa 09 dd f2 45 52  52 0d 01 04 0c 2a 46 58  |......ERR....*FX|
00000390  31 31 32 2c 30 0d 01 0e  0c 2a 46 58 31 31 33 2c  |112,0....*FX113,|
000003a0  30 0d 01 18 14 f6 3a f1  22 20 61 74 20 6c 69 6e  |0.....:." at lin|
000003b0  65 20 22 3b 9e 0d 01 22  05 e1 0d ff              |e ";..."....|
000003bc