summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/pgc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/pgc.cpp')
-rw-r--r--src/devices/bus/isa/pgc.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp
index f204333f9f2..1a67e545378 100644
--- a/src/devices/bus/isa/pgc.cpp
+++ b/src/devices/bus/isa/pgc.cpp
@@ -16,7 +16,7 @@
http://www.seasip.info/VintagePC/pgc.html
To do:
- - pass IBM diagnostics (currently fail with code 3905)
+ - pass IBM diagnostics (currently fail with code 3905 - 'Cold start cycle power error')
- CGA emulator
- what's up with irq 3 (= vblank irq)? (causes soft reset)
- "test pin of the microprocessor samples the hsync pulse"
@@ -32,7 +32,6 @@
#include "screen.h"
-//#define LOG_GENERAL (1U << 0) //defined in logmacro.h already
#define LOG_VRAM (1U << 1)
#define LOG_CMD (1U << 2)
@@ -71,8 +70,6 @@ ROM_START( pgc )
ROMX_LOAD("pgc_u44.bin", 0x00000, 0x8000, CRC(71280241) SHA1(7042ccd4ebd03f576a256a433b8aa38d1b4fefa8), ROM_BIOS(1))
ROMX_LOAD("pgc_u43.bin", 0x08000, 0x8000, CRC(923f5ea3) SHA1(2b2a55d64b20d3a613b00c51443105aa03eca5d6), ROM_BIOS(1))
- ROM_REGION(0x800, "commarea", ROMREGION_ERASE00)
-
ROM_REGION(0x1000, "chargen", 0)
ROM_LOAD("pgc_u27.bin", 0x0000, 0x1000, CRC(6be256cc) SHA1(deb1195886268dcddce10459911e020f7a9f74f7))
ROM_END
@@ -113,7 +110,7 @@ void isa8_pgc_device::pgc_map(address_map &map)
map(0x08000, 0x0ffff).rom().region("maincpu", 0x8000);
map(0x10000, 0x1001f).rw(FUNC(isa8_pgc_device::stateparam_r), FUNC(isa8_pgc_device::stateparam_w));
// map(0x18000, 0x18fff).ram(); // ??
- map(0x28000, 0x287ff).ram().region("commarea", 0).mirror(0x800);
+ map(0x28000, 0x287ff).ram().share("commarea").mirror(0x800);
map(0x32001, 0x32001).nopw();
map(0x32020, 0x3203f).w(FUNC(isa8_pgc_device::accel_w));
map(0x3c000, 0x3c001).r(FUNC(isa8_pgc_device::init_r));
@@ -210,7 +207,8 @@ isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, device_type type
m_cpu(*this, "maincpu"),
m_screen(*this, PGC_SCREEN_NAME),
m_palette(*this, "palette"),
- m_commarea(nullptr), m_vram(nullptr), m_eram(nullptr)
+ m_commarea(*this, "commarea"),
+ m_vram(nullptr), m_eram(nullptr)
{
}
@@ -246,16 +244,15 @@ void isa8_pgc_device::device_reset()
memset(m_lut, 0, sizeof(m_lut));
m_accel = 0;
- m_commarea = memregion("commarea")->base();
if (BIT(ioport("DSW")->read(), 1))
- m_isa->install_bank(0xc6400, 0xc67ff, "commarea", m_commarea);
+ m_isa->install_bank(0xc6400, 0xc67ff, m_commarea);
else
- m_isa->install_bank(0xc6000, 0xc63ff, "commarea", m_commarea);
+ m_isa->install_bank(0xc6000, 0xc63ff, m_commarea);
}
//
-WRITE_LINE_MEMBER(isa8_pgc_device::vblank_irq)
+void isa8_pgc_device::vblank_irq(int state)
{
if (state)
{
@@ -389,8 +386,7 @@ uint8_t isa8_pgc_device::init_r()
space.unmap_read(0xf8000, 0xfffff);
LOG("INIT: mapping emulator RAM\n");
- space.install_readwrite_bank(0xf8000, 0xfffff, "eram");
- membank("eram")->set_base(m_eram.get());
+ space.install_ram(0xf8000, 0xfffff, m_eram.get());
LOG("INIT: mapping LUT\n");
space.install_write_handler(0xf8400, 0xf85ff, write8sm_delegate(*this, FUNC(isa8_pgc_device::lut_w)));