summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
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
commit2f42632ae518d26ad62f753816d9ab6445f08cb1 (patch)
treec7f96a0b4cfc4d6335f73ae3ca66fda6c12667a8 /src/devices
parent6de437c2cb43a70bd99befb4fcfa71ed758ce6a9 (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')
-rw-r--r--src/devices/bus/a2bus/a2arcadebd.cpp43
-rw-r--r--src/devices/bus/a2bus/a2arcadebd.h36
-rw-r--r--src/devices/bus/a2bus/a2echoii.cpp45
-rw-r--r--src/devices/bus/a2bus/a2echoii.h41
-rw-r--r--src/devices/bus/a2bus/a2mockingboard.cpp127
-rw-r--r--src/devices/bus/a2bus/a2mockingboard.h118
-rw-r--r--src/devices/bus/a2bus/computereyes2.cpp47
-rw-r--r--src/devices/bus/a2bus/computereyes2.h39
-rw-r--r--src/devices/bus/a2bus/ezcgi.cpp95
-rw-r--r--src/devices/bus/a2bus/ezcgi.h87
-rw-r--r--src/devices/bus/a2bus/lancegs.cpp47
-rw-r--r--src/devices/bus/a2bus/lancegs.h35
-rw-r--r--src/devices/bus/a2bus/pc_xporter.cpp120
-rw-r--r--src/devices/bus/a2bus/pc_xporter.h110
-rw-r--r--src/devices/bus/a2bus/ssbapple.cpp42
-rw-r--r--src/devices/bus/a2bus/ssbapple.h35
-rw-r--r--src/devices/bus/a2bus/ssprite.cpp44
-rw-r--r--src/devices/bus/a2bus/ssprite.h36
-rw-r--r--src/devices/bus/a2bus/uthernet.cpp77
-rw-r--r--src/devices/bus/a2bus/uthernet.h32
-rw-r--r--src/devices/bus/a2gameio/computereyes.cpp48
-rw-r--r--src/devices/bus/a2gameio/computereyes.h32
-rw-r--r--src/devices/bus/a2gameio/gizmo.cpp41
-rw-r--r--src/devices/bus/a2gameio/gizmo.h27
-rw-r--r--src/devices/bus/a2gameio/joyport.cpp46
-rw-r--r--src/devices/bus/a2gameio/joyport.h28
-rw-r--r--src/devices/bus/a2gameio/joystick.cpp45
-rw-r--r--src/devices/bus/a2gameio/joystick.h32
-rw-r--r--src/devices/bus/a2gameio/paddles.cpp44
-rw-r--r--src/devices/bus/a2gameio/paddles.h31
-rw-r--r--src/devices/bus/rs232/patchbox.cpp36
-rw-r--r--src/devices/sound/tt5665.cpp16
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();