diff options
Diffstat (limited to 'src/devices/bus/bbc/tube/tube_rc6502.cpp')
-rw-r--r-- | src/devices/bus/bbc/tube/tube_rc6502.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/devices/bus/bbc/tube/tube_rc6502.cpp b/src/devices/bus/bbc/tube/tube_rc6502.cpp index 666c5fbece7..85f3fce1f11 100644 --- a/src/devices/bus/bbc/tube/tube_rc6502.cpp +++ b/src/devices/bus/bbc/tube/tube_rc6502.cpp @@ -61,13 +61,13 @@ ioport_constructor bbc_tube_rc6502_device::device_input_ports() const void bbc_tube_rc6502_device::tube_rc6502_bank(address_map &map) { // Bank 0: ROM disabled with banked RAM (65C02) - map(0x000000, 0x00ffff).ram().share("ram"); + map(0x000000, 0x07ffff).ram().share("ram"); map(0x004000, 0x007fff).bankrw(m_bank1); map(0x008000, 0x00bfff).bankrw(m_bank2); // Bank 1: ROM disabled with linear RAM (65C816) map(0x100000, 0x17ffff).ram().share("ram"); // Bank 2: ROM enabled with banked RAM (65C02) - map(0x200000, 0x20ffff).ram().share("ram"); + map(0x200000, 0x27ffff).ram().share("ram"); map(0x204000, 0x207fff).bankrw(m_bank1); map(0x208000, 0x20bfff).bankrw(m_bank2); map(0x208000, 0x20ffff).rom().region("maincpu", 0); @@ -129,7 +129,7 @@ void bbc_tube_rc6502_device::add_common_devices(machine_config &config) void bbc_tube_rc6502_device::device_add_mconfig(machine_config &config) { - M65C02(config, m_maincpu, 44.2368_MHz_XTAL); + W65C02S(config, m_maincpu, 44.2368_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &bbc_tube_rc6502_device::tube_rc6502_mem); add_common_devices(config); @@ -137,6 +137,7 @@ void bbc_tube_rc6502_device::device_add_mconfig(machine_config &config) TUBE(config, m_ula); m_ula->pnmi_handler().set_inputline(m_maincpu, M65C02_NMI_LINE); m_ula->pirq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); + m_ula->prst_handler().set(FUNC(bbc_tube_rc6502_device::prst_w)); } void bbc_tube_rc65816_device::device_add_mconfig(machine_config &config) @@ -149,6 +150,7 @@ void bbc_tube_rc65816_device::device_add_mconfig(machine_config &config) TUBE(config, m_ula); m_ula->pnmi_handler().set_inputline(m_maincpu, G65816_LINE_NMI); m_ula->pirq_handler().set_inputline(m_maincpu, G65816_LINE_IRQ); + m_ula->prst_handler().set(FUNC(bbc_tube_rc65816_device::prst_w)); } //------------------------------------------------- @@ -232,6 +234,13 @@ void bbc_tube_rc6502_device::device_reset() // IMPLEMENTATION //************************************************************************** +void bbc_tube_rc6502_device::prst_w(int state) +{ + device_reset(); + + m_maincpu->set_input_line(INPUT_LINE_RESET, state); +} + uint8_t bbc_tube_rc6502_device::host_r(offs_t offset) { return m_ula->host_r(offset); |