diff options
Diffstat (limited to 'src/mame/audio/exidy440.h')
-rw-r--r-- | src/mame/audio/exidy440.h | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/mame/audio/exidy440.h b/src/mame/audio/exidy440.h index 45831b282eb..b7ce86da71e 100644 --- a/src/mame/audio/exidy440.h +++ b/src/mame/audio/exidy440.h @@ -5,24 +5,32 @@ #pragma once +#define EXIDY440_AUDIO_CLOCK (XTAL(12'979'200) / 4) +#define EXIDY440_MC3418_CLOCK (EXIDY440_AUDIO_CLOCK / 4 / 16) +#define EXIDY440_MC3417_CLOCK (EXIDY440_AUDIO_CLOCK / 4 / 32) + + class exidy440_sound_device : public device_t, public device_sound_interface { public: exidy440_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~exidy440_sound_device() {} - DECLARE_READ8_MEMBER( sound_command_r ); - DECLARE_READ8_MEMBER( sound_volume_r ); - DECLARE_WRITE8_MEMBER( sound_volume_w ); - DECLARE_WRITE8_MEMBER( sound_interrupt_clear_w ); - DECLARE_READ8_MEMBER( m6844_r ); - DECLARE_WRITE8_MEMBER( m6844_w ); - DECLARE_WRITE8_MEMBER( sound_banks_w ); + DECLARE_READ8_MEMBER(sound_command_r); + DECLARE_READ8_MEMBER(sound_volume_r); + DECLARE_WRITE8_MEMBER(sound_volume_w); + DECLARE_WRITE_LINE_MEMBER(sound_interrupt_w); + DECLARE_WRITE8_MEMBER(sound_interrupt_clear_w); + DECLARE_WRITE_LINE_MEMBER(sound_reset_w); + DECLARE_READ8_MEMBER(m6844_r); + DECLARE_WRITE8_MEMBER(m6844_w); + DECLARE_WRITE8_MEMBER(sound_banks_w); void exidy440_sound_command(uint8_t param); uint8_t exidy440_sound_command_ack(); protected: // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_stop() override; @@ -30,6 +38,8 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + void exidy440_audio_map(address_map &map); + /* channel_data structure holds info about each 6844 DMA channel */ struct m6844_channel_data { @@ -63,6 +73,7 @@ private: }; required_device<cpu_device> m_audiocpu; + required_region_ptr<uint8_t> m_samples; // internal state uint8_t m_sound_command; |