summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mess/drivers/dragon.c2
-rw-r--r--src/mess/machine/6883sam.c8
-rw-r--r--src/mess/machine/dgnalpha.c3
-rw-r--r--src/mess/machine/dragon.c6
4 files changed, 11 insertions, 8 deletions
diff --git a/src/mess/drivers/dragon.c b/src/mess/drivers/dragon.c
index 82cf7382d1e..3f7b7edc239 100644
--- a/src/mess/drivers/dragon.c
+++ b/src/mess/drivers/dragon.c
@@ -260,7 +260,7 @@ ROM_START(tanodr64)
ROM_END
ROM_START(dgnalpha)
- ROM_REGION(0xC000,"maincpu",1)
+ ROM_REGION(0x10000,"maincpu",0)
ROM_LOAD("alpha_bt.rom", 0x2000, 0x2000, CRC(c3dab585) SHA1(4a5851aa66eb426e9bb0bba196f1e02d48156068))
ROM_LOAD("alpha_ba.rom", 0x8000, 0x4000, CRC(84f68bf9) SHA1(1983b4fb398e3dd9668d424c666c5a0b3f1e2b69))
ROM_END
diff --git a/src/mess/machine/6883sam.c b/src/mess/machine/6883sam.c
index ef882785bf3..653df9534f5 100644
--- a/src/mess/machine/6883sam.c
+++ b/src/mess/machine/6883sam.c
@@ -288,13 +288,13 @@ void sam6883_device::update_memory(void)
if (setup_rom)
{
- m_space_8000.point(&m_banks[1], 0x0000);
- m_space_A000.point(&m_banks[2], 0x0000);
- m_space_C000.point(&m_banks[3], 0x0000);
+ m_space_8000.point(&m_banks[1], m_banks[1].m_memory_offset);
+ m_space_A000.point(&m_banks[2], m_banks[2].m_memory_offset);
+ m_space_C000.point(&m_banks[3], m_banks[3].m_memory_offset);
}
// update $FFE0-$FFFF
- m_space_FFE0.point(&m_banks[2], 0x1FE0);
+ m_space_FFE0.point(&m_banks[2], m_banks[2].m_memory_offset + 0x1FE0);
}
diff --git a/src/mess/machine/dgnalpha.c b/src/mess/machine/dgnalpha.c
index 003d86d274c..b73a962a9f3 100644
--- a/src/mess/machine/dgnalpha.c
+++ b/src/mess/machine/dgnalpha.c
@@ -220,11 +220,14 @@ WRITE8_MEMBER( dragon_alpha_state::ff20_write )
WRITE8_MEMBER( dragon_alpha_state::pia2_pa_w )
{
+ UINT8 ddr = ~m_pia_2->port_b_z_mask();
+
/* If bit 2 of the pia2 ddra is 1 then this pin is an output so use it */
/* to control the paging of the boot and basic roms */
/* Otherwise it set as an input, with an internal pull-up so it should */
/* always be high (enabling boot rom) */
/* PIA FIXME if (pia_get_ddr_a(2) & 0x04) */
+ if(ddr & 0x04)
{
page_rom(data & 0x04 ? true : false); /* bit 2 controls boot or basic rom */
}
diff --git a/src/mess/machine/dragon.c b/src/mess/machine/dragon.c
index 8d2044a52b7..c8ccf4bfa9d 100644
--- a/src/mess/machine/dragon.c
+++ b/src/mess/machine/dragon.c
@@ -124,6 +124,7 @@ void dragon64_state::pia1_pb_changed(void)
if (ddr & 0x04)
{
page_rom(m_pia_1->b_output() & 0x04 ? true : false);
+ logerror("pia1_pb_changed\n");
}
}
@@ -145,7 +146,6 @@ void dragon64_state::page_rom(bool romswitch)
offs_t offset = romswitch
? 0x0000 // This is the 32k mode basic(64)/boot rom(alpha)
: 0x8000; // This is the 64k mode basic(64)/basic rom(alpha)
- m_sam->set_bank_offset(1, offset);
- m_sam->set_bank_offset(2, offset);
- m_sam->set_bank_offset(3, offset);
+ m_sam->set_bank_offset(1, offset); // 0x8000-0x9FFF
+ m_sam->set_bank_offset(2, offset); // 0xA000-0xBFFF
}