@ -2827,42 +2827,7 @@ INITSYS4:
# ENDIF
# ENDIF
;
;
# IFDEF TESTING
# IFDEF TESTING
;
; ROUTINE TO BEEP THE DEAULT SOUND UNIT (NOT FINISHED)
; NEED TO CHECK FOR EXISTENCE OF SOUND UNIT 0
; NEED TO TEST AGAINST ALL SOUND DRIVERS
; CAN SPEAKER DRIVER BE MODIFIED TO PLAY ARBITRARY DURATION?
; WHICH CHANNEL SHOULD BE USED? IS THERE A GOOD DEFAULT CHANNEL?
;
SNDUNIT .EQU 0
;
HB_BEEP:
LD B , $ 50 ; SOUND RESET FUNCTION
LD C , SNDUNIT ; SOUND UNIT NUMBER
CALL SND_DISPATCH ; DO IT
LD B , $ 51 ; VOLUME
LD C , SNDUNIT ; SOUND UNIT NUMBER
LD L , $ FF ; MAX
CALL SND_DISPATCH ; DO IT
LD B , $ 53 ; SELECT NOTE
LD C , SNDUNIT ; SOUND UNIT NUMBER
;LD HL,0 ; A0#
LD HL , 200 ; C4
CALL SND_DISPATCH ; DO IT
;LD B,$56 ; DURATION
;LD C,SNDUNIT ; SOUND UNIT NUMBER
;LD HL,500 ; 1/2 SECOND
;CALL SND_DISPATCH ; DO IT
LD B , $ 54 ; PLAY SOUND
LD C , SNDUNIT ; SOUND UNIT NUMBER
LD D , 1 ; CHANNEL 0
CALL SND_DISPATCH ; DO IT
LD DE , 15625 ; PLAY FOR 1/4 SECOND
CALL VDELAY
LD B , $ 50 ; SOUND RESET FUNCTION
LD C , SNDUNIT ; SOUND UNIT NUMBER
CALL SND_DISPATCH ; DO IT
;
CALL SND_BEEP
# ENDIF
# ENDIF
;
;
# IFNDEF ROMBOOT
# IFNDEF ROMBOOT
@ -3749,7 +3714,7 @@ SND_ADDENT:
; WORD UNIT SPECIFIC DATA (TYPICALLY A DEVICE INSTANCE DATA ADDRESS)
; WORD UNIT SPECIFIC DATA (TYPICALLY A DEVICE INSTANCE DATA ADDRESS)
;
;
SND_FNCNT .EQU 8 ; NUMBER OF SND FUNCS (FOR RANGE CHECK)
SND_FNCNT .EQU 8 ; NUMBER OF SND FUNCS (FOR RANGE CHECK)
SND_MAX .EQU 4 ; UP TO 3 UNITS
SND_MAX .EQU 4 ; UP TO 4 UNITS
SND_SIZ .EQU SND_MAX * 4 ; EACH ENTRY IS 4 BYTES
SND_SIZ .EQU SND_MAX * 4 ; EACH ENTRY IS 4 BYTES
;
;
.DB SND_FNCNT ; SND FUNCTION COUNT (FOR RANGE CHECK)
.DB SND_FNCNT ; SND FUNCTION COUNT (FOR RANGE CHECK)
@ -3758,6 +3723,49 @@ SND_CNT .DB 0 ; ENTRY COUNT PREFIX
SND_TBL .FILL SND_SIZ , 0 ; SPACE FOR ENTRIES
SND_TBL .FILL SND_SIZ , 0 ; SPACE FOR ENTRIES
;
;
;==================================================================================================
;==================================================================================================
; SPEAKER BEEP ROUTINE
;==================================================================================================
;
; ROUTINE TO BEEP THE DEAULT SOUND UNIT
; NEED TO CHECK FOR EXISTENCE OF SOUND UNIT
; WHICH CHANNEL SHOULD BE USED? IS THERE A GOOD DEFAULT CHANNEL?
;
SND_BEEP:
; CHECK FOR AT LEAST 1 SOUND DEVICE
LD A ,( SND_CNT ) ; GET SOUND UNIT COUNT
OR A ; CHECK FOR ZERO
RET Z ; BAIL OUT IF NO SOUND UNITS
; PLAY A BEEP ON SOUND DEVICE UNIT 0
LD B , $ 50 ; SOUND RESET FUNCTION
LD C , 0 ; SOUND UNIT NUMBER
CALL SND_DISPATCH ; DO IT
LD B , $ 51 ; VOLUME
LD C , 0 ; SOUND UNIT NUMBER
LD L , $ FF ; MAX
CALL SND_DISPATCH ; DO IT
LD B , $ 53 ; SELECT NOTE
LD C , 0 ; SOUND UNIT NUMBER
;LD HL,0 ; A0#
LD HL , 244 ; B5 (CLOSE TO 1 KHZ)
CALL SND_DISPATCH ; DO IT
;LD B,$56 ; DURATION
;LD C,0 ; SOUND UNIT NUMBER
;LD HL,500 ; 1/2 SECOND
;CALL SND_DISPATCH ; DO IT
LD B , $ 54 ; PLAY SOUND
LD C , 0 ; SOUND UNIT NUMBER
LD D , 0 ; CHANNEL 0
CALL SND_DISPATCH ; DO IT
LD DE , 15625 ; PLAY FOR 1/4 SECOND
CALL VDELAY ; WAIT WHILE TONE IS PLAYED
;CALL LDELAY ; LET SOUND PLAY 1/2 SECOND
LD B , $ 50 ; SOUND RESET FUNCTION
LD C , 0 ; SOUND UNIT NUMBER
CALL SND_DISPATCH ; DO IT
RET ; DONE
;
;==================================================================================================
; SYSTEM FUNCTION DISPATCHER
; SYSTEM FUNCTION DISPATCHER
;==================================================================================================
;==================================================================================================
;
;