|
|
|
@ -58,7 +58,7 @@ AY_IDAT .EQU 0 ; NO INSTANCE DATA ASSOCIATED WITH THIS DEVICE |
|
|
|
; |
|
|
|
; DEVICE CAPABILITIES AND CONFIGURATION |
|
|
|
; |
|
|
|
SBCV2004 .EQU 1 ; USE SBC-V2-004 HALF CLOCK DIVIDER |
|
|
|
SBCV2004 .EQU 1 ; 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 |
|
|
|
@ -106,11 +106,11 @@ AY38910_INIT: |
|
|
|
LD D,AY_R3CHBP |
|
|
|
LD E,$00 |
|
|
|
CALL AY_WRTPSG ; R03 = $00 = XXXX0000 |
|
|
|
; |
|
|
|
CALL LDELAY ; HALF SECOND |
|
|
|
; |
|
|
|
CALL LDELAY ; HALF SECOND |
|
|
|
; |
|
|
|
LD E,$00 ; SET VOLUME OFF |
|
|
|
CALL AY_SETV ; ON ALL CHANNELS |
|
|
|
CALL AY_SETV ; ON ALL CHANNELS |
|
|
|
; |
|
|
|
; RET |
|
|
|
; |
|
|
|
@ -129,7 +129,7 @@ AY_INIT: |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
AY_SETV: |
|
|
|
LD B,AY_TONECNT ; NUMBER OF CHANNELS |
|
|
|
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 |
|
|
|
@ -370,10 +370,10 @@ AY_APPLY_PRD: |
|
|
|
RET |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
; |
|
|
|
; WRITE DATA IN E REGISTER TO DEVICE REGISTER D |
|
|
|
; INTERRUPTS DISABLE DURING WRITE. WRITE IN SLOW MODE IF Z180 CPU. |
|
|
|
; |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
AY_WRTPSG: |
|
|
|
@ -388,7 +388,7 @@ AY_WRTPSG: |
|
|
|
OR %00110000 ; FORCE SLOW OPERATION (I/O W/S=3) |
|
|
|
OUT0 (Z180_DCNTL),A ; AND UPDATE DCNTL |
|
|
|
#ENDIF |
|
|
|
LD A,D ; SELECT THE REGISTER WE |
|
|
|
LD A,D ; SELECT THE REGISTER WE |
|
|
|
OUT (AY_RSEL),A ; WANT TO WRITE TO |
|
|
|
LD A,E ; WRITE THE VALUE TO |
|
|
|
OUT (AY_RDAT),A ; THE SELECTED REGISTER |
|
|
|
|