New machines marked as NOT_WORKING

----------------------------------
ERGO 201 Kurzweil [Bitsavers]
This commit is contained in:
AJR 2020-05-07 17:24:41 -04:00
parent 28b50b7c6e
commit 2c873efb4d
5 changed files with 158 additions and 0 deletions

View File

@ -4281,6 +4281,7 @@ files {
MAME_DIR .. "src/mame/drivers/elwro800.cpp",
MAME_DIR .. "src/mame/drivers/emate.cpp",
MAME_DIR .. "src/mame/drivers/epic14e.cpp",
MAME_DIR .. "src/mame/drivers/ergo201.cpp",
MAME_DIR .. "src/mame/drivers/esprit.cpp",
MAME_DIR .. "src/mame/drivers/eti660.cpp",
MAME_DIR .. "src/mame/includes/eti660.h",

View File

@ -243,6 +243,7 @@ const double XTAL::known_xtals[] = {
16'128'000, /* 16.128_MHz_XTAL Fujitsu FM-7 */
16'200'000, /* 16.2_MHz_XTAL Debut */
16'257'000, /* 16.257_MHz_XTAL IBM PC MDA & EGA */
16'313'000, /* 16.313_MHz_XTAL Micro-Term ERGO 201 */
16'364'000, /* 16.364_MHz_XTAL Corvus Concept */
16'384'000, /* 16.384_MHz_XTAL - */
16'400'000, /* 16.4_MHz_XTAL MS 6102 */

View File

@ -0,0 +1,152 @@
// license:BSD-3-Clause
// copyright-holders:AJR
/****************************************************************************
Skeleton driver for Micro-Term ERGO 201 terminal.
The ERGO 201 belongs to one half of a paired series of terminals. Half
of these terminals emulate the VT100 and support a 132 column mode; the
other half emulate the VT52, ADM3A and ACT-5A instead but do appear to
have been influenced by the VT100 in overall design.
The first members of this series, the MIME 340 (non-VT100 emulation)
and MIME 740 (VT100 emulation), were single units with non-detachable
keyboards like Micro-Term's older ACT and MIME terminals. They were
respectively succeeded by the ERGO 2000 and ERGO 3001 with tiltable
screens and similar but detached keyboards. The ERGO 201 and ERGO 301
appear to be newer versions of these two with keyboards redesigned yet
again to more closely resemble the VT100. There was also the ERGO 4000,
a portrait-mode terminal displaying 66 lines of 80 characters.
****************************************************************************/
#include "emu.h"
//#include "bus/rs232/rs232.h"
#include "cpu/z80/z80.h"
#include "machine/ay31015.h"
#include "machine/er1400.h"
#include "machine/z80ctc.h"
#include "machine/z80sio.h"
#include "video/tms9927.h"
#include "screen.h"
class ergo201_state : public driver_device
{
public:
ergo201_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_earom(*this, "earom")
, m_vtac(*this, "vtac")
, m_chargen(*this, "chargen")
{
}
void ergo201(machine_config &config);
private:
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void earom_latch_w(u8 data);
u8 status_r();
void mem_map(address_map &map);
void io_map(address_map &map);
required_device<z80_device> m_maincpu;
required_device<er1400_device> m_earom;
required_device<tms9927_device> m_vtac;
required_region_ptr<u8> m_chargen;
};
u32 ergo201_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
void ergo201_state::earom_latch_w(u8 data)
{
m_earom->c1_w(BIT(data, 0));
m_earom->data_w(BIT(data, 1));
m_earom->c3_w(BIT(data, 2));
m_earom->c2_w(BIT(data, 3));
m_earom->clock_w(BIT(data, 4));
}
u8 ergo201_state::status_r()
{
return m_earom->data_r() << 5;
}
void ergo201_state::mem_map(address_map &map)
{
map(0x0000, 0x5fff).rom().region("program", 0);
map(0x3000, 0x300f).w(m_vtac, FUNC(tms9927_device::write));
map(0x4000, 0x4000).w(FUNC(ergo201_state::earom_latch_w));
map(0x6001, 0x6001).r(FUNC(ergo201_state::status_r));
map(0x7000, 0x77ff).ram();
map(0x8000, 0x87ff).ram();
map(0xc000, 0xc7ff).ram();
}
void ergo201_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0xf4, 0xf7).rw("dart", FUNC(z80dart_device::cd_ba_r), FUNC(z80dart_device::cd_ba_w));
map(0xf8, 0xfb).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
}
static INPUT_PORTS_START(ergo201)
INPUT_PORTS_END
static const z80_daisy_config daisy_chain[] =
{
{ "ctc" },
{ "dart" },
{ nullptr }
};
void ergo201_state::ergo201(machine_config &config)
{
Z80(config, m_maincpu, 16.313_MHz_XTAL / 4); // SGS Z8400AB1 (divider guessed)
m_maincpu->set_addrmap(AS_PROGRAM, &ergo201_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &ergo201_state::io_map);
m_maincpu->set_daisy_config(daisy_chain);
z80ctc_device &ctc(Z80CTC(config, "ctc", 16.313_MHz_XTAL / 4)); // SGS Z8430AB1
ctc.zc_callback<0>().set("dart", FUNC(z80dart_device::rxca_w));
ctc.zc_callback<1>().set("dart", FUNC(z80dart_device::txca_w));
ctc.zc_callback<2>().set("dart", FUNC(z80dart_device::rxtxcb_w));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
z80dart_device &dart(Z80DART(config, "dart", 16.313_MHz_XTAL / 4)); // Zilog Z8470A PS
dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
AY31015(config, "uart"); // GI AY-3-1015D
ER1400(config, m_earom); // GI ER-1400
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(16.313_MHz_XTAL, 855, 0, 720, 318, 0, 300);
screen.set_screen_update(FUNC(ergo201_state::screen_update));
CRT5037(config, m_vtac, 16.313_MHz_XTAL / 9); // TI TMS9937NL
m_vtac->set_char_width(9);
m_vtac->set_screen("screen");
}
ROM_START(ergo201)
ROM_REGION(0x6000, "program", 0)
ROM_LOAD("201.u18", 0x0000, 0x2000, CRC(fec9fa3c) SHA1(3c1f9de9f62e74fbd1c9b67736d0959c0f6b46b1)) // M5L2764K
ROM_LOAD("r1.0_special_5786.u73", 0x2000, 0x2000, CRC(5a31b6bc) SHA1(6929fa8f6d481790cd43732a9a97a9110ad9fb6c)) // MBM2764-25
ROM_LOAD("201.u17", 0x4000, 0x2000, CRC(e7197403) SHA1(96fff6fb30eeac616d71da731b0ea79c8cd35096)) // M5L2764K
ROM_REGION(0x1000, "chargen", 0)
ROM_LOAD("201.u53", 0x0000, 0x1000, CRC(907dac04) SHA1(5bae6680f1ef3f5335a223bdf403e8f3ef272430)) // MBM2732A-35
ROM_END
COMP(1983, ergo201, 0, 0, ergo201, ergo201, ergo201_state, empty_init, "Micro-Term", "ERGO 201 Kurzweil", MACHINE_IS_SKELETON)

View File

@ -13082,6 +13082,9 @@ splndrbtb // (c) 1985 Alpha Denshi Co.
@source:eispc.cpp
epc // 1984 Ericsson PC
@source:ergo201.cpp
ergo201 //
@source:ertictac.cpp
ertictac // (c) 1992 Sisteme
ertictaca // (c) 1992 Sisteme

View File

@ -256,6 +256,7 @@ emu3.cpp
enmirage.cpp
ep64.cpp
epic14e.cpp
ergo201.cpp
esprit.cpp
esq1.cpp
esq5505.cpp