summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/bbc/tube/tube_rc6502.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/bbc/tube/tube_rc6502.cpp')
-rw-r--r--src/devices/bus/bbc/tube/tube_rc6502.cpp15
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);