diff options
author | Mike <mike.harris@gmail.com> | 2019-06-08 12:04:27 -0700 |
---|---|---|
committer | R. Belmont <rb6502@users.noreply.github.com> | 2019-06-08 15:04:27 -0400 |
commit | 15ff665815c9dd2941bfb5b53f9200df1888590f (patch) | |
tree | a744b83c9ff7981ed61e5e8d6cc70cd688c58ea8 /src/devices/sound | |
parent | 650142e5cb94f9b7d08cd983d7bfaffcae220970 (diff) |
Add Bally squawk & talk boards (#5175)
* Bally pinball by35: Add sound LED to layouts.
* Bally pinball by35: whitespace/formatting cleanup.
* Bally pinball by35: Add filters to audio device output.
The boards have them, and the chip like to output DC at idle. This can
cause clipping in the mixer.
* 6821pia: For port A reads, only use the DDR for reading pins.
* Bally pinball by35: Move over cabinet switches.
This makes more room for a sound board LED.
* Bally pinball audio: Add Squawk & Talk board.
* Bally pinball audio: Add new board, Squawk & Talk with the AY chip.
* TMS5220: Adjust delay time between /RS going low and /READY being set.
The datasheet doesn't list this time exactly, but something close (time
between /RS going low and the data being valid on the bus). It's
measured in usec, not clock cycles.
* Bally audio: minor cleanup
* Midway mcr: Use Bally Squawk & Talk sound board implementation
* Bally pinball audio: remove clock from as2888, as it's a discrete board.
Diffstat (limited to 'src/devices/sound')
-rw-r--r-- | src/devices/sound/dac.h | 1 | ||||
-rw-r--r-- | src/devices/sound/tms5220.cpp | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/devices/sound/dac.h b/src/devices/sound/dac.h index 434f82ba4f9..613886a5c0e 100644 --- a/src/devices/sound/dac.h +++ b/src/devices/sound/dac.h @@ -265,6 +265,7 @@ DAC_GENERATOR_EPILOG(_dac_type, _dac_class, _dac_description, _dac_shortname) // DAC chips DAC_GENERATOR(AD557, ad557_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD557", "ad557") +DAC_GENERATOR(AD558, ad558_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD558", "ad558") DAC_GENERATOR(AD7224, ad7224_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD7224", "ad7224") DAC_GENERATOR(AD7521, ad7521_device, dac_word_interface, dac_code_binary<12>, dac_gain_r2r, "AD7521", "ad7521") DAC_GENERATOR(AD7523, ad7523_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD7523", "ad7523") diff --git a/src/devices/sound/tms5220.cpp b/src/devices/sound/tms5220.cpp index 792a0d0a637..4889cd85c60 100644 --- a/src/devices/sound/tms5220.cpp +++ b/src/devices/sound/tms5220.cpp @@ -1821,9 +1821,10 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w ) /* upon /RS being activated, /READY goes inactive after 100 nsec from data sheet, through 3 asynchronous gates on patent. This is effectively within one clock, so we immediately set io_ready to 0 and activate the callback. */ m_io_ready = false; update_ready_state(); - /* How long does /READY stay inactive, when /RS is pulled low? It might be always ~16 clocks (25 usec at 800khz as shown on the datasheet) - but the patent schematic implies it might be as short as 4 clock cycles. */ - m_timer_io_ready->adjust(clocks_to_attotime(16), 1); + // The datasheet doesn't give an exact time when /READY should change, but the data is valid 6-11 usec after /RS goes low. + // It looks like /READY goes high soon after that (although the datasheet graph is not to scale). + // The value of 13 was measured on a real chip with an oscilloscope, and it fits the datasheet. + m_timer_io_ready->adjust(attotime::from_usec(13), 1); } } } |