summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/odyssey2/rom.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/odyssey2/rom.h')
-rw-r--r--src/devices/bus/odyssey2/rom.h50
1 files changed, 14 insertions, 36 deletions
diff --git a/src/devices/bus/odyssey2/rom.h b/src/devices/bus/odyssey2/rom.h
index 541a81ef742..74e742a38d8 100644
--- a/src/devices/bus/odyssey2/rom.h
+++ b/src/devices/bus/odyssey2/rom.h
@@ -1,5 +1,11 @@
// license:BSD-3-Clause
-// copyright-holders:Wilbert Pol, Fabio Priuli
+// copyright-holders:Wilbert Pol, Fabio Priuli, hap
+/**********************************************************************
+
+ Standard cartridges emulation
+
+**********************************************************************/
+
#ifndef MAME_BUS_ODYSSEY2_ROM_H
#define MAME_BUS_ODYSSEY2_ROM_H
@@ -17,51 +23,23 @@ public:
// construction/destruction
o2_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // reading and writing
- virtual uint8_t read_rom04(offs_t offset) override;
- virtual uint8_t read_rom0c(offs_t offset) override;
-
- virtual void write_p1(uint8_t data) override { m_bank_base = data & 3; }
-
protected:
- o2_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
-
// device-level overrides
virtual void device_start() override;
- int m_bank_base;
-};
-
-// ======================> o2_rom12_device
-
-class o2_rom12_device : public o2_rom_device
-{
-public:
- // construction/destruction
- o2_rom12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void cart_init() override;
- // reading and writing
- virtual uint8_t read_rom04(offs_t offset) override;
- virtual uint8_t read_rom0c(offs_t offset) override;
-};
+ virtual u8 read_rom04(offs_t offset) override;
+ virtual u8 read_rom0c(offs_t offset) override { return read_rom04(offset); }
-// ======================> o2_rom16_device
+ virtual void write_p1(u8 data) override { m_bank = data & 3; }
-class o2_rom16_device : public o2_rom_device
-{
-public:
- // construction/destruction
- o2_rom16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- // reading and writing
- virtual uint8_t read_rom04(offs_t offset) override;
- virtual uint8_t read_rom0c(offs_t offset) override;
+private:
+ u32 m_cart_mask = 0;
+ u8 m_bank = 0;
};
-
// device type definition
DECLARE_DEVICE_TYPE(O2_ROM_STD, o2_rom_device)
-DECLARE_DEVICE_TYPE(O2_ROM_12K, o2_rom12_device)
-DECLARE_DEVICE_TYPE(O2_ROM_16K, o2_rom16_device)
#endif // MAME_BUS_ODYSSEY2_ROM_H