summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound
diff options
context:
space:
mode:
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
commit15ff665815c9dd2941bfb5b53f9200df1888590f (patch)
treea744b83c9ff7981ed61e5e8d6cc70cd688c58ea8 /src/devices/sound
parent650142e5cb94f9b7d08cd983d7bfaffcae220970 (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.h1
-rw-r--r--src/devices/sound/tms5220.cpp7
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);
}
}
}