From 036927b005e1e5ce7f3ba05f1a541cae4dc5b181 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 20 Jun 2020 18:04:13 -0400 Subject: [PATCH] braiplus: Separate driver (nw) --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/braiplus.cpp | 87 +++++++++++++++++++++++++++++++++++ src/mame/drivers/homelab.cpp | 12 ----- src/mame/mame.lst | 4 +- src/mame/mess.flt | 1 + 5 files changed, 92 insertions(+), 13 deletions(-) create mode 100644 src/mame/drivers/braiplus.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index fb4cf1b172a..64d63911b7d 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2503,6 +2503,7 @@ files { createMESSProjects(_target, _subtarget, "homelab") files { + MAME_DIR .. "src/mame/drivers/braiplus.cpp", MAME_DIR .. "src/mame/drivers/homelab.cpp", } diff --git a/src/mame/drivers/braiplus.cpp b/src/mame/drivers/braiplus.cpp new file mode 100644 index 00000000000..8ea6ac83db0 --- /dev/null +++ b/src/mame/drivers/braiplus.cpp @@ -0,0 +1,87 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/*************************************************************************** + + Skeleton driver for BraiLab Plus talking computer. + +***************************************************************************/ + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "machine/i8251.h" +#include "machine/z80pio.h" + +class braiplus_state : public driver_device +{ +public: + braiplus_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_pio(*this, "pio%u", 1U) + { + } + + void braiplus(machine_config &config); + +private: + void mem_map(address_map &map); + void io_map(address_map &map); + + required_device m_maincpu; + required_device_array m_pio; +}; + + +void braiplus_state::mem_map(address_map &map) +{ + map(0x0000, 0x3fff).rom().region("maincpu", 0); + map(0xa000, 0xbfff).ram(); + map(0xf200, 0xf2ff).ram(); // non-volatile memory??? + map(0xf800, 0xffff).ram(); +} + +void braiplus_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x04, 0x07).rw(m_pio[0], FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x08, 0x0b).rw(m_pio[1], FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x0c, 0x0d).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write)); + map(0x14, 0x14).nopw(); +} + + +static INPUT_PORTS_START(braiplus) +INPUT_PORTS_END + +static const z80_daisy_config daisy_chain[] = +{ + { "pio1" }, + { "pio2" }, + { nullptr } +}; + +void braiplus_state::braiplus(machine_config &config) +{ + Z80(config, m_maincpu, 4'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &braiplus_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &braiplus_state::io_map); + m_maincpu->set_daisy_config(daisy_chain); + + Z80PIO(config, m_pio[0], 4'000'000); + m_pio[0]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + + Z80PIO(config, m_pio[1], 4'000'000); + m_pio[1]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + + I8251(config, "usart", 2'000'000); +} + +ROM_START( braiplus ) + ROM_REGION( 0x4000, "maincpu", 0 ) + ROM_LOAD( "brailabplus.bin", 0x0000, 0x4000, CRC(521d6952) SHA1(f7405520d86fc7abd2dec51d1d016658472f6fe8) ) + + ROM_REGION( 0x0800, "chargen", 0 ) // no idea what chargen it uses, using the one from homelab4 for now + ROM_LOAD( "hl4.chr", 0x0000, 0x0800, BAD_DUMP CRC(f58ee39b) SHA1(49399c42d60a11b218a225856da86a9f3975a78a)) +ROM_END + +COMP( 1988, braiplus, 0, 0, braiplus, braiplus, braiplus_state, empty_init, "Jozsef and Endre Lukacs", "BraiLab Plus", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp index 20cd2dfa9f7..c43a45616d6 100644 --- a/src/mame/drivers/homelab.cpp +++ b/src/mame/drivers/homelab.cpp @@ -24,9 +24,6 @@ The bios never talks to it. Official port numbers are 3C-3F. - Brailab4 - Same as homelab3. - - Braiplus - No work has been done. Needs to be developed from scratch. - Since it is a CP/M machine, it probably should have its own - source, once information can be found. TM188 is (it seems) equivalent to 27S19, TBP18S030N, 6331-1, 74S288, 82S123, @@ -890,14 +887,6 @@ ROM_START( brailab4 ) ROM_LOAD_OPTIONAL( "brlcpm.rom", 0x5000, 0x0020, CRC(b936d568) SHA1(150330eccbc4b664eba4103f051d6e932038e9e8) ) ROM_END -ROM_START( braiplus ) - ROM_REGION( 0x5000, "maincpu", 0 ) - ROM_LOAD( "brailabplus.bin", 0x0000, 0x4000, CRC(521d6952) SHA1(f7405520d86fc7abd2dec51d1d016658472f6fe8) ) - - ROM_REGION( 0x0800, "chargen", 0 ) // no idea what chargen it uses, using the one from homelab4 for now - ROM_LOAD( "hl4.chr", 0x0000, 0x0800, BAD_DUMP CRC(f58ee39b) SHA1(49399c42d60a11b218a225856da86a9f3975a78a)) -ROM_END - /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ @@ -905,4 +894,3 @@ COMP( 1982, homelab2, 0, 0, homelab2, homelab2, homelab2_state, emp COMP( 1983, homelab3, homelab2, 0, homelab3, homelab3, homelab3_state, empty_init, "Jozsef and Endre Lukacs", "Homelab 3", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) COMP( 1984, homelab4, homelab2, 0, homelab3, homelab3, homelab3_state, empty_init, "Jozsef and Endre Lukacs", "Homelab 4", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) COMP( 1984, brailab4, homelab2, 0, brailab4, brailab4, brailab4_state, empty_init, "Jozsef and Endre Lukacs", "Brailab 4", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1988, braiplus, homelab2, 0, brailab4, brailab4, brailab4_state, empty_init, "Jozsef and Endre Lukacs", "Brailab Plus", MACHINE_IS_SKELETON | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0005816046c..ce4be0957ba 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9428,6 +9428,9 @@ bp1200 // (c) 1991 BP Microsystems @source:br8641.cpp br8641 // +@source:braiplus.cpp +braiplus // + @source:brkthru.cpp brkthru // (c) 1986 Data East USA (US) brkthruj // (c) 1986 Data East Corporation (Japan) @@ -16240,7 +16243,6 @@ vitaminc // (c) 1989 Home Data @source:homelab.cpp brailab4 // -braiplus // homelab2 // homelab3 // homelab4 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 0ef8f798836..4e6cf7f5df8 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -125,6 +125,7 @@ boss_se70.cpp boss_sx700.cpp bpmmicro.cpp br8641.cpp +braiplus.cpp bullet.cpp busicom.cpp bw12.cpp