mirror of
https://github.com/holub/mame
synced 2025-07-03 17:08:39 +03:00
isa_ibm_pgc: reinstall ROM mapping at reset time
This commit is contained in:
parent
74ceaefbe0
commit
4f6f606be5
@ -16,9 +16,9 @@
|
|||||||
http://www.seasip.info/VintagePC/pgc.html
|
http://www.seasip.info/VintagePC/pgc.html
|
||||||
|
|
||||||
To do:
|
To do:
|
||||||
- memory map (restore ROM mapping on reset, ...)
|
- decode memory map
|
||||||
- various VRAM write modes
|
- various VRAM write modes
|
||||||
- what's up with irq 3 (= vblank irq)?
|
- what's up with irq 3 (= vblank irq)? (causes soft reset)
|
||||||
- "test pin of the microprocessor samples the hsync pulse"
|
- "test pin of the microprocessor samples the hsync pulse"
|
||||||
- CGA emulator
|
- CGA emulator
|
||||||
- bus state handling?
|
- bus state handling?
|
||||||
@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
//nclude "machine/ram.h"
|
|
||||||
|
|
||||||
#include "pgc.h"
|
#include "pgc.h"
|
||||||
|
|
||||||
#define VERBOSE_PGC 1
|
#define VERBOSE_PGC 1
|
||||||
@ -223,10 +221,6 @@ isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, device_type type
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_start - device-specific startup
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void isa8_pgc_device::device_start()
|
void isa8_pgc_device::device_start()
|
||||||
{
|
{
|
||||||
address_space &space = m_cpu->space( AS_PROGRAM );
|
address_space &space = m_cpu->space( AS_PROGRAM );
|
||||||
@ -251,11 +245,17 @@ void isa8_pgc_device::device_start()
|
|||||||
membank("vram")->set_base(m_vram);
|
membank("vram")->set_base(m_vram);
|
||||||
|
|
||||||
m_eram = auto_alloc_array(machine(), UINT8, 0x8000);
|
m_eram = auto_alloc_array(machine(), UINT8, 0x8000);
|
||||||
|
|
||||||
|
machine().add_notifier(MACHINE_NOTIFY_RESET, machine_notify_delegate(FUNC(isa8_pgc_device::reset_common), this));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
void isa8_pgc_device::reset_common()
|
||||||
// device_reset - device-specific reset
|
{
|
||||||
//-------------------------------------------------
|
address_space &space = m_cpu->space( AS_PROGRAM );
|
||||||
|
|
||||||
|
space.unmap_readwrite(0xf8000, 0xfffff);
|
||||||
|
space.install_rom(0xf8000, 0xfffff, memregion("maincpu")->base() + 0x8000);
|
||||||
|
}
|
||||||
|
|
||||||
void isa8_pgc_device::device_reset()
|
void isa8_pgc_device::device_reset()
|
||||||
{
|
{
|
||||||
@ -267,13 +267,6 @@ void isa8_pgc_device::device_reset()
|
|||||||
m_isa->install_bank(0xc6400, 0xc67ff, 0, 0, "commarea", m_commarea);
|
m_isa->install_bank(0xc6400, 0xc67ff, 0, 0, "commarea", m_commarea);
|
||||||
else
|
else
|
||||||
m_isa->install_bank(0xc6000, 0xc63ff, 0, 0, "commarea", m_commarea);
|
m_isa->install_bank(0xc6000, 0xc63ff, 0, 0, "commarea", m_commarea);
|
||||||
#if 0
|
|
||||||
address_space &space = m_cpu->space( AS_PROGRAM );
|
|
||||||
|
|
||||||
space.unmap_readwrite(0xf8000, 0xfffff);
|
|
||||||
space.install_rom(0xf8000, 0xfffff,
|
|
||||||
space.machine().root_device().memregion("maincpu")->base() + 0x8000);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -42,6 +42,8 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER( lut_w );
|
DECLARE_WRITE8_MEMBER( lut_w );
|
||||||
DECLARE_READ8_MEMBER( init_r );
|
DECLARE_READ8_MEMBER( init_r );
|
||||||
|
|
||||||
|
void reset_common();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_start();
|
virtual void device_start();
|
||||||
|
Loading…
Reference in New Issue
Block a user