diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 6bf9fc95d07..8457838ba02 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2440,6 +2440,7 @@ files { MAME_DIR .. "src/mame/drivers/konin.cpp", MAME_DIR .. "src/mame/drivers/m79152pc.cpp", MAME_DIR .. "src/mame/drivers/meritum.cpp", + MAME_DIR .. "src/mame/drivers/vdm7932x.cpp", } createMESSProjects(_target, _subtarget, "mgu") 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 m_maincpu; + required_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