summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-08-18 18:38:28 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-08-18 18:38:28 -0400
commitd840374aaa6bf32e2038ff473da8ea13d05d5437 (patch)
treef9cd6e50470ae2d3e2511eb9015d94685be038af /src/mame
parent0b21bbbae4dc5ab704480e9ce7a1d91436f1b172 (diff)
vdm79322: Split off into new driver file (nw)
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/terminal.cpp10
-rw-r--r--src/mame/drivers/vdm7932x.cpp111
-rw-r--r--src/mame/mame.lst4
-rw-r--r--src/mame/mess.flt1
4 files changed, 115 insertions, 11 deletions
diff --git a/src/mame/drivers/terminal.cpp b/src/mame/drivers/terminal.cpp
index ca3c9f85622..5e5149469ba 100644
--- a/src/mame/drivers/terminal.cpp
+++ b/src/mame/drivers/terminal.cpp
@@ -137,15 +137,6 @@ ROM_START( 7951om ) // TTL (no cpu) // 1k x 6bits display ram 64-characters uppe
ROM_END
-ROM_START( vdm79322 ) // Z80 (there's a 8255, 8253, UA857D) // 8k ram // b&w // 8031 for kbd
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "27512_m322.bin", 0x00000, 0x10000, CRC(24573079) SHA1(b81c17e99493302054d78fbee2e416ab6493b5f3) )
-
- ROM_REGION( 0x4000, "user1", 0 ) // keyboard?
- ROM_LOAD( "27128_w322-3700.bin", 0x00000, 0x004000, CRC(e5e76ca2) SHA1(bb18c9fa29ef9fa0563aa07d2b856cf6594fc020) )
-ROM_END
-
-
ROM_START( ikt5a ) // order unknown // 80C51 (+xtal 15.000) // 8k ram // RGB external, uses XT keyboard
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "g26.bin", 0x0000, 0x2000, CRC(657668be) SHA1(212a9eb1fb9b9c16f3cc606c6befbd913ddfa395) )
@@ -174,6 +165,5 @@ COMP( 1988, loewe715, 0, 0, terminal, terminal, terminal_state, empty
COMP( 1986, t3210, 0, 0, terminal, terminal, terminal_state, empty_init, "Siemens", "Bitel T3210", MACHINE_IS_SKELETON )
COMP( 1986, feap90, 0, 0, terminal, terminal, terminal_state, empty_init, "Siemens", "Multitel Fe Ap 90-1.1", MACHINE_IS_SKELETON )
COMP( 1987, 7951om, 0, 0, terminal, terminal, terminal_state, empty_init, "Mera-Elzab", "7951om", MACHINE_IS_SKELETON )
-COMP( 1992, vdm79322, 0, 0, terminal, terminal, terminal_state, empty_init, "Mera-Elzab", "VDM79322", MACHINE_IS_SKELETON )
COMP( 1993, ikt5a, 0, 0, terminal, terminal, terminal_state, empty_init, "Creator / Fura Elektronik", "IKT-5A", MACHINE_IS_SKELETON )
COMP( 1992, teleguide, 0, 0, terminal, terminal, terminal_state, empty_init, "Loewe / Televerket", "Teleguide", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/vdm7932x.cpp b/src/mame/drivers/vdm7932x.cpp
new file mode 100644
index 00000000000..8ea38ac3cc8
--- /dev/null
+++ b/src/mame/drivers/vdm7932x.cpp
@@ -0,0 +1,111 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Skeleton driver for Mera-Elzab VDM 79321/79322 terminals.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/mcs51/mcs51.cpp"
+#include "machine/pit8253.h"
+#include "machine/i8255.h"
+#include "machine/z80ctc.h"
+#include "machine/z80sio.h"
+
+
+class vdm7932x_state : public driver_device
+{
+public:
+ vdm7932x_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_subcpu(*this, "subcpu")
+ {
+ }
+
+ void vdm7932x(machine_config &config);
+
+private:
+ void mem_map(address_map &map);
+ void io_map(address_map &map);
+ void sub_map(address_map &map);
+ void subx_map(address_map &map);
+
+ required_device<z80_device> m_maincpu;
+ required_device<i8031_device> m_subcpu;
+};
+
+
+void vdm7932x_state::mem_map(address_map &map)
+{
+ map(0x0000, 0xbfff).rom().region("maincpu", 0);
+ map(0xc000, 0xdfff).ram();
+}
+
+void vdm7932x_state::io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x44, 0x47).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+ map(0x48, 0x4b).w("pit", FUNC(pit8253_device::write));
+ map(0x54, 0x57).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x58, 0x5b).rw("sio", FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w));
+ map(0x80, 0x83).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
+
+void vdm7932x_state::sub_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom().region("subcpu", 0);
+}
+
+void vdm7932x_state::subx_map(address_map &map)
+{
+}
+
+
+static INPUT_PORTS_START(vdm7932x)
+INPUT_PORTS_END
+
+
+static const z80_daisy_config daisy_chain[] =
+{
+ { "sio" },
+ { "ctc" },
+ { nullptr }
+};
+
+void vdm7932x_state::vdm7932x(machine_config &config) // all clocks unverified
+{
+ Z80(config, m_maincpu, 24.0734_MHz_XTAL / 8); // UA880D
+ m_maincpu->set_addrmap(AS_PROGRAM, &vdm7932x_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &vdm7932x_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
+
+ I8031(config, m_subcpu, 24.0734_MHz_XTAL / 4); // Intel P8031AH (for keyboard?)
+ m_subcpu->set_addrmap(AS_PROGRAM, &vdm7932x_state::sub_map);
+ m_subcpu->set_addrmap(AS_IO, &vdm7932x_state::subx_map);
+
+ PIT8253(config, "pit", 0); // UM8253-5
+
+ z80ctc_device &ctc(Z80CTC(config, "ctc", 24.0734_MHz_XTAL / 8)); // UA857D
+ ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+
+ z80sio_device &sio(Z80SIO(config, "sio", 24.0734_MHz_XTAL / 8)); // UA8560D
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+
+ I8255A(config, "ppi1"); // КР580ВВ55А (on separate card)
+ I8255A(config, "ppi2"); // КР580ВВ55А (on separate card)
+}
+
+
+ROM_START( vdm79322 ) // 8k ram // b&w (amber)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "27512_m322.bin", 0x00000, 0x10000, CRC(24573079) SHA1(b81c17e99493302054d78fbee2e416ab6493b5f3) )
+
+ ROM_REGION( 0x04000, "subcpu", 0 )
+ ROM_LOAD( "27128_w322-3700.bin", 0x00000, 0x04000, CRC(e5e76ca2) SHA1(bb18c9fa29ef9fa0563aa07d2b856cf6594fc020) )
+ROM_END
+
+
+COMP(1992, vdm79322, 0, 0, vdm7932x, vdm7932x, vdm7932x_state, empty_init, "Mera-Elzab", "VDM 79322/CM 7233", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 53c8e29f219..6ecdc047b8d 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -36923,7 +36923,6 @@ loewe715 //
loewed //
t3210 //
teleguide //
-vdm79322 //
@source:terracre.cpp
amatelas // (c) 1986
@@ -38048,6 +38047,9 @@ vcs80 //
break86 //
papillon //
+@source:vdm7932x.cpp
+vdm79322 //
+
@source:vector06.cpp
krista2 //
pk6128c //
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 8875e893100..5f8d11cfc48 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -772,6 +772,7 @@ vax11.cpp
vboy.cpp
vc4000.cpp
vcs80.cpp
+vdm7932x.cpp
vector06.cpp
vector4.cpp
vectrex.cpp