summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/namco54.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/namco54.cpp')
-rw-r--r--src/mame/audio/namco54.cpp159
1 files changed, 0 insertions, 159 deletions
diff --git a/src/mame/audio/namco54.cpp b/src/mame/audio/namco54.cpp
deleted file mode 100644
index 0c908b523ec..00000000000
--- a/src/mame/audio/namco54.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Aaron Giles
-/***************************************************************************
-
- Namco 54XX
-
- This custom chip is a Fujitsu MB8844 MCU programmed to act as a noise
- generator. It is used for explosions, the shoot sound in Bosconian,
- and the tire screech sound in Pole Position.
-
- CMD = command from main CPU
- OUTn = sound outputs (3 channels)
-
- The chip reads the command when the /IRQ is pulled down.
-
- +------+
- EX|1 28|Vcc
- X|2 27|K3 (CMD7)
- /RESET|3 26|K2 (CMD6)
- (OUT0.0) O0|4 25|K1 (CMD5)
- (OUT0.1) O1|5 24|K0 (CMD4)
- (OUT0.2) O2|6 23|R10/IRQ
- (OUT0.3) O3|7 22|R9/TC
- (OUT1.0) O4|8 21|R8
- (OUT1.1) O5|9 20|R7 (OUT2.3)
- (OUT1.2) O6|10 19|R6 (OUT2.2)
- (OUT1.3) O7|11 18|R5 (OUT2.1)
- (CMD0) R0|12 17|R4 (OUT2.0)
- (CMD1) R1|13 16|R3 (CMD3)
- GND|14 15|R2 (CMD2)
- +------+
-
- [1] The RNG that drives the type A output is output on pin 21, and
- the one that drives the type B output is output on pin 22, but those
- pins are not connected on the board.
-
-
- The command format is very simple:
-
- 0x: nop
- 1x: play sound type A
- 2x: play sound type B
- 3x: set parameters (type A) (followed by 4 bytes)
- 4x: set parameters (type B) (followed by 4 bytes)
- 5x: play sound type C
- 6x: set parameters (type C) (followed by 5 bytes)
- 7x: set volume for sound type C to x
- 8x-Fx: nop
-
-***************************************************************************/
-
-#include "emu.h"
-#include "namco54.h"
-
-TIMER_CALLBACK_MEMBER( namco_54xx_device::latch_callback )
-{
- m_latched_cmd = param;
-}
-
-WRITE_LINE_MEMBER( namco_54xx_device::reset )
-{
- // The incoming signal is active low
- m_cpu->set_input_line(INPUT_LINE_RESET, !state);
-}
-
-uint8_t namco_54xx_device::K_r()
-{
- return m_latched_cmd >> 4;
-}
-
-uint8_t namco_54xx_device::R0_r()
-{
- return m_latched_cmd & 0x0f;
-}
-
-void namco_54xx_device::O_w(uint8_t data)
-{
- uint8_t out = (data & 0x0f);
- if (data & 0x10)
- m_discrete->write(NAMCO_54XX_1_DATA(m_basenode), out);
- else
- m_discrete->write(NAMCO_54XX_0_DATA(m_basenode), out);
-}
-
-void namco_54xx_device::R1_w(uint8_t data)
-{
- uint8_t out = (data & 0x0f);
-
- m_discrete->write(NAMCO_54XX_2_DATA(m_basenode), out);
-}
-
-
-void namco_54xx_device::write(uint8_t data)
-{
- machine().scheduler().synchronize(timer_expired_delegate(FUNC(namco_54xx_device::latch_callback),this), data);
-
- // TODO: should use chip_select line for this
- m_cpu->pulse_input_line(0, m_irq_duration);
-}
-
-WRITE_LINE_MEMBER( namco_54xx_device::chip_select )
-{
- // TODO: broken sound when using this
- //m_cpu->set_input_line(0, state);
-}
-
-
-/***************************************************************************
- DEVICE INTERFACE
-***************************************************************************/
-
-ROM_START( namco_54xx )
- ROM_REGION( 0x400, "mcu", 0 )
- ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) )
-ROM_END
-
-DEFINE_DEVICE_TYPE(NAMCO_54XX, namco_54xx_device, "namco54", "Namco 54xx")
-
-namco_54xx_device::namco_54xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, NAMCO_54XX, tag, owner, clock),
- m_cpu(*this, "mcu"),
- m_discrete(*this, finder_base::DUMMY_TAG),
- m_irq_duration(attotime::from_usec(100)),
- m_basenode(0),
- m_latched_cmd(0)
-{
-}
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void namco_54xx_device::device_start()
-{
- save_item(NAME(m_latched_cmd));
-}
-
-//-------------------------------------------------
-// device_add_mconfig - add device configuration
-//-------------------------------------------------
-
-void namco_54xx_device::device_add_mconfig(machine_config &config)
-{
- MB8844(config, m_cpu, DERIVED_CLOCK(1,1)); /* parent clock, internally divided by 6 */
- m_cpu->read_k().set(FUNC(namco_54xx_device::K_r));
- m_cpu->write_o().set(FUNC(namco_54xx_device::O_w));
- m_cpu->read_r<0>().set(FUNC(namco_54xx_device::R0_r));
- m_cpu->write_r<1>().set(FUNC(namco_54xx_device::R1_w));
-}
-
-//-------------------------------------------------
-// device_rom_region - return a pointer to the
-// the device's ROM definitions
-//-------------------------------------------------
-
-const tiny_rom_entry *namco_54xx_device::device_rom_region() const
-{
- return ROM_NAME(namco_54xx );
-}