New machines marked NOT_WORKING

------------------------------
Intel INTELLEC 4/MOD 40 [Vas Crabb]
This commit is contained in:
Vas Crabb 2017-06-27 21:48:24 +10:00
parent e52b17c78b
commit fa4293fc03
4 changed files with 99 additions and 0 deletions

View File

@ -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",

View File

@ -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<rs232_port_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 )

View File

@ -15058,6 +15058,9 @@ instantm //
@source:instruct.cpp
instruct //
@source:intellec4.cpp
intlc440 //
@source:interact.cpp
hector1 //
interact //

View File

@ -276,6 +276,7 @@ indiana.cpp
indigo.cpp
indy_indigo2.cpp
instruct.cpp
intellec4.cpp
interact.cpp
interpro.cpp
intv.cpp