Home » Archimedes archive » Acorn User » AU 1997-06 B.adf » Regulars » RTR/WVexp

RTR/WVexp

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 1997-06 B.adf » Regulars
Filename: RTR/WVexp
Read OK:
File size: 0AAE bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>WaveVoice
   20DIM WT% 511
   30DIM Code% 4096
   40
   41PRINT"Voice Generator test"
   42PRINT"+ or - to change the note"
   43PRINT"Any key to repeat the note"
   50SYS"Sound_Configure",1,208,48,0,0 TO Nc%,Sl%,Sp%,Pc%,Ps%
   60SYS"Sound_Configure",Nc%,Sl%,Sp%,Pc%,Ps%
   70
   80PRINT"Sample Period ";Sp%
   90*Audio ON
  100SYS"Sound_Volume",127 TO UserVol
  110FOR s%=0 TO 255
  120 SYS"Sound_SoundLog",&7FFFFFFF*SIN(2*PI*s%/256) TO WT%?s%
  130NEXT
  140FOR s%=256 TO 511
  150 SYS"Sound_SoundLog",&7FFFFFFF*SIN(2*PI*s%/64) TO WT%?s%
  160NEXT
  170
  180REM SYS"Sound_Volume",UserVol TO UserVol
  190
  200FOR C% = 0 TO 2 STEP 2
  210P%=Code%
  220[ OPT C%
  230.VoiceBase
  240B       Fill
  250B       Fill
  260B       GateOn
  270B       GateOff
  280B       Instance
  290LDMFD   R13!,{PC}
  300LDMFD   R13!,{PC}
  310EQUD    VoiceName - VoiceBase
  320.VoiceName      EQUS "SinMax"
  330                EQUB 0
  340ALIGN
  350.LogAmpPtr      EQUD 0
  360.WaveBase       EQUD WT%
  370
  380.Instance
  390STMFD   R13!,{R0-R4}
  400MOV     R0,#0
  410MOV     R1,#0
  420MOV     R2,#0
  430MOV     R3,#0
  440MOV     R4,#0
  450SWI     "XSound_Configure"
  460LDRVC   R0,[R3,#12]
  470STRVC   R0,LogAmpPtr
  480STRVS   R0,[R13]
  490LDMFD   R13!,{R0-R4,PC}
  500
  510.GateOn
  520LDR     R0,WaveBase
  530STR     R0,[R9,#16]
  540LDR     R0,LogAmpPtr
  550STR     R0,[R9,#20]
  560
  570.Fill
  580LDMIA   R9,{R1-R6}
  590AND     R1,R1,#&7F
  600LDRB    R1,[R6,R1,LSL #1]
  610MOV     R1,R1,LSR #1
  620RSB     R1,R1,#127
  630.FillLoop
  640ADD R2,R2,R2,LSL #16
  650LDRB    R0,[R5,R2,LSR #24]
  660STRB    R0,[R12],R11
  670
  680ADD R2,R2,R2,LSL #16
  690LDRB    R0,[R5,R2,LSR #24]
  700STRB    R0,[R12],R11
  710
  720ADD R2,R2,R2,LSL #16
  730LDRB    R0,[R5,R2,LSR #24]
  740STRB    R0,[R12],R11
  750
  760ADD R2,R2,R2,LSL #16
  770LDRB    R0,[R5,R2,LSR #24]
  780STRB    R0,[R12],R11
  790
  800CMP     R12,R10
  810BLT     FillLoop
  820
  830SUBS    R4,R4,#1
  840STMIB   R9,{R2-R5}
  850MOVPL   R0,#%00001000
  860MOVMI   R0,#%00000010
  870LDMFD   R13!,{PC}
  880
  890.GateOff
  900MOV     R0,#0
  910.FlushLoop
  920STRB    R0,[R12],R11
  930STRB    R0,[R12],R11
  940STRB    R0,[R12],R11
  950STRB    R0,[R12],R11
  960CMP     R12,R10
  970BLT     FlushLoop
  980MOV     R0,#%00000001
  990LDMFD   R13!,{PC}
 1000]
 1010NEXT
 1020
 1030DIM OldVoice%(8)
 1040SYS "Sound_InstallVoice",VoiceBase,0 TO a%,Voice%
 1050FOR v%=1 TO 1
 1060SYS"Sound_AttachVoice",v%,0 TO z%,OldVoice%(v%)
 1070VOICE v%,"SinMax"
 1080NEXT
 1090
 1100ON ERROR PROCRestoreSound : END
 1110
 1120VOICES 1
 1130*voices
 1140REM SOUND 1,&17F,53,10
 1150PRINT"<ESCAPE> to end"
 1160
 1170C%=&7000
 1180REPEAT
 1190K$=GET$
 1200IF K$="-" THEN C%-=240
 1210IF K$="=" THEN C%+=240
 1211O%=C%>>12
 1230PRINT "Octave no ";O%;" ";~C%
 1240IF C%>&7FFF THEN P%=C%-&2000: !WaveBase=WT%+256 ELSE P%=C%:!WaveBase=WT%
 1250 SOUND 1,-15,P%,100
 1260
 1270UNTIL 0
 1280
 1290DEF PROCRestoreSound
 1300ON ERROR OFF
 1310REPORT:PRINT ERL
 1320SYS "Sound_RemoveVoice",0,Voice%
 1330FOR v%=1 TO 1
 1340 SYS"Sound_AttachVoice",v%,OldVoice%(v%)
 1350NEXT
 1360VOICES 1
 1370*voices
 1380PRINT
 1390ENDPROC
 1400

�>WaveVoice

� WT% 511
� Code% 4096
(
)�"Voice Generator test"
* �"+ or - to change the note"
+!�"Any key to repeat the note"
2:ș"Sound_Configure",1,208,48,0,0 � Nc%,Sl%,Sp%,Pc%,Ps%
<+ș"Sound_Configure",Nc%,Sl%,Sp%,Pc%,Ps%
F
P�"Sample Period ";Sp%
Z
*Audio ON
d"ș"Sound_Volume",127 � UserVol
n� s%=0 � 255
x8 ș"Sound_SoundLog",&7FFFFFFF*�(2*�*s%/256) � WT%?s%
��
�� s%=256 � 511
�7 ș"Sound_SoundLog",&7FFFFFFF*�(2*�*s%/64) � WT%?s%
��
�
�*� SYS"Sound_Volume",UserVol TO UserVol
�
�� C% = 0 � 2 � 2
�P%=Code%
�[ OPT C%
�.VoiceBase
�B       Fill
�B       Fill
B       GateOn
B       GateOff
B       Instance
"LDMFD   R13!,{PC}
,LDMFD   R13!,{PC}
6!EQUD    VoiceName - VoiceBase
@!.VoiceName      EQUS "SinMax"
J                EQUB 0
T	ALIGN
^.LogAmpPtr      EQUD 0
h.WaveBase       EQUD WT%
r
|
.Instance
�STMFD   R13!,{R0-R4}
�MOV     R0,#0
�MOV     R1,#0
�MOV     R2,#0
�MOV     R3,#0
�MOV     R4,#0
�SWI     "XSound_Configure"
�LDRVC   R0,[R3,#12]
�STRVC   R0,LogAmpPtr
�STRVS   R0,[R13]
�LDMFD   R13!,{R0-R4,PC}
�
�.GateOn
LDR     R0,WaveBase
STR     R0,[R9,#16]
LDR     R0,LogAmpPtr
&STR     R0,[R9,#20]
0
:	.Fill
DLDMIA   R9,{R1-R6}
N�     R1,R1,#&7F
XLDRB    R1,[R6,R1,LSL #1]
bMOV     R1,R1,LSR #1
lRSB     R1,R1,#127
v
.FillLoop
�ADD R2,R2,R2,LSL #16
�LDRB    R0,[R5,R2,LSR #24]
�STRB    R0,[R12],R11
�
�ADD R2,R2,R2,LSL #16
�LDRB    R0,[R5,R2,LSR #24]
�STRB    R0,[R12],R11
�
�ADD R2,R2,R2,LSL #16
�LDRB    R0,[R5,R2,LSR #24]
�STRB    R0,[R12],R11
�
�ADD R2,R2,R2,LSL #16
LDRB    R0,[R5,R2,LSR #24]
STRB    R0,[R12],R11

 CMP     R12,R10
*BLT     FillLoop
4
>SUBS    R4,R4,#1
HSTMIB   R9,{R2-R5}
RMOVPL   R0,#%00001000
\MOVMI   R0,#%00000010
fLDMFD   R13!,{PC}
p
z.GateOff
�MOV     R0,#0
�.FlushLoop
�STRB    R0,[R12],R11
�STRB    R0,[R12],R11
�STRB    R0,[R12],R11
�STRB    R0,[R12],R11
�CMP     R12,R10
�BLT     FlushLoop
�MOV     R0,#%00000001
�LDMFD   R13!,{PC}
�]
��
�
� OldVoice%(8)
3ș "Sound_InstallVoice",VoiceBase,0 � a%,Voice%
� v%=1 � 1
$1ș"Sound_AttachVoice",v%,0 � z%,OldVoice%(v%)
.ȡ v%,"SinMax"
8�
B
L� � �RestoreSound : �
V
`Ƞ 1
j*voices
t� SOUND 1,&17F,53,10
~�"<ESCAPE> to end"
�
�C%=&7000
��
�K$=�
�� K$="-" � C%-=240
�� K$="=" � C%+=240
�
O%=C%>>12
�� "Octave no ";O%;" ";~C%
�E� C%>&7FFF � P%=C%-&2000: !WaveBase=WT%+256 � P%=C%:!WaveBase=WT%
� � 1,-15,P%,100
�
�� 0


� �RestoreSound
	� � �
	�:� �
(#ș "Sound_RemoveVoice",0,Voice%
2� v%=1 � 1
<+ ș"Sound_AttachVoice",v%,OldVoice%(v%)
F�
PȠ 1
Z*voices
d�
n�
x
�
00000000  0d 00 0a 0f f4 3e 57 61  76 65 56 6f 69 63 65 0d  |.....>WaveVoice.|
00000010  00 14 0d de 20 57 54 25  20 35 31 31 0d 00 1e 10  |.... WT% 511....|
00000020  de 20 43 6f 64 65 25 20  34 30 39 36 0d 00 28 04  |. Code% 4096..(.|
00000030  0d 00 29 1b f1 22 56 6f  69 63 65 20 47 65 6e 65  |..).."Voice Gene|
00000040  72 61 74 6f 72 20 74 65  73 74 22 0d 00 2a 20 f1  |rator test"..* .|
00000050  22 2b 20 6f 72 20 2d 20  74 6f 20 63 68 61 6e 67  |"+ or - to chang|
00000060  65 20 74 68 65 20 6e 6f  74 65 22 0d 00 2b 21 f1  |e the note"..+!.|
00000070  22 41 6e 79 20 6b 65 79  20 74 6f 20 72 65 70 65  |"Any key to repe|
00000080  61 74 20 74 68 65 20 6e  6f 74 65 22 0d 00 32 3a  |at the note"..2:|
00000090  c8 99 22 53 6f 75 6e 64  5f 43 6f 6e 66 69 67 75  |.."Sound_Configu|
000000a0  72 65 22 2c 31 2c 32 30  38 2c 34 38 2c 30 2c 30  |re",1,208,48,0,0|
000000b0  20 b8 20 4e 63 25 2c 53  6c 25 2c 53 70 25 2c 50  | . Nc%,Sl%,Sp%,P|
000000c0  63 25 2c 50 73 25 0d 00  3c 2b c8 99 22 53 6f 75  |c%,Ps%..<+.."Sou|
000000d0  6e 64 5f 43 6f 6e 66 69  67 75 72 65 22 2c 4e 63  |nd_Configure",Nc|
000000e0  25 2c 53 6c 25 2c 53 70  25 2c 50 63 25 2c 50 73  |%,Sl%,Sp%,Pc%,Ps|
000000f0  25 0d 00 46 04 0d 00 50  19 f1 22 53 61 6d 70 6c  |%..F...P.."Sampl|
00000100  65 20 50 65 72 69 6f 64  20 22 3b 53 70 25 0d 00  |e Period ";Sp%..|
00000110  5a 0d 2a 41 75 64 69 6f  20 4f 4e 0d 00 64 22 c8  |Z.*Audio ON..d".|
00000120  99 22 53 6f 75 6e 64 5f  56 6f 6c 75 6d 65 22 2c  |."Sound_Volume",|
00000130  31 32 37 20 b8 20 55 73  65 72 56 6f 6c 0d 00 6e  |127 . UserVol..n|
00000140  10 e3 20 73 25 3d 30 20  b8 20 32 35 35 0d 00 78  |.. s%=0 . 255..x|
00000150  38 20 c8 99 22 53 6f 75  6e 64 5f 53 6f 75 6e 64  |8 .."Sound_Sound|
00000160  4c 6f 67 22 2c 26 37 46  46 46 46 46 46 46 2a b5  |Log",&7FFFFFFF*.|
00000170  28 32 2a af 2a 73 25 2f  32 35 36 29 20 b8 20 57  |(2*.*s%/256) . W|
00000180  54 25 3f 73 25 0d 00 82  05 ed 0d 00 8c 12 e3 20  |T%?s%.......... |
00000190  73 25 3d 32 35 36 20 b8  20 35 31 31 0d 00 96 37  |s%=256 . 511...7|
000001a0  20 c8 99 22 53 6f 75 6e  64 5f 53 6f 75 6e 64 4c  | .."Sound_SoundL|
000001b0  6f 67 22 2c 26 37 46 46  46 46 46 46 46 2a b5 28  |og",&7FFFFFFF*.(|
000001c0  32 2a af 2a 73 25 2f 36  34 29 20 b8 20 57 54 25  |2*.*s%/64) . WT%|
000001d0  3f 73 25 0d 00 a0 05 ed  0d 00 aa 04 0d 00 b4 2a  |?s%............*|
000001e0  f4 20 53 59 53 22 53 6f  75 6e 64 5f 56 6f 6c 75  |. SYS"Sound_Volu|
000001f0  6d 65 22 2c 55 73 65 72  56 6f 6c 20 54 4f 20 55  |me",UserVol TO U|
00000200  73 65 72 56 6f 6c 0d 00  be 04 0d 00 c8 14 e3 20  |serVol......... |
00000210  43 25 20 3d 20 30 20 b8  20 32 20 88 20 32 0d 00  |C% = 0 . 2 . 2..|
00000220  d2 0c 50 25 3d 43 6f 64  65 25 0d 00 dc 0c 5b 20  |..P%=Code%....[ |
00000230  4f 50 54 20 43 25 0d 00  e6 0e 2e 56 6f 69 63 65  |OPT C%.....Voice|
00000240  42 61 73 65 0d 00 f0 10  42 20 20 20 20 20 20 20  |Base....B       |
00000250  46 69 6c 6c 0d 00 fa 10  42 20 20 20 20 20 20 20  |Fill....B       |
00000260  46 69 6c 6c 0d 01 04 12  42 20 20 20 20 20 20 20  |Fill....B       |
00000270  47 61 74 65 4f 6e 0d 01  0e 13 42 20 20 20 20 20  |GateOn....B     |
00000280  20 20 47 61 74 65 4f 66  66 0d 01 18 14 42 20 20  |  GateOff....B  |
00000290  20 20 20 20 20 49 6e 73  74 61 6e 63 65 0d 01 22  |     Instance.."|
000002a0  15 4c 44 4d 46 44 20 20  20 52 31 33 21 2c 7b 50  |.LDMFD   R13!,{P|
000002b0  43 7d 0d 01 2c 15 4c 44  4d 46 44 20 20 20 52 31  |C}..,.LDMFD   R1|
000002c0  33 21 2c 7b 50 43 7d 0d  01 36 21 45 51 55 44 20  |3!,{PC}..6!EQUD |
000002d0  20 20 20 56 6f 69 63 65  4e 61 6d 65 20 2d 20 56  |   VoiceName - V|
000002e0  6f 69 63 65 42 61 73 65  0d 01 40 21 2e 56 6f 69  |oiceBase..@!.Voi|
000002f0  63 65 4e 61 6d 65 20 20  20 20 20 20 45 51 55 53  |ceName      EQUS|
00000300  20 22 53 69 6e 4d 61 78  22 0d 01 4a 1a 20 20 20  | "SinMax"..J.   |
00000310  20 20 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |             EQU|
00000320  42 20 30 0d 01 54 09 41  4c 49 47 4e 0d 01 5e 1a  |B 0..T.ALIGN..^.|
00000330  2e 4c 6f 67 41 6d 70 50  74 72 20 20 20 20 20 20  |.LogAmpPtr      |
00000340  45 51 55 44 20 30 0d 01  68 1c 2e 57 61 76 65 42  |EQUD 0..h..WaveB|
00000350  61 73 65 20 20 20 20 20  20 20 45 51 55 44 20 57  |ase       EQUD W|
00000360  54 25 0d 01 72 04 0d 01  7c 0d 2e 49 6e 73 74 61  |T%..r...|..Insta|
00000370  6e 63 65 0d 01 86 18 53  54 4d 46 44 20 20 20 52  |nce....STMFD   R|
00000380  31 33 21 2c 7b 52 30 2d  52 34 7d 0d 01 90 11 4d  |13!,{R0-R4}....M|
00000390  4f 56 20 20 20 20 20 52  30 2c 23 30 0d 01 9a 11  |OV     R0,#0....|
000003a0  4d 4f 56 20 20 20 20 20  52 31 2c 23 30 0d 01 a4  |MOV     R1,#0...|
000003b0  11 4d 4f 56 20 20 20 20  20 52 32 2c 23 30 0d 01  |.MOV     R2,#0..|
000003c0  ae 11 4d 4f 56 20 20 20  20 20 52 33 2c 23 30 0d  |..MOV     R3,#0.|
000003d0  01 b8 11 4d 4f 56 20 20  20 20 20 52 34 2c 23 30  |...MOV     R4,#0|
000003e0  0d 01 c2 1e 53 57 49 20  20 20 20 20 22 58 53 6f  |....SWI     "XSo|
000003f0  75 6e 64 5f 43 6f 6e 66  69 67 75 72 65 22 0d 01  |und_Configure"..|
00000400  cc 17 4c 44 52 56 43 20  20 20 52 30 2c 5b 52 33  |..LDRVC   R0,[R3|
00000410  2c 23 31 32 5d 0d 01 d6  18 53 54 52 56 43 20 20  |,#12]....STRVC  |
00000420  20 52 30 2c 4c 6f 67 41  6d 70 50 74 72 0d 01 e0  | R0,LogAmpPtr...|
00000430  14 53 54 52 56 53 20 20  20 52 30 2c 5b 52 31 33  |.STRVS   R0,[R13|
00000440  5d 0d 01 ea 1b 4c 44 4d  46 44 20 20 20 52 31 33  |]....LDMFD   R13|
00000450  21 2c 7b 52 30 2d 52 34  2c 50 43 7d 0d 01 f4 04  |!,{R0-R4,PC}....|
00000460  0d 01 fe 0b 2e 47 61 74  65 4f 6e 0d 02 08 17 4c  |.....GateOn....L|
00000470  44 52 20 20 20 20 20 52  30 2c 57 61 76 65 42 61  |DR     R0,WaveBa|
00000480  73 65 0d 02 12 17 53 54  52 20 20 20 20 20 52 30  |se....STR     R0|
00000490  2c 5b 52 39 2c 23 31 36  5d 0d 02 1c 18 4c 44 52  |,[R9,#16]....LDR|
000004a0  20 20 20 20 20 52 30 2c  4c 6f 67 41 6d 70 50 74  |     R0,LogAmpPt|
000004b0  72 0d 02 26 17 53 54 52  20 20 20 20 20 52 30 2c  |r..&.STR     R0,|
000004c0  5b 52 39 2c 23 32 30 5d  0d 02 30 04 0d 02 3a 09  |[R9,#20]..0...:.|
000004d0  2e 46 69 6c 6c 0d 02 44  16 4c 44 4d 49 41 20 20  |.Fill..D.LDMIA  |
000004e0  20 52 39 2c 7b 52 31 2d  52 36 7d 0d 02 4e 14 80  | R9,{R1-R6}..N..|
000004f0  20 20 20 20 20 52 31 2c  52 31 2c 23 26 37 46 0d  |     R1,R1,#&7F.|
00000500  02 58 1d 4c 44 52 42 20  20 20 20 52 31 2c 5b 52  |.X.LDRB    R1,[R|
00000510  36 2c 52 31 2c 4c 53 4c  20 23 31 5d 0d 02 62 18  |6,R1,LSL #1]..b.|
00000520  4d 4f 56 20 20 20 20 20  52 31 2c 52 31 2c 4c 53  |MOV     R1,R1,LS|
00000530  52 20 23 31 0d 02 6c 16  52 53 42 20 20 20 20 20  |R #1..l.RSB     |
00000540  52 31 2c 52 31 2c 23 31  32 37 0d 02 76 0d 2e 46  |R1,R1,#127..v..F|
00000550  69 6c 6c 4c 6f 6f 70 0d  02 80 18 41 44 44 20 52  |illLoop....ADD R|
00000560  32 2c 52 32 2c 52 32 2c  4c 53 4c 20 23 31 36 0d  |2,R2,R2,LSL #16.|
00000570  02 8a 1e 4c 44 52 42 20  20 20 20 52 30 2c 5b 52  |...LDRB    R0,[R|
00000580  35 2c 52 32 2c 4c 53 52  20 23 32 34 5d 0d 02 94  |5,R2,LSR #24]...|
00000590  18 53 54 52 42 20 20 20  20 52 30 2c 5b 52 31 32  |.STRB    R0,[R12|
000005a0  5d 2c 52 31 31 0d 02 9e  04 0d 02 a8 18 41 44 44  |],R11........ADD|
000005b0  20 52 32 2c 52 32 2c 52  32 2c 4c 53 4c 20 23 31  | R2,R2,R2,LSL #1|
000005c0  36 0d 02 b2 1e 4c 44 52  42 20 20 20 20 52 30 2c  |6....LDRB    R0,|
000005d0  5b 52 35 2c 52 32 2c 4c  53 52 20 23 32 34 5d 0d  |[R5,R2,LSR #24].|
000005e0  02 bc 18 53 54 52 42 20  20 20 20 52 30 2c 5b 52  |...STRB    R0,[R|
000005f0  31 32 5d 2c 52 31 31 0d  02 c6 04 0d 02 d0 18 41  |12],R11........A|
00000600  44 44 20 52 32 2c 52 32  2c 52 32 2c 4c 53 4c 20  |DD R2,R2,R2,LSL |
00000610  23 31 36 0d 02 da 1e 4c  44 52 42 20 20 20 20 52  |#16....LDRB    R|
00000620  30 2c 5b 52 35 2c 52 32  2c 4c 53 52 20 23 32 34  |0,[R5,R2,LSR #24|
00000630  5d 0d 02 e4 18 53 54 52  42 20 20 20 20 52 30 2c  |]....STRB    R0,|
00000640  5b 52 31 32 5d 2c 52 31  31 0d 02 ee 04 0d 02 f8  |[R12],R11.......|
00000650  18 41 44 44 20 52 32 2c  52 32 2c 52 32 2c 4c 53  |.ADD R2,R2,R2,LS|
00000660  4c 20 23 31 36 0d 03 02  1e 4c 44 52 42 20 20 20  |L #16....LDRB   |
00000670  20 52 30 2c 5b 52 35 2c  52 32 2c 4c 53 52 20 23  | R0,[R5,R2,LSR #|
00000680  32 34 5d 0d 03 0c 18 53  54 52 42 20 20 20 20 52  |24]....STRB    R|
00000690  30 2c 5b 52 31 32 5d 2c  52 31 31 0d 03 16 04 0d  |0,[R12],R11.....|
000006a0  03 20 13 43 4d 50 20 20  20 20 20 52 31 32 2c 52  |. .CMP     R12,R|
000006b0  31 30 0d 03 2a 14 42 4c  54 20 20 20 20 20 46 69  |10..*.BLT     Fi|
000006c0  6c 6c 4c 6f 6f 70 0d 03  34 04 0d 03 3e 14 53 55  |llLoop..4...>.SU|
000006d0  42 53 20 20 20 20 52 34  2c 52 34 2c 23 31 0d 03  |BS    R4,R4,#1..|
000006e0  48 16 53 54 4d 49 42 20  20 20 52 39 2c 7b 52 32  |H.STMIB   R9,{R2|
000006f0  2d 52 35 7d 0d 03 52 19  4d 4f 56 50 4c 20 20 20  |-R5}..R.MOVPL   |
00000700  52 30 2c 23 25 30 30 30  30 31 30 30 30 0d 03 5c  |R0,#%00001000..\|
00000710  19 4d 4f 56 4d 49 20 20  20 52 30 2c 23 25 30 30  |.MOVMI   R0,#%00|
00000720  30 30 30 30 31 30 0d 03  66 15 4c 44 4d 46 44 20  |000010..f.LDMFD |
00000730  20 20 52 31 33 21 2c 7b  50 43 7d 0d 03 70 04 0d  |  R13!,{PC}..p..|
00000740  03 7a 0c 2e 47 61 74 65  4f 66 66 0d 03 84 11 4d  |.z..GateOff....M|
00000750  4f 56 20 20 20 20 20 52  30 2c 23 30 0d 03 8e 0e  |OV     R0,#0....|
00000760  2e 46 6c 75 73 68 4c 6f  6f 70 0d 03 98 18 53 54  |.FlushLoop....ST|
00000770  52 42 20 20 20 20 52 30  2c 5b 52 31 32 5d 2c 52  |RB    R0,[R12],R|
00000780  31 31 0d 03 a2 18 53 54  52 42 20 20 20 20 52 30  |11....STRB    R0|
00000790  2c 5b 52 31 32 5d 2c 52  31 31 0d 03 ac 18 53 54  |,[R12],R11....ST|
000007a0  52 42 20 20 20 20 52 30  2c 5b 52 31 32 5d 2c 52  |RB    R0,[R12],R|
000007b0  31 31 0d 03 b6 18 53 54  52 42 20 20 20 20 52 30  |11....STRB    R0|
000007c0  2c 5b 52 31 32 5d 2c 52  31 31 0d 03 c0 13 43 4d  |,[R12],R11....CM|
000007d0  50 20 20 20 20 20 52 31  32 2c 52 31 30 0d 03 ca  |P     R12,R10...|
000007e0  15 42 4c 54 20 20 20 20  20 46 6c 75 73 68 4c 6f  |.BLT     FlushLo|
000007f0  6f 70 0d 03 d4 19 4d 4f  56 20 20 20 20 20 52 30  |op....MOV     R0|
00000800  2c 23 25 30 30 30 30 30  30 30 31 0d 03 de 15 4c  |,#%00000001....L|
00000810  44 4d 46 44 20 20 20 52  31 33 21 2c 7b 50 43 7d  |DMFD   R13!,{PC}|
00000820  0d 03 e8 05 5d 0d 03 f2  05 ed 0d 03 fc 04 0d 04  |....]...........|
00000830  06 12 de 20 4f 6c 64 56  6f 69 63 65 25 28 38 29  |... OldVoice%(8)|
00000840  0d 04 10 33 c8 99 20 22  53 6f 75 6e 64 5f 49 6e  |...3.. "Sound_In|
00000850  73 74 61 6c 6c 56 6f 69  63 65 22 2c 56 6f 69 63  |stallVoice",Voic|
00000860  65 42 61 73 65 2c 30 20  b8 20 61 25 2c 56 6f 69  |eBase,0 . a%,Voi|
00000870  63 65 25 0d 04 1a 0e e3  20 76 25 3d 31 20 b8 20  |ce%..... v%=1 . |
00000880  31 0d 04 24 31 c8 99 22  53 6f 75 6e 64 5f 41 74  |1..$1.."Sound_At|
00000890  74 61 63 68 56 6f 69 63  65 22 2c 76 25 2c 30 20  |tachVoice",v%,0 |
000008a0  b8 20 7a 25 2c 4f 6c 64  56 6f 69 63 65 25 28 76  |. z%,OldVoice%(v|
000008b0  25 29 0d 04 2e 12 c8 a1  20 76 25 2c 22 53 69 6e  |%)...... v%,"Sin|
000008c0  4d 61 78 22 0d 04 38 05  ed 0d 04 42 04 0d 04 4c  |Max"..8....B...L|
000008d0  19 ee 20 85 20 f2 52 65  73 74 6f 72 65 53 6f 75  |.. . .RestoreSou|
000008e0  6e 64 20 3a 20 e0 0d 04  56 04 0d 04 60 08 c8 a0  |nd : ...V...`...|
000008f0  20 31 0d 04 6a 0b 2a 76  6f 69 63 65 73 0d 04 74  | 1..j.*voices..t|
00000900  18 f4 20 53 4f 55 4e 44  20 31 2c 26 31 37 46 2c  |.. SOUND 1,&17F,|
00000910  35 33 2c 31 30 0d 04 7e  16 f1 22 3c 45 53 43 41  |53,10..~.."<ESCA|
00000920  50 45 3e 20 74 6f 20 65  6e 64 22 0d 04 88 04 0d  |PE> to end".....|
00000930  04 92 0c 43 25 3d 26 37  30 30 30 0d 04 9c 05 f5  |...C%=&7000.....|
00000940  0d 04 a6 08 4b 24 3d be  0d 04 b0 16 e7 20 4b 24  |....K$=...... K$|
00000950  3d 22 2d 22 20 8c 20 43  25 2d 3d 32 34 30 0d 04  |="-" . C%-=240..|
00000960  ba 16 e7 20 4b 24 3d 22  3d 22 20 8c 20 43 25 2b  |... K$="=" . C%+|
00000970  3d 32 34 30 0d 04 bb 0d  4f 25 3d 43 25 3e 3e 31  |=240....O%=C%>>1|
00000980  32 0d 04 ce 1d f1 20 22  4f 63 74 61 76 65 20 6e  |2..... "Octave n|
00000990  6f 20 22 3b 4f 25 3b 22  20 22 3b 7e 43 25 0d 04  |o ";O%;" ";~C%..|
000009a0  d8 45 e7 20 43 25 3e 26  37 46 46 46 20 8c 20 50  |.E. C%>&7FFF . P|
000009b0  25 3d 43 25 2d 26 32 30  30 30 3a 20 21 57 61 76  |%=C%-&2000: !Wav|
000009c0  65 42 61 73 65 3d 57 54  25 2b 32 35 36 20 8b 20  |eBase=WT%+256 . |
000009d0  50 25 3d 43 25 3a 21 57  61 76 65 42 61 73 65 3d  |P%=C%:!WaveBase=|
000009e0  57 54 25 0d 04 e2 13 20  d4 20 31 2c 2d 31 35 2c  |WT%.... . 1,-15,|
000009f0  50 25 2c 31 30 30 0d 04  ec 04 0d 04 f6 07 fd 20  |P%,100......... |
00000a00  30 0d 05 00 04 0d 05 0a  13 dd 20 f2 52 65 73 74  |0......... .Rest|
00000a10  6f 72 65 53 6f 75 6e 64  0d 05 14 09 ee 20 85 20  |oreSound..... . |
00000a20  87 0d 05 1e 09 f6 3a f1  20 9e 0d 05 28 23 c8 99  |......:. ...(#..|
00000a30  20 22 53 6f 75 6e 64 5f  52 65 6d 6f 76 65 56 6f  | "Sound_RemoveVo|
00000a40  69 63 65 22 2c 30 2c 56  6f 69 63 65 25 0d 05 32  |ice",0,Voice%..2|
00000a50  0e e3 20 76 25 3d 31 20  b8 20 31 0d 05 3c 2b 20  |.. v%=1 . 1..<+ |
00000a60  c8 99 22 53 6f 75 6e 64  5f 41 74 74 61 63 68 56  |.."Sound_AttachV|
00000a70  6f 69 63 65 22 2c 76 25  2c 4f 6c 64 56 6f 69 63  |oice",v%,OldVoic|
00000a80  65 25 28 76 25 29 0d 05  46 05 ed 0d 05 50 08 c8  |e%(v%)..F....P..|
00000a90  a0 20 31 0d 05 5a 0b 2a  76 6f 69 63 65 73 0d 05  |. 1..Z.*voices..|
00000aa0  64 05 f1 0d 05 6e 05 e1  0d 05 78 04 0d ff        |d....n....x...|
00000aae