Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Regulars_2 » StarInfo/Adcock/ROTSPIS

StarInfo/Adcock/ROTSPIS

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 1996-12 B.adf » Regulars_2
Filename: StarInfo/Adcock/ROTSPIS
Read OK:
File size: 01F7 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Revenge Of The Spiral Staircases
   20REM By Mark Adcock 5/5/96
   30REM Almost a one-liner!
   40REM
   50MODE 12:OFF:X=100:Y=0:X2=-100:Y2=0:MX=0:MY=-25:OMX=MX:OMY=MY:REPEAT:OX=X:OY=Y:OX2=X2:OY2=Y2:PROCRot(X2,Y2,8):X2=NX:Y2=NY:PROCRot(X,Y,7.6):X=NX:Y=NY:MOVE 640+X2,512+Y2/3:DRAW 640+X,512+Y/3
   60MOVE 640+OMX+OX,512+OMY+OY/3:DRAW 640+X,512+Y/3:MOVE 640+OMX+OX2,512+OMY+OY2/3:DRAW 640+X2,512+Y2/3:RECTANGLEFILL 0,0,1280,1024 TO MX,MY:OMX=MX:OMY=MY:PROCRot(MX,MY,1):MX=NX:MY=NY:UNTIL FALSE:END
   70DEF PROCRot(RX,RY,RD):R=RAD(-RD):NX=RX*COS(R)-RY*SIN(R):NY=RX*SIN(R)+RY*COS(R):ENDPROC
   80

&� Revenge Of The Spiral Staircases
� By Mark Adcock 5/5/96
� Almost a one-liner!
(�
2�� 12:�:X=100:Y=0:X2=-100:Y2=0:MX=0:MY=-25:OMX=MX:OMY=MY:�:OX=X:OY=Y:OX2=X2:OY2=Y2:�Rot(X2,Y2,8):X2=NX:Y2=NY:�Rot(X,Y,7.6):X=NX:Y=NY:� 640+X2,512+Y2/3:� 640+X,512+Y/3
<�� 640+OMX+OX,512+OMY+OY/3:� 640+X,512+Y/3:� 640+OMX+OX2,512+OMY+OY2/3:� 640+X2,512+Y2/3:ȓȐ 0,0,1280,1024 � MX,MY:OMX=MX:OMY=MY:�Rot(MX,MY,1):MX=NX:MY=NY:� �:�
FE� �Rot(RX,RY,RD):R=�(-RD):NX=RX*�(R)-RY*�(R):NY=RX*�(R)+RY*�(R):�
P
�
00000000  0d 00 0a 26 f4 20 52 65  76 65 6e 67 65 20 4f 66  |...&. Revenge Of|
00000010  20 54 68 65 20 53 70 69  72 61 6c 20 53 74 61 69  | The Spiral Stai|
00000020  72 63 61 73 65 73 0d 00  14 1b f4 20 42 79 20 4d  |rcases..... By M|
00000030  61 72 6b 20 41 64 63 6f  63 6b 20 35 2f 35 2f 39  |ark Adcock 5/5/9|
00000040  36 0d 00 1e 19 f4 20 41  6c 6d 6f 73 74 20 61 20  |6..... Almost a |
00000050  6f 6e 65 2d 6c 69 6e 65  72 21 0d 00 28 05 f4 0d  |one-liner!..(...|
00000060  00 32 a9 eb 20 31 32 3a  87 3a 58 3d 31 30 30 3a  |.2.. 12:.:X=100:|
00000070  59 3d 30 3a 58 32 3d 2d  31 30 30 3a 59 32 3d 30  |Y=0:X2=-100:Y2=0|
00000080  3a 4d 58 3d 30 3a 4d 59  3d 2d 32 35 3a 4f 4d 58  |:MX=0:MY=-25:OMX|
00000090  3d 4d 58 3a 4f 4d 59 3d  4d 59 3a f5 3a 4f 58 3d  |=MX:OMY=MY:.:OX=|
000000a0  58 3a 4f 59 3d 59 3a 4f  58 32 3d 58 32 3a 4f 59  |X:OY=Y:OX2=X2:OY|
000000b0  32 3d 59 32 3a f2 52 6f  74 28 58 32 2c 59 32 2c  |2=Y2:.Rot(X2,Y2,|
000000c0  38 29 3a 58 32 3d 4e 58  3a 59 32 3d 4e 59 3a f2  |8):X2=NX:Y2=NY:.|
000000d0  52 6f 74 28 58 2c 59 2c  37 2e 36 29 3a 58 3d 4e  |Rot(X,Y,7.6):X=N|
000000e0  58 3a 59 3d 4e 59 3a ec  20 36 34 30 2b 58 32 2c  |X:Y=NY:. 640+X2,|
000000f0  35 31 32 2b 59 32 2f 33  3a df 20 36 34 30 2b 58  |512+Y2/3:. 640+X|
00000100  2c 35 31 32 2b 59 2f 33  0d 00 3c a4 ec 20 36 34  |,512+Y/3..<.. 64|
00000110  30 2b 4f 4d 58 2b 4f 58  2c 35 31 32 2b 4f 4d 59  |0+OMX+OX,512+OMY|
00000120  2b 4f 59 2f 33 3a df 20  36 34 30 2b 58 2c 35 31  |+OY/3:. 640+X,51|
00000130  32 2b 59 2f 33 3a ec 20  36 34 30 2b 4f 4d 58 2b  |2+Y/3:. 640+OMX+|
00000140  4f 58 32 2c 35 31 32 2b  4f 4d 59 2b 4f 59 32 2f  |OX2,512+OMY+OY2/|
00000150  33 3a df 20 36 34 30 2b  58 32 2c 35 31 32 2b 59  |3:. 640+X2,512+Y|
00000160  32 2f 33 3a c8 93 c8 90  20 30 2c 30 2c 31 32 38  |2/3:.... 0,0,128|
00000170  30 2c 31 30 32 34 20 b8  20 4d 58 2c 4d 59 3a 4f  |0,1024 . MX,MY:O|
00000180  4d 58 3d 4d 58 3a 4f 4d  59 3d 4d 59 3a f2 52 6f  |MX=MX:OMY=MY:.Ro|
00000190  74 28 4d 58 2c 4d 59 2c  31 29 3a 4d 58 3d 4e 58  |t(MX,MY,1):MX=NX|
000001a0  3a 4d 59 3d 4e 59 3a fd  20 a3 3a e0 0d 00 46 45  |:MY=NY:. .:...FE|
000001b0  dd 20 f2 52 6f 74 28 52  58 2c 52 59 2c 52 44 29  |. .Rot(RX,RY,RD)|
000001c0  3a 52 3d b2 28 2d 52 44  29 3a 4e 58 3d 52 58 2a  |:R=.(-RD):NX=RX*|
000001d0  9b 28 52 29 2d 52 59 2a  b5 28 52 29 3a 4e 59 3d  |.(R)-RY*.(R):NY=|
000001e0  52 58 2a b5 28 52 29 2b  52 59 2a 9b 28 52 29 3a  |RX*.(R)+RY*.(R):|
000001f0  e1 0d 00 50 04 0d ff                              |...P...|
000001f7