1 // license:BSD-3-Clause 2 // copyright-holders:Nigel Barnes 3 /********************************************************************** 4 5 Acorn 8K Static Memory Board 6 7 http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Acorn_Memory.html 8 9 **********************************************************************/ 10 11 12 #ifndef MAME_BUS_ACORN_SYSTEM_8K_H 13 #define MAME_BUS_ACORN_SYSTEM_8K_H 14 15 #pragma once 16 17 #include "bus/acorn/bus.h" 18 #include "bus/generic/slot.h" 19 #include "bus/generic/carts.h" 20 21 22 //************************************************************************** 23 // TYPE DEFINITIONS 24 //************************************************************************** 25 26 class acorn_8k_device : 27 public device_t, 28 public device_acorn_bus_interface 29 { 30 public: 31 // construction/destruction 32 acorn_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 33 34 protected: 35 // device-level overrides 36 virtual void device_start() override; 37 virtual void device_reset() override; 38 39 // optional information overrides 40 virtual void device_add_mconfig(machine_config &config) override; 41 virtual ioport_constructor device_input_ports() const override; 42 43 private: 44 image_init_result load_rom(device_image_interface &image, generic_slot_device *slot); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom0_load)45 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom0_load) { return load_rom(image, m_rom[0]); } DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom1_load)46 DECLARE_DEVICE_IMAGE_LOAD_MEMBER(rom1_load) { return load_rom(image, m_rom[1]); } 47 48 required_device_array<generic_slot_device, 2> m_rom; 49 required_ioport m_links; 50 }; 51 52 53 // device type definition 54 DECLARE_DEVICE_TYPE(ACORN_8K, acorn_8k_device) 55 56 57 #endif // MAME_BUS_ACORN_SYSTEM_8K_H 58