summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/braiplus.cpp87
-rw-r--r--src/mame/drivers/homelab.cpp12
-rw-r--r--src/mame/mame.lst4
-rw-r--r--src/mame/mess.flt1
5 files changed, 92 insertions, 13 deletions
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<z80_device> m_maincpu;
+ required_device_array<z80pio_device, 2> 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