mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
@@ -9,7 +9,8 @@ BF_SYSGET .EQU $F8 ; HBIOS: SYSGET function
|
||||
|
||||
BF_SND .EQU $50
|
||||
BF_SNDRESET .EQU BF_SND + 0 ; RESET SOUND SYSTEM
|
||||
BF_SNDVOL .EQU BF_SND + 1 ; REQUEST SOUND VOL - D IS CHANNEL, E CONTAINS VOLUME (255 MAX, 0 SILENT) - SCALED AS REQUIRED BY DRIVER (EG: MAPS TO JUST 4 BIT RESOLUTION FOR SN76489)
|
||||
BF_SNDPRD .EQU BF_SND + 2 ; REQUEST SOUND PERIOD - D IS CHANNEL, HL CONTAINS PERIOD (0 LOWEST NOTE) - SCALED BY DRIVER (EG: MAPS TO JUST 10 BITS FOR SN76489 )
|
||||
BF_SNDVOL .EQU BF_SND + 1 ; REQUEST SOUND VOL - L CONTAINS VOLUME (255 MAX, 0 SILENT) - SCALED AS REQUIRED BY DRIVER (EG: MAPS TO JUST 4 BIT RESOLUTION FOR SN76489)
|
||||
BF_SNDPRD .EQU BF_SND + 2 ; REQUEST SOUND PERIOD - HL CONTAINS DRIVER SPECIFIC VALUE
|
||||
BF_SNDNOTE .EQU BF_SND + 3 ; REQUEST NOTE - L CONTAINS NOTE - EACH VALUE IS QUARTER NOTE
|
||||
BF_SNDPLAY .EQU BF_SND + 4 ; INITIATE THE REQUESTED SOUND COMMAND
|
||||
BF_SNDQUERY .EQU BF_SND + 5 ; D IS CHANNEL, E IS SUBCOMMAND
|
||||
BF_SNDQUERY .EQU BF_SND + 5 ; E IS SUBFUNCTION
|
||||
|
||||
@@ -1374,7 +1374,7 @@ chip provides.
|
||||
| _Entry Parameters_
|
||||
| B: 0x52
|
||||
| C: Audio Device Unit ID
|
||||
| HL: Period (0000=lowest note, FFFF=highest note)
|
||||
| HL: Period
|
||||
|
||||
| _Returned Values_
|
||||
| A: Status (0=OK, else error)
|
||||
@@ -1383,7 +1383,9 @@ This function sets the sound chip period parameter. The period will
|
||||
be applied when the next SNDPLAY function is invoked.
|
||||
|
||||
The period value is a driver specific value. To play standardized
|
||||
notes, use the SNDNOTE function.
|
||||
notes, use the SNDNOTE function. A higher value will generate a lower
|
||||
note. The maximum value that can be used is driver specific. If value
|
||||
supplied is beyond driver capabilities, register A will be set to $FF.
|
||||
|
||||
### Function 0x53 -- Sound Note (SNDNOTE)
|
||||
|
||||
|
||||
@@ -866,7 +866,7 @@ SD_INITCARD1:
|
||||
; MAKE SURE WE FINISH SENDING
|
||||
#IF ((SDMODE == SDMODE_CSIO) | (SDMODE == SDMODE_MK4) | (SDMODE == SDMODE_SC))
|
||||
CALL SD_WAITTX ; WAIT FOR TE TO CLEAR
|
||||
CALL DLY4 ; WAIT A BIT MORE FOR FINAL BIT
|
||||
CALL DLY32 ; WAIT A BIT MORE FOR FINAL BIT
|
||||
#ENDIF
|
||||
;
|
||||
; PUT CARD IN IDLE STATE
|
||||
@@ -1025,7 +1025,7 @@ SD_INITCARD5:
|
||||
; PER SPEC, THE CARD SHOULD NOW BE ABLE TO HANDLE FULL SPEED OPERATION
|
||||
; SO, FOR CSIO OPERATION, WE SET CSIO TO MAXIMUM SPEED
|
||||
CALL SD_WAITTX ; MAKE SURE WE ARE DONE SENDING
|
||||
CALL DLY4 ; WAIT A BIT MORE FOR FINAL BIT
|
||||
CALL DLY32 ; WAIT A BIT MORE FOR FINAL BIT
|
||||
XOR A ; ZERO MEANS MAX SPEED
|
||||
OUT (Z180_CNTR),A ; NOW SET CSIO PORT
|
||||
#ENDIF
|
||||
@@ -1674,12 +1674,10 @@ SD_DESELECT:
|
||||
; FINISH SENDING AFTER TE IS CLEARED. THE DELAY BELOW WILL
|
||||
; DO THIS FOR THE SLOWEST POSSIBLE SEND RATE WHICH IS
|
||||
; CLK / 1320, SO DELAY AT LEAST 1320 T-STATES
|
||||
;CALL DLY64 ; DELAY FOR FINAL BIT
|
||||
;
|
||||
; IN PRACTICE, IT LOOKS LIKE THIS WORST CASE SCENARIO NEVER
|
||||
; OCCURS. FOR NOW, USE A SMALL DELAY WHICH SEEMS TO BE MORE
|
||||
; THAN ADEQUATE BASED ON LOGIC ANALYZER TRACES.
|
||||
CALL DLY4 ; DELAY FOR FINAL BIT
|
||||
; IN PRACTICE, A SMALLER DELAY IS FINE BASED ON LOGIC ANALYZER
|
||||
; TRACES.
|
||||
CALL DLY32 ; DELAY FOR FINAL BIT
|
||||
#ENDIF
|
||||
;
|
||||
LD A,(SD_OPRVAL)
|
||||
|
||||
Reference in New Issue
Block a user