diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2018-03-20 16:47:30 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2018-03-20 16:48:17 -0400 |
commit | c4aaf1104e6c24dd6e2feb54bd3bce1f00c15b62 (patch) | |
tree | 2ab3536793fe96343edc4d7c16960136cdf42593 | |
parent | e6d9db4f5f2fd3bdbb51be9b599287cb1c427903 (diff) |
terminals.cpp: Split each remaining machine (aaa, qvt70, tv955, tv965) into its own skeleton driver (nw)
-rw-r--r-- | src/mame/drivers/aaa.cpp | 59 | ||||
-rw-r--r-- | src/mame/drivers/qvt70.cpp | 53 | ||||
-rw-r--r-- | src/mame/drivers/tv955.cpp | 145 | ||||
-rw-r--r-- | src/mame/drivers/tv965.cpp | 80 |
4 files changed, 337 insertions, 0 deletions
diff --git a/src/mame/drivers/aaa.cpp b/src/mame/drivers/aaa.cpp new file mode 100644 index 00000000000..b4d683a7798 --- /dev/null +++ b/src/mame/drivers/aaa.cpp @@ -0,0 +1,59 @@ +// license:BSD-3-Clause +// copyright-holders: +/*********************************************************************************************************************************** + +Skeleton driver for Ann Arbor Ambassador terminal. + +************************************************************************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" + +class aaa_state : public driver_device +{ +public: + aaa_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_p_chargen(*this, "chargen") + { } + + void aaa(machine_config &config); + void mem_map(address_map &map); +private: + required_device<cpu_device> m_maincpu; + required_region_ptr<u8> m_p_chargen; +}; + +void aaa_state::mem_map(address_map &map) +{ + map(0x0000, 0x1fff).rom().region("maincpu", 0); +} + +static INPUT_PORTS_START( aaa ) +INPUT_PORTS_END + +MACHINE_CONFIG_START(aaa_state::aaa) + MCFG_CPU_ADD("maincpu", Z80, 2'000'000) + MCFG_CPU_PROGRAM_MAP(mem_map) +MACHINE_CONFIG_END + +/************************************************************************************************************** + +Ann Arbor Ambassador. +Chips: Z80A, M58725P (16k RAM), 2x SCN2651C, nvram, button-battery +Crystals: 18.414, 6.0688 + +***************************************************************************************************************/ + +ROM_START( aaa ) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "459_1.bin", 0x0000, 0x1000, CRC(55fb3e3b) SHA1(349cd257b1468827e1b389be7c989d0e4a13a5f1) ) + ROM_LOAD( "459_3.bin", 0x1000, 0x1000, CRC(e1e84ca4) SHA1(42dc5f4211beee79178f0c03bb45c66833119eae) ) + ROM_LOAD( "459_4.bin", 0x8000, 0x2000, CRC(4038aa89) SHA1(caf33c1f87aa396860324b9c73b35e4221f03d2e) ) + + ROM_REGION(0x1000, "chargen", 0) + ROM_LOAD( "202510b.bin", 0x0000, 0x1000, CRC(deda4aa4) SHA1(0bce5a8dc260ba51f3e431d8da408eac1f41acf7) ) +ROM_END + +COMP( 1981, aaa, 0, 0, aaa, aaa, aaa_state, 0, "Ann Arbor", "Ambassador", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/qvt70.cpp b/src/mame/drivers/qvt70.cpp new file mode 100644 index 00000000000..802b8af3bfb --- /dev/null +++ b/src/mame/drivers/qvt70.cpp @@ -0,0 +1,53 @@ +// license:BSD-3-Clause +// copyright-holders: +/*********************************************************************************************************************************** + +Skeleton driver for Qume QVT-70 terminal. + +************************************************************************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" + +class qvt70_state : public driver_device +{ +public: + qvt70_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { } + + void qvt70(machine_config &config); + void mem_map(address_map &map); +private: + required_device<cpu_device> m_maincpu; +}; + +void qvt70_state::mem_map(address_map &map) +{ + map(0x0000, 0xffff).rom().region("maincpu", 0); +} + +static INPUT_PORTS_START( qvt70 ) +INPUT_PORTS_END + +MACHINE_CONFIG_START(qvt70_state::qvt70) + MCFG_CPU_ADD("maincpu", Z80, 2'000'000) + MCFG_CPU_PROGRAM_MAP(mem_map) +MACHINE_CONFIG_END + +/************************************************************************************************************** + +Qume QVT-70. +Chips: Z80, Z80 DART, 5x CXK5864CM-70LL/W242575-70LL, 801000-02, 303489-01, DS1231, Button battery, Beeper +Crystals: unreadable + +***************************************************************************************************************/ + +ROM_START( qvt70 ) + ROM_REGION(0x30000, "maincpu", 0) + ROM_LOAD( "251513-04_revj.u12", 0x00000, 0x10000, CRC(3960bbd5) SHA1(9db306cef09be21ff43c081ebe11e9b46f617861) ) + ROM_LOAD( "251513-03_revj.u11", 0x10000, 0x20000, CRC(c56796fe) SHA1(afe024ff93d5e75dc18041219d61e1a22fc6d883) ) +ROM_END + +COMP( 1992, qvt70, 0, 0, qvt70, qvt70, qvt70_state, 0, "Qume", "QVT-70", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/tv955.cpp b/src/mame/drivers/tv955.cpp new file mode 100644 index 00000000000..0fd6ea2db60 --- /dev/null +++ b/src/mame/drivers/tv955.cpp @@ -0,0 +1,145 @@ +// license:BSD-3-Clause +// copyright-holders: +/*********************************************************************************************************************************** + +Skeleton driver for "third generation" TeleVideo terminals (905, 955, 9220). + +************************************************************************************************************************************/ + +#include "emu.h" +//#include "bus/rs232/rs232.h" +#include "cpu/m6502/m65c02.h" +#include "cpu/mcs48/mcs48.h" +#include "machine/input_merger.h" +#include "machine/mos6551.h" +#include "machine/nvram.h" +#include "video/scn2674.h" +#include "screen.h" + +class tv955_state : public driver_device +{ +public: + tv955_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_crtc(*this, "crtc") + , m_hostuart(*this, "hostuart") + , m_p_chargen(*this, "chargen") + { } + + void tv955(machine_config &config); +private: + SCN2674_DRAW_CHARACTER_MEMBER(draw_character); + + DECLARE_WRITE8_MEMBER(control_latch_w); + + void mem_map(address_map &map); + + required_device<cpu_device> m_maincpu; + required_device<scn2674_device> m_crtc; + required_device<mos6551_device> m_hostuart; + required_region_ptr<u8> m_p_chargen; +}; + +SCN2674_DRAW_CHARACTER_MEMBER(tv955_state::draw_character) +{ +} + +WRITE8_MEMBER(tv955_state::control_latch_w) +{ + m_hostuart->set_xtal(BIT(data, 1) ? 3.6864_MHz_XTAL : 3.6864_MHz_XTAL / 2); + + // CPU clock is inverted relative to character clock (and divided by two for 132-column mode) + if (BIT(data, 7)) + { + // 132-column mode + m_maincpu->set_unscaled_clock(31.684_MHz_XTAL / 18); + m_crtc->set_unscaled_clock(31.684_MHz_XTAL / 9); + } + else + { + // 80-column mode + m_maincpu->set_unscaled_clock(19.3396_MHz_XTAL / 9); + m_crtc->set_unscaled_clock(19.3396_MHz_XTAL / 9); + } +} + +void tv955_state::mem_map(address_map &map) +{ + // verified from maintenance manual (131968-00-C) + map(0x0000, 0x07ff).mirror(0x0800).ram().share("nvram"); + map(0x1100, 0x1100).mirror(0x00ff).w(this, FUNC(tv955_state::control_latch_w)); + map(0x1200, 0x1203).mirror(0x00fc).rw("keybuart", FUNC(mos6551_device::read), FUNC(mos6551_device::write)); + map(0x1400, 0x1403).mirror(0x00fc).rw("printuart", FUNC(mos6551_device::read), FUNC(mos6551_device::write)); + map(0x1800, 0x1803).mirror(0x00fc).rw("hostuart", FUNC(mos6551_device::read), FUNC(mos6551_device::write)); + map(0x2000, 0x2007).mirror(0x0ff8).rw("crtc", FUNC(scn2674_device::read), FUNC(scn2674_device::write)); + map(0x3000, 0x3fff).rom().region("option", 0); + map(0x4000, 0x7fff).ram().share("attrram"); + map(0x8000, 0xbfff).ram().share("charram"); + map(0xc000, 0xffff).rom().region("system", 0); +} + +static INPUT_PORTS_START( tv955 ) +INPUT_PORTS_END + +MACHINE_CONFIG_START(tv955_state::tv955) + MCFG_CPU_ADD("maincpu", M65C02, 19.3396_MHz_XTAL / 9) + MCFG_CPU_PROGRAM_MAP(mem_map) + + MCFG_INPUT_MERGER_ANY_HIGH("mainirq") + MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", m6502_device::IRQ_LINE)) + + MCFG_CPU_ADD("keyboard", I8049, 5.7143_MHz_XTAL) + + MCFG_NVRAM_ADD_0FILL("nvram") // HM6116LP-4 + 3.2V battery + + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(19.3396_MHz_XTAL, 846, 0, 720, 381, 0, 364) + MCFG_SCREEN_UPDATE_DEVICE("crtc", scn2674_device, screen_update) + + MCFG_DEVICE_ADD("crtc", SCN2674, 19.3396_MHz_XTAL / 9) + // Character clock is 31.084_MHz_XTAL / 9 in 132-column mode + // Character cells are 9 pixels wide by 14 pixels high + MCFG_SCN2674_CHARACTER_WIDTH(9) + MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(tv955_state, draw_character) + MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", m6502_device::NMI_LINE)) + MCFG_VIDEO_SET_SCREEN("screen") + + MCFG_DEVICE_ADD("hostuart", MOS6551, 0) + MCFG_MOS6551_XTAL(3.6864_MHz_XTAL) + MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE("mainirq", input_merger_device, in_w<0>)) + + MCFG_DEVICE_ADD("printuart", MOS6551, 0) + MCFG_MOS6551_XTAL(3.6864_MHz_XTAL / 2) + MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE("mainirq", input_merger_device, in_w<1>)) + + MCFG_DEVICE_ADD("keybuart", MOS6551, 0) + MCFG_MOS6551_XTAL(3.6864_MHz_XTAL / 2) + MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE("mainirq", input_merger_device, in_w<2>)) +MACHINE_CONFIG_END + +/************************************************************************************************************** + +Televideo TVI-955 (132160-00 Rev. M) +Chips: G65SC02P-3, 3x S6551AP, SCN2674B, AMI 131406-00 (unknown 40-pin DIL), 2x TMM2064P-10 (near two similar empty sockets), HM6116LP-4, round silver battery +Crystals: 19.3396, 31.684, 3.6864 +Keyboard: M5L8049-230P-6, 5.7143, Beeper + +***************************************************************************************************************/ + +ROM_START( tv955 ) + ROM_REGION(0x4000, "system", 0) + ROM_LOAD( "t180002-88d_955.u4", 0x0000, 0x4000, CRC(5767fbe7) SHA1(49a2241612af5c3af09778ffa541ac0bc186e05a) ) + + ROM_REGION(0x1000, "option", 0) + ROM_LOAD( "t180002-91a_calc.u5", 0x0000, 0x1000, CRC(f86c103a) SHA1(fa3ada3a5d8913e519e2ea4817e96166c1fedd32) ) + ROM_CONTINUE( 0x0000, 0x1000 ) // first half is all FF (and not addressable) + + ROM_REGION(0x1000, "chargen", 0) + ROM_LOAD( "t180002-26b.u45", 0x0000, 0x1000, CRC(69c9ebc7) SHA1(32282c816ec597a7c45e939acb7a4155d35ea584) ) + + ROM_REGION(0x0800, "keyboard", 0) + ROM_LOAD( "8049.kbd", 0x0000, 0x0800, CRC(bc86e349) SHA1(0b62003ab7931822f1bcac8370517c685849f62c) ) +ROM_END + +COMP( 1985, tv955, 0, 0, tv955, tv955, tv955_state, 0, "TeleVideo Systems", "TeleVideo 955", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/tv965.cpp b/src/mame/drivers/tv965.cpp new file mode 100644 index 00000000000..0c23d28a2e5 --- /dev/null +++ b/src/mame/drivers/tv965.cpp @@ -0,0 +1,80 @@ +// license:BSD-3-Clause +// copyright-holders: +/*********************************************************************************************************************************** + +Skeleton driver for TeleVideo 965 video display terminal. + +TeleVideo 9320 appears to run on similar hardware with a 2681 DUART replacing the ACIAs. + +************************************************************************************************************************************/ + +#include "emu.h" +#include "cpu/g65816/g65816.h" +//#include "machine/mos6551.h" +#include "machine/nvram.h" +#include "screen.h" + +class tv965_state : public driver_device +{ +public: + tv965_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_screen(*this, "screen") + { } + + void tv965(machine_config &config); +private: + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void mem_map(address_map &map); + + required_device<cpu_device> m_maincpu; + required_device<screen_device> m_screen; +}; + +u32 tv965_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void tv965_state::mem_map(address_map &map) +{ + map.global_mask(0x3ffff); + map(0x00000, 0x01fff).ram().share("nvram"); + map(0x10000, 0x1ffff).rom().region("eprom1", 0); + map(0x30000, 0x3ffff).rom().region("eprom2", 0); +} + +static INPUT_PORTS_START( tv965 ) +INPUT_PORTS_END + +MACHINE_CONFIG_START(tv965_state::tv965) + MCFG_CPU_ADD("maincpu", G65816, 44.4528_MHz_XTAL / 10) + MCFG_CPU_PROGRAM_MAP(mem_map) + + MCFG_NVRAM_ADD_0FILL("nvram") // CXK5864BP-10L + battery + + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(26.9892_MHz_XTAL, 1020, 0, 800, 378, 0, 350) + //MCFG_SCREEN_RAW_PARAMS(44.4528_MHz_XTAL, 1680, 0, 1320, 378, 0, 350) + MCFG_SCREEN_UPDATE_DRIVER(tv965_state, screen_update) +MACHINE_CONFIG_END + +/************************************************************************************************************** + +Televideo TVI-965 +Chips: G65SC816P-5, SCN2672TC5N40, 271582-00 (unknown square chip), 2x UM6551A, Beeper, DS1231 +Crystals: 44.4528, 26.9892, 3.6864 + +***************************************************************************************************************/ + +ROM_START( tv965 ) + ROM_REGION(0x10000, "eprom1", 0) + ROM_LOAD( "180003-30h.u8", 0x00000, 0x10000, CRC(c7b9ca39) SHA1(1d95a8b0a4ea5caf3fb628c44c7a3567700a0b59) ) + + ROM_REGION(0x10000, "eprom2", 0) + ROM_LOAD( "180003-38h.u9", 0x00000, 0x08000, CRC(30fae408) SHA1(f05bb2a9ce2df60b046733f746d8d8a1eb3ac8bc) ) +ROM_END + +COMP( 1989, tv965, 0, 0, tv965, tv965, tv965_state, 0, "TeleVideo Systems", "TeleVideo 965", MACHINE_IS_SKELETON ) |