1 // license:BSD-3-Clause 2 // copyright-holders:Nigel Barnes 3 /********************************************************************** 4 5 JAFA Systems ROMPlus-144 6 7 **********************************************************************/ 8 9 #ifndef MAME_BUS_ELECTRON_CART_ROMP144_H 10 #define MAME_BUS_ELECTRON_CART_ROMP144_H 11 12 #include "slot.h" 13 #include "bus/generic/slot.h" 14 #include "bus/generic/carts.h" 15 16 //************************************************************************** 17 // TYPE DEFINITIONS 18 //************************************************************************** 19 20 class electron_romp144_device : 21 public device_t, 22 public device_electron_cart_interface 23 { 24 public: 25 // construction/destruction 26 electron_romp144_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 27 28 protected: 29 // device-level overrides 30 virtual void device_start() override; 31 32 // optional information overrides 33 virtual void device_add_mconfig(machine_config &config) override; 34 35 // electron_cart_interface overrides 36 virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; 37 virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; 38 39 private: 40 image_init_result load_rom(device_image_interface &image, generic_slot_device *slot); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom0)41 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom0) { return load_rom(image, m_romslot[0]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom1)42 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom1) { return load_rom(image, m_romslot[1]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom2)43 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom2) { return load_rom(image, m_romslot[2]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom3)44 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom3) { return load_rom(image, m_romslot[3]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom4)45 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom4) { return load_rom(image, m_romslot[4]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom5)46 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom5) { return load_rom(image, m_romslot[5]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom6)47 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom6) { return load_rom(image, m_romslot[6]); } 48 49 required_device_array<generic_slot_device, 7> m_romslot; 50 51 uint8_t m_rom_select; 52 uint8_t m_rom_latch; 53 }; 54 55 56 // device type definition 57 DECLARE_DEVICE_TYPE(ELECTRON_ROMP144, electron_romp144_device) 58 59 60 #endif // MAME_BUS_ELECTRON_CART_ROMP144_H 61