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)

This commit is contained in:
mamehaze 2015-03-09 17:17:54 +00:00
parent 4835733a6f
commit b40c7c7014
2 changed files with 26 additions and 5 deletions

View File

@ -2,9 +2,9 @@
// V33 / V33A cores with onboard peripherals // V33 / V33A cores with onboard peripherals
// Interrupt Controller is uPD71059 equivalent // 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) // 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 // 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) // Timer Unit is functionally identical to uPD71054 (which in turn is said to be the same as a pit8253)
#include "emu.h" #include "emu.h"
@ -474,6 +474,15 @@ READ8_MEMBER(v53_base_device::dma_memin_r)
return ret; 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 ) static MACHINE_CONFIG_FRAGMENT( v53 )
MCFG_DEVICE_ADD("pit", PIT8254, 0) // functionality identical to uPD71054 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_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 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), : 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_io_space_config( "io", ENDIANNESS_LITTLE, 16, 16, 0, ADDRESS_MAP_NAME( v53_internal_port_map ) ),
m_pit(*this, "pit"), m_pit(*this, "pit"),
m_dma_71071mode(*this, "upd71071dma") m_dma_71071mode(*this, "upd71071dma"),
m_upd71059(*this, "upd71059pic"),
m_upd71051(*this, "upd71051")
{ {
} }

View File

@ -5,6 +5,8 @@
#include "machine/pit8253.h" #include "machine/pit8253.h"
#include "machine/am9517a.h" #include "machine/am9517a.h"
#include "machine/pic8259.h"
#include "machine/i8251.h"
class v53_base_device : public nec_common_device class v53_base_device : public nec_common_device
{ {
@ -81,7 +83,9 @@ public:
required_device<pit8253_device> m_pit; required_device<pit8253_device> m_pit;
required_device<upd71071_v53_device> m_dma_71071mode; 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(dreq0_trampoline_w);
DECLARE_WRITE_LINE_MEMBER(dreq1_trampoline_w); DECLARE_WRITE_LINE_MEMBER(dreq1_trampoline_w);
DECLARE_WRITE_LINE_MEMBER(dreq2_trampoline_w); DECLARE_WRITE_LINE_MEMBER(dreq2_trampoline_w);
@ -92,6 +96,9 @@ public:
DECLARE_WRITE8_MEMBER(dma_io_3_w); DECLARE_WRITE8_MEMBER(dma_io_3_w);
DECLARE_READ8_MEMBER(dma_memin_r); DECLARE_READ8_MEMBER(dma_memin_r);
DECLARE_READ8_MEMBER(get_pic_ack);
DECLARE_WRITE_LINE_MEMBER(upd71059_irq_w);
protected: protected:
// device-level overrides // device-level overrides
virtual machine_config_constructor device_mconfig_additions() const; virtual machine_config_constructor device_mconfig_additions() const;