Update audio.inc

Commentry
This commit is contained in:
b1ackmai1er
2020-05-15 20:12:25 +08:00
parent cd56294d44
commit ae76ba82e1

View File

@@ -41,25 +41,25 @@ AUD_NOTE:
AUDTRACE_CR
AUDTRACE_DE
AUDTRACE_CR
;
PUSH DE ; ON ENTRY HL IS THE NOTE TO PLAY
LD DE, 48 ; AND DE IS THE START OF NOTE TABLE
CALL DIV16 ; LOAD DE WITH NOTE TABLE SIZE
; AND CALCULATE OCTAVE COUNT IN BC
push de
LD DE, 48
CALL DIV16
; BC IS OCTAVE COUNT
; HL is NOTE WITIN OCTAVE
ADD HL, HL
pop de
ADD HL, DE
ADD HL, HL ; HL IS THE REMAINDER FROM ABOVE DIVISION (0-47) AND THE NOTE
POP DE ; TO PLAY IN THE OCTAVE. ADD IT TO THE START OF THE NOTE TABLE
ADD HL, DE ; TO POINT TO THE PERIOD FOR THE NOTE WE WANT TO PLAY.
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM SN7NOTETBL
INC HL
LD H, (HL)
LD A, (HL) ; HL POINT TO CURRENT PERIOD COUNT WE WANT TO PLAY
INC HL ; SO LOAD PERIOD COUNT FROM NOTE TABLE INTO HL
LD H, (HL) ; SO WE CAN UPDATE IT FOR THE REQUIRED OCTAVE
LD L, A
INC C
AUD_NOTE1:
DEC C
JR Z, AUD_NOTE2
AUD_NOTE1: ; DIVIDE THE PERIOD
DEC C ; BY TWO
JR Z, AUD_NOTE2 ; FOR EACH OCTAVE
SRL H
RR L
JR AUD_NOTE1
@@ -69,7 +69,8 @@ AUD_NOTE2:
OR H
RET NZ ; RETURN THE CALCULATED PERIOD
LD H, $FF ; OTHERWISE RETURN -1 PERIOD (ERROR)
LD L, $FF
CPL
LD H, A ; OTHERWISE RETURN -1 PERIOD (ERROR)
LD L, A
RET
#ENDIF