|
|
@ -58,7 +58,7 @@ AY_IDAT .EQU 0 ; NO INSTANCE DATA ASSOCIATED WITH THIS DEVICE |
|
|
; |
|
|
; |
|
|
; DEVICE CAPABILITIES AND CONFIGURATION |
|
|
; DEVICE CAPABILITIES AND CONFIGURATION |
|
|
; |
|
|
; |
|
|
SBCV2004 .EQU 0 ; USE SBC-V2-004 HALF CLOCK DIVIDER |
|
|
|
|
|
|
|
|
SBCV2004 .EQU 0 ; USE SBC-V2-004 HALF CLOCK DIVIDER |
|
|
; |
|
|
; |
|
|
AY_TONECNT .EQU 3 ; COUNT NUMBER OF TONE CHANNELS |
|
|
AY_TONECNT .EQU 3 ; COUNT NUMBER OF TONE CHANNELS |
|
|
AY_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS |
|
|
AY_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS |
|
|
@ -129,11 +129,13 @@ AY_INIT: |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
AY_SETV: |
|
|
AY_SETV: |
|
|
|
|
|
PUSH BC |
|
|
LD B,AY_TONECNT ; NUMBER OF CHANNELS |
|
|
LD B,AY_TONECNT ; NUMBER OF CHANNELS |
|
|
LD D,AY_R8AVOL ; BASE REGISTER FOR VOLUME |
|
|
LD D,AY_R8AVOL ; BASE REGISTER FOR VOLUME |
|
|
AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS |
|
|
AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS |
|
|
INC D |
|
|
INC D |
|
|
DJNZ AY_SV |
|
|
DJNZ AY_SV |
|
|
|
|
|
POP BC |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
@ -219,8 +221,9 @@ AY_NOTE: |
|
|
JR NC, AY_NOTE1 ; INCOMING HL DOES NOT MAP INTO AY3NOTETBL |
|
|
JR NC, AY_NOTE1 ; INCOMING HL DOES NOT MAP INTO AY3NOTETBL |
|
|
; |
|
|
; |
|
|
ADD HL, DE ; RESTORE HL |
|
|
ADD HL, DE ; RESTORE HL |
|
|
EX DE,HL |
|
|
|
|
|
LD HL, AY3NOTETBL ; HL = AY3NOTETBL + HL |
|
|
|
|
|
|
|
|
; EX DE,HL |
|
|
|
|
|
; LD HL, AY3NOTETBL ; HL = AY3NOTETBL + HL |
|
|
|
|
|
LD DE, AY3NOTETBL ; HL = AY3NOTETBL + HL |
|
|
ADD HL, DE |
|
|
ADD HL, DE |
|
|
; |
|
|
; |
|
|
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM AY3NOTETBL |
|
|
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM AY3NOTETBL |
|
|
@ -288,11 +291,13 @@ AY_PLAY: |
|
|
AUDTRACE_CR |
|
|
AUDTRACE_CR |
|
|
; |
|
|
; |
|
|
INC HL ; NEXT BYTE |
|
|
INC HL ; NEXT BYTE |
|
|
LD E,(HL) |
|
|
|
|
|
SRL E ; MAP THE VOLUME |
|
|
|
|
|
SRL E ; FROM 00-FF |
|
|
|
|
|
SRL E ; TO 00-0F |
|
|
|
|
|
SRL E |
|
|
|
|
|
|
|
|
LD A,(HL) ; PENDING VOLUME |
|
|
|
|
|
RRCA ; MAP THE VOLUME |
|
|
|
|
|
RRCA ; FROM 00-FF |
|
|
|
|
|
RRCA ; TO 00-0F |
|
|
|
|
|
RRCA |
|
|
|
|
|
AND $0F |
|
|
|
|
|
LD E,A |
|
|
CALL AY_WRTPSG ; SET VOL (E) IN CHANNEL REG (D) |
|
|
CALL AY_WRTPSG ; SET VOL (E) IN CHANNEL REG (D) |
|
|
; |
|
|
; |
|
|
POP DE ; RECALL CHANNEL |
|
|
POP DE ; RECALL CHANNEL |
|
|
|