diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 42a4ef5580c..508b48997cb 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2270,6 +2270,7 @@ files { MAME_DIR .. "src/mame/drivers/sbc6510.cpp", MAME_DIR .. "src/mame/drivers/sitcom.cpp", MAME_DIR .. "src/mame/drivers/slc1.cpp", + MAME_DIR .. "src/mame/drivers/slc1a.cpp", MAME_DIR .. "src/mame/drivers/uzebox.cpp", MAME_DIR .. "src/mame/drivers/z80dev.cpp", } @@ -3596,7 +3597,6 @@ files { MAME_DIR .. "src/mame/drivers/mc8030.cpp", MAME_DIR .. "src/mame/drivers/poly880.cpp", MAME_DIR .. "src/mame/includes/poly880.h", - MAME_DIR .. "src/mame/drivers/sc1.cpp", MAME_DIR .. "src/mame/drivers/sc2.cpp", } diff --git a/src/mame/drivers/slc1.cpp b/src/mame/drivers/slc1.cpp index 0452099827d..126ec9b6a72 100644 --- a/src/mame/drivers/slc1.cpp +++ b/src/mame/drivers/slc1.cpp @@ -56,6 +56,8 @@ Pasting doesn't work, but if it did... #include "slc1.lh" +namespace { + class slc1_state : public driver_device { public: @@ -297,6 +299,8 @@ ROM_START(slc1) ROMX_LOAD("sc1-v2.bin", 0x0000, 0x1000, CRC(1f122a85) SHA1(d60f89f8b59d04f4cecd6e3ecfe0a24152462a36), ROM_BIOS(1)) ROM_END +} // anonymous namespace -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, empty_init, "Dr. Dieter Scheuschner", "Schach- und Lerncomputer SLC 1", 0 ) + +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ +COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, empty_init, "Dieter Scheuschner", "Schach- und Lerncomputer SLC 1", 0 ) diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/slc1a.cpp similarity index 77% rename from src/mame/drivers/sc1.cpp rename to src/mame/drivers/slc1a.cpp index 2fa3a1b858a..6009bfead12 100644 --- a/src/mame/drivers/sc1.cpp +++ b/src/mame/drivers/slc1a.cpp @@ -2,7 +2,8 @@ // copyright-holders:Sandro Ronco /*************************************************************************** -This appears to be a prototype of SLC 1, it's definitely not VEB SC 1. +This appears to be a prototype or alternate version of SLC 1. +The ROM was first assumed to be VEB SC 1, but unfortunately it isn't. TODO: - merge with slc1.cpp? but hardware differs too much @@ -20,15 +21,15 @@ TODO: #include "sound/volt_reg.h" #include "speaker.h" -#include "sc1.lh" +#include "slc1a.lh" namespace { -class slc1p_state : public driver_device +class slc1_state : public driver_device { public: - slc1p_state(const machine_config &mconfig, device_type type, const char *tag) : + slc1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_pio(*this, "z80pio"), @@ -37,7 +38,7 @@ public: m_digits(*this, "digit%u", 0U) { } - void slc1p(machine_config &config); + void slc1(machine_config &config); protected: virtual void machine_start() override; @@ -50,8 +51,8 @@ private: output_finder<4> m_digits; - void slc1p_io(address_map &map); - void slc1p_mem(address_map &map); + void main_io(address_map &map); + void main_map(address_map &map); uint8_t m_matrix; @@ -60,7 +61,7 @@ private: DECLARE_READ8_MEMBER(pio_port_b_r); }; -void slc1p_state::machine_start() +void slc1_state::machine_start() { m_digits.resolve(); @@ -74,10 +75,10 @@ void slc1p_state::machine_start() ***************************************************************************/ -WRITE8_MEMBER(slc1p_state::pio_port_a_w) +WRITE8_MEMBER(slc1_state::pio_port_a_w) { // digit segment data - uint8_t digit = bitswap<8>(data,3,4,6,0,1,2,7,5) & 0x7f; + uint8_t digit = bitswap<8>(data,3,4,6,0,1,2,7,5); if (m_matrix & 0x04) m_digits[3] = digit; @@ -96,7 +97,7 @@ WRITE8_MEMBER(slc1p_state::pio_port_a_w) ***************************************************************************/ -WRITE8_MEMBER(slc1p_state::matrix_w) +WRITE8_MEMBER(slc1_state::matrix_w) { // d1: speaker out //m_dac->write(BIT(data, 1)); @@ -105,7 +106,7 @@ WRITE8_MEMBER(slc1p_state::matrix_w) m_matrix = data; } -READ8_MEMBER(slc1p_state::pio_port_b_r) +READ8_MEMBER(slc1_state::pio_port_b_r) { uint8_t data = 0; @@ -118,25 +119,25 @@ READ8_MEMBER(slc1p_state::pio_port_b_r) } -void slc1p_state::slc1p_mem(address_map &map) +void slc1_state::main_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x0fff).rom(); map(0x4000, 0x43ff).ram(); } -void slc1p_state::slc1p_io(address_map &map) +void slc1_state::main_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); map(0x80, 0x83).rw(m_pio, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt)); - map(0xfc, 0xfc).w(FUNC(slc1p_state::matrix_w)); + map(0xfc, 0xfc).w(FUNC(slc1_state::matrix_w)); } /* Input ports */ -static INPUT_PORTS_START( slc1p ) +static INPUT_PORTS_START( slc1 ) PORT_START("LINE1") PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4 T") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) @@ -173,20 +174,20 @@ INPUT_PORTS_END /* Machine config */ -void slc1p_state::slc1p(machine_config &config) +void slc1_state::slc1(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 2500000); // U880 Z80 clone - m_maincpu->set_addrmap(AS_PROGRAM, &slc1p_state::slc1p_mem); - m_maincpu->set_addrmap(AS_IO, &slc1p_state::slc1p_io); + m_maincpu->set_addrmap(AS_PROGRAM, &slc1_state::main_map); + m_maincpu->set_addrmap(AS_IO, &slc1_state::main_io); /* video hardware */ - config.set_default_layout(layout_sc1); + config.set_default_layout(layout_slc1a); /* devices */ Z80PIO(config, m_pio, 2500000); - m_pio->out_pa_callback().set(FUNC(slc1p_state::pio_port_a_w)); - m_pio->in_pb_callback().set(FUNC(slc1p_state::pio_port_b_r)); + m_pio->out_pa_callback().set(FUNC(slc1_state::pio_port_a_w)); + m_pio->in_pb_callback().set(FUNC(slc1_state::pio_port_b_r)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); @@ -197,7 +198,7 @@ void slc1p_state::slc1p(machine_config &config) /* ROM definition */ -ROM_START( slc1p ) +ROM_START( slc1a ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "sc1.rom", 0x0000, 0x1000, CRC(26965b23) SHA1(01568911446eda9f05ec136df53da147b7c6f2bf)) ROM_END @@ -207,5 +208,5 @@ ROM_END /* Driver */ -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -COMP( 1989, slc1p, slc1, 0, slc1p, slc1p, slc1p_state, empty_init, "Dr. Dieter Scheuschner", "Schach- und Lerncomputer SLC 1 (prototype?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +COMP( 1989, slc1a, slc1, 0, slc1, slc1, slc1_state, empty_init, "Dieter Scheuschner", "Schach- und Lerncomputer SLC 1 (prototype?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/layout/sc1.lay b/src/mame/layout/slc1a.lay similarity index 100% rename from src/mame/layout/sc1.lay rename to src/mame/layout/slc1a.lay diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 56066458f26..c5079225a30 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -34117,9 +34117,6 @@ sbrkoutct // 034555-034559 proto ???? [6502] sbugger // (c) 1981 Game-A-Tron sbuggera // (c) 1981 Game-A-Tron -@source:sc1.cpp -slc1p - @source:sc2.cpp sc2 // sc2a // @@ -35555,6 +35552,9 @@ slapshot // D71 (c) 1994 Taito Corporation (Japan) @source:slc1.cpp slc1 // +@source:slc1a.cpp +slc1a + @source:sleic.cpp bikerace // bikerace2 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 9d851735886..3f80aaa1bfb 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -684,7 +684,6 @@ saturn.cpp savia84.cpp sbc6510.cpp sbrain.cpp -sc1.cpp sc2.cpp scopus.cpp scorpion.cpp @@ -706,6 +705,7 @@ si5500.cpp sitcom.cpp sk1.cpp slc1.cpp +slc1a.cpp slicer.cpp sm1800.cpp sm7238.cpp