summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-11-19 11:53:55 -0500
committer AJR <ajrhacker@users.noreply.github.com>2017-11-19 11:59:16 -0500
commit0509fa75ac147915656f41acb9db83327d479640 (patch)
tree18ad9bb69a9c5497a35162ffb9d21de39fabfadf
parent4106d1404eed92c829af374d0302397af7858798 (diff)
pntnpuzl: Add 8798 MCU dump [Reznor007]
-rw-r--r--src/mame/drivers/pntnpuzl.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp
index a5165b14d18..4406c61808a 100644
--- a/src/mame/drivers/pntnpuzl.cpp
+++ b/src/mame/drivers/pntnpuzl.cpp
@@ -125,6 +125,7 @@ CN1 standard DB15 VGA connector (15KHz)
#include "emu.h"
#include "cpu/m68000/m68000.h"
+#include "cpu/mcs96/i8x9x.h"
#include "machine/6522via.h"
#include "machine/eepromser.h"
#include "video/pc_vga.h"
@@ -137,7 +138,7 @@ public:
pntnpuzl_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this,"maincpu"),
- m_eeprom(*this, "eeprom")
+ m_via(*this, "via")
{ }
uint16_t m_pntpzl_200000;
@@ -156,7 +157,7 @@ public:
DECLARE_READ16_MEMBER(irq4_ack_r);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
DECLARE_DRIVER_INIT(pip);
- required_device<eeprom_serial_93cxx_device> m_eeprom;
+ required_device<via6522_device> m_via;
};
@@ -203,6 +204,8 @@ WRITE16_MEMBER(pntnpuzl_state::pntnpuzl_280018_w)
m_serial >>= 1;
if (data & 0x2000)
m_serial |= 0x400;
+
+ m_via->write(space, 0x18/2, data >> 8);
}
READ16_MEMBER(pntnpuzl_state::pntnpuzl_280014_r)
@@ -210,6 +213,8 @@ READ16_MEMBER(pntnpuzl_state::pntnpuzl_280014_r)
static const int startup[3] = { 0x80, 0x0c, 0x00 };
int res;
+ (void)m_via->read(space, 0x14/2);
+
if (m_serial_out == 0x11)
{
if (ioport("IN0")->read() & 0x10)
@@ -279,6 +284,10 @@ static ADDRESS_MAP_START( pntnpuzl_map, AS_PROGRAM, 16, pntnpuzl_state )
AM_RANGE(0x400000, 0x407fff) AM_RAM
ADDRESS_MAP_END
+static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, pntnpuzl_state )
+ AM_RANGE(0x2000, 0x3fff) AM_ROM AM_REGION("mcu", 0)
+ADDRESS_MAP_END
+
INPUT_CHANGED_MEMBER(pntnpuzl_state::coin_inserted)
{
@@ -334,6 +343,9 @@ static MACHINE_CONFIG_START( pntnpuzl )
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, cs_write)) MCFG_DEVCB_BIT(6)
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("eeprom", eeprom_serial_93cxx_device, clk_write)) MCFG_DEVCB_BIT(5)
+ MCFG_CPU_ADD("mcu", P8098, 12000000) // ??
+ MCFG_CPU_PROGRAM_MAP(mcu_map) // FIXME: this is all internal
+
/* video hardware */
MCFG_FRAGMENT_ADD( pcvideo_vga )
MACHINE_CONFIG_END
@@ -343,6 +355,9 @@ ROM_START( pntnpuzl )
ROM_LOAD16_BYTE( "pntnpuzl.u2", 0x00001, 0x40000, CRC(dfda3f73) SHA1(cca8ccdd501a26cba07365b1238d7b434559bbc6) )
ROM_LOAD16_BYTE( "pntnpuzl.u3", 0x00000, 0x40000, CRC(4173f250) SHA1(516fe6f91b925f71c36b97532608b82e63bda436) )
+ ROM_REGION( 0x2000, "mcu", 0 )
+ ROM_LOAD( "pntnpzl8798.bin", 0x0000, 0x2000, CRC(3ff98e89) SHA1(c48665992cb5377b69902f2a352c9214602a0b84) )
+
/* for reference, probably not used in any way by the game */
ROM_REGION( 0x10000, "video_bios", 0 )
ROM_LOAD( "trident_quadtel_tvga9000_isa16.bin", 0x0000, 0x10000, BAD_DUMP CRC(ad0e7351) SHA1(eb525460a80e1c1baa34642b93d54caf2607920d) )