diff options
-rw-r--r-- | src/devices/bus/bbc/tube/tube_80186.cpp | 1 | ||||
-rw-r--r-- | src/devices/bus/bbc/tube/tube_80286.cpp | 24 | ||||
-rw-r--r-- | src/devices/bus/bbc/tube/tube_80286.h | 4 |
3 files changed, 11 insertions, 18 deletions
diff --git a/src/devices/bus/bbc/tube/tube_80186.cpp b/src/devices/bus/bbc/tube/tube_80186.cpp index 874a5b00013..db48f5458d1 100644 --- a/src/devices/bus/bbc/tube/tube_80186.cpp +++ b/src/devices/bus/bbc/tube/tube_80186.cpp @@ -81,6 +81,7 @@ void bbc_tube_80186_device::device_add_mconfig(machine_config &config) /* software lists */ SOFTWARE_LIST(config, "flop_ls_80186").set_original("bbc_flop_80186"); + SOFTWARE_LIST(config, "pc_disk_list").set_compatible("ibm5150"); } void bbc_tube_pcplus_device::device_add_mconfig(machine_config &config) diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp index 2164ffe526a..aa51a6c6b0f 100644 --- a/src/devices/bus/bbc/tube/tube_80286.cpp +++ b/src/devices/bus/bbc/tube/tube_80286.cpp @@ -39,7 +39,7 @@ void bbc_tube_80286_device::tube_80286_io(address_map &map) { map.unmap_value_high(); map(0x50, 0x50).r(FUNC(bbc_tube_80286_device::disable_boot_rom)); - map(0x60, 0x60).w(FUNC(bbc_tube_80286_device::irq_latch_w)); + map(0x60, 0x60).lw8(NAME([this](uint8_t data) { m_irq_latch = data; })); map(0x80, 0x8f).rw("ula", FUNC(tube_device::parasite_r), FUNC(tube_device::parasite_w)).umask16(0x00ff); } @@ -73,6 +73,7 @@ void bbc_tube_80286_device::device_add_mconfig(machine_config &config) /* software lists */ SOFTWARE_LIST(config, "flop_ls_80186").set_original("bbc_flop_80186"); + SOFTWARE_LIST(config, "pc_disk_list").set_compatible("ibm5150"); } //------------------------------------------------- @@ -93,12 +94,13 @@ const tiny_rom_entry *bbc_tube_80286_device::device_rom_region() const //------------------------------------------------- bbc_tube_80286_device::bbc_tube_80286_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BBC_TUBE_80286, tag, owner, clock), - device_bbc_tube_interface(mconfig, *this), - m_i80286(*this, "i80286"), - m_ula(*this, "ula"), - m_ram(*this, "ram"), - m_bootstrap(*this, "bootstrap") + : device_t(mconfig, BBC_TUBE_80286, tag, owner, clock) + , device_bbc_tube_interface(mconfig, *this) + , m_i80286(*this, "i80286") + , m_ula(*this, "ula") + , m_ram(*this, "ram") + , m_bootstrap(*this, "bootstrap") + , m_irq_latch(0) { } @@ -108,7 +110,6 @@ bbc_tube_80286_device::bbc_tube_80286_device(const machine_config &mconfig, cons void bbc_tube_80286_device::device_start() { - m_slot = dynamic_cast<bbc_tube_slot_device *>(owner()); } //------------------------------------------------- @@ -117,8 +118,6 @@ void bbc_tube_80286_device::device_start() void bbc_tube_80286_device::device_reset() { - m_ula->reset(); - address_space &program = m_i80286->space(AS_PROGRAM); program.install_rom(0xc0000, 0xc3fff, 0x3c000, m_bootstrap->base()); @@ -147,11 +146,6 @@ uint8_t bbc_tube_80286_device::disable_boot_rom() return 0xff; } -void bbc_tube_80286_device::irq_latch_w(uint8_t data) -{ - m_irq_latch = data; -} - //------------------------------------------------- // irq vector callback //------------------------------------------------- diff --git a/src/devices/bus/bbc/tube/tube_80286.h b/src/devices/bus/bbc/tube/tube_80286.h index a6e952d6bf2..980ec7e1a74 100644 --- a/src/devices/bus/bbc/tube/tube_80286.h +++ b/src/devices/bus/bbc/tube/tube_80286.h @@ -42,8 +42,6 @@ protected: virtual void host_w(offs_t offset, uint8_t data) override; private: - uint8_t m_irq_latch; - IRQ_CALLBACK_MEMBER( irq_callback ); required_device<i80286_cpu_device> m_i80286; @@ -51,8 +49,8 @@ private: required_device<ram_device> m_ram; required_memory_region m_bootstrap; + uint8_t m_irq_latch; uint8_t disable_boot_rom(); - void irq_latch_w(uint8_t data); void tube_80286_io(address_map &map); void tube_80286_mem(address_map &map); |