@ -8,30 +8,688 @@ SPK_INIT:
PRTS ( "SPK: IO=0x$" )
LD A , RTCIO
CALL PRTHEXBYTE
CALL SP K_BEEP
CALL SP K_BEEP ; PLAY A NOTE
XOR A
RET
;
;SPK_BEEP:
; PUSH DE
; PUSH HL
; LD HL,400 ; CYCLES OF TONE
; ;LD B,%00000100 ; D2 MAPPED TO Q0
; ;LD A,DSRTC_RESET
; LD A,(RTCVAL) ; GET RTC PORT VALUE FROM SHADOW
; OR %00000100 ; D2 MAPPED TO Q0
; LD B,A
;SPK_BEEP1:
; LD A,B
; OUT (RTCIO),A
; XOR %00000100
; LD B,A
; LD DE,17
; CALL VDELAY
; DEC HL
; LD A,H
; OR L
; JR NZ,SPK_BEEP1
; POP HL
; POP DE
; RET
SPK_BEEP:
PUSH DE
PUSH HL
LD HL , 400 ; CYCLES OF TONE
;LD B,%00000100 ; D2 MAPPED TO Q0
;LD A,DSRTC_RESET
LD A ,( RTCVAL ) ; GET RTC PORT VALUE FROM SHADOW
OR % 00000100 ; D2 MAPPED TO Q0
LD HL , SP K_NOTE_C8 ; SELECT NOTE
LD A ,( HL ) ; LOAD 1ST ARG
INC HL ; IN DE
LD E , A
LD A ,( HL )
INC HL
LD D , A
LD A ,( HL ) ; LOAD 2ND ARG
INC HL ; IN BC
LD C , A
LD A ,( HL )
INC HL
LD B , A
SPK_BEEP1:
LD A , B
OUT ( RTCIO ), A
XOR % 00000100
LD B , A
LD DE , 17
CALL VDELAY
DEC HL
LD A , H
OR L
JR NZ , SP K_BEEP1
PUSH BC ; SETUP ARG IN HL
POP HL
POP DE
CALL SP K_BEEPER ; PLAY
RET
;
; The following SPK_BEEPER routine is a modification of code from
; "The Complete SPECTRUM ROM DISSASSEMBLY" by Dr Ian Logan & Dr Frank O’Hara
;
; https://www.esocop.org/docs/CompleteSpectrumROMDisassemblyThe.pdf
;
; DE Number of passes to make through the sound generation loop
; HL Loop delay parameter
;
SPK_BEEPER:
PUSH IX
DI ; Disable the interrupt for the duration of a 'beep'.
LD A , L ; Save L temporarily.
SRL L ; Each '1' in the L register is to count 4 T states, but take INT (L/4) and count 16 T states instead.
SRL L
CPL ; Go back to the original value in L and find how many were lost by taking 3-(A mod 4).
AND $ 03
LD C , A
LD B , $ 00
LD IX , SP K_DLYADJ ; The base address of the timing loop.
ADD IX , BC ; Alter the length of the timing loop. Use an earlier starting point for each '1' lost by taking INT (L/4).
LD A ,( RTCVAL ) ; Fetch the present border colour from BORDCR and move it to bits 2, 1 and 0 of the A register.
;
; The HL register holds the 'length of the timing loop' with 16 T states being used for each '1' in the L register and 1024 T states for each '1' in the H register.
;
SPK_DLYADJ:
NOP ; Add 4 T states for each earlier entry point that is used.
NOP
NOP
INC B ; The values in the B and C registers will come from the H and L registers - see below.
INC C
BE_H_L_LP:
DEC C ; The 'timing loop', i.e. BC*4 T states. (But note that at the half-cycle point, C will be equal to L+1.)
JR NZ , BE_H_L_LP
LD C , $ 3 F
DEC B
JP NZ , BE_H_L_LP
;
; The loudspeaker is now alternately activated and deactivated.
;
XOR % 00000100 ; Flip bit 2.
OUT ( RTCIO ), A ; Perform the 'OUT' operation, leaving other bits unchanged.
LD B , H ; Reset the B register.
LD C , A ; Save the A register.
BIT 4 , A ; Jump if at the half-cycle point.
JR NZ , BE_AGAIN
;
; After a full cycle the DE register pair is tested.
;
LD A , D ; Jump forward if the last complete pass has been made already.
OR E
JR Z , BE_END
LD A , C ; Fetch the saved value.
LD C , L ; Reset the C register.
DEC DE ; Decrease the pass counter.
JP ( IX ) ; Jump back to the required starting location of the loop.
;
; The parameters for the second half-cycle are set up.
;
BE_AGAIN:
LD C , L ; Reset the C register.
INC C ; Add 16 T states as this path is shorter.
JP ( IX ) ; Jump back.
BE_END:
EI
POP IX
RET
;
; STANDARD ONE SECOND TONE TABLES. FOR SPK_BEEPER, FIRST WORD LOADED INTO DE, SECOND INTO HL
;
; EXCEL SPREADSHEET FOR CALCULATION CAN BE FOUND HERE:
;
; https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=boards:sbc:sbc_v2:sbc_v2-004:spk_beep_tuntbl.xlsx
;
SPK_TUNTBL:
# IF ( CPUOSC = 2000000 )
.DW $ 10 , $ 6868 ; C0
.DW $ 11 , $ 628 D ; C
.DW $ 12 , $ 5 D03 ; D0
.DW $ 13 , $ 57 BF ; D
.DW $ 14 , $ 52 D7 ; E0
.DW $ 15 , $ 4 E2B ; F0
.DW $ 17 , $ 49 CD ; F
.DW $ 18 , $ 45 A3 ; G0
.DW $ 19 , $ 41 B6 ; G
.DW $ 1B , $ 3 E07 ; A0
.DW $ 1 D , $ 3 A87 ; A
.DW $ 1 E , $ 373 E ; B0
.DW $ 20 , $ 3425 ; C1
.DW $ 22 , $ 3134 ; C
.DW $ 24 , $ 2 E6F ; D1
.DW $ 26 , $ 2 BD3 ; D
.DW $ 29 , $ 295 C ; E1
.DW $ 2 B , $ 2708 ; F1
.DW $ 2 E , $ 24 D5 ; F
.DW $ 31 , $ 22 C2 ; G1
.DW $ 33 , $ 20 CE ; G
.DW $ 37 , $ 1 EF4 ; A1
.DW $ 3 A , $ 1 D36 ; A
.DW $ 3 D , $ 1B 90 ; B1
.DW $ 41 , $ 1 A02 ; C2
.DW $ 45 , $ 188 B ; C
.DW $ 49 , $ 1728 ; D2
.DW $ 4 D , $ 15 DA ; D
.DW $ 52 , $ 149 E ; E2
.DW $ 57 , $ 1374 ; F2
.DW $ 5 C , $ 125 B ; F
.DW $ 62 , $ 1152 ; G2
.DW $ 67 , $ 1057 ; G
.DW $ 6 E , $ F6B ; A2
.DW $ 74 , $ E8C ; A
.DW $ 7 B , $ DB9 ; B2
.DW $ 82 , $ CF2 ; C3
.DW $ 8 A , $ C36 ; C
.DW $ 92 , $ B85 ; D3
.DW $ 9 B , $ ADE ; D
.DW $ A4 , $ A40 ; E3
.DW $ AE , $ 9 AB ; F3
.DW $ B9 , $ 91 E ; F
.DW $ C4 , $ 89 A ; G3
.DW $ CF , $ 81 C ; G
.DW $ DC , $ 7 A6 ; A3
.DW $ E9 , $ 737 ; A
.DW $ F6 , $ 6 CD ; B3
.DW $ 105 , $ 66 A ; C4
.DW $ 115 , $ 60 C ; C
.DW $ 125 , $ 5 B3 ; D4
.DW $ 137 , $ 560 ; D
.DW $ 149 , $ 511 ; E4
.DW $ 15 D , $ 4 C6 ; F4
.DW $ 171 , $ 480 ; F
.DW $ 188 , $ 43 E ; G4
.DW $ 19 F , $ 3 FF ; G
.DW $ 1B 8 , $ 3 C4 ; A4
.DW $ 1 D2 , $ 38 C ; A
.DW $ 1 ED , $ 357 ; B4
.DW $ 20 B , $ 326 ; C5
.DW $ 22 A , $ 2 F7 ; C
.DW $ 24 B , $ 2 CA ; D5
.DW $ 26 E , $ 2 A1 ; D
.DW $ 293 , $ 279 ; E5
.DW $ 2 BA , $ 254 ; F5
.DW $ 2 E3 , $ 231 ; F
.DW $ 30 F , $ 210 ; G5
.DW $ 33 E , $ 1 F0 ; G
.DW $ 370 , $ 1 D3 ; A5
.DW $ 3 A4 , $ 1B 7 ; A
.DW $ 3 DB , $ 19 C ; B5
.DW $ 416 , $ 184 ; C6
.DW $ 454 , $ 16 C ; C
.DW $ 496 , $ 156 ; D6
.DW $ 4 DC , $ 141 ; D
.DW $ 526 , $ 12 D ; E6
.DW $ 574 , $ 11B ; F6
.DW $ 5 C7 , $ 109 ; F
.DW $ 61 F , $ F9 ; G6
.DW $ 67 D , $ E9 ; G
.DW $ 6 E0 , $ DA ; A6
.DW $ 748 , $ CC ; A
.DW $ 7 B7 , $ BF ; B6
.DW $ 82 D , $ B3 ; C7
.DW $ 8 A9 , $ A7 ; C
.DW $ 92 D , $ 9 C ; D7
.DW $ 9 B9 , $ 91 ; D
.DW $ A4D , $ 87 ; E7
.DW $ AE9 , $ 7 E ; F7
.DW $ B8F , $ 75 ; F
.DW $ C3F , $ 6 D ; G7
.DW $ CFA , $ 65 ; G
.DW $ DC0 , $ 5 E ; A7
.DW $ E91 , $ 57 ; A
.DW $ F6F , $ 50 ; B7
SPK_NOTE_C8:
.DW $ 105 A , $ 4 A ; C8
.DW $ 1152 , $ 44 ; C
.DW $ 125 A , $ 3 F ; D8
.DW $ 1372 , $ 39 ; D
.DW $ 149 A , $ 34 ; E8
.DW $ 15 D3 , $ 30 ; F8
.DW $ 171 F , $ 2 B ; F
.DW $ 187 F , $ 27 ; G8
.DW $ 19 F4 , $ 23 ; G
.DW $ 1B 80 , $ 20 ; A8
.DW $ 1 D22 , $ 1 C ; A
.DW $ 1 EDE , $ 19 ; B8
# ENDIF
;
# IF ( CPUOSC = 4000000 )
.DW $ 10 , $ 7757 ; C0
.DW $ 11 , $ 70 A6 ; C
.DW $ 12 , $ 6 A51 ; D0
.DW $ 13 , $ 644 C ; D
.DW $ 14 , $ 5 EB1 ; E0
.DW $ 15 , $ 595 A ; F0
.DW $ 17 , $ 545 C ; F
.DW $ 18 , $ 4 F9A ; G0
.DW $ 19 , $ 4 B1E ; G
.DW $ 1B , $ 46 E7 ; A0
.DW $ 1 D , $ 42 E8 ; A
.DW $ 1 E , $ 3 F26 ; B0
.DW $ 20 , $ 3 B9C ; C1
.DW $ 22 , $ 3840 ; C
.DW $ 24 , $ 3516 ; D1
.DW $ 26 , $ 321 A ; D
.DW $ 29 , $ 2 F49 ; E1
.DW $ 2 B , $ 2 CA0 ; F1
.DW $ 2 E , $ 2 A1C ; F
.DW $ 31 , $ 27 BE ; G1
.DW $ 33 , $ 2582 ; G
.DW $ 37 , $ 2364 ; A1
.DW $ 3 A , $ 2166 ; A
.DW $ 3 D , $ 1 F84 ; B1
.DW $ 41 , $ 1 DBE ; C2
.DW $ 45 , $ 1 C11 ; C
.DW $ 49 , $ 1 A7C ; D2
.DW $ 4 D , $ 18 FE ; D
.DW $ 52 , $ 1795 ; E2
.DW $ 57 , $ 1640 ; F2
.DW $ 5 C , $ 14 FF ; F
.DW $ 62 , $ 13 D0 ; G2
.DW $ 67 , $ 12 B1 ; G
.DW $ 6 E , $ 11 A3 ; A2
.DW $ 74 , $ 10 A4 ; A
.DW $ 7 B , $ FB3 ; B2
.DW $ 82 , $ ED0 ; C3
.DW $ 8 A , $ DF9 ; C
.DW $ 92 , $ D2F ; D3
.DW $ 9 B , $ C70 ; D
.DW $ A4 , $ BBB ; E3
.DW $ AE , $ B11 ; F3
.DW $ B9 , $ A70 ; F
.DW $ C4 , $ 9 D9 ; G3
.DW $ CF , $ 949 ; G
.DW $ DC , $ 8 C2 ; A3
.DW $ E9 , $ 843 ; A
.DW $ F6 , $ 7 CA ; B3
.DW $ 105 , $ 759 ; C4
.DW $ 115 , $ 6 ED ; C
.DW $ 125 , $ 688 ; D4
.DW $ 137 , $ 629 ; D
.DW $ 149 , $ 5 CE ; E4
.DW $ 15 D , $ 579 ; F4
.DW $ 171 , $ 529 ; F
.DW $ 188 , $ 4 DD ; G4
.DW $ 19 F , $ 495 ; G
.DW $ 1B 8 , $ 452 ; A4
.DW $ 1 D2 , $ 412 ; A
.DW $ 1 ED , $ 3 D6 ; B4
.DW $ 20 B , $ 39 D ; C5
.DW $ 22 A , $ 367 ; C
.DW $ 24 B , $ 335 ; D5
.DW $ 26 E , $ 305 ; D
.DW $ 293 , $ 2 D8 ; E5
.DW $ 2 BA , $ 2 AD ; F5
.DW $ 2 E3 , $ 285 ; F
.DW $ 30 F , $ 25 F ; G5
.DW $ 33 E , $ 23 B ; G
.DW $ 370 , $ 21 A ; A5
.DW $ 3 A4 , $ 1 FA ; A
.DW $ 3 DB , $ 1 DC ; B5
.DW $ 416 , $ 1B F ; C6
.DW $ 454 , $ 1 A4 ; C
.DW $ 496 , $ 18 B ; D6
.DW $ 4 DC , $ 173 ; D
.DW $ 526 , $ 15 D ; E6
.DW $ 574 , $ 147 ; F6
.DW $ 5 C7 , $ 133 ; F
.DW $ 61 F , $ 120 ; G6
.DW $ 67 D , $ 10 E ; G
.DW $ 6 E0 , $ FE ; A6
.DW $ 748 , $ EE ; A
.DW $ 7 B7 , $ DF ; B6
.DW $ 82 D , $ D0 ; C7
.DW $ 8 A9 , $ C3 ; C
.DW $ 92 D , $ B6 ; D7
.DW $ 9 B9 , $ AA ; D
.DW $ A4D , $ 9 F ; E7
.DW $ AE9 , $ 94 ; F7
.DW $ B8F , $ 8 A ; F
.DW $ C3F , $ 81 ; G7
.DW $ CFA , $ 78 ; G
.DW $ DC0 , $ 70 ; A7
.DW $ E91 , $ 68 ; A
.DW $ F6F , $ 60 ; B7
SPK_NOTE_C8:
.DW $ 105 A , $ 59 ; C8
.DW $ 1152 , $ 52 ; C
.DW $ 125 A , $ 4 C ; D8
.DW $ 1372 , $ 46 ; D
.DW $ 149 A , $ 40 ; E8
.DW $ 15 D3 , $ 3 B ; F8
.DW $ 171 F , $ 36 ; F
.DW $ 187 F , $ 31 ; G8
.DW $ 19 F4 , $ 2 D ; G
.DW $ 1B 80 , $ 29 ; A8
.DW $ 1 D22 , $ 25 ; A
.DW $ 1 EDE , $ 21 ; B8
# ENDIF
;
# IF ( CPUOSC = 6000000 )
.DW $ 10 , $ B311 ; C0
.DW $ 11 , $ A908 ; C
.DW $ 12 , $ 9 F89 ; D0
.DW $ 13 , $ 9682 ; D
.DW $ 14 , $ 8 E19 ; E0
.DW $ 15 , $ 8616 ; F0
.DW $ 17 , $ 7 E99 ; F
.DW $ 18 , $ 7776 ; G0
.DW $ 19 , $ 70 BC ; G
.DW $ 1B , $ 6 A6A ; A0
.DW $ 1 D , $ 646 B ; A
.DW $ 1 E , $ 5 EC9 ; B0
.DW $ 20 , $ 5979 ; C1
.DW $ 22 , $ 546 F ; C
.DW $ 24 , $ 4 FB0 ; D1
.DW $ 26 , $ 4 B37 ; D
.DW $ 29 , $ 46 FD ; E1
.DW $ 2 B , $ 4300 ; F1
.DW $ 2 E , $ 3 F3A ; F
.DW $ 31 , $ 3 BAC ; G1
.DW $ 33 , $ 3852 ; G
.DW $ 37 , $ 3526 ; A1
.DW $ 3 A , $ 3229 ; A
.DW $ 3 D , $ 2 F55 ; B1
.DW $ 41 , $ 2 CAC ; C2
.DW $ 45 , $ 2 A28 ; C
.DW $ 49 , $ 27 C9 ; D2
.DW $ 4 D , $ 258 C ; D
.DW $ 52 , $ 236 E ; E2
.DW $ 57 , $ 2170 ; F2
.DW $ 5 C , $ 1 F8E ; F
.DW $ 62 , $ 1 DC7 ; G2
.DW $ 67 , $ 1 C19 ; G
.DW $ 6 E , $ 1 A84 ; A2
.DW $ 74 , $ 1905 ; A
.DW $ 7 B , $ 179 C ; B2
.DW $ 82 , $ 1647 ; C3
.DW $ 8 A , $ 1505 ; C
.DW $ 92 , $ 13 D5 ; D3
.DW $ 9 B , $ 12 B7 ; D
.DW $ A4 , $ 11 A8 ; E3
.DW $ AE , $ 10 A9 ; F3
.DW $ B9 , $ FB8 ; F
.DW $ C4 , $ ED4 ; G3
.DW $ CF , $ DFD ; G
.DW $ DC , $ D33 ; A3
.DW $ E9 , $ C73 ; A
.DW $ F6 , $ BBF ; B3
.DW $ 105 , $ B14 ; C4
.DW $ 115 , $ A73 ; C
.DW $ 125 , $ 9 DB ; D4
.DW $ 137 , $ 94 C ; D
.DW $ 149 , $ 8 C5 ; E4
.DW $ 15 D , $ 845 ; F4
.DW $ 171 , $ 7 CD ; F
.DW $ 188 , $ 75 B ; G4
.DW $ 19 F , $ 6 EF ; G
.DW $ 1B 8 , $ 68 A ; A4
.DW $ 1 D2 , $ 62 A ; A
.DW $ 1 ED , $ 5 D0 ; B4
.DW $ 20 B , $ 57 B ; C5
.DW $ 22 A , $ 52 A ; C
.DW $ 24 B , $ 4 DE ; D5
.DW $ 26 E , $ 497 ; D
.DW $ 293 , $ 453 ; E5
.DW $ 2 BA , $ 413 ; F5
.DW $ 2 E3 , $ 3 D7 ; F
.DW $ 30 F , $ 39 E ; G5
.DW $ 33 E , $ 368 ; G
.DW $ 370 , $ 336 ; A5
.DW $ 3 A4 , $ 306 ; A
.DW $ 3 DB , $ 2 D9 ; B5
.DW $ 416 , $ 2 AE ; C6
.DW $ 454 , $ 286 ; C
.DW $ 496 , $ 260 ; D6
.DW $ 4 DC , $ 23 C ; D
.DW $ 526 , $ 21 A ; E6
.DW $ 574 , $ 1 FA ; F6
.DW $ 5 C7 , $ 1 DC ; F
.DW $ 61 F , $ 1 C0 ; G6
.DW $ 67 D , $ 1 A5 ; G
.DW $ 6 E0 , $ 18 C ; A6
.DW $ 748 , $ 174 ; A
.DW $ 7 B7 , $ 15 D ; B6
.DW $ 82 D , $ 148 ; C7
.DW $ 8 A9 , $ 134 ; C
.DW $ 92 D , $ 121 ; D7
.DW $ 9 B9 , $ 10 F ; D
.DW $ A4D , $ FE ; E7
.DW $ AE9 , $ EE ; F7
.DW $ B8F , $ DF ; F
.DW $ C3F , $ D1 ; G7
.DW $ CFA , $ C3 ; G
.DW $ DC0 , $ B7 ; A7
.DW $ E91 , $ AB ; A
.DW $ F6F , $ 9 F ; B7
SPK_NOTE_C8:
.DW $ 105 A , $ 95 ; C8
.DW $ 1152 , $ 8 B ; C
.DW $ 125 A , $ 81 ; D8
.DW $ 1372 , $ 78 ; D
.DW $ 149 A , $ 70 ; E8
.DW $ 15 D3 , $ 68 ; F8
.DW $ 171 F , $ 60 ; F
.DW $ 187 F , $ 59 ; G8
.DW $ 19 F4 , $ 52 ; G
.DW $ 1B 80 , $ 4 C ; A8
.DW $ 1 D22 , $ 46 ; A
.DW $ 1 EDE , $ 40 ; B8
# ENDIF
;
# IF ( CPUOSC = 8000000 )
.DW $ 10 , $ EECC ; C0
.DW $ 11 , $ E16A ; C
.DW $ 12 , $ D4C1 ; D0
.DW $ 13 , $ C8B7 ; D
.DW $ 14 , $ BD81 ; E0
.DW $ 15 , $ B2D2 ; F0
.DW $ 17 , $ A8D6 ; F
.DW $ 18 , $ 9 F52 ; G0
.DW $ 19 , $ 965 A ; G
.DW $ 1B , $ 8 DED ; A0
.DW $ 1 D , $ 85 EF ; A
.DW $ 1 E , $ 7 E6B ; B0
.DW $ 20 , $ 7757 ; C1
.DW $ 22 , $ 709 E ; C
.DW $ 24 , $ 6 A4A ; D1
.DW $ 26 , $ 6453 ; D
.DW $ 29 , $ 5 EB1 ; E1
.DW $ 2 B , $ 595 F ; F1
.DW $ 2 E , $ 5457 ; F
.DW $ 31 , $ 4 F9A ; G1
.DW $ 33 , $ 4 B22 ; G
.DW $ 37 , $ 46 E7 ; A1
.DW $ 3 A , $ 42 EB ; A
.DW $ 3 D , $ 3 F26 ; B1
.DW $ 41 , $ 3 B9A ; C2
.DW $ 45 , $ 3840 ; C
.DW $ 49 , $ 3516 ; D2
.DW $ 4 D , $ 321 A ; D
.DW $ 52 , $ 2 F48 ; E2
.DW $ 57 , $ 2 C9F ; F2
.DW $ 5 C , $ 2 A1C ; F
.DW $ 62 , $ 27 BE ; G2
.DW $ 67 , $ 2581 ; G
.DW $ 6 E , $ 2364 ; A2
.DW $ 74 , $ 2166 ; A
.DW $ 7 B , $ 1 F85 ; B2
.DW $ 82 , $ 1 DBE ; C3
.DW $ 8 A , $ 1 C11 ; C
.DW $ 92 , $ 1 A7C ; D3
.DW $ 9 B , $ 18 FE ; D
.DW $ A4 , $ 1795 ; E3
.DW $ AE , $ 1641 ; F3
.DW $ B9 , $ 14 FF ; F
.DW $ C4 , $ 13 D0 ; G3
.DW $ CF , $ 12 B1 ; G
.DW $ DC , $ 11 A3 ; A3
.DW $ E9 , $ 10 A4 ; A
.DW $ F6 , $ FB3 ; B3
.DW $ 105 , $ ED0 ; C4
.DW $ 115 , $ DF9 ; C
.DW $ 125 , $ D2F ; D4
.DW $ 137 , $ C70 ; D
.DW $ 149 , $ BBB ; E4
.DW $ 15 D , $ B11 ; F4
.DW $ 171 , $ A70 ; F
.DW $ 188 , $ 9 D9 ; G4
.DW $ 19 F , $ 949 ; G
.DW $ 1B 8 , $ 8 C2 ; A4
.DW $ 1 D2 , $ 843 ; A
.DW $ 1 ED , $ 7 CA ; B4
.DW $ 20 B , $ 759 ; C5
.DW $ 22 A , $ 6 ED ; C
.DW $ 24 B , $ 688 ; D5
.DW $ 26 E , $ 629 ; D
.DW $ 293 , $ 5 CE ; E5
.DW $ 2 BA , $ 579 ; F5
.DW $ 2 E3 , $ 529 ; F
.DW $ 30 F , $ 4 DD ; G5
.DW $ 33 E , $ 495 ; G
.DW $ 370 , $ 452 ; A5
.DW $ 3 A4 , $ 412 ; A
.DW $ 3 DB , $ 3 D6 ; B5
.DW $ 416 , $ 39 D ; C6
.DW $ 454 , $ 367 ; C
.DW $ 496 , $ 335 ; D6
.DW $ 4 DC , $ 305 ; D
.DW $ 526 , $ 2 D8 ; E6
.DW $ 574 , $ 2 AD ; F6
.DW $ 5 C7 , $ 285 ; F
.DW $ 61 F , $ 25 F ; G6
.DW $ 67 D , $ 23 B ; G
.DW $ 6 E0 , $ 21 A ; A6
.DW $ 748 , $ 1 FA ; A
.DW $ 7 B7 , $ 1 DC ; B6
.DW $ 82 D , $ 1B F ; C7
.DW $ 8 A9 , $ 1 A4 ; C
.DW $ 92 D , $ 18 B ; D7
.DW $ 9 B9 , $ 173 ; D
.DW $ A4D , $ 15 D ; E7
.DW $ AE9 , $ 147 ; F7
.DW $ B8F , $ 133 ; F
.DW $ C3F , $ 120 ; G7
.DW $ CFA , $ 10 E ; G
.DW $ DC0 , $ FE ; A7
.DW $ E91 , $ EE ; A
.DW $ F6F , $ DF ; B7
SPK_NOTE_C8:
.DW $ 105 A , $ D0 ; C8
.DW $ 1152 , $ C3 ; C
.DW $ 125 A , $ B6 ; D8
.DW $ 1372 , $ AA ; D
.DW $ 149 A , $ 9 F ; E8
.DW $ 15 D3 , $ 94 ; F8
.DW $ 171 F , $ 8 A ; F
.DW $ 187 F , $ 81 ; G8
.DW $ 19 F4 , $ 78 ; G
.DW $ 1B 80 , $ 70 ; A8
.DW $ 1 D22 , $ 68 ; A
.DW $ 1 EDE , $ 60 ; B8
# ENDIF
;
# IF ( CPUOSC = 10000000 )
;.DW $10, $12A86 ; C0
;.DW $11, $119CC ; C
;.DW $12, $109F9 ; D0
.DW $ 13 , $ FAED ; D
.DW $ 14 , $ ECE9 ; E0
.DW $ 15 , $ DF8E ; F0
.DW $ 17 , $ D313 ; F
.DW $ 18 , $ C72E ; G0
.DW $ 19 , $ BBF9 ; G
.DW $ 1B , $ B170 ; A0
.DW $ 1 D , $ A772 ; A
.DW $ 1 E , $ 9 E0E ; B0
.DW $ 20 , $ 9534 ; C1
.DW $ 22 , $ 8 CCD ; C
.DW $ 24 , $ 84 E4 ; D1
.DW $ 26 , $ 7 D6F ; D
.DW $ 29 , $ 7665 ; E1
.DW $ 2 B , $ 6 FBE ; F1
.DW $ 2 E , $ 6975 ; F
.DW $ 31 , $ 6388 ; G1
.DW $ 33 , $ 5 DF2 ; G
.DW $ 37 , $ 58 A9 ; A1
.DW $ 3 A , $ 53 AD ; A
.DW $ 3 D , $ 4 EF8 ; B1
.DW $ 41 , $ 4 A88 ; C2
.DW $ 45 , $ 4657 ; C
.DW $ 49 , $ 4263 ; D2
.DW $ 4 D , $ 3 EA8 ; D
.DW $ 52 , $ 3 B22 ; E2
.DW $ 57 , $ 37 CE ; F2
.DW $ 5 C , $ 34 AB ; F
.DW $ 62 , $ 31 B5 ; G2
.DW $ 67 , $ 2 EE8 ; G
.DW $ 6 E , $ 2 C45 ; A2
.DW $ 74 , $ 29 C7 ; A
.DW $ 7 B , $ 276 D ; B2
.DW $ 82 , $ 2535 ; C3
.DW $ 8 A , $ 231 D ; C
.DW $ 92 , $ 2123 ; D3
.DW $ 9 B , $ 1 F45 ; D
.DW $ A4 , $ 1 D82 ; E3
.DW $ AE , $ 1B D8 ; F3
.DW $ B9 , $ 1 A46 ; F
.DW $ C4 , $ 18 CB ; G3
.DW $ CF , $ 1765 ; G
.DW $ DC , $ 1613 ; A3
.DW $ E9 , $ 14 D4 ; A
.DW $ F6 , $ 13 A7 ; B3
.DW $ 105 , $ 128 B ; C4
.DW $ 115 , $ 117 F ; C
.DW $ 125 , $ 1082 ; D4
.DW $ 137 , $ F93 ; D
.DW $ 149 , $ EB2 ; E4
.DW $ 15 D , $ DDD ; F4
.DW $ 171 , $ D14 ; F
.DW $ 188 , $ C56 ; G4
.DW $ 19 F , $ BA3 ; G
.DW $ 1B 8 , $ AFA ; A4
.DW $ 1 D2 , $ A5B ; A
.DW $ 1 ED , $ 9 C4 ; B4
.DW $ 20 B , $ 936 ; C5
.DW $ 22 A , $ 8 B0 ; C
.DW $ 24 B , $ 832 ; D5
.DW $ 26 E , $ 7 BA ; D
.DW $ 293 , $ 74 A ; E5
.DW $ 2 BA , $ 6 DF ; F5
.DW $ 2 E3 , $ 67 B ; F
.DW $ 30 F , $ 61 C ; G5
.DW $ 33 E , $ 5 C2 ; G
.DW $ 370 , $ 56 E ; A5
.DW $ 3 A4 , $ 51 E ; A
.DW $ 3 DB , $ 4 D3 ; B5
.DW $ 416 , $ 48 C ; C6
.DW $ 454 , $ 449 ; C
.DW $ 496 , $ 40 A ; D6
.DW $ 4 DC , $ 3 CE ; D
.DW $ 526 , $ 396 ; E6
.DW $ 574 , $ 360 ; F6
.DW $ 5 C7 , $ 32 E ; F
.DW $ 61 F , $ 2 FF ; G6
.DW $ 67 D , $ 2 D2 ; G
.DW $ 6 E0 , $ 2 A8 ; A6
.DW $ 748 , $ 280 ; A
.DW $ 7 B7 , $ 25 A ; B6
.DW $ 82 D , $ 237 ; C7
.DW $ 8 A9 , $ 215 ; C
.DW $ 92 D , $ 1 F6 ; D7
.DW $ 9 B9 , $ 1 D8 ; D
.DW $ A4D , $ 1B C ; E7
.DW $ AE9 , $ 1 A1 ; F7
.DW $ B8F , $ 188 ; F
.DW $ C3F , $ 170 ; G7
.DW $ CFA , $ 15 A ; G
.DW $ DC0 , $ 145 ; A7
.DW $ E91 , $ 131 ; A
.DW $ F6F , $ 11 E ; B7
SPK_NOTE_C8:
.DW $ 105 A , $ 10 C ; C8
.DW $ 1152 , $ FB ; C
.DW $ 125 A , $ EC ; D8
.DW $ 1372 , $ DD ; D
.DW $ 149 A , $ CF ; E8
.DW $ 15 D3 , $ C1 ; F8
.DW $ 171 F , $ B5 ; F
.DW $ 187 F , $ A9 ; G8
.DW $ 19 F4 , $ 9 E ; G
.DW $ 1B 80 , $ 93 ; A8
.DW $ 1 D22 , $ 89 ; A
.DW $ 1 EDE , $ 80 ; B8
# ENDIF