diff options
Diffstat (limited to 'src/mame/includes/leland.h')
-rw-r--r-- | src/mame/includes/leland.h | 125 |
1 files changed, 6 insertions, 119 deletions
diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index 4662cda5e51..e6c6168fa6a 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -5,13 +5,14 @@ Cinemat/Leland driver *************************************************************************/ +#ifndef MAME_INCLUDES_LELAND_H +#define MAME_INCLUDES_LELAND_H + +#pragma once #include "machine/eepromser.h" -#include "sound/ym2151.h" #include "sound/dac.h" #include "sound/ay8910.h" -#include "machine/pit8253.h" -#include "cpu/i86/i186.h" #include "screen.h" #define LELAND_BATTERY_RAM_SIZE 0x4000 @@ -217,123 +218,9 @@ public: #define SERIAL_TYPE_ENCRYPT_XOR 4 -/*----------- defined in audio/leland.c -----------*/ - -class leland_80186_sound_device : public device_t -{ -public: - leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual machine_config_constructor device_mconfig_additions() const override; - - DECLARE_WRITE16_MEMBER(peripheral_ctrl); - DECLARE_WRITE8_MEMBER(leland_80186_control_w); - DECLARE_WRITE8_MEMBER(ataxx_80186_control_w); - DECLARE_READ16_MEMBER(peripheral_r); - DECLARE_WRITE16_MEMBER(peripheral_w); - DECLARE_WRITE8_MEMBER(leland_80186_command_lo_w); - DECLARE_WRITE8_MEMBER(leland_80186_command_hi_w); - DECLARE_READ8_MEMBER(leland_80186_response_r); - DECLARE_WRITE16_MEMBER(dac_w); - DECLARE_WRITE16_MEMBER(ataxx_dac_control); - DECLARE_WRITE_LINE_MEMBER(pit0_2_w); - DECLARE_WRITE_LINE_MEMBER(pit1_0_w); - DECLARE_WRITE_LINE_MEMBER(pit1_1_w); - DECLARE_WRITE_LINE_MEMBER(pit1_2_w); - DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w); - DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - int m_type; - - enum { - TYPE_LELAND, - TYPE_REDLINE, - TYPE_ATAXX, - TYPE_WSF - }; - - required_device<dac_byte_interface> m_dac1; - required_device<dac_byte_interface> m_dac2; - required_device<dac_byte_interface> m_dac3; - required_device<dac_byte_interface> m_dac4; - optional_device<dac_byte_interface> m_dac5; - optional_device<dac_byte_interface> m_dac6; - optional_device<dac_byte_interface> m_dac7; - optional_device<dac_byte_interface> m_dac8; - optional_device<dac_word_interface> m_dac9; - required_device<dac_byte_interface> m_dac1vol; - required_device<dac_byte_interface> m_dac2vol; - required_device<dac_byte_interface> m_dac3vol; - required_device<dac_byte_interface> m_dac4vol; - optional_device<dac_byte_interface> m_dac5vol; - optional_device<dac_byte_interface> m_dac6vol; - optional_device<dac_byte_interface> m_dac7vol; - optional_device<dac_byte_interface> m_dac8vol; - -private: - void command_lo_sync(void *ptr, int param); - void delayed_response_r(void *ptr, int param); - void set_clock_line(int which, int state) { m_clock_active = state ? (m_clock_active | (1<<which)) : (m_clock_active & ~(1<<which)); } - - // internal state - i80186_cpu_device *m_audiocpu; - uint16_t m_peripheral; - uint8_t m_last_control; - uint8_t m_clock_active; - uint8_t m_clock_tick; - uint16_t m_sound_command; - uint16_t m_sound_response; - uint32_t m_ext_start; - uint32_t m_ext_stop; - uint8_t m_ext_active; - uint8_t* m_ext_base; - - required_device<pit8254_device> m_pit0; - optional_device<pit8254_device> m_pit1; - optional_device<pit8254_device> m_pit2; - optional_device<ym2151_device> m_ymsnd; -}; - -extern const device_type LELAND_80186; - -class redline_80186_sound_device : public leland_80186_sound_device -{ -public: - redline_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE16_MEMBER(redline_dac_w); - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -extern const device_type REDLINE_80186; - -class ataxx_80186_sound_device : public leland_80186_sound_device -{ -public: - ataxx_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -extern const device_type ATAXX_80186; - -class wsf_80186_sound_device : public leland_80186_sound_device -{ -public: - wsf_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -extern const device_type WSF_80186; - -ADDRESS_MAP_EXTERN(leland_80186_map_program, 16); -ADDRESS_MAP_EXTERN(leland_80186_map_io, 16); -ADDRESS_MAP_EXTERN(redline_80186_map_io, 16); -ADDRESS_MAP_EXTERN(ataxx_80186_map_io, 16); - - /*----------- defined in video/leland.c -----------*/ MACHINE_CONFIG_EXTERN( leland_video ); MACHINE_CONFIG_EXTERN( ataxx_video ); + +#endif // MAME_INCLUDES_LELAND_H |