diff options
Diffstat (limited to 'src/devices/bus/odyssey2/rom.h')
-rw-r--r-- | src/devices/bus/odyssey2/rom.h | 50 |
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 |