vdm79322: Split off into new driver file (nw)

This commit is contained in:
AJR 2018-08-18 18:38:28 -04:00
parent 0b21bbbae4
commit d840374aaa
5 changed files with 116 additions and 11 deletions

View File

@ -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")

View File

@ -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 )

View File

@ -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)

View File

@ -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 //

View File

@ -772,6 +772,7 @@ vax11.cpp
vboy.cpp
vc4000.cpp
vcs80.cpp
vdm7932x.cpp
vector06.cpp
vector4.cpp
vectrex.cpp