diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mess/drivers/dragon.c | 2 | ||||
-rw-r--r-- | src/mess/machine/6883sam.c | 8 | ||||
-rw-r--r-- | src/mess/machine/dgnalpha.c | 3 | ||||
-rw-r--r-- | src/mess/machine/dragon.c | 6 |
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 } |