From 304c49cf377de3286c7c23f803b10d87bfe2ee99 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 29 Dec 2019 23:09:17 -0500 Subject: New machines machines marked as NOT_WORKING ---------------------------------- TeleVideo 924 Video Display Terminal [Bitsavers] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/tv924.cpp | 92 ++++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 4 files changed, 97 insertions(+) create mode 100644 src/mame/drivers/tv924.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 60d29143f4e..78e1bd48993 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3565,6 +3565,7 @@ files { MAME_DIR .. "src/mame/drivers/ts816.cpp", MAME_DIR .. "src/mame/drivers/tv910.cpp", MAME_DIR .. "src/mame/drivers/tv912.cpp", + MAME_DIR .. "src/mame/drivers/tv924.cpp", MAME_DIR .. "src/mame/drivers/tv950.cpp", MAME_DIR .. "src/mame/drivers/tv955.cpp", MAME_DIR .. "src/mame/drivers/tv965.cpp", diff --git a/src/mame/drivers/tv924.cpp b/src/mame/drivers/tv924.cpp new file mode 100644 index 00000000000..386518bcc1e --- /dev/null +++ b/src/mame/drivers/tv924.cpp @@ -0,0 +1,92 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for TeleVideo Model 924 terminal. + +****************************************************************************/ + +#include "emu.h" + +//#include "bus/rs232/rs232.h" +#include "cpu/m6502/m6502.h" +#include "machine/mc68681.h" +//#include "machine/nvram.h" +#include "video/scn2674.h" +#include "screen.h" + +class tv924_state : public driver_device +{ +public: + tv924_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_pvtc(*this, "pvtc") + { + } + + void tv924(machine_config &config); + +private: + SCN2672_DRAW_CHARACTER_MEMBER(draw_character); + + void mem_map(address_map &map); + void char_map(address_map &map); + + required_device m_maincpu; + required_device m_pvtc; +}; + +SCN2672_DRAW_CHARACTER_MEMBER(tv924_state::draw_character) +{ +} + +void tv924_state::mem_map(address_map &map) +{ + map(0x0000, 0x07ff).ram(); + map(0x2020, 0x202f).rw("duart", FUNC(scn2681_device::read), FUNC(scn2681_device::write)); + map(0x2030, 0x2037).rw(m_pvtc, FUNC(scn2672_device::read), FUNC(scn2672_device::write)); + map(0x8000, 0x9fff).ram(); + map(0xa000, 0xbfff).rom().region("program", 0x0000); + map(0xe000, 0xffff).rom().region("program", 0x2000); +} + +void tv924_state::char_map(address_map &map) +{ + map(0x0000, 0x3fff).ram(); +} + + +static INPUT_PORTS_START(tv924) +INPUT_PORTS_END + +void tv924_state::tv924(machine_config &config) +{ + M6502(config, m_maincpu, 1'723'560); // R6502AP (clock guessed) + m_maincpu->set_addrmap(AS_PROGRAM, &tv924_state::mem_map); + + scn2681_device &duart(SCN2681(config, "duart", 3.6864_MHz_XTAL)); // SCN2681A + duart.irq_cb().set_inputline(m_maincpu, m6502_device::IRQ_LINE); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(27'576'960, 848 * 2, 0, 640 * 2, 271, 0, 250); + screen.set_screen_update("pvtc", FUNC(scn2672_device::screen_update)); + + SCN2672(config, m_pvtc, 1'723'560); // SCN2672A (with SCB2673B + AMI gate arrays 130170-00 and 130180-00) + m_pvtc->set_screen("screen"); + m_pvtc->set_character_width(16); // nominally 8, but with half-dot shifting + m_pvtc->set_addrmap(0, &tv924_state::char_map); + m_pvtc->set_display_callback(FUNC(tv924_state::draw_character)); + m_pvtc->intr_callback().set_inputline(m_maincpu, m6502_device::NMI_LINE); +} + +ROM_START(tv924) + ROM_REGION(0x4000, "program", 0) + ROM_LOAD("180001-53e_924_u14_12_18_84_e.bin", 0x0000, 0x2000, CRC(9129e555) SHA1(2977f5a8153b474d1fff4bec17952562277f86a4)) + ROM_LOAD("180001-54e_924_u21_12_18_84_e.bin", 0x2000, 0x2000, CRC(fa2cf28d) SHA1(9cb461b2ba2a7bf44467d5fbc5358c9caaa60024)) + + ROM_REGION(0x1000, "chargen", 0) + ROM_LOAD("350_rn_118_2333-5006_8000142.u10", 0x0000, 0x1000, NO_DUMP) // VTI 24-pin mask ROM +ROM_END + +COMP(1984, tv924, 0, 0, tv924, tv924, tv924_state, empty_init, "TeleVideo Systems", "TeleVideo 924 Video Display Terminal", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c8c65eaf1bf..11f5218143e 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -39213,6 +39213,9 @@ tv910 // tv912b // tv912c // +@source:tv924.cpp +tv924 // + @source:tv950.cpp tv950 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 4c03f421313..37fe0f6bd21 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -895,6 +895,7 @@ tti.cpp tutor.cpp tv910.cpp tv912.cpp +tv924.cpp tv950.cpp tv955.cpp tv965.cpp -- cgit v1.2.3