summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-08-11 18:47:46 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-08-11 18:47:46 -0400
commit112531017354d3e5ce1caad33b3ef580797c722d (patch)
treee7fa73a7f599f887e1b476d91cdb330580e49798
parent19f596c3adeb55b80b1399a6cc1b51c274320a1a (diff)
New machines marked as NOT_WORKING
---------------------------------- Lee Data 1220 Display Terminal [Bitsavers]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/lee1220.cpp146
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
4 files changed, 151 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index da6496ac1d9..05d0a6cc93e 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -4383,6 +4383,7 @@ files {
MAME_DIR .. "src/mame/drivers/krokha.cpp",
MAME_DIR .. "src/mame/drivers/kron.cpp",
MAME_DIR .. "src/mame/drivers/lee1214.cpp",
+ MAME_DIR .. "src/mame/drivers/lee1220.cpp",
MAME_DIR .. "src/mame/drivers/learnwin.cpp",
MAME_DIR .. "src/mame/drivers/lft.cpp",
MAME_DIR .. "src/mame/drivers/lg-dvd.cpp",
diff --git a/src/mame/drivers/lee1220.cpp b/src/mame/drivers/lee1220.cpp
new file mode 100644
index 00000000000..ed82b0ce522
--- /dev/null
+++ b/src/mame/drivers/lee1220.cpp
@@ -0,0 +1,146 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for Lee Data 1220 terminal (IBM 3278-compatible).
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "cpu/mcs48/mcs48.h"
+#include "machine/am9517a.h"
+#include "machine/i8251.h"
+#include "machine/pit8253.h"
+//#include "machine/wd1933.h"
+#include "video/mc6845.h"
+#include "screen.h"
+
+#include <algorithm>
+
+
+class lee1220_state : public driver_device
+{
+public:
+ lee1220_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_crtc(*this, "crtc")
+ {
+ }
+
+ void lee1220(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+
+private:
+ MC6845_UPDATE_ROW(update_row);
+
+ u8 sdlc_r(offs_t offset);
+ void sdlc_w(offs_t offset, u8 data);
+ u8 c0_r();
+
+ void mem_map(address_map &map);
+ void io_map(address_map &map);
+
+ required_device<cpu_device> m_maincpu;
+ //required_device<wd1933_device> m_sdlc;
+ required_device<hd6845s_device> m_crtc;
+
+ u8 m_sdlc_reg[6];
+};
+
+void lee1220_state::machine_start()
+{
+ std::fill_n(&m_sdlc_reg[0], 6, 0);
+ save_item(NAME(m_sdlc_reg));
+}
+
+MC6845_UPDATE_ROW(lee1220_state::update_row)
+{
+}
+
+
+u8 lee1220_state::sdlc_r(offs_t offset)
+{
+ return m_sdlc_reg[offset]; //m_sdlc->read(~offset & 7);
+}
+
+void lee1220_state::sdlc_w(offs_t offset, u8 data)
+{
+ logerror("%s: Writing %02X to WD1933 register %d\n", machine().describe_context(), data, offset);
+ m_sdlc_reg[offset] = data;
+ //m_sdlc->write(~offset & 7, ~data);
+}
+
+u8 lee1220_state::c0_r()
+{
+ return 0;
+}
+
+void lee1220_state::mem_map(address_map &map)
+{
+ map(0x0000, 0x2fff).rom().region("program", 0);
+ map(0x4000, 0x4fff).ram();
+ map(0x7800, 0x7fff).ram();
+ map(0x8000, 0xbfff).ram();
+}
+
+void lee1220_state::io_map(address_map &map)
+{
+ map(0x80, 0x8f).rw("dmac", FUNC(am9517a_device::read), FUNC(am9517a_device::write));
+ map(0x90, 0x95).rw(FUNC(lee1220_state::sdlc_r), FUNC(lee1220_state::sdlc_w));
+ map(0xa0, 0xa0).w("crtc", FUNC(hd6845s_device::address_w));
+ map(0xa1, 0xa1).w("crtc", FUNC(hd6845s_device::register_w));
+ map(0xb0, 0xb1).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xc0, 0xc0).r(FUNC(lee1220_state::c0_r));
+ map(0xd0, 0xd3).w("pit", FUNC(pit8253_device::write));
+}
+
+static INPUT_PORTS_START(lee1220)
+INPUT_PORTS_END
+
+void lee1220_state::lee1220(machine_config &config)
+{
+ I8085A(config, m_maincpu, 10'000'000); // Intel P8085AH-2
+ m_maincpu->set_addrmap(AS_PROGRAM, &lee1220_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &lee1220_state::io_map);
+
+ AM9517A(config, "dmac", 5'000'000); // Intel P8237A-5
+
+ I8748(config, "kbdmcu", 5.9904_MHz_XTAL);
+
+ //WD1933(config, m_sdlc); // WDC WD1933PL-11
+
+ i8251_device &usart(I8251(config, "usart", 0)); // NEC D8251AC
+ usart.rxrdy_handler().set_inputline(m_maincpu, I8085_RST55_LINE);
+
+ PIT8253(config, "pit"); // Intel D8253-5
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_color(rgb_t::green());
+ screen.set_raw(28'944'000, 1152, 0, 960, 420, 0, 400);
+ screen.set_screen_update(m_crtc, FUNC(hd6845s_device::screen_update));
+
+ HD6845S(config, m_crtc, 2'412'000); // Hitachi HD46505SP/HD6845SP
+ m_crtc->set_screen("screen");
+ m_crtc->set_show_border_area(false);
+ m_crtc->set_char_width(12);
+ m_crtc->set_update_row_callback(FUNC(lee1220_state::update_row));
+}
+
+// Main board XTALs: X1 = 28.944 MHz, X2 = 47.46816 MHz
+// TTL daughterboard XTAL: X1 = 5.0688 MHz
+// Keyboard XTAL: #20 = 5.9904 MHz
+ROM_START(lee1220)
+ ROM_REGION(0x3000, "program", 0)
+ ROM_LOAD("13260303.u21", 0x0000, 0x1000, CRC(28692f78) SHA1(60957e773cb4350d82b02db8f741bd32a43365f1))
+ ROM_LOAD("13260403.u22", 0x1000, 0x1000, CRC(3c54a251) SHA1(8d2849a2590be5cf765d26ff80a170b263a4b080))
+ ROM_LOAD("13260503.u23", 0x2000, 0x1000, CRC(0872e674) SHA1(24d07a2cfccf03e90334daea810fe0e7c533e5ec))
+
+ ROM_REGION(0x400, "kbdmcu", 0)
+ ROM_LOAD("03278_d8748.2", 0x000, 0x400, CRC(a63ce4d8) SHA1(a713f3aae5e9096a627fab13573eee2170b42b1a))
+ROM_END
+
+COMP(1983, lee1220, 0, 0, lee1220, lee1220, lee1220_state, empty_init, "Lee Data", "1220 Display Terminal", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 39948623536..8503aa65cd1 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -19297,6 +19297,9 @@ spielmast // Yuvo
@source:lee1214.cpp
lee1214d //
+@source:lee1220.cpp
+lee1220 //
+
@source:legionna.cpp
cupsoc // (c) 1992 Seibu
cupsoca // (c) 1992 Seibu
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 02b0021e210..c33b00ebf21 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -493,6 +493,7 @@ leapfrog_leappad.cpp
leapster.cpp
learnwin.cpp
lee1214.cpp
+lee1220.cpp
lft.cpp
lft_chiptune.cpp
lft_craft.cpp