From c6b0ecdc6f40b22381b48daac06cd831d70ef478 Mon Sep 17 00:00:00 2001 From: Dirk Best Date: Thu, 17 Sep 2020 12:30:27 +0200 Subject: New machines marked as NOT_WORKING ---------------------------------- Informer 213 [Bitsavers] --- scripts/target/mame/mess.lua | 2 +- src/mame/drivers/informer_213.cpp | 222 ++++++++++++++++++++++++++++++++++++ src/mame/drivers/informer_213ae.cpp | 208 --------------------------------- src/mame/mame.lst | 3 +- src/mame/mess.flt | 2 +- 5 files changed, 226 insertions(+), 211 deletions(-) create mode 100644 src/mame/drivers/informer_213.cpp delete mode 100644 src/mame/drivers/informer_213ae.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index a173460af96..3e2af9d1add 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2606,7 +2606,7 @@ createMESSProjects(_target, _subtarget, "informer") files { MAME_DIR .. "src/mame/drivers/informer_207_100.cpp", MAME_DIR .. "src/mame/drivers/informer_207_376.cpp", - MAME_DIR .. "src/mame/drivers/informer_213ae.cpp", + MAME_DIR .. "src/mame/drivers/informer_213.cpp", MAME_DIR .. "src/mame/machine/informer_207_376_kbd.cpp", MAME_DIR .. "src/mame/machine/informer_207_376_kbd.h", } diff --git a/src/mame/drivers/informer_213.cpp b/src/mame/drivers/informer_213.cpp new file mode 100644 index 00000000000..4c2551bfabf --- /dev/null +++ b/src/mame/drivers/informer_213.cpp @@ -0,0 +1,222 @@ +// license: BSD-3-Clause +// copyright-holders: Dirk Best +/*************************************************************************** + + Informer 213 (IBM 374/SNA V.22) + Informer 213 AE (VT-100) + + Hardware: + - EF68B09EP + - 2x TC5564PL-15 [8k] (next to CG ROM) + - 1x TC5565APL-15 [8k] + 2x TMS4464-15NL [32k] (next to CPU) + - Z0853006PSC SCC + - ASIC (INFORMER 44223) + - 18.432 MHz XTAL + + TODO: + - Figure out the ASIC and how it's connected + + Notes: + - Debug tricks (AE): "b@42=ff" after startup to show setup screen 1 + "bp 81a1" then "b@42=ff" and "a=02" after the break to show screen 2 + +***************************************************************************/ + +#include "emu.h" +#include "cpu/m6809/m6809.h" +#include "machine/z80scc.h" +#include "emupal.h" +#include "screen.h" + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class informer_213_state : public driver_device +{ +public: + informer_213_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_scc(*this, "scc"), + m_vram(*this, "vram"), + m_aram(*this, "aram"), + m_chargen(*this, "chargen") + { } + + void informer_213(machine_config &config); + +protected: + void machine_start() override; + void machine_reset() override; + +private: + required_device m_maincpu; + required_device m_screen; + required_device m_palette; + required_device m_scc; + required_shared_ptr m_vram; + required_shared_ptr m_aram; + required_region_ptr m_chargen; + + void mem_map(address_map &map); + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); +}; + + +//************************************************************************** +// ADDRESS MAPS +//************************************************************************** + +void informer_213_state::mem_map(address_map &map) +{ + map(0x0000, 0x1fff).ram(); + map(0x2000, 0x3fff).ram(); + map(0x4000, 0x5fff).ram(); + map(0x6000, 0x6fff).ram().share("vram"); + map(0x7000, 0x7fff).ram().share("aram"); + map(0x8000, 0xffff).rom().region("maincpu", 0); +} + + +//************************************************************************** +// INPUT PORT DEFINITIONS +//************************************************************************** + +static INPUT_PORTS_START( informer_213 ) +INPUT_PORTS_END + + +//************************************************************************** +// VIDEO EMULATION +//************************************************************************** + +uint32_t informer_213_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + offs_t chargen_base = (m_chargen.bytes() == 0x4000) ? 0x2000 : 0; + + for (int y = 0; y < 26; y++) + { + for (int x = 0; x < 80; x++) + { + // screen memory starts at 0x6820 + uint8_t code = m_vram[26 * 80 + y * 80 + x]; +// uint8_t attr = m_aram[26 * 80 + y * 80 + x]; + + // but status line is at top of vram + if (y > 23) + { + code = m_vram[(y - 24) * 80 + x]; +// attr = m_aram[(y - 24) * 80 + x]; + } + + // draw 9 lines + for (int i = 0; i < 9; i++) + { + uint8_t data = m_chargen[chargen_base | ((code << 4) + i)]; + + // 6 pixels of the character + bitmap.pix32(y * 9 + i, x * 6 + 0) = BIT(data, 7) ? rgb_t::white() : rgb_t::black(); + bitmap.pix32(y * 9 + i, x * 6 + 1) = BIT(data, 6) ? rgb_t::white() : rgb_t::black(); + bitmap.pix32(y * 9 + i, x * 6 + 2) = BIT(data, 5) ? rgb_t::white() : rgb_t::black(); + bitmap.pix32(y * 9 + i, x * 6 + 3) = BIT(data, 4) ? rgb_t::white() : rgb_t::black(); + bitmap.pix32(y * 9 + i, x * 6 + 4) = BIT(data, 3) ? rgb_t::white() : rgb_t::black(); + bitmap.pix32(y * 9 + i, x * 6 + 5) = BIT(data, 2) ? rgb_t::white() : rgb_t::black(); + } + } + } + + return 0; +} + +static const gfx_layout char_layout = +{ + 6,9, + RGN_FRAC(1,1), + 1, + { 0 }, + { 0, 1, 2, 3, 4, 5 }, + { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8 }, + 8*16 +}; + +static GFXDECODE_START(chars) + GFXDECODE_ENTRY("chargen", 0, char_layout, 0, 1) +GFXDECODE_END + + +//************************************************************************** +// MACHINE EMULATION +//************************************************************************** + +void informer_213_state::machine_start() +{ +} + +void informer_213_state::machine_reset() +{ +} + + +//************************************************************************** +// MACHINE DEFINTIONS +//************************************************************************** + +void informer_213_state::informer_213(machine_config &config) +{ + MC6809(config, m_maincpu, 18.432_MHz_XTAL / 4); // unknown clock + m_maincpu->set_addrmap(AS_PROGRAM, &informer_213_state::mem_map); + + SCC8530N(config, m_scc, 0); // unknown clock + + // video + SCREEN(config, m_screen, SCREEN_TYPE_LCD); + m_screen->set_color(rgb_t::amber()); + m_screen->set_size(480, 234); + m_screen->set_visarea_full(); + m_screen->set_refresh_hz(60); +// m_screen->set_raw(18.432_MHz_XTAL, 0, 0, 0, 0, 0, 0); + m_screen->set_screen_update(FUNC(informer_213_state::screen_update)); + + PALETTE(config, m_palette, palette_device::MONOCHROME); + + GFXDECODE(config, "gfxdecode", m_palette, chars); +} + + +//************************************************************************** +// ROM DEFINITIONS +//************************************************************************** + +ROM_START( in213 ) + ROM_REGION(0x8000, "maincpu", 0) + // 79687-305 PTF02 SNA V2.6 CK=24EE (checksum matches) + ROM_LOAD("79687-305.bin", 0x0000, 0x8000, CRC(0638c6d6) SHA1(1906f835f255d595c5743b453614ba21acb5acae)) + + ROM_REGION(0x2000, "chargen", 0) + // 79688-003 ICT 213/CG. CK=C4E0 (checksum matches) + ROM_LOAD("79688-003.bin", 0x0000, 0x2000, CRC(75e0da94) SHA1(c10c71fcf980a5f868a85bc264661183fa69fa72)) +ROM_END + +ROM_START( in213ae ) + ROM_REGION(0x8000, "maincpu", 0) + // 79750-304-213AE_V1.6_CK-B1B8 + ROM_LOAD("79750-304.bin", 0x0000, 0x8000, CRC(82ffe69e) SHA1(3803100aeb8f5e484bc9f4c533ef4f25223c9023)) + + ROM_REGION(0x4000, "chargen", 0) + // 79747-002 V.32 ME C.G. V3.1 CK=D68C (checksum matches) + ROM_LOAD("79747-002.bin", 0x0000, 0x4000, CRC(7425327f) SHA1(e3e67305b3b8936683724d1347a451fffe96bf0e)) +ROM_END + + +//************************************************************************** +// SYSTEM DRIVERS +//************************************************************************** + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1990, in213 , 0, 0, informer_213, informer_213, informer_213_state, empty_init, "Informer", "Informer 213", MACHINE_IS_SKELETON | MACHINE_SUPPORTS_SAVE ) +COMP( 1992, in213ae, 0, 0, informer_213, informer_213, informer_213_state, empty_init, "Informer", "Informer 213 AE", MACHINE_IS_SKELETON | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/informer_213ae.cpp b/src/mame/drivers/informer_213ae.cpp deleted file mode 100644 index 80faaaa2a63..00000000000 --- a/src/mame/drivers/informer_213ae.cpp +++ /dev/null @@ -1,208 +0,0 @@ -// license: BSD-3-Clause -// copyright-holders: Dirk Best -/*************************************************************************** - - Informer 213 AE - - VT-100 compatible terminal - - Hardware: - - EF68B09EP - - 2x TC5564PL-15 + 1x TC5565APL - - Z0853006PSC SCC - - ASIC - - 18.432 MHz XTAL - - TODO: - - Figure out the ASIC and how it's connected - - Notes: - - Debug tricks: "b@42=ff" after startup to show setup screen 1 - "bp 81a1" then "b@42=ff" and "a=02" after the break to show screen 2 - -***************************************************************************/ - -#include "emu.h" -#include "cpu/m6809/m6809.h" -#include "machine/z80scc.h" -#include "emupal.h" -#include "screen.h" - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class informer_213ae_state : public driver_device -{ -public: - informer_213ae_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_scc(*this, "scc"), - m_vram(*this, "vram"), - m_aram(*this, "aram"), - m_chargen(*this, "chargen") - { } - - void informer_213ae(machine_config &config); - -protected: - void machine_start() override; - void machine_reset() override; - -private: - required_device m_maincpu; - required_device m_screen; - required_device m_palette; - required_device m_scc; - required_shared_ptr m_vram; - required_shared_ptr m_aram; - required_region_ptr m_chargen; - - void mem_map(address_map &map); - - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -}; - - -//************************************************************************** -// ADDRESS MAPS -//************************************************************************** - -void informer_213ae_state::mem_map(address_map &map) -{ - map(0x0000, 0x1fff).ram(); - map(0x2000, 0x3fff).ram(); - map(0x6000, 0x6fff).ram().share("vram"); - map(0x7000, 0x7fff).ram().share("aram"); - map(0x8000, 0xffff).rom().region("maincpu", 0); -} - - -//************************************************************************** -// INPUT PORT DEFINITIONS -//************************************************************************** - -static INPUT_PORTS_START( informer_213ae ) -INPUT_PORTS_END - - -//************************************************************************** -// VIDEO EMULATION -//************************************************************************** - -uint32_t informer_213ae_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - for (int y = 0; y < 26; y++) - { - for (int x = 0; x < 80; x++) - { - // screen memory starts at 0x6820 - uint8_t code = m_vram[26 * 80 + y * 80 + x]; -// uint8_t attr = m_aram[26 * 80 + y * 80 + x]; - - // but status line is at top of vram - if (y > 23) - { - code = m_vram[(y - 24) * 80 + x]; -// attr = m_aram[(y - 24) * 80 + x]; - } - - // draw 9 lines - for (int i = 0; i < 9; i++) - { - uint8_t data = m_chargen[0x2000 | ((code << 4) + i)]; - - // 6 pixels of the character - bitmap.pix32(y * 9 + i, x * 6 + 0) = BIT(data, 7) ? rgb_t::white() : rgb_t::black(); - bitmap.pix32(y * 9 + i, x * 6 + 1) = BIT(data, 6) ? rgb_t::white() : rgb_t::black(); - bitmap.pix32(y * 9 + i, x * 6 + 2) = BIT(data, 5) ? rgb_t::white() : rgb_t::black(); - bitmap.pix32(y * 9 + i, x * 6 + 3) = BIT(data, 4) ? rgb_t::white() : rgb_t::black(); - bitmap.pix32(y * 9 + i, x * 6 + 4) = BIT(data, 3) ? rgb_t::white() : rgb_t::black(); - bitmap.pix32(y * 9 + i, x * 6 + 5) = BIT(data, 2) ? rgb_t::white() : rgb_t::black(); - } - } - } - - return 0; -} - -static const gfx_layout char_layout = -{ - 6,9, - RGN_FRAC(1,1), - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8 }, - 8*16 -}; - -static GFXDECODE_START(chars) - GFXDECODE_ENTRY("chargen", 0, char_layout, 0, 1) -GFXDECODE_END - - -//************************************************************************** -// MACHINE EMULATION -//************************************************************************** - -void informer_213ae_state::machine_start() -{ -} - -void informer_213ae_state::machine_reset() -{ -} - - -//************************************************************************** -// MACHINE DEFINTIONS -//************************************************************************** - -void informer_213ae_state::informer_213ae(machine_config &config) -{ - MC6809(config, m_maincpu, 18.432_MHz_XTAL / 4); // unknown clock - m_maincpu->set_addrmap(AS_PROGRAM, &informer_213ae_state::mem_map); - - SCC8530N(config, m_scc, 0); // unknown clock - - // video - SCREEN(config, m_screen, SCREEN_TYPE_LCD); - m_screen->set_color(rgb_t::amber()); - m_screen->set_size(480, 234); - m_screen->set_visarea_full(); - m_screen->set_refresh_hz(60); -// m_screen->set_raw(18.432_MHz_XTAL, 0, 0, 0, 0, 0, 0); - m_screen->set_screen_update(FUNC(informer_213ae_state::screen_update)); - - PALETTE(config, m_palette, palette_device::MONOCHROME); - - GFXDECODE(config, "gfxdecode", m_palette, chars); -} - - -//************************************************************************** -// ROM DEFINITIONS -//************************************************************************** - -ROM_START( in213ae ) - ROM_REGION(0x8000, "maincpu", 0) - // 79750-304-213AE_V1.6_CK-B1B8 - ROM_LOAD("79750-304.bin", 0x0000, 0x8000, CRC(82ffe69e) SHA1(3803100aeb8f5e484bc9f4c533ef4f25223c9023)) - - ROM_REGION(0x4000, "chargen", 0) - // 79747-002 V.32 ME C.G. V3.1 CK=D68C (checksum matches) - ROM_LOAD("79747-002.bin", 0x0000, 0x4000, CRC(7425327f) SHA1(e3e67305b3b8936683724d1347a451fffe96bf0e)) -ROM_END - - -//************************************************************************** -// SYSTEM DRIVERS -//************************************************************************** - -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1992, in213ae, 0, 0, informer_213ae, informer_213ae, informer_213ae_state, empty_init, "Informer", "Informer 213 AE", MACHINE_IS_SKELETON | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 5f2a1e1c531..1796ea7ab01 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -16727,7 +16727,8 @@ in207100 // Informer 207/100 @source:informer_207_376.cpp in207376 // Informer 207/376 -@source:informer_213ae.cpp +@source:informer_213.cpp +in213 // Informer 213 in213ae // Informer 213 AE @source:instantm.cpp diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 8ab3ca34c44..25ae592f3ef 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -422,7 +422,7 @@ indigo.cpp indy_indigo2.cpp informer_207_100.cpp informer_207_376.cpp -informer_213ae.cpp +informer_213.cpp instruct.cpp inteladv.cpp intellec4.cpp -- cgit v1.2.3-70-g09d2