1 // license:BSD-3-Clause 2 // copyright-holders:Olivier Galibert 3 #ifndef MAME_MACHINE_NAOMIROM_H 4 #define MAME_MACHINE_NAOMIROM_H 5 6 #include "naomibd.h" 7 8 class naomi_rom_board : public naomi_board 9 { 10 public: 11 template <typename T> naomi_rom_board(const machine_config & mconfig,const char * tag,device_t * owner,uint32_t clock,T && eeprom_tag)12 naomi_rom_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&eeprom_tag) 13 : naomi_rom_board(mconfig, tag, owner, clock) 14 { 15 eeprom.set_tag(std::forward<T>(eeprom_tag)); 16 } 17 18 naomi_rom_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 19 20 protected: 21 virtual void device_start() override; 22 virtual void device_reset() override; 23 24 virtual void board_setup_address(uint32_t address, bool is_dma) override; 25 virtual void board_get_buffer(uint8_t *&base, uint32_t &limit) override; 26 virtual void board_advance(uint32_t size) override; 27 28 private: 29 uint32_t rom_cur_address; 30 required_memory_region m_region; 31 }; 32 33 DECLARE_DEVICE_TYPE(NAOMI_ROM_BOARD, naomi_rom_board) 34 35 #endif // MAME_MACHINE_NAOMIROM_H 36