|
|
|
@ -80,8 +80,8 @@ SP_STUB: |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
SP_NOTE: |
|
|
|
; CALL PRTHEXWORDHL |
|
|
|
; CALL PC_COLON |
|
|
|
CALL PRTHEXWORDHL |
|
|
|
CALL PC_COLON |
|
|
|
PUSH HL |
|
|
|
PUSH DE ; ON ENTRY HL IS A NOTE INDEX |
|
|
|
LD A,L |
|
|
|
@ -106,13 +106,12 @@ SP_NOTE1: |
|
|
|
LD DE,SP_TUNTBL ; SAVE THIS ADDRESS AS |
|
|
|
ADD HL,DE ; THE PERIOD |
|
|
|
SP_NOTE2: |
|
|
|
; CALL PRTHEXWORDHL |
|
|
|
; CALL NEWLINE |
|
|
|
CALL PRTHEXWORDHL |
|
|
|
CALL NEWLINE |
|
|
|
LD (SP_PENDING_PERIOD),HL |
|
|
|
POP DE |
|
|
|
POP HL |
|
|
|
RET |
|
|
|
|
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; SOUND DRIVER FUNCTION - QUERY AND SUBFUNCTIONS |
|
|
|
@ -175,7 +174,7 @@ SP_SETTBL3: |
|
|
|
; CALL PRTHEXBYTE |
|
|
|
; |
|
|
|
LD B,SP_NOTCNT ; SET NUMBER OF NOTES TO |
|
|
|
LD HL,SP_TUNTBL+2 ; ADJUST AND START POINT |
|
|
|
LD HL,SP_TUNSTA+2 ; ADJUST AND START POINT |
|
|
|
; |
|
|
|
SP_SETTBL2: |
|
|
|
PUSH HL |
|
|
|
@ -185,10 +184,14 @@ SP_SETTBL2: |
|
|
|
; |
|
|
|
PUSH BC |
|
|
|
LD B,C |
|
|
|
LD HL,0 ; MULTIPLY |
|
|
|
SP_SETTBL1: ; 1MHZ NOTE |
|
|
|
ADD HL,DE ; VALUE BY |
|
|
|
DJNZ SP_SETTBL1 ; SYSTEM MHZ |
|
|
|
LD HL,0 ; MULTIPLY 1MHZ |
|
|
|
SP_SETTBL1: ; NOTE VALUE BY |
|
|
|
ADD HL,DE ; SYSTEM MHZ |
|
|
|
JR NC,SP_SETBL4 |
|
|
|
LD HL,$FFFF ; FOR CPU > 10MHz |
|
|
|
LD B,1 ; HANDLE OVERFLOW |
|
|
|
SP_SETBL4: |
|
|
|
DJNZ SP_SETTBL1 |
|
|
|
POP BC |
|
|
|
; |
|
|
|
LD DE,30 ; ADD OVERHEAD |
|
|
|
@ -226,6 +229,13 @@ SP_PLAY1: |
|
|
|
LD D,(HL) |
|
|
|
INC HL |
|
|
|
|
|
|
|
; LD A,$FF ; EXIT WITH ERROR |
|
|
|
CP D ; STATUS IF INVALID |
|
|
|
JR NZ,SP_PLAY2 ; NOTE ($FFFF) |
|
|
|
CP E |
|
|
|
RET Z |
|
|
|
; |
|
|
|
SP_PLAY2: |
|
|
|
LD C,(HL) ; LOAD 2ND ARG |
|
|
|
INC HL ; IN BC |
|
|
|
LD B,(HL) |
|
|
|
@ -311,12 +321,126 @@ BE_END: |
|
|
|
; |
|
|
|
; https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=boards:sbc:sbc_v2:sbc_v2-004:spk_beep_tuntbl.xlsx |
|
|
|
; |
|
|
|
SP_TUN: |
|
|
|
.DW -$1, $FFFF ; C0 |
|
|
|
.DW -$1, $FFFF ; C |
|
|
|
.DW -$1, $FFFF ; D0 |
|
|
|
; |
|
|
|
#DEFINE SP_TONESET(SP_FREQ) .DW SP_FREQ/100, 12500000/SP_FREQ |
|
|
|
; |
|
|
|
SP_TUNTBL: |
|
|
|
.DW $13, $191A ; D |
|
|
|
SP_TUNSTA: |
|
|
|
SP_TONESET(1635) ; C0 |
|
|
|
SP_TONESET(1732) ; C |
|
|
|
SP_TONESET(1835) ; D0 |
|
|
|
SP_TONESET(1945) ; E0 |
|
|
|
SP_TONESET(2060) ; F0 |
|
|
|
SP_TONESET(2183) ; F |
|
|
|
SP_TONESET(2312) ; G0 |
|
|
|
SP_TONESET(2450) ; G |
|
|
|
SP_TONESET(2596) ; A0 |
|
|
|
SP_TONESET(2750) ; A |
|
|
|
SP_TONESET(2914) ; |
|
|
|
SP_TONESET(3087) ; B0 |
|
|
|
SP_TONESET(3270) ; C1 |
|
|
|
SP_TONESET(3465) ; C |
|
|
|
SP_TONESET(3671) ; D1 |
|
|
|
SP_TONESET(3889) ; D |
|
|
|
SP_TONESET(4120) ; E1 |
|
|
|
SP_TONESET(4365) ; F1 |
|
|
|
SP_TONESET(4625) ; F |
|
|
|
SP_TONESET(4900) ; G1 |
|
|
|
SP_TONESET(5191) ; G |
|
|
|
SP_TONESET(5500) ; A1 |
|
|
|
SP_TONESET(5827) ; A |
|
|
|
SP_TONESET(6174) ; B1 |
|
|
|
SP_TONESET(6541) ; C2 |
|
|
|
SP_TONESET(6930) ; C |
|
|
|
SP_TONESET(7342) ; D2 |
|
|
|
SP_TONESET(7778) ; D |
|
|
|
SP_TONESET(8241) ; E2 |
|
|
|
SP_TONESET(8731) ; F2 |
|
|
|
SP_TONESET(9250) ; F |
|
|
|
SP_TONESET(9800) ; G2 |
|
|
|
SP_TONESET(10383) ; G |
|
|
|
SP_TONESET(11000) ; A2 |
|
|
|
SP_TONESET(11654) ; A |
|
|
|
SP_TONESET(12347) ; B2 |
|
|
|
SP_TONESET(13081) ; C3 |
|
|
|
SP_TONESET(13859) ; C |
|
|
|
SP_TONESET(14683) ; D3 |
|
|
|
SP_TONESET(15556) ; D |
|
|
|
SP_TONESET(16481) ; E3 |
|
|
|
SP_TONESET(17461) ; F3 |
|
|
|
SP_TONESET(18500) ; F |
|
|
|
SP_TONESET(19600) ; G3 |
|
|
|
SP_TONESET(20765) ; G |
|
|
|
SP_TONESET(22000) ; A3 |
|
|
|
SP_TONESET(23308) ; A |
|
|
|
SP_TONESET(24694) ; B3 |
|
|
|
SP_TONESET(26163) ; C4 |
|
|
|
SP_TONESET(27718) ; C |
|
|
|
SP_TONESET(29366) ; D4 |
|
|
|
SP_TONESET(31113) ; D |
|
|
|
SP_TONESET(32963) ; E4 |
|
|
|
SP_TONESET(34923) ; F4 |
|
|
|
SP_TONESET(36999) ; F |
|
|
|
SP_TONESET(39200) ; G4 |
|
|
|
SP_TONESET(41530) ; G |
|
|
|
SP_TONESET(44000) ; A4 |
|
|
|
SP_TONESET(46616) ; A |
|
|
|
SP_TONESET(49388) ; B4 |
|
|
|
SP_TONESET(52325) ; C5 |
|
|
|
SP_TONESET(55437) ; C |
|
|
|
SP_TONESET(58733) ; D5 |
|
|
|
SP_TONESET(62225) ; D |
|
|
|
SP_TONESET(65925) ; E5 |
|
|
|
SP_TONESET(69846) ; F5 |
|
|
|
SP_TONESET(73999) ; F |
|
|
|
SP_TONESET(78399) ; G5 |
|
|
|
SP_TONESET(83061) ; G |
|
|
|
SP_TONESET(88000) ; A5 |
|
|
|
SP_TONESET(93233) ; A |
|
|
|
SP_TONESET(98777) ; B5 |
|
|
|
SP_TONESET(104650) ; C6 |
|
|
|
SP_TONESET(110873) ; C |
|
|
|
SP_TONESET(117466) ; D6 |
|
|
|
SP_TONESET(124451) ; D |
|
|
|
SP_TONESET(131851) ; E6 |
|
|
|
SP_TONESET(139691) ; F6 |
|
|
|
SP_TONESET(147998) ; F |
|
|
|
SP_TONESET(156798) ; G6 |
|
|
|
SP_TONESET(166122) ; G |
|
|
|
SP_TONESET(179000) ; A6 |
|
|
|
SP_TONESET(186466) ; A |
|
|
|
SP_TONESET(197553) ; B6 |
|
|
|
SP_TONESET(209300) ; C7 |
|
|
|
SP_TONESET(221746) ; C |
|
|
|
SP_TONESET(234932) ; D7 |
|
|
|
SP_TONESET(248902) ; D |
|
|
|
SP_TONESET(263702) ; E7 |
|
|
|
SP_TONESET(279383) ; F7 |
|
|
|
SP_TONESET(295996) ; F |
|
|
|
SP_TONESET(313596) ; G7 |
|
|
|
SP_TONESET(332244) ; G |
|
|
|
SP_TONESET(352000) ; A7 |
|
|
|
SP_TONESET(372931) ; A |
|
|
|
SP_TONESET(395107) ; B7 |
|
|
|
SP_NOTE_C8: |
|
|
|
SP_TONESET(418601) ; C8 |
|
|
|
SP_TONESET(443492) ; C |
|
|
|
SP_TONESET(469863) ; D8 |
|
|
|
SP_TONESET(497803) ; D |
|
|
|
SP_TONESET(527404) ; E8 |
|
|
|
SP_TONESET(558765) ; F8 |
|
|
|
SP_TONESET(591991) ; F |
|
|
|
SP_TONESET(627193) ; G8 |
|
|
|
SP_TONESET(664488) ; G |
|
|
|
SP_TONESET(704000) ; A8 |
|
|
|
SP_TONESET(745862) ; A |
|
|
|
SP_TONESET(790213) ; B8 |
|
|
|
; |
|
|
|
SP_NOTCNT .EQU ($-SP_TUNSTA) / 4 |
|
|
|
; |
|
|
|
.DW $10, $FFFF ; C0 ; WILL OVERFLOW AT 10MHZ |
|
|
|
.DW $11, $FFFF ; C ; WILL OVERFLOW AT 10MHZ |
|
|
|
.DW $12, $FFFF ; D0 ; WILL OVERFLOW AT 10MHZ |
|
|
|
.DW $14, $17B3 ; E0 |
|
|
|
.DW $15, $165E ; F0 |
|
|
|
.DW $17, $151E ; F |
|
|
|
@ -409,7 +533,7 @@ SP_TUNTBL: |
|
|
|
.DW $DC0, $23 ; A7 |
|
|
|
.DW $E91, $21 ; A |
|
|
|
.DW $F6F, $1F ; B7 |
|
|
|
SP_NOTE_C8: |
|
|
|
;SP_NOTE_C8: |
|
|
|
.DW $105A, $1D ; C8 |
|
|
|
.DW $1152, $1C ; C |
|
|
|
.DW $125A, $1A ; D8 |
|
|
|
@ -422,6 +546,4 @@ SP_NOTE_C8: |
|
|
|
.DW $1B80, $11 ; A8 |
|
|
|
.DW $1D22, $10 ; A |
|
|
|
.DW $1EDE, $F ; B8 |
|
|
|
; |
|
|
|
SP_NOTCNT .EQU ($-SP_TUNTBL) / 4 |
|
|
|
; |
|
|
|
|
|
|
|
|