mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update ay38910.asm
code optimizations
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user