summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-08-11 10:54:19 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-08-11 10:54:19 -0400
commit89e50ae830d5c302f7bed68c2d282a40ea81a109 (patch)
treee31e4ae79ead73be44f718230c0abc0ba77483f4
parent468a5f7ee7585a4c216e43aee8a31dadc8b510be (diff)
a1010: Split to separate driver (nw)
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/terminal.cpp10
-rw-r--r--src/mame/drivers/textelcomp.cpp82
-rw-r--r--src/mame/mame.lst4
-rw-r--r--src/mame/mess.flt1
5 files changed, 87 insertions, 11 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index c034e8fe408..aa8131c2d7a 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3764,6 +3764,7 @@ files {
MAME_DIR .. "src/mame/drivers/terak.cpp",
MAME_DIR .. "src/mame/drivers/terco.cpp",
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/tr175.cpp",
MAME_DIR .. "src/mame/drivers/trs80dt1.cpp",
diff --git a/src/mame/drivers/terminal.cpp b/src/mame/drivers/terminal.cpp
index ab2dfbc4cec..1e61a946a04 100644
--- a/src/mame/drivers/terminal.cpp
+++ b/src/mame/drivers/terminal.cpp
@@ -174,15 +174,6 @@ ROM_START( teleguide ) // order unknown // i8051, i8031 (layout very similar to
ROM_END
-ROM_START( a1010 ) // 65SC02 (+ 4x 65SC22, 65SC51, SED1330F, xtal ??? + 6.400, 3.6v battery, RTC 58321A) // 32k + 8k + 8k ram // b&w LCD // This is a portable digital teletype machine
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "d15_31.bin", 0x0000, 0x8000, CRC(5ee1175d) SHA1(87ff6a3d5c64a53b0ab23d54aa343365c44d0407) )
-
- ROM_REGION( 0x8000, "chargen", 0 )
- ROM_LOAD( "chargen.bin", 0x0000, 0x8000, CRC(07daa70e) SHA1(8066a0ac238b06fbeeb99c3a2a8a9e70a27db7a9) )
-ROM_END
-
-
/* Driver */
@@ -200,4 +191,3 @@ COMP( 1987, 7951om, 0, 0, terminal, terminal, terminal_state, empty
COMP( 1992, vdm79322, 0, 0, terminal, terminal, terminal_state, empty_init, "Mera-Elzab", "VDM79322", MACHINE_IS_SKELETON )
COMP( 1993, ikt5a, 0, 0, terminal, terminal, terminal_state, empty_init, "Creator / Fura Elektronik", "IKT-5A", MACHINE_IS_SKELETON )
COMP( 1992, teleguide, 0, 0, terminal, terminal, terminal_state, empty_init, "Loewe / Televerket", "Teleguide", MACHINE_IS_SKELETON )
-COMP( 1993, a1010, 0, 0, terminal, terminal, terminal_state, empty_init, "Humantechnik", "Textel Compact A1010-0", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/textelcomp.cpp b/src/mame/drivers/textelcomp.cpp
new file mode 100644
index 00000000000..7294b8ccf18
--- /dev/null
+++ b/src/mame/drivers/textelcomp.cpp
@@ -0,0 +1,82 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/*******************************************************************************
+
+ Skeleton driver for Textel Compact portable digital teletype machine.
+
+*******************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6502/m65sc02.h"
+#include "machine/6522via.h"
+#include "machine/mos6551.h"
+//#include "machine/msm58321.h"
+//#include "video/sed1330.h"
+
+
+class textelcomp_state : public driver_device
+{
+public:
+ textelcomp_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_chargen(*this, "chargen")
+ { }
+
+ void textelcomp(machine_config &config);
+
+private:
+ void mem_map(address_map &map);
+ required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_chargen;
+};
+
+
+void textelcomp_state::mem_map(address_map &map)
+{
+ map(0x0000, 0x1eff).ram(); // MB8464A-10L (battery backed?)
+ map(0x1f00, 0x1f0f).rw("via0", FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1f10, 0x1f1f).rw("via1", FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1f20, 0x1f2f).rw("via2", FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1f30, 0x1f3f).rw("via3", FUNC(via6522_device::read), FUNC(via6522_device::write));
+ map(0x1f40, 0x1f43).rw("acia", FUNC(mos6551_device::read), FUNC(mos6551_device::write));
+ map(0x1f70, 0x1f70).noprw();//rw("lcdc", FUNC(sed1330_device::status_r), FUNC(sed1330_device::data_w));
+ map(0x1f71, 0x1f71).noprw();//rw("lcdc", FUNC(sed1330_device::data_r), FUNC(sed1330_device::command_w));
+ map(0x4000, 0x7fff).ram(); // HY65226ALP-10 (battery backed?)
+ map(0x8000, 0x9fff).ram(); // MB8464A-10L (battery backed?)
+ map(0xa000, 0xffff).rom().region("maincpu", 0x2000);
+}
+
+
+static INPUT_PORTS_START(textelcomp)
+INPUT_PORTS_END
+
+
+void textelcomp_state::textelcomp(machine_config &config)
+{
+ M65SC02(config, m_maincpu, 3.6864_MHz_XTAL / 2); // GS65SC02P-2 (clock not verified)
+ m_maincpu->set_addrmap(AS_PROGRAM, &textelcomp_state::mem_map);
+
+ VIA6522(config, "via0", 3.6864_MHz_XTAL / 2); // GS65SC22P-2
+ VIA6522(config, "via1", 3.6864_MHz_XTAL / 2); // GS65SC22P-2
+ VIA6522(config, "via2", 3.6864_MHz_XTAL / 2); // GS65SC22P-2
+ VIA6522(config, "via3", 3.6864_MHz_XTAL / 2); // GS65SC22P-2
+
+ MOS6551(config, "acia", 3.6864_MHz_XTAL / 2).set_xtal(3.6864_MHz_XTAL / 2); // GS65SC51P-2
+
+ //SED1330(config, "lcdc", 6.4_MHz_XTAL); // SED1330F + B&W LCD
+
+ //MSM58321(config, "rtc", 32.768_kHz_XTAL); // RTC58321A
+}
+
+
+ROM_START(a1010)
+ ROM_REGION(0x8000, "maincpu", 0)
+ ROM_LOAD("d15_31.bin", 0x0000, 0x8000, CRC(5ee1175d) SHA1(87ff6a3d5c64a53b0ab23d54aa343365c44d0407))
+
+ ROM_REGION(0x8000, "chargen", 0)
+ ROM_LOAD("chargen.bin", 0x0000, 0x8000, CRC(07daa70e) SHA1(8066a0ac238b06fbeeb99c3a2a8a9e70a27db7a9))
+ROM_END
+
+
+COMP(1993, a1010, 0, 0, textelcomp, textelcomp, textelcomp_state, empty_init, "Humantechnik", "Textel Compact A1010-0", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index f38fb1b2d01..9c730cfba78 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -36903,7 +36903,6 @@ t4490 // Terco 4490 Mill CNC Control (c) 1986
@source:terminal.cpp
7951om //
-a1010 //
alcat258 //
alcat7100 //
ec7915 //
@@ -36951,6 +36950,9 @@ tetrisp2j // (c) 1997 Jaleco
tetrisp2ja // (c) 1997 Jaleco
vjdash // (c) 1999 Jaleco
+@source:textelcomp.cpp
+a1010 //
+
@source:tg100.cpp
tg100 // (c) 1991
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 71a1a357f6c..b10e88d6ad5 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -699,6 +699,7 @@ terco.cpp
terminal.cpp
test_t400.cpp
testconsole.cpp
+textelcomp.cpp
tg100.cpp
thomson.cpp
ti630.cpp