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