diff options
author | Vas Crabb <vas@vastheman.com> | 2021-10-04 02:11:55 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2021-10-04 02:11:55 +1100 |
commit | 2f42632ae518d26ad62f753816d9ab6445f08cb1 (patch) | |
tree | c7f96a0b4cfc4d6335f73ae3ca66fda6c12667a8 /src/devices | |
parent | 6de437c2cb43a70bd99befb4fcfa71ed758ce6a9 (diff) |
bus/a2bus, bus/a2gameio: Moved many class declarations out of headers.
This reduces how frequently the Apple II drivers need to be recompiled
when a random device changes.
Also, this turned up three things that are apparently not hooked up in
the PC Transported card.
Diffstat (limited to 'src/devices')
32 files changed, 859 insertions, 823 deletions
diff --git a/src/devices/bus/a2bus/a2arcadebd.cpp b/src/devices/bus/a2bus/a2arcadebd.cpp index 169971ea3e5..85c0cfc02d2 100644 --- a/src/devices/bus/a2bus/a2arcadebd.cpp +++ b/src/devices/bus/a2bus/a2arcadebd.cpp @@ -15,9 +15,15 @@ #include "emu.h" #include "a2arcadebd.h" + +#include "video/tms9928a.h" +#include "sound/ay8910.h" + #include "speaker.h" +namespace { + /*************************************************************************** PARAMETERS ***************************************************************************/ @@ -27,10 +33,34 @@ #define SCREEN_TAG "screen" //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_ARCADEBOARD, a2bus_arcboard_device, "a2arcbd", "Third Millenium Engineering Arcade Board") +class a2bus_arcboard_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_arcboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_arcboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + +private: + DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); + + required_device<tms9918a_device> m_tms; + required_device<ay8910_device> m_ay; +}; //------------------------------------------------- // device_add_mconfig - add device configuration @@ -138,3 +168,12 @@ WRITE_LINE_MEMBER( a2bus_arcboard_device::tms_irq_w ) lower_slot_irq(); } } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_ARCADEBOARD, device_a2bus_card_interface, a2bus_arcboard_device, "a2arcbd", "Third Millenium Engineering Arcade Board") diff --git a/src/devices/bus/a2bus/a2arcadebd.h b/src/devices/bus/a2bus/a2arcadebd.h index 9c0af1830fd..b9ebf88727f 100644 --- a/src/devices/bus/a2bus/a2arcadebd.h +++ b/src/devices/bus/a2bus/a2arcadebd.h @@ -14,40 +14,8 @@ #pragma once #include "a2bus.h" -#include "video/tms9928a.h" -#include "sound/ay8910.h" -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_arcboard_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_arcboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_arcboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - -private: - DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); - - required_device<tms9918a_device> m_tms; - required_device<ay8910_device> m_ay; -}; - -// device type definition -DECLARE_DEVICE_TYPE(A2BUS_ARCADEBOARD, a2bus_arcboard_device) +// device type declaration +DECLARE_DEVICE_TYPE(A2BUS_ARCADEBOARD, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_A2ARCADEBD_H diff --git a/src/devices/bus/a2bus/a2echoii.cpp b/src/devices/bus/a2bus/a2echoii.cpp index 4bc6c9ccfb2..604dc7ae1c6 100644 --- a/src/devices/bus/a2bus/a2echoii.cpp +++ b/src/devices/bus/a2bus/a2echoii.cpp @@ -35,17 +35,47 @@ #include "logmacro.h" +namespace { + /*************************************************************************** PARAMETERS ***************************************************************************/ +#define TMS_TAG "tms5220" + //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_ECHOII, a2bus_echoii_device, "a2echoii", "Street Electronics Echo II") +class a2bus_echoii_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_echoii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -#define TMS_TAG "tms5220" + required_device<tms5220_device> m_tms; + +protected: + a2bus_echoii_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + virtual bool take_c800() override; + +private: + //DECLARE_WRITE_LINE_MEMBER(tms_irq_callback); + DECLARE_WRITE_LINE_MEMBER(tms_readyq_callback); + uint8_t m_writelatch_data; // 74ls373 latch + bool m_readlatch_flag; // 74c74 1st half + bool m_writelatch_flag; // 74c74 2nd half +}; /*************************************************************************** FUNCTION PROTOTYPES @@ -170,3 +200,12 @@ bool a2bus_echoii_device::take_c800() { return false; } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_ECHOII, device_a2bus_card_interface, a2bus_echoii_device, "a2echoii", "Street Electronics Echo II") diff --git a/src/devices/bus/a2bus/a2echoii.h b/src/devices/bus/a2bus/a2echoii.h index 7cb1c401550..264f8e065d9 100644 --- a/src/devices/bus/a2bus/a2echoii.h +++ b/src/devices/bus/a2bus/a2echoii.h @@ -14,43 +14,8 @@ #pragma once #include "a2bus.h" -#include "sound/tms5220.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_echoii_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_echoii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - required_device<tms5220_device> m_tms; - -protected: - a2bus_echoii_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - virtual bool take_c800() override; - -private: - //DECLARE_WRITE_LINE_MEMBER(tms_irq_callback); - DECLARE_WRITE_LINE_MEMBER(tms_readyq_callback); - uint8_t m_writelatch_data; // 74ls373 latch - bool m_readlatch_flag; // 74c74 1st half - bool m_writelatch_flag; // 74c74 2nd half -}; - -// device type definition -DECLARE_DEVICE_TYPE(A2BUS_ECHOII, a2bus_echoii_device) + +// device type declaration +DECLARE_DEVICE_TYPE(A2BUS_ECHOII, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_A2ECHOII_H diff --git a/src/devices/bus/a2bus/a2mockingboard.cpp b/src/devices/bus/a2bus/a2mockingboard.cpp index 380e9988a8b..4323bbe1aba 100644 --- a/src/devices/bus/a2bus/a2mockingboard.cpp +++ b/src/devices/bus/a2bus/a2mockingboard.cpp @@ -11,9 +11,17 @@ #include "emu.h" #include "a2mockingboard.h" + +#include "machine/6522via.h" +#include "sound/ay8910.h" +#include "sound/tms5220.h" +#include "sound/votrax.h" + #include "speaker.h" +namespace { + /*************************************************************************** PARAMETERS ***************************************************************************/ @@ -27,12 +35,112 @@ #define E2P_TMS_TAG "tms5220" //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_MOCKINGBOARD, a2bus_mockingboard_device, "a2mockbd", "Sweet Micro Systems Mockingboard Sound/Speech I") -DEFINE_DEVICE_TYPE(A2BUS_PHASOR, a2bus_phasor_device, "a2phasor", "Applied Engineering Phasor") -DEFINE_DEVICE_TYPE(A2BUS_ECHOPLUS, a2bus_echoplus_device, "a2echop", "Street Electronics Echo Plus") +class a2bus_ayboard_device: + public device_t, + public device_a2bus_card_interface +{ +public: + DECLARE_WRITE_LINE_MEMBER( via1_irq_w ); + DECLARE_WRITE_LINE_MEMBER( via2_irq_w ); + u8 via1_in_a() { return m_porta1; } + u8 via2_in_a() { return m_porta2; } + void via1_out_a(u8 data); + virtual void via1_out_b(u8 data); + void via2_out_a(u8 data); + virtual void via2_out_b(u8 data); + +protected: + // construction/destruction + a2bus_ayboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual u8 read_c0nx(u8 offset) override { return 0xff; } + virtual void write_c0nx(u8 offset, u8 data) override { } + virtual u8 read_cnxx(u8 offset) override; + virtual void write_cnxx(u8 offset, u8 data) override; + + void add_common_devices(machine_config &config); + + required_device<via6522_device> m_via1; + optional_device<via6522_device> m_via2; + required_device<ay8913_device> m_ay1; + required_device<ay8913_device> m_ay2; + + u8 m_porta1; + u8 m_porta2; +}; + +class a2bus_mockingboard_device : public a2bus_ayboard_device +{ +public: + a2bus_mockingboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual void via1_out_b(u8 data) override; +protected: + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_reset() override; + + required_device<votrax_sc01_device> m_sc01; + +private: + DECLARE_WRITE_LINE_MEMBER(write_via1_cb2); + + u8 m_portb1; + int m_last_cb2_state; +}; + +class a2bus_phasor_device : public a2bus_ayboard_device +{ +public: + a2bus_phasor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + void via1_out_b(u8 data) override; + void via2_out_b(u8 data) override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; + + virtual u8 read_c0nx(u8 offset) override; + virtual void write_c0nx(u8 offset, u8 data) override; + virtual u8 read_cnxx(u8 offset) override; + virtual void write_cnxx(u8 offset, u8 data) override; + + required_device<ay8913_device> m_ay3; + required_device<ay8913_device> m_ay4; + +private: + void set_clocks(); + + bool m_native; +}; + +class a2bus_echoplus_device : public a2bus_ayboard_device +{ +public: + a2bus_echoplus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual void device_add_mconfig(machine_config &config) override; + + virtual void via1_out_b(u8 data) override; + + virtual u8 read_c0nx(u8 offset) override; + virtual void write_c0nx(u8 offset, u8 data) override; + virtual u8 read_cnxx(u8 offset) override; + virtual void write_cnxx(u8 offset, u8 data) override; + + required_device<tms5220_device> m_tms; + +private: + u8 m_last_cnxx_addr; +}; //------------------------------------------------- // device_add_mconfig - add device configuration @@ -617,3 +725,14 @@ void a2bus_mockingboard_device::via1_out_b(u8 data) } } } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_MOCKINGBOARD, device_a2bus_card_interface, a2bus_mockingboard_device, "a2mockbd", "Sweet Micro Systems Mockingboard Sound/Speech I") +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_PHASOR, device_a2bus_card_interface, a2bus_phasor_device, "a2phasor", "Applied Engineering Phasor") +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_ECHOPLUS, device_a2bus_card_interface, a2bus_echoplus_device, "a2echop", "Street Electronics Echo Plus") diff --git a/src/devices/bus/a2bus/a2mockingboard.h b/src/devices/bus/a2bus/a2mockingboard.h index 539363c1f10..1b05a9b36fe 100644 --- a/src/devices/bus/a2bus/a2mockingboard.h +++ b/src/devices/bus/a2bus/a2mockingboard.h @@ -12,122 +12,10 @@ #define MAME_BUS_A2BUS_A2MOCKINGBOARD_H #include "a2bus.h" -#include "machine/6522via.h" -#include "sound/ay8910.h" -#include "sound/tms5220.h" -#include "sound/votrax.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_ayboard_device: - public device_t, - public device_a2bus_card_interface -{ -public: - DECLARE_WRITE_LINE_MEMBER( via1_irq_w ); - DECLARE_WRITE_LINE_MEMBER( via2_irq_w ); - u8 via1_in_a() { return m_porta1; } - u8 via2_in_a() { return m_porta2; } - void via1_out_a(u8 data); - virtual void via1_out_b(u8 data); - void via2_out_a(u8 data); - virtual void via2_out_b(u8 data); - -protected: - // construction/destruction - a2bus_ayboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual u8 read_c0nx(u8 offset) override { return 0xff; } - virtual void write_c0nx(u8 offset, u8 data) override { } - virtual u8 read_cnxx(u8 offset) override; - virtual void write_cnxx(u8 offset, u8 data) override; - - void add_common_devices(machine_config &config); - - required_device<via6522_device> m_via1; - optional_device<via6522_device> m_via2; - required_device<ay8913_device> m_ay1; - required_device<ay8913_device> m_ay2; - - u8 m_porta1; - u8 m_porta2; -}; - -class a2bus_mockingboard_device : public a2bus_ayboard_device -{ -public: - a2bus_mockingboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual void via1_out_b(u8 data) override; -protected: - virtual void device_add_mconfig(machine_config &config) override; - virtual void device_reset() override; - - required_device<votrax_sc01_device> m_sc01; - -private: - DECLARE_WRITE_LINE_MEMBER(write_via1_cb2); - - u8 m_portb1; - int m_last_cb2_state; -}; - -class a2bus_phasor_device : public a2bus_ayboard_device -{ -public: - a2bus_phasor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - void via1_out_b(u8 data) override; - void via2_out_b(u8 data) override; - -protected: - virtual void device_add_mconfig(machine_config &config) override; - - virtual u8 read_c0nx(u8 offset) override; - virtual void write_c0nx(u8 offset, u8 data) override; - virtual u8 read_cnxx(u8 offset) override; - virtual void write_cnxx(u8 offset, u8 data) override; - - required_device<ay8913_device> m_ay3; - required_device<ay8913_device> m_ay4; - -private: - void set_clocks(); - - bool m_native; -}; - -class a2bus_echoplus_device : public a2bus_ayboard_device -{ -public: - a2bus_echoplus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual void device_add_mconfig(machine_config &config) override; - - virtual void via1_out_b(u8 data) override; - - virtual u8 read_c0nx(u8 offset) override; - virtual void write_c0nx(u8 offset, u8 data) override; - virtual u8 read_cnxx(u8 offset) override; - virtual void write_cnxx(u8 offset, u8 data) override; - - required_device<tms5220_device> m_tms; - -private: - u8 m_last_cnxx_addr; -}; // device type definition -DECLARE_DEVICE_TYPE(A2BUS_MOCKINGBOARD, a2bus_mockingboard_device) -DECLARE_DEVICE_TYPE(A2BUS_PHASOR, a2bus_phasor_device) -DECLARE_DEVICE_TYPE(A2BUS_ECHOPLUS, a2bus_echoplus_device) +DECLARE_DEVICE_TYPE(A2BUS_MOCKINGBOARD, device_a2bus_card_interface) +DECLARE_DEVICE_TYPE(A2BUS_PHASOR, device_a2bus_card_interface) +DECLARE_DEVICE_TYPE(A2BUS_ECHOPLUS, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_A2MOCKINGBOARD_H diff --git a/src/devices/bus/a2bus/computereyes2.cpp b/src/devices/bus/a2bus/computereyes2.cpp index b8dcab00373..979472d00ef 100644 --- a/src/devices/bus/a2bus/computereyes2.cpp +++ b/src/devices/bus/a2bus/computereyes2.cpp @@ -11,15 +11,43 @@ #include "emu.h" #include "computereyes2.h" -/*************************************************************************** - PARAMETERS -***************************************************************************/ +#include "imagedev/picture.h" + +#include "bitmap.h" + + +namespace { //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_COMPUTEREYES2, a2bus_computereyes2_device, "a2ceyes2", "Digital Vision ComputerEyes/2") +class a2bus_computereyes2_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_computereyes2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_computereyes2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + +private: + required_device<picture_image_device> m_picture; + int m_x, m_y, m_cer0, m_cer1, m_cer2; + u8 m_a2_bitmap[280*193]; + u8 m_threshold; + bool m_bActive; +}; /*************************************************************************** FUNCTION PROTOTYPES @@ -230,3 +258,12 @@ void a2bus_computereyes2_device::write_c0nx(uint8_t offset, uint8_t data) break; } } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_COMPUTEREYES2, device_a2bus_card_interface, a2bus_computereyes2_device, "a2ceyes2", "Digital Vision ComputerEyes/2") diff --git a/src/devices/bus/a2bus/computereyes2.h b/src/devices/bus/a2bus/computereyes2.h index a69600b6de2..183b6a60cb1 100644 --- a/src/devices/bus/a2bus/computereyes2.h +++ b/src/devices/bus/a2bus/computereyes2.h @@ -14,41 +14,8 @@ #pragma once #include "a2bus.h" -#include "bitmap.h" -#include "imagedev/picture.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_computereyes2_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_computereyes2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_computereyes2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - -private: - required_device<picture_image_device> m_picture; - int m_x, m_y, m_cer0, m_cer1, m_cer2; - u8 m_a2_bitmap[280*193]; - u8 m_threshold; - bool m_bActive; -}; - -// device type definition -DECLARE_DEVICE_TYPE(A2BUS_COMPUTEREYES2, a2bus_computereyes2_device) + +// device type declaration +DECLARE_DEVICE_TYPE(A2BUS_COMPUTEREYES2, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_COMPEYES2_H diff --git a/src/devices/bus/a2bus/ezcgi.cpp b/src/devices/bus/a2bus/ezcgi.cpp index a9bc648f08e..3ebccb45518 100644 --- a/src/devices/bus/a2bus/ezcgi.cpp +++ b/src/devices/bus/a2bus/ezcgi.cpp @@ -13,6 +13,11 @@ #include "emu.h" #include "ezcgi.h" +#include "video/tms9928a.h" +#include "video/v9938.h" + + +namespace { /*************************************************************************** PARAMETERS @@ -22,12 +27,83 @@ #define SCREEN_TAG "screen" //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_EZCGI, a2bus_ezcgi_device, "a2ezcgi", "E-Z Color Graphics Interface") -DEFINE_DEVICE_TYPE(A2BUS_EZCGI_9938, a2bus_ezcgi_9938_device, "a2ezcgi3", "E-Z Color Graphics Interface (TMS9938)") -DEFINE_DEVICE_TYPE(A2BUS_EZCGI_9958, a2bus_ezcgi_9958_device, "a2ezcgi5", "E-Z Color Graphics Interface (TMS9958)") +class a2bus_ezcgi_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_ezcgi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_ezcgi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + + required_device<tms9918a_device> m_tms; + +private: + DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); +}; + +class a2bus_ezcgi_9938_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_ezcgi_9938_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_ezcgi_9938_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + + required_device<v9938_device> m_tms; + +private: + DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); +}; + +class a2bus_ezcgi_9958_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_ezcgi_9958_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_ezcgi_9958_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + + required_device<v9958_device> m_tms; + +private: + DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); +}; #define MSX2_XBORDER_PIXELS 16 #define MSX2_YBORDER_PIXELS 28 @@ -287,3 +363,14 @@ WRITE_LINE_MEMBER( a2bus_ezcgi_9958_device::tms_irq_w ) lower_slot_irq(); } } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_EZCGI, device_a2bus_card_interface, a2bus_ezcgi_device, "a2ezcgi", "E-Z Color Graphics Interface") +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_EZCGI_9938, device_a2bus_card_interface, a2bus_ezcgi_9938_device, "a2ezcgi3", "E-Z Color Graphics Interface (TMS9938)") +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_EZCGI_9958, device_a2bus_card_interface, a2bus_ezcgi_9958_device, "a2ezcgi5", "E-Z Color Graphics Interface (TMS9958)") diff --git a/src/devices/bus/a2bus/ezcgi.h b/src/devices/bus/a2bus/ezcgi.h index b301bee332c..b57cbd9dfa5 100644 --- a/src/devices/bus/a2bus/ezcgi.h +++ b/src/devices/bus/a2bus/ezcgi.h @@ -16,91 +16,10 @@ #pragma once #include "a2bus.h" -#include "video/tms9928a.h" -#include "video/v9938.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_ezcgi_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_ezcgi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_ezcgi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - - required_device<tms9918a_device> m_tms; - -private: - DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); -}; - -class a2bus_ezcgi_9938_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_ezcgi_9938_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_ezcgi_9938_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - - required_device<v9938_device> m_tms; - -private: - DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); -}; - -class a2bus_ezcgi_9958_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_ezcgi_9958_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_ezcgi_9958_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - - required_device<v9958_device> m_tms; - -private: - DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); -}; // device type definition -DECLARE_DEVICE_TYPE(A2BUS_EZCGI, a2bus_ezcgi_device) -DECLARE_DEVICE_TYPE(A2BUS_EZCGI_9938, a2bus_ezcgi_9938_device) -DECLARE_DEVICE_TYPE(A2BUS_EZCGI_9958, a2bus_ezcgi_9958_device) +DECLARE_DEVICE_TYPE(A2BUS_EZCGI, device_a2bus_card_interface) +DECLARE_DEVICE_TYPE(A2BUS_EZCGI_9938, device_a2bus_card_interface) +DECLARE_DEVICE_TYPE(A2BUS_EZCGI_9958, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_A2EZCGI_H diff --git a/src/devices/bus/a2bus/lancegs.cpp b/src/devices/bus/a2bus/lancegs.cpp index 8182809c045..cca53536c2e 100644 --- a/src/devices/bus/a2bus/lancegs.cpp +++ b/src/devices/bus/a2bus/lancegs.cpp @@ -47,15 +47,43 @@ #include "emu.h" #include "lancegs.h" -/*************************************************************************** - PARAMETERS -***************************************************************************/ +#include "machine/smc91c9x.h" +#include "machine/i2cmem.h" + + +namespace { //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_LANCEGS, a2bus_lancegs_device, "a2lancegs", "///SHH Systeme LANceGS") +class a2bus_lancegs_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_lancegs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_lancegs_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + + virtual void device_start() override; + virtual void device_reset() override; + + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + +private: + required_device<smc91c96_device> m_netinf; + required_device<i2c_24c04_device> m_i2cmem; + bool m_shadow; + + DECLARE_WRITE_LINE_MEMBER( netinf_irq_w ); +}; + //************************************************************************** // LIVE DEVICE @@ -176,3 +204,12 @@ const tiny_rom_entry *a2bus_lancegs_device::device_rom_region() const { return ROM_NAME(lancegs); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_LANCEGS, device_a2bus_card_interface, a2bus_lancegs_device, "a2lancegs", "///SHH Systeme LANceGS") diff --git a/src/devices/bus/a2bus/lancegs.h b/src/devices/bus/a2bus/lancegs.h index 2a9024296e2..1069d5e696d 100644 --- a/src/devices/bus/a2bus/lancegs.h +++ b/src/devices/bus/a2bus/lancegs.h @@ -12,41 +12,8 @@ #define MAME_BUS_A2BUS_LANCEGS_H #include "a2bus.h" -#include "machine/smc91c9x.h" -#include "machine/i2cmem.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_lancegs_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_lancegs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_lancegs_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_add_mconfig(machine_config &config) override; - virtual const tiny_rom_entry *device_rom_region() const override; - - virtual void device_start() override; - virtual void device_reset() override; - - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - -private: - required_device<smc91c96_device> m_netinf; - required_device<i2c_24c04_device> m_i2cmem; - bool m_shadow; - - DECLARE_WRITE_LINE_MEMBER( netinf_irq_w ); -}; // device type definition -DECLARE_DEVICE_TYPE(A2BUS_LANCEGS, a2bus_lancegs_device) +DECLARE_DEVICE_TYPE(A2BUS_LANCEGS, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_LANCEGS_H diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp index 1cfa36797d6..06a87cc1820 100644 --- a/src/devices/bus/a2bus/pc_xporter.cpp +++ b/src/devices/bus/a2bus/pc_xporter.cpp @@ -79,17 +79,118 @@ #include "emu.h" #include "pc_xporter.h" + +#include "bus/isa/isa.h" +#include "bus/isa/isa_cards.h" +#include "bus/pc_kbd/keyboards.h" +#include "bus/pc_kbd/pc_kbdc.h" +#include "cpu/nec/nec.h" +#include "machine/am9517a.h" +#include "machine/i8255.h" +#include "machine/ins8250.h" +#include "machine/pic8259.h" +#include "machine/pit8253.h" +#include "sound/spkrdev.h" + #include "speaker.h" -/*************************************************************************** - PARAMETERS -***************************************************************************/ + +namespace { //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_PCXPORTER, a2bus_pcxporter_device, "a2pcxport", "Applied Engineering PC Transporter") +class a2bus_pcxporter_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_pcxporter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + [[maybe_unused]] uint16_t pc_bios_r(offs_t offset); // TODO: hook up to something? + +protected: + a2bus_pcxporter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + virtual uint8_t read_cnxx(uint8_t offset) override; + virtual void write_cnxx(uint8_t offset, uint8_t data) override; + virtual uint8_t read_c800(uint16_t offset) override; + virtual void write_c800(uint16_t offset, uint8_t data) override; + +private: + required_device<v30_device> m_v30; + required_device<pic8259_device> m_pic8259; + required_device<am9517a_device> m_dma8237; + required_device<pit8253_device> m_pit8253; + required_device<speaker_sound_device> m_speaker; + required_device<isa8_device> m_isabus; + optional_device<pc_kbdc_device> m_pc_kbdc; + + uint8_t m_u73_q2; + uint8_t m_out1; + int m_dma_channel; + uint8_t m_dma_offset[4]; + uint8_t m_pc_spkrdata; + uint8_t m_pit_out2; + bool m_cur_eop; + + uint8_t m_nmi_enabled; + + uint8_t m_ram[768*1024]; + uint8_t m_c800_ram[0x400]; + uint8_t m_regs[0x400]; + uint32_t m_offset; + address_space *m_pcmem_space, *m_pcio_space; + bool m_reset_during_halt; + + uint8_t m_6845_reg; + + // interface to the keyboard + DECLARE_WRITE_LINE_MEMBER( keyboard_clock_w ); + DECLARE_WRITE_LINE_MEMBER( keyboard_data_w ); + + DECLARE_WRITE_LINE_MEMBER( pc_pit8253_out1_changed ); + DECLARE_WRITE_LINE_MEMBER( pc_pit8253_out2_changed ); + + DECLARE_WRITE_LINE_MEMBER( pc_dma_hrq_changed ); + DECLARE_WRITE_LINE_MEMBER( pc_dma8237_out_eop ); + uint8_t pc_dma_read_byte(offs_t offset); + void pc_dma_write_byte(offs_t offset, uint8_t data); + uint8_t pc_dma8237_1_dack_r(); + uint8_t pc_dma8237_2_dack_r(); + uint8_t pc_dma8237_3_dack_r(); + void pc_dma8237_1_dack_w(uint8_t data); + void pc_dma8237_2_dack_w(uint8_t data); + void pc_dma8237_3_dack_w(uint8_t data); + void pc_dma8237_0_dack_w(uint8_t data); + DECLARE_WRITE_LINE_MEMBER( pc_dack0_w ); + DECLARE_WRITE_LINE_MEMBER( pc_dack1_w ); + DECLARE_WRITE_LINE_MEMBER( pc_dack2_w ); + DECLARE_WRITE_LINE_MEMBER( pc_dack3_w ); + + uint8_t kbd_6502_r(offs_t offset); + void kbd_6502_w(offs_t offset, uint8_t data); + + [[maybe_unused]] DECLARE_WRITE_LINE_MEMBER( pc_speaker_set_spkrdata ); // TODO: hook up to something? + + void pc_page_w(offs_t offset, uint8_t data); + void nmi_enable_w(uint8_t data); + [[maybe_unused]] DECLARE_WRITE_LINE_MEMBER(iochck_w); // TODO: hook up to something? + + void pc_select_dma_channel(int channel, bool state); + + void pc_io(address_map &map); + void pc_map(address_map &map); +}; void a2bus_pcxporter_device::pc_map(address_map &map) { @@ -641,3 +742,12 @@ WRITE_LINE_MEMBER( a2bus_pcxporter_device::iochck_w ) if (m_nmi_enabled && !state) m_v30->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_PCXPORTER, device_a2bus_card_interface, a2bus_pcxporter_device, "a2pcxport", "Applied Engineering PC Transporter") diff --git a/src/devices/bus/a2bus/pc_xporter.h b/src/devices/bus/a2bus/pc_xporter.h index 58efa1a0d3d..d765c4d1bb2 100644 --- a/src/devices/bus/a2bus/pc_xporter.h +++ b/src/devices/bus/a2bus/pc_xporter.h @@ -14,114 +14,8 @@ #pragma once #include "a2bus.h" -#include "cpu/nec/nec.h" -#include "bus/pc_kbd/keyboards.h" -#include "machine/ins8250.h" -#include "machine/i8255.h" -#include "machine/am9517a.h" -#include "bus/isa/isa.h" -#include "bus/isa/isa_cards.h" -#include "bus/pc_kbd/pc_kbdc.h" -#include "machine/pic8259.h" -#include "machine/pit8253.h" -#include "sound/spkrdev.h" -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_pcxporter_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_pcxporter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - uint16_t pc_bios_r(offs_t offset); - -protected: - a2bus_pcxporter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - virtual uint8_t read_cnxx(uint8_t offset) override; - virtual void write_cnxx(uint8_t offset, uint8_t data) override; - virtual uint8_t read_c800(uint16_t offset) override; - virtual void write_c800(uint16_t offset, uint8_t data) override; - -private: - required_device<v30_device> m_v30; - required_device<pic8259_device> m_pic8259; - required_device<am9517a_device> m_dma8237; - required_device<pit8253_device> m_pit8253; - required_device<speaker_sound_device> m_speaker; - required_device<isa8_device> m_isabus; - optional_device<pc_kbdc_device> m_pc_kbdc; - - uint8_t m_u73_q2; - uint8_t m_out1; - int m_dma_channel; - uint8_t m_dma_offset[4]; - uint8_t m_pc_spkrdata; - uint8_t m_pit_out2; - bool m_cur_eop; - - uint8_t m_nmi_enabled; - - uint8_t m_ram[768*1024]; - uint8_t m_c800_ram[0x400]; - uint8_t m_regs[0x400]; - uint32_t m_offset; - address_space *m_pcmem_space, *m_pcio_space; - bool m_reset_during_halt; - - uint8_t m_6845_reg; - - // interface to the keyboard - DECLARE_WRITE_LINE_MEMBER( keyboard_clock_w ); - DECLARE_WRITE_LINE_MEMBER( keyboard_data_w ); - - DECLARE_WRITE_LINE_MEMBER( pc_pit8253_out1_changed ); - DECLARE_WRITE_LINE_MEMBER( pc_pit8253_out2_changed ); - - DECLARE_WRITE_LINE_MEMBER( pc_dma_hrq_changed ); - DECLARE_WRITE_LINE_MEMBER( pc_dma8237_out_eop ); - uint8_t pc_dma_read_byte(offs_t offset); - void pc_dma_write_byte(offs_t offset, uint8_t data); - uint8_t pc_dma8237_1_dack_r(); - uint8_t pc_dma8237_2_dack_r(); - uint8_t pc_dma8237_3_dack_r(); - void pc_dma8237_1_dack_w(uint8_t data); - void pc_dma8237_2_dack_w(uint8_t data); - void pc_dma8237_3_dack_w(uint8_t data); - void pc_dma8237_0_dack_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER( pc_dack0_w ); - DECLARE_WRITE_LINE_MEMBER( pc_dack1_w ); - DECLARE_WRITE_LINE_MEMBER( pc_dack2_w ); - DECLARE_WRITE_LINE_MEMBER( pc_dack3_w ); - - uint8_t kbd_6502_r(offs_t offset); - void kbd_6502_w(offs_t offset, uint8_t data); - - DECLARE_WRITE_LINE_MEMBER( pc_speaker_set_spkrdata ); - - void pc_page_w(offs_t offset, uint8_t data); - void nmi_enable_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER(iochck_w); - - void pc_select_dma_channel(int channel, bool state); - - void pc_io(address_map &map); - void pc_map(address_map &map); -}; - -// device type definition -DECLARE_DEVICE_TYPE(A2BUS_PCXPORTER, a2bus_pcxporter_device) +// device type declaration +DECLARE_DEVICE_TYPE(A2BUS_PCXPORTER, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_PC_XPORTER_H diff --git a/src/devices/bus/a2bus/ssbapple.cpp b/src/devices/bus/a2bus/ssbapple.cpp index 89165617867..c4ad0f7684b 100644 --- a/src/devices/bus/a2bus/ssbapple.cpp +++ b/src/devices/bus/a2bus/ssbapple.cpp @@ -11,20 +11,47 @@ #include "emu.h" #include "ssbapple.h" + #include "sound/tms5220.h" + #include "speaker.h" + +namespace { + /*************************************************************************** PARAMETERS ***************************************************************************/ +#define TMS_TAG "tms5220" + //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_SSBAPPLE, a2bus_ssb_device, "a2ssbapl", "Multitech Industrial SSB Apple speech card") +class a2bus_ssb_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_ssb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + static constexpr feature_type imperfect_features() { return feature::SOUND; } -#define TMS_TAG "tms5220" + required_device<tms5220_device> m_tms; + +protected: + a2bus_ssb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_cnxx(uint8_t offset) override; + virtual void write_cnxx(uint8_t offset, uint8_t data) override; + virtual bool take_c800() override; +}; /*************************************************************************** FUNCTION PROTOTYPES @@ -85,3 +112,12 @@ void a2bus_ssb_device::write_cnxx(uint8_t offset, uint8_t data) { m_tms->data_w(data); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_SSBAPPLE, device_a2bus_card_interface, a2bus_ssb_device, "a2ssbapl", "Multitech Industrial SSB Apple speech card") diff --git a/src/devices/bus/a2bus/ssbapple.h b/src/devices/bus/a2bus/ssbapple.h index def0db3c9d4..82559a7e5dd 100644 --- a/src/devices/bus/a2bus/ssbapple.h +++ b/src/devices/bus/a2bus/ssbapple.h @@ -14,37 +14,8 @@ #pragma once #include "a2bus.h" -#include "sound/tms5220.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_ssb_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_ssb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static constexpr feature_type imperfect_features() { return feature::SOUND; } - - required_device<tms5220_device> m_tms; - -protected: - a2bus_ssb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_cnxx(uint8_t offset) override; - virtual void write_cnxx(uint8_t offset, uint8_t data) override; - virtual bool take_c800() override; -}; - -// device type definition -DECLARE_DEVICE_TYPE(A2BUS_SSBAPPLE, a2bus_ssb_device) + +// device type declaration +DECLARE_DEVICE_TYPE(A2BUS_SSBAPPLE, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_A2SSBAPPLE_H diff --git a/src/devices/bus/a2bus/ssprite.cpp b/src/devices/bus/a2bus/ssprite.cpp index 69e12dc98dd..2fdecb117c9 100644 --- a/src/devices/bus/a2bus/ssprite.cpp +++ b/src/devices/bus/a2bus/ssprite.cpp @@ -10,10 +10,16 @@ #include "emu.h" #include "ssprite.h" + +#include "sound/ay8910.h" #include "sound/tms5220.h" +#include "video/tms9928a.h" + #include "speaker.h" +namespace { + /*************************************************************************** PARAMETERS ***************************************************************************/ @@ -24,10 +30,35 @@ #define SCREEN_TAG "screen" //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_SSPRITE, a2bus_ssprite_device, "a2ssprite", "Synetix SuperSprite") +class a2bus_ssprite_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_ssprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_ssprite_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + +private: + DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); + + required_device<tms9918a_device> m_tms; + required_device<ay8910_device> m_ay; + required_device<tms5220_device> m_tms5220; +}; //------------------------------------------------- // device_add_mconfig - add device configuration @@ -141,3 +172,12 @@ WRITE_LINE_MEMBER( a2bus_ssprite_device::tms_irq_w ) else lower_slot_irq(); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_SSPRITE, device_a2bus_card_interface, a2bus_ssprite_device, "a2ssprite", "Synetix SuperSprite") diff --git a/src/devices/bus/a2bus/ssprite.h b/src/devices/bus/a2bus/ssprite.h index 590e172445c..a87d0361a94 100644 --- a/src/devices/bus/a2bus/ssprite.h +++ b/src/devices/bus/a2bus/ssprite.h @@ -15,42 +15,8 @@ #pragma once #include "a2bus.h" -#include "video/tms9928a.h" -#include "sound/ay8910.h" -#include "sound/tms5220.h" - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_ssprite_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_ssprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_ssprite_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - - // overrides of standard a2bus slot functions - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - -private: - DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); - - required_device<tms9918a_device> m_tms; - required_device<ay8910_device> m_ay; - required_device<tms5220_device> m_tms5220; -}; // device type definition -DECLARE_DEVICE_TYPE(A2BUS_SSPRITE, a2bus_ssprite_device) +DECLARE_DEVICE_TYPE(A2BUS_SSPRITE, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_SSPRITE_H diff --git a/src/devices/bus/a2bus/uthernet.cpp b/src/devices/bus/a2bus/uthernet.cpp index d9bfd7e9414..6f3a8d21b47 100644 --- a/src/devices/bus/a2bus/uthernet.cpp +++ b/src/devices/bus/a2bus/uthernet.cpp @@ -11,64 +11,57 @@ #include "emu.h" #include "uthernet.h" -/*************************************************************************** - PARAMETERS -***************************************************************************/ +#include "machine/cs8900a.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(A2BUS_UTHERNET, a2bus_uthernet_device, "a2uthernet", "a2RetroSystems Uthernet") +namespace { //************************************************************************** -// LIVE DEVICE +// TYPE DEFINITIONS //************************************************************************** -a2bus_uthernet_device::a2bus_uthernet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_uthernet_device(mconfig, A2BUS_UTHERNET, tag, owner, clock) +class a2bus_uthernet_device: + public device_t, + public device_a2bus_card_interface { -} +public: + // construction/destruction + a2bus_uthernet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + a2bus_uthernet_device(mconfig, A2BUS_UTHERNET, tag, owner, clock) + { + } -a2bus_uthernet_device::a2bus_uthernet_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : +protected: + a2bus_uthernet_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_netinf(*this, "cs8900a") -{ -} + { + } -void a2bus_uthernet_device::device_add_mconfig(machine_config &config) -{ - CS8900A(config, m_netinf, 20_MHz_XTAL); // see CS8900A data sheet sec 3.13 -} + virtual void device_add_mconfig(machine_config &config) override + { + CS8900A(config, m_netinf, 20_MHz_XTAL); // see CS8900A data sheet sec 3.13 + } -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- + virtual void device_start() override { } + virtual void device_reset() override { } -void a2bus_uthernet_device::device_start() -{ -} + // read_c0nx - called for reads from this card's c0nx space + virtual uint8_t read_c0nx(uint8_t offset) override { return m_netinf->read(offset); } -void a2bus_uthernet_device::device_reset() -{ -} + // write_c0nx - called for writes to this card's c0nx space + virtual void write_c0nx(uint8_t offset, uint8_t data) override { m_netinf->write(offset,data); } -/*------------------------------------------------- - read_c0nx - called for reads from this card's c0nx space --------------------------------------------------*/ +private: + required_device<cs8900a_device> m_netinf; -uint8_t a2bus_uthernet_device::read_c0nx(uint8_t offset) -{ - return m_netinf->read(offset); -} +}; -/*------------------------------------------------- - write_c0nx - called for writes to this card's c0nx space --------------------------------------------------*/ +} // anonymous namespace -void a2bus_uthernet_device::write_c0nx(uint8_t offset, uint8_t data) -{ - m_netinf->write(offset,data); -} +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_UTHERNET, device_a2bus_card_interface, a2bus_uthernet_device, "a2uthernet", "a2RetroSystems Uthernet") diff --git a/src/devices/bus/a2bus/uthernet.h b/src/devices/bus/a2bus/uthernet.h index 8e64e53ab38..438ee5a9083 100644 --- a/src/devices/bus/a2bus/uthernet.h +++ b/src/devices/bus/a2bus/uthernet.h @@ -12,36 +12,8 @@ #define MAME_BUS_A2BUS_UTHERNET_H #include "a2bus.h" -#include "machine/cs8900a.h" -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_uthernet_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_uthernet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_uthernet_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_add_mconfig(machine_config &config) override; - - virtual void device_start() override; - virtual void device_reset() override; - - virtual uint8_t read_c0nx(uint8_t offset) override; - virtual void write_c0nx(uint8_t offset, uint8_t data) override; - -private: - required_device<cs8900a_device> m_netinf; - -}; - -// device type definition -DECLARE_DEVICE_TYPE(A2BUS_UTHERNET, a2bus_uthernet_device) +// device type declaration +DECLARE_DEVICE_TYPE(A2BUS_UTHERNET, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_UTHERNET_H diff --git a/src/devices/bus/a2gameio/computereyes.cpp b/src/devices/bus/a2gameio/computereyes.cpp index af597361c8e..38b100586e4 100644 --- a/src/devices/bus/a2gameio/computereyes.cpp +++ b/src/devices/bus/a2gameio/computereyes.cpp @@ -9,12 +9,40 @@ #include "emu.h" #include "bus/a2gameio/computereyes.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** +#include "imagedev/picture.h" -// device type definition -DEFINE_DEVICE_TYPE(APPLE2_COMPUTEREYES, apple2_compeyes_device, "a2ceyes", "Digital Vision ComputerEyes") +#include "bitmap.h" + + +namespace { + +// ======================> apple2_compeyes_device + +class apple2_compeyes_device : public device_t, public device_a2gameio_interface +{ +public: + // construction/destruction + apple2_compeyes_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual void device_reset() override; + + // device_a2gameio_interface overrides + virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; + virtual DECLARE_WRITE_LINE_MEMBER(an0_w) override; + virtual DECLARE_WRITE_LINE_MEMBER(an1_w) override; + virtual DECLARE_WRITE_LINE_MEMBER(an2_w) override; + virtual DECLARE_WRITE_LINE_MEMBER(an3_w) override; + +private: + required_device<picture_image_device> m_picture; + int m_x, m_y, m_an1, m_an2, m_an3, m_level; + u8 m_a2_bitmap[280*192]; +}; //************************************************************************** // DEVICE IMPLEMENTATION @@ -120,3 +148,13 @@ WRITE_LINE_MEMBER(apple2_compeyes_device::an3_w) m_an3 = state; m_level = (128 * m_an2) + (64 * m_an1) + (32 * m_an3); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE_PRIVATE(APPLE2_COMPUTEREYES, device_a2gameio_interface, apple2_compeyes_device, "a2ceyes", "Digital Vision ComputerEyes") diff --git a/src/devices/bus/a2gameio/computereyes.h b/src/devices/bus/a2gameio/computereyes.h index 9445ce4df25..a95742fe919 100644 --- a/src/devices/bus/a2gameio/computereyes.h +++ b/src/devices/bus/a2gameio/computereyes.h @@ -12,38 +12,8 @@ #pragma once #include "bus/a2gameio/gameio.h" -#include "bitmap.h" -#include "imagedev/picture.h" - -// ======================> apple2_compeyes_device - -class apple2_compeyes_device : public device_t, public device_a2gameio_interface -{ -public: - // construction/destruction - apple2_compeyes_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual void device_add_mconfig(machine_config &config) override; - virtual void device_start() override; - virtual void device_reset() override; - - // device_a2gameio_interface overrides - virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; - virtual DECLARE_WRITE_LINE_MEMBER(an0_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(an1_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(an2_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(an3_w) override; - -private: - required_device<picture_image_device> m_picture; - int m_x, m_y, m_an1, m_an2, m_an3, m_level; - u8 m_a2_bitmap[280*192]; -}; // device type declaration -DECLARE_DEVICE_TYPE(APPLE2_COMPUTEREYES, apple2_compeyes_device) +DECLARE_DEVICE_TYPE(APPLE2_COMPUTEREYES, device_a2gameio_interface) #endif // MAME_BUS_A2GAMEIO_COMPEYES_H diff --git a/src/devices/bus/a2gameio/gizmo.cpp b/src/devices/bus/a2gameio/gizmo.cpp index 3fc87c20688..999fdf94ded 100644 --- a/src/devices/bus/a2gameio/gizmo.cpp +++ b/src/devices/bus/a2gameio/gizmo.cpp @@ -10,12 +10,33 @@ #include "emu.h" #include "bus/a2gameio/gizmo.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** -// device type definition -DEFINE_DEVICE_TYPE(APPLE2_GIZMO, apple2_gizmo_device, "a2gizmo", "HAL Labs Gizmo") +namespace { + +// ======================> apple2_gizmo_device + +class apple2_gizmo_device : public device_t, public device_a2gameio_interface +{ +public: + // construction/destruction + apple2_gizmo_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override; + + // device_a2gameio_interface overrides + virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; + virtual DECLARE_WRITE_LINE_MEMBER(an0_w) override; + virtual DECLARE_WRITE_LINE_MEMBER(an1_w) override; + virtual DECLARE_WRITE_LINE_MEMBER(an2_w) override; + +private: + // input ports + required_ioport m_player1; + int m_an0, m_an1, m_an2; +}; //************************************************************************** // INPUT PORTS @@ -73,3 +94,13 @@ WRITE_LINE_MEMBER(apple2_gizmo_device::an2_w) { m_an2 = state; } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE_PRIVATE(APPLE2_GIZMO, device_a2gameio_interface, apple2_gizmo_device, "a2gizmo", "HAL Labs Gizmo") diff --git a/src/devices/bus/a2gameio/gizmo.h b/src/devices/bus/a2gameio/gizmo.h index 8f451992222..c304b39a6e9 100644 --- a/src/devices/bus/a2gameio/gizmo.h +++ b/src/devices/bus/a2gameio/gizmo.h @@ -14,32 +14,7 @@ #include "bus/a2gameio/gameio.h" -// ======================> apple2_gizmo_device - -class apple2_gizmo_device : public device_t, public device_a2gameio_interface -{ -public: - // construction/destruction - apple2_gizmo_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - - // device_a2gameio_interface overrides - virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; - virtual DECLARE_WRITE_LINE_MEMBER(an0_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(an1_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(an2_w) override; - -private: - // input ports - required_ioport m_player1; - int m_an0, m_an1, m_an2; -}; - // device type declaration -DECLARE_DEVICE_TYPE(APPLE2_GIZMO, apple2_gizmo_device) +DECLARE_DEVICE_TYPE(APPLE2_GIZMO, device_a2gameio_interface) #endif // MAME_BUS_A2GAMEIO_GIZMO_H diff --git a/src/devices/bus/a2gameio/joyport.cpp b/src/devices/bus/a2gameio/joyport.cpp index 9ed05796447..1c2f1118216 100644 --- a/src/devices/bus/a2gameio/joyport.cpp +++ b/src/devices/bus/a2gameio/joyport.cpp @@ -16,20 +16,34 @@ #include "emu.h" #include "bus/a2gameio/joyport.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** -// device type definition -DEFINE_DEVICE_TYPE(APPLE2_JOYPORT, apple2_joyport_device, "a2joyprt", "Sirius JoyPort") +namespace { -//************************************************************************** -// PARAMETERS -//************************************************************************** +// ======================> apple2_joyport_device -#define JOYSTICK_DELTA 80 -#define JOYSTICK_SENSITIVITY 50 -#define JOYSTICK_AUTOCENTER 80 +class apple2_joyport_device : public device_t, public device_a2gameio_interface +{ +public: + // construction/destruction + apple2_joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override; + + // device_a2gameio_interface overrides + virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw2_r) override; + virtual DECLARE_WRITE_LINE_MEMBER(an0_w) override; + virtual DECLARE_WRITE_LINE_MEMBER(an1_w) override; + +private: + // input ports + required_ioport m_player1, m_player2; + int m_an0, m_an1; +}; //************************************************************************** // INPUT PORTS @@ -104,3 +118,13 @@ WRITE_LINE_MEMBER(apple2_joyport_device::an1_w) { m_an1 = state; } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE_PRIVATE(APPLE2_JOYPORT, device_a2gameio_interface, apple2_joyport_device, "a2joyprt", "Sirius JoyPort") diff --git a/src/devices/bus/a2gameio/joyport.h b/src/devices/bus/a2gameio/joyport.h index 0e1b9e1a8dd..c6cb526c211 100644 --- a/src/devices/bus/a2gameio/joyport.h +++ b/src/devices/bus/a2gameio/joyport.h @@ -13,33 +13,7 @@ #include "bus/a2gameio/gameio.h" -// ======================> apple2_joyport_device - -class apple2_joyport_device : public device_t, public device_a2gameio_interface -{ -public: - // construction/destruction - apple2_joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - - // device_a2gameio_interface overrides - virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw2_r) override; - virtual DECLARE_WRITE_LINE_MEMBER(an0_w) override; - virtual DECLARE_WRITE_LINE_MEMBER(an1_w) override; - -private: - // input ports - required_ioport m_player1, m_player2; - int m_an0, m_an1; -}; - // device type declaration -DECLARE_DEVICE_TYPE(APPLE2_JOYPORT, apple2_joyport_device) +DECLARE_DEVICE_TYPE(APPLE2_JOYPORT, device_a2gameio_interface) #endif // MAME_BUS_A2GAMEIO_JOYPORT_H diff --git a/src/devices/bus/a2gameio/joystick.cpp b/src/devices/bus/a2gameio/joystick.cpp index 1d69e6c5dfa..9ed2a9555ba 100644 --- a/src/devices/bus/a2gameio/joystick.cpp +++ b/src/devices/bus/a2gameio/joystick.cpp @@ -9,12 +9,37 @@ #include "emu.h" #include "bus/a2gameio/joystick.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** +namespace { -// device type definition -DEFINE_DEVICE_TYPE(APPLE2_JOYSTICK, apple2_joystick_device, "a2joy", "Apple II analog joysticks") +// ======================> apple2_joystick_device + +class apple2_joystick_device : public device_t, public device_a2gameio_interface +{ +public: + // construction/destruction + apple2_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override; + + // device_a2gameio_interface overrides + virtual u8 pdl0_r() override; + virtual u8 pdl1_r() override; + virtual u8 pdl2_r() override; + virtual u8 pdl3_r() override; + virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw2_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw3_r) override; + +private: + // input ports + required_ioport_array<2> m_joy_x; + required_ioport_array<2> m_joy_y; + required_ioport m_buttons; +}; //************************************************************************** // PARAMETERS @@ -131,3 +156,13 @@ READ_LINE_MEMBER(apple2_joystick_device::sw3_r) { return BIT(m_buttons->read(), 7); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE_PRIVATE(APPLE2_JOYSTICK, device_a2gameio_interface, apple2_joystick_device, "a2joy", "Apple II analog joysticks") diff --git a/src/devices/bus/a2gameio/joystick.h b/src/devices/bus/a2gameio/joystick.h index 59969c0c1b3..b42a91318e7 100644 --- a/src/devices/bus/a2gameio/joystick.h +++ b/src/devices/bus/a2gameio/joystick.h @@ -13,37 +13,7 @@ #include "bus/a2gameio/gameio.h" -// ======================> apple2_joystick_device - -class apple2_joystick_device : public device_t, public device_a2gameio_interface -{ -public: - // construction/destruction - apple2_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - - // device_a2gameio_interface overrides - virtual u8 pdl0_r() override; - virtual u8 pdl1_r() override; - virtual u8 pdl2_r() override; - virtual u8 pdl3_r() override; - virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw2_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw3_r) override; - -private: - // input ports - required_ioport_array<2> m_joy_x; - required_ioport_array<2> m_joy_y; - required_ioport m_buttons; -}; - // device type declaration -DECLARE_DEVICE_TYPE(APPLE2_JOYSTICK, apple2_joystick_device) +DECLARE_DEVICE_TYPE(APPLE2_JOYSTICK, device_a2gameio_interface) #endif // MAME_BUS_A2GAMEIO_JOYSTICK_H diff --git a/src/devices/bus/a2gameio/paddles.cpp b/src/devices/bus/a2gameio/paddles.cpp index 95d0199a210..5f0955fba89 100644 --- a/src/devices/bus/a2gameio/paddles.cpp +++ b/src/devices/bus/a2gameio/paddles.cpp @@ -9,12 +9,36 @@ #include "emu.h" #include "bus/a2gameio/paddles.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** +namespace { -// device type definition -DEFINE_DEVICE_TYPE(APPLE2_PADDLES, apple2_paddles_device, "a2pdls", "Apple II paddles") +// ======================> apple2_paddles_device + +class apple2_paddles_device : public device_t, public device_a2gameio_interface +{ +public: + // construction/destruction + apple2_paddles_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override; + + // device_a2gameio_interface overrides + virtual u8 pdl0_r() override; + virtual u8 pdl1_r() override; + virtual u8 pdl2_r() override; + virtual u8 pdl3_r() override; + virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw2_r) override; + virtual DECLARE_READ_LINE_MEMBER(sw3_r) override; + +private: + // input ports + required_ioport_array<4> m_pdl; + required_ioport m_buttons; +}; //************************************************************************** // INPUT PORTS @@ -100,3 +124,13 @@ READ_LINE_MEMBER(apple2_paddles_device::sw3_r) { return BIT(m_buttons->read(), 7); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE_PRIVATE(APPLE2_PADDLES, device_a2gameio_interface, apple2_paddles_device, "a2pdls", "Apple II paddles") diff --git a/src/devices/bus/a2gameio/paddles.h b/src/devices/bus/a2gameio/paddles.h index 3cff10dd097..b9d91918c91 100644 --- a/src/devices/bus/a2gameio/paddles.h +++ b/src/devices/bus/a2gameio/paddles.h @@ -13,36 +13,7 @@ #include "bus/a2gameio/gameio.h" -// ======================> apple2_paddles_device - -class apple2_paddles_device : public device_t, public device_a2gameio_interface -{ -public: - // construction/destruction - apple2_paddles_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - - // device_a2gameio_interface overrides - virtual u8 pdl0_r() override; - virtual u8 pdl1_r() override; - virtual u8 pdl2_r() override; - virtual u8 pdl3_r() override; - virtual DECLARE_READ_LINE_MEMBER(sw0_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw1_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw2_r) override; - virtual DECLARE_READ_LINE_MEMBER(sw3_r) override; - -private: - // input ports - required_ioport_array<4> m_pdl; - required_ioport m_buttons; -}; - // device type declaration -DECLARE_DEVICE_TYPE(APPLE2_PADDLES, apple2_paddles_device) +DECLARE_DEVICE_TYPE(APPLE2_PADDLES, device_a2gameio_interface) #endif // MAME_BUS_A2GAMEIO_PADDLES_H diff --git a/src/devices/bus/rs232/patchbox.cpp b/src/devices/bus/rs232/patchbox.cpp index eaa89a077f7..ccd16f2867e 100644 --- a/src/devices/bus/rs232/patchbox.cpp +++ b/src/devices/bus/rs232/patchbox.cpp @@ -137,22 +137,26 @@ private: template <ioport_value Signal> DECLARE_WRITE_LINE_MEMBER( signal_in ) { - m_signals[Signal] = state ? 1 : 0; - - if (Signal == m_sources[RXD]) output_rxd(m_signals[Signal] ^ m_invert[RXD]); - if (Signal == m_sources[DCD]) output_dcd(m_signals[Signal] ^ m_invert[DCD]); - if (Signal == m_sources[DSR]) output_dsr(m_signals[Signal] ^ m_invert[DSR]); - if (Signal == m_sources[RI]) output_ri(m_signals[Signal] ^ m_invert[RI]); - if (Signal == m_sources[SI]) output_si(m_signals[Signal] ^ m_invert[SI]); - if (Signal == m_sources[CTS]) output_cts(m_signals[Signal] ^ m_invert[CTS]); - if (Signal == m_sources[RXC]) output_rxc(m_signals[Signal] ^ m_invert[RXC]); - if (Signal == m_sources[TXC]) output_txc(m_signals[Signal] ^ m_invert[TXC]); - - if (Signal == m_sources[TXD]) m_dce_port->write_txd(m_signals[Signal] ^ m_invert[TXD]); - if (Signal == m_sources[DTR]) m_dce_port->write_dtr(m_signals[Signal] ^ m_invert[DTR]); - if (Signal == m_sources[RTS]) m_dce_port->write_rts(m_signals[Signal] ^ m_invert[RTS]); - if (Signal == m_sources[ETC]) m_dce_port->write_etc(m_signals[Signal] ^ m_invert[ETC]); - if (Signal == m_sources[SPDS]) m_dce_port->write_spds(m_signals[Signal] ^ m_invert[SPDS]); + state = state ? 1 : 0; + if (m_signals[Signal] != state) + { + m_signals[Signal] = state; + + if (Signal == m_sources[RXD]) output_rxd(state ^ m_invert[RXD]); + if (Signal == m_sources[DCD]) output_dcd(state ^ m_invert[DCD]); + if (Signal == m_sources[DSR]) output_dsr(state ^ m_invert[DSR]); + if (Signal == m_sources[RI]) output_ri(state ^ m_invert[RI]); + if (Signal == m_sources[SI]) output_si(state ^ m_invert[SI]); + if (Signal == m_sources[CTS]) output_cts(state ^ m_invert[CTS]); + if (Signal == m_sources[RXC]) output_rxc(state ^ m_invert[RXC]); + if (Signal == m_sources[TXC]) output_txc(state ^ m_invert[TXC]); + + if (Signal == m_sources[TXD]) m_dce_port->write_txd(state ^ m_invert[TXD]); + if (Signal == m_sources[DTR]) m_dce_port->write_dtr(state ^ m_invert[DTR]); + if (Signal == m_sources[RTS]) m_dce_port->write_rts(state ^ m_invert[RTS]); + if (Signal == m_sources[ETC]) m_dce_port->write_etc(state ^ m_invert[ETC]); + if (Signal == m_sources[SPDS]) m_dce_port->write_spds(state ^ m_invert[SPDS]); + } } required_device<rs232_port_device> m_dce_port; diff --git a/src/devices/sound/tt5665.cpp b/src/devices/sound/tt5665.cpp index 680b344e600..2fd7c4f0e85 100644 --- a/src/devices/sound/tt5665.cpp +++ b/src/devices/sound/tt5665.cpp @@ -312,8 +312,7 @@ u8 tt5665_device::read(offs_t offset) void tt5665_device::write(offs_t offset, u8 data) { const u8 ch = offset & 1; - // if a command is pending, process the second half - if (m_command[ch] != -1) + if (m_command[ch] != -1) // if a command is pending, process the second half { // the chip can only play one voice at a time, but has extra phrase spaces. that's are main difference from MSM 6295. const int voicemask = (data >> 4) & 3; @@ -353,10 +352,9 @@ void tt5665_device::write(offs_t offset, u8 data) voice.m_adpcm.reset(); voice.m_volume = s_volume_table[data & 0x0f]; } - - // invalid samples go here else { + // invalid samples go here logerror("Requested to play invalid sample %04x\n", sample_ind); } } @@ -368,13 +366,11 @@ void tt5665_device::write(offs_t offset, u8 data) // reset the command m_command[ch] = -1; } - - // if this is the start of a command, remember the sample number for next time - else if (data & 0x80) + else if (data & 0x80) // if this is the start of a command, remember the sample number for next time + { m_command[ch] = data & 0x7f; - - // otherwise, see if this is a silence command - else + } + else // otherwise, see if this is a silence command { // update the stream, then turn it off m_stream->update(); |