summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2018-02-19 17:23:41 -0600
committer cracyc <cracyc@users.noreply.github.com>2018-02-19 17:23:41 -0600
commit2e069bba3a1c4a64999957f4a8004f556081cedf (patch)
tree83cf55b1a28b215f055413fc2cc36eca00c2f53c
parentebbb4d5fc82f45e39a30a170ea3c840ffe40c2ed (diff)
New not working
----------------- Panafacom Duet-16 [rfka01, Carl]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/duet16.cpp106
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
4 files changed, 111 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index ef78a3546be..a8e353b9ef0 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -2352,6 +2352,7 @@ files {
MAME_DIR .. "src/mame/drivers/jr100.cpp",
MAME_DIR .. "src/mame/drivers/jr200.cpp",
MAME_DIR .. "src/mame/drivers/myb3k.cpp",
+ MAME_DIR .. "src/mame/drivers/duet16.cpp",
}
createMESSProjects(_target, _subtarget, "mb")
diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp
new file mode 100644
index 00000000000..a231efc5d71
--- /dev/null
+++ b/src/mame/drivers/duet16.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Carl
+
+#include "emu.h"
+#include "cpu/i86/i86.h"
+#include "cpu/mcs48/mcs48.h"
+#include "machine/i8251.h"
+#include "machine/pit8253.h"
+#include "machine/pic8259.h"
+#include "machine/upd765.h"
+#include "machine/msm58321.h"
+#include "machine/6840ptm.h"
+#include "machine/z80sio.h"
+#include "machine/pit8253.h"
+#include "machine/am9517a.h"
+#include "video/mc6845.h"
+#include "screen.h"
+
+class duet16_state : public driver_device
+{
+public:
+ duet16_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ void duet16(machine_config &config);
+
+private:
+ MC6845_UPDATE_ROW(crtc_update_row);
+ void duet16_io(address_map &map);
+ void duet16_mem(address_map &map);
+ required_device<cpu_device> m_maincpu;
+};
+
+ADDRESS_MAP_START(duet16_state::duet16_mem)
+ AM_RANGE(0x00000, 0x9ffff) AM_RAM
+ AM_RANGE(0xc0000, 0xc0fff) AM_RAM AM_SHARE("vram")
+ AM_RANGE(0xf80c0, 0xf80c1) AM_DEVWRITE8("crtc", h46505_device, address_w, 0x00ff)
+ AM_RANGE(0xf80c2, 0xf80c3) AM_DEVWRITE8("crtc", h46505_device, register_w, 0x00ff)
+ AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("rom", 0)
+ADDRESS_MAP_END
+
+ADDRESS_MAP_START(duet16_state::duet16_io)
+ADDRESS_MAP_END
+
+MC6845_UPDATE_ROW(duet16_state::crtc_update_row)
+{
+
+}
+
+MACHINE_CONFIG_START(duet16_state::duet16)
+ MCFG_CPU_ADD("maincpu", I8086, 24_MHz_XTAL/3)
+ MCFG_CPU_PROGRAM_MAP(duet16_mem)
+ MCFG_CPU_IO_MAP(duet16_io)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic", pic8259_device, inta_cb)
+
+ MCFG_CPU_ADD("i8741", I8741, 5_MHz_XTAL)
+ MCFG_DEVICE_DISABLE()
+
+ MCFG_DEVICE_ADD("pic", PIC8259, 0)
+ MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
+
+ MCFG_DEVICE_ADD("dmac", AM9517A, 5_MHz_XTAL)
+ /*MCFG_AM9517A_OUT_HRQ_CB(WRITELINE(olyboss_state, hrq_w))
+ MCFG_AM9517A_IN_MEMR_CB(READ8(olyboss_state, dma_mem_r))
+ MCFG_AM9517A_OUT_MEMW_CB(WRITE8(olyboss_state, dma_mem_w))
+ MCFG_AM9517A_IN_IOR_0_CB(READ8(olyboss_state, fdcdma_r))
+ MCFG_AM9517A_OUT_IOW_0_CB(WRITE8(olyboss_state, fdcdma_w))
+ MCFG_AM9517A_OUT_IOW_2_CB(WRITE8(olyboss_state, crtcdma_w))
+ MCFG_AM9517A_OUT_TC_CB(WRITELINE(olyboss_state, tc_w))*/
+
+ MCFG_DEVICE_ADD("pit", PIT8253, 8_MHz_XTAL/8)
+
+ MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 4_MHz_XTAL)
+
+ MCFG_DEVICE_ADD("uart", I8251, 2_MHz_XTAL)
+
+ MCFG_DEVICE_ADD("fdc", UPD765A, 0)
+
+ MCFG_DEVICE_ADD("crtc", H46505, 2000000)
+ MCFG_MC6845_CHAR_WIDTH(8)
+ MCFG_MC6845_UPDATE_ROW_CB(duet16_state, crtc_update_row)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_SIZE(640, 480)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
+ MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
+
+ MCFG_DEVICE_ADD("rtc", MSM58321, 32768_Hz_XTAL)
+MACHINE_CONFIG_END
+
+ROM_START(duet16)
+ ROM_REGION(0x2000, "rom", 0)
+ ROM_LOAD16_BYTE("duet16_h516a_3.bin", 0x0001, 0x1000, CRC(936706aa) SHA1(412ff9c7bf4443d2ed29a8d792fc3c849c9393cc))
+ ROM_LOAD16_BYTE("duet16_h517a_z.bin", 0x0000, 0x1000, CRC(1633cce8) SHA1(5145d04a48921cacfed17a94873e8988772fc8d4))
+
+ ROM_REGION(0x2000, "char", 0)
+ ROM_LOAD("duet16_char_j500a_4.bin", 0x0000, 0x2000, CRC(edf860f8) SHA1(0dcc584db701d21b7c3304cd2296562ebda6fb4c))
+
+ ROM_REGION(0x400, "i8741", 0)
+ ROM_LOAD("duet16_key_8741ak001b_z.bin", 0x000, 0x400, CRC(d23ee68d) SHA1(3b6a86fe2a304823c5385cd673f9580a35199dac))
+ROM_END
+
+COMP(1983, duet16, 0, 0, duet16, 0, duet16_state, 0, "Panafacom (Panasonic/Fujitsu)", "Duet-16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index fe8c0592f91..d7736856e7f 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -11606,6 +11606,9 @@ dsb46 //
@source:dual68.cpp
dual68 //
+@source:duet16.cpp
+duet16 //
+
@source:dunhuang.cpp
dunhuang // (c) 1995
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 959497979df..9040c74d355 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -180,6 +180,7 @@ dps1.cpp
dragon.cpp
dsb46.cpp
dual68.cpp
+duet16.cpp
dvk_kcgd.cpp
dvk_ksm.cpp
e100.cpp