summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/camerica.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/camerica.h')
-rw-r--r--src/devices/bus/nes/camerica.h35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/devices/bus/nes/camerica.h b/src/devices/bus/nes/camerica.h
index 7688249a64c..0c2c2487361 100644
--- a/src/devices/bus/nes/camerica.h
+++ b/src/devices/bus/nes/camerica.h
@@ -14,15 +14,11 @@ class nes_bf9093_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_bf9093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_bf9093_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
-
-protected:
- // device-level overrides
- virtual void device_start() override;
};
@@ -32,19 +28,31 @@ class nes_bf9096_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_bf9096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_bf9096_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
- virtual void write_m(offs_t offset, uint8_t data) override { write_h(offset, data); }
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
protected:
+ nes_bf9096_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, bool page_swap);
+
// device-level overrides
virtual void device_start() override;
private:
- uint8_t m_bank_base, m_latch;
+ u8 m_reg;
+ const bool m_page_swap;
+};
+
+
+// ======================> nes_bf9096a_device
+
+class nes_bf9096a_device : public nes_bf9096_device
+{
+public:
+ // construction/destruction
+ nes_bf9096a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
@@ -54,9 +62,9 @@ class nes_golden5_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_golden5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_golden5_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
@@ -65,13 +73,14 @@ protected:
virtual void device_start() override;
private:
- uint8_t m_bank_base, m_latch;
+ u8 m_lock, m_reg;
};
// device type definition
DECLARE_DEVICE_TYPE(NES_BF9093, nes_bf9093_device)
DECLARE_DEVICE_TYPE(NES_BF9096, nes_bf9096_device)
+DECLARE_DEVICE_TYPE(NES_BF9096A, nes_bf9096a_device)
DECLARE_DEVICE_TYPE(NES_GOLDEN5, nes_golden5_device)
#endif // MAME_BUS_NES_CAMERICA_H