Home » CEEFAX disks » telesoftware7.adl » 10-06-88/MULTS3
10-06-88/MULTS3
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 » CEEFAX disks » telesoftware7.adl |
Filename: | 10-06-88/MULTS3 |
Read OK: | ✔ |
File size: | 0C89 bytes |
Load address: | FFFF1900 |
Exec address: | FFFF8023 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- CEEFAX disks » telesoftware5.adl » 30-01-88/MULTS3
- CEEFAX disks » telesoftware7.adl » 10-06-88/MULTS3
File contents
10REM Multispiro demo (Basic Version) 20REM by 30REM Mike Claxton 40MODE7 50*K.0RUN|M 60*K.10O.|M 70*FX15,0 80PROCinfo 90PROCinit 100PROCsincos 110MODE129 120PROCdemo 130END 140: 150DEFPROCsincos 160PRINTTAB(1,20)CHR$(131);"+ + + + + + + + + + +" 170Ang=0:Deg=PI/128 180FOR I%=0 TO 64 190X(I%)=SIN (Ang) 200Ang=Ang+Deg 210IFI%MOD8=0 PRINTTAB(31-I%/8*3,20)CHR$(129);"*" 220NEXT 230FORI%=0 TO 64 240Y(I%)=X(64-I%) 250NEXT 260PRINTTAB(4,20)CHR$(129);"*" 270FORI%=64 TO 127 280X(I%)=X(128-I%) 290Y(I%)=-Y(128-I%) 300NEXT 310PRINTTAB(1,20)CHR$(129);"*" 320FORI%=128 TO 191 330X(I%)=-X(I%-128) 340Y(I%)=-Y(I%-128) 350NEXT 360FORI%=192 TO 256 370X(I%)=-X(256-I%) 380Y(I%)=Y(256-I%) 390NEXT 400ENDPROC 410: 420DEFPROCinit 430DIM X(256),Y(256) 440VDU19,1,6;0; 450VDU19,2,6;0; 460SC_rotation=&70 470SC_rotation2=&71 480LC_rot=&72 490LC_rot2=&73 500SC_centre=&74 510SC_centre2=&75 520SC_ang=&76 530SC_ang2=&77 540?SC_rotation=0 550?LC_rot=1 560?SC_centre=0 570?SC_ang=1 580LCdots%=32 590SCdots%=32 600Z%=256-LCdots% 610Y%=256-SCdots% 620LC_rotation=500/LC%-1 630outer_LC%=500-LC% 640SD%=LC%-SC% 650C%=1:D%=2 660R%=0 :M%=0 :N%=SC% 670P%=640:Q%=1012 680X3%=640:Y3%=1012 690F%=-1:L%=F%:F=F%:G=0:C=0 700ENDPROC 710: 720DEFPROCdemo 730VDU29,640;512; 740VDU19,3,0;0; 750GCOL0,3 760MOVE0,508 770FORE%=0TO255 STEP4 780PLOT69,508*X(E%),508*Y(E%) 790NEXT 800VDU19,3,6;0; 810VDU23;8202;0;0;0 820CLS 830: 840REPEAT 850IF C%=2 C%=1:D%=2 ELSE C%=2:D%=1 860X2%=outer_LC%*X(?LC_rot)+640.5:Y2%=outer_LC%*Y(?LC_rot)+512.5 870VDU29,X2%;Y2%; 880VDU19,C%,0;0; 890GCOL0,C% 900FOR E%=0 TO Z% STEP LCdots% 910H%=(E%-F+.5)MOD256:IF H%<0 H%=256+H% 920U%=LC%*X(H%)+.5:V%=LC%*Y(H%)+.5 930IF POINT(U%,V%)<>3 PLOT69,U%,V% 940NEXT 950: 960X3%=outer_LC%*X(?LC_rot)+SD%*X(?SC_centre)+640.5:Y3%=outer_LC%*Y(?LC_rot)+SD%*Y(?SC_centre)+512.5 970VDU29,X3%;Y3%; 980FOR E%=0 TO Y% STEP SCdots% 990H%=(E%+?SC_rotation+.5)MOD256 1000IF H%<0 H%=H%+256 1010U%=-SC%*X(H%)-.5:V%=SC%*Y(H%)+.5 1020IF POINT(U%,V%)<>3 PLOT69,U%,V% 1030NEXT 1040: 1050PROCtrace 1060M%=-SC%*X(?SC_rotation):N%=SC%*Y(?SC_rotation) 1070VDU19,C%,3;0; 1080VDU19,D%,0;0; 1090X2%=outer_LC%*X(?LC_rot2)+640.5:Y2%=outer_LC%*Y(?LC_rot2)+512.5 1100VDU29,X2%;Y2%; 1110GCOL0,0 1120FOR E%=0 TO Z% STEP LCdots% 1130H%=(+E%-G+.5)MOD256:IFH%<0 H%=256+H% 1140U%=LC%*X(H%)+.5:V%=LC%*Y(H%)+.5 1150IF POINT(U%,V%)<>3 PLOT69,U%,V% 1160NEXT 1170: 1180P%=X3%:Q%=Y3% 1190X3%=outer_LC%*X(?LC_rot2)+SD%*X(?SC_centre2)+640.5:Y3%=outer_LC%*Y(?LC_rot2)+SD%*Y(?SC_centre2)+512.5 1200VDU29,X3%;Y3%; 1210FOR E%=0 TO Y% STEP SCdots% 1220H%=(E%+?SC_rotation2+.5)MOD256 1230U%=-SC%*X(H%)-.5:V%=SC%*Y(H%)+.5 1240IF POINT(U%,V%)<>3 PLOT69,U%,V% 1250NEXT 1260: 1270?SC_rotation2=?SC_rotation 1280B=(500*F%/LC%) 1290C=L%*SC%/LC%-B 1300?SC_rotation=L%-F%-C+.5 1310?SC_centre2=?SC_centre 1320?SC_centre=F%+C+.5 1330?LC_rot2=?LC_rot 1340G=F 1350F=F+LC_rotation 1360F%=F%+1 1370?LC_rot=F% 1380L%=L%+S% 1390UNTIL FALSE 1400: 1410DEFPROCtrace 1420GCOL0,3 1430VDU29,P%;Q%; 1440MOVEM%,N% 1450VDU29,X3%;Y3%; 1460PLOT5,-SC%*X(?SC_rotation),SC%*Y(?SC_rotation) 1470ENDPROC 1480: 1490DEFPROCinfo 1500PRINTTAB(9,2)CHR$(133);"THE MULTI-SPIRO" 1510PRINTTAB(9,4)CHR$(134);"(Basic Version)" 1520INPUTTAB(0,6)"�Enter size of large wheel (200_400) "LC% 1530INPUTTAB(0,9)"�Enter size of small wheel (20_127) "SC% 1540PRINTTAB(0,12)"�Enter speed of small wheel" 1550PRINTTAB(0,14)"�1_9 clockwise" 1560INPUTTAB(0,16)"�11_20 anti-clockwise "SPEED% 1570S%=SPEED%-12 1580ENDPROC
(� Multispiro demo (Basic Version) � by � Mike Claxton (�7 2 *K.0RUN|M < *K.10O.|M F*FX15,0 P�info Z �init d�sincos n�129 x �demo �� �: � ��sincos �5�1,20)�(131);"+ + + + + + + + + + +" �Ang=0:Deg=�/128 �� I%=0 � 64 �X(I%)=� (Ang) �Ang=Ang+Deg �-�I%�8=0 �31-I%/8*3,20)�(129);"*" �� ��I%=0 � 64 �Y(I%)=X(64-I%) �� �4,20)�(129);"*" �I%=64 � 127 X(I%)=X(128-I%) "Y(I%)=-Y(128-I%) ,� 6�1,20)�(129);"*" @�I%=128 � 191 JX(I%)=-X(I%-128) TY(I%)=-Y(I%-128) ^� h�I%=192 � 256 rX(I%)=-X(256-I%) |Y(I%)=Y(256-I%) �� �� �: � ��init �� X(256),Y(256) ��19,1,6;0; ��19,2,6;0; �SC_rotation=&70 �SC_rotation2=&71 �LC_rot=&72 �LC_rot2=&73 �SC_centre=&74 �SC_centre2=&75 SC_ang=&76 SC_ang2=&77 ?SC_rotation=0 &?LC_rot=1 0?SC_centre=0 : ?SC_ang=1 DLCdots%=32 NSCdots%=32 XZ%=256-LCdots% bY%=256-SCdots% lLC_rotation=500/LC%-1 vouter_LC%=500-LC% �SD%=LC%-SC% �C%=1:D%=2 �R%=0 :M%=0 :N%=SC% �P%=640:Q%=1012 �X3%=640:Y3%=1012 �F%=-1:L%=F%:F=F%:G=0:C=0 �� �: ���demo ��29,640;512; ��19,3,0;0; ��0,3 � �0,508 �E%=0�255 �4 �69,508*X(E%),508*Y(E%) � �19,3,6;0; *�23;8202;0;0;0 4� >: H� R#� C%=2 C%=1:D%=2 � C%=2:D%=1 \AX2%=outer_LC%*X(?LC_rot)+640.5:Y2%=outer_LC%*Y(?LC_rot)+512.5 f�29,X2%;Y2%; p�19,C%,0;0; z �0,C% �� E%=0 � Z% � LCdots% �%H%=(E%-F+.5)�256:� H%<0 H%=256+H% �#U%=LC%*X(H%)+.5:V%=LC%*Y(H%)+.5 �� �U%,V%)<>3 �69,U%,V% �� �: �eX3%=outer_LC%*X(?LC_rot)+SD%*X(?SC_centre)+640.5:Y3%=outer_LC%*Y(?LC_rot)+SD%*Y(?SC_centre)+512.5 ��29,X3%;Y3%; �� E%=0 � Y% � SCdots% �H%=(E%+?SC_rotation+.5)�256 �� H%<0 H%=H%+256 �$U%=-SC%*X(H%)-.5:V%=SC%*Y(H%)+.5 �� �U%,V%)<>3 �69,U%,V% � : �trace $3M%=-SC%*X(?SC_rotation):N%=SC%*Y(?SC_rotation) .�19,C%,3;0; 8�19,D%,0;0; BGX2%=outer_LC%*X(?LC_rot2)+640.5:Y2%=outer_LC%*Y(?LC_rot2)+512.5 L�29,X2%;Y2%; V�0,0 `� E%=0 � Z% � LCdots% j%H%=(+E%-G+.5)�256:�H%<0 H%=256+H% t#U%=LC%*X(H%)+.5:V%=LC%*Y(H%)+.5 ~� �U%,V%)<>3 �69,U%,V% �� �: �P%=X3%:Q%=Y3% �mX3%=outer_LC%*X(?LC_rot2)+SD%*X(?SC_centre2)+640.5:Y3%=outer_LC%*Y(?LC_rot2)+SD%*Y(?SC_centre2)+512.5 ��29,X3%;Y3%; �� E%=0 � Y% � SCdots% �#H%=(E%+?SC_rotation2+.5)�256 �$U%=-SC%*X(H%)-.5:V%=SC%*Y(H%)+.5 �� �U%,V%)<>3 �69,U%,V% �� �: �!?SC_rotation2=?SC_rotation B=(500*F%/LC%) C=L%*SC%/LC%-B ?SC_rotation=L%-F%-C+.5 ?SC_centre2=?SC_centre (?SC_centre=F%+C+.5 2?LC_rot2=?LC_rot <G=F FF=F+LC_rotation P F%=F%+1 Z?LC_rot=F% dL%=L%+S% n� � x: ���trace ��0,3 ��29,P%;Q%; ��M%,N% ��29,X3%;Y3%; �1�5,-SC%*X(?SC_rotation),SC%*Y(?SC_rotation) �� �: � ��info �#�9,2)�(133);"THE MULTI-SPIRO" �%�9,4)�(134);"(Basic Version)" �5�0,6)"�Enter size of large wheel (200_400) "LC% �4�0,9)"�Enter size of small wheel (20_127) "SC% *�0,12)"�Enter speed of small wheel" �0,14)"�1_9 clockwise" ,�0,16)"�11_20 anti-clockwise "SPEED% "S%=SPEED%-12 ,� �
00000000 0d 00 0a 28 f4 20 4d 75 6c 74 69 73 70 69 72 6f |...(. Multispiro| 00000010 20 64 65 6d 6f 20 28 42 61 73 69 63 20 56 65 72 | demo (Basic Ver| 00000020 73 69 6f 6e 29 20 20 20 0d 00 14 14 f4 20 20 20 |sion) ..... | 00000030 20 20 20 20 20 20 20 20 20 20 62 79 0d 00 1e 1b | by....| 00000040 f4 20 20 20 20 20 20 20 4d 69 6b 65 20 43 6c 61 |. Mike Cla| 00000050 78 74 6f 6e 20 20 20 0d 00 28 06 eb 37 0d 00 32 |xton ..(..7..2| 00000060 0d 2a 4b 2e 30 52 55 4e 7c 4d 0d 00 3c 0d 2a 4b |.*K.0RUN|M..<.*K| 00000070 2e 31 30 4f 2e 7c 4d 0d 00 46 0b 2a 46 58 31 35 |.10O.|M..F.*FX15| 00000080 2c 30 0d 00 50 0e f2 69 6e 66 6f 20 20 20 20 20 |,0..P..info | 00000090 0d 00 5a 09 f2 69 6e 69 74 0d 00 64 0b f2 73 69 |..Z..init..d..si| 000000a0 6e 63 6f 73 0d 00 6e 08 eb 31 32 39 0d 00 78 09 |ncos..n..129..x.| 000000b0 f2 64 65 6d 6f 0d 00 82 05 e0 0d 00 8c 05 3a 0d |.demo.........:.| 000000c0 00 96 0d dd f2 73 69 6e 63 6f 73 20 0d 00 a0 35 |.....sincos ...5| 000000d0 f1 8a 31 2c 32 30 29 bd 28 31 33 31 29 3b 22 2b |..1,20).(131);"+| 000000e0 20 20 2b 20 20 2b 20 20 2b 20 20 2b 20 20 2b 20 | + + + + + | 000000f0 20 2b 20 20 2b 20 20 2b 20 20 2b 20 20 2b 22 20 | + + + + +" | 00000100 20 0d 00 aa 13 41 6e 67 3d 30 3a 44 65 67 3d af | ....Ang=0:Deg=.| 00000110 2f 31 32 38 0d 00 b4 0f e3 20 49 25 3d 30 20 b8 |/128..... I%=0 .| 00000120 20 36 34 0d 00 be 12 58 28 49 25 29 3d b5 20 28 | 64....X(I%)=. (| 00000130 41 6e 67 29 20 0d 00 c8 0f 41 6e 67 3d 41 6e 67 |Ang) ....Ang=Ang| 00000140 2b 44 65 67 0d 00 d2 2d e7 49 25 83 38 3d 30 20 |+Deg...-.I%.8=0 | 00000150 f1 8a 33 31 2d 49 25 2f 38 2a 33 2c 32 30 29 bd |..31-I%/8*3,20).| 00000160 28 31 32 39 29 3b 22 2a 22 20 20 20 20 20 20 20 |(129);"*" | 00000170 20 0d 00 dc 08 ed 20 20 20 0d 00 e6 0e e3 49 25 | ..... .....I%| 00000180 3d 30 20 b8 20 36 34 0d 00 f0 13 59 28 49 25 29 |=0 . 64....Y(I%)| 00000190 3d 58 28 36 34 2d 49 25 29 20 0d 00 fa 05 ed 0d |=X(64-I%) ......| 000001a0 01 04 17 f1 8a 34 2c 32 30 29 bd 28 31 32 39 29 |.....4,20).(129)| 000001b0 3b 22 2a 22 20 20 0d 01 0e 10 e3 49 25 3d 36 34 |;"*" .....I%=64| 000001c0 20 b8 20 31 32 37 0d 01 18 14 58 28 49 25 29 3d | . 127....X(I%)=| 000001d0 58 28 31 32 38 2d 49 25 29 20 0d 01 22 15 59 28 |X(128-I%) ..".Y(| 000001e0 49 25 29 3d 2d 59 28 31 32 38 2d 49 25 29 20 0d |I%)=-Y(128-I%) .| 000001f0 01 2c 05 ed 0d 01 36 17 f1 8a 31 2c 32 30 29 bd |.,....6...1,20).| 00000200 28 31 32 39 29 3b 22 2a 22 20 20 0d 01 40 11 e3 |(129);"*" ..@..| 00000210 49 25 3d 31 32 38 20 b8 20 31 39 31 0d 01 4a 14 |I%=128 . 191..J.| 00000220 58 28 49 25 29 3d 2d 58 28 49 25 2d 31 32 38 29 |X(I%)=-X(I%-128)| 00000230 0d 01 54 14 59 28 49 25 29 3d 2d 59 28 49 25 2d |..T.Y(I%)=-Y(I%-| 00000240 31 32 38 29 0d 01 5e 05 ed 0d 01 68 11 e3 49 25 |128)..^....h..I%| 00000250 3d 31 39 32 20 b8 20 32 35 36 0d 01 72 15 58 28 |=192 . 256..r.X(| 00000260 49 25 29 3d 2d 58 28 32 35 36 2d 49 25 29 20 0d |I%)=-X(256-I%) .| 00000270 01 7c 15 59 28 49 25 29 3d 59 28 32 35 36 2d 49 |.|.Y(I%)=Y(256-I| 00000280 25 29 20 20 0d 01 86 05 ed 0d 01 90 05 e1 0d 01 |%) ............| 00000290 9a 05 3a 0d 01 a4 0a dd f2 69 6e 69 74 0d 01 ae |..:......init...| 000002a0 13 de 20 58 28 32 35 36 29 2c 59 28 32 35 36 29 |.. X(256),Y(256)| 000002b0 0d 01 b8 10 ef 31 39 2c 31 2c 36 3b 30 3b 20 20 |.....19,1,6;0; | 000002c0 0d 01 c2 10 ef 31 39 2c 32 2c 36 3b 30 3b 20 20 |.....19,2,6;0; | 000002d0 0d 01 cc 13 53 43 5f 72 6f 74 61 74 69 6f 6e 3d |....SC_rotation=| 000002e0 26 37 30 0d 01 d6 14 53 43 5f 72 6f 74 61 74 69 |&70....SC_rotati| 000002f0 6f 6e 32 3d 26 37 31 0d 01 e0 10 4c 43 5f 72 6f |on2=&71....LC_ro| 00000300 74 3d 26 37 32 20 20 0d 01 ea 11 4c 43 5f 72 6f |t=&72 ....LC_ro| 00000310 74 32 3d 26 37 33 20 20 0d 01 f4 13 53 43 5f 63 |t2=&73 ....SC_c| 00000320 65 6e 74 72 65 3d 26 37 34 20 20 0d 01 fe 12 53 |entre=&74 ....S| 00000330 43 5f 63 65 6e 74 72 65 32 3d 26 37 35 0d 02 08 |C_centre2=&75...| 00000340 0e 53 43 5f 61 6e 67 3d 26 37 36 0d 02 12 0f 53 |.SC_ang=&76....S| 00000350 43 5f 61 6e 67 32 3d 26 37 37 0d 02 1c 14 3f 53 |C_ang2=&77....?S| 00000360 43 5f 72 6f 74 61 74 69 6f 6e 3d 30 20 20 0d 02 |C_rotation=0 ..| 00000370 26 0f 3f 4c 43 5f 72 6f 74 3d 31 20 20 0d 02 30 |&.?LC_rot=1 ..0| 00000380 11 3f 53 43 5f 63 65 6e 74 72 65 3d 30 20 0d 02 |.?SC_centre=0 ..| 00000390 3a 0d 3f 53 43 5f 61 6e 67 3d 31 0d 02 44 0e 4c |:.?SC_ang=1..D.L| 000003a0 43 64 6f 74 73 25 3d 33 32 0d 02 4e 0e 53 43 64 |Cdots%=32..N.SCd| 000003b0 6f 74 73 25 3d 33 32 0d 02 58 14 5a 25 3d 32 35 |ots%=32..X.Z%=25| 000003c0 36 2d 4c 43 64 6f 74 73 25 20 20 0d 02 62 15 59 |6-LCdots% ..b.Y| 000003d0 25 3d 32 35 36 2d 53 43 64 6f 74 73 25 20 20 20 |%=256-SCdots% | 000003e0 0d 02 6c 19 4c 43 5f 72 6f 74 61 74 69 6f 6e 3d |..l.LC_rotation=| 000003f0 35 30 30 2f 4c 43 25 2d 31 0d 02 76 17 6f 75 74 |500/LC%-1..v.out| 00000400 65 72 5f 4c 43 25 3d 35 30 30 2d 4c 43 25 20 20 |er_LC%=500-LC% | 00000410 0d 02 80 11 53 44 25 3d 4c 43 25 2d 53 43 25 20 |....SD%=LC%-SC% | 00000420 20 0d 02 8a 10 43 25 3d 31 3a 44 25 3d 32 20 20 | ....C%=1:D%=2 | 00000430 20 0d 02 94 17 52 25 3d 30 20 3a 4d 25 3d 30 20 | ....R%=0 :M%=0 | 00000440 3a 4e 25 3d 53 43 25 20 0d 02 9e 13 50 25 3d 36 |:N%=SC% ....P%=6| 00000450 34 30 3a 51 25 3d 31 30 31 32 20 0d 02 a8 15 58 |40:Q%=1012 ....X| 00000460 33 25 3d 36 34 30 3a 59 33 25 3d 31 30 31 32 20 |3%=640:Y3%=1012 | 00000470 0d 02 b2 1c 46 25 3d 2d 31 3a 4c 25 3d 46 25 3a |....F%=-1:L%=F%:| 00000480 46 3d 46 25 3a 47 3d 30 3a 43 3d 30 0d 02 bc 05 |F=F%:G=0:C=0....| 00000490 e1 0d 02 c6 05 3a 0d 02 d0 0c dd f2 64 65 6d 6f |.....:......demo| 000004a0 20 20 0d 02 da 10 ef 32 39 2c 36 34 30 3b 35 31 | .....29,640;51| 000004b0 32 3b 0d 02 e4 0f ef 31 39 2c 33 2c 30 3b 30 3b |2;.....19,3,0;0;| 000004c0 20 0d 02 ee 08 e6 30 2c 33 0d 02 f8 0d ec 30 2c | .....0,3.....0,| 000004d0 35 30 38 20 20 20 0d 03 02 10 e3 45 25 3d 30 b8 |508 .....E%=0.| 000004e0 32 35 35 20 88 34 0d 03 0c 1d f0 36 39 2c 35 30 |255 .4.....69,50| 000004f0 38 2a 58 28 45 25 29 2c 35 30 38 2a 59 28 45 25 |8*X(E%),508*Y(E%| 00000500 29 20 20 0d 03 16 05 ed 0d 03 20 11 ef 31 39 2c |) ....... ..19,| 00000510 33 2c 36 3b 30 3b 20 20 20 0d 03 2a 15 ef 32 33 |3,6;0; ..*..23| 00000520 3b 38 32 30 32 3b 30 3b 30 3b 30 20 20 20 0d 03 |;8202;0;0;0 ..| 00000530 34 05 db 0d 03 3e 05 3a 0d 03 48 05 f5 0d 03 52 |4....>.:..H....R| 00000540 23 e7 20 43 25 3d 32 20 43 25 3d 31 3a 44 25 3d |#. C%=2 C%=1:D%=| 00000550 32 20 8b 20 43 25 3d 32 3a 44 25 3d 31 20 20 20 |2 . C%=2:D%=1 | 00000560 0d 03 5c 41 58 32 25 3d 6f 75 74 65 72 5f 4c 43 |..\AX2%=outer_LC| 00000570 25 2a 58 28 3f 4c 43 5f 72 6f 74 29 2b 36 34 30 |%*X(?LC_rot)+640| 00000580 2e 35 3a 59 32 25 3d 6f 75 74 65 72 5f 4c 43 25 |.5:Y2%=outer_LC%| 00000590 2a 59 28 3f 4c 43 5f 72 6f 74 29 2b 35 31 32 2e |*Y(?LC_rot)+512.| 000005a0 35 0d 03 66 10 ef 32 39 2c 58 32 25 3b 59 32 25 |5..f..29,X2%;Y2%| 000005b0 3b 0d 03 70 10 ef 31 39 2c 43 25 2c 30 3b 30 3b |;..p..19,C%,0;0;| 000005c0 20 0d 03 7a 0a e6 30 2c 43 25 20 0d 03 84 1b e3 | ..z..0,C% .....| 000005d0 20 45 25 3d 30 20 b8 20 5a 25 20 88 20 4c 43 64 | E%=0 . Z% . LCd| 000005e0 6f 74 73 25 20 20 0d 03 8e 25 48 25 3d 28 45 25 |ots% ...%H%=(E%| 000005f0 2d 46 2b 2e 35 29 83 32 35 36 3a e7 20 48 25 3c |-F+.5).256:. H%<| 00000600 30 20 48 25 3d 32 35 36 2b 48 25 0d 03 98 23 55 |0 H%=256+H%...#U| 00000610 25 3d 4c 43 25 2a 58 28 48 25 29 2b 2e 35 3a 56 |%=LC%*X(H%)+.5:V| 00000620 25 3d 4c 43 25 2a 59 28 48 25 29 2b 2e 35 0d 03 |%=LC%*Y(H%)+.5..| 00000630 a2 1a e7 20 b0 55 25 2c 56 25 29 3c 3e 33 20 f0 |... .U%,V%)<>3 .| 00000640 36 39 2c 55 25 2c 56 25 0d 03 ac 05 ed 0d 03 b6 |69,U%,V%........| 00000650 05 3a 0d 03 c0 65 58 33 25 3d 6f 75 74 65 72 5f |.:...eX3%=outer_| 00000660 4c 43 25 2a 58 28 3f 4c 43 5f 72 6f 74 29 2b 53 |LC%*X(?LC_rot)+S| 00000670 44 25 2a 58 28 3f 53 43 5f 63 65 6e 74 72 65 29 |D%*X(?SC_centre)| 00000680 2b 36 34 30 2e 35 3a 59 33 25 3d 6f 75 74 65 72 |+640.5:Y3%=outer| 00000690 5f 4c 43 25 2a 59 28 3f 4c 43 5f 72 6f 74 29 2b |_LC%*Y(?LC_rot)+| 000006a0 53 44 25 2a 59 28 3f 53 43 5f 63 65 6e 74 72 65 |SD%*Y(?SC_centre| 000006b0 29 2b 35 31 32 2e 35 0d 03 ca 11 ef 32 39 2c 58 |)+512.5.....29,X| 000006c0 33 25 3b 59 33 25 3b 20 0d 03 d4 1c e3 20 45 25 |3%;Y3%; ..... E%| 000006d0 3d 30 20 b8 20 59 25 20 88 20 53 43 64 6f 74 73 |=0 . Y% . SCdots| 000006e0 25 20 20 20 0d 03 de 1f 48 25 3d 28 45 25 2b 3f |% ....H%=(E%+?| 000006f0 53 43 5f 72 6f 74 61 74 69 6f 6e 2b 2e 35 29 83 |SC_rotation+.5).| 00000700 32 35 36 0d 03 e8 14 e7 20 48 25 3c 30 20 48 25 |256..... H%<0 H%| 00000710 3d 48 25 2b 32 35 36 0d 03 f2 24 55 25 3d 2d 53 |=H%+256...$U%=-S| 00000720 43 25 2a 58 28 48 25 29 2d 2e 35 3a 56 25 3d 53 |C%*X(H%)-.5:V%=S| 00000730 43 25 2a 59 28 48 25 29 2b 2e 35 0d 03 fc 1a e7 |C%*Y(H%)+.5.....| 00000740 20 b0 55 25 2c 56 25 29 3c 3e 33 20 f0 36 39 2c | .U%,V%)<>3 .69,| 00000750 55 25 2c 56 25 0d 04 06 05 ed 0d 04 10 05 3a 0d |U%,V%.........:.| 00000760 04 1a 0b f2 74 72 61 63 65 20 0d 04 24 33 4d 25 |....trace ..$3M%| 00000770 3d 2d 53 43 25 2a 58 28 3f 53 43 5f 72 6f 74 61 |=-SC%*X(?SC_rota| 00000780 74 69 6f 6e 29 3a 4e 25 3d 53 43 25 2a 59 28 3f |tion):N%=SC%*Y(?| 00000790 53 43 5f 72 6f 74 61 74 69 6f 6e 29 20 0d 04 2e |SC_rotation) ...| 000007a0 11 ef 31 39 2c 43 25 2c 33 3b 30 3b 20 20 0d 04 |..19,C%,3;0; ..| 000007b0 38 11 ef 31 39 2c 44 25 2c 30 3b 30 3b 20 20 0d |8..19,D%,0;0; .| 000007c0 04 42 47 58 32 25 3d 6f 75 74 65 72 5f 4c 43 25 |.BGX2%=outer_LC%| 000007d0 2a 58 28 3f 4c 43 5f 72 6f 74 32 29 2b 36 34 30 |*X(?LC_rot2)+640| 000007e0 2e 35 3a 59 32 25 3d 6f 75 74 65 72 5f 4c 43 25 |.5:Y2%=outer_LC%| 000007f0 2a 59 28 3f 4c 43 5f 72 6f 74 32 29 2b 35 31 32 |*Y(?LC_rot2)+512| 00000800 2e 35 20 20 20 20 0d 04 4c 10 ef 32 39 2c 58 32 |.5 ..L..29,X2| 00000810 25 3b 59 32 25 3b 0d 04 56 08 e6 30 2c 30 0d 04 |%;Y2%;..V..0,0..| 00000820 60 1a e3 20 45 25 3d 30 20 b8 20 5a 25 20 88 20 |`.. E%=0 . Z% . | 00000830 4c 43 64 6f 74 73 25 20 0d 04 6a 25 48 25 3d 28 |LCdots% ..j%H%=(| 00000840 2b 45 25 2d 47 2b 2e 35 29 83 32 35 36 3a e7 48 |+E%-G+.5).256:.H| 00000850 25 3c 30 20 48 25 3d 32 35 36 2b 48 25 0d 04 74 |%<0 H%=256+H%..t| 00000860 23 55 25 3d 4c 43 25 2a 58 28 48 25 29 2b 2e 35 |#U%=LC%*X(H%)+.5| 00000870 3a 56 25 3d 4c 43 25 2a 59 28 48 25 29 2b 2e 35 |:V%=LC%*Y(H%)+.5| 00000880 0d 04 7e 1a e7 20 b0 55 25 2c 56 25 29 3c 3e 33 |..~.. .U%,V%)<>3| 00000890 20 f0 36 39 2c 55 25 2c 56 25 0d 04 88 05 ed 0d | .69,U%,V%......| 000008a0 04 92 05 3a 0d 04 9c 12 50 25 3d 58 33 25 3a 51 |...:....P%=X3%:Q| 000008b0 25 3d 59 33 25 20 0d 04 a6 6d 58 33 25 3d 6f 75 |%=Y3% ...mX3%=ou| 000008c0 74 65 72 5f 4c 43 25 2a 58 28 3f 4c 43 5f 72 6f |ter_LC%*X(?LC_ro| 000008d0 74 32 29 2b 53 44 25 2a 58 28 3f 53 43 5f 63 65 |t2)+SD%*X(?SC_ce| 000008e0 6e 74 72 65 32 29 2b 36 34 30 2e 35 3a 59 33 25 |ntre2)+640.5:Y3%| 000008f0 3d 6f 75 74 65 72 5f 4c 43 25 2a 59 28 3f 4c 43 |=outer_LC%*Y(?LC| 00000900 5f 72 6f 74 32 29 2b 53 44 25 2a 59 28 3f 53 43 |_rot2)+SD%*Y(?SC| 00000910 5f 63 65 6e 74 72 65 32 29 2b 35 31 32 2e 35 20 |_centre2)+512.5 | 00000920 20 20 20 0d 04 b0 10 ef 32 39 2c 58 33 25 3b 59 | .....29,X3%;Y| 00000930 33 25 3b 0d 04 ba 1c e3 20 45 25 3d 30 20 b8 20 |3%;..... E%=0 . | 00000940 59 25 20 88 20 53 43 64 6f 74 73 25 20 20 20 0d |Y% . SCdots% .| 00000950 04 c4 23 48 25 3d 28 45 25 2b 3f 53 43 5f 72 6f |..#H%=(E%+?SC_ro| 00000960 74 61 74 69 6f 6e 32 2b 2e 35 29 83 32 35 36 20 |tation2+.5).256 | 00000970 20 20 0d 04 ce 24 55 25 3d 2d 53 43 25 2a 58 28 | ...$U%=-SC%*X(| 00000980 48 25 29 2d 2e 35 3a 56 25 3d 53 43 25 2a 59 28 |H%)-.5:V%=SC%*Y(| 00000990 48 25 29 2b 2e 35 0d 04 d8 1a e7 20 b0 55 25 2c |H%)+.5..... .U%,| 000009a0 56 25 29 3c 3e 33 20 f0 36 39 2c 55 25 2c 56 25 |V%)<>3 .69,U%,V%| 000009b0 0d 04 e2 05 ed 0d 04 ec 05 3a 0d 04 f6 21 3f 53 |.........:...!?S| 000009c0 43 5f 72 6f 74 61 74 69 6f 6e 32 3d 3f 53 43 5f |C_rotation2=?SC_| 000009d0 72 6f 74 61 74 69 6f 6e 20 20 20 0d 05 00 14 42 |rotation ....B| 000009e0 3d 28 35 30 30 2a 46 25 2f 4c 43 25 29 20 20 0d |=(500*F%/LC%) .| 000009f0 05 0a 14 43 3d 4c 25 2a 53 43 25 2f 4c 43 25 2d |...C=L%*SC%/LC%-| 00000a00 42 20 20 0d 05 14 1f 3f 53 43 5f 72 6f 74 61 74 |B ....?SC_rotat| 00000a10 69 6f 6e 3d 4c 25 2d 46 25 2d 43 2b 2e 35 20 20 |ion=L%-F%-C+.5 | 00000a20 20 20 0d 05 1e 1c 3f 53 43 5f 63 65 6e 74 72 65 | ....?SC_centre| 00000a30 32 3d 3f 53 43 5f 63 65 6e 74 72 65 20 20 0d 05 |2=?SC_centre ..| 00000a40 28 19 3f 53 43 5f 63 65 6e 74 72 65 3d 46 25 2b |(.?SC_centre=F%+| 00000a50 43 2b 2e 35 20 20 20 0d 05 32 14 3f 4c 43 5f 72 |C+.5 ..2.?LC_r| 00000a60 6f 74 32 3d 3f 4c 43 5f 72 6f 74 0d 05 3c 08 47 |ot2=?LC_rot..<.G| 00000a70 3d 46 20 0d 05 46 19 46 3d 46 2b 4c 43 5f 72 6f |=F ..F.F=F+LC_ro| 00000a80 74 61 74 69 6f 6e 20 20 20 20 20 20 0d 05 50 0d |tation ..P.| 00000a90 46 25 3d 46 25 2b 31 20 20 0d 05 5a 0e 3f 4c 43 |F%=F%+1 ..Z.?LC| 00000aa0 5f 72 6f 74 3d 46 25 0d 05 64 0c 4c 25 3d 4c 25 |_rot=F%..d.L%=L%| 00000ab0 2b 53 25 0d 05 6e 07 fd 20 a3 0d 05 78 05 3a 0d |+S%..n.. ...x.:.| 00000ac0 05 82 0b dd f2 74 72 61 63 65 0d 05 8c 08 e6 30 |.....trace.....0| 00000ad0 2c 33 0d 05 96 0e ef 32 39 2c 50 25 3b 51 25 3b |,3.....29,P%;Q%;| 00000ae0 0d 05 a0 0c ec 4d 25 2c 4e 25 20 20 0d 05 aa 10 |.....M%,N% ....| 00000af0 ef 32 39 2c 58 33 25 3b 59 33 25 3b 0d 05 b4 31 |.29,X3%;Y3%;...1| 00000b00 f0 35 2c 2d 53 43 25 2a 58 28 3f 53 43 5f 72 6f |.5,-SC%*X(?SC_ro| 00000b10 74 61 74 69 6f 6e 29 2c 53 43 25 2a 59 28 3f 53 |tation),SC%*Y(?S| 00000b20 43 5f 72 6f 74 61 74 69 6f 6e 29 20 20 0d 05 be |C_rotation) ...| 00000b30 07 e1 20 20 0d 05 c8 05 3a 0d 05 d2 0d dd f2 69 |.. ....:......i| 00000b40 6e 66 6f 20 20 20 0d 05 dc 23 f1 8a 39 2c 32 29 |nfo ...#..9,2)| 00000b50 bd 28 31 33 33 29 3b 22 54 48 45 20 4d 55 4c 54 |.(133);"THE MULT| 00000b60 49 2d 53 50 49 52 4f 22 20 0d 05 e6 25 f1 8a 39 |I-SPIRO" ...%..9| 00000b70 2c 34 29 bd 28 31 33 34 29 3b 22 28 42 61 73 69 |,4).(134);"(Basi| 00000b80 63 20 56 65 72 73 69 6f 6e 29 22 20 20 20 0d 05 |c Version)" ..| 00000b90 f0 35 e8 8a 30 2c 36 29 22 86 45 6e 74 65 72 20 |.5..0,6)".Enter | 00000ba0 73 69 7a 65 20 6f 66 20 6c 61 72 67 65 20 77 68 |size of large wh| 00000bb0 65 65 6c 20 28 32 30 30 5f 34 30 30 29 20 22 4c |eel (200_400) "L| 00000bc0 43 25 20 0d 05 fa 34 e8 8a 30 2c 39 29 22 86 45 |C% ...4..0,9)".E| 00000bd0 6e 74 65 72 20 73 69 7a 65 20 6f 66 20 73 6d 61 |nter size of sma| 00000be0 6c 6c 20 77 68 65 65 6c 20 28 32 30 5f 31 32 37 |ll wheel (20_127| 00000bf0 29 20 22 53 43 25 20 0d 06 04 2a f1 8a 30 2c 31 |) "SC% ...*..0,1| 00000c00 32 29 22 86 45 6e 74 65 72 20 73 70 65 65 64 20 |2)".Enter speed | 00000c10 6f 66 20 73 6d 61 6c 6c 20 77 68 65 65 6c 22 20 |of small wheel" | 00000c20 20 0d 06 0e 1d f1 8a 30 2c 31 34 29 22 86 31 5f | ......0,14)".1_| 00000c30 39 20 63 6c 6f 63 6b 77 69 73 65 22 20 20 0d 06 |9 clockwise" ..| 00000c40 18 2c e8 8a 30 2c 31 36 29 22 86 31 31 5f 32 30 |.,..0,16)".11_20| 00000c50 20 61 6e 74 69 2d 63 6c 6f 63 6b 77 69 73 65 20 | anti-clockwise | 00000c60 22 53 50 45 45 44 25 20 20 20 0d 06 22 15 53 25 |"SPEED% ..".S%| 00000c70 3d 53 50 45 45 44 25 2d 31 32 20 20 20 20 20 0d |=SPEED%-12 .| 00000c80 06 2c 08 e1 20 20 20 0d ff |.,.. ..| 00000c89