diff options
author | hap <happppp@users.noreply.github.com> | 2019-07-02 15:02:54 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2019-07-02 15:02:54 +0200 |
commit | 248ba3ebd45128b94e6de688c590d7dbd3fa42ae (patch) | |
tree | 731832624f0291a4cb01c585ea5724dfe9d7fb6b /src/mame/drivers/fidel_as12.cpp | |
parent | 11782b47bd8fcc670ad259d7fe08de86a97f5eb5 (diff) |
fidelbase: remove interrupt and cartridge handlers (nw)
Diffstat (limited to 'src/mame/drivers/fidel_as12.cpp')
-rw-r--r-- | src/mame/drivers/fidel_as12.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/mame/drivers/fidel_as12.cpp b/src/mame/drivers/fidel_as12.cpp index 9230a46b792..45a66a11982 100644 --- a/src/mame/drivers/fidel_as12.cpp +++ b/src/mame/drivers/fidel_as12.cpp @@ -21,7 +21,11 @@ magnetic chess board sensors. See fidel_sc12.cpp for a more technical descriptio #include "includes/fidelbase.h" #include "cpu/m6502/r65c02.h" +#include "machine/timer.h" #include "sound/volt_reg.h" +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" +#include "softlist.h" #include "speaker.h" // internal artwork @@ -34,16 +38,28 @@ class as12_state : public fidelbase_state { public: as12_state(const machine_config &mconfig, device_type type, const char *tag) : - fidelbase_state(mconfig, type, tag) + fidelbase_state(mconfig, type, tag), + m_irq_on(*this, "irq_on"), + m_cart(*this, "cartslot") { } // machine drivers void as12(machine_config &config); private: + // devices/pointers + required_device<timer_device> m_irq_on; + required_device<generic_slot_device> m_cart; + // address maps void main_map(address_map &map); + // periodic interrupts + template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); } + template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(Line, CLEAR_LINE); } + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + // I/O handlers void update_display(); DECLARE_WRITE8_MEMBER(control_w); @@ -56,6 +72,18 @@ private: Devices, I/O ******************************************************************************/ +// cartridge + +DEVICE_IMAGE_LOAD_MEMBER(as12_state::cart_load) +{ + u32 size = m_cart->common_get_size("rom"); + m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + + return image_init_result::PASS; +} + + // TTL/generic void as12_state::update_display() @@ -104,7 +132,7 @@ void as12_state::main_map(address_map &map) map.unmap_value_high(); map(0x0000, 0x0fff).ram(); map(0x1800, 0x1807).w(FUNC(as12_state::led_w)).nopr(); - map(0x2000, 0x5fff).r(FUNC(as12_state::cartridge_r)); + map(0x2000, 0x5fff).r("cartslot", FUNC(generic_slot_device::read_rom)); map(0x6000, 0x6000).mirror(0x1fff).w(FUNC(as12_state::control_w)); map(0x8000, 0x9fff).rom(); map(0xa000, 0xa007).mirror(0x1ff8).r(FUNC(as12_state::input_r)); |