Update ay38910.asm

code optimizations
This commit is contained in:
b1ackmai1er
2020-05-03 23:05:08 +08:00
parent cea46daba9
commit 24b79880d0

View File

@@ -58,7 +58,7 @@ AY_IDAT .EQU 0 ; NO INSTANCE DATA ASSOCIATED WITH THIS DEVICE
;
; 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_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS
@@ -129,11 +129,13 @@ AY_INIT:
;======================================================================
;
AY_SETV:
PUSH BC
LD B,AY_TONECNT ; NUMBER OF CHANNELS
LD D,AY_R8AVOL ; BASE REGISTER FOR VOLUME
AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS
INC D
DJNZ AY_SV
POP BC
RET
;
;======================================================================
@@ -219,8 +221,9 @@ AY_NOTE:
JR NC, AY_NOTE1 ; INCOMING HL DOES NOT MAP INTO AY3NOTETBL
;
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
;
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM AY3NOTETBL
@@ -288,11 +291,13 @@ AY_PLAY:
AUDTRACE_CR
;
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)
;
POP DE ; RECALL CHANNEL