summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mc68681.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mc68681.h')
-rw-r--r--src/devices/machine/mc68681.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/devices/machine/mc68681.h b/src/devices/machine/mc68681.h
index d1f9d3c96d6..47e15e3c318 100644
--- a/src/devices/machine/mc68681.h
+++ b/src/devices/machine/mc68681.h
@@ -41,6 +41,10 @@
#define MCFG_SC28C94_D_TX_CALLBACK(_cb) \
devcb = &sc28c94_device::set_d_tx_cb(*device, DEVCB_##_cb);
+// M68340SERIAL specific callbacks
+#define MCFG_M68340SERIAL_ADD(_tag, _clock) \
+ MCFG_DEVICE_ADD(_tag, M68340SERIAL, _clock)
+
#define MC68681_RX_FIFO_SIZE 3
// forward declaration
@@ -71,6 +75,12 @@ public:
uint8_t get_chan_CSR();
+ // Access methods needed for 68340 serial module register model
+ uint8_t read_MR1(){ return MR1; }
+ uint8_t read_MR2(){ return MR2; }
+ void write_MR1(uint8_t data){ MR1 = data; }
+ void write_MR2(uint8_t data){ MR2 = data; }
+
private:
/* Registers */
uint8_t CR; /* Command register */
@@ -230,8 +240,23 @@ protected:
private:
};
+class m68340_serial_device : public mc68681_base_device
+{
+public:
+ m68340_serial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ virtual DECLARE_READ8_MEMBER(read) override;
+ virtual DECLARE_WRITE8_MEMBER(write) override;
+
+protected:
+ virtual void device_add_mconfig(machine_config &config) override;
+
+private:
+};
+
DECLARE_DEVICE_TYPE(MC68681, mc68681_device)
DECLARE_DEVICE_TYPE(SC28C94, sc28c94_device)
+DECLARE_DEVICE_TYPE(M68340SERIAL, m68340_serial_device)
DECLARE_DEVICE_TYPE(MC68681_CHANNEL, mc68681_channel)
#endif // MAME_MACHINE_MC68681_H