summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mamehaze <mamehaze@users.noreply.github.com>2015-03-09 17:17:54 +0000
committer mamehaze <mamehaze@users.noreply.github.com>2015-03-09 17:17:54 +0000
commitb40c7c7014e3b9c771a75c6184955a148c9663b7 (patch)
treed307f66780b326a6955d7d6bc2a0a74ddd9df4d2
parent4835733a6fbe6ded352b92ae4758f88820b27c3d (diff)
couple of notes about what the various NEC chips seem to be cloned from thanks to carl and RB, added them for now, will try to hook them up and see how things align in a bit (nw)
-rw-r--r--src/emu/cpu/nec/v53.c22
-rw-r--r--src/emu/cpu/nec/v53.h9
2 files changed, 26 insertions, 5 deletions
diff --git a/src/emu/cpu/nec/v53.c b/src/emu/cpu/nec/v53.c
index 8831c99d4c6..812f652717a 100644
--- a/src/emu/cpu/nec/v53.c
+++ b/src/emu/cpu/nec/v53.c
@@ -2,9 +2,9 @@
// V33 / V33A cores with onboard peripherals
-// Interrupt Controller is uPD71059 equivalent
-// DMA Controller can operate in modes providing a subset of the uPD71071 or uPD71037 functionality (some modes unavailable / settings ignored)
-// Serial Controller is based on the uPD71051 but with some changes
+// Interrupt Controller is uPD71059 equivalent (a PIC8259 clone?)
+// DMA Controller can operate in modes providing a subset of the uPD71071 or uPD71037 functionality (some modes unavailable / settings ignored) (uPD71071 mode is an extended am9517a, uPD71037 mode is ??)
+// Serial Controller is based on the uPD71051 but with some changes (i8251 clone?)
// Timer Unit is functionally identical to uPD71054 (which in turn is said to be the same as a pit8253)
#include "emu.h"
@@ -474,6 +474,15 @@ READ8_MEMBER(v53_base_device::dma_memin_r)
return ret;
}
+READ8_MEMBER(v53_base_device::get_pic_ack)
+{
+ return 0;
+}
+
+WRITE_LINE_MEMBER( v53_base_device::upd71059_irq_w)
+{
+ printf("upd71059_irq_w %d", state);
+}
static MACHINE_CONFIG_FRAGMENT( v53 )
MCFG_DEVICE_ADD("pit", PIT8254, 0) // functionality identical to uPD71054
@@ -486,6 +495,9 @@ static MACHINE_CONFIG_FRAGMENT( v53 )
MCFG_I8237_IN_MEMR_CB(READ8(v53_base_device, dma_memin_r))
+ MCFG_PIC8259_ADD( "upd71059pic", WRITELINE(v53_base_device, upd71059_irq_w), VCC, READ8(v53_base_device,get_pic_ack))
+
+ MCFG_DEVICE_ADD("upd71051", I8251, 0)
MACHINE_CONFIG_END
@@ -499,7 +511,9 @@ v53_base_device::v53_base_device(const machine_config &mconfig, device_type type
: nec_common_device(mconfig, type, name, tag, owner, clock, shortname, true, fetch_xor, prefetch_size, prefetch_cycles, chip_type),
m_io_space_config( "io", ENDIANNESS_LITTLE, 16, 16, 0, ADDRESS_MAP_NAME( v53_internal_port_map ) ),
m_pit(*this, "pit"),
- m_dma_71071mode(*this, "upd71071dma")
+ m_dma_71071mode(*this, "upd71071dma"),
+ m_upd71059(*this, "upd71059pic"),
+ m_upd71051(*this, "upd71051")
{
}
diff --git a/src/emu/cpu/nec/v53.h b/src/emu/cpu/nec/v53.h
index 8c93ec1637b..a298f266862 100644
--- a/src/emu/cpu/nec/v53.h
+++ b/src/emu/cpu/nec/v53.h
@@ -5,6 +5,8 @@
#include "machine/pit8253.h"
#include "machine/am9517a.h"
+#include "machine/pic8259.h"
+#include "machine/i8251.h"
class v53_base_device : public nec_common_device
{
@@ -81,7 +83,9 @@ public:
required_device<pit8253_device> m_pit;
required_device<upd71071_v53_device> m_dma_71071mode;
-
+ required_device<pic8259_device> m_upd71059;
+ required_device<i8251_device> m_upd71051;
+
DECLARE_WRITE_LINE_MEMBER(dreq0_trampoline_w);
DECLARE_WRITE_LINE_MEMBER(dreq1_trampoline_w);
DECLARE_WRITE_LINE_MEMBER(dreq2_trampoline_w);
@@ -92,6 +96,9 @@ public:
DECLARE_WRITE8_MEMBER(dma_io_3_w);
DECLARE_READ8_MEMBER(dma_memin_r);
+ DECLARE_READ8_MEMBER(get_pic_ack);
+ DECLARE_WRITE_LINE_MEMBER(upd71059_irq_w);
+
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const;