From fa4293fc0385b06d432c2742723ead8ab0d525db Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Tue, 27 Jun 2017 21:48:24 +1000 Subject: New machines marked NOT_WORKING ------------------------------ Intel INTELLEC 4/MOD 40 [Vas Crabb] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/intellec4.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 4 files changed, 99 insertions(+) create mode 100644 src/mame/drivers/intellec4.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 55051303c8c..b5aa206d074 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2117,6 +2117,7 @@ createMESSProjects(_target, _subtarget, "intel") files { MAME_DIR .. "src/mame/drivers/basic52.cpp", MAME_DIR .. "src/mame/drivers/imds.cpp", + MAME_DIR .. "src/mame/drivers/intellec4.cpp", MAME_DIR .. "src/mame/drivers/ipc.cpp", MAME_DIR .. "src/mame/drivers/ipds.cpp", MAME_DIR .. "src/mame/drivers/isbc.cpp", diff --git a/src/mame/drivers/intellec4.cpp b/src/mame/drivers/intellec4.cpp new file mode 100644 index 00000000000..2ad0102ec4b --- /dev/null +++ b/src/mame/drivers/intellec4.cpp @@ -0,0 +1,94 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +/* + Intel INTELLEC® 4/MOD 40 + + Set the terminal for 110 1/8/N/2 to talk to the monitor. + It only likes to see uppercase letters, and gets annoyed at lowercase. + */ +#include "emu.h" + +#include "bus/rs232/rs232.h" +#include "cpu/mcs40/mcs40.h" + + +namespace { + +class intellec4_40_state : public driver_device +{ +public: + intellec4_40_state(machine_config const &mconfig, device_type type, char const *tag) + : driver_device(mconfig, type, tag) + , m_tty(*this, "tty") + { + } + + DECLARE_READ8_MEMBER(tty_r); + DECLARE_WRITE8_MEMBER(tty_w); + +private: + required_device m_tty; +}; + + +READ8_MEMBER(intellec4_40_state::tty_r) +{ + return m_tty->rxd_r() ? 0x0 : 0x1; +} + +WRITE8_MEMBER(intellec4_40_state::tty_w) +{ + m_tty->write_txd(BIT(data, 0)); +} + + +ADDRESS_MAP_START(mod40_program, AS_PROGRAM, 8, intellec4_40_state) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION("monitor", 0x0000) // 4289 + 4 * 1702A +ADDRESS_MAP_END + +ADDRESS_MAP_START(mod40_data, AS_DATA, 8, intellec4_40_state) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x00ff) AM_RAM // 4 * 4002 +ADDRESS_MAP_END + +ADDRESS_MAP_START(mod40_io, AS_IO, 8, intellec4_40_state) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0700) AM_READ(tty_r) // RDR when RC=00 + AM_RANGE(0x1000, 0x103f) AM_MIRROR(0x0800) AM_WRITE(tty_w) // WMP when RC=00 +ADDRESS_MAP_END + + +MACHINE_CONFIG_START(intlc440) + MCFG_CPU_ADD("maincpu", I4040, 5185000./7) + MCFG_CPU_PROGRAM_MAP(mod40_program) + MCFG_CPU_DATA_MAP(mod40_data) + MCFG_CPU_IO_MAP(mod40_io) + + MCFG_RS232_PORT_ADD("tty", default_rs232_devices, "terminal") +MACHINE_CONFIG_END + + +INPUT_PORTS_START(intlc440) +INPUT_PORTS_END + + +ROM_START(intlc440) + ROM_REGION(0x0400, "monitor", 0) + ROM_DEFAULT_BIOS("v2.1") + ROM_SYSTEM_BIOS(0, "v2.1", "MON 4 V2.1") + ROMX_LOAD("mon_4-000-v_2.1.a1", 0x0000, 0x0100, CRC(0a08d83d) SHA1(e7044f3b54a16d925aaffc85b0c6001f740ea4c5), ROM_BIOS(1)) + ROMX_LOAD("mon_4-100-v_2.1.a2", 0x0100, 0x0100, CRC(66562a4f) SHA1(040749c45e95dfc39b3397d0c31c8b4c11f0a5fc), ROM_BIOS(1)) + ROMX_LOAD("mon_4-200-v_2.1.a3", 0x0200, 0x0100, CRC(fe039c68) SHA1(1801cfcc7514412865c0fdc7d1800fcf583a2d2a), ROM_BIOS(1)) + ROMX_LOAD("mon_4-300-v_2.1.a4", 0x0300, 0x0100, CRC(3724d5af) SHA1(b764b3bb3541fbda875f7a7655f46aa54b332631), ROM_BIOS(1)) + ROM_SYSTEM_BIOS(1, "v2.1_1200", "MON 4 V2.1 1200 Baud hack") + ROMX_LOAD("mon_4-000-v_2.1.a1", 0x0000, 0x0100, CRC(0a08d83d) SHA1(e7044f3b54a16d925aaffc85b0c6001f740ea4c5), ROM_BIOS(2)) + ROMX_LOAD("i40_mon-1.a2", 0x0100, 0x0100, CRC(cd9fecd6) SHA1(9c4fb85118c881687fd4b324e5089df05d1e63d1), ROM_BIOS(2)) + ROMX_LOAD("i40_mon-2.a3", 0x0200, 0x0100, CRC(037de128) SHA1(3694636e1f4e23688b36ea9ee755a0c5888f4328), ROM_BIOS(2)) + ROMX_LOAD("1200_baud-i40_mon-f3.a4", 0x0300, 0x0100, CRC(f3198d79) SHA1(b7903073b69f487b6f78842c08694f12225d85f0), ROM_BIOS(2)) +ROM_END + +} // anonymous namespace + +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1974?, intlc440, 0, 0, intlc440, intlc440, intellec4_40_state, 0, "Intel", "INTELLEC 4/MOD40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4dd672094df..13d2e200f94 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15058,6 +15058,9 @@ instantm // @source:instruct.cpp instruct // +@source:intellec4.cpp +intlc440 // + @source:interact.cpp hector1 // interact // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 984ed80b3cc..187db5a91bd 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -276,6 +276,7 @@ indiana.cpp indigo.cpp indy_indigo2.cpp instruct.cpp +intellec4.cpp interact.cpp interpro.cpp intv.cpp -- cgit v1.2.3