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

StarInfo/Stoner/!ItCouldBe/!RunImage

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/!RunImage
Read OK:
File size: 1C2A bytes
Load address: 0000
Exec address: 0000
File contents
   10ON ERROR *RUN <Space$Dir>.Spaceballs
   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%,"star1" TO ,,ball1%
  230SYS 46,280,sp%,"star2" TO ,,ball2%
  240SYS 46,280,sp%,"star3" TO ,,ball3%
  250SYS 46,280,sp%,"star4" TO ,,ball4%
  260REM sine and cosine plots shifted 4 places
  270p%=0
  280FOR a%=0 TO 719
  290sin%!p%=SIN RAD(a%/2)*(1<<16):cos%!p%=COS RAD(a%/2)*(1<<16)
  300p%+=4
  310NEXT a%
  320sin%!p%=SIN RAD(a%/2)*(1<<16):cos%!p%=COS RAD(a%/2)*(1<<16)
  330
  340p%=0
  350FOR x%=0 TO 800*12 STEP 4
  360point%!p%=0
  370p%+=4
  380NEXT x%
  390
  400REM PROCstars
  410PROChand
  420
  430p%=0
  440FOR c%=1 TO 4096
  450!(table%+p%)=(480/c%)*4096
  460p%+=4
  470NEXT c%
  480
  490ENDPROC
  500
  510
  520DEF PROCmain
  530TIME =0
  540A%=360:B%=360:C%=360
  550REPEAT
  560A%=INT(360*SIN RAD(-TIME/8)+360)
  570B%=INT(360*SIN RAD(-TIME/6)+360)
  580C%=INT(360*COS RAD(-TIME/7)+360)
  590SYS 6,112,s%:s%=s%EOR3:SYS6,113,s%:WAIT:CLS:CALL code
  600UNTIL FALSE
  610ENDPROC
  620
  630DEF PROCassemble
  640vdu= 0 :x= 1 :y= 2 :z= 3
  650rsin= 4 :rcos= 5 :dots= 6
  660xold= 7 :yold= 8 :zold = 9
  670temp = 10 :upto= 11 :shift= 12
  680scode=0
  690sarea=1
  700sname=2
  710sx=3 :sy=4 :sz=5
  720mode=5
  730size=6
  740size_store=7
  750scount=8
  760stable=9
  770ptable=10
  780scale=11
  790
  800plot = &45 : REM Vdu code for point
  810
  820FOR pass = 0 TO 2 STEP 2
  830P%=code:PRINT P%
  840[OPT pass
  850 STMFD R13!,{R14}
  860 STR  R0,xangle
  870 STR  R1,yangle
  880 STR  R2,zangle
  890 BL   move
  900 BL   turn
  910; BL   trail
  920 BL   plot_sprites
  930 LDMFD R13!,{PC}
  940
  950.move
  960 STMFD R13!,{R14}
  970 LDR R0,dotty
  980 LDR R1,dots
  990.move_it
 1000 LDMIA R0,{R2-R4}
 1010 ADD R3,R3,#20
 1020 CMP R3,#1280
 1030 MVNGE R3,#1280
 1040 STMIA R0!,{R2-R4}
 1050 SUB   R1,R1,#1
 1060 CMP   R1,#0
 1070 BNE   move_it
 1080 LDMFD R13!,{PC}
 1090
 1100.turn
 1110 STMFD R13!,{R14}
 1120 LDR  shift,store
 1130 LDR  upto,dots            ; init counter
 1140 SUB  upto,upto,#1
 1150 LDR  R6,dotty            ; init points reg.
 1160 LDR  R0,xangle
 1170 LDR  rsin,sintab
 1180 LDR  rcos,costab         ; init sin & cos tables
 1190 LDR  rsin,[rsin,R0,ASL#2]      ; load R0 degrees into rsin
 1200 LDR  rcos,[rcos,R0,ASL#2]      ; ditto
 1210.xloop
 1220 LDMIA R6!,{xold-zold}    ; load xyz triple
 1230 BL   rotate_x
 1240 STMIA R12!,{xold-zold}
 1250 SUBS upto,upto,#1
 1260 BCS  xloop
 1270 LDR  upto,dots
 1280 LDR  shift,store
 1290 LDR  R0,yangle
 1300 LDR  rsin,sintab
 1310 LDR  rcos,costab           ; init sin & cos tables
 1320 LDR  rsin,[rsin,R0,ASL#2]      ; load R0 degrees into rsin
 1330 LDR  rcos,[rcos,R0,ASL#2]      ; ditto
 1340.yloop
 1350 LDMIA R12,{xold-zold}
 1360 BL   rotate_y
 1370 STMIA R12!,{xold-zold}
 1380 SUBS upto,upto,#1
 1390 BCS  yloop
 1400 LDR  upto,dots
 1410 LDR  shift,store
 1420 LDR  R0,zangle
 1430 LDR  rsin,sintab
 1440 LDR  rcos,costab           ; init sin & cos tables
 1450 LDR  rsin,[rsin,R0,ASL#2]      ; load R0 degrees into rsin
 1460 LDR  rcos,[rcos,R0,ASL#2]      ; ditto
 1470.zloop
 1480 LDMIA R12,{xold-zold}
 1490 BL   rotate_y
 1500 STMIA R12!,{xold-zold}
 1510 SUBS upto,upto,#1
 1520 BCS  zloop
 1530 LDMFD R13!,{PC}
 1540
 1550.rotate_z
 1560 STMFD R13!,{R14}
 1570 MUL  x,xold,rcos        ; x=xold*rcos
 1580 MUL  temp,yold,rsin     ; t=yold*rsin
 1590 SUB  x,x,temp           ; x=x-t
 1600 MUL  y,xold,rsin        ; y=xold*rsin
 1610 MUL  temp,yold,rcos     ; t=yold*rcos
 1620 ADD  y,y,temp           ; y=y+t
 1630 MOV  xold,x,ASR#16
 1640 MOV  yold,y,ASR#16
 1650 LDMFD R13!,{PC}
 1660
 1670.rotate_x
 1680 STMFD R13!,{R14}
 1690 MUL  y,yold,rcos
 1700 MUL  temp,zold,rsin
 1710 SUB  y,y,temp
 1720 MUL  z,yold,rsin
 1730 MUL  temp,zold,rcos
 1740 ADD  z,z,temp
 1750 MOV  yold,y,ASR#16
 1760 MOV  zold,z,ASR#16
 1770 LDMFD R13!,{PC}
 1780
 1790.rotate_y
 1800 STMFD R13!,{R14}
 1810 MUL  x,xold,rcos
 1820 MUL  temp,zold,rsin
 1830 SUB  x,x,temp
 1840 MUL  z,xold,rsin
 1850 MUL  temp,zold,rcos
 1860 ADD  z,z,temp
 1870 MOV  xold,x,ASR#16
 1880 MOV  zold,z,ASR#16
 1890 LDMFD R13!,{PC}
 1900
 1910.plot_sprites
 1920 STMFD R13!,{R14}
 1930 LDR scode,sprite_plot
 1940 LDR sarea,sprite_area
 1950 LDR sname,sprite_name
 1960 LDR scount,dots
 1970 LDR stable,store
 1980 LDR ptable,table
 1990.plot_loop
 2000 ADR size_store,mult
 2010 LDMIA R9!,{sx,sy,sz}
 2020 ADD sz,sz,#640
 2030 CMP sz,#1
 2040 BLE dot_range
 2050 CMP sz,#4096
 2060 BGE dot_range
 2070 MOV size,sz
 2080 LDR scale,[ptable,sz,ASL#2]
 2090 MUL sx,scale,sx
 2100 MUL sy,scale,sy
 2110 MOV sx,sx,ASR#12
 2120 MVN sy,sy,ASR#12
 2130 ADD sx,sx,#640
 2140 ADD sy,sy,#512
 2150 LDR sz,twinkle
 2160 ADD sz,sz,#4
 2170 CMP sz,#16
 2180 MOVGE sz,#0
 2190 STR sz,twinkle
 2200 ADR sname,sprite_name
 2210 ADD sz,sz,sname
 2220 LDR sname,[sz]
 2230 MOV size,scale,ASR#1
 2240 STR R6,[R7]
 2250 STR R6,[R7,#4]
 2260 MOV R6,R7
 2270 MOV R5,#8
 2280 MOV R7,#0
 2290 SWI 46
 2300.dot_range
 2310 SUB scount,scount,#1
 2320 CMP scount,#0
 2330 BNE plot_loop
 2340 LDMFD R13!,{PC}
 2350
 2360.trail
 2370 STMFD R13!,{R14}
 2380
 2390 LDMFD R13!,{PC}
 2400
 2410.dotty
 2420EQUD point%
 2430.dots
 2440EQUD bits%
 2450.dotntrail
 2460EQUD bits%+50
 2470.sintab
 2480EQUD sin%
 2490.costab
 2500EQUD cos%
 2510.table
 2520EQUD table%
 2530.store
 2540EQUD store%
 2550.xangle
 2560EQUD 0
 2570.yangle
 2580EQUD 0
 2590.zangle
 2600EQUD 0
 2610.sprite_plot
 2620EQUD 564      ; scaled plot
 2630;EQUD 546     ; ordinary plot
 2640.sprite_area
 2650EQUD sp%
 2660.sprite_name
 2670EQUD ball1%
 2680EQUD ball2%
 2690EQUD ball3%
 2700EQUD ball4%
 2710.twinkle
 2720EQUD 0
 2730.mult
 2740EQUD 200
 2750EQUD 200
 2760EQUD 2048
 2770EQUD 2048
 2780]
 2790NEXT pass
 2800ENDPROC
 2810
 2820DEF PROCstars
 2830p%=0
 2840FOR a%=0 TO 98
 2850 point%!p%=RND(1280)-640
 2860 point%!(p%+4)=RND(1280)-640
 2870 point%!(p%+8)=RND(1280)-640
 2880p%+=12
 2890NEXT a%
 2900ENDPROC
 2910
 2920DEF PROChand
 2930p%=0:bits%=0
 2940FOR a%=0 TO 92
 2950 READ x,y,z
 2960 x=x/8:y=y/8:z=z/8
 2970 point%!p%=x
 2980 point%!(p%+4)=y-256
 2990 point%!(p%+8)=z
 3000p%+=12:bits%+=1
 3010NEXT a%
 3020ENDPROC
 3030
 3040DATA -233,1751,239,247,1750,239,247,1607,-241,-233,1607,-209
 3050DATA -233,743,495,215,740,495,247,743,47,-233,743,47
 3060DATA -9,2039,-81,247,-305,495,-201,-273,495,-200,-225,47
 3070DATA 215,-270,49,215,-1281,239,-201,-1329,239,-202,-1169,-241
 3080DATA 215,-1185,-240,-9,1183,207,-9,207,303,-9,-753,143
 3090DATA 551,-1305,-785,983,-1273,-780,983,-1561,-1137,503,-1545,-1137
 3100DATA 983,-313,-1201,503,-489,-1203,503,-441,-1649,983,-438,-1617
 3110DATA 983,423,-689,500,420,-720,505,-155,-690,980,-150,-690
 3120DATA 985,-650,-205,500,-645,-210,1015,-649,-177,743,-170,-140
 3130DATA 745,-105,-1040,743,-1017,-1169,1305,-585,-20,1690,-585,-50
 3140DATA 1685,-25,-720,1305,-25,-785,1300,-405,-785,1685,-410,-785
 3150DATA 1690,-695,-1550,1320,-700,-1490,1315,-745,-1135,1685,-745,-1105
 3160DATA 1690,-1560,-1105,1320,-1560,-1200,1685,-1370,-820,1305,-1369,-850
 3170DATA 1845,-540,-240,2165,-535,-245,2165,-185,-755,1850,-185,-820
 3180DATA 1850,-715,-1395,2165,-710,-1390,2170,-1385,-1075,1850,-1385,-1105
 3190DATA 250,-1115,-497,230,-1110,-980,-170,-1355,-975,215,-1110,-980
 3200DATA -745,-330,-975,-730,-330,-500,-230,-280,-495,-200,-281,-945
 3210DATA -520,825,-945,25,650,-945,-40,645,-530,-490,825,-530
 3220DATA 40,890,-720,-330,250,-720,-235,-840,-720,1945,-1545,335
 3230DATA 1940,-1500,-820,90,-1595,-815,85,-1480,335,280,-3975,45
 3240DATA 1240,-3980,50,1235,-3945,-530,280,-3975,-530,1365,-2120,305
 3250DATA 470,-2105,305,565,-3275,175,1205,-3305,175,-9,-1930,-240
 3260DATA 90,-3465,-240,1495,-3420,-245,1975,-2075,-180,950,-2025,-785
 3270DATA 825,-3480,-625

#� � *RUN <Space$Dir>.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%,"star1" � ,,ball1%
�$ș 46,280,sp%,"star2" � ,,ball2%
�$ș 46,280,sp%,"star3" � ,,ball3%
�$ș 46,280,sp%,"star4" � ,,ball4%
,� 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
6� a%
@7sin%!p%=� �(a%/2)*(1<<16):cos%!p%=� �(a%/2)*(1<<16)
J
Tp%=0
^� x%=0 � 800*12 � 4
hpoint%!p%=0
r	p%+=4
|� x%
�
�� PROCstars
�	�hand
�
�p%=0
�� c%=1 � 4096
�!(table%+p%)=(480/c%)*4096
�	p%+=4
�� c%
�
��
�
�
� �main
� =0
A%=360:B%=360:C%=360
&�
0A%=�(360*� �(-�/8)+360)
:B%=�(360*� �(-�/6)+360)
DC%=�(360*� �(-�/7)+360)
N.ș 6,112,s%:s%=s%�3:ș6,113,s%:Ȗ:�:� code
X� �
b�
l
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

 %plot = &45 : � Vdu code for point
*
4� pass = 0 � 2 � 2
>P%=code:� P%
H
[OPT pass
R STMFD R13!,{R14}
\ STR  R0,xangle
f STR  R1,yangle
p STR  R2,zangle
z BL   move
� BL   turn
�; BL   trail
� BL   plot_sprites
� LDMFD R13!,{PC}
�
�	.move
� STMFD R13!,{R14}
� LDR R0,dotty
� LDR R1,dots
�.move_it
� LDMIA R0,{R2-R4}
� ADD R3,R3,#20
� CMP R3,#1280
 MVNGE R3,#1280
 STMIA R0!,{R2-R4}
 SUB   R1,R1,#1
$ CMP   R1,#0
. BNE   move_it
8 LDMFD R13!,{PC}
B
L	.turn
V STMFD R13!,{R14}
` LDR  shift,store
j- LDR  upto,dots            ; init counter
t SUB  upto,upto,#1
~0 LDR  R6,dotty            ; init points reg.
� LDR  R0,xangle
� LDR  rsin,sintab
�5 LDR  rcos,costab         ; init sin & cos tables
�? LDR  rsin,[rsin,R0,ASL#2]      ; load R0 degrees into rsin
�+ LDR  rcos,[rcos,R0,ASL#2]      ; ditto
�
.xloop
�/ LDMIA R6!,{xold-zold}    ; load xyz triple
� BL   rotate_x
� STMIA R12!,{xold-zold}
� SUBS upto,upto,#1
� BCS  xloop
� LDR  upto,dots
 LDR  shift,store

 LDR  R0,yangle
 LDR  rsin,sintab
7 LDR  rcos,costab           ; init sin & cos tables
(? LDR  rsin,[rsin,R0,ASL#2]      ; load R0 degrees into rsin
2+ LDR  rcos,[rcos,R0,ASL#2]      ; ditto
<
.yloop
F LDMIA R12,{xold-zold}
P BL   rotate_y
Z STMIA R12!,{xold-zold}
d SUBS upto,upto,#1
n BCS  yloop
x LDR  upto,dots
� LDR  shift,store
� LDR  R0,zangle
� LDR  rsin,sintab
�7 LDR  rcos,costab           ; init sin & cos tables
�? LDR  rsin,[rsin,R0,ASL#2]      ; load R0 degrees into rsin
�+ LDR  rcos,[rcos,R0,ASL#2]      ; ditto
�
.zloop
� LDMIA R12,{xold-zold}
� BL   rotate_y
� STMIA R12!,{xold-zold}
� SUBS upto,upto,#1
� BCS  zloop
� LDMFD R13!,{PC}


.rotate_z
 STMFD R13!,{R14}
"* MUL  x,xold,rcos        ; x=xold*rcos
,* MUL  temp,yold,rsin     ; t=yold*rsin
6$ SUB  x,x,temp           ; x=x-t
@* MUL  y,xold,rsin        ; y=xold*rsin
J* MUL  temp,yold,rcos     ; t=yold*rcos
T$ ADD  y,y,temp           ; y=y+t
^ MOV  xold,x,ASR#16
h MOV  yold,y,ASR#16
r LDMFD R13!,{PC}
|
�
.rotate_x
� STMFD R13!,{R14}
� MUL  y,yold,rcos
� MUL  temp,zold,rsin
� SUB  y,y,temp
� MUL  z,yold,rsin
� MUL  temp,zold,rcos
� ADD  z,z,temp
� 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
0 MUL  z,xold,rsin
: MUL  temp,zold,rcos
D ADD  z,z,temp
N MOV  xold,x,ASR#16
X MOV  zold,z,ASR#16
b LDMFD R13!,{PC}
l
v.plot_sprites
� STMFD R13!,{R14}
� LDR scode,sprite_plot
� LDR sarea,sprite_area
� LDR sname,sprite_name
� LDR scount,dots
� LDR stable,store
� LDR ptable,table
�.plot_loop
� ADR size_store,mult
� 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
4 MUL sy,scale,sy
> MOV sx,sx,ASR#12
H MVN sy,sy,ASR#12
R ADD sx,sx,#640
\ ADD sy,sy,#512
f LDR sz,twinkle
p ADD sz,sz,#4
z CMP sz,#16
� MOVGE sz,#0
� STR sz,twinkle
� ADR sname,sprite_name
� ADD sz,sz,sname
� LDR sname,[sz]
� MOV size,scale,ASR#1
� STR R6,[R7]
� STR R6,[R7,#4]
� MOV R6,R7
� MOV R5,#8
� MOV R7,#0
� SWI 46
�.dot_range
	 SUB scount,scount,#1
	 CMP scount,#0
	 BNE plot_loop
	$ LDMFD R13!,{PC}
	.
	8
.trail
	B STMFD R13!,{R14}
	L
	V LDMFD R13!,{PC}
	`
	j
.dotty
	tEQUD point%
	~	.dots
	�EQUD bits%
	�.dotntrail
	�EQUD bits%+50
	�.sintab
	�
EQUD sin%
	�.costab
	�
EQUD cos%
	�
.table
	�EQUD table%
	�
.store
	�EQUD store%
	�.xangle

EQUD 0

.yangle

EQUD 0
.zangle
(
EQUD 0
2.sprite_plot
<EQUD 564      ; scaled plot
F!;EQUD 546     ; ordinary plot
P.sprite_area
ZEQUD sp%
d.sprite_name
nEQUD ball1%
xEQUD ball2%
�EQUD ball3%
�EQUD ball4%
�.twinkle
�
EQUD 0
�	.mult
�EQUD 200
�EQUD 200
�
EQUD 2048
�
EQUD 2048
�]
�
� pass
��
�
� �stars
p%=0
� a%=0 � 98
" point%!p%=�(1280)-640
, point%!(p%+4)=�(1280)-640
6 point%!(p%+8)=�(1280)-640
@
p%+=12
J� a%
T�
^
h� �hand
rp%=0:bits%=0
|� a%=0 � 92
� � x,y,z
� x=x/8:y=y/8:z=z/8
� point%!p%=x
� point%!(p%+4)=y-256
� point%!(p%+8)=z
�p%+=12:bits%+=1
�� a%
��
�
�=� -233,1751,239,247,1750,239,247,1607,-241,-233,1607,-209
�5� -233,743,495,215,740,495,247,743,47,-233,743,47
�9� -9,2039,-81,247,-305,495,-201,-273,495,-200,-225,47
�>� 215,-270,49,215,-1281,239,-201,-1329,239,-202,-1169,-241
7� 215,-1185,-240,-9,1183,207,-9,207,303,-9,-753,143
C� 551,-1305,-785,983,-1273,-780,983,-1561,-1137,503,-1545,-1137
A� 983,-313,-1201,503,-489,-1203,503,-441,-1649,983,-438,-1617
&;� 983,423,-689,500,420,-720,505,-155,-690,980,-150,-690
0>� 985,-650,-205,500,-645,-210,1015,-649,-177,743,-170,-140
:@� 745,-105,-1040,743,-1017,-1169,1305,-585,-20,1690,-585,-50
D?� 1685,-25,-720,1305,-25,-785,1300,-405,-785,1685,-410,-785
NE� 1690,-695,-1550,1320,-700,-1490,1315,-745,-1135,1685,-745,-1105
XG� 1690,-1560,-1105,1320,-1560,-1200,1685,-1370,-820,1305,-1369,-850
bA� 1845,-540,-240,2165,-535,-245,2165,-185,-755,1850,-185,-820
lG� 1850,-715,-1395,2165,-710,-1390,2170,-1385,-1075,1850,-1385,-1105
vB� 250,-1115,-497,230,-1110,-980,-170,-1355,-975,215,-1110,-980
�A� -745,-330,-975,-730,-330,-500,-230,-280,-495,-200,-281,-945
�:� -520,825,-945,25,650,-945,-40,645,-530,-490,825,-530
�=� 40,890,-720,-330,250,-720,-235,-840,-720,1945,-1545,335
�=� 1940,-1500,-820,90,-1595,-815,85,-1480,335,280,-3975,45
�A� 1240,-3980,50,1235,-3945,-530,280,-3975,-530,1365,-2120,305
�>� 470,-2105,305,565,-3275,175,1205,-3305,175,-9,-1930,-240
�B� 90,-3465,-240,1495,-3420,-245,1975,-2075,-180,950,-2025,-785
�� 825,-3480,-625
�
00000000  0d 00 0a 23 ee 20 85 20  2a 52 55 4e 20 3c 53 70  |...#. . *RUN <Sp|
00000010  61 63 65 24 44 69 72 3e  2e 53 70 61 63 65 62 61  |ace$Dir>.Spaceba|
00000020  6c 6c 73 0d 00 14 24 f4  20 52 6f 74 61 74 65 20  |lls...$. Rotate |
00000030  32 44 20 70 6f 69 6e 74  73 20 69 6e 20 4d 43 20  |2D points in MC |
00000040  70 72 6f 67 72 61 6d 0d  00 1e 15 f4 20 55 73 69  |program..... Usi|
00000050  6e 67 20 2e 2e 2e 2e 20  44 6f 74 73 0d 00 28 16  |ng .... Dots..(.|
00000060  f4 20 62 79 20 4e 69 67  65 6c 20 53 74 6f 6e 65  |. by Nigel Stone|
00000070  72 2e 0d 00 32 04 0d 00  3c 09 f2 69 6e 69 74 0d  |r...2...<..init.|
00000080  00 46 0d f2 61 73 73 65  6d 62 6c 65 0d 00 50 09  |.F..assemble..P.|
00000090  f2 6d 61 69 6e 0d 00 5a  05 e0 0d 00 64 04 0d 00  |.main..Z....d...|
000000a0  6e 0b dd 20 f2 69 6e 69  74 0d 00 78 14 eb 20 31  |n.. .init..x.. 1|
000000b0  33 2b 31 32 38 3a 87 3a  e6 20 30 2c 32 0d 00 82  |3+128:.:. 0,2...|
000000c0  08 73 25 3d 31 0d 00 8c  1c 66 69 6c 65 24 3d 22  |.s%=1....file$="|
000000d0  3c 53 70 61 63 65 24 44  69 72 3e 2e 42 61 6c 6c  |<Space$Dir>.Ball|
000000e0  22 0d 00 96 1c c8 99 20  38 2c 35 2c 66 69 6c 65  |"...... 8,5,file|
000000f0  24 20 b8 20 2c 2c 2c 2c  73 6c 65 6e 25 0d 00 a0  |$ . ,,,,slen%...|
00000100  51 de 20 63 6f 64 65 20  32 30 30 30 2c 20 73 69  |Q. code 2000, si|
00000110  6e 25 20 32 39 30 30 20  2c 20 63 6f 73 25 20 32  |n% 2900 , cos% 2|
00000120  39 30 30 2c 20 70 6f 69  6e 74 25 20 38 30 30 2a  |900, point% 800*|
00000130  31 32 2c 74 61 62 6c 65  25 20 34 30 39 36 2a 34  |12,table% 4096*4|
00000140  2c 73 74 6f 72 65 25 20  38 30 30 2a 31 32 0d 00  |,store% 800*12..|
00000150  aa 04 0d 00 b4 12 f4 20  73 70 72 69 74 65 20 62  |....... sprite b|
00000160  69 74 73 2e 0d 00 be 14  de 20 73 70 25 20 73 6c  |its...... sp% sl|
00000170  65 6e 25 2b 31 30 32 34  0d 00 c8 13 21 73 70 25  |en%+1024....!sp%|
00000180  3d 73 6c 65 6e 25 2b 31  30 32 34 0d 00 d2 18 c8  |=slen%+1024.....|
00000190  99 20 38 2c 32 35 35 2c  66 69 6c 65 24 2c 73 70  |. 8,255,file$,sp|
000001a0  25 2b 34 0d 00 dc 24 c8  99 20 34 36 2c 32 38 30  |%+4...$.. 46,280|
000001b0  2c 73 70 25 2c 22 73 74  61 72 31 22 20 b8 20 2c  |,sp%,"star1" . ,|
000001c0  2c 62 61 6c 6c 31 25 0d  00 e6 24 c8 99 20 34 36  |,ball1%...$.. 46|
000001d0  2c 32 38 30 2c 73 70 25  2c 22 73 74 61 72 32 22  |,280,sp%,"star2"|
000001e0  20 b8 20 2c 2c 62 61 6c  6c 32 25 0d 00 f0 24 c8  | . ,,ball2%...$.|
000001f0  99 20 34 36 2c 32 38 30  2c 73 70 25 2c 22 73 74  |. 46,280,sp%,"st|
00000200  61 72 33 22 20 b8 20 2c  2c 62 61 6c 6c 33 25 0d  |ar3" . ,,ball3%.|
00000210  00 fa 24 c8 99 20 34 36  2c 32 38 30 2c 73 70 25  |..$.. 46,280,sp%|
00000220  2c 22 73 74 61 72 34 22  20 b8 20 2c 2c 62 61 6c  |,"star4" . ,,bal|
00000230  6c 34 25 0d 01 04 2c f4  20 73 69 6e 65 20 61 6e  |l4%...,. sine an|
00000240  64 20 63 6f 73 69 6e 65  20 70 6c 6f 74 73 20 73  |d cosine plots s|
00000250  68 69 66 74 65 64 20 34  20 70 6c 61 63 65 73 0d  |hifted 4 places.|
00000260  01 0e 08 70 25 3d 30 0d  01 18 10 e3 20 61 25 3d  |...p%=0..... a%=|
00000270  30 20 b8 20 37 31 39 0d  01 22 37 73 69 6e 25 21  |0 . 719.."7sin%!|
00000280  70 25 3d b5 20 b2 28 61  25 2f 32 29 2a 28 31 3c  |p%=. .(a%/2)*(1<|
00000290  3c 31 36 29 3a 63 6f 73  25 21 70 25 3d 9b 20 b2  |<16):cos%!p%=. .|
000002a0  28 61 25 2f 32 29 2a 28  31 3c 3c 31 36 29 0d 01  |(a%/2)*(1<<16)..|
000002b0  2c 09 70 25 2b 3d 34 0d  01 36 08 ed 20 61 25 0d  |,.p%+=4..6.. a%.|
000002c0  01 40 37 73 69 6e 25 21  70 25 3d b5 20 b2 28 61  |.@7sin%!p%=. .(a|
000002d0  25 2f 32 29 2a 28 31 3c  3c 31 36 29 3a 63 6f 73  |%/2)*(1<<16):cos|
000002e0  25 21 70 25 3d 9b 20 b2  28 61 25 2f 32 29 2a 28  |%!p%=. .(a%/2)*(|
000002f0  31 3c 3c 31 36 29 0d 01  4a 04 0d 01 54 08 70 25  |1<<16)..J...T.p%|
00000300  3d 30 0d 01 5e 17 e3 20  78 25 3d 30 20 b8 20 38  |=0..^.. x%=0 . 8|
00000310  30 30 2a 31 32 20 88 20  34 0d 01 68 0f 70 6f 69  |00*12 . 4..h.poi|
00000320  6e 74 25 21 70 25 3d 30  0d 01 72 09 70 25 2b 3d  |nt%!p%=0..r.p%+=|
00000330  34 0d 01 7c 08 ed 20 78  25 0d 01 86 04 0d 01 90  |4..|.. x%.......|
00000340  0f f4 20 50 52 4f 43 73  74 61 72 73 0d 01 9a 09  |.. PROCstars....|
00000350  f2 68 61 6e 64 0d 01 a4  04 0d 01 ae 08 70 25 3d  |.hand........p%=|
00000360  30 0d 01 b8 11 e3 20 63  25 3d 31 20 b8 20 34 30  |0..... c%=1 . 40|
00000370  39 36 0d 01 c2 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 cc 09 70 25 2b 3d  34 0d 01 d6 08 ed 20 63  |....p%+=4..... c|
000003a0  25 0d 01 e0 04 0d 01 ea  05 e1 0d 01 f4 04 0d 01  |%...............|
000003b0  fe 04 0d 02 08 0b dd 20  f2 6d 61 69 6e 0d 02 12  |....... .main...|
000003c0  08 d1 20 3d 30 0d 02 1c  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 26  |B%=360:C%=360..&|
000003e0  05 f5 0d 02 30 1b 41 25  3d a8 28 33 36 30 2a b5  |....0.A%=.(360*.|
000003f0  20 b2 28 2d 91 2f 38 29  2b 33 36 30 29 0d 02 3a  | .(-./8)+360)..:|
00000400  1b 42 25 3d a8 28 33 36  30 2a b5 20 b2 28 2d 91  |.B%=.(360*. .(-.|
00000410  2f 36 29 2b 33 36 30 29  0d 02 44 1b 43 25 3d a8  |/6)+360)..D.C%=.|
00000420  28 33 36 30 2a 9b 20 b2  28 2d 91 2f 37 29 2b 33  |(360*. .(-./7)+3|
00000430  36 30 29 0d 02 4e 2e c8  99 20 36 2c 31 31 32 2c  |60)..N... 6,112,|
00000440  73 25 3a 73 25 3d 73 25  82 33 3a c8 99 36 2c 31  |s%:s%=s%.3:..6,1|
00000450  31 33 2c 73 25 3a c8 96  3a db 3a d6 20 63 6f 64  |13,s%:..:.:. cod|
00000460  65 0d 02 58 07 fd 20 a3  0d 02 62 05 e1 0d 02 6c  |e..X.. ...b....l|
00000470  04 0d 02 76 0f dd 20 f2  61 73 73 65 6d 62 6c 65  |...v.. .assemble|
00000480  0d 02 80 1c 76 64 75 3d  20 30 20 3a 78 3d 20 31  |....vdu= 0 :x= 1|
00000490  20 3a 79 3d 20 32 20 3a  7a 3d 20 33 0d 02 8a 1d  | :y= 2 :z= 3....|
000004a0  72 73 69 6e 3d 20 34 20  3a 72 63 6f 73 3d 20 35  |rsin= 4 :rcos= 5|
000004b0  20 3a 64 6f 74 73 3d 20  36 0d 02 94 1e 78 6f 6c  | :dots= 6....xol|
000004c0  64 3d 20 37 20 3a 79 6f  6c 64 3d 20 38 20 3a 7a  |d= 7 :yold= 8 :z|
000004d0  6f 6c 64 20 3d 20 39 0d  02 9e 22 74 65 6d 70 20  |old = 9..."temp |
000004e0  3d 20 31 30 20 3a 75 70  74 6f 3d 20 31 31 20 3a  |= 10 :upto= 11 :|
000004f0  73 68 69 66 74 3d 20 31  32 0d 02 a8 0b 73 63 6f  |shift= 12....sco|
00000500  64 65 3d 30 0d 02 b2 0b  73 61 72 65 61 3d 31 0d  |de=0....sarea=1.|
00000510  02 bc 0b 73 6e 61 6d 65  3d 32 0d 02 c6 14 73 78  |...sname=2....sx|
00000520  3d 33 20 3a 73 79 3d 34  20 3a 73 7a 3d 35 0d 02  |=3 :sy=4 :sz=5..|
00000530  d0 0a 6d 6f 64 65 3d 35  0d 02 da 0a 73 69 7a 65  |..mode=5....size|
00000540  3d 36 0d 02 e4 10 73 69  7a 65 5f 73 74 6f 72 65  |=6....size_store|
00000550  3d 37 0d 02 ee 0c 73 63  6f 75 6e 74 3d 38 0d 02  |=7....scount=8..|
00000560  f8 0c 73 74 61 62 6c 65  3d 39 0d 03 02 0d 70 74  |..stable=9....pt|
00000570  61 62 6c 65 3d 31 30 0d  03 0c 0c 73 63 61 6c 65  |able=10....scale|
00000580  3d 31 31 0d 03 16 04 0d  03 20 25 70 6c 6f 74 20  |=11...... %plot |
00000590  3d 20 26 34 35 20 3a 20  f4 20 56 64 75 20 63 6f  |= &45 : . Vdu co|
000005a0  64 65 20 66 6f 72 20 70  6f 69 6e 74 0d 03 2a 04  |de for point..*.|
000005b0  0d 03 34 16 e3 20 70 61  73 73 20 3d 20 30 20 b8  |..4.. pass = 0 .|
000005c0  20 32 20 88 20 32 0d 03  3e 10 50 25 3d 63 6f 64  | 2 . 2..>.P%=cod|
000005d0  65 3a f1 20 50 25 0d 03  48 0d 5b 4f 50 54 20 70  |e:. P%..H.[OPT p|
000005e0  61 73 73 0d 03 52 15 20  53 54 4d 46 44 20 52 31  |ass..R. STMFD R1|
000005f0  33 21 2c 7b 52 31 34 7d  0d 03 5c 13 20 53 54 52  |3!,{R14}..\. STR|
00000600  20 20 52 30 2c 78 61 6e  67 6c 65 0d 03 66 13 20  |  R0,xangle..f. |
00000610  53 54 52 20 20 52 31 2c  79 61 6e 67 6c 65 0d 03  |STR  R1,yangle..|
00000620  70 13 20 53 54 52 20 20  52 32 2c 7a 61 6e 67 6c  |p. STR  R2,zangl|
00000630  65 0d 03 7a 0e 20 42 4c  20 20 20 6d 6f 76 65 0d  |e..z. BL   move.|
00000640  03 84 0e 20 42 4c 20 20  20 74 75 72 6e 0d 03 8e  |... BL   turn...|
00000650  10 3b 20 42 4c 20 20 20  74 72 61 69 6c 0d 03 98  |.; BL   trail...|
00000660  16 20 42 4c 20 20 20 70  6c 6f 74 5f 73 70 72 69  |. BL   plot_spri|
00000670  74 65 73 0d 03 a2 14 20  4c 44 4d 46 44 20 52 31  |tes.... LDMFD R1|
00000680  33 21 2c 7b 50 43 7d 0d  03 ac 04 0d 03 b6 09 2e  |3!,{PC}.........|
00000690  6d 6f 76 65 0d 03 c0 15  20 53 54 4d 46 44 20 52  |move.... STMFD R|
000006a0  31 33 21 2c 7b 52 31 34  7d 0d 03 ca 11 20 4c 44  |13!,{R14}.... LD|
000006b0  52 20 52 30 2c 64 6f 74  74 79 0d 03 d4 10 20 4c  |R R0,dotty.... L|
000006c0  44 52 20 52 31 2c 64 6f  74 73 0d 03 de 0c 2e 6d  |DR R1,dots.....m|
000006d0  6f 76 65 5f 69 74 0d 03  e8 15 20 4c 44 4d 49 41  |ove_it.... LDMIA|
000006e0  20 52 30 2c 7b 52 32 2d  52 34 7d 0d 03 f2 12 20  | R0,{R2-R4}.... |
000006f0  41 44 44 20 52 33 2c 52  33 2c 23 32 30 0d 03 fc  |ADD R3,R3,#20...|
00000700  11 20 43 4d 50 20 52 33  2c 23 31 32 38 30 0d 04  |. CMP R3,#1280..|
00000710  06 13 20 4d 56 4e 47 45  20 52 33 2c 23 31 32 38  |.. MVNGE R3,#128|
00000720  30 0d 04 10 16 20 53 54  4d 49 41 20 52 30 21 2c  |0.... STMIA R0!,|
00000730  7b 52 32 2d 52 34 7d 0d  04 1a 13 20 53 55 42 20  |{R2-R4}.... SUB |
00000740  20 20 52 31 2c 52 31 2c  23 31 0d 04 24 10 20 43  |  R1,R1,#1..$. C|
00000750  4d 50 20 20 20 52 31 2c  23 30 0d 04 2e 12 20 42  |MP   R1,#0.... B|
00000760  4e 45 20 20 20 6d 6f 76  65 5f 69 74 0d 04 38 14  |NE   move_it..8.|
00000770  20 4c 44 4d 46 44 20 52  31 33 21 2c 7b 50 43 7d  | LDMFD R13!,{PC}|
00000780  0d 04 42 04 0d 04 4c 09  2e 74 75 72 6e 0d 04 56  |..B...L..turn..V|
00000790  15 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |. STMFD R13!,{R1|
000007a0  34 7d 0d 04 60 15 20 4c  44 52 20 20 73 68 69 66  |4}..`. LDR  shif|
000007b0  74 2c 73 74 6f 72 65 0d  04 6a 2d 20 4c 44 52 20  |t,store..j- LDR |
000007c0  20 75 70 74 6f 2c 64 6f  74 73 20 20 20 20 20 20  | upto,dots      |
000007d0  20 20 20 20 20 20 3b 20  69 6e 69 74 20 63 6f 75  |      ; init cou|
000007e0  6e 74 65 72 0d 04 74 16  20 53 55 42 20 20 75 70  |nter..t. SUB  up|
000007f0  74 6f 2c 75 70 74 6f 2c  23 31 0d 04 7e 30 20 4c  |to,upto,#1..~0 L|
00000800  44 52 20 20 52 36 2c 64  6f 74 74 79 20 20 20 20  |DR  R6,dotty    |
00000810  20 20 20 20 20 20 20 20  3b 20 69 6e 69 74 20 70  |        ; init p|
00000820  6f 69 6e 74 73 20 72 65  67 2e 0d 04 88 13 20 4c  |oints reg..... L|
00000830  44 52 20 20 52 30 2c 78  61 6e 67 6c 65 0d 04 92  |DR  R0,xangle...|
00000840  15 20 4c 44 52 20 20 72  73 69 6e 2c 73 69 6e 74  |. LDR  rsin,sint|
00000850  61 62 0d 04 9c 35 20 4c  44 52 20 20 72 63 6f 73  |ab...5 LDR  rcos|
00000860  2c 63 6f 73 74 61 62 20  20 20 20 20 20 20 20 20  |,costab         |
00000870  3b 20 69 6e 69 74 20 73  69 6e 20 26 20 63 6f 73  |; init sin & cos|
00000880  20 74 61 62 6c 65 73 0d  04 a6 3f 20 4c 44 52 20  | tables...? LDR |
00000890  20 72 73 69 6e 2c 5b 72  73 69 6e 2c 52 30 2c 41  | rsin,[rsin,R0,A|
000008a0  53 4c 23 32 5d 20 20 20  20 20 20 3b 20 6c 6f 61  |SL#2]      ; loa|
000008b0  64 20 52 30 20 64 65 67  72 65 65 73 20 69 6e 74  |d R0 degrees int|
000008c0  6f 20 72 73 69 6e 0d 04  b0 2b 20 4c 44 52 20 20  |o rsin...+ LDR  |
000008d0  72 63 6f 73 2c 5b 72 63  6f 73 2c 52 30 2c 41 53  |rcos,[rcos,R0,AS|
000008e0  4c 23 32 5d 20 20 20 20  20 20 3b 20 64 69 74 74  |L#2]      ; ditt|
000008f0  6f 0d 04 ba 0a 2e 78 6c  6f 6f 70 0d 04 c4 2f 20  |o.....xloop.../ |
00000900  4c 44 4d 49 41 20 52 36  21 2c 7b 78 6f 6c 64 2d  |LDMIA R6!,{xold-|
00000910  7a 6f 6c 64 7d 20 20 20  20 3b 20 6c 6f 61 64 20  |zold}    ; load |
00000920  78 79 7a 20 74 72 69 70  6c 65 0d 04 ce 12 20 42  |xyz triple.... B|
00000930  4c 20 20 20 72 6f 74 61  74 65 5f 78 0d 04 d8 1b  |L   rotate_x....|
00000940  20 53 54 4d 49 41 20 52  31 32 21 2c 7b 78 6f 6c  | STMIA R12!,{xol|
00000950  64 2d 7a 6f 6c 64 7d 0d  04 e2 16 20 53 55 42 53  |d-zold}.... SUBS|
00000960  20 75 70 74 6f 2c 75 70  74 6f 2c 23 31 0d 04 ec  | upto,upto,#1...|
00000970  0f 20 42 43 53 20 20 78  6c 6f 6f 70 0d 04 f6 13  |. BCS  xloop....|
00000980  20 4c 44 52 20 20 75 70  74 6f 2c 64 6f 74 73 0d  | LDR  upto,dots.|
00000990  05 00 15 20 4c 44 52 20  20 73 68 69 66 74 2c 73  |... LDR  shift,s|
000009a0  74 6f 72 65 0d 05 0a 13  20 4c 44 52 20 20 52 30  |tore.... LDR  R0|
000009b0  2c 79 61 6e 67 6c 65 0d  05 14 15 20 4c 44 52 20  |,yangle.... LDR |
000009c0  20 72 73 69 6e 2c 73 69  6e 74 61 62 0d 05 1e 37  | rsin,sintab...7|
000009d0  20 4c 44 52 20 20 72 63  6f 73 2c 63 6f 73 74 61  | LDR  rcos,costa|
000009e0  62 20 20 20 20 20 20 20  20 20 20 20 3b 20 69 6e  |b           ; in|
000009f0  69 74 20 73 69 6e 20 26  20 63 6f 73 20 74 61 62  |it sin & cos tab|
00000a00  6c 65 73 0d 05 28 3f 20  4c 44 52 20 20 72 73 69  |les..(? LDR  rsi|
00000a10  6e 2c 5b 72 73 69 6e 2c  52 30 2c 41 53 4c 23 32  |n,[rsin,R0,ASL#2|
00000a20  5d 20 20 20 20 20 20 3b  20 6c 6f 61 64 20 52 30  |]      ; load R0|
00000a30  20 64 65 67 72 65 65 73  20 69 6e 74 6f 20 72 73  | degrees into rs|
00000a40  69 6e 0d 05 32 2b 20 4c  44 52 20 20 72 63 6f 73  |in..2+ LDR  rcos|
00000a50  2c 5b 72 63 6f 73 2c 52  30 2c 41 53 4c 23 32 5d  |,[rcos,R0,ASL#2]|
00000a60  20 20 20 20 20 20 3b 20  64 69 74 74 6f 0d 05 3c  |      ; ditto..<|
00000a70  0a 2e 79 6c 6f 6f 70 0d  05 46 1a 20 4c 44 4d 49  |..yloop..F. LDMI|
00000a80  41 20 52 31 32 2c 7b 78  6f 6c 64 2d 7a 6f 6c 64  |A R12,{xold-zold|
00000a90  7d 0d 05 50 12 20 42 4c  20 20 20 72 6f 74 61 74  |}..P. BL   rotat|
00000aa0  65 5f 79 0d 05 5a 1b 20  53 54 4d 49 41 20 52 31  |e_y..Z. STMIA R1|
00000ab0  32 21 2c 7b 78 6f 6c 64  2d 7a 6f 6c 64 7d 0d 05  |2!,{xold-zold}..|
00000ac0  64 16 20 53 55 42 53 20  75 70 74 6f 2c 75 70 74  |d. SUBS upto,upt|
00000ad0  6f 2c 23 31 0d 05 6e 0f  20 42 43 53 20 20 79 6c  |o,#1..n. BCS  yl|
00000ae0  6f 6f 70 0d 05 78 13 20  4c 44 52 20 20 75 70 74  |oop..x. LDR  upt|
00000af0  6f 2c 64 6f 74 73 0d 05  82 15 20 4c 44 52 20 20  |o,dots.... LDR  |
00000b00  73 68 69 66 74 2c 73 74  6f 72 65 0d 05 8c 13 20  |shift,store.... |
00000b10  4c 44 52 20 20 52 30 2c  7a 61 6e 67 6c 65 0d 05  |LDR  R0,zangle..|
00000b20  96 15 20 4c 44 52 20 20  72 73 69 6e 2c 73 69 6e  |.. LDR  rsin,sin|
00000b30  74 61 62 0d 05 a0 37 20  4c 44 52 20 20 72 63 6f  |tab...7 LDR  rco|
00000b40  73 2c 63 6f 73 74 61 62  20 20 20 20 20 20 20 20  |s,costab        |
00000b50  20 20 20 3b 20 69 6e 69  74 20 73 69 6e 20 26 20  |   ; init sin & |
00000b60  63 6f 73 20 74 61 62 6c  65 73 0d 05 aa 3f 20 4c  |cos tables...? L|
00000b70  44 52 20 20 72 73 69 6e  2c 5b 72 73 69 6e 2c 52  |DR  rsin,[rsin,R|
00000b80  30 2c 41 53 4c 23 32 5d  20 20 20 20 20 20 3b 20  |0,ASL#2]      ; |
00000b90  6c 6f 61 64 20 52 30 20  64 65 67 72 65 65 73 20  |load R0 degrees |
00000ba0  69 6e 74 6f 20 72 73 69  6e 0d 05 b4 2b 20 4c 44  |into rsin...+ LD|
00000bb0  52 20 20 72 63 6f 73 2c  5b 72 63 6f 73 2c 52 30  |R  rcos,[rcos,R0|
00000bc0  2c 41 53 4c 23 32 5d 20  20 20 20 20 20 3b 20 64  |,ASL#2]      ; d|
00000bd0  69 74 74 6f 0d 05 be 0a  2e 7a 6c 6f 6f 70 0d 05  |itto.....zloop..|
00000be0  c8 1a 20 4c 44 4d 49 41  20 52 31 32 2c 7b 78 6f  |.. LDMIA R12,{xo|
00000bf0  6c 64 2d 7a 6f 6c 64 7d  0d 05 d2 12 20 42 4c 20  |ld-zold}.... BL |
00000c00  20 20 72 6f 74 61 74 65  5f 79 0d 05 dc 1b 20 53  |  rotate_y.... S|
00000c10  54 4d 49 41 20 52 31 32  21 2c 7b 78 6f 6c 64 2d  |TMIA R12!,{xold-|
00000c20  7a 6f 6c 64 7d 0d 05 e6  16 20 53 55 42 53 20 75  |zold}.... SUBS u|
00000c30  70 74 6f 2c 75 70 74 6f  2c 23 31 0d 05 f0 0f 20  |pto,upto,#1.... |
00000c40  42 43 53 20 20 7a 6c 6f  6f 70 0d 05 fa 14 20 4c  |BCS  zloop.... L|
00000c50  44 4d 46 44 20 52 31 33  21 2c 7b 50 43 7d 0d 06  |DMFD R13!,{PC}..|
00000c60  04 04 0d 06 0e 0d 2e 72  6f 74 61 74 65 5f 7a 0d  |.......rotate_z.|
00000c70  06 18 15 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |... STMFD R13!,{|
00000c80  52 31 34 7d 0d 06 22 2a  20 4d 55 4c 20 20 78 2c  |R14}.."* MUL  x,|
00000c90  78 6f 6c 64 2c 72 63 6f  73 20 20 20 20 20 20 20  |xold,rcos       |
00000ca0  20 3b 20 78 3d 78 6f 6c  64 2a 72 63 6f 73 0d 06  | ; x=xold*rcos..|
00000cb0  2c 2a 20 4d 55 4c 20 20  74 65 6d 70 2c 79 6f 6c  |,* MUL  temp,yol|
00000cc0  64 2c 72 73 69 6e 20 20  20 20 20 3b 20 74 3d 79  |d,rsin     ; t=y|
00000cd0  6f 6c 64 2a 72 73 69 6e  0d 06 36 24 20 53 55 42  |old*rsin..6$ SUB|
00000ce0  20 20 78 2c 78 2c 74 65  6d 70 20 20 20 20 20 20  |  x,x,temp      |
00000cf0  20 20 20 20 20 3b 20 78  3d 78 2d 74 0d 06 40 2a  |     ; x=x-t..@*|
00000d00  20 4d 55 4c 20 20 79 2c  78 6f 6c 64 2c 72 73 69  | MUL  y,xold,rsi|
00000d10  6e 20 20 20 20 20 20 20  20 3b 20 79 3d 78 6f 6c  |n        ; y=xol|
00000d20  64 2a 72 73 69 6e 0d 06  4a 2a 20 4d 55 4c 20 20  |d*rsin..J* MUL  |
00000d30  74 65 6d 70 2c 79 6f 6c  64 2c 72 63 6f 73 20 20  |temp,yold,rcos  |
00000d40  20 20 20 3b 20 74 3d 79  6f 6c 64 2a 72 63 6f 73  |   ; t=yold*rcos|
00000d50  0d 06 54 24 20 41 44 44  20 20 79 2c 79 2c 74 65  |..T$ ADD  y,y,te|
00000d60  6d 70 20 20 20 20 20 20  20 20 20 20 20 3b 20 79  |mp           ; y|
00000d70  3d 79 2b 74 0d 06 5e 17  20 4d 4f 56 20 20 78 6f  |=y+t..^. MOV  xo|
00000d80  6c 64 2c 78 2c 41 53 52  23 31 36 0d 06 68 17 20  |ld,x,ASR#16..h. |
00000d90  4d 4f 56 20 20 79 6f 6c  64 2c 79 2c 41 53 52 23  |MOV  yold,y,ASR#|
00000da0  31 36 0d 06 72 14 20 4c  44 4d 46 44 20 52 31 33  |16..r. LDMFD R13|
00000db0  21 2c 7b 50 43 7d 0d 06  7c 04 0d 06 86 0d 2e 72  |!,{PC}..|......r|
00000dc0  6f 74 61 74 65 5f 78 0d  06 90 15 20 53 54 4d 46  |otate_x.... STMF|
00000dd0  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 06 9a 15  |D R13!,{R14}....|
00000de0  20 4d 55 4c 20 20 79 2c  79 6f 6c 64 2c 72 63 6f  | MUL  y,yold,rco|
00000df0  73 0d 06 a4 18 20 4d 55  4c 20 20 74 65 6d 70 2c  |s.... MUL  temp,|
00000e00  7a 6f 6c 64 2c 72 73 69  6e 0d 06 ae 12 20 53 55  |zold,rsin.... SU|
00000e10  42 20 20 79 2c 79 2c 74  65 6d 70 0d 06 b8 15 20  |B  y,y,temp.... |
00000e20  4d 55 4c 20 20 7a 2c 79  6f 6c 64 2c 72 73 69 6e  |MUL  z,yold,rsin|
00000e30  0d 06 c2 18 20 4d 55 4c  20 20 74 65 6d 70 2c 7a  |.... MUL  temp,z|
00000e40  6f 6c 64 2c 72 63 6f 73  0d 06 cc 12 20 41 44 44  |old,rcos.... ADD|
00000e50  20 20 7a 2c 7a 2c 74 65  6d 70 0d 06 d6 17 20 4d  |  z,z,temp.... M|
00000e60  4f 56 20 20 79 6f 6c 64  2c 79 2c 41 53 52 23 31  |OV  yold,y,ASR#1|
00000e70  36 0d 06 e0 17 20 4d 4f  56 20 20 7a 6f 6c 64 2c  |6.... MOV  zold,|
00000e80  7a 2c 41 53 52 23 31 36  0d 06 ea 14 20 4c 44 4d  |z,ASR#16.... LDM|
00000e90  46 44 20 52 31 33 21 2c  7b 50 43 7d 0d 06 f4 04  |FD R13!,{PC}....|
00000ea0  0d 06 fe 0d 2e 72 6f 74  61 74 65 5f 79 0d 07 08  |.....rotate_y...|
00000eb0  15 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |. STMFD R13!,{R1|
00000ec0  34 7d 0d 07 12 15 20 4d  55 4c 20 20 78 2c 78 6f  |4}.... MUL  x,xo|
00000ed0  6c 64 2c 72 63 6f 73 0d  07 1c 18 20 4d 55 4c 20  |ld,rcos.... MUL |
00000ee0  20 74 65 6d 70 2c 7a 6f  6c 64 2c 72 73 69 6e 0d  | temp,zold,rsin.|
00000ef0  07 26 12 20 53 55 42 20  20 78 2c 78 2c 74 65 6d  |.&. SUB  x,x,tem|
00000f00  70 0d 07 30 15 20 4d 55  4c 20 20 7a 2c 78 6f 6c  |p..0. MUL  z,xol|
00000f10  64 2c 72 73 69 6e 0d 07  3a 18 20 4d 55 4c 20 20  |d,rsin..:. MUL  |
00000f20  74 65 6d 70 2c 7a 6f 6c  64 2c 72 63 6f 73 0d 07  |temp,zold,rcos..|
00000f30  44 12 20 41 44 44 20 20  7a 2c 7a 2c 74 65 6d 70  |D. ADD  z,z,temp|
00000f40  0d 07 4e 17 20 4d 4f 56  20 20 78 6f 6c 64 2c 78  |..N. MOV  xold,x|
00000f50  2c 41 53 52 23 31 36 0d  07 58 17 20 4d 4f 56 20  |,ASR#16..X. MOV |
00000f60  20 7a 6f 6c 64 2c 7a 2c  41 53 52 23 31 36 0d 07  | zold,z,ASR#16..|
00000f70  62 14 20 4c 44 4d 46 44  20 52 31 33 21 2c 7b 50  |b. LDMFD R13!,{P|
00000f80  43 7d 0d 07 6c 04 0d 07  76 11 2e 70 6c 6f 74 5f  |C}..l...v..plot_|
00000f90  73 70 72 69 74 65 73 0d  07 80 15 20 53 54 4d 46  |sprites.... STMF|
00000fa0  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 07 8a 1a  |D R13!,{R14}....|
00000fb0  20 4c 44 52 20 73 63 6f  64 65 2c 73 70 72 69 74  | LDR scode,sprit|
00000fc0  65 5f 70 6c 6f 74 0d 07  94 1a 20 4c 44 52 20 73  |e_plot.... LDR s|
00000fd0  61 72 65 61 2c 73 70 72  69 74 65 5f 61 72 65 61  |area,sprite_area|
00000fe0  0d 07 9e 1a 20 4c 44 52  20 73 6e 61 6d 65 2c 73  |.... LDR sname,s|
00000ff0  70 72 69 74 65 5f 6e 61  6d 65 0d 07 a8 14 20 4c  |prite_name.... L|
00001000  44 52 20 73 63 6f 75 6e  74 2c 64 6f 74 73 0d 07  |DR scount,dots..|
00001010  b2 15 20 4c 44 52 20 73  74 61 62 6c 65 2c 73 74  |.. LDR stable,st|
00001020  6f 72 65 0d 07 bc 15 20  4c 44 52 20 70 74 61 62  |ore.... LDR ptab|
00001030  6c 65 2c 74 61 62 6c 65  0d 07 c6 0e 2e 70 6c 6f  |le,table.....plo|
00001040  74 5f 6c 6f 6f 70 0d 07  d0 18 20 41 44 52 20 73  |t_loop.... ADR s|
00001050  69 7a 65 5f 73 74 6f 72  65 2c 6d 75 6c 74 0d 07  |ize_store,mult..|
00001060  da 19 20 4c 44 4d 49 41  20 52 39 21 2c 7b 73 78  |.. LDMIA R9!,{sx|
00001070  2c 73 79 2c 73 7a 7d 0d  07 e4 13 20 41 44 44 20  |,sy,sz}.... ADD |
00001080  73 7a 2c 73 7a 2c 23 36  34 30 0d 07 ee 0e 20 43  |sz,sz,#640.... C|
00001090  4d 50 20 73 7a 2c 23 31  0d 07 f8 12 20 42 4c 45  |MP sz,#1.... BLE|
000010a0  20 64 6f 74 5f 72 61 6e  67 65 0d 08 02 11 20 43  | dot_range.... C|
000010b0  4d 50 20 73 7a 2c 23 34  30 39 36 0d 08 0c 12 20  |MP sz,#4096.... |
000010c0  42 47 45 20 64 6f 74 5f  72 61 6e 67 65 0d 08 16  |BGE dot_range...|
000010d0  10 20 4d 4f 56 20 73 69  7a 65 2c 73 7a 0d 08 20  |. MOV size,sz.. |
000010e0  20 20 4c 44 52 20 73 63  61 6c 65 2c 5b 70 74 61  |  LDR scale,[pta|
000010f0  62 6c 65 2c 73 7a 2c 41  53 4c 23 32 5d 0d 08 2a  |ble,sz,ASL#2]..*|
00001100  14 20 4d 55 4c 20 73 78  2c 73 63 61 6c 65 2c 73  |. MUL sx,scale,s|
00001110  78 0d 08 34 14 20 4d 55  4c 20 73 79 2c 73 63 61  |x..4. MUL sy,sca|
00001120  6c 65 2c 73 79 0d 08 3e  15 20 4d 4f 56 20 73 78  |le,sy..>. MOV sx|
00001130  2c 73 78 2c 41 53 52 23  31 32 0d 08 48 15 20 4d  |,sx,ASR#12..H. M|
00001140  56 4e 20 73 79 2c 73 79  2c 41 53 52 23 31 32 0d  |VN sy,sy,ASR#12.|
00001150  08 52 13 20 41 44 44 20  73 78 2c 73 78 2c 23 36  |.R. ADD sx,sx,#6|
00001160  34 30 0d 08 5c 13 20 41  44 44 20 73 79 2c 73 79  |40..\. ADD sy,sy|
00001170  2c 23 35 31 32 0d 08 66  13 20 4c 44 52 20 73 7a  |,#512..f. LDR sz|
00001180  2c 74 77 69 6e 6b 6c 65  0d 08 70 11 20 41 44 44  |,twinkle..p. ADD|
00001190  20 73 7a 2c 73 7a 2c 23  34 0d 08 7a 0f 20 43 4d  | sz,sz,#4..z. CM|
000011a0  50 20 73 7a 2c 23 31 36  0d 08 84 10 20 4d 4f 56  |P sz,#16.... MOV|
000011b0  47 45 20 73 7a 2c 23 30  0d 08 8e 13 20 53 54 52  |GE sz,#0.... STR|
000011c0  20 73 7a 2c 74 77 69 6e  6b 6c 65 0d 08 98 1a 20  | sz,twinkle.... |
000011d0  41 44 52 20 73 6e 61 6d  65 2c 73 70 72 69 74 65  |ADR sname,sprite|
000011e0  5f 6e 61 6d 65 0d 08 a2  14 20 41 44 44 20 73 7a  |_name.... ADD sz|
000011f0  2c 73 7a 2c 73 6e 61 6d  65 0d 08 ac 13 20 4c 44  |,sz,sname.... LD|
00001200  52 20 73 6e 61 6d 65 2c  5b 73 7a 5d 0d 08 b6 19  |R sname,[sz]....|
00001210  20 4d 4f 56 20 73 69 7a  65 2c 73 63 61 6c 65 2c  | MOV size,scale,|
00001220  41 53 52 23 31 0d 08 c0  10 20 53 54 52 20 52 36  |ASR#1.... STR R6|
00001230  2c 5b 52 37 5d 0d 08 ca  13 20 53 54 52 20 52 36  |,[R7].... STR R6|
00001240  2c 5b 52 37 2c 23 34 5d  0d 08 d4 0e 20 4d 4f 56  |,[R7,#4].... MOV|
00001250  20 52 36 2c 52 37 0d 08  de 0e 20 4d 4f 56 20 52  | R6,R7.... MOV R|
00001260  35 2c 23 38 0d 08 e8 0e  20 4d 4f 56 20 52 37 2c  |5,#8.... MOV R7,|
00001270  23 30 0d 08 f2 0b 20 53  57 49 20 34 36 0d 08 fc  |#0.... SWI 46...|
00001280  0e 2e 64 6f 74 5f 72 61  6e 67 65 0d 09 06 19 20  |..dot_range.... |
00001290  53 55 42 20 73 63 6f 75  6e 74 2c 73 63 6f 75 6e  |SUB scount,scoun|
000012a0  74 2c 23 31 0d 09 10 12  20 43 4d 50 20 73 63 6f  |t,#1.... CMP sco|
000012b0  75 6e 74 2c 23 30 0d 09  1a 12 20 42 4e 45 20 70  |unt,#0.... BNE p|
000012c0  6c 6f 74 5f 6c 6f 6f 70  0d 09 24 14 20 4c 44 4d  |lot_loop..$. LDM|
000012d0  46 44 20 52 31 33 21 2c  7b 50 43 7d 0d 09 2e 04  |FD R13!,{PC}....|
000012e0  0d 09 38 0a 2e 74 72 61  69 6c 0d 09 42 15 20 53  |..8..trail..B. S|
000012f0  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |TMFD R13!,{R14}.|
00001300  09 4c 04 0d 09 56 14 20  4c 44 4d 46 44 20 52 31  |.L...V. LDMFD R1|
00001310  33 21 2c 7b 50 43 7d 0d  09 60 04 0d 09 6a 0a 2e  |3!,{PC}..`...j..|
00001320  64 6f 74 74 79 0d 09 74  0f 45 51 55 44 20 70 6f  |dotty..t.EQUD po|
00001330  69 6e 74 25 0d 09 7e 09  2e 64 6f 74 73 0d 09 88  |int%..~..dots...|
00001340  0e 45 51 55 44 20 62 69  74 73 25 0d 09 92 0e 2e  |.EQUD bits%.....|
00001350  64 6f 74 6e 74 72 61 69  6c 0d 09 9c 11 45 51 55  |dotntrail....EQU|
00001360  44 20 62 69 74 73 25 2b  35 30 0d 09 a6 0b 2e 73  |D bits%+50.....s|
00001370  69 6e 74 61 62 0d 09 b0  0d 45 51 55 44 20 73 69  |intab....EQUD si|
00001380  6e 25 0d 09 ba 0b 2e 63  6f 73 74 61 62 0d 09 c4  |n%.....costab...|
00001390  0d 45 51 55 44 20 63 6f  73 25 0d 09 ce 0a 2e 74  |.EQUD cos%.....t|
000013a0  61 62 6c 65 0d 09 d8 0f  45 51 55 44 20 74 61 62  |able....EQUD tab|
000013b0  6c 65 25 0d 09 e2 0a 2e  73 74 6f 72 65 0d 09 ec  |le%.....store...|
000013c0  0f 45 51 55 44 20 73 74  6f 72 65 25 0d 09 f6 0b  |.EQUD store%....|
000013d0  2e 78 61 6e 67 6c 65 0d  0a 00 0a 45 51 55 44 20  |.xangle....EQUD |
000013e0  30 0d 0a 0a 0b 2e 79 61  6e 67 6c 65 0d 0a 14 0a  |0.....yangle....|
000013f0  45 51 55 44 20 30 0d 0a  1e 0b 2e 7a 61 6e 67 6c  |EQUD 0.....zangl|
00001400  65 0d 0a 28 0a 45 51 55  44 20 30 0d 0a 32 10 2e  |e..(.EQUD 0..2..|
00001410  73 70 72 69 74 65 5f 70  6c 6f 74 0d 0a 3c 1f 45  |sprite_plot..<.E|
00001420  51 55 44 20 35 36 34 20  20 20 20 20 20 3b 20 73  |QUD 564      ; s|
00001430  63 61 6c 65 64 20 70 6c  6f 74 0d 0a 46 21 3b 45  |caled plot..F!;E|
00001440  51 55 44 20 35 34 36 20  20 20 20 20 3b 20 6f 72  |QUD 546     ; or|
00001450  64 69 6e 61 72 79 20 70  6c 6f 74 0d 0a 50 10 2e  |dinary plot..P..|
00001460  73 70 72 69 74 65 5f 61  72 65 61 0d 0a 5a 0c 45  |sprite_area..Z.E|
00001470  51 55 44 20 73 70 25 0d  0a 64 10 2e 73 70 72 69  |QUD sp%..d..spri|
00001480  74 65 5f 6e 61 6d 65 0d  0a 6e 0f 45 51 55 44 20  |te_name..n.EQUD |
00001490  62 61 6c 6c 31 25 0d 0a  78 0f 45 51 55 44 20 62  |ball1%..x.EQUD b|
000014a0  61 6c 6c 32 25 0d 0a 82  0f 45 51 55 44 20 62 61  |all2%....EQUD ba|
000014b0  6c 6c 33 25 0d 0a 8c 0f  45 51 55 44 20 62 61 6c  |ll3%....EQUD bal|
000014c0  6c 34 25 0d 0a 96 0c 2e  74 77 69 6e 6b 6c 65 0d  |l4%.....twinkle.|
000014d0  0a a0 0a 45 51 55 44 20  30 0d 0a aa 09 2e 6d 75  |...EQUD 0.....mu|
000014e0  6c 74 0d 0a b4 0c 45 51  55 44 20 32 30 30 0d 0a  |lt....EQUD 200..|
000014f0  be 0c 45 51 55 44 20 32  30 30 0d 0a c8 0d 45 51  |..EQUD 200....EQ|
00001500  55 44 20 32 30 34 38 0d  0a d2 0d 45 51 55 44 20  |UD 2048....EQUD |
00001510  32 30 34 38 0d 0a dc 05  5d 0d 0a e6 0a ed 20 70  |2048....]..... p|
00001520  61 73 73 0d 0a f0 05 e1  0d 0a fa 04 0d 0b 04 0c  |ass.............|
00001530  dd 20 f2 73 74 61 72 73  0d 0b 0e 08 70 25 3d 30  |. .stars....p%=0|
00001540  0d 0b 18 0f e3 20 61 25  3d 30 20 b8 20 39 38 0d  |..... a%=0 . 98.|
00001550  0b 22 1a 20 70 6f 69 6e  74 25 21 70 25 3d b3 28  |.". point%!p%=.(|
00001560  31 32 38 30 29 2d 36 34  30 0d 0b 2c 1e 20 70 6f  |1280)-640..,. po|
00001570  69 6e 74 25 21 28 70 25  2b 34 29 3d b3 28 31 32  |int%!(p%+4)=.(12|
00001580  38 30 29 2d 36 34 30 0d  0b 36 1e 20 70 6f 69 6e  |80)-640..6. poin|
00001590  74 25 21 28 70 25 2b 38  29 3d b3 28 31 32 38 30  |t%!(p%+8)=.(1280|
000015a0  29 2d 36 34 30 0d 0b 40  0a 70 25 2b 3d 31 32 0d  |)-640..@.p%+=12.|
000015b0  0b 4a 08 ed 20 61 25 0d  0b 54 05 e1 0d 0b 5e 04  |.J.. a%..T....^.|
000015c0  0d 0b 68 0b dd 20 f2 68  61 6e 64 0d 0b 72 10 70  |..h.. .hand..r.p|
000015d0  25 3d 30 3a 62 69 74 73  25 3d 30 0d 0b 7c 0f e3  |%=0:bits%=0..|..|
000015e0  20 61 25 3d 30 20 b8 20  39 32 0d 0b 86 0c 20 f3  | a%=0 . 92.... .|
000015f0  20 78 2c 79 2c 7a 0d 0b  90 16 20 78 3d 78 2f 38  | x,y,z.... x=x/8|
00001600  3a 79 3d 79 2f 38 3a 7a  3d 7a 2f 38 0d 0b 9a 10  |:y=y/8:z=z/8....|
00001610  20 70 6f 69 6e 74 25 21  70 25 3d 78 0d 0b a4 18  | point%!p%=x....|
00001620  20 70 6f 69 6e 74 25 21  28 70 25 2b 34 29 3d 79  | point%!(p%+4)=y|
00001630  2d 32 35 36 0d 0b ae 14  20 70 6f 69 6e 74 25 21  |-256.... point%!|
00001640  28 70 25 2b 38 29 3d 7a  0d 0b b8 13 70 25 2b 3d  |(p%+8)=z....p%+=|
00001650  31 32 3a 62 69 74 73 25  2b 3d 31 0d 0b c2 08 ed  |12:bits%+=1.....|
00001660  20 61 25 0d 0b cc 05 e1  0d 0b d6 04 0d 0b e0 3d  | a%............=|
00001670  dc 20 2d 32 33 33 2c 31  37 35 31 2c 32 33 39 2c  |. -233,1751,239,|
00001680  32 34 37 2c 31 37 35 30  2c 32 33 39 2c 32 34 37  |247,1750,239,247|
00001690  2c 31 36 30 37 2c 2d 32  34 31 2c 2d 32 33 33 2c  |,1607,-241,-233,|
000016a0  31 36 30 37 2c 2d 32 30  39 0d 0b ea 35 dc 20 2d  |1607,-209...5. -|
000016b0  32 33 33 2c 37 34 33 2c  34 39 35 2c 32 31 35 2c  |233,743,495,215,|
000016c0  37 34 30 2c 34 39 35 2c  32 34 37 2c 37 34 33 2c  |740,495,247,743,|
000016d0  34 37 2c 2d 32 33 33 2c  37 34 33 2c 34 37 0d 0b  |47,-233,743,47..|
000016e0  f4 39 dc 20 2d 39 2c 32  30 33 39 2c 2d 38 31 2c  |.9. -9,2039,-81,|
000016f0  32 34 37 2c 2d 33 30 35  2c 34 39 35 2c 2d 32 30  |247,-305,495,-20|
00001700  31 2c 2d 32 37 33 2c 34  39 35 2c 2d 32 30 30 2c  |1,-273,495,-200,|
00001710  2d 32 32 35 2c 34 37 0d  0b fe 3e dc 20 32 31 35  |-225,47...>. 215|
00001720  2c 2d 32 37 30 2c 34 39  2c 32 31 35 2c 2d 31 32  |,-270,49,215,-12|
00001730  38 31 2c 32 33 39 2c 2d  32 30 31 2c 2d 31 33 32  |81,239,-201,-132|
00001740  39 2c 32 33 39 2c 2d 32  30 32 2c 2d 31 31 36 39  |9,239,-202,-1169|
00001750  2c 2d 32 34 31 0d 0c 08  37 dc 20 32 31 35 2c 2d  |,-241...7. 215,-|
00001760  31 31 38 35 2c 2d 32 34  30 2c 2d 39 2c 31 31 38  |1185,-240,-9,118|
00001770  33 2c 32 30 37 2c 2d 39  2c 32 30 37 2c 33 30 33  |3,207,-9,207,303|
00001780  2c 2d 39 2c 2d 37 35 33  2c 31 34 33 0d 0c 12 43  |,-9,-753,143...C|
00001790  dc 20 35 35 31 2c 2d 31  33 30 35 2c 2d 37 38 35  |. 551,-1305,-785|
000017a0  2c 39 38 33 2c 2d 31 32  37 33 2c 2d 37 38 30 2c  |,983,-1273,-780,|
000017b0  39 38 33 2c 2d 31 35 36  31 2c 2d 31 31 33 37 2c  |983,-1561,-1137,|
000017c0  35 30 33 2c 2d 31 35 34  35 2c 2d 31 31 33 37 0d  |503,-1545,-1137.|
000017d0  0c 1c 41 dc 20 39 38 33  2c 2d 33 31 33 2c 2d 31  |..A. 983,-313,-1|
000017e0  32 30 31 2c 35 30 33 2c  2d 34 38 39 2c 2d 31 32  |201,503,-489,-12|
000017f0  30 33 2c 35 30 33 2c 2d  34 34 31 2c 2d 31 36 34  |03,503,-441,-164|
00001800  39 2c 39 38 33 2c 2d 34  33 38 2c 2d 31 36 31 37  |9,983,-438,-1617|
00001810  0d 0c 26 3b dc 20 39 38  33 2c 34 32 33 2c 2d 36  |..&;. 983,423,-6|
00001820  38 39 2c 35 30 30 2c 34  32 30 2c 2d 37 32 30 2c  |89,500,420,-720,|
00001830  35 30 35 2c 2d 31 35 35  2c 2d 36 39 30 2c 39 38  |505,-155,-690,98|
00001840  30 2c 2d 31 35 30 2c 2d  36 39 30 0d 0c 30 3e dc  |0,-150,-690..0>.|
00001850  20 39 38 35 2c 2d 36 35  30 2c 2d 32 30 35 2c 35  | 985,-650,-205,5|
00001860  30 30 2c 2d 36 34 35 2c  2d 32 31 30 2c 31 30 31  |00,-645,-210,101|
00001870  35 2c 2d 36 34 39 2c 2d  31 37 37 2c 37 34 33 2c  |5,-649,-177,743,|
00001880  2d 31 37 30 2c 2d 31 34  30 0d 0c 3a 40 dc 20 37  |-170,-140..:@. 7|
00001890  34 35 2c 2d 31 30 35 2c  2d 31 30 34 30 2c 37 34  |45,-105,-1040,74|
000018a0  33 2c 2d 31 30 31 37 2c  2d 31 31 36 39 2c 31 33  |3,-1017,-1169,13|
000018b0  30 35 2c 2d 35 38 35 2c  2d 32 30 2c 31 36 39 30  |05,-585,-20,1690|
000018c0  2c 2d 35 38 35 2c 2d 35  30 0d 0c 44 3f dc 20 31  |,-585,-50..D?. 1|
000018d0  36 38 35 2c 2d 32 35 2c  2d 37 32 30 2c 31 33 30  |685,-25,-720,130|
000018e0  35 2c 2d 32 35 2c 2d 37  38 35 2c 31 33 30 30 2c  |5,-25,-785,1300,|
000018f0  2d 34 30 35 2c 2d 37 38  35 2c 31 36 38 35 2c 2d  |-405,-785,1685,-|
00001900  34 31 30 2c 2d 37 38 35  0d 0c 4e 45 dc 20 31 36  |410,-785..NE. 16|
00001910  39 30 2c 2d 36 39 35 2c  2d 31 35 35 30 2c 31 33  |90,-695,-1550,13|
00001920  32 30 2c 2d 37 30 30 2c  2d 31 34 39 30 2c 31 33  |20,-700,-1490,13|
00001930  31 35 2c 2d 37 34 35 2c  2d 31 31 33 35 2c 31 36  |15,-745,-1135,16|
00001940  38 35 2c 2d 37 34 35 2c  2d 31 31 30 35 0d 0c 58  |85,-745,-1105..X|
00001950  47 dc 20 31 36 39 30 2c  2d 31 35 36 30 2c 2d 31  |G. 1690,-1560,-1|
00001960  31 30 35 2c 31 33 32 30  2c 2d 31 35 36 30 2c 2d  |105,1320,-1560,-|
00001970  31 32 30 30 2c 31 36 38  35 2c 2d 31 33 37 30 2c  |1200,1685,-1370,|
00001980  2d 38 32 30 2c 31 33 30  35 2c 2d 31 33 36 39 2c  |-820,1305,-1369,|
00001990  2d 38 35 30 0d 0c 62 41  dc 20 31 38 34 35 2c 2d  |-850..bA. 1845,-|
000019a0  35 34 30 2c 2d 32 34 30  2c 32 31 36 35 2c 2d 35  |540,-240,2165,-5|
000019b0  33 35 2c 2d 32 34 35 2c  32 31 36 35 2c 2d 31 38  |35,-245,2165,-18|
000019c0  35 2c 2d 37 35 35 2c 31  38 35 30 2c 2d 31 38 35  |5,-755,1850,-185|
000019d0  2c 2d 38 32 30 0d 0c 6c  47 dc 20 31 38 35 30 2c  |,-820..lG. 1850,|
000019e0  2d 37 31 35 2c 2d 31 33  39 35 2c 32 31 36 35 2c  |-715,-1395,2165,|
000019f0  2d 37 31 30 2c 2d 31 33  39 30 2c 32 31 37 30 2c  |-710,-1390,2170,|
00001a00  2d 31 33 38 35 2c 2d 31  30 37 35 2c 31 38 35 30  |-1385,-1075,1850|
00001a10  2c 2d 31 33 38 35 2c 2d  31 31 30 35 0d 0c 76 42  |,-1385,-1105..vB|
00001a20  dc 20 32 35 30 2c 2d 31  31 31 35 2c 2d 34 39 37  |. 250,-1115,-497|
00001a30  2c 32 33 30 2c 2d 31 31  31 30 2c 2d 39 38 30 2c  |,230,-1110,-980,|
00001a40  2d 31 37 30 2c 2d 31 33  35 35 2c 2d 39 37 35 2c  |-170,-1355,-975,|
00001a50  32 31 35 2c 2d 31 31 31  30 2c 2d 39 38 30 0d 0c  |215,-1110,-980..|
00001a60  80 41 dc 20 2d 37 34 35  2c 2d 33 33 30 2c 2d 39  |.A. -745,-330,-9|
00001a70  37 35 2c 2d 37 33 30 2c  2d 33 33 30 2c 2d 35 30  |75,-730,-330,-50|
00001a80  30 2c 2d 32 33 30 2c 2d  32 38 30 2c 2d 34 39 35  |0,-230,-280,-495|
00001a90  2c 2d 32 30 30 2c 2d 32  38 31 2c 2d 39 34 35 0d  |,-200,-281,-945.|
00001aa0  0c 8a 3a dc 20 2d 35 32  30 2c 38 32 35 2c 2d 39  |..:. -520,825,-9|
00001ab0  34 35 2c 32 35 2c 36 35  30 2c 2d 39 34 35 2c 2d  |45,25,650,-945,-|
00001ac0  34 30 2c 36 34 35 2c 2d  35 33 30 2c 2d 34 39 30  |40,645,-530,-490|
00001ad0  2c 38 32 35 2c 2d 35 33  30 0d 0c 94 3d dc 20 34  |,825,-530...=. 4|
00001ae0  30 2c 38 39 30 2c 2d 37  32 30 2c 2d 33 33 30 2c  |0,890,-720,-330,|
00001af0  32 35 30 2c 2d 37 32 30  2c 2d 32 33 35 2c 2d 38  |250,-720,-235,-8|
00001b00  34 30 2c 2d 37 32 30 2c  31 39 34 35 2c 2d 31 35  |40,-720,1945,-15|
00001b10  34 35 2c 33 33 35 0d 0c  9e 3d dc 20 31 39 34 30  |45,335...=. 1940|
00001b20  2c 2d 31 35 30 30 2c 2d  38 32 30 2c 39 30 2c 2d  |,-1500,-820,90,-|
00001b30  31 35 39 35 2c 2d 38 31  35 2c 38 35 2c 2d 31 34  |1595,-815,85,-14|
00001b40  38 30 2c 33 33 35 2c 32  38 30 2c 2d 33 39 37 35  |80,335,280,-3975|
00001b50  2c 34 35 0d 0c a8 41 dc  20 31 32 34 30 2c 2d 33  |,45...A. 1240,-3|
00001b60  39 38 30 2c 35 30 2c 31  32 33 35 2c 2d 33 39 34  |980,50,1235,-394|
00001b70  35 2c 2d 35 33 30 2c 32  38 30 2c 2d 33 39 37 35  |5,-530,280,-3975|
00001b80  2c 2d 35 33 30 2c 31 33  36 35 2c 2d 32 31 32 30  |,-530,1365,-2120|
00001b90  2c 33 30 35 0d 0c b2 3e  dc 20 34 37 30 2c 2d 32  |,305...>. 470,-2|
00001ba0  31 30 35 2c 33 30 35 2c  35 36 35 2c 2d 33 32 37  |105,305,565,-327|
00001bb0  35 2c 31 37 35 2c 31 32  30 35 2c 2d 33 33 30 35  |5,175,1205,-3305|
00001bc0  2c 31 37 35 2c 2d 39 2c  2d 31 39 33 30 2c 2d 32  |,175,-9,-1930,-2|
00001bd0  34 30 0d 0c bc 42 dc 20  39 30 2c 2d 33 34 36 35  |40...B. 90,-3465|
00001be0  2c 2d 32 34 30 2c 31 34  39 35 2c 2d 33 34 32 30  |,-240,1495,-3420|
00001bf0  2c 2d 32 34 35 2c 31 39  37 35 2c 2d 32 30 37 35  |,-245,1975,-2075|
00001c00  2c 2d 31 38 30 2c 39 35  30 2c 2d 32 30 32 35 2c  |,-180,950,-2025,|
00001c10  2d 37 38 35 0d 0c c6 14  dc 20 38 32 35 2c 2d 33  |-785..... 825,-3|
00001c20  34 38 30 2c 2d 36 32 35  0d ff                    |480,-625..|
00001c2a