gimix: fix crash when using 128kB RAM or more

This commit is contained in:
Barry Rodewald 2020-11-03 19:45:27 +13:00
parent d6bed0e154
commit a028db4e8c

View File

@ -83,6 +83,8 @@ public:
, m_rombank1(*this, "rombank1")
, m_rombank2(*this, "rombank2")
, m_fixedrombank(*this, "fixedrombank")
, m_lowerram(*this, "lower_ram")
, m_upperram(*this, "upper_ram")
, m_dma_dip(*this, "dma_s2")
{}
@ -152,6 +154,8 @@ private:
required_memory_bank m_rombank1;
required_memory_bank m_rombank2;
required_memory_bank m_fixedrombank;
required_memory_bank m_lowerram;
memory_bank_creator m_upperram;
required_ioport m_dma_dip;
};
@ -494,9 +498,9 @@ void gimix_state::machine_reset()
m_floppy1_ready = false;
m_floppy2_ready = false;
m_floppy3_ready = false;
membank("lower_ram")->set_base(m_ram->pointer());
m_lowerram->set_base(m_ram->pointer());
if(m_ram->size() > 65536)
membank("upper_ram")->set_base(m_ram->pointer()+0x10000);
m_upperram->set_base(m_ram->pointer()+0x10000);
// initialise FDC clock based on DIP Switch S2-9 (5.25"/8" drive select)
if(m_dma_dip->read() & 0x00000100)
@ -520,7 +524,7 @@ void gimix_state::machine_start()
{
for (int bank = 0; bank < 16; bank++)
{
m_bank[bank]->space(AS_PROGRAM).install_readwrite_bank(0x10000,m_ram->size()-1,membank("upper_ram"));
m_bank[bank]->space(AS_PROGRAM).install_readwrite_bank(0x10000,m_ram->size()-1,m_upperram);
}
}
m_floppy0->get_device()->set_rpm(300);