mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
ay38910: Updated boot beep to use a timer, if active for termination of boot beep sound
This commit is contained in:
@@ -72,4 +72,4 @@ AUD_NOTE2:
|
||||
LD H, $FF ; OTHERWISE RETURN -1 PERIOD (ERROR)
|
||||
LD L, $FF
|
||||
RET
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
;
|
||||
;======================================================================
|
||||
;
|
||||
|
||||
#include "cfg_state.inc"
|
||||
|
||||
|
||||
AY_RCSND .EQU 0 ; 0 = EB MODULE, 1=MF MODULE
|
||||
;
|
||||
#IF (AYMODE == AYMODE_SCG)
|
||||
@@ -123,13 +127,46 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE
|
||||
LD DE,(AY_R3CHBP*256)+$00
|
||||
CALL AY_WRTPSG ; R03 = $00 = XXXX0000
|
||||
;
|
||||
CALL LDELAY ; HALF SECOND DELAY
|
||||
;
|
||||
LD E,$00 ; SET VOLUME OFF
|
||||
CALL AY_SETV ; ON ALL CHANNELS
|
||||
|
||||
#IF SYSTIMEN
|
||||
LD A, TICKFREQ / 3 ; SCHEDULE IN 1/3 SECOND TO TURN OFF SOUND
|
||||
LD (AY_TIMTIK), A
|
||||
|
||||
LD HL, (VEC_TICK + 1) ; GET CUR SECONDS VECTOR
|
||||
LD (AY_TIMHOOK), HL ; SAVE IT INTERNALLY
|
||||
LD HL, AY_TIMER ; INSTALL TIMER HOOK HANDLER
|
||||
LD (VEC_TICK + 1), HL
|
||||
|
||||
#ELSE
|
||||
CALL LDELAY ; HALF SECOND DELAY
|
||||
LD E,$00 ; SET VOLUME OFF
|
||||
CALL AY_SETV ; ON ALL CHANNELS
|
||||
|
||||
#ENDIF
|
||||
;
|
||||
XOR A ; SUCCESSFULL INIT
|
||||
RET
|
||||
|
||||
#IF SYSTIMEN
|
||||
AY_TIMER:
|
||||
LD A, (AY_TIMTIK)
|
||||
DEC A
|
||||
LD (AY_TIMTIK), A
|
||||
JR NZ, AY_TIMER1
|
||||
|
||||
LD HL, (AY_TIMHOOK) ; REMOVE US FROM THE TIMER HOOKS LIST
|
||||
LD (VEC_TICK + 1), HL
|
||||
|
||||
LD E,$00 ; SET VOLUME OFF
|
||||
CALL AY_SETV ; ON ALL CHANNELS
|
||||
|
||||
AY_TIMER1:
|
||||
JP 0 ; OVERWRITTEN WITH NEXT HANDLER
|
||||
AY_TIMHOOK: .EQU $ - 2
|
||||
|
||||
AY_TIMTIK .DB 0 ; COUNT DOWN TO FINISH BOOT BEEP
|
||||
|
||||
#ENDIF
|
||||
;
|
||||
;======================================================================
|
||||
; INITIALIZE DEVICE
|
||||
|
||||
30
Source/HBIOS/cfg_state.inc
Normal file
30
Source/HBIOS/cfg_state.inc
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
#IFNDEF CFG_STATE
|
||||
#DEFINE CFG_STATE
|
||||
|
||||
SYSTIMEN .EQU FALSE
|
||||
|
||||
#IF (CTCENABLE & INTMODE == 2 & CTCTIMER)
|
||||
SYSTIMEN .SET TRUE
|
||||
#ENDIF
|
||||
|
||||
#IF (TMSENABLE & INTMODE == 1 & TMSTIMENABLE)
|
||||
SYSTIMEN .SET TRUE
|
||||
#ENDIF
|
||||
|
||||
#IF (INTMODE == 1 & PLATFORM == PLT_SBC & HTIMENABLE)
|
||||
SYSTIMEN .SET TRUE
|
||||
#ENDIF
|
||||
|
||||
#IF (INTMODE == 2 & CPUFAM == CPU_Z180)
|
||||
SYSTIMEN .SET TRUE
|
||||
#ENDIF
|
||||
|
||||
.ECHO "TIMER INTERRUPT "
|
||||
#IF SYSTIMEN
|
||||
.ECHO "ACTIVE\n"
|
||||
#ELSE
|
||||
.ECHO "NOT ACTIVE\n"
|
||||
#ENDIF
|
||||
|
||||
#ENDIF
|
||||
Reference in New Issue
Block a user