Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Regulars_2 » StarInfo/Stoner/!ItCouldBe/SpaceBalls

StarInfo/Stoner/!ItCouldBe/SpaceBalls

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/Stoner/!ItCouldBe/SpaceBalls
Read OK:
File size: 124E bytes
Load address: 0000
Exec address: 0000
File contents
   10ON ERROR MODE12:REPORT:PRINT"d from Spaceballs":END
   20REM Rotate 2D points in MC program
   30REM Using .... Dots
   40REM by Nigel Stoner.
   50
   60PROCinit
   70PROCassemble
   80PROCmain
   90END
  100
  110DEF PROCinit
  120MODE 13+128:OFF:GCOL 0,2
  130s%=1
  140file$="<Space$Dir>.Ball"
  150SYS 8,5,file$ TO ,,,,slen%
  160DIM code 2000, sin% 2900 , cos% 2900, point% 800*12,table% 4096*4,store% 800*12
  170
  180REM sprite bits.
  190DIM sp% slen%+1024
  200!sp%=slen%+1024
  210SYS 8,255,file$,sp%+4
  220SYS 46,280,sp%,"yellow" TO ,,ball%
  230
  240REM sine and cosine plots shifted 4 places
  250p%=0
  260FOR a%=0 TO 719
  270sin%!p%=SIN RAD(a%/2)*(1<<16):cos%!p%=COS RAD(a%/2)*(1<<16)
  280p%+=4
  290NEXT a%
  300sin%!p%=SIN RAD(a%/2)*(1<<16):cos%!p%=COS RAD(a%/2)*(1<<16)
  310
  320p%=0
  330FOR x%=0 TO 800*12 STEP 4
  340point%!p%=0
  350p%+=4
  360NEXT x%
  370
  380p%=0
  390FOR a%=0 TO 98
  400 point%!p%=RND(1280)-640
  410 point%!(p%+4)=RND(1280)-640
  420 point%!(p%+8)=RND(1280)-640
  430p%+=12
  440NEXT a%
  450
  460p%=0
  470FOR c%=1 TO 4096
  480!(table%+p%)=(480/c%)*4096
  490p%+=4
  500NEXT c%
  510
  520ENDPROC
  530
  540
  550DEF PROCmain
  560TIME =0
  570A%=360:B%=360:C%=360
  580REPEAT
  590A%=INT(360*SIN RAD(TIME/6)+360)
  600B%=INT(360*SIN RAD(TIME/4)+360)
  610C%=INT(360*COS RAD(TIME/5)+360)
  620SYS 6,112,s%:s%=s%EOR3:SYS6,113,s%:WAIT:CLS:CALL code:UNTIL FALSE
  630ENDPROC
  640
  650DEF PROCassemble
  660vdu= 0 :x= 1 :y= 2 :z= 3
  670rsin= 4 :rcos= 5 :dots= 6
  680xold= 7 :yold= 8 :zold = 9
  690temp = 10 :upto= 11 :shift= 12
  700scode=0
  710sarea=1
  720sname=2
  730sx=3 :sy=4 :sz=5
  740mode=5
  750size=6
  760size_store=7
  770scount=8
  780stable=9
  790ptable=10
  800scale=11
  810
  820plot = &45 : REM Vdu code for point
  830
  840FOR pass = 0 TO 2 STEP 2
  850P%=code:PRINT P%
  860[OPT pass
  870 STMFD R13!,{R14}
  880 STR  R0,xangle
  890 STR  R1,yangle
  900 STR  R2,zangle
  910 BL   move
  920 BL   turn
  930 BL   plot_sprites
  940 LDMFD R13!,{PC}
  950
  960.move
  970 STMFD R13!,{R14}
  980 LDR R0,dotty
  990 MOV R1,#98
 1000.move_it
 1010 LDMIA R0,{R2-R4}
 1020 ADD R3,R3,#12
 1030 CMP R3,#640
 1040 MVNGE R3,#640
 1050 STMIA R0!,{R2-R4}
 1060 SUB   R1,R1,#1
 1070 CMP   R1,#0
 1080 BNE   move_it
 1090 LDMFD R13!,{PC}
 1100
 1110.turn
 1120 STMFD R13!,{R14}
 1130 LDR  shift,store
 1140 MOV  upto,#98
 1150 SUB  upto,upto,#1
 1160 LDR  R6,dotty
 1170.loop
 1180 LDMIA R6!,{xold-zold}
 1190 LDR  R0,xangle
 1200 LDR  rsin,sintab
 1210 LDR  rcos,costab
 1220 LDR  rsin,[rsin,R0,ASL#2]
 1230 LDR  rcos,[rcos,R0,ASL#2]
 1240 BL   rotate_x
 1250 LDR  R0,yangle
 1260 LDR  rsin,sintab
 1270 LDR  rcos,costab
 1280 LDR  rsin,[rsin,R0,ASL#2]
 1290 LDR  rcos,[rcos,R0,ASL#2]
 1300 BL   rotate_y
 1310 LDR  R0,zangle
 1320 LDR  rsin,sintab
 1330 LDR  rcos,costab
 1340 LDR  rsin,[rsin,R0,ASL#2]
 1350 LDR  rcos,[rcos,R0,ASL#2]
 1360 BL   rotate_z
 1370 MOV  x,xold
 1380 MOV  y,yold
 1390 MOV  z,zold
 1400 STMIA R12!,{xold-zold}
 1410 SUBS  upto,upto,#1
 1420 BCS  loop
 1430 LDMFD R13!,{PC}
 1440
 1450.rotate_z
 1460 STMFD R13!,{R14}
 1470 MUL  x,xold,rcos
 1480 MUL  temp,yold,rsin
 1490 SUB  x,x,temp
 1500 MUL  y,xold,rsin
 1510 MUL  temp,yold,rcos
 1520 ADD  y,y,temp
 1530 MOV  xold,x,ASR#16
 1540 MOV  yold,y,ASR#16
 1550 LDMFD R13!,{PC}
 1560
 1570.rotate_x
 1580 STMFD R13!,{R14}
 1590 MUL  y,yold,rcos
 1600 MUL  temp,zold,rsin
 1610 SUB  y,y,temp
 1620 MUL  z,yold,rsin
 1630 MUL  temp,zold,rcos
 1640 ADD  z,z,temp
 1650 MOV  yold,y,ASR#16
 1660 MOV  zold,z,ASR#16
 1670 LDMFD R13!,{PC}
 1680
 1690.rotate_y
 1700 STMFD R13!,{R14}
 1710 MUL  x,xold,rcos
 1720 MUL  temp,zold,rsin
 1730 SUB  x,x,temp
 1740 MUL  z,xold,rsin
 1750 MUL  temp,zold,rcos
 1760 ADD  z,z,temp
 1770 MOV  xold,x,ASR#16
 1780 MOV  zold,z,ASR#16
 1790 LDMFD R13!,{PC}
 1800
 1810.plot_sprites
 1820 STMFD R13!,{R14}
 1830 LDR scode,sprite_plot
 1840 LDR sarea,sprite_area
 1850 LDR sname,sprite_name
 1860 MOV scount,#98
 1870 LDR stable,store
 1880 LDR ptable,table
 1890.plot_loop
 1900 ADR size_store,mult
 1910 LDMIA R9!,{sx,sy,sz}
 1920 ADD sz,sz,#640
 1930 CMP sz,#1
 1940 BLE dot_range
 1950 CMP sz,#4096
 1960 BGE dot_range
 1970 MOV size,sz
 1980 LDR scale,[ptable,sz,ASL#2]
 1990 MUL sx,scale,sx
 2000 MUL sy,scale,sy
 2010 MOV sx,sx,ASR#12
 2020 MVN sy,sy,ASR#12
 2030 ADD sx,sx,#640
 2040 ADD sy,sy,#512
 2050 MOV size,scale,ASR#1
 2060 STR R6,[R7]
 2070 STR R6,[R7,#4]
 2080 MOV R6,R7
 2090 MOV R5,#8
 2100 MOV R7,#0
 2110 SWI 46
 2120.dot_range
 2130 SUB scount,scount,#1
 2140 CMP scount,#0
 2150 BNE plot_loop
 2160 LDMFD R13!,{PC}
 2170
 2180.dotty
 2190EQUD point%
 2200.sintab
 2210EQUD sin%
 2220.costab
 2230EQUD cos%
 2240.table
 2250EQUD table%
 2260.store
 2270EQUD store%
 2280.xangle
 2290EQUD 0
 2300.yangle
 2310EQUD 0
 2320.zangle
 2330EQUD 0
 2340.sprite_plot
 2350EQUD 564      ; scaled plot
 2360;EQUD 546     ; ordinary plot
 2370.sprite_area
 2380EQUD sp%
 2390.sprite_name
 2400EQUD ball%
 2410.mult
 2420EQUD 200
 2430EQUD 200
 2440EQUD 2048
 2450EQUD 2048
 2460]
 2470NEXT pass
 2480ENDPROC
 2490
 2500DEF PROCdatalist
 2510DATA 1,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,0,0,0
 2520DATA 1,1,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0
 2530DATA 1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0
 2540DATA 1,0,1,1,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0,0
 2550DATA 1,0,0,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1
 2560ENDPROC

$� � �12:�:�"d from Spaceballs":�
$� Rotate 2D points in MC program
� Using .... Dots
(� by Nigel Stoner.
2
<	�init
F
�assemble
P	�main
Z�
d
n� �init
x� 13+128:�:� 0,2
�s%=1
�file$="<Space$Dir>.Ball"
�ș 8,5,file$ � ,,,,slen%
�Q� code 2000, sin% 2900 , cos% 2900, point% 800*12,table% 4096*4,store% 800*12
�
�� sprite bits.
�� sp% slen%+1024
�!sp%=slen%+1024
�ș 8,255,file$,sp%+4
�$ș 46,280,sp%,"yellow" � ,,ball%
�
�,� sine and cosine plots shifted 4 places
�p%=0
� a%=0 � 719
7sin%!p%=� �(a%/2)*(1<<16):cos%!p%=� �(a%/2)*(1<<16)
	p%+=4
"� a%
,7sin%!p%=� �(a%/2)*(1<<16):cos%!p%=� �(a%/2)*(1<<16)
6
@p%=0
J� x%=0 � 800*12 � 4
Tpoint%!p%=0
^	p%+=4
h� x%
r
|p%=0
�� a%=0 � 98
� point%!p%=�(1280)-640
� point%!(p%+4)=�(1280)-640
� point%!(p%+8)=�(1280)-640
�
p%+=12
�� a%
�
�p%=0
�� c%=1 � 4096
�!(table%+p%)=(480/c%)*4096
�	p%+=4
�� c%
�
�


&� �main
0� =0
:A%=360:B%=360:C%=360
D�
NA%=�(360*� �(�/6)+360)
XB%=�(360*� �(�/4)+360)
bC%=�(360*� �(�/5)+360)
l2ș 6,112,s%:s%=s%�3:ș6,113,s%:Ȗ:�:� code:� �
v�
�
�� �assemble
�vdu= 0 :x= 1 :y= 2 :z= 3
�rsin= 4 :rcos= 5 :dots= 6
�xold= 7 :yold= 8 :zold = 9
�"temp = 10 :upto= 11 :shift= 12
�scode=0
�sarea=1
�sname=2
�sx=3 :sy=4 :sz=5
�
mode=5
�
size=6
�size_store=7
scount=8
stable=9

ptable=10
 scale=11
*
4%plot = &45 : � Vdu code for point
>
H� pass = 0 � 2 � 2
RP%=code:� P%
\
[OPT pass
f STMFD R13!,{R14}
p STR  R0,xangle
z STR  R1,yangle
� STR  R2,zangle
� BL   move
� BL   turn
� BL   plot_sprites
� LDMFD R13!,{PC}
�
�	.move
� STMFD R13!,{R14}
� LDR R0,dotty
� MOV R1,#98
�.move_it
� LDMIA R0,{R2-R4}
� ADD R3,R3,#12
 CMP R3,#640
 MVNGE R3,#640
 STMIA R0!,{R2-R4}
$ SUB   R1,R1,#1
. CMP   R1,#0
8 BNE   move_it
B LDMFD R13!,{PC}
L
V	.turn
` STMFD R13!,{R14}
j LDR  shift,store
t MOV  upto,#98
~ SUB  upto,upto,#1
� LDR  R6,dotty
�	.loop
� LDMIA R6!,{xold-zold}
� LDR  R0,xangle
� LDR  rsin,sintab
� LDR  rcos,costab
� LDR  rsin,[rsin,R0,ASL#2]
� LDR  rcos,[rcos,R0,ASL#2]
� BL   rotate_x
� LDR  R0,yangle
� LDR  rsin,sintab
� LDR  rcos,costab
 LDR  rsin,[rsin,R0,ASL#2]

 LDR  rcos,[rcos,R0,ASL#2]
 BL   rotate_y
 LDR  R0,zangle
( LDR  rsin,sintab
2 LDR  rcos,costab
< LDR  rsin,[rsin,R0,ASL#2]
F LDR  rcos,[rcos,R0,ASL#2]
P BL   rotate_z
Z MOV  x,xold
d MOV  y,yold
n MOV  z,zold
x STMIA R12!,{xold-zold}
� SUBS  upto,upto,#1
� BCS  loop
� LDMFD R13!,{PC}
�
�
.rotate_z
� STMFD R13!,{R14}
� MUL  x,xold,rcos
� MUL  temp,yold,rsin
� SUB  x,x,temp
� MUL  y,xold,rsin
� MUL  temp,yold,rcos
� ADD  y,y,temp
� MOV  xold,x,ASR#16
 MOV  yold,y,ASR#16
 LDMFD R13!,{PC}

"
.rotate_x
, STMFD R13!,{R14}
6 MUL  y,yold,rcos
@ MUL  temp,zold,rsin
J SUB  y,y,temp
T MUL  z,yold,rsin
^ MUL  temp,zold,rcos
h ADD  z,z,temp
r MOV  yold,y,ASR#16
| MOV  zold,z,ASR#16
� LDMFD R13!,{PC}
�
�
.rotate_y
� STMFD R13!,{R14}
� MUL  x,xold,rcos
� MUL  temp,zold,rsin
� SUB  x,x,temp
� MUL  z,xold,rsin
� MUL  temp,zold,rcos
� ADD  z,z,temp
� MOV  xold,x,ASR#16
� MOV  zold,z,ASR#16
� LDMFD R13!,{PC}

.plot_sprites
 STMFD R13!,{R14}
& LDR scode,sprite_plot
0 LDR sarea,sprite_area
: LDR sname,sprite_name
D MOV scount,#98
N LDR stable,store
X LDR ptable,table
b.plot_loop
l ADR size_store,mult
v LDMIA R9!,{sx,sy,sz}
� ADD sz,sz,#640
� CMP sz,#1
� BLE dot_range
� CMP sz,#4096
� BGE dot_range
� MOV size,sz
�  LDR scale,[ptable,sz,ASL#2]
� MUL sx,scale,sx
� MUL sy,scale,sy
� MOV sx,sx,ASR#12
� MVN sy,sy,ASR#12
� ADD sx,sx,#640
� ADD sy,sy,#512
 MOV size,scale,ASR#1
 STR R6,[R7]
 STR R6,[R7,#4]
  MOV R6,R7
* MOV R5,#8
4 MOV R7,#0
> SWI 46
H.dot_range
R SUB scount,scount,#1
\ CMP scount,#0
f BNE plot_loop
p LDMFD R13!,{PC}
z
�
.dotty
�EQUD point%
�.sintab
�
EQUD sin%
�.costab
�
EQUD cos%
�
.table
�EQUD table%
�
.store
�EQUD store%
�.xangle
�
EQUD 0
�.yangle
	
EQUD 0
	.zangle
	
EQUD 0
	$.sprite_plot
	.EQUD 564      ; scaled plot
	8!;EQUD 546     ; ordinary plot
	B.sprite_area
	LEQUD sp%
	V.sprite_name
	`EQUD ball%
	j	.mult
	tEQUD 200
	~EQUD 200
	�
EQUD 2048
	�
EQUD 2048
	�]
	�
� pass
	��
	�
	�� �datalist
	�5� 1,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,0,0,0
	�5� 1,1,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0
	�5� 1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0
	�5� 1,0,1,1,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0,0
	�5� 1,0,0,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1
�
�
00000000  0d 00 0a 24 ee 20 85 20  eb 31 32 3a f6 3a f1 22  |...$. . .12:.:."|
00000010  64 20 66 72 6f 6d 20 53  70 61 63 65 62 61 6c 6c  |d from Spaceball|
00000020  73 22 3a e0 0d 00 14 24  f4 20 52 6f 74 61 74 65  |s":....$. Rotate|
00000030  20 32 44 20 70 6f 69 6e  74 73 20 69 6e 20 4d 43  | 2D points in MC|
00000040  20 70 72 6f 67 72 61 6d  0d 00 1e 15 f4 20 55 73  | program..... Us|
00000050  69 6e 67 20 2e 2e 2e 2e  20 44 6f 74 73 0d 00 28  |ing .... Dots..(|
00000060  16 f4 20 62 79 20 4e 69  67 65 6c 20 53 74 6f 6e  |.. by Nigel Ston|
00000070  65 72 2e 0d 00 32 04 0d  00 3c 09 f2 69 6e 69 74  |er...2...<..init|
00000080  0d 00 46 0d f2 61 73 73  65 6d 62 6c 65 0d 00 50  |..F..assemble..P|
00000090  09 f2 6d 61 69 6e 0d 00  5a 05 e0 0d 00 64 04 0d  |..main..Z....d..|
000000a0  00 6e 0b dd 20 f2 69 6e  69 74 0d 00 78 14 eb 20  |.n.. .init..x.. |
000000b0  31 33 2b 31 32 38 3a 87  3a e6 20 30 2c 32 0d 00  |13+128:.:. 0,2..|
000000c0  82 08 73 25 3d 31 0d 00  8c 1c 66 69 6c 65 24 3d  |..s%=1....file$=|
000000d0  22 3c 53 70 61 63 65 24  44 69 72 3e 2e 42 61 6c  |"<Space$Dir>.Bal|
000000e0  6c 22 0d 00 96 1c c8 99  20 38 2c 35 2c 66 69 6c  |l"...... 8,5,fil|
000000f0  65 24 20 b8 20 2c 2c 2c  2c 73 6c 65 6e 25 0d 00  |e$ . ,,,,slen%..|
00000100  a0 51 de 20 63 6f 64 65  20 32 30 30 30 2c 20 73  |.Q. code 2000, s|
00000110  69 6e 25 20 32 39 30 30  20 2c 20 63 6f 73 25 20  |in% 2900 , cos% |
00000120  32 39 30 30 2c 20 70 6f  69 6e 74 25 20 38 30 30  |2900, point% 800|
00000130  2a 31 32 2c 74 61 62 6c  65 25 20 34 30 39 36 2a  |*12,table% 4096*|
00000140  34 2c 73 74 6f 72 65 25  20 38 30 30 2a 31 32 0d  |4,store% 800*12.|
00000150  00 aa 04 0d 00 b4 12 f4  20 73 70 72 69 74 65 20  |........ sprite |
00000160  62 69 74 73 2e 0d 00 be  14 de 20 73 70 25 20 73  |bits...... sp% s|
00000170  6c 65 6e 25 2b 31 30 32  34 0d 00 c8 13 21 73 70  |len%+1024....!sp|
00000180  25 3d 73 6c 65 6e 25 2b  31 30 32 34 0d 00 d2 18  |%=slen%+1024....|
00000190  c8 99 20 38 2c 32 35 35  2c 66 69 6c 65 24 2c 73  |.. 8,255,file$,s|
000001a0  70 25 2b 34 0d 00 dc 24  c8 99 20 34 36 2c 32 38  |p%+4...$.. 46,28|
000001b0  30 2c 73 70 25 2c 22 79  65 6c 6c 6f 77 22 20 b8  |0,sp%,"yellow" .|
000001c0  20 2c 2c 62 61 6c 6c 25  0d 00 e6 04 0d 00 f0 2c  | ,,ball%.......,|
000001d0  f4 20 73 69 6e 65 20 61  6e 64 20 63 6f 73 69 6e  |. sine and cosin|
000001e0  65 20 70 6c 6f 74 73 20  73 68 69 66 74 65 64 20  |e plots shifted |
000001f0  34 20 70 6c 61 63 65 73  0d 00 fa 08 70 25 3d 30  |4 places....p%=0|
00000200  0d 01 04 10 e3 20 61 25  3d 30 20 b8 20 37 31 39  |..... a%=0 . 719|
00000210  0d 01 0e 37 73 69 6e 25  21 70 25 3d b5 20 b2 28  |...7sin%!p%=. .(|
00000220  61 25 2f 32 29 2a 28 31  3c 3c 31 36 29 3a 63 6f  |a%/2)*(1<<16):co|
00000230  73 25 21 70 25 3d 9b 20  b2 28 61 25 2f 32 29 2a  |s%!p%=. .(a%/2)*|
00000240  28 31 3c 3c 31 36 29 0d  01 18 09 70 25 2b 3d 34  |(1<<16)....p%+=4|
00000250  0d 01 22 08 ed 20 61 25  0d 01 2c 37 73 69 6e 25  |..".. a%..,7sin%|
00000260  21 70 25 3d b5 20 b2 28  61 25 2f 32 29 2a 28 31  |!p%=. .(a%/2)*(1|
00000270  3c 3c 31 36 29 3a 63 6f  73 25 21 70 25 3d 9b 20  |<<16):cos%!p%=. |
00000280  b2 28 61 25 2f 32 29 2a  28 31 3c 3c 31 36 29 0d  |.(a%/2)*(1<<16).|
00000290  01 36 04 0d 01 40 08 70  25 3d 30 0d 01 4a 17 e3  |.6...@.p%=0..J..|
000002a0  20 78 25 3d 30 20 b8 20  38 30 30 2a 31 32 20 88  | x%=0 . 800*12 .|
000002b0  20 34 0d 01 54 0f 70 6f  69 6e 74 25 21 70 25 3d  | 4..T.point%!p%=|
000002c0  30 0d 01 5e 09 70 25 2b  3d 34 0d 01 68 08 ed 20  |0..^.p%+=4..h.. |
000002d0  78 25 0d 01 72 04 0d 01  7c 08 70 25 3d 30 0d 01  |x%..r...|.p%=0..|
000002e0  86 0f e3 20 61 25 3d 30  20 b8 20 39 38 0d 01 90  |... a%=0 . 98...|
000002f0  1a 20 70 6f 69 6e 74 25  21 70 25 3d b3 28 31 32  |. point%!p%=.(12|
00000300  38 30 29 2d 36 34 30 0d  01 9a 1e 20 70 6f 69 6e  |80)-640.... poin|
00000310  74 25 21 28 70 25 2b 34  29 3d b3 28 31 32 38 30  |t%!(p%+4)=.(1280|
00000320  29 2d 36 34 30 0d 01 a4  1e 20 70 6f 69 6e 74 25  |)-640.... point%|
00000330  21 28 70 25 2b 38 29 3d  b3 28 31 32 38 30 29 2d  |!(p%+8)=.(1280)-|
00000340  36 34 30 0d 01 ae 0a 70  25 2b 3d 31 32 0d 01 b8  |640....p%+=12...|
00000350  08 ed 20 61 25 0d 01 c2  04 0d 01 cc 08 70 25 3d  |.. a%........p%=|
00000360  30 0d 01 d6 11 e3 20 63  25 3d 31 20 b8 20 34 30  |0..... c%=1 . 40|
00000370  39 36 0d 01 e0 1e 21 28  74 61 62 6c 65 25 2b 70  |96....!(table%+p|
00000380  25 29 3d 28 34 38 30 2f  63 25 29 2a 34 30 39 36  |%)=(480/c%)*4096|
00000390  0d 01 ea 09 70 25 2b 3d  34 0d 01 f4 08 ed 20 63  |....p%+=4..... c|
000003a0  25 0d 01 fe 04 0d 02 08  05 e1 0d 02 12 04 0d 02  |%...............|
000003b0  1c 04 0d 02 26 0b dd 20  f2 6d 61 69 6e 0d 02 30  |....&.. .main..0|
000003c0  08 d1 20 3d 30 0d 02 3a  18 41 25 3d 33 36 30 3a  |.. =0..:.A%=360:|
000003d0  42 25 3d 33 36 30 3a 43  25 3d 33 36 30 0d 02 44  |B%=360:C%=360..D|
000003e0  05 f5 0d 02 4e 1a 41 25  3d a8 28 33 36 30 2a b5  |....N.A%=.(360*.|
000003f0  20 b2 28 91 2f 36 29 2b  33 36 30 29 0d 02 58 1a  | .(./6)+360)..X.|
00000400  42 25 3d a8 28 33 36 30  2a b5 20 b2 28 91 2f 34  |B%=.(360*. .(./4|
00000410  29 2b 33 36 30 29 0d 02  62 1a 43 25 3d a8 28 33  |)+360)..b.C%=.(3|
00000420  36 30 2a 9b 20 b2 28 91  2f 35 29 2b 33 36 30 29  |60*. .(./5)+360)|
00000430  0d 02 6c 32 c8 99 20 36  2c 31 31 32 2c 73 25 3a  |..l2.. 6,112,s%:|
00000440  73 25 3d 73 25 82 33 3a  c8 99 36 2c 31 31 33 2c  |s%=s%.3:..6,113,|
00000450  73 25 3a c8 96 3a db 3a  d6 20 63 6f 64 65 3a fd  |s%:..:.:. code:.|
00000460  20 a3 0d 02 76 05 e1 0d  02 80 04 0d 02 8a 0f dd  | ...v...........|
00000470  20 f2 61 73 73 65 6d 62  6c 65 0d 02 94 1c 76 64  | .assemble....vd|
00000480  75 3d 20 30 20 3a 78 3d  20 31 20 3a 79 3d 20 32  |u= 0 :x= 1 :y= 2|
00000490  20 3a 7a 3d 20 33 0d 02  9e 1d 72 73 69 6e 3d 20  | :z= 3....rsin= |
000004a0  34 20 3a 72 63 6f 73 3d  20 35 20 3a 64 6f 74 73  |4 :rcos= 5 :dots|
000004b0  3d 20 36 0d 02 a8 1e 78  6f 6c 64 3d 20 37 20 3a  |= 6....xold= 7 :|
000004c0  79 6f 6c 64 3d 20 38 20  3a 7a 6f 6c 64 20 3d 20  |yold= 8 :zold = |
000004d0  39 0d 02 b2 22 74 65 6d  70 20 3d 20 31 30 20 3a  |9..."temp = 10 :|
000004e0  75 70 74 6f 3d 20 31 31  20 3a 73 68 69 66 74 3d  |upto= 11 :shift=|
000004f0  20 31 32 0d 02 bc 0b 73  63 6f 64 65 3d 30 0d 02  | 12....scode=0..|
00000500  c6 0b 73 61 72 65 61 3d  31 0d 02 d0 0b 73 6e 61  |..sarea=1....sna|
00000510  6d 65 3d 32 0d 02 da 14  73 78 3d 33 20 3a 73 79  |me=2....sx=3 :sy|
00000520  3d 34 20 3a 73 7a 3d 35  0d 02 e4 0a 6d 6f 64 65  |=4 :sz=5....mode|
00000530  3d 35 0d 02 ee 0a 73 69  7a 65 3d 36 0d 02 f8 10  |=5....size=6....|
00000540  73 69 7a 65 5f 73 74 6f  72 65 3d 37 0d 03 02 0c  |size_store=7....|
00000550  73 63 6f 75 6e 74 3d 38  0d 03 0c 0c 73 74 61 62  |scount=8....stab|
00000560  6c 65 3d 39 0d 03 16 0d  70 74 61 62 6c 65 3d 31  |le=9....ptable=1|
00000570  30 0d 03 20 0c 73 63 61  6c 65 3d 31 31 0d 03 2a  |0.. .scale=11..*|
00000580  04 0d 03 34 25 70 6c 6f  74 20 3d 20 26 34 35 20  |...4%plot = &45 |
00000590  3a 20 f4 20 56 64 75 20  63 6f 64 65 20 66 6f 72  |: . Vdu code for|
000005a0  20 70 6f 69 6e 74 0d 03  3e 04 0d 03 48 16 e3 20  | point..>...H.. |
000005b0  70 61 73 73 20 3d 20 30  20 b8 20 32 20 88 20 32  |pass = 0 . 2 . 2|
000005c0  0d 03 52 10 50 25 3d 63  6f 64 65 3a f1 20 50 25  |..R.P%=code:. P%|
000005d0  0d 03 5c 0d 5b 4f 50 54  20 70 61 73 73 0d 03 66  |..\.[OPT pass..f|
000005e0  15 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |. STMFD R13!,{R1|
000005f0  34 7d 0d 03 70 13 20 53  54 52 20 20 52 30 2c 78  |4}..p. STR  R0,x|
00000600  61 6e 67 6c 65 0d 03 7a  13 20 53 54 52 20 20 52  |angle..z. STR  R|
00000610  31 2c 79 61 6e 67 6c 65  0d 03 84 13 20 53 54 52  |1,yangle.... STR|
00000620  20 20 52 32 2c 7a 61 6e  67 6c 65 0d 03 8e 0e 20  |  R2,zangle.... |
00000630  42 4c 20 20 20 6d 6f 76  65 0d 03 98 0e 20 42 4c  |BL   move.... BL|
00000640  20 20 20 74 75 72 6e 0d  03 a2 16 20 42 4c 20 20  |   turn.... BL  |
00000650  20 70 6c 6f 74 5f 73 70  72 69 74 65 73 0d 03 ac  | plot_sprites...|
00000660  14 20 4c 44 4d 46 44 20  52 31 33 21 2c 7b 50 43  |. LDMFD R13!,{PC|
00000670  7d 0d 03 b6 04 0d 03 c0  09 2e 6d 6f 76 65 0d 03  |}.........move..|
00000680  ca 15 20 53 54 4d 46 44  20 52 31 33 21 2c 7b 52  |.. STMFD R13!,{R|
00000690  31 34 7d 0d 03 d4 11 20  4c 44 52 20 52 30 2c 64  |14}.... LDR R0,d|
000006a0  6f 74 74 79 0d 03 de 0f  20 4d 4f 56 20 52 31 2c  |otty.... MOV R1,|
000006b0  23 39 38 0d 03 e8 0c 2e  6d 6f 76 65 5f 69 74 0d  |#98.....move_it.|
000006c0  03 f2 15 20 4c 44 4d 49  41 20 52 30 2c 7b 52 32  |... LDMIA R0,{R2|
000006d0  2d 52 34 7d 0d 03 fc 12  20 41 44 44 20 52 33 2c  |-R4}.... ADD R3,|
000006e0  52 33 2c 23 31 32 0d 04  06 10 20 43 4d 50 20 52  |R3,#12.... CMP R|
000006f0  33 2c 23 36 34 30 0d 04  10 12 20 4d 56 4e 47 45  |3,#640.... MVNGE|
00000700  20 52 33 2c 23 36 34 30  0d 04 1a 16 20 53 54 4d  | R3,#640.... STM|
00000710  49 41 20 52 30 21 2c 7b  52 32 2d 52 34 7d 0d 04  |IA R0!,{R2-R4}..|
00000720  24 13 20 53 55 42 20 20  20 52 31 2c 52 31 2c 23  |$. SUB   R1,R1,#|
00000730  31 0d 04 2e 10 20 43 4d  50 20 20 20 52 31 2c 23  |1.... CMP   R1,#|
00000740  30 0d 04 38 12 20 42 4e  45 20 20 20 6d 6f 76 65  |0..8. BNE   move|
00000750  5f 69 74 0d 04 42 14 20  4c 44 4d 46 44 20 52 31  |_it..B. LDMFD R1|
00000760  33 21 2c 7b 50 43 7d 0d  04 4c 04 0d 04 56 09 2e  |3!,{PC}..L...V..|
00000770  74 75 72 6e 0d 04 60 15  20 53 54 4d 46 44 20 52  |turn..`. STMFD R|
00000780  31 33 21 2c 7b 52 31 34  7d 0d 04 6a 15 20 4c 44  |13!,{R14}..j. LD|
00000790  52 20 20 73 68 69 66 74  2c 73 74 6f 72 65 0d 04  |R  shift,store..|
000007a0  74 12 20 4d 4f 56 20 20  75 70 74 6f 2c 23 39 38  |t. MOV  upto,#98|
000007b0  0d 04 7e 16 20 53 55 42  20 20 75 70 74 6f 2c 75  |..~. SUB  upto,u|
000007c0  70 74 6f 2c 23 31 0d 04  88 12 20 4c 44 52 20 20  |pto,#1.... LDR  |
000007d0  52 36 2c 64 6f 74 74 79  0d 04 92 09 2e 6c 6f 6f  |R6,dotty.....loo|
000007e0  70 0d 04 9c 1a 20 4c 44  4d 49 41 20 52 36 21 2c  |p.... LDMIA R6!,|
000007f0  7b 78 6f 6c 64 2d 7a 6f  6c 64 7d 0d 04 a6 13 20  |{xold-zold}.... |
00000800  4c 44 52 20 20 52 30 2c  78 61 6e 67 6c 65 0d 04  |LDR  R0,xangle..|
00000810  b0 15 20 4c 44 52 20 20  72 73 69 6e 2c 73 69 6e  |.. LDR  rsin,sin|
00000820  74 61 62 0d 04 ba 15 20  4c 44 52 20 20 72 63 6f  |tab.... LDR  rco|
00000830  73 2c 63 6f 73 74 61 62  0d 04 c4 1e 20 4c 44 52  |s,costab.... LDR|
00000840  20 20 72 73 69 6e 2c 5b  72 73 69 6e 2c 52 30 2c  |  rsin,[rsin,R0,|
00000850  41 53 4c 23 32 5d 0d 04  ce 1e 20 4c 44 52 20 20  |ASL#2].... LDR  |
00000860  72 63 6f 73 2c 5b 72 63  6f 73 2c 52 30 2c 41 53  |rcos,[rcos,R0,AS|
00000870  4c 23 32 5d 0d 04 d8 12  20 42 4c 20 20 20 72 6f  |L#2].... BL   ro|
00000880  74 61 74 65 5f 78 0d 04  e2 13 20 4c 44 52 20 20  |tate_x.... LDR  |
00000890  52 30 2c 79 61 6e 67 6c  65 0d 04 ec 15 20 4c 44  |R0,yangle.... LD|
000008a0  52 20 20 72 73 69 6e 2c  73 69 6e 74 61 62 0d 04  |R  rsin,sintab..|
000008b0  f6 15 20 4c 44 52 20 20  72 63 6f 73 2c 63 6f 73  |.. LDR  rcos,cos|
000008c0  74 61 62 0d 05 00 1e 20  4c 44 52 20 20 72 73 69  |tab.... LDR  rsi|
000008d0  6e 2c 5b 72 73 69 6e 2c  52 30 2c 41 53 4c 23 32  |n,[rsin,R0,ASL#2|
000008e0  5d 0d 05 0a 1e 20 4c 44  52 20 20 72 63 6f 73 2c  |].... LDR  rcos,|
000008f0  5b 72 63 6f 73 2c 52 30  2c 41 53 4c 23 32 5d 0d  |[rcos,R0,ASL#2].|
00000900  05 14 12 20 42 4c 20 20  20 72 6f 74 61 74 65 5f  |... BL   rotate_|
00000910  79 0d 05 1e 13 20 4c 44  52 20 20 52 30 2c 7a 61  |y.... LDR  R0,za|
00000920  6e 67 6c 65 0d 05 28 15  20 4c 44 52 20 20 72 73  |ngle..(. LDR  rs|
00000930  69 6e 2c 73 69 6e 74 61  62 0d 05 32 15 20 4c 44  |in,sintab..2. LD|
00000940  52 20 20 72 63 6f 73 2c  63 6f 73 74 61 62 0d 05  |R  rcos,costab..|
00000950  3c 1e 20 4c 44 52 20 20  72 73 69 6e 2c 5b 72 73  |<. LDR  rsin,[rs|
00000960  69 6e 2c 52 30 2c 41 53  4c 23 32 5d 0d 05 46 1e  |in,R0,ASL#2]..F.|
00000970  20 4c 44 52 20 20 72 63  6f 73 2c 5b 72 63 6f 73  | LDR  rcos,[rcos|
00000980  2c 52 30 2c 41 53 4c 23  32 5d 0d 05 50 12 20 42  |,R0,ASL#2]..P. B|
00000990  4c 20 20 20 72 6f 74 61  74 65 5f 7a 0d 05 5a 10  |L   rotate_z..Z.|
000009a0  20 4d 4f 56 20 20 78 2c  78 6f 6c 64 0d 05 64 10  | MOV  x,xold..d.|
000009b0  20 4d 4f 56 20 20 79 2c  79 6f 6c 64 0d 05 6e 10  | MOV  y,yold..n.|
000009c0  20 4d 4f 56 20 20 7a 2c  7a 6f 6c 64 0d 05 78 1b  | MOV  z,zold..x.|
000009d0  20 53 54 4d 49 41 20 52  31 32 21 2c 7b 78 6f 6c  | STMIA R12!,{xol|
000009e0  64 2d 7a 6f 6c 64 7d 0d  05 82 17 20 53 55 42 53  |d-zold}.... SUBS|
000009f0  20 20 75 70 74 6f 2c 75  70 74 6f 2c 23 31 0d 05  |  upto,upto,#1..|
00000a00  8c 0e 20 42 43 53 20 20  6c 6f 6f 70 0d 05 96 14  |.. BCS  loop....|
00000a10  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 50 43 7d  | LDMFD R13!,{PC}|
00000a20  0d 05 a0 04 0d 05 aa 0d  2e 72 6f 74 61 74 65 5f  |.........rotate_|
00000a30  7a 0d 05 b4 15 20 53 54  4d 46 44 20 52 31 33 21  |z.... STMFD R13!|
00000a40  2c 7b 52 31 34 7d 0d 05  be 15 20 4d 55 4c 20 20  |,{R14}.... MUL  |
00000a50  78 2c 78 6f 6c 64 2c 72  63 6f 73 0d 05 c8 18 20  |x,xold,rcos.... |
00000a60  4d 55 4c 20 20 74 65 6d  70 2c 79 6f 6c 64 2c 72  |MUL  temp,yold,r|
00000a70  73 69 6e 0d 05 d2 12 20  53 55 42 20 20 78 2c 78  |sin.... SUB  x,x|
00000a80  2c 74 65 6d 70 0d 05 dc  15 20 4d 55 4c 20 20 79  |,temp.... MUL  y|
00000a90  2c 78 6f 6c 64 2c 72 73  69 6e 0d 05 e6 18 20 4d  |,xold,rsin.... M|
00000aa0  55 4c 20 20 74 65 6d 70  2c 79 6f 6c 64 2c 72 63  |UL  temp,yold,rc|
00000ab0  6f 73 0d 05 f0 12 20 41  44 44 20 20 79 2c 79 2c  |os.... ADD  y,y,|
00000ac0  74 65 6d 70 0d 05 fa 17  20 4d 4f 56 20 20 78 6f  |temp.... MOV  xo|
00000ad0  6c 64 2c 78 2c 41 53 52  23 31 36 0d 06 04 17 20  |ld,x,ASR#16.... |
00000ae0  4d 4f 56 20 20 79 6f 6c  64 2c 79 2c 41 53 52 23  |MOV  yold,y,ASR#|
00000af0  31 36 0d 06 0e 14 20 4c  44 4d 46 44 20 52 31 33  |16.... LDMFD R13|
00000b00  21 2c 7b 50 43 7d 0d 06  18 04 0d 06 22 0d 2e 72  |!,{PC}......"..r|
00000b10  6f 74 61 74 65 5f 78 0d  06 2c 15 20 53 54 4d 46  |otate_x..,. STMF|
00000b20  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 06 36 15  |D R13!,{R14}..6.|
00000b30  20 4d 55 4c 20 20 79 2c  79 6f 6c 64 2c 72 63 6f  | MUL  y,yold,rco|
00000b40  73 0d 06 40 18 20 4d 55  4c 20 20 74 65 6d 70 2c  |s..@. MUL  temp,|
00000b50  7a 6f 6c 64 2c 72 73 69  6e 0d 06 4a 12 20 53 55  |zold,rsin..J. SU|
00000b60  42 20 20 79 2c 79 2c 74  65 6d 70 0d 06 54 15 20  |B  y,y,temp..T. |
00000b70  4d 55 4c 20 20 7a 2c 79  6f 6c 64 2c 72 73 69 6e  |MUL  z,yold,rsin|
00000b80  0d 06 5e 18 20 4d 55 4c  20 20 74 65 6d 70 2c 7a  |..^. MUL  temp,z|
00000b90  6f 6c 64 2c 72 63 6f 73  0d 06 68 12 20 41 44 44  |old,rcos..h. ADD|
00000ba0  20 20 7a 2c 7a 2c 74 65  6d 70 0d 06 72 17 20 4d  |  z,z,temp..r. M|
00000bb0  4f 56 20 20 79 6f 6c 64  2c 79 2c 41 53 52 23 31  |OV  yold,y,ASR#1|
00000bc0  36 0d 06 7c 17 20 4d 4f  56 20 20 7a 6f 6c 64 2c  |6..|. MOV  zold,|
00000bd0  7a 2c 41 53 52 23 31 36  0d 06 86 14 20 4c 44 4d  |z,ASR#16.... LDM|
00000be0  46 44 20 52 31 33 21 2c  7b 50 43 7d 0d 06 90 04  |FD R13!,{PC}....|
00000bf0  0d 06 9a 0d 2e 72 6f 74  61 74 65 5f 79 0d 06 a4  |.....rotate_y...|
00000c00  15 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |. STMFD R13!,{R1|
00000c10  34 7d 0d 06 ae 15 20 4d  55 4c 20 20 78 2c 78 6f  |4}.... MUL  x,xo|
00000c20  6c 64 2c 72 63 6f 73 0d  06 b8 18 20 4d 55 4c 20  |ld,rcos.... MUL |
00000c30  20 74 65 6d 70 2c 7a 6f  6c 64 2c 72 73 69 6e 0d  | temp,zold,rsin.|
00000c40  06 c2 12 20 53 55 42 20  20 78 2c 78 2c 74 65 6d  |... SUB  x,x,tem|
00000c50  70 0d 06 cc 15 20 4d 55  4c 20 20 7a 2c 78 6f 6c  |p.... MUL  z,xol|
00000c60  64 2c 72 73 69 6e 0d 06  d6 18 20 4d 55 4c 20 20  |d,rsin.... MUL  |
00000c70  74 65 6d 70 2c 7a 6f 6c  64 2c 72 63 6f 73 0d 06  |temp,zold,rcos..|
00000c80  e0 12 20 41 44 44 20 20  7a 2c 7a 2c 74 65 6d 70  |.. ADD  z,z,temp|
00000c90  0d 06 ea 17 20 4d 4f 56  20 20 78 6f 6c 64 2c 78  |.... MOV  xold,x|
00000ca0  2c 41 53 52 23 31 36 0d  06 f4 17 20 4d 4f 56 20  |,ASR#16.... MOV |
00000cb0  20 7a 6f 6c 64 2c 7a 2c  41 53 52 23 31 36 0d 06  | zold,z,ASR#16..|
00000cc0  fe 14 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 50  |.. LDMFD R13!,{P|
00000cd0  43 7d 0d 07 08 04 0d 07  12 11 2e 70 6c 6f 74 5f  |C}.........plot_|
00000ce0  73 70 72 69 74 65 73 0d  07 1c 15 20 53 54 4d 46  |sprites.... STMF|
00000cf0  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 07 26 1a  |D R13!,{R14}..&.|
00000d00  20 4c 44 52 20 73 63 6f  64 65 2c 73 70 72 69 74  | LDR scode,sprit|
00000d10  65 5f 70 6c 6f 74 0d 07  30 1a 20 4c 44 52 20 73  |e_plot..0. LDR s|
00000d20  61 72 65 61 2c 73 70 72  69 74 65 5f 61 72 65 61  |area,sprite_area|
00000d30  0d 07 3a 1a 20 4c 44 52  20 73 6e 61 6d 65 2c 73  |..:. LDR sname,s|
00000d40  70 72 69 74 65 5f 6e 61  6d 65 0d 07 44 13 20 4d  |prite_name..D. M|
00000d50  4f 56 20 73 63 6f 75 6e  74 2c 23 39 38 0d 07 4e  |OV scount,#98..N|
00000d60  15 20 4c 44 52 20 73 74  61 62 6c 65 2c 73 74 6f  |. LDR stable,sto|
00000d70  72 65 0d 07 58 15 20 4c  44 52 20 70 74 61 62 6c  |re..X. LDR ptabl|
00000d80  65 2c 74 61 62 6c 65 0d  07 62 0e 2e 70 6c 6f 74  |e,table..b..plot|
00000d90  5f 6c 6f 6f 70 0d 07 6c  18 20 41 44 52 20 73 69  |_loop..l. ADR si|
00000da0  7a 65 5f 73 74 6f 72 65  2c 6d 75 6c 74 0d 07 76  |ze_store,mult..v|
00000db0  19 20 4c 44 4d 49 41 20  52 39 21 2c 7b 73 78 2c  |. LDMIA R9!,{sx,|
00000dc0  73 79 2c 73 7a 7d 0d 07  80 13 20 41 44 44 20 73  |sy,sz}.... ADD s|
00000dd0  7a 2c 73 7a 2c 23 36 34  30 0d 07 8a 0e 20 43 4d  |z,sz,#640.... CM|
00000de0  50 20 73 7a 2c 23 31 0d  07 94 12 20 42 4c 45 20  |P sz,#1.... BLE |
00000df0  64 6f 74 5f 72 61 6e 67  65 0d 07 9e 11 20 43 4d  |dot_range.... CM|
00000e00  50 20 73 7a 2c 23 34 30  39 36 0d 07 a8 12 20 42  |P sz,#4096.... B|
00000e10  47 45 20 64 6f 74 5f 72  61 6e 67 65 0d 07 b2 10  |GE dot_range....|
00000e20  20 4d 4f 56 20 73 69 7a  65 2c 73 7a 0d 07 bc 20  | MOV size,sz... |
00000e30  20 4c 44 52 20 73 63 61  6c 65 2c 5b 70 74 61 62  | LDR scale,[ptab|
00000e40  6c 65 2c 73 7a 2c 41 53  4c 23 32 5d 0d 07 c6 14  |le,sz,ASL#2]....|
00000e50  20 4d 55 4c 20 73 78 2c  73 63 61 6c 65 2c 73 78  | MUL sx,scale,sx|
00000e60  0d 07 d0 14 20 4d 55 4c  20 73 79 2c 73 63 61 6c  |.... MUL sy,scal|
00000e70  65 2c 73 79 0d 07 da 15  20 4d 4f 56 20 73 78 2c  |e,sy.... MOV sx,|
00000e80  73 78 2c 41 53 52 23 31  32 0d 07 e4 15 20 4d 56  |sx,ASR#12.... MV|
00000e90  4e 20 73 79 2c 73 79 2c  41 53 52 23 31 32 0d 07  |N sy,sy,ASR#12..|
00000ea0  ee 13 20 41 44 44 20 73  78 2c 73 78 2c 23 36 34  |.. ADD sx,sx,#64|
00000eb0  30 0d 07 f8 13 20 41 44  44 20 73 79 2c 73 79 2c  |0.... ADD sy,sy,|
00000ec0  23 35 31 32 0d 08 02 19  20 4d 4f 56 20 73 69 7a  |#512.... MOV siz|
00000ed0  65 2c 73 63 61 6c 65 2c  41 53 52 23 31 0d 08 0c  |e,scale,ASR#1...|
00000ee0  10 20 53 54 52 20 52 36  2c 5b 52 37 5d 0d 08 16  |. STR R6,[R7]...|
00000ef0  13 20 53 54 52 20 52 36  2c 5b 52 37 2c 23 34 5d  |. STR R6,[R7,#4]|
00000f00  0d 08 20 0e 20 4d 4f 56  20 52 36 2c 52 37 0d 08  |.. . MOV R6,R7..|
00000f10  2a 0e 20 4d 4f 56 20 52  35 2c 23 38 0d 08 34 0e  |*. MOV R5,#8..4.|
00000f20  20 4d 4f 56 20 52 37 2c  23 30 0d 08 3e 0b 20 53  | MOV R7,#0..>. S|
00000f30  57 49 20 34 36 0d 08 48  0e 2e 64 6f 74 5f 72 61  |WI 46..H..dot_ra|
00000f40  6e 67 65 0d 08 52 19 20  53 55 42 20 73 63 6f 75  |nge..R. SUB scou|
00000f50  6e 74 2c 73 63 6f 75 6e  74 2c 23 31 0d 08 5c 12  |nt,scount,#1..\.|
00000f60  20 43 4d 50 20 73 63 6f  75 6e 74 2c 23 30 0d 08  | CMP scount,#0..|
00000f70  66 12 20 42 4e 45 20 70  6c 6f 74 5f 6c 6f 6f 70  |f. BNE plot_loop|
00000f80  0d 08 70 14 20 4c 44 4d  46 44 20 52 31 33 21 2c  |..p. LDMFD R13!,|
00000f90  7b 50 43 7d 0d 08 7a 04  0d 08 84 0a 2e 64 6f 74  |{PC}..z......dot|
00000fa0  74 79 0d 08 8e 0f 45 51  55 44 20 70 6f 69 6e 74  |ty....EQUD point|
00000fb0  25 0d 08 98 0b 2e 73 69  6e 74 61 62 0d 08 a2 0d  |%.....sintab....|
00000fc0  45 51 55 44 20 73 69 6e  25 0d 08 ac 0b 2e 63 6f  |EQUD sin%.....co|
00000fd0  73 74 61 62 0d 08 b6 0d  45 51 55 44 20 63 6f 73  |stab....EQUD cos|
00000fe0  25 0d 08 c0 0a 2e 74 61  62 6c 65 0d 08 ca 0f 45  |%.....table....E|
00000ff0  51 55 44 20 74 61 62 6c  65 25 0d 08 d4 0a 2e 73  |QUD table%.....s|
00001000  74 6f 72 65 0d 08 de 0f  45 51 55 44 20 73 74 6f  |tore....EQUD sto|
00001010  72 65 25 0d 08 e8 0b 2e  78 61 6e 67 6c 65 0d 08  |re%.....xangle..|
00001020  f2 0a 45 51 55 44 20 30  0d 08 fc 0b 2e 79 61 6e  |..EQUD 0.....yan|
00001030  67 6c 65 0d 09 06 0a 45  51 55 44 20 30 0d 09 10  |gle....EQUD 0...|
00001040  0b 2e 7a 61 6e 67 6c 65  0d 09 1a 0a 45 51 55 44  |..zangle....EQUD|
00001050  20 30 0d 09 24 10 2e 73  70 72 69 74 65 5f 70 6c  | 0..$..sprite_pl|
00001060  6f 74 0d 09 2e 1f 45 51  55 44 20 35 36 34 20 20  |ot....EQUD 564  |
00001070  20 20 20 20 3b 20 73 63  61 6c 65 64 20 70 6c 6f  |    ; scaled plo|
00001080  74 0d 09 38 21 3b 45 51  55 44 20 35 34 36 20 20  |t..8!;EQUD 546  |
00001090  20 20 20 3b 20 6f 72 64  69 6e 61 72 79 20 70 6c  |   ; ordinary pl|
000010a0  6f 74 0d 09 42 10 2e 73  70 72 69 74 65 5f 61 72  |ot..B..sprite_ar|
000010b0  65 61 0d 09 4c 0c 45 51  55 44 20 73 70 25 0d 09  |ea..L.EQUD sp%..|
000010c0  56 10 2e 73 70 72 69 74  65 5f 6e 61 6d 65 0d 09  |V..sprite_name..|
000010d0  60 0e 45 51 55 44 20 62  61 6c 6c 25 0d 09 6a 09  |`.EQUD ball%..j.|
000010e0  2e 6d 75 6c 74 0d 09 74  0c 45 51 55 44 20 32 30  |.mult..t.EQUD 20|
000010f0  30 0d 09 7e 0c 45 51 55  44 20 32 30 30 0d 09 88  |0..~.EQUD 200...|
00001100  0d 45 51 55 44 20 32 30  34 38 0d 09 92 0d 45 51  |.EQUD 2048....EQ|
00001110  55 44 20 32 30 34 38 0d  09 9c 05 5d 0d 09 a6 0a  |UD 2048....]....|
00001120  ed 20 70 61 73 73 0d 09  b0 05 e1 0d 09 ba 04 0d  |. pass..........|
00001130  09 c4 0f dd 20 f2 64 61  74 61 6c 69 73 74 0d 09  |.... .datalist..|
00001140  ce 35 dc 20 31 2c 30 2c  30 2c 31 2c 30 2c 31 2c  |.5. 1,0,0,1,0,1,|
00001150  31 2c 31 2c 30 2c 30 2c  31 2c 31 2c 31 2c 30 2c  |1,1,0,0,1,1,1,0,|
00001160  30 2c 31 2c 31 2c 31 2c  31 2c 30 2c 31 2c 30 2c  |0,1,1,1,1,0,1,0,|
00001170  30 2c 30 0d 09 d8 35 dc  20 31 2c 31 2c 30 2c 31  |0,0...5. 1,1,0,1|
00001180  2c 30 2c 30 2c 31 2c 30  2c 30 2c 31 2c 30 2c 30  |,0,0,1,0,0,1,0,0|
00001190  2c 30 2c 31 2c 30 2c 31  2c 30 2c 30 2c 30 2c 30  |,0,1,0,1,0,0,0,0|
000011a0  2c 31 2c 30 2c 30 2c 30  0d 09 e2 35 dc 20 31 2c  |,1,0,0,0...5. 1,|
000011b0  31 2c 31 2c 31 2c 30 2c  30 2c 31 2c 30 2c 30 2c  |1,1,1,0,0,1,0,0,|
000011c0  31 2c 30 2c 30 2c 30 2c  30 2c 30 2c 31 2c 31 2c  |1,0,0,0,0,0,1,1,|
000011d0  31 2c 30 2c 30 2c 31 2c  30 2c 30 2c 30 0d 09 ec  |1,0,0,1,0,0,0...|
000011e0  35 dc 20 31 2c 30 2c 31  2c 31 2c 30 2c 30 2c 31  |5. 1,0,1,1,0,0,1|
000011f0  2c 30 2c 30 2c 31 2c 30  2c 30 2c 31 2c 31 2c 30  |,0,0,1,0,0,1,1,0|
00001200  2c 31 2c 30 2c 30 2c 30  2c 30 2c 31 2c 30 2c 30  |,1,0,0,0,0,1,0,0|
00001210  2c 30 0d 09 f6 35 dc 20  31 2c 30 2c 30 2c 31 2c  |,0...5. 1,0,0,1,|
00001220  30 2c 31 2c 31 2c 31 2c  30 2c 30 2c 31 2c 31 2c  |0,1,1,1,0,0,1,1,|
00001230  31 2c 31 2c 30 2c 31 2c  31 2c 31 2c 31 2c 30 2c  |1,1,0,1,1,1,1,0,|
00001240  31 2c 31 2c 31 2c 31 0d  0a 00 05 e1 0d ff        |1,1,1,1.......|
0000124e