summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2019-10-16 16:34:53 +0200
committer Dirk Best <mail@dirk-best.de>2019-10-16 16:35:07 +0200
commit39bde3e47364ada9e1f0d74c73a2053ae6df9b06 (patch)
tree7026c60d6ed581685ebb1d7230f541c96c99140e
parent665d4fc98c274173b40a270099ef3b59b3ba02d6 (diff)
New skeleton driver: Termtek TK-635 [nextvolume, Dirk Best]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/tk635.cpp104
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
4 files changed, 109 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 27cad92e159..276dae6b3b8 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -4151,6 +4151,7 @@ files {
MAME_DIR .. "src/mame/drivers/terminal.cpp",
MAME_DIR .. "src/mame/drivers/textelcomp.cpp",
MAME_DIR .. "src/mame/drivers/ti630.cpp",
+ MAME_DIR .. "src/mame/drivers/tk635.cpp",
MAME_DIR .. "src/mame/drivers/tr175.cpp",
MAME_DIR .. "src/mame/drivers/trs80dt1.cpp",
MAME_DIR .. "src/mame/drivers/tsispch.cpp",
diff --git a/src/mame/drivers/tk635.cpp b/src/mame/drivers/tk635.cpp
new file mode 100644
index 00000000000..7ef69bd3637
--- /dev/null
+++ b/src/mame/drivers/tk635.cpp
@@ -0,0 +1,104 @@
+// license:BSD-3-Clause
+// copyright-holders: Dirk Best
+/****************************************************************************
+
+ Termtek TK-635 terminal
+
+ Hardware:
+ - AMD N80C188-25
+ - TERMTEK TKA-200
+ - 128k + 32k RAM
+ - 256 KB flash memory
+
+ Features:
+ - 31.5khz or 48.1khz horizontal
+ - 70/72 hz vertical
+ - 16 background/foreground/border colors
+ - 24x80/132, 25x80/132, 42x80/132, 43x80/132
+ - Standard PC/AT keyboard
+
+ Notes:
+ - Identical to the Qume QVT-72 Plus?
+ - Character shape defintions start at 0x20000 in the ROM
+
+ TODO:
+ - Everything
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/i86/i186.h"
+#include "emupal.h"
+#include "screen.h"
+
+class tk635_state : public driver_device
+{
+public:
+ tk635_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ void tk635(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
+ required_device<cpu_device> m_maincpu;
+
+ void mem_map(address_map &map);
+ void io_map(address_map &map);
+
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+};
+
+void tk635_state::mem_map(address_map &map)
+{
+ map(0x00000, 0x1ffff).ram();
+ map(0xc0000, 0xfffff).rom().region("maincpu", 0);
+}
+
+void tk635_state::io_map(address_map &map)
+{
+}
+
+static INPUT_PORTS_START( tk635 )
+INPUT_PORTS_END
+
+uint32_t tk635_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+void tk635_state::machine_start()
+{
+}
+
+void tk635_state::machine_reset()
+{
+}
+
+void tk635_state::tk635(machine_config &config)
+{
+ I80188(config, m_maincpu, 25000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tk635_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &tk635_state::io_map);
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(70);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
+ screen.set_screen_update(FUNC(tk635_state::screen_update));
+ screen.set_size(800, 600);
+ screen.set_visarea(0, 800-1, 0, 600-1);
+
+ PALETTE(config, "palette").set_entries(16);
+}
+
+ROM_START( tk635 )
+ ROM_REGION(0x40000, "maincpu", 0)
+ ROM_LOAD("fw_v0_23.bin", 0x00000, 0x40000, CRC(bec6fdae) SHA1(37dc46f6b761d874bd1627a1137bc4082e364698))
+ROM_END
+
+COMP( 199?, tk635, 0, 0, tk635, tk635, tk635_state, empty_init, "Termtek", "TK-635", MACHINE_IS_SKELETON )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 0da2710f9f3..781f34f4b44 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -38386,6 +38386,9 @@ spellb79 //
@source:tk2000.cpp
tk2000 // Microdigital TK2000
+@source:tk635.cpp
+tk635 // (c) 199? Termtek
+
@source:tk80.cpp
ics8080 //
mikrolab //
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 4957998ab38..ead41c43c53 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -845,6 +845,7 @@ timex.cpp
tispeak.cpp
tispellb.cpp
tk2000.cpp
+tk635.cpp
tk80.cpp
tk80bs.cpp
tm990189.cpp