Home » Archimedes archive » Acorn User » AU 1996-02.adf » Regulars » StarInfo/Llew-Jones/!StarShine/StarCode

StarInfo/Llew-Jones/!StarShine/StarCode

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-02.adf » Regulars
Filename: StarInfo/Llew-Jones/!StarShine/StarCode
Read OK:
File size: 1B34 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > Stars2
   20REM   Code for producing StarShine
   30REM   The Flying Pig!
   40REM   29/9/1994
   50:
   60save%=FALSE
   70:
   80DIMcode%20000
   90x=0:y=1:z=2:temp=5:count=6:address=7:point=4:rnd=3:sineadd=10:time=8
  100q=x:w=y:t=11:i=point:p=time:u=9:x2=9:y2=11:value=12
  110a%=19:b%=15:logs%=10
  120link=14
  130FORpass%=0TO2STEP2
  140P%=code%
  150[OPTpass%
  160.start
  170          MOV     0,#22
  180          SWI     "OS_WriteC"
  190          MOV     0,#15
  200          SWI     "OS_WriteC"
  210          SWI     "OS_RemoveCursors"
  220          ADR     0,vduout
  230          ADR     1,vduout
  240          SWI     "OS_ReadVduVariables"
  250          MOV     0,#&15
  260          ADR     1,mousebox
  270          SWI     "OS_Word"
  280          LDR     x,vduout
  290          ADD     x,x,#320
  300          ADD     x,x,#128*640
  310          MOV     count,#1600*2
  320          ADR     sineadd,sines
  330          B       listaddress
  340.mousebox
  350          EQUB    1
  360          EQUW    100
  370          EQUW    128
  380          EQUW    1280-100
  390          EQUW    1024-128
  400          EQUB    10
  410          EQUB    10
  420          EQUS    "Created by The Flying Pig!"
  430          EQUB    10
  440          EQUB    10
  450          EQUS    "Starshine - The return of Tinkerbell!"
  460          EQUB    10
  470          EQUS    "Finished around about the 29th September 1994."
  480          EQUB    10
  490          EQUB    10
  500          ALIGN
  510.shiftloop
  520          ANDS    y,count,#%11111111
  530          MOVEQ   y,#255
  540          LDR     temp,[sineadd,y,ASL#2]
  550          AND     point,t,#%1111111100
  560          MOV     point,point,ASR#2
  570          MUL     temp,point,temp
  580          ADD     t,x,temp,ASR#16
  590          ADD     y,y,#64
  600          LDR     temp,[sineadd,y,ASL#2]
  610          MUL     temp,point,temp
  620          MOV     temp,temp,ASR#17
  630          ADD     t,t,temp,ASL#9
  640          ADD     t,t,temp,ASL#7
  650          STR     t,[address,count,ASL#2]
  660          SUB     count,count,#1
  670          MOV     point,point,ASR#1
  680          ADD     point,point,#128
  690          STR     point,[address,count,ASL#2]
  700          SUBS    count,count,#1
  710          BGE     shiftloop
  720          MOV     count,#50
  730          MOV     0,#19
  740.wait
  750          SWI     "OS_Byte"
  760          SUBS    count,count,#1
  770          BGT     wait
  780          MOV     count,#0
  790.loop
  800          ADD     count,count,#2
  810          CMP     count,#1600
  820          MOVGE   count,#0
  830          LDR     point,[address,count,ASL#2]
  840          ADD     count,count,#1
  850          LDR     time,[address,count,ASL#2]
  860          SUBS    time,time,#1
  870          STR     time,[address,count,ASL#2]
  880          SUBGT   count,count,#1
  890          STRB    time,[point]
  900          BGT     loop
  910          SWI     "OS_Mouse"
  920.move     LDR     q,qs
  930          LDR     w,ws
  940          ADD     q,q,#3
  950          ADD     w,w,#2
  960          STR     q,qs
  970          STR     w,ws
  980          MOV     value,#255
  990          AND     q,q,value,ASL#10
 1000          AND     w,w,value,ASL#11
 1010          LDR     temp,[sineadd,q,ASR#8]
 1020          LDR     t,ts
 1030          ADD     t,t,temp,ASR#5
 1040          STR     t,ts
 1050          LDR     i,is
 1060          ADD     i,i,temp,ASR#6
 1070          STR     i,is
 1080          LDR     temp,[sineadd,w,ASR#9]
 1090          LDR     p,ps
 1100          ADD     p,p,temp,ASR#6
 1110          STR     p,ps
 1120          LDR     u,us
 1130          ADD     u,u,temp,ASR#7
 1140          STR     u,us
 1150          AND     u,u,value,ASL#16
 1160          AND     t,t,value,ASL#13
 1170          LDR     temp,[sineadd,u,ASR#14]
 1180          LDR     x,[sineadd,t,ASR#11]
 1190          ADD     x,x,temp
 1200          MOV     temp,#300
 1210          MUL     x2,temp,x
 1220          MOV     x,x2,ASR#16
 1230          ADD     x,x,#640
 1240          AND     i,i,value,ASL#15
 1250          AND     p,p,value,ASL#12
 1260          LDR     temp,[sineadd,i,ASR#13]
 1270          LDR     y,[sineadd,p,ASR#10]
 1280          ADD     y,y,temp
 1290          MOV     temp,#190
 1300          MUL     y2,temp,y
 1310          MOV     y,y2,ASR#16
 1320          ADD     y,y,#512
 1330          CMP     z,#1
 1340          CMPGT   count,#800
 1350          SWIGE   "OS_Mouse"
 1360          LDR     time,plog
 1370          ADR     rnd,log
 1380          LDR     point,[rnd,time,ASL#2]
 1390          STR     x2,[rnd,time,ASL#2]
 1400          CMP     point,x2
 1410          SUBGT   point,point,x2
 1420          SUBLE   point,x2,point
 1430          SUB     time,time,#1
 1440          LDR     temp,[rnd,time,ASL#2]
 1450          STR     y2,[rnd,time,ASL#2]
 1460          SUBS    time,time,#1
 1470          MOVLE   time,#logs%*2
 1480          STR     time,plog
 1490          CMP     temp,y2
 1500          SUBGT   temp,temp,y2
 1510          SUBLE   temp,y2,temp
 1520          ADD     time,point,temp
 1530          MOVS    time,time,ASR#b%
 1540          MOVEQ   time,#1
 1550          CMP     time,#34
 1560          MOVGT   time,#34
 1570          MOV     x,x,ASR#1
 1580          RSB     y,y,#1024
 1590          MOV     y,y,ASR#2
 1600          LDR     rnd,rnds
 1610          LDR     point,rndt
 1620          ADD     rnd,rnd,#7
 1630          ADD     point,point,rnd,ASR#1
 1640          ADD     point,point,#3
 1650          ADD     rnd,rnd,point,ASR#1
 1660          MOV     point,point,LSL#23
 1670          MOV     point,point,LSR#23
 1680          STR     point,rndt
 1690          STR     rnd,rnds
 1700          AND     rnd,rnd,#%1111
 1710          MOV     temp,rnd,ASL#4
 1720          RSB     temp,temp,#260
 1730          STR     temp,[address,count,ASL#2]
 1740          CMP     point,#256
 1750          SUBGE   point,point,#256
 1760          MUL     rnd,time,rnd
 1770          LDR     temp,[sineadd,point,ASL#2]
 1780          MUL     temp,rnd,temp
 1790          ADD     x,x,temp,ASR#a%
 1800          ADD     point,point,#64
 1810          LDR     temp,[sineadd,point,ASL#2]
 1820          MUL     temp,rnd,temp
 1830          ADD     y,y,temp,ASR#(a%+1)
 1840          ADD     point,x,y,ASL#9
 1850          ADD     point,point,y,ASL#7
 1860          LDR     temp,vduout
 1870          ADD     point,point,temp
 1880          SUB     count,count,#1
 1890          STR     point,[address,count,ASL#2]
 1900          STRB    count,[point]
 1910          SWI     "OS_ReadEscapeState"
 1920          BCC     loop
 1930          MOV     PC,link
 1940.vduout   EQUD    148
 1950          EQUD    -1
 1960.rnds     EQUD    0
 1970.rndt     EQUD    0
 1980.log
 1990]P%+=(logs%*8)+8
 2000[OPTpass%
 2010.sines    EQUD    0
 2020]P%+=450*4
 2030[OPTpass%
 2040.qs       EQUD    0
 2050.ws       EQUD    0
 2060.ts       EQUD    0
 2070.is       EQUD    0
 2080.ps       EQUD    0
 2090.us       EQUD    0
 2100.plog     EQUD    logs%
 2110.listaddress
 2120          ADR     address,list
 2130          B       shiftloop
 2140.list     EQUD    10
 2150          EQUD    10
 2160]NEXT
 2170FORn%=0TO450:sines!(n%*4)=INT(65536*SINRAD(n%*1.40625)):NEXT
 2180IFsave%THEN
 2190OSCLI("Save StarShine "+STR$~code%+" "+STR$~P%)
 2200OSCLI("SetType StarShine Absolute")
 2210ELSE
 2220CALLstart
 2230ENDIF
 2240END

� > Stars2
$�   Code for producing StarShine
�   The Flying Pig!
(�   29/9/1994
2:
<save%=�
F:
P�code%20000
ZHx=0:y=1:z=2:temp=5:count=6:address=7:point=4:rnd=3:sineadd=10:time=8
d7q=x:w=y:t=11:i=point:p=time:u=9:x2=9:y2=11:value=12
na%=19:b%=15:logs%=10
xlink=14
��pass%=0�2�2
�P%=code%
�
[OPTpass%
�
.start
�          MOV     0,#22
�!          SWI     "OS_WriteC"
�          MOV     0,#15
�!          SWI     "OS_WriteC"
�(          SWI     "OS_RemoveCursors"
�          ADR     0,vduout
�          ADR     1,vduout
�+          SWI     "OS_ReadVduVariables"
�          MOV     0,#&15
           ADR     1,mousebox
          SWI     "OS_Word"
          LDR     x,vduout
"          ADD     x,x,#320
,"          ADD     x,x,#128*640
6#          MOV     count,#1600*2
@#          ADR     sineadd,sines
J!          B       listaddress
T
.mousebox
^          EQUB    1
h          EQUW    100
r          EQUW    128
|          EQUW    1280-100
�          EQUW    1024-128
�          EQUB    10
�          EQUB    10
�2          EQUS    "Created by The Flying Pig!"
�          EQUB    10
�          EQUB    10
�=          EQUS    "Starshine - The return of Tinkerbell!"
�          EQUB    10
�F          EQUS    "Finished around about the 29th September 1994."
�          EQUB    10
�          EQUB    10
�          ALIGN
�.shiftloop
&          �S    y,count,#%11111111
          �Q   y,#255
,          LDR     temp,[sineadd,y,ASL#2]
&(          �     point,t,#%1111111100
0'          MOV     point,point,ASR#2
:%          MUL     temp,point,temp
D%          ADD     t,x,temp,ASR#16
N          ADD     y,y,#64
X,          LDR     temp,[sineadd,y,ASL#2]
b%          MUL     temp,point,temp
l&          MOV     temp,temp,ASR#17
v$          ADD     t,t,temp,ASL#9
�$          ADD     t,t,temp,ASL#7
�-          STR     t,[address,count,ASL#2]
�$          SUB     count,count,#1
�'          MOV     point,point,ASR#1
�&          ADD     point,point,#128
�1          STR     point,[address,count,ASL#2]
�$          SUBS    count,count,#1
�          BGE     shiftloop
�          MOV     count,#50
�          MOV     0,#19
�	.wait
�          SWI     "OS_Byte"
�$          SUBS    count,count,#1
          BGT     wait
          MOV     count,#0
	.loop
 $          ADD     count,count,#2
*!          CMP     count,#1600
4          MOVGE   count,#0
>1          LDR     point,[address,count,ASL#2]
H$          ADD     count,count,#1
R0          LDR     time,[address,count,ASL#2]
\"          SUBS    time,time,#1
f0          STR     time,[address,count,ASL#2]
p$          SUBGT   count,count,#1
z"          STRB    time,[point]
�          BGT     loop
�           SWI     "OS_Mouse"
�.move     LDR     q,qs
�          LDR     w,ws
�          ADD     q,q,#3
�          ADD     w,w,#2
�          STR     q,qs
�          STR     w,ws
�           MOV     value,#255
�$          �     q,q,value,ASL#10
�$          �     w,w,value,ASL#11
�,          LDR     temp,[sineadd,q,ASR#8]
�          LDR     t,ts
$          ADD     t,t,temp,ASR#5
          STR     t,ts
          LDR     i,is
$$          ADD     i,i,temp,ASR#6
.          STR     i,is
8,          LDR     temp,[sineadd,w,ASR#9]
B          LDR     p,ps
L$          ADD     p,p,temp,ASR#6
V          STR     p,ps
`          LDR     u,us
j$          ADD     u,u,temp,ASR#7
t          STR     u,us
~$          �     u,u,value,ASL#16
�$          �     t,t,value,ASL#13
�-          LDR     temp,[sineadd,u,ASR#14]
�*          LDR     x,[sineadd,t,ASR#11]
�          ADD     x,x,temp
�          MOV     temp,#300
�          MUL     x2,temp,x
�!          MOV     x,x2,ASR#16
�          ADD     x,x,#640
�$          �     i,i,value,ASL#15
�$          �     p,p,value,ASL#12
�-          LDR     temp,[sineadd,i,ASR#13]
�*          LDR     y,[sineadd,p,ASR#10]
          ADD     y,y,temp

          MOV     temp,#190
          MUL     y2,temp,y
!          MOV     y,y2,ASR#16
(          ADD     y,y,#512
2          CMP     z,#1
<           CMPGT   count,#800
F           SWIGE   "OS_Mouse"
P          LDR     time,plog
Z          ADR     rnd,log
d,          LDR     point,[rnd,time,ASL#2]
n)          STR     x2,[rnd,time,ASL#2]
x          CMP     point,x2
�$          SUBGT   point,point,x2
�$          SUBLE   point,x2,point
�"          SUB     time,time,#1
�+          LDR     temp,[rnd,time,ASL#2]
�)          STR     y2,[rnd,time,ASL#2]
�"          SUBS    time,time,#1
�#          MOVLE   time,#logs%*2
�          STR     time,plog
�          CMP     temp,y2
�"          SUBGT   temp,temp,y2
�"          SUBLE   temp,y2,temp
�%          ADD     time,point,temp
�&          MOVS    time,time,ASR#b%
          �Q   time,#1
          CMP     time,#34
          MOVGT   time,#34
"          MOV     x,x,ASR#1
,          RSB     y,y,#1024
6          MOV     y,y,ASR#2
@          LDR     rnd,rnds
J           LDR     point,rndt
T           ADD     rnd,rnd,#7
^+          ADD     point,point,rnd,ASR#1
h$          ADD     point,point,#3
r)          ADD     rnd,rnd,point,ASR#1
|(          MOV     point,point,LSL#23
�(          MOV     point,point,LSR#23
�           STR     point,rndt
�          STR     rnd,rnds
�"          �     rnd,rnd,#%1111
�$          MOV     temp,rnd,ASL#4
�$          RSB     temp,temp,#260
�0          STR     temp,[address,count,ASL#2]
�           CMP     point,#256
�&          SUBGE   point,point,#256
�"          MUL     rnd,time,rnd
�0          LDR     temp,[sineadd,point,ASL#2]
�#          MUL     temp,rnd,temp
�%          ADD     x,x,temp,ASR#a%
%          ADD     point,point,#64
0          LDR     temp,[sineadd,point,ASL#2]
#          MUL     temp,rnd,temp
&)          ADD     y,y,temp,ASR#(a%+1)
0%          ADD     point,x,y,ASL#9
:)          ADD     point,point,y,ASL#7
D!          LDR     temp,vduout
N&          ADD     point,point,temp
X$          SUB     count,count,#1
b1          STR     point,[address,count,ASL#2]
l#          STRB    count,[point]
v*          SWI     "OS_ReadEscapeState"
�          BCC     loop
�          MOV     PC,link
�.vduout   EQUD    148
�          EQUD    -1
�.rnds     EQUD    0
�.rndt     EQUD    0
�.log
�]P%+=(logs%*8)+8
�
[OPTpass%
�.sines    EQUD    0
�]P%+=450*4
�
[OPTpass%
�.qs       EQUD    0
.ws       EQUD    0
.ts       EQUD    0
.is       EQUD    0
 .ps       EQUD    0
*.us       EQUD    0
4.plog     EQUD    logs%
>.listaddress
H"          ADR     address,list
R          B       shiftloop
\.list     EQUD    10
f          EQUD    10
p]�
z4�n%=0�450:sines!(n%*4)=�(65536*��(n%*1.40625)):�
��save%�
�)�("Save StarShine "+�~code%+" "+�~P%)
�#�("SetType StarShine Absolute")
��
�
�start
��
��
�
00000000  0d 00 0a 0e f4 20 3e 20  53 74 61 72 73 32 0d 00  |..... > Stars2..|
00000010  14 24 f4 20 20 20 43 6f  64 65 20 66 6f 72 20 70  |.$.   Code for p|
00000020  72 6f 64 75 63 69 6e 67  20 53 74 61 72 53 68 69  |roducing StarShi|
00000030  6e 65 0d 00 1e 17 f4 20  20 20 54 68 65 20 46 6c  |ne.....   The Fl|
00000040  79 69 6e 67 20 50 69 67  21 0d 00 28 11 f4 20 20  |ying Pig!..(..  |
00000050  20 32 39 2f 39 2f 31 39  39 34 0d 00 32 05 3a 0d  | 29/9/1994..2.:.|
00000060  00 3c 0b 73 61 76 65 25  3d a3 0d 00 46 05 3a 0d  |.<.save%=...F.:.|
00000070  00 50 0f de 63 6f 64 65  25 32 30 30 30 30 0d 00  |.P..code%20000..|
00000080  5a 48 78 3d 30 3a 79 3d  31 3a 7a 3d 32 3a 74 65  |ZHx=0:y=1:z=2:te|
00000090  6d 70 3d 35 3a 63 6f 75  6e 74 3d 36 3a 61 64 64  |mp=5:count=6:add|
000000a0  72 65 73 73 3d 37 3a 70  6f 69 6e 74 3d 34 3a 72  |ress=7:point=4:r|
000000b0  6e 64 3d 33 3a 73 69 6e  65 61 64 64 3d 31 30 3a  |nd=3:sineadd=10:|
000000c0  74 69 6d 65 3d 38 0d 00  64 37 71 3d 78 3a 77 3d  |time=8..d7q=x:w=|
000000d0  79 3a 74 3d 31 31 3a 69  3d 70 6f 69 6e 74 3a 70  |y:t=11:i=point:p|
000000e0  3d 74 69 6d 65 3a 75 3d  39 3a 78 32 3d 39 3a 79  |=time:u=9:x2=9:y|
000000f0  32 3d 31 31 3a 76 61 6c  75 65 3d 31 32 0d 00 6e  |2=11:value=12..n|
00000100  18 61 25 3d 31 39 3a 62  25 3d 31 35 3a 6c 6f 67  |.a%=19:b%=15:log|
00000110  73 25 3d 31 30 0d 00 78  0b 6c 69 6e 6b 3d 31 34  |s%=10..x.link=14|
00000120  0d 00 82 10 e3 70 61 73  73 25 3d 30 b8 32 88 32  |.....pass%=0.2.2|
00000130  0d 00 8c 0c 50 25 3d 63  6f 64 65 25 0d 00 96 0d  |....P%=code%....|
00000140  5b 4f 50 54 70 61 73 73  25 0d 00 a0 0a 2e 73 74  |[OPTpass%.....st|
00000150  61 72 74 0d 00 aa 1b 20  20 20 20 20 20 20 20 20  |art....         |
00000160  20 4d 4f 56 20 20 20 20  20 30 2c 23 32 32 0d 00  | MOV     0,#22..|
00000170  b4 21 20 20 20 20 20 20  20 20 20 20 53 57 49 20  |.!          SWI |
00000180  20 20 20 20 22 4f 53 5f  57 72 69 74 65 43 22 0d  |    "OS_WriteC".|
00000190  00 be 1b 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |...          MOV|
000001a0  20 20 20 20 20 30 2c 23  31 35 0d 00 c8 21 20 20  |     0,#15...!  |
000001b0  20 20 20 20 20 20 20 20  53 57 49 20 20 20 20 20  |        SWI     |
000001c0  22 4f 53 5f 57 72 69 74  65 43 22 0d 00 d2 28 20  |"OS_WriteC"...( |
000001d0  20 20 20 20 20 20 20 20  20 53 57 49 20 20 20 20  |         SWI    |
000001e0  20 22 4f 53 5f 52 65 6d  6f 76 65 43 75 72 73 6f  | "OS_RemoveCurso|
000001f0  72 73 22 0d 00 dc 1e 20  20 20 20 20 20 20 20 20  |rs"....         |
00000200  20 41 44 52 20 20 20 20  20 30 2c 76 64 75 6f 75  | ADR     0,vduou|
00000210  74 0d 00 e6 1e 20 20 20  20 20 20 20 20 20 20 41  |t....          A|
00000220  44 52 20 20 20 20 20 31  2c 76 64 75 6f 75 74 0d  |DR     1,vduout.|
00000230  00 f0 2b 20 20 20 20 20  20 20 20 20 20 53 57 49  |..+          SWI|
00000240  20 20 20 20 20 22 4f 53  5f 52 65 61 64 56 64 75  |     "OS_ReadVdu|
00000250  56 61 72 69 61 62 6c 65  73 22 0d 00 fa 1c 20 20  |Variables"....  |
00000260  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00000270  30 2c 23 26 31 35 0d 01  04 20 20 20 20 20 20 20  |0,#&15...       |
00000280  20 20 20 20 41 44 52 20  20 20 20 20 31 2c 6d 6f  |    ADR     1,mo|
00000290  75 73 65 62 6f 78 0d 01  0e 1f 20 20 20 20 20 20  |usebox....      |
000002a0  20 20 20 20 53 57 49 20  20 20 20 20 22 4f 53 5f  |    SWI     "OS_|
000002b0  57 6f 72 64 22 0d 01 18  1e 20 20 20 20 20 20 20  |Word"....       |
000002c0  20 20 20 4c 44 52 20 20  20 20 20 78 2c 76 64 75  |   LDR     x,vdu|
000002d0  6f 75 74 0d 01 22 1e 20  20 20 20 20 20 20 20 20  |out..".         |
000002e0  20 41 44 44 20 20 20 20  20 78 2c 78 2c 23 33 32  | ADD     x,x,#32|
000002f0  30 0d 01 2c 22 20 20 20  20 20 20 20 20 20 20 41  |0..,"          A|
00000300  44 44 20 20 20 20 20 78  2c 78 2c 23 31 32 38 2a  |DD     x,x,#128*|
00000310  36 34 30 0d 01 36 23 20  20 20 20 20 20 20 20 20  |640..6#         |
00000320  20 4d 4f 56 20 20 20 20  20 63 6f 75 6e 74 2c 23  | MOV     count,#|
00000330  31 36 30 30 2a 32 0d 01  40 23 20 20 20 20 20 20  |1600*2..@#      |
00000340  20 20 20 20 41 44 52 20  20 20 20 20 73 69 6e 65  |    ADR     sine|
00000350  61 64 64 2c 73 69 6e 65  73 0d 01 4a 21 20 20 20  |add,sines..J!   |
00000360  20 20 20 20 20 20 20 42  20 20 20 20 20 20 20 6c  |       B       l|
00000370  69 73 74 61 64 64 72 65  73 73 0d 01 54 0d 2e 6d  |istaddress..T..m|
00000380  6f 75 73 65 62 6f 78 0d  01 5e 17 20 20 20 20 20  |ousebox..^.     |
00000390  20 20 20 20 20 45 51 55  42 20 20 20 20 31 0d 01  |     EQUB    1..|
000003a0  68 19 20 20 20 20 20 20  20 20 20 20 45 51 55 57  |h.          EQUW|
000003b0  20 20 20 20 31 30 30 0d  01 72 19 20 20 20 20 20  |    100..r.     |
000003c0  20 20 20 20 20 45 51 55  57 20 20 20 20 31 32 38  |     EQUW    128|
000003d0  0d 01 7c 1e 20 20 20 20  20 20 20 20 20 20 45 51  |..|.          EQ|
000003e0  55 57 20 20 20 20 31 32  38 30 2d 31 30 30 0d 01  |UW    1280-100..|
000003f0  86 1e 20 20 20 20 20 20  20 20 20 20 45 51 55 57  |..          EQUW|
00000400  20 20 20 20 31 30 32 34  2d 31 32 38 0d 01 90 18  |    1024-128....|
00000410  20 20 20 20 20 20 20 20  20 20 45 51 55 42 20 20  |          EQUB  |
00000420  20 20 31 30 0d 01 9a 18  20 20 20 20 20 20 20 20  |  10....        |
00000430  20 20 45 51 55 42 20 20  20 20 31 30 0d 01 a4 32  |  EQUB    10...2|
00000440  20 20 20 20 20 20 20 20  20 20 45 51 55 53 20 20  |          EQUS  |
00000450  20 20 22 43 72 65 61 74  65 64 20 62 79 20 54 68  |  "Created by Th|
00000460  65 20 46 6c 79 69 6e 67  20 50 69 67 21 22 0d 01  |e Flying Pig!"..|
00000470  ae 18 20 20 20 20 20 20  20 20 20 20 45 51 55 42  |..          EQUB|
00000480  20 20 20 20 31 30 0d 01  b8 18 20 20 20 20 20 20  |    10....      |
00000490  20 20 20 20 45 51 55 42  20 20 20 20 31 30 0d 01  |    EQUB    10..|
000004a0  c2 3d 20 20 20 20 20 20  20 20 20 20 45 51 55 53  |.=          EQUS|
000004b0  20 20 20 20 22 53 74 61  72 73 68 69 6e 65 20 2d  |    "Starshine -|
000004c0  20 54 68 65 20 72 65 74  75 72 6e 20 6f 66 20 54  | The return of T|
000004d0  69 6e 6b 65 72 62 65 6c  6c 21 22 0d 01 cc 18 20  |inkerbell!".... |
000004e0  20 20 20 20 20 20 20 20  20 45 51 55 42 20 20 20  |         EQUB   |
000004f0  20 31 30 0d 01 d6 46 20  20 20 20 20 20 20 20 20  | 10...F         |
00000500  20 45 51 55 53 20 20 20  20 22 46 69 6e 69 73 68  | EQUS    "Finish|
00000510  65 64 20 61 72 6f 75 6e  64 20 61 62 6f 75 74 20  |ed around about |
00000520  74 68 65 20 32 39 74 68  20 53 65 70 74 65 6d 62  |the 29th Septemb|
00000530  65 72 20 31 39 39 34 2e  22 0d 01 e0 18 20 20 20  |er 1994."....   |
00000540  20 20 20 20 20 20 20 45  51 55 42 20 20 20 20 31  |       EQUB    1|
00000550  30 0d 01 ea 18 20 20 20  20 20 20 20 20 20 20 45  |0....          E|
00000560  51 55 42 20 20 20 20 31  30 0d 01 f4 13 20 20 20  |QUB    10....   |
00000570  20 20 20 20 20 20 20 41  4c 49 47 4e 0d 01 fe 0e  |       ALIGN....|
00000580  2e 73 68 69 66 74 6c 6f  6f 70 0d 02 08 26 20 20  |.shiftloop...&  |
00000590  20 20 20 20 20 20 20 20  80 53 20 20 20 20 79 2c  |        .S    y,|
000005a0  63 6f 75 6e 74 2c 23 25  31 31 31 31 31 31 31 31  |count,#%11111111|
000005b0  0d 02 12 19 20 20 20 20  20 20 20 20 20 20 ec 51  |....          .Q|
000005c0  20 20 20 79 2c 23 32 35  35 0d 02 1c 2c 20 20 20  |   y,#255...,   |
000005d0  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 74  |       LDR     t|
000005e0  65 6d 70 2c 5b 73 69 6e  65 61 64 64 2c 79 2c 41  |emp,[sineadd,y,A|
000005f0  53 4c 23 32 5d 0d 02 26  28 20 20 20 20 20 20 20  |SL#2]..&(       |
00000600  20 20 20 80 20 20 20 20  20 70 6f 69 6e 74 2c 74  |   .     point,t|
00000610  2c 23 25 31 31 31 31 31  31 31 31 30 30 0d 02 30  |,#%1111111100..0|
00000620  27 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |'          MOV  |
00000630  20 20 20 70 6f 69 6e 74  2c 70 6f 69 6e 74 2c 41  |   point,point,A|
00000640  53 52 23 32 0d 02 3a 25  20 20 20 20 20 20 20 20  |SR#2..:%        |
00000650  20 20 4d 55 4c 20 20 20  20 20 74 65 6d 70 2c 70  |  MUL     temp,p|
00000660  6f 69 6e 74 2c 74 65 6d  70 0d 02 44 25 20 20 20  |oint,temp..D%   |
00000670  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 74  |       ADD     t|
00000680  2c 78 2c 74 65 6d 70 2c  41 53 52 23 31 36 0d 02  |,x,temp,ASR#16..|
00000690  4e 1d 20 20 20 20 20 20  20 20 20 20 41 44 44 20  |N.          ADD |
000006a0  20 20 20 20 79 2c 79 2c  23 36 34 0d 02 58 2c 20  |    y,y,#64..X, |
000006b0  20 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |         LDR    |
000006c0  20 74 65 6d 70 2c 5b 73  69 6e 65 61 64 64 2c 79  | temp,[sineadd,y|
000006d0  2c 41 53 4c 23 32 5d 0d  02 62 25 20 20 20 20 20  |,ASL#2]..b%     |
000006e0  20 20 20 20 20 4d 55 4c  20 20 20 20 20 74 65 6d  |     MUL     tem|
000006f0  70 2c 70 6f 69 6e 74 2c  74 65 6d 70 0d 02 6c 26  |p,point,temp..l&|
00000700  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00000710  20 20 74 65 6d 70 2c 74  65 6d 70 2c 41 53 52 23  |  temp,temp,ASR#|
00000720  31 37 0d 02 76 24 20 20  20 20 20 20 20 20 20 20  |17..v$          |
00000730  41 44 44 20 20 20 20 20  74 2c 74 2c 74 65 6d 70  |ADD     t,t,temp|
00000740  2c 41 53 4c 23 39 0d 02  80 24 20 20 20 20 20 20  |,ASL#9...$      |
00000750  20 20 20 20 41 44 44 20  20 20 20 20 74 2c 74 2c  |    ADD     t,t,|
00000760  74 65 6d 70 2c 41 53 4c  23 37 0d 02 8a 2d 20 20  |temp,ASL#7...-  |
00000770  20 20 20 20 20 20 20 20  53 54 52 20 20 20 20 20  |        STR     |
00000780  74 2c 5b 61 64 64 72 65  73 73 2c 63 6f 75 6e 74  |t,[address,count|
00000790  2c 41 53 4c 23 32 5d 0d  02 94 24 20 20 20 20 20  |,ASL#2]...$     |
000007a0  20 20 20 20 20 53 55 42  20 20 20 20 20 63 6f 75  |     SUB     cou|
000007b0  6e 74 2c 63 6f 75 6e 74  2c 23 31 0d 02 9e 27 20  |nt,count,#1...' |
000007c0  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
000007d0  20 70 6f 69 6e 74 2c 70  6f 69 6e 74 2c 41 53 52  | point,point,ASR|
000007e0  23 31 0d 02 a8 26 20 20  20 20 20 20 20 20 20 20  |#1...&          |
000007f0  41 44 44 20 20 20 20 20  70 6f 69 6e 74 2c 70 6f  |ADD     point,po|
00000800  69 6e 74 2c 23 31 32 38  0d 02 b2 31 20 20 20 20  |int,#128...1    |
00000810  20 20 20 20 20 20 53 54  52 20 20 20 20 20 70 6f  |      STR     po|
00000820  69 6e 74 2c 5b 61 64 64  72 65 73 73 2c 63 6f 75  |int,[address,cou|
00000830  6e 74 2c 41 53 4c 23 32  5d 0d 02 bc 24 20 20 20  |nt,ASL#2]...$   |
00000840  20 20 20 20 20 20 20 53  55 42 53 20 20 20 20 63  |       SUBS    c|
00000850  6f 75 6e 74 2c 63 6f 75  6e 74 2c 23 31 0d 02 c6  |ount,count,#1...|
00000860  1f 20 20 20 20 20 20 20  20 20 20 42 47 45 20 20  |.          BGE  |
00000870  20 20 20 73 68 69 66 74  6c 6f 6f 70 0d 02 d0 1f  |   shiftloop....|
00000880  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00000890  20 20 63 6f 75 6e 74 2c  23 35 30 0d 02 da 1b 20  |  count,#50.... |
000008a0  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
000008b0  20 30 2c 23 31 39 0d 02  e4 09 2e 77 61 69 74 0d  | 0,#19.....wait.|
000008c0  02 ee 1f 20 20 20 20 20  20 20 20 20 20 53 57 49  |...          SWI|
000008d0  20 20 20 20 20 22 4f 53  5f 42 79 74 65 22 0d 02  |     "OS_Byte"..|
000008e0  f8 24 20 20 20 20 20 20  20 20 20 20 53 55 42 53  |.$          SUBS|
000008f0  20 20 20 20 63 6f 75 6e  74 2c 63 6f 75 6e 74 2c  |    count,count,|
00000900  23 31 0d 03 02 1a 20 20  20 20 20 20 20 20 20 20  |#1....          |
00000910  42 47 54 20 20 20 20 20  77 61 69 74 0d 03 0c 1e  |BGT     wait....|
00000920  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00000930  20 20 63 6f 75 6e 74 2c  23 30 0d 03 16 09 2e 6c  |  count,#0.....l|
00000940  6f 6f 70 0d 03 20 24 20  20 20 20 20 20 20 20 20  |oop.. $         |
00000950  20 41 44 44 20 20 20 20  20 63 6f 75 6e 74 2c 63  | ADD     count,c|
00000960  6f 75 6e 74 2c 23 32 0d  03 2a 21 20 20 20 20 20  |ount,#2..*!     |
00000970  20 20 20 20 20 43 4d 50  20 20 20 20 20 63 6f 75  |     CMP     cou|
00000980  6e 74 2c 23 31 36 30 30  0d 03 34 1e 20 20 20 20  |nt,#1600..4.    |
00000990  20 20 20 20 20 20 4d 4f  56 47 45 20 20 20 63 6f  |      MOVGE   co|
000009a0  75 6e 74 2c 23 30 0d 03  3e 31 20 20 20 20 20 20  |unt,#0..>1      |
000009b0  20 20 20 20 4c 44 52 20  20 20 20 20 70 6f 69 6e  |    LDR     poin|
000009c0  74 2c 5b 61 64 64 72 65  73 73 2c 63 6f 75 6e 74  |t,[address,count|
000009d0  2c 41 53 4c 23 32 5d 0d  03 48 24 20 20 20 20 20  |,ASL#2]..H$     |
000009e0  20 20 20 20 20 41 44 44  20 20 20 20 20 63 6f 75  |     ADD     cou|
000009f0  6e 74 2c 63 6f 75 6e 74  2c 23 31 0d 03 52 30 20  |nt,count,#1..R0 |
00000a00  20 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |         LDR    |
00000a10  20 74 69 6d 65 2c 5b 61  64 64 72 65 73 73 2c 63  | time,[address,c|
00000a20  6f 75 6e 74 2c 41 53 4c  23 32 5d 0d 03 5c 22 20  |ount,ASL#2]..\" |
00000a30  20 20 20 20 20 20 20 20  20 53 55 42 53 20 20 20  |         SUBS   |
00000a40  20 74 69 6d 65 2c 74 69  6d 65 2c 23 31 0d 03 66  | time,time,#1..f|
00000a50  30 20 20 20 20 20 20 20  20 20 20 53 54 52 20 20  |0          STR  |
00000a60  20 20 20 74 69 6d 65 2c  5b 61 64 64 72 65 73 73  |   time,[address|
00000a70  2c 63 6f 75 6e 74 2c 41  53 4c 23 32 5d 0d 03 70  |,count,ASL#2]..p|
00000a80  24 20 20 20 20 20 20 20  20 20 20 53 55 42 47 54  |$          SUBGT|
00000a90  20 20 20 63 6f 75 6e 74  2c 63 6f 75 6e 74 2c 23  |   count,count,#|
00000aa0  31 0d 03 7a 22 20 20 20  20 20 20 20 20 20 20 53  |1..z"          S|
00000ab0  54 52 42 20 20 20 20 74  69 6d 65 2c 5b 70 6f 69  |TRB    time,[poi|
00000ac0  6e 74 5d 0d 03 84 1a 20  20 20 20 20 20 20 20 20  |nt]....         |
00000ad0  20 42 47 54 20 20 20 20  20 6c 6f 6f 70 0d 03 8e  | BGT     loop...|
00000ae0  20 20 20 20 20 20 20 20  20 20 20 53 57 49 20 20  |           SWI  |
00000af0  20 20 20 22 4f 53 5f 4d  6f 75 73 65 22 0d 03 98  |   "OS_Mouse"...|
00000b00  1a 2e 6d 6f 76 65 20 20  20 20 20 4c 44 52 20 20  |..move     LDR  |
00000b10  20 20 20 71 2c 71 73 0d  03 a2 1a 20 20 20 20 20  |   q,qs....     |
00000b20  20 20 20 20 20 4c 44 52  20 20 20 20 20 77 2c 77  |     LDR     w,w|
00000b30  73 0d 03 ac 1c 20 20 20  20 20 20 20 20 20 20 41  |s....          A|
00000b40  44 44 20 20 20 20 20 71  2c 71 2c 23 33 0d 03 b6  |DD     q,q,#3...|
00000b50  1c 20 20 20 20 20 20 20  20 20 20 41 44 44 20 20  |.          ADD  |
00000b60  20 20 20 77 2c 77 2c 23  32 0d 03 c0 1a 20 20 20  |   w,w,#2....   |
00000b70  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 71  |       STR     q|
00000b80  2c 71 73 0d 03 ca 1a 20  20 20 20 20 20 20 20 20  |,qs....         |
00000b90  20 53 54 52 20 20 20 20  20 77 2c 77 73 0d 03 d4  | STR     w,ws...|
00000ba0  20 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |           MOV  |
00000bb0  20 20 20 76 61 6c 75 65  2c 23 32 35 35 0d 03 de  |   value,#255...|
00000bc0  24 20 20 20 20 20 20 20  20 20 20 80 20 20 20 20  |$          .    |
00000bd0  20 71 2c 71 2c 76 61 6c  75 65 2c 41 53 4c 23 31  | q,q,value,ASL#1|
00000be0  30 0d 03 e8 24 20 20 20  20 20 20 20 20 20 20 80  |0...$          .|
00000bf0  20 20 20 20 20 77 2c 77  2c 76 61 6c 75 65 2c 41  |     w,w,value,A|
00000c00  53 4c 23 31 31 0d 03 f2  2c 20 20 20 20 20 20 20  |SL#11...,       |
00000c10  20 20 20 4c 44 52 20 20  20 20 20 74 65 6d 70 2c  |   LDR     temp,|
00000c20  5b 73 69 6e 65 61 64 64  2c 71 2c 41 53 52 23 38  |[sineadd,q,ASR#8|
00000c30  5d 0d 03 fc 1a 20 20 20  20 20 20 20 20 20 20 4c  |]....          L|
00000c40  44 52 20 20 20 20 20 74  2c 74 73 0d 04 06 24 20  |DR     t,ts...$ |
00000c50  20 20 20 20 20 20 20 20  20 41 44 44 20 20 20 20  |         ADD    |
00000c60  20 74 2c 74 2c 74 65 6d  70 2c 41 53 52 23 35 0d  | t,t,temp,ASR#5.|
00000c70  04 10 1a 20 20 20 20 20  20 20 20 20 20 53 54 52  |...          STR|
00000c80  20 20 20 20 20 74 2c 74  73 0d 04 1a 1a 20 20 20  |     t,ts....   |
00000c90  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 69  |       LDR     i|
00000ca0  2c 69 73 0d 04 24 24 20  20 20 20 20 20 20 20 20  |,is..$$         |
00000cb0  20 41 44 44 20 20 20 20  20 69 2c 69 2c 74 65 6d  | ADD     i,i,tem|
00000cc0  70 2c 41 53 52 23 36 0d  04 2e 1a 20 20 20 20 20  |p,ASR#6....     |
00000cd0  20 20 20 20 20 53 54 52  20 20 20 20 20 69 2c 69  |     STR     i,i|
00000ce0  73 0d 04 38 2c 20 20 20  20 20 20 20 20 20 20 4c  |s..8,          L|
00000cf0  44 52 20 20 20 20 20 74  65 6d 70 2c 5b 73 69 6e  |DR     temp,[sin|
00000d00  65 61 64 64 2c 77 2c 41  53 52 23 39 5d 0d 04 42  |eadd,w,ASR#9]..B|
00000d10  1a 20 20 20 20 20 20 20  20 20 20 4c 44 52 20 20  |.          LDR  |
00000d20  20 20 20 70 2c 70 73 0d  04 4c 24 20 20 20 20 20  |   p,ps..L$     |
00000d30  20 20 20 20 20 41 44 44  20 20 20 20 20 70 2c 70  |     ADD     p,p|
00000d40  2c 74 65 6d 70 2c 41 53  52 23 36 0d 04 56 1a 20  |,temp,ASR#6..V. |
00000d50  20 20 20 20 20 20 20 20  20 53 54 52 20 20 20 20  |         STR    |
00000d60  20 70 2c 70 73 0d 04 60  1a 20 20 20 20 20 20 20  | p,ps..`.       |
00000d70  20 20 20 4c 44 52 20 20  20 20 20 75 2c 75 73 0d  |   LDR     u,us.|
00000d80  04 6a 24 20 20 20 20 20  20 20 20 20 20 41 44 44  |.j$          ADD|
00000d90  20 20 20 20 20 75 2c 75  2c 74 65 6d 70 2c 41 53  |     u,u,temp,AS|
00000da0  52 23 37 0d 04 74 1a 20  20 20 20 20 20 20 20 20  |R#7..t.         |
00000db0  20 53 54 52 20 20 20 20  20 75 2c 75 73 0d 04 7e  | STR     u,us..~|
00000dc0  24 20 20 20 20 20 20 20  20 20 20 80 20 20 20 20  |$          .    |
00000dd0  20 75 2c 75 2c 76 61 6c  75 65 2c 41 53 4c 23 31  | u,u,value,ASL#1|
00000de0  36 0d 04 88 24 20 20 20  20 20 20 20 20 20 20 80  |6...$          .|
00000df0  20 20 20 20 20 74 2c 74  2c 76 61 6c 75 65 2c 41  |     t,t,value,A|
00000e00  53 4c 23 31 33 0d 04 92  2d 20 20 20 20 20 20 20  |SL#13...-       |
00000e10  20 20 20 4c 44 52 20 20  20 20 20 74 65 6d 70 2c  |   LDR     temp,|
00000e20  5b 73 69 6e 65 61 64 64  2c 75 2c 41 53 52 23 31  |[sineadd,u,ASR#1|
00000e30  34 5d 0d 04 9c 2a 20 20  20 20 20 20 20 20 20 20  |4]...*          |
00000e40  4c 44 52 20 20 20 20 20  78 2c 5b 73 69 6e 65 61  |LDR     x,[sinea|
00000e50  64 64 2c 74 2c 41 53 52  23 31 31 5d 0d 04 a6 1e  |dd,t,ASR#11]....|
00000e60  20 20 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |          ADD   |
00000e70  20 20 78 2c 78 2c 74 65  6d 70 0d 04 b0 1f 20 20  |  x,x,temp....  |
00000e80  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00000e90  74 65 6d 70 2c 23 33 30  30 0d 04 ba 1f 20 20 20  |temp,#300....   |
00000ea0  20 20 20 20 20 20 20 4d  55 4c 20 20 20 20 20 78  |       MUL     x|
00000eb0  32 2c 74 65 6d 70 2c 78  0d 04 c4 21 20 20 20 20  |2,temp,x...!    |
00000ec0  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 78 2c  |      MOV     x,|
00000ed0  78 32 2c 41 53 52 23 31  36 0d 04 ce 1e 20 20 20  |x2,ASR#16....   |
00000ee0  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 78  |       ADD     x|
00000ef0  2c 78 2c 23 36 34 30 0d  04 d8 24 20 20 20 20 20  |,x,#640...$     |
00000f00  20 20 20 20 20 80 20 20  20 20 20 69 2c 69 2c 76  |     .     i,i,v|
00000f10  61 6c 75 65 2c 41 53 4c  23 31 35 0d 04 e2 24 20  |alue,ASL#15...$ |
00000f20  20 20 20 20 20 20 20 20  20 80 20 20 20 20 20 70  |         .     p|
00000f30  2c 70 2c 76 61 6c 75 65  2c 41 53 4c 23 31 32 0d  |,p,value,ASL#12.|
00000f40  04 ec 2d 20 20 20 20 20  20 20 20 20 20 4c 44 52  |..-          LDR|
00000f50  20 20 20 20 20 74 65 6d  70 2c 5b 73 69 6e 65 61  |     temp,[sinea|
00000f60  64 64 2c 69 2c 41 53 52  23 31 33 5d 0d 04 f6 2a  |dd,i,ASR#13]...*|
00000f70  20 20 20 20 20 20 20 20  20 20 4c 44 52 20 20 20  |          LDR   |
00000f80  20 20 79 2c 5b 73 69 6e  65 61 64 64 2c 70 2c 41  |  y,[sineadd,p,A|
00000f90  53 52 23 31 30 5d 0d 05  00 1e 20 20 20 20 20 20  |SR#10]....      |
00000fa0  20 20 20 20 41 44 44 20  20 20 20 20 79 2c 79 2c  |    ADD     y,y,|
00000fb0  74 65 6d 70 0d 05 0a 1f  20 20 20 20 20 20 20 20  |temp....        |
00000fc0  20 20 4d 4f 56 20 20 20  20 20 74 65 6d 70 2c 23  |  MOV     temp,#|
00000fd0  31 39 30 0d 05 14 1f 20  20 20 20 20 20 20 20 20  |190....         |
00000fe0  20 4d 55 4c 20 20 20 20  20 79 32 2c 74 65 6d 70  | MUL     y2,temp|
00000ff0  2c 79 0d 05 1e 21 20 20  20 20 20 20 20 20 20 20  |,y...!          |
00001000  4d 4f 56 20 20 20 20 20  79 2c 79 32 2c 41 53 52  |MOV     y,y2,ASR|
00001010  23 31 36 0d 05 28 1e 20  20 20 20 20 20 20 20 20  |#16..(.         |
00001020  20 41 44 44 20 20 20 20  20 79 2c 79 2c 23 35 31  | ADD     y,y,#51|
00001030  32 0d 05 32 1a 20 20 20  20 20 20 20 20 20 20 43  |2..2.          C|
00001040  4d 50 20 20 20 20 20 7a  2c 23 31 0d 05 3c 20 20  |MP     z,#1..<  |
00001050  20 20 20 20 20 20 20 20  20 43 4d 50 47 54 20 20  |         CMPGT  |
00001060  20 63 6f 75 6e 74 2c 23  38 30 30 0d 05 46 20 20  | count,#800..F  |
00001070  20 20 20 20 20 20 20 20  20 53 57 49 47 45 20 20  |         SWIGE  |
00001080  20 22 4f 53 5f 4d 6f 75  73 65 22 0d 05 50 1f 20  | "OS_Mouse"..P. |
00001090  20 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |         LDR    |
000010a0  20 74 69 6d 65 2c 70 6c  6f 67 0d 05 5a 1d 20 20  | time,plog..Z.  |
000010b0  20 20 20 20 20 20 20 20  41 44 52 20 20 20 20 20  |        ADR     |
000010c0  72 6e 64 2c 6c 6f 67 0d  05 64 2c 20 20 20 20 20  |rnd,log..d,     |
000010d0  20 20 20 20 20 4c 44 52  20 20 20 20 20 70 6f 69  |     LDR     poi|
000010e0  6e 74 2c 5b 72 6e 64 2c  74 69 6d 65 2c 41 53 4c  |nt,[rnd,time,ASL|
000010f0  23 32 5d 0d 05 6e 29 20  20 20 20 20 20 20 20 20  |#2]..n)         |
00001100  20 53 54 52 20 20 20 20  20 78 32 2c 5b 72 6e 64  | STR     x2,[rnd|
00001110  2c 74 69 6d 65 2c 41 53  4c 23 32 5d 0d 05 78 1e  |,time,ASL#2]..x.|
00001120  20 20 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |          CMP   |
00001130  20 20 70 6f 69 6e 74 2c  78 32 0d 05 82 24 20 20  |  point,x2...$  |
00001140  20 20 20 20 20 20 20 20  53 55 42 47 54 20 20 20  |        SUBGT   |
00001150  70 6f 69 6e 74 2c 70 6f  69 6e 74 2c 78 32 0d 05  |point,point,x2..|
00001160  8c 24 20 20 20 20 20 20  20 20 20 20 53 55 42 4c  |.$          SUBL|
00001170  45 20 20 20 70 6f 69 6e  74 2c 78 32 2c 70 6f 69  |E   point,x2,poi|
00001180  6e 74 0d 05 96 22 20 20  20 20 20 20 20 20 20 20  |nt..."          |
00001190  53 55 42 20 20 20 20 20  74 69 6d 65 2c 74 69 6d  |SUB     time,tim|
000011a0  65 2c 23 31 0d 05 a0 2b  20 20 20 20 20 20 20 20  |e,#1...+        |
000011b0  20 20 4c 44 52 20 20 20  20 20 74 65 6d 70 2c 5b  |  LDR     temp,[|
000011c0  72 6e 64 2c 74 69 6d 65  2c 41 53 4c 23 32 5d 0d  |rnd,time,ASL#2].|
000011d0  05 aa 29 20 20 20 20 20  20 20 20 20 20 53 54 52  |..)          STR|
000011e0  20 20 20 20 20 79 32 2c  5b 72 6e 64 2c 74 69 6d  |     y2,[rnd,tim|
000011f0  65 2c 41 53 4c 23 32 5d  0d 05 b4 22 20 20 20 20  |e,ASL#2]..."    |
00001200  20 20 20 20 20 20 53 55  42 53 20 20 20 20 74 69  |      SUBS    ti|
00001210  6d 65 2c 74 69 6d 65 2c  23 31 0d 05 be 23 20 20  |me,time,#1...#  |
00001220  20 20 20 20 20 20 20 20  4d 4f 56 4c 45 20 20 20  |        MOVLE   |
00001230  74 69 6d 65 2c 23 6c 6f  67 73 25 2a 32 0d 05 c8  |time,#logs%*2...|
00001240  1f 20 20 20 20 20 20 20  20 20 20 53 54 52 20 20  |.          STR  |
00001250  20 20 20 74 69 6d 65 2c  70 6c 6f 67 0d 05 d2 1d  |   time,plog....|
00001260  20 20 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |          CMP   |
00001270  20 20 74 65 6d 70 2c 79  32 0d 05 dc 22 20 20 20  |  temp,y2..."   |
00001280  20 20 20 20 20 20 20 53  55 42 47 54 20 20 20 74  |       SUBGT   t|
00001290  65 6d 70 2c 74 65 6d 70  2c 79 32 0d 05 e6 22 20  |emp,temp,y2..." |
000012a0  20 20 20 20 20 20 20 20  20 53 55 42 4c 45 20 20  |         SUBLE  |
000012b0  20 74 65 6d 70 2c 79 32  2c 74 65 6d 70 0d 05 f0  | temp,y2,temp...|
000012c0  25 20 20 20 20 20 20 20  20 20 20 41 44 44 20 20  |%          ADD  |
000012d0  20 20 20 74 69 6d 65 2c  70 6f 69 6e 74 2c 74 65  |   time,point,te|
000012e0  6d 70 0d 05 fa 26 20 20  20 20 20 20 20 20 20 20  |mp...&          |
000012f0  4d 4f 56 53 20 20 20 20  74 69 6d 65 2c 74 69 6d  |MOVS    time,tim|
00001300  65 2c 41 53 52 23 62 25  0d 06 04 1a 20 20 20 20  |e,ASR#b%....    |
00001310  20 20 20 20 20 20 ec 51  20 20 20 74 69 6d 65 2c  |      .Q   time,|
00001320  23 31 0d 06 0e 1e 20 20  20 20 20 20 20 20 20 20  |#1....          |
00001330  43 4d 50 20 20 20 20 20  74 69 6d 65 2c 23 33 34  |CMP     time,#34|
00001340  0d 06 18 1e 20 20 20 20  20 20 20 20 20 20 4d 4f  |....          MO|
00001350  56 47 54 20 20 20 74 69  6d 65 2c 23 33 34 0d 06  |VGT   time,#34..|
00001360  22 1f 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |".          MOV |
00001370  20 20 20 20 78 2c 78 2c  41 53 52 23 31 0d 06 2c  |    x,x,ASR#1..,|
00001380  1f 20 20 20 20 20 20 20  20 20 20 52 53 42 20 20  |.          RSB  |
00001390  20 20 20 79 2c 79 2c 23  31 30 32 34 0d 06 36 1f  |   y,y,#1024..6.|
000013a0  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
000013b0  20 20 79 2c 79 2c 41 53  52 23 32 0d 06 40 1e 20  |  y,y,ASR#2..@. |
000013c0  20 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |         LDR    |
000013d0  20 72 6e 64 2c 72 6e 64  73 0d 06 4a 20 20 20 20  | rnd,rnds..J    |
000013e0  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 70  |       LDR     p|
000013f0  6f 69 6e 74 2c 72 6e 64  74 0d 06 54 20 20 20 20  |oint,rndt..T    |
00001400  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 72  |       ADD     r|
00001410  6e 64 2c 72 6e 64 2c 23  37 0d 06 5e 2b 20 20 20  |nd,rnd,#7..^+   |
00001420  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 70  |       ADD     p|
00001430  6f 69 6e 74 2c 70 6f 69  6e 74 2c 72 6e 64 2c 41  |oint,point,rnd,A|
00001440  53 52 23 31 0d 06 68 24  20 20 20 20 20 20 20 20  |SR#1..h$        |
00001450  20 20 41 44 44 20 20 20  20 20 70 6f 69 6e 74 2c  |  ADD     point,|
00001460  70 6f 69 6e 74 2c 23 33  0d 06 72 29 20 20 20 20  |point,#3..r)    |
00001470  20 20 20 20 20 20 41 44  44 20 20 20 20 20 72 6e  |      ADD     rn|
00001480  64 2c 72 6e 64 2c 70 6f  69 6e 74 2c 41 53 52 23  |d,rnd,point,ASR#|
00001490  31 0d 06 7c 28 20 20 20  20 20 20 20 20 20 20 4d  |1..|(          M|
000014a0  4f 56 20 20 20 20 20 70  6f 69 6e 74 2c 70 6f 69  |OV     point,poi|
000014b0  6e 74 2c 4c 53 4c 23 32  33 0d 06 86 28 20 20 20  |nt,LSL#23...(   |
000014c0  20 20 20 20 20 20 20 4d  4f 56 20 20 20 20 20 70  |       MOV     p|
000014d0  6f 69 6e 74 2c 70 6f 69  6e 74 2c 4c 53 52 23 32  |oint,point,LSR#2|
000014e0  33 0d 06 90 20 20 20 20  20 20 20 20 20 20 20 53  |3...           S|
000014f0  54 52 20 20 20 20 20 70  6f 69 6e 74 2c 72 6e 64  |TR     point,rnd|
00001500  74 0d 06 9a 1e 20 20 20  20 20 20 20 20 20 20 53  |t....          S|
00001510  54 52 20 20 20 20 20 72  6e 64 2c 72 6e 64 73 0d  |TR     rnd,rnds.|
00001520  06 a4 22 20 20 20 20 20  20 20 20 20 20 80 20 20  |.."          .  |
00001530  20 20 20 72 6e 64 2c 72  6e 64 2c 23 25 31 31 31  |   rnd,rnd,#%111|
00001540  31 0d 06 ae 24 20 20 20  20 20 20 20 20 20 20 4d  |1...$          M|
00001550  4f 56 20 20 20 20 20 74  65 6d 70 2c 72 6e 64 2c  |OV     temp,rnd,|
00001560  41 53 4c 23 34 0d 06 b8  24 20 20 20 20 20 20 20  |ASL#4...$       |
00001570  20 20 20 52 53 42 20 20  20 20 20 74 65 6d 70 2c  |   RSB     temp,|
00001580  74 65 6d 70 2c 23 32 36  30 0d 06 c2 30 20 20 20  |temp,#260...0   |
00001590  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 74  |       STR     t|
000015a0  65 6d 70 2c 5b 61 64 64  72 65 73 73 2c 63 6f 75  |emp,[address,cou|
000015b0  6e 74 2c 41 53 4c 23 32  5d 0d 06 cc 20 20 20 20  |nt,ASL#2]...    |
000015c0  20 20 20 20 20 20 20 43  4d 50 20 20 20 20 20 70  |       CMP     p|
000015d0  6f 69 6e 74 2c 23 32 35  36 0d 06 d6 26 20 20 20  |oint,#256...&   |
000015e0  20 20 20 20 20 20 20 53  55 42 47 45 20 20 20 70  |       SUBGE   p|
000015f0  6f 69 6e 74 2c 70 6f 69  6e 74 2c 23 32 35 36 0d  |oint,point,#256.|
00001600  06 e0 22 20 20 20 20 20  20 20 20 20 20 4d 55 4c  |.."          MUL|
00001610  20 20 20 20 20 72 6e 64  2c 74 69 6d 65 2c 72 6e  |     rnd,time,rn|
00001620  64 0d 06 ea 30 20 20 20  20 20 20 20 20 20 20 4c  |d...0          L|
00001630  44 52 20 20 20 20 20 74  65 6d 70 2c 5b 73 69 6e  |DR     temp,[sin|
00001640  65 61 64 64 2c 70 6f 69  6e 74 2c 41 53 4c 23 32  |eadd,point,ASL#2|
00001650  5d 0d 06 f4 23 20 20 20  20 20 20 20 20 20 20 4d  |]...#          M|
00001660  55 4c 20 20 20 20 20 74  65 6d 70 2c 72 6e 64 2c  |UL     temp,rnd,|
00001670  74 65 6d 70 0d 06 fe 25  20 20 20 20 20 20 20 20  |temp...%        |
00001680  20 20 41 44 44 20 20 20  20 20 78 2c 78 2c 74 65  |  ADD     x,x,te|
00001690  6d 70 2c 41 53 52 23 61  25 0d 07 08 25 20 20 20  |mp,ASR#a%...%   |
000016a0  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 70  |       ADD     p|
000016b0  6f 69 6e 74 2c 70 6f 69  6e 74 2c 23 36 34 0d 07  |oint,point,#64..|
000016c0  12 30 20 20 20 20 20 20  20 20 20 20 4c 44 52 20  |.0          LDR |
000016d0  20 20 20 20 74 65 6d 70  2c 5b 73 69 6e 65 61 64  |    temp,[sinead|
000016e0  64 2c 70 6f 69 6e 74 2c  41 53 4c 23 32 5d 0d 07  |d,point,ASL#2]..|
000016f0  1c 23 20 20 20 20 20 20  20 20 20 20 4d 55 4c 20  |.#          MUL |
00001700  20 20 20 20 74 65 6d 70  2c 72 6e 64 2c 74 65 6d  |    temp,rnd,tem|
00001710  70 0d 07 26 29 20 20 20  20 20 20 20 20 20 20 41  |p..&)          A|
00001720  44 44 20 20 20 20 20 79  2c 79 2c 74 65 6d 70 2c  |DD     y,y,temp,|
00001730  41 53 52 23 28 61 25 2b  31 29 0d 07 30 25 20 20  |ASR#(a%+1)..0%  |
00001740  20 20 20 20 20 20 20 20  41 44 44 20 20 20 20 20  |        ADD     |
00001750  70 6f 69 6e 74 2c 78 2c  79 2c 41 53 4c 23 39 0d  |point,x,y,ASL#9.|
00001760  07 3a 29 20 20 20 20 20  20 20 20 20 20 41 44 44  |.:)          ADD|
00001770  20 20 20 20 20 70 6f 69  6e 74 2c 70 6f 69 6e 74  |     point,point|
00001780  2c 79 2c 41 53 4c 23 37  0d 07 44 21 20 20 20 20  |,y,ASL#7..D!    |
00001790  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 74 65  |      LDR     te|
000017a0  6d 70 2c 76 64 75 6f 75  74 0d 07 4e 26 20 20 20  |mp,vduout..N&   |
000017b0  20 20 20 20 20 20 20 41  44 44 20 20 20 20 20 70  |       ADD     p|
000017c0  6f 69 6e 74 2c 70 6f 69  6e 74 2c 74 65 6d 70 0d  |oint,point,temp.|
000017d0  07 58 24 20 20 20 20 20  20 20 20 20 20 53 55 42  |.X$          SUB|
000017e0  20 20 20 20 20 63 6f 75  6e 74 2c 63 6f 75 6e 74  |     count,count|
000017f0  2c 23 31 0d 07 62 31 20  20 20 20 20 20 20 20 20  |,#1..b1         |
00001800  20 53 54 52 20 20 20 20  20 70 6f 69 6e 74 2c 5b  | STR     point,[|
00001810  61 64 64 72 65 73 73 2c  63 6f 75 6e 74 2c 41 53  |address,count,AS|
00001820  4c 23 32 5d 0d 07 6c 23  20 20 20 20 20 20 20 20  |L#2]..l#        |
00001830  20 20 53 54 52 42 20 20  20 20 63 6f 75 6e 74 2c  |  STRB    count,|
00001840  5b 70 6f 69 6e 74 5d 0d  07 76 2a 20 20 20 20 20  |[point]..v*     |
00001850  20 20 20 20 20 53 57 49  20 20 20 20 20 22 4f 53  |     SWI     "OS|
00001860  5f 52 65 61 64 45 73 63  61 70 65 53 74 61 74 65  |_ReadEscapeState|
00001870  22 0d 07 80 1a 20 20 20  20 20 20 20 20 20 20 42  |"....          B|
00001880  43 43 20 20 20 20 20 6c  6f 6f 70 0d 07 8a 1d 20  |CC     loop.... |
00001890  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
000018a0  20 50 43 2c 6c 69 6e 6b  0d 07 94 19 2e 76 64 75  | PC,link.....vdu|
000018b0  6f 75 74 20 20 20 45 51  55 44 20 20 20 20 31 34  |out   EQUD    14|
000018c0  38 0d 07 9e 18 20 20 20  20 20 20 20 20 20 20 45  |8....          E|
000018d0  51 55 44 20 20 20 20 2d  31 0d 07 a8 17 2e 72 6e  |QUD    -1.....rn|
000018e0  64 73 20 20 20 20 20 45  51 55 44 20 20 20 20 30  |ds     EQUD    0|
000018f0  0d 07 b2 17 2e 72 6e 64  74 20 20 20 20 20 45 51  |.....rndt     EQ|
00001900  55 44 20 20 20 20 30 0d  07 bc 08 2e 6c 6f 67 0d  |UD    0.....log.|
00001910  07 c6 14 5d 50 25 2b 3d  28 6c 6f 67 73 25 2a 38  |...]P%+=(logs%*8|
00001920  29 2b 38 0d 07 d0 0d 5b  4f 50 54 70 61 73 73 25  |)+8....[OPTpass%|
00001930  0d 07 da 17 2e 73 69 6e  65 73 20 20 20 20 45 51  |.....sines    EQ|
00001940  55 44 20 20 20 20 30 0d  07 e4 0e 5d 50 25 2b 3d  |UD    0....]P%+=|
00001950  34 35 30 2a 34 0d 07 ee  0d 5b 4f 50 54 70 61 73  |450*4....[OPTpas|
00001960  73 25 0d 07 f8 17 2e 71  73 20 20 20 20 20 20 20  |s%.....qs       |
00001970  45 51 55 44 20 20 20 20  30 0d 08 02 17 2e 77 73  |EQUD    0.....ws|
00001980  20 20 20 20 20 20 20 45  51 55 44 20 20 20 20 30  |       EQUD    0|
00001990  0d 08 0c 17 2e 74 73 20  20 20 20 20 20 20 45 51  |.....ts       EQ|
000019a0  55 44 20 20 20 20 30 0d  08 16 17 2e 69 73 20 20  |UD    0.....is  |
000019b0  20 20 20 20 20 45 51 55  44 20 20 20 20 30 0d 08  |     EQUD    0..|
000019c0  20 17 2e 70 73 20 20 20  20 20 20 20 45 51 55 44  | ..ps       EQUD|
000019d0  20 20 20 20 30 0d 08 2a  17 2e 75 73 20 20 20 20  |    0..*..us    |
000019e0  20 20 20 45 51 55 44 20  20 20 20 30 0d 08 34 1b  |   EQUD    0..4.|
000019f0  2e 70 6c 6f 67 20 20 20  20 20 45 51 55 44 20 20  |.plog     EQUD  |
00001a00  20 20 6c 6f 67 73 25 0d  08 3e 10 2e 6c 69 73 74  |  logs%..>..list|
00001a10  61 64 64 72 65 73 73 0d  08 48 22 20 20 20 20 20  |address..H"     |
00001a20  20 20 20 20 20 41 44 52  20 20 20 20 20 61 64 64  |     ADR     add|
00001a30  72 65 73 73 2c 6c 69 73  74 0d 08 52 1f 20 20 20  |ress,list..R.   |
00001a40  20 20 20 20 20 20 20 42  20 20 20 20 20 20 20 73  |       B       s|
00001a50  68 69 66 74 6c 6f 6f 70  0d 08 5c 18 2e 6c 69 73  |hiftloop..\..lis|
00001a60  74 20 20 20 20 20 45 51  55 44 20 20 20 20 31 30  |t     EQUD    10|
00001a70  0d 08 66 18 20 20 20 20  20 20 20 20 20 20 45 51  |..f.          EQ|
00001a80  55 44 20 20 20 20 31 30  0d 08 70 06 5d ed 0d 08  |UD    10..p.]...|
00001a90  7a 34 e3 6e 25 3d 30 b8  34 35 30 3a 73 69 6e 65  |z4.n%=0.450:sine|
00001aa0  73 21 28 6e 25 2a 34 29  3d a8 28 36 35 35 33 36  |s!(n%*4)=.(65536|
00001ab0  2a b5 b2 28 6e 25 2a 31  2e 34 30 36 32 35 29 29  |*..(n%*1.40625))|
00001ac0  3a ed 0d 08 84 0b e7 73  61 76 65 25 8c 0d 08 8e  |:......save%....|
00001ad0  29 ff 28 22 53 61 76 65  20 53 74 61 72 53 68 69  |).("Save StarShi|
00001ae0  6e 65 20 22 2b c3 7e 63  6f 64 65 25 2b 22 20 22  |ne "+.~code%+" "|
00001af0  2b c3 7e 50 25 29 0d 08  98 23 ff 28 22 53 65 74  |+.~P%)...#.("Set|
00001b00  54 79 70 65 20 53 74 61  72 53 68 69 6e 65 20 41  |Type StarShine A|
00001b10  62 73 6f 6c 75 74 65 22  29 0d 08 a2 05 cc 0d 08  |bsolute").......|
00001b20  ac 0a d6 73 74 61 72 74  0d 08 b6 05 cd 0d 08 c0  |...start........|
00001b30  05 e0 0d ff                                       |....|
00001b34