|
|
|
@ -2827,42 +2827,7 @@ INITSYS4: |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#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 |
|
|
|
; |
|
|
|
#IFNDEF ROMBOOT |
|
|
|
@ -3749,7 +3714,7 @@ SND_ADDENT: |
|
|
|
; WORD UNIT SPECIFIC DATA (TYPICALLY A DEVICE INSTANCE DATA ADDRESS) |
|
|
|
; |
|
|
|
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 |
|
|
|
; |
|
|
|
.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 |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
; 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 |
|
|
|
;================================================================================================== |
|
|
|
; |
|
|
|
|