From b55e377de35e99c930dcebc4008b34feb403a2f9 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 7 Oct 2018 19:10:16 -0400 Subject: [PATCH] New machines marked as NOT_WORKING ---------------------------------- HP 700/70 Windowing Terminal --- src/mame/drivers/hp700.cpp | 53 ++++++++++++++++++++++++++++++-------- src/mame/mame.lst | 1 + 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/mame/drivers/hp700.cpp b/src/mame/drivers/hp700.cpp index 62b7046de71..973796395dc 100644 --- a/src/mame/drivers/hp700.cpp +++ b/src/mame/drivers/hp700.cpp @@ -21,10 +21,13 @@ public: { } void hp700_92(machine_config &config); + void hp700_70(machine_config &config); private: void io_map(address_map &map); void mem_map(address_map &map); + void hp700_70_map(address_map &map); + required_device m_maincpu; required_device m_duart; }; @@ -45,24 +48,45 @@ void hp700_state::mem_map(address_map &map) map(0xffff0, 0xfffff).rom().region("maincpu", 0x1fff0); } +void hp700_state::hp700_70_map(address_map &map) +{ + map(0x00000, 0x3ffff).rom().region("maincpu", 0); + map(0x60000, 0x6ffff).ram(); + map(0x70000, 0x71fff).ram().share("nvram"); + map(0x780f0, 0x780ff).rw(m_duart, FUNC(scn2681_device::read), FUNC(scn2681_device::write)); + map(0xffff0, 0xfffff).rom().region("maincpu", 0x1fff0); +} + void hp700_state::io_map(address_map &map) { map(0x00f2, 0x00f2).nopw(); } -static INPUT_PORTS_START( hp700_92 ) +static INPUT_PORTS_START(hp700_92) INPUT_PORTS_END -MACHINE_CONFIG_START(hp700_state::hp700_92) - MCFG_DEVICE_ADD("maincpu", V20, XTAL(29'491'200) / 3) // divider not verified - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) +void hp700_state::hp700_92(machine_config &config) +{ + V20(config, m_maincpu, 29.4912_MHz_XTAL / 3); // divider not verified + m_maincpu->set_addrmap(AS_PROGRAM, &hp700_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &hp700_state::io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_DEVICE_ADD("duart", SCN2681, XTAL(29'491'200) / 8) // divider not verified - MCFG_MC68681_IRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) -MACHINE_CONFIG_END + SCN2681(config, m_duart, 29.4912_MHz_XTAL / 8); // divider not verified + m_duart->irq_cb().set_inputline(m_maincpu, INPUT_LINE_NMI); +} + +void hp700_state::hp700_70(machine_config &config) +{ + V20(config, m_maincpu, 39.3216_MHz_XTAL / 4); // divider not verified (XTAL value not readable, assumed to be same as HP 700/60) + m_maincpu->set_addrmap(AS_PROGRAM, &hp700_state::hp700_70_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + + SCN2681(config, m_duart, 39.3216_MHz_XTAL / 8); // divider not verified; device type probably wrong (48-pin DIP labeled 1LVS-0001) + m_duart->irq_cb().set_inputline(m_maincpu, INPUT_LINE_NMI); +} /************************************************************************************************************** @@ -73,9 +97,16 @@ Crystals: 29.4912 ***************************************************************************************************************/ -ROM_START( hp700_92 ) +ROM_START(hp700_92) ROM_REGION(0x20000, "maincpu", 0) - ROM_LOAD( "5181-8672.u803", 0x00000, 0x20000, CRC(21440d2f) SHA1(69a3de064ae2b18adc46c2fdd0bf69620375efe7) ) + ROM_LOAD("5181-8672.u803", 0x00000, 0x20000, CRC(21440d2f) SHA1(69a3de064ae2b18adc46c2fdd0bf69620375efe7)) ROM_END -COMP( 1987, hp700_92, 0, 0, hp700_92, hp700_92, hp700_state, empty_init, "HP", "HP-700/92", MACHINE_IS_SKELETON ) +ROM_START(hp700_70) + ROM_REGION(0x40000, "maincpu", 0) // "© HP 1994 REV: 3440" + ROM_LOAD("c1093-80008.bin", 0x00000, 0x20000, CRC(25c527a6) SHA1(97e82774d25eab6fd4cc6ff7a5a473341281abb1)) // "CKSM 96A5" + ROM_LOAD("c1093-80009.bin", 0x20000, 0x20000, CRC(369e6855) SHA1(938ac9cd120d0aa7c76011d1a5e91244a142b397)) // "CKSM 7B6B" +ROM_END + +COMP(1987, hp700_92, 0, 0, hp700_92, hp700_92, hp700_state, empty_init, "Hewlett-Packard", "HP 700/92 Display Terminal", MACHINE_IS_SKELETON) +COMP(1994, hp700_70, 0, 0, hp700_70, hp700_92, hp700_state, empty_init, "Hewlett-Packard", "HP 700/70 Windowing Terminal", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index aa9e94a01f1..3fb7bf72a06 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15284,6 +15284,7 @@ hp49gp // HP 49G+ hp64k // @source:hp700.cpp +hp700_70 // hp700_92 // @source:hp9825.cpp