Home » Archimedes archive » Micro User » MU 1991-07.adf » PD-Stuff » Music/!PlayerMod/Bits/TrackerIV

Music/!PlayerMod/Bits/TrackerIV

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 » Micro User » MU 1991-07.adf » PD-Stuff
Filename: Music/!PlayerMod/Bits/TrackerIV
Read OK:
File size: 1029 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > TrackerIV
   20REM   Four Track display
   30REM   Original code by Nick Smith
   40REM   Complete rewrite by The Mad Dog, 1990
   50:
   60MODE 15
   70DIM code% 25000
   80SYS "OS_Module",18,"TrackerModule" TO ,,,point%,pr%
   90IF pr%=0 THEN PRINT '"Please run a STracker tune before this app."':END
  100:
  110mul%=640
  120:
  130xpos=11
  140point=12
  150screenbse=10
  160multiply=9
  170FOR J%=0 TO 2 STEP 2
  180P%=code%
  190[OPT J%
  200 
  210 STMFD   R13!,{R14}
  220 SWI     &2010C
  230 MOV     point,R0
  240 MOV     screenbse,R1
  250 SWI     "OS_RemoveCursors"
  260 MOV     multiply,#mul%
  270
  280 MOV     R8,#0
  290 B       bigloop
  300.ltr
  310 EQUD    ltable
  320.orr
  330 EQUD    oldrefs
  340.or2r
  350 EQUD    oldrefs2
  360.cols
  370 EQUB 0:EQUB &17:EQUB &77:EQUB &63:EQUB &FF
  380 ALIGN
  390.trackno
  400 EQUD    0
  410.stack
  420 EQUD    13
  430 EQUD    6
  440 EQUD    7
  450 EQUD    8
  460 EQUD    screenbse
  470 EQUD    point
  480.ccc
  490 EQUD    0
  500.bigloop
  510 LDR     R14,ccc
  520 ADD     R14,R14,#1
  530 STR     R14,ccc
  540 
  550 MOV     R0,#19
  560 SWI     "OS_Byte"
  570 LDR     R6,orr
  580 LDR     R7,or2r
  590 MOV     R14,#4
  600 STR     R14,trackno
  610.trackloop1a
  620 SUB     R4,R7,R8
  630 MOV     R14,#0
  640 MOV     R1,#mul%
  650.loop1a
  660 LDR     R0,[R4],#4
  670 STRB    R14,[R0]
  680 LDR     R0,[R4],#4
  690 STRB    R14,[R0]
  700 LDR     R0,[R4],#4
  710 STRB    R14,[R0]
  720 LDR     R0,[R4],#4
  730 STRB    R14,[R0]
  740 LDR     R0,[R4],#4
  750 STRB    R14,[R0]
  760 LDR     R0,[R4],#4
  770 STRB    R14,[R0]
  780 LDR     R0,[R4],#4
  790 STRB    R14,[R0]
  800 LDR     R0,[R4],#4
  810 STRB    R14,[R0]
  820 SUBS    R1,R1,#8
  830 BNE     loop1a
  840 
  850 ADD     R7,R7,#mul%*4
  860 LDR     R14,trackno
  870 SUBS    R14,R14,#1
  880 STR     R14,trackno
  890 BNE     trackloop1a
  900 
  910 MOV     R14,#4
  920 STR     R14,trackno
  930 
  940.trackloop1b
  950 
  960 ADD     R4,R6,R8
  970 ADR     R1, cols
  980 LDRB    R14, [R1, R14]
  990 MOV     R1,#mul%
 1000.loop1b
 1010 LDR     R0,[R4],#4
 1020 STRB    R14,[R0]
 1030 LDR     R0,[R4],#4
 1040 STRB    R14,[R0]
 1050 LDR     R0,[R4],#4
 1060 STRB    R14,[R0]
 1070 LDR     R0,[R4],#4
 1080 STRB    R14,[R0]
 1090 LDR     R0,[R4],#4
 1100 STRB    R14,[R0]
 1110 LDR     R0,[R4],#4
 1120 STRB    R14,[R0]
 1130 LDR     R0,[R4],#4
 1140 STRB    R14,[R0]
 1150 LDR     R0,[R4],#4
 1160 STRB    R14,[R0]
 1170 SUBS    R1,R1,#8
 1180 BNE     loop1b
 1190 
 1200 ADD     R6,R6,#mul%*4
 1210 LDR     R14,trackno
 1220 SUBS    R14,R14,#1
 1230 STR     R14,trackno
 1240 BNE     trackloop1b
 1250 
 1260 EOR     R8,R8,#mul%*4*4
 1270 
 1280 MOV     R14,#4
 1290 STR     R14,trackno
 1300 SUB     R6,R6,#mul%*4*4
 1310 
 1320.trackloop2
 1330 STMFD   R13!,{R6-R8,screenbse,point}
 1340 
 1350 ADD     R0,point,#4
 1360 ADD     point,R6,R8
 1370 LDMIA   R0!,{R1-R6}
 1380 MOV     xpos,screenbse
 1390 MOV     R7,#mul%
 1400 LDR     screenbse,ltr
 1410.loop1
 1420 LDRB    R0,[R5,R1,LSR #16]
 1430 LDR     R0,[screenbse,R0,LSL #2]
 1440 ADD     R3,xpos,R0,LSL #9
 1450 ADD     R3,R3,R0,LSL #7
 1460 STR     R3,[point],#4
 1470 ADD     xpos,xpos,#1
 1480 ADD     R1,R1,R2
 1490 SUBS    R7,R7,#1
 1500 BNE     loop1
 1510 
 1520 LDMFD   R13!,{R6-R8,screenbse,point}
 1530 
 1540 ADD     screenbse,screenbse,#40*1024
 1550 ADD     point,point,#32
 1560 LDR     R14,trackno
 1570 SUBS    R14,R14,#1
 1580 ADD     R6,R6,#mul%*4
 1590 STR     R14,trackno
 1600 BNE     trackloop2
 1610 
 1620 SUB     screenbse,screenbse,#160*1024
 1630 SUB     point,point,#128
 1640 
 1650 SWI     "OS_ReadEscapeState"
 1660 BCC     bigloop
 1670 MOV     R0,#124
 1680 SWI     "OS_Byte"
 1690 SWI     "OS_RestoreCursors"
 1700 LDMFD   R13!,{PC}
 1710 
 1720.ltable
 1730 ]:P%+=256*4:[OPT J%
 1740.oldrefs
 1750]:P%+=mul%*4*4:[OPT J%
 1760.oldrefs2
 1770]:P%+=mul%*4*4:[OPT J%
 1780 
 1790]
 1800NEXT
 1810:
 1820PROCinit_table
 1830SYS "OS_ReadDynamicArea",2 TO B%
 1840SYS "OS_ReadModeVariable",-1,7 TO ,,L%
 1850FOR A%=0 TO mul%*16-4 STEP 4
 1860 oldrefs2!A%=B%
 1870NEXT
 1880FOR A%=0 TO 3
 1890 FOR C%=0 TO mul%*4-4 STEP 4
 1900  !(oldrefs+A%*mul%*4+C%)=B%+(2*A%+1)*L%/8
 1910 NEXT
 1920NEXT
 1930:
 1940A%=point%+&A1C
 1950B%=B%+L%/8
 1960CALL code%
 1970:
 1980END
 1990:
 2000DEF PROCinit_table
 2010REM OSCLI "Load <PlayerMod$Dir>.Bits.Table2Data "+STR$~ltable
 2020FOR A%=0 TO 255
 2030 B%=A%-128:B%=B%<<24:SYS "Sound_SoundLog",B% TO C%
 2040 D%=A% EOR 128
 2050 IF D% AND 128 D%-=256
 2060 !(ltable+C%*4)=D%/4
 2070NEXT
 2080REM OSCLI "Save Table2Data "+STR$~ltable+" +10_1024"
 2090ENDPROC

� > TrackerIV
�   Four Track display
#�   Original code by Nick Smith
(-�   Complete rewrite by The Mad Dog, 1990
2:
<� 15
F� code% 25000
P5ș "OS_Module",18,"TrackerModule" � ,,,point%,pr%
ZA� pr%=0 � � '"Please run a STracker tune before this app."':�
d:
nmul%=640
x:
�xpos=11
�point=12
�screenbse=10
�multiply=9
�� J%=0 � 2 � 2
�P%=code%
�[OPT J%
� 
� STMFD   R13!,{R14}
� SWI     &2010C
� MOV     point,R0
� MOV     screenbse,R1
� SWI     "OS_RemoveCursors"
 MOV     multiply,#mul%

 MOV     R8,#0
" B       bigloop
,.ltr
6 EQUD    ltable
@.orr
J EQUD    oldrefs
T	.or2r
^ EQUD    oldrefs2
h	.cols
r/ EQUB 0:EQUB &17:EQUB &77:EQUB &63:EQUB &FF
|
 ALIGN
�.trackno
� EQUD    0
�
.stack
� EQUD    13
� EQUD    6
� EQUD    7
� EQUD    8
� EQUD    screenbse
� EQUD    point
�.ccc
� EQUD    0
�.bigloop
� LDR     R14,ccc
 ADD     R14,R14,#1
 STR     R14,ccc
 
& MOV     R0,#19
0 SWI     "OS_Byte"
: LDR     R6,orr
D LDR     R7,or2r
N MOV     R14,#4
X STR     R14,trackno
b.trackloop1a
l SUB     R4,R7,R8
v MOV     R14,#0
� MOV     R1,#mul%
�.loop1a
� LDR     R0,[R4],#4
� STRB    R14,[R0]
� LDR     R0,[R4],#4
� STRB    R14,[R0]
� LDR     R0,[R4],#4
� STRB    R14,[R0]
� LDR     R0,[R4],#4
� STRB    R14,[R0]
� LDR     R0,[R4],#4
� STRB    R14,[R0]
� LDR     R0,[R4],#4
 STRB    R14,[R0]
 LDR     R0,[R4],#4
 STRB    R14,[R0]
  LDR     R0,[R4],#4
* STRB    R14,[R0]
4 SUBS    R1,R1,#8
> BNE     loop1a
H 
R ADD     R7,R7,#mul%*4
\ LDR     R14,trackno
f SUBS    R14,R14,#1
p STR     R14,trackno
z BNE     trackloop1a
� 
� MOV     R14,#4
� STR     R14,trackno
� 
�.trackloop1b
� 
� ADD     R4,R6,R8
� ADR     R1, cols
� LDRB    R14, [R1, R14]
� MOV     R1,#mul%
�.loop1b
� LDR     R0,[R4],#4
� STRB    R14,[R0]
 LDR     R0,[R4],#4
 STRB    R14,[R0]
 LDR     R0,[R4],#4
$ STRB    R14,[R0]
. LDR     R0,[R4],#4
8 STRB    R14,[R0]
B LDR     R0,[R4],#4
L STRB    R14,[R0]
V LDR     R0,[R4],#4
` STRB    R14,[R0]
j LDR     R0,[R4],#4
t STRB    R14,[R0]
~ LDR     R0,[R4],#4
� STRB    R14,[R0]
� SUBS    R1,R1,#8
� BNE     loop1b
� 
� ADD     R6,R6,#mul%*4
� LDR     R14,trackno
� SUBS    R14,R14,#1
� STR     R14,trackno
� BNE     trackloop1b
� 
� �     R8,R8,#mul%*4*4
� 
 MOV     R14,#4

 STR     R14,trackno
 SUB     R6,R6,#mul%*4*4
 
(.trackloop2
2) STMFD   R13!,{R6-R8,screenbse,point}
< 
F ADD     R0,point,#4
P ADD     point,R6,R8
Z LDMIA   R0!,{R1-R6}
d MOV     xpos,screenbse
n MOV     R7,#mul%
x LDR     screenbse,ltr
�
.loop1
� LDRB    R0,[R5,R1,LSR #16]
�% LDR     R0,[screenbse,R0,LSL #2]
� ADD     R3,xpos,R0,LSL #9
� ADD     R3,R3,R0,LSL #7
� STR     R3,[point],#4
� ADD     xpos,xpos,#1
� ADD     R1,R1,R2
� SUBS    R7,R7,#1
� BNE     loop1
� 
�) LDMFD   R13!,{R6-R8,screenbse,point}
� 
) ADD     screenbse,screenbse,#40*1024
 ADD     point,point,#32
 LDR     R14,trackno
" SUBS    R14,R14,#1
, ADD     R6,R6,#mul%*4
6 STR     R14,trackno
@ BNE     trackloop2
J 
T* SUB     screenbse,screenbse,#160*1024
^ SUB     point,point,#128
h 
r! SWI     "OS_ReadEscapeState"
| BCC     bigloop
� MOV     R0,#124
� SWI     "OS_Byte"
�  SWI     "OS_RestoreCursors"
� LDMFD   R13!,{PC}
� 
�.ltable
� ]:P%+=256*4:[OPT J%
�.oldrefs
�]:P%+=mul%*4*4:[OPT J%
�
.oldrefs2
�]:P%+=mul%*4*4:[OPT J%
� 
�]
�
:
�init_table
&"ș "OS_ReadDynamicArea",2 � B%
0(ș "OS_ReadModeVariable",-1,7 � ,,L%
:� A%=0 � mul%*16-4 � 4
D oldrefs2!A%=B%
N�
X� A%=0 � 3
b � C%=0 � mul%*4-4 � 4
l.  !(oldrefs+A%*mul%*4+C%)=B%+(2*A%+1)*L%/8
v �
��
�:
�A%=point%+&A1C
�B%=B%+L%/8
�� code%
�:
��
�:
�� �init_table
�?� OSCLI "Load <PlayerMod$Dir>.Bits.Table2Data "+STR$~ltable
�� A%=0 � 255
�4 B%=A%-128:B%=B%<<24:ș "Sound_SoundLog",B% � C%
� D%=A% � 128
 � D% � 128 D%-=256
 !(ltable+C%*4)=D%/4
�
 6� OSCLI "Save Table2Data "+STR$~ltable+" +10_1024"
*�
�
00000000  0d 00 0a 11 f4 20 3e 20  54 72 61 63 6b 65 72 49  |..... > TrackerI|
00000010  56 0d 00 14 1a f4 20 20  20 46 6f 75 72 20 54 72  |V.....   Four Tr|
00000020  61 63 6b 20 64 69 73 70  6c 61 79 0d 00 1e 23 f4  |ack display...#.|
00000030  20 20 20 4f 72 69 67 69  6e 61 6c 20 63 6f 64 65  |   Original code|
00000040  20 62 79 20 4e 69 63 6b  20 53 6d 69 74 68 0d 00  | by Nick Smith..|
00000050  28 2d f4 20 20 20 43 6f  6d 70 6c 65 74 65 20 72  |(-.   Complete r|
00000060  65 77 72 69 74 65 20 62  79 20 54 68 65 20 4d 61  |ewrite by The Ma|
00000070  64 20 44 6f 67 2c 20 31  39 39 30 0d 00 32 05 3a  |d Dog, 1990..2.:|
00000080  0d 00 3c 08 eb 20 31 35  0d 00 46 11 de 20 63 6f  |..<.. 15..F.. co|
00000090  64 65 25 20 32 35 30 30  30 0d 00 50 35 c8 99 20  |de% 25000..P5.. |
000000a0  22 4f 53 5f 4d 6f 64 75  6c 65 22 2c 31 38 2c 22  |"OS_Module",18,"|
000000b0  54 72 61 63 6b 65 72 4d  6f 64 75 6c 65 22 20 b8  |TrackerModule" .|
000000c0  20 2c 2c 2c 70 6f 69 6e  74 25 2c 70 72 25 0d 00  | ,,,point%,pr%..|
000000d0  5a 41 e7 20 70 72 25 3d  30 20 8c 20 f1 20 27 22  |ZA. pr%=0 . . '"|
000000e0  50 6c 65 61 73 65 20 72  75 6e 20 61 20 53 54 72  |Please run a STr|
000000f0  61 63 6b 65 72 20 74 75  6e 65 20 62 65 66 6f 72  |acker tune befor|
00000100  65 20 74 68 69 73 20 61  70 70 2e 22 27 3a e0 0d  |e this app."':..|
00000110  00 64 05 3a 0d 00 6e 0c  6d 75 6c 25 3d 36 34 30  |.d.:..n.mul%=640|
00000120  0d 00 78 05 3a 0d 00 82  0b 78 70 6f 73 3d 31 31  |..x.:....xpos=11|
00000130  0d 00 8c 0c 70 6f 69 6e  74 3d 31 32 0d 00 96 10  |....point=12....|
00000140  73 63 72 65 65 6e 62 73  65 3d 31 30 0d 00 a0 0e  |screenbse=10....|
00000150  6d 75 6c 74 69 70 6c 79  3d 39 0d 00 aa 12 e3 20  |multiply=9..... |
00000160  4a 25 3d 30 20 b8 20 32  20 88 20 32 0d 00 b4 0c  |J%=0 . 2 . 2....|
00000170  50 25 3d 63 6f 64 65 25  0d 00 be 0b 5b 4f 50 54  |P%=code%....[OPT|
00000180  20 4a 25 0d 00 c8 05 20  0d 00 d2 17 20 53 54 4d  | J%.... .... STM|
00000190  46 44 20 20 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |FD   R13!,{R14}.|
000001a0  00 dc 13 20 53 57 49 20  20 20 20 20 26 32 30 31  |... SWI     &201|
000001b0  30 43 0d 00 e6 15 20 4d  4f 56 20 20 20 20 20 70  |0C.... MOV     p|
000001c0  6f 69 6e 74 2c 52 30 0d  00 f0 19 20 4d 4f 56 20  |oint,R0.... MOV |
000001d0  20 20 20 20 73 63 72 65  65 6e 62 73 65 2c 52 31  |    screenbse,R1|
000001e0  0d 00 fa 1f 20 53 57 49  20 20 20 20 20 22 4f 53  |.... SWI     "OS|
000001f0  5f 52 65 6d 6f 76 65 43  75 72 73 6f 72 73 22 0d  |_RemoveCursors".|
00000200  01 04 1b 20 4d 4f 56 20  20 20 20 20 6d 75 6c 74  |... MOV     mult|
00000210  69 70 6c 79 2c 23 6d 75  6c 25 0d 01 0e 04 0d 01  |iply,#mul%......|
00000220  18 12 20 4d 4f 56 20 20  20 20 20 52 38 2c 23 30  |.. MOV     R8,#0|
00000230  0d 01 22 14 20 42 20 20  20 20 20 20 20 62 69 67  |..". B       big|
00000240  6c 6f 6f 70 0d 01 2c 08  2e 6c 74 72 0d 01 36 13  |loop..,..ltr..6.|
00000250  20 45 51 55 44 20 20 20  20 6c 74 61 62 6c 65 0d  | EQUD    ltable.|
00000260  01 40 08 2e 6f 72 72 0d  01 4a 14 20 45 51 55 44  |.@..orr..J. EQUD|
00000270  20 20 20 20 6f 6c 64 72  65 66 73 0d 01 54 09 2e  |    oldrefs..T..|
00000280  6f 72 32 72 0d 01 5e 15  20 45 51 55 44 20 20 20  |or2r..^. EQUD   |
00000290  20 6f 6c 64 72 65 66 73  32 0d 01 68 09 2e 63 6f  | oldrefs2..h..co|
000002a0  6c 73 0d 01 72 2f 20 45  51 55 42 20 30 3a 45 51  |ls..r/ EQUB 0:EQ|
000002b0  55 42 20 26 31 37 3a 45  51 55 42 20 26 37 37 3a  |UB &17:EQUB &77:|
000002c0  45 51 55 42 20 26 36 33  3a 45 51 55 42 20 26 46  |EQUB &63:EQUB &F|
000002d0  46 0d 01 7c 0a 20 41 4c  49 47 4e 0d 01 86 0c 2e  |F..|. ALIGN.....|
000002e0  74 72 61 63 6b 6e 6f 0d  01 90 0e 20 45 51 55 44  |trackno.... EQUD|
000002f0  20 20 20 20 30 0d 01 9a  0a 2e 73 74 61 63 6b 0d  |    0.....stack.|
00000300  01 a4 0f 20 45 51 55 44  20 20 20 20 31 33 0d 01  |... EQUD    13..|
00000310  ae 0e 20 45 51 55 44 20  20 20 20 36 0d 01 b8 0e  |.. EQUD    6....|
00000320  20 45 51 55 44 20 20 20  20 37 0d 01 c2 0e 20 45  | EQUD    7.... E|
00000330  51 55 44 20 20 20 20 38  0d 01 cc 16 20 45 51 55  |QUD    8.... EQU|
00000340  44 20 20 20 20 73 63 72  65 65 6e 62 73 65 0d 01  |D    screenbse..|
00000350  d6 12 20 45 51 55 44 20  20 20 20 70 6f 69 6e 74  |.. EQUD    point|
00000360  0d 01 e0 08 2e 63 63 63  0d 01 ea 0e 20 45 51 55  |.....ccc.... EQU|
00000370  44 20 20 20 20 30 0d 01  f4 0c 2e 62 69 67 6c 6f  |D    0.....biglo|
00000380  6f 70 0d 01 fe 14 20 4c  44 52 20 20 20 20 20 52  |op.... LDR     R|
00000390  31 34 2c 63 63 63 0d 02  08 17 20 41 44 44 20 20  |14,ccc.... ADD  |
000003a0  20 20 20 52 31 34 2c 52  31 34 2c 23 31 0d 02 12  |   R14,R14,#1...|
000003b0  14 20 53 54 52 20 20 20  20 20 52 31 34 2c 63 63  |. STR     R14,cc|
000003c0  63 0d 02 1c 05 20 0d 02  26 13 20 4d 4f 56 20 20  |c.... ..&. MOV  |
000003d0  20 20 20 52 30 2c 23 31  39 0d 02 30 16 20 53 57  |   R0,#19..0. SW|
000003e0  49 20 20 20 20 20 22 4f  53 5f 42 79 74 65 22 0d  |I     "OS_Byte".|
000003f0  02 3a 13 20 4c 44 52 20  20 20 20 20 52 36 2c 6f  |.:. LDR     R6,o|
00000400  72 72 0d 02 44 14 20 4c  44 52 20 20 20 20 20 52  |rr..D. LDR     R|
00000410  37 2c 6f 72 32 72 0d 02  4e 13 20 4d 4f 56 20 20  |7,or2r..N. MOV  |
00000420  20 20 20 52 31 34 2c 23  34 0d 02 58 18 20 53 54  |   R14,#4..X. ST|
00000430  52 20 20 20 20 20 52 31  34 2c 74 72 61 63 6b 6e  |R     R14,trackn|
00000440  6f 0d 02 62 10 2e 74 72  61 63 6b 6c 6f 6f 70 31  |o..b..trackloop1|
00000450  61 0d 02 6c 15 20 53 55  42 20 20 20 20 20 52 34  |a..l. SUB     R4|
00000460  2c 52 37 2c 52 38 0d 02  76 13 20 4d 4f 56 20 20  |,R7,R8..v. MOV  |
00000470  20 20 20 52 31 34 2c 23  30 0d 02 80 15 20 4d 4f  |   R14,#0.... MO|
00000480  56 20 20 20 20 20 52 31  2c 23 6d 75 6c 25 0d 02  |V     R1,#mul%..|
00000490  8a 0b 2e 6c 6f 6f 70 31  61 0d 02 94 17 20 4c 44  |...loop1a.... LD|
000004a0  52 20 20 20 20 20 52 30  2c 5b 52 34 5d 2c 23 34  |R     R0,[R4],#4|
000004b0  0d 02 9e 15 20 53 54 52  42 20 20 20 20 52 31 34  |.... STRB    R14|
000004c0  2c 5b 52 30 5d 0d 02 a8  17 20 4c 44 52 20 20 20  |,[R0].... LDR   |
000004d0  20 20 52 30 2c 5b 52 34  5d 2c 23 34 0d 02 b2 15  |  R0,[R4],#4....|
000004e0  20 53 54 52 42 20 20 20  20 52 31 34 2c 5b 52 30  | STRB    R14,[R0|
000004f0  5d 0d 02 bc 17 20 4c 44  52 20 20 20 20 20 52 30  |].... LDR     R0|
00000500  2c 5b 52 34 5d 2c 23 34  0d 02 c6 15 20 53 54 52  |,[R4],#4.... STR|
00000510  42 20 20 20 20 52 31 34  2c 5b 52 30 5d 0d 02 d0  |B    R14,[R0]...|
00000520  17 20 4c 44 52 20 20 20  20 20 52 30 2c 5b 52 34  |. LDR     R0,[R4|
00000530  5d 2c 23 34 0d 02 da 15  20 53 54 52 42 20 20 20  |],#4.... STRB   |
00000540  20 52 31 34 2c 5b 52 30  5d 0d 02 e4 17 20 4c 44  | R14,[R0].... LD|
00000550  52 20 20 20 20 20 52 30  2c 5b 52 34 5d 2c 23 34  |R     R0,[R4],#4|
00000560  0d 02 ee 15 20 53 54 52  42 20 20 20 20 52 31 34  |.... STRB    R14|
00000570  2c 5b 52 30 5d 0d 02 f8  17 20 4c 44 52 20 20 20  |,[R0].... LDR   |
00000580  20 20 52 30 2c 5b 52 34  5d 2c 23 34 0d 03 02 15  |  R0,[R4],#4....|
00000590  20 53 54 52 42 20 20 20  20 52 31 34 2c 5b 52 30  | STRB    R14,[R0|
000005a0  5d 0d 03 0c 17 20 4c 44  52 20 20 20 20 20 52 30  |].... LDR     R0|
000005b0  2c 5b 52 34 5d 2c 23 34  0d 03 16 15 20 53 54 52  |,[R4],#4.... STR|
000005c0  42 20 20 20 20 52 31 34  2c 5b 52 30 5d 0d 03 20  |B    R14,[R0].. |
000005d0  17 20 4c 44 52 20 20 20  20 20 52 30 2c 5b 52 34  |. LDR     R0,[R4|
000005e0  5d 2c 23 34 0d 03 2a 15  20 53 54 52 42 20 20 20  |],#4..*. STRB   |
000005f0  20 52 31 34 2c 5b 52 30  5d 0d 03 34 15 20 53 55  | R14,[R0]..4. SU|
00000600  42 53 20 20 20 20 52 31  2c 52 31 2c 23 38 0d 03  |BS    R1,R1,#8..|
00000610  3e 13 20 42 4e 45 20 20  20 20 20 6c 6f 6f 70 31  |>. BNE     loop1|
00000620  61 0d 03 48 05 20 0d 03  52 1a 20 41 44 44 20 20  |a..H. ..R. ADD  |
00000630  20 20 20 52 37 2c 52 37  2c 23 6d 75 6c 25 2a 34  |   R7,R7,#mul%*4|
00000640  0d 03 5c 18 20 4c 44 52  20 20 20 20 20 52 31 34  |..\. LDR     R14|
00000650  2c 74 72 61 63 6b 6e 6f  0d 03 66 17 20 53 55 42  |,trackno..f. SUB|
00000660  53 20 20 20 20 52 31 34  2c 52 31 34 2c 23 31 0d  |S    R14,R14,#1.|
00000670  03 70 18 20 53 54 52 20  20 20 20 20 52 31 34 2c  |.p. STR     R14,|
00000680  74 72 61 63 6b 6e 6f 0d  03 7a 18 20 42 4e 45 20  |trackno..z. BNE |
00000690  20 20 20 20 74 72 61 63  6b 6c 6f 6f 70 31 61 0d  |    trackloop1a.|
000006a0  03 84 05 20 0d 03 8e 13  20 4d 4f 56 20 20 20 20  |... .... MOV    |
000006b0  20 52 31 34 2c 23 34 0d  03 98 18 20 53 54 52 20  | R14,#4.... STR |
000006c0  20 20 20 20 52 31 34 2c  74 72 61 63 6b 6e 6f 0d  |    R14,trackno.|
000006d0  03 a2 05 20 0d 03 ac 10  2e 74 72 61 63 6b 6c 6f  |... .....tracklo|
000006e0  6f 70 31 62 0d 03 b6 05  20 0d 03 c0 15 20 41 44  |op1b.... .... AD|
000006f0  44 20 20 20 20 20 52 34  2c 52 36 2c 52 38 0d 03  |D     R4,R6,R8..|
00000700  ca 15 20 41 44 52 20 20  20 20 20 52 31 2c 20 63  |.. ADR     R1, c|
00000710  6f 6c 73 0d 03 d4 1b 20  4c 44 52 42 20 20 20 20  |ols.... LDRB    |
00000720  52 31 34 2c 20 5b 52 31  2c 20 52 31 34 5d 0d 03  |R14, [R1, R14]..|
00000730  de 15 20 4d 4f 56 20 20  20 20 20 52 31 2c 23 6d  |.. MOV     R1,#m|
00000740  75 6c 25 0d 03 e8 0b 2e  6c 6f 6f 70 31 62 0d 03  |ul%.....loop1b..|
00000750  f2 17 20 4c 44 52 20 20  20 20 20 52 30 2c 5b 52  |.. LDR     R0,[R|
00000760  34 5d 2c 23 34 0d 03 fc  15 20 53 54 52 42 20 20  |4],#4.... STRB  |
00000770  20 20 52 31 34 2c 5b 52  30 5d 0d 04 06 17 20 4c  |  R14,[R0].... L|
00000780  44 52 20 20 20 20 20 52  30 2c 5b 52 34 5d 2c 23  |DR     R0,[R4],#|
00000790  34 0d 04 10 15 20 53 54  52 42 20 20 20 20 52 31  |4.... STRB    R1|
000007a0  34 2c 5b 52 30 5d 0d 04  1a 17 20 4c 44 52 20 20  |4,[R0].... LDR  |
000007b0  20 20 20 52 30 2c 5b 52  34 5d 2c 23 34 0d 04 24  |   R0,[R4],#4..$|
000007c0  15 20 53 54 52 42 20 20  20 20 52 31 34 2c 5b 52  |. STRB    R14,[R|
000007d0  30 5d 0d 04 2e 17 20 4c  44 52 20 20 20 20 20 52  |0].... LDR     R|
000007e0  30 2c 5b 52 34 5d 2c 23  34 0d 04 38 15 20 53 54  |0,[R4],#4..8. ST|
000007f0  52 42 20 20 20 20 52 31  34 2c 5b 52 30 5d 0d 04  |RB    R14,[R0]..|
00000800  42 17 20 4c 44 52 20 20  20 20 20 52 30 2c 5b 52  |B. LDR     R0,[R|
00000810  34 5d 2c 23 34 0d 04 4c  15 20 53 54 52 42 20 20  |4],#4..L. STRB  |
00000820  20 20 52 31 34 2c 5b 52  30 5d 0d 04 56 17 20 4c  |  R14,[R0]..V. L|
00000830  44 52 20 20 20 20 20 52  30 2c 5b 52 34 5d 2c 23  |DR     R0,[R4],#|
00000840  34 0d 04 60 15 20 53 54  52 42 20 20 20 20 52 31  |4..`. STRB    R1|
00000850  34 2c 5b 52 30 5d 0d 04  6a 17 20 4c 44 52 20 20  |4,[R0]..j. LDR  |
00000860  20 20 20 52 30 2c 5b 52  34 5d 2c 23 34 0d 04 74  |   R0,[R4],#4..t|
00000870  15 20 53 54 52 42 20 20  20 20 52 31 34 2c 5b 52  |. STRB    R14,[R|
00000880  30 5d 0d 04 7e 17 20 4c  44 52 20 20 20 20 20 52  |0]..~. LDR     R|
00000890  30 2c 5b 52 34 5d 2c 23  34 0d 04 88 15 20 53 54  |0,[R4],#4.... ST|
000008a0  52 42 20 20 20 20 52 31  34 2c 5b 52 30 5d 0d 04  |RB    R14,[R0]..|
000008b0  92 15 20 53 55 42 53 20  20 20 20 52 31 2c 52 31  |.. SUBS    R1,R1|
000008c0  2c 23 38 0d 04 9c 13 20  42 4e 45 20 20 20 20 20  |,#8.... BNE     |
000008d0  6c 6f 6f 70 31 62 0d 04  a6 05 20 0d 04 b0 1a 20  |loop1b.... .... |
000008e0  41 44 44 20 20 20 20 20  52 36 2c 52 36 2c 23 6d  |ADD     R6,R6,#m|
000008f0  75 6c 25 2a 34 0d 04 ba  18 20 4c 44 52 20 20 20  |ul%*4.... LDR   |
00000900  20 20 52 31 34 2c 74 72  61 63 6b 6e 6f 0d 04 c4  |  R14,trackno...|
00000910  17 20 53 55 42 53 20 20  20 20 52 31 34 2c 52 31  |. SUBS    R14,R1|
00000920  34 2c 23 31 0d 04 ce 18  20 53 54 52 20 20 20 20  |4,#1.... STR    |
00000930  20 52 31 34 2c 74 72 61  63 6b 6e 6f 0d 04 d8 18  | R14,trackno....|
00000940  20 42 4e 45 20 20 20 20  20 74 72 61 63 6b 6c 6f  | BNE     tracklo|
00000950  6f 70 31 62 0d 04 e2 05  20 0d 04 ec 1a 20 82 20  |op1b.... .... . |
00000960  20 20 20 20 52 38 2c 52  38 2c 23 6d 75 6c 25 2a  |    R8,R8,#mul%*|
00000970  34 2a 34 0d 04 f6 05 20  0d 05 00 13 20 4d 4f 56  |4*4.... .... MOV|
00000980  20 20 20 20 20 52 31 34  2c 23 34 0d 05 0a 18 20  |     R14,#4.... |
00000990  53 54 52 20 20 20 20 20  52 31 34 2c 74 72 61 63  |STR     R14,trac|
000009a0  6b 6e 6f 0d 05 14 1c 20  53 55 42 20 20 20 20 20  |kno.... SUB     |
000009b0  52 36 2c 52 36 2c 23 6d  75 6c 25 2a 34 2a 34 0d  |R6,R6,#mul%*4*4.|
000009c0  05 1e 05 20 0d 05 28 0f  2e 74 72 61 63 6b 6c 6f  |... ..(..tracklo|
000009d0  6f 70 32 0d 05 32 29 20  53 54 4d 46 44 20 20 20  |op2..2) STMFD   |
000009e0  52 31 33 21 2c 7b 52 36  2d 52 38 2c 73 63 72 65  |R13!,{R6-R8,scre|
000009f0  65 6e 62 73 65 2c 70 6f  69 6e 74 7d 0d 05 3c 05  |enbse,point}..<.|
00000a00  20 0d 05 46 18 20 41 44  44 20 20 20 20 20 52 30  | ..F. ADD     R0|
00000a10  2c 70 6f 69 6e 74 2c 23  34 0d 05 50 18 20 41 44  |,point,#4..P. AD|
00000a20  44 20 20 20 20 20 70 6f  69 6e 74 2c 52 36 2c 52  |D     point,R6,R|
00000a30  38 0d 05 5a 18 20 4c 44  4d 49 41 20 20 20 52 30  |8..Z. LDMIA   R0|
00000a40  21 2c 7b 52 31 2d 52 36  7d 0d 05 64 1b 20 4d 4f  |!,{R1-R6}..d. MO|
00000a50  56 20 20 20 20 20 78 70  6f 73 2c 73 63 72 65 65  |V     xpos,scree|
00000a60  6e 62 73 65 0d 05 6e 15  20 4d 4f 56 20 20 20 20  |nbse..n. MOV    |
00000a70  20 52 37 2c 23 6d 75 6c  25 0d 05 78 1a 20 4c 44  | R7,#mul%..x. LD|
00000a80  52 20 20 20 20 20 73 63  72 65 65 6e 62 73 65 2c  |R     screenbse,|
00000a90  6c 74 72 0d 05 82 0a 2e  6c 6f 6f 70 31 0d 05 8c  |ltr.....loop1...|
00000aa0  1f 20 4c 44 52 42 20 20  20 20 52 30 2c 5b 52 35  |. LDRB    R0,[R5|
00000ab0  2c 52 31 2c 4c 53 52 20  23 31 36 5d 0d 05 96 25  |,R1,LSR #16]...%|
00000ac0  20 4c 44 52 20 20 20 20  20 52 30 2c 5b 73 63 72  | LDR     R0,[scr|
00000ad0  65 65 6e 62 73 65 2c 52  30 2c 4c 53 4c 20 23 32  |eenbse,R0,LSL #2|
00000ae0  5d 0d 05 a0 1e 20 41 44  44 20 20 20 20 20 52 33  |].... ADD     R3|
00000af0  2c 78 70 6f 73 2c 52 30  2c 4c 53 4c 20 23 39 0d  |,xpos,R0,LSL #9.|
00000b00  05 aa 1c 20 41 44 44 20  20 20 20 20 52 33 2c 52  |... ADD     R3,R|
00000b10  33 2c 52 30 2c 4c 53 4c  20 23 37 0d 05 b4 1a 20  |3,R0,LSL #7.... |
00000b20  53 54 52 20 20 20 20 20  52 33 2c 5b 70 6f 69 6e  |STR     R3,[poin|
00000b30  74 5d 2c 23 34 0d 05 be  19 20 41 44 44 20 20 20  |t],#4.... ADD   |
00000b40  20 20 78 70 6f 73 2c 78  70 6f 73 2c 23 31 0d 05  |  xpos,xpos,#1..|
00000b50  c8 15 20 41 44 44 20 20  20 20 20 52 31 2c 52 31  |.. ADD     R1,R1|
00000b60  2c 52 32 0d 05 d2 15 20  53 55 42 53 20 20 20 20  |,R2.... SUBS    |
00000b70  52 37 2c 52 37 2c 23 31  0d 05 dc 12 20 42 4e 45  |R7,R7,#1.... BNE|
00000b80  20 20 20 20 20 6c 6f 6f  70 31 0d 05 e6 05 20 0d  |     loop1.... .|
00000b90  05 f0 29 20 4c 44 4d 46  44 20 20 20 52 31 33 21  |..) LDMFD   R13!|
00000ba0  2c 7b 52 36 2d 52 38 2c  73 63 72 65 65 6e 62 73  |,{R6-R8,screenbs|
00000bb0  65 2c 70 6f 69 6e 74 7d  0d 05 fa 05 20 0d 06 04  |e,point}.... ...|
00000bc0  29 20 41 44 44 20 20 20  20 20 73 63 72 65 65 6e  |) ADD     screen|
00000bd0  62 73 65 2c 73 63 72 65  65 6e 62 73 65 2c 23 34  |bse,screenbse,#4|
00000be0  30 2a 31 30 32 34 0d 06  0e 1c 20 41 44 44 20 20  |0*1024.... ADD  |
00000bf0  20 20 20 70 6f 69 6e 74  2c 70 6f 69 6e 74 2c 23  |   point,point,#|
00000c00  33 32 0d 06 18 18 20 4c  44 52 20 20 20 20 20 52  |32.... LDR     R|
00000c10  31 34 2c 74 72 61 63 6b  6e 6f 0d 06 22 17 20 53  |14,trackno..". S|
00000c20  55 42 53 20 20 20 20 52  31 34 2c 52 31 34 2c 23  |UBS    R14,R14,#|
00000c30  31 0d 06 2c 1a 20 41 44  44 20 20 20 20 20 52 36  |1..,. ADD     R6|
00000c40  2c 52 36 2c 23 6d 75 6c  25 2a 34 0d 06 36 18 20  |,R6,#mul%*4..6. |
00000c50  53 54 52 20 20 20 20 20  52 31 34 2c 74 72 61 63  |STR     R14,trac|
00000c60  6b 6e 6f 0d 06 40 17 20  42 4e 45 20 20 20 20 20  |kno..@. BNE     |
00000c70  74 72 61 63 6b 6c 6f 6f  70 32 0d 06 4a 05 20 0d  |trackloop2..J. .|
00000c80  06 54 2a 20 53 55 42 20  20 20 20 20 73 63 72 65  |.T* SUB     scre|
00000c90  65 6e 62 73 65 2c 73 63  72 65 65 6e 62 73 65 2c  |enbse,screenbse,|
00000ca0  23 31 36 30 2a 31 30 32  34 0d 06 5e 1d 20 53 55  |#160*1024..^. SU|
00000cb0  42 20 20 20 20 20 70 6f  69 6e 74 2c 70 6f 69 6e  |B     point,poin|
00000cc0  74 2c 23 31 32 38 0d 06  68 05 20 0d 06 72 21 20  |t,#128..h. ..r! |
00000cd0  53 57 49 20 20 20 20 20  22 4f 53 5f 52 65 61 64  |SWI     "OS_Read|
00000ce0  45 73 63 61 70 65 53 74  61 74 65 22 0d 06 7c 14  |EscapeState"..|.|
00000cf0  20 42 43 43 20 20 20 20  20 62 69 67 6c 6f 6f 70  | BCC     bigloop|
00000d00  0d 06 86 14 20 4d 4f 56  20 20 20 20 20 52 30 2c  |.... MOV     R0,|
00000d10  23 31 32 34 0d 06 90 16  20 53 57 49 20 20 20 20  |#124.... SWI    |
00000d20  20 22 4f 53 5f 42 79 74  65 22 0d 06 9a 20 20 53  | "OS_Byte"...  S|
00000d30  57 49 20 20 20 20 20 22  4f 53 5f 52 65 73 74 6f  |WI     "OS_Resto|
00000d40  72 65 43 75 72 73 6f 72  73 22 0d 06 a4 16 20 4c  |reCursors".... L|
00000d50  44 4d 46 44 20 20 20 52  31 33 21 2c 7b 50 43 7d  |DMFD   R13!,{PC}|
00000d60  0d 06 ae 05 20 0d 06 b8  0b 2e 6c 74 61 62 6c 65  |.... .....ltable|
00000d70  0d 06 c2 18 20 5d 3a 50  25 2b 3d 32 35 36 2a 34  |.... ]:P%+=256*4|
00000d80  3a 5b 4f 50 54 20 4a 25  0d 06 cc 0c 2e 6f 6c 64  |:[OPT J%.....old|
00000d90  72 65 66 73 0d 06 d6 1a  5d 3a 50 25 2b 3d 6d 75  |refs....]:P%+=mu|
00000da0  6c 25 2a 34 2a 34 3a 5b  4f 50 54 20 4a 25 0d 06  |l%*4*4:[OPT J%..|
00000db0  e0 0d 2e 6f 6c 64 72 65  66 73 32 0d 06 ea 1a 5d  |...oldrefs2....]|
00000dc0  3a 50 25 2b 3d 6d 75 6c  25 2a 34 2a 34 3a 5b 4f  |:P%+=mul%*4*4:[O|
00000dd0  50 54 20 4a 25 0d 06 f4  05 20 0d 06 fe 05 5d 0d  |PT J%.... ....].|
00000de0  07 08 05 ed 0d 07 12 05  3a 0d 07 1c 0f f2 69 6e  |........:.....in|
00000df0  69 74 5f 74 61 62 6c 65  0d 07 26 22 c8 99 20 22  |it_table..&".. "|
00000e00  4f 53 5f 52 65 61 64 44  79 6e 61 6d 69 63 41 72  |OS_ReadDynamicAr|
00000e10  65 61 22 2c 32 20 b8 20  42 25 0d 07 30 28 c8 99  |ea",2 . B%..0(..|
00000e20  20 22 4f 53 5f 52 65 61  64 4d 6f 64 65 56 61 72  | "OS_ReadModeVar|
00000e30  69 61 62 6c 65 22 2c 2d  31 2c 37 20 b8 20 2c 2c  |iable",-1,7 . ,,|
00000e40  4c 25 0d 07 3a 1a e3 20  41 25 3d 30 20 b8 20 6d  |L%..:.. A%=0 . m|
00000e50  75 6c 25 2a 31 36 2d 34  20 88 20 34 0d 07 44 13  |ul%*16-4 . 4..D.|
00000e60  20 6f 6c 64 72 65 66 73  32 21 41 25 3d 42 25 0d  | oldrefs2!A%=B%.|
00000e70  07 4e 05 ed 0d 07 58 0e  e3 20 41 25 3d 30 20 b8  |.N....X.. A%=0 .|
00000e80  20 33 0d 07 62 1a 20 e3  20 43 25 3d 30 20 b8 20  | 3..b. . C%=0 . |
00000e90  6d 75 6c 25 2a 34 2d 34  20 88 20 34 0d 07 6c 2e  |mul%*4-4 . 4..l.|
00000ea0  20 20 21 28 6f 6c 64 72  65 66 73 2b 41 25 2a 6d  |  !(oldrefs+A%*m|
00000eb0  75 6c 25 2a 34 2b 43 25  29 3d 42 25 2b 28 32 2a  |ul%*4+C%)=B%+(2*|
00000ec0  41 25 2b 31 29 2a 4c 25  2f 38 0d 07 76 06 20 ed  |A%+1)*L%/8..v. .|
00000ed0  0d 07 80 05 ed 0d 07 8a  05 3a 0d 07 94 12 41 25  |.........:....A%|
00000ee0  3d 70 6f 69 6e 74 25 2b  26 41 31 43 0d 07 9e 0e  |=point%+&A1C....|
00000ef0  42 25 3d 42 25 2b 4c 25  2f 38 0d 07 a8 0b d6 20  |B%=B%+L%/8..... |
00000f00  63 6f 64 65 25 0d 07 b2  05 3a 0d 07 bc 05 e0 0d  |code%....:......|
00000f10  07 c6 05 3a 0d 07 d0 11  dd 20 f2 69 6e 69 74 5f  |...:..... .init_|
00000f20  74 61 62 6c 65 0d 07 da  3f f4 20 4f 53 43 4c 49  |table...?. OSCLI|
00000f30  20 22 4c 6f 61 64 20 3c  50 6c 61 79 65 72 4d 6f  | "Load <PlayerMo|
00000f40  64 24 44 69 72 3e 2e 42  69 74 73 2e 54 61 62 6c  |d$Dir>.Bits.Tabl|
00000f50  65 32 44 61 74 61 20 22  2b 53 54 52 24 7e 6c 74  |e2Data "+STR$~lt|
00000f60  61 62 6c 65 0d 07 e4 10  e3 20 41 25 3d 30 20 b8  |able..... A%=0 .|
00000f70  20 32 35 35 0d 07 ee 34  20 42 25 3d 41 25 2d 31  | 255...4 B%=A%-1|
00000f80  32 38 3a 42 25 3d 42 25  3c 3c 32 34 3a c8 99 20  |28:B%=B%<<24:.. |
00000f90  22 53 6f 75 6e 64 5f 53  6f 75 6e 64 4c 6f 67 22  |"Sound_SoundLog"|
00000fa0  2c 42 25 20 b8 20 43 25  0d 07 f8 10 20 44 25 3d  |,B% . C%.... D%=|
00000fb0  41 25 20 82 20 31 32 38  0d 08 02 17 20 e7 20 44  |A% . 128.... . D|
00000fc0  25 20 80 20 31 32 38 20  44 25 2d 3d 32 35 36 0d  |% . 128 D%-=256.|
00000fd0  08 0c 18 20 21 28 6c 74  61 62 6c 65 2b 43 25 2a  |... !(ltable+C%*|
00000fe0  34 29 3d 44 25 2f 34 0d  08 16 05 ed 0d 08 20 36  |4)=D%/4....... 6|
00000ff0  f4 20 4f 53 43 4c 49 20  22 53 61 76 65 20 54 61  |. OSCLI "Save Ta|
00001000  62 6c 65 32 44 61 74 61  20 22 2b 53 54 52 24 7e  |ble2Data "+STR$~|
00001010  6c 74 61 62 6c 65 2b 22  20 2b 31 30 5f 31 30 32  |ltable+" +10_102|
00001020  34 22 0d 08 2a 05 e1 0d  ff                       |4"..*....|
00001029