From 8e3a8fd4a33f23f222c58dce406375f8c715c311 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 16 Feb 2019 22:20:56 +0100 Subject: rename fidelmcs48 to fidel_sc6 (nw) --- scripts/target/mame/mess.lua | 2 +- src/mame/drivers/fidel_sc6.cpp | 217 ++++++++++++++++++++++++++++++++++++++++ src/mame/drivers/fidelmcs48.cpp | 217 ---------------------------------------- src/mame/mame.lst | 6 +- src/mame/mess.flt | 2 +- 5 files changed, 222 insertions(+), 222 deletions(-) create mode 100644 src/mame/drivers/fidel_sc6.cpp delete mode 100644 src/mame/drivers/fidelmcs48.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 964d45835a0..24db5d6b1a5 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2127,9 +2127,9 @@ createMESSProjects(_target, _subtarget, "fidelity") files { MAME_DIR .. "src/mame/drivers/fidelz80.cpp", MAME_DIR .. "src/mame/includes/fidelbase.h", + MAME_DIR .. "src/mame/drivers/fidel_sc6.cpp", MAME_DIR .. "src/mame/drivers/fidel6502.cpp", MAME_DIR .. "src/mame/drivers/fidel68k.cpp", - MAME_DIR .. "src/mame/drivers/fidelmcs48.cpp", } createMESSProjects(_target, _subtarget, "force") diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp new file mode 100644 index 00000000000..6c06abbbcc4 --- /dev/null +++ b/src/mame/drivers/fidel_sc6.cpp @@ -0,0 +1,217 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:yoyo_chessboard +/****************************************************************************** + +Sensory Chess Challenger 6 (model SC6): +- PCB label 510-1045B01 +- INS8040N-11 MCU, 11MHz XTAL +- external 4KB ROM 2332 101-1035A01, in module slot +- buzzer, 2 7seg LEDs, 8*8 chessboard buttons + +released modules, * denotes not dumped yet: +- *BO6: Book Openings I +- *CG6: Greatest Chess Games 1 +- SC6: pack-in, original program + +SC6 program is contained in BO6 and CG6. + +******************************************************************************/ + +#include "emu.h" +#include "includes/fidelbase.h" + +#include "cpu/mcs48/mcs48.h" +#include "sound/volt_reg.h" +#include "speaker.h" + +// internal artwork +#include "fidel_sc6.lh" // clickable + + +class sc6_state : public fidelbase_state +{ +public: + sc6_state(const machine_config &mconfig, device_type type, const char *tag) : + fidelbase_state(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + + void sc6(machine_config &config); + +private: + // devices/pointers + required_device m_maincpu; + + void sc6_map(address_map &map); + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(sc6_cartridge); + + // I/O handlers + void sc6_prepare_display(); + DECLARE_WRITE8_MEMBER(sc6_mux_w); + DECLARE_WRITE8_MEMBER(sc6_select_w); + DECLARE_READ8_MEMBER(sc6_input_r); + DECLARE_READ_LINE_MEMBER(sc6_input6_r); + DECLARE_READ_LINE_MEMBER(sc6_input7_r); +}; + + + +/****************************************************************************** + Devices, I/O +******************************************************************************/ + +// cartridge + +DEVICE_IMAGE_LOAD_MEMBER(sc6_state, sc6_cartridge) +{ + u32 size = m_cart->common_get_size("rom"); + + // 4KB ROM only? + if (size != 0x1000) + { + image.seterror(IMAGE_ERROR_UNSPECIFIED, "Invalid file size"); + return image_init_result::FAIL; + } + + m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + + return image_init_result::PASS; +} + + +// MCU ports/generic + +void sc6_state::sc6_prepare_display() +{ + // 2 7seg leds + set_display_segmask(3, 0x7f); + display_matrix(7, 2, m_7seg_data, m_led_select); +} + +WRITE8_MEMBER(sc6_state::sc6_mux_w) +{ + // P24-P27: 7442 A-D + u16 sel = 1 << (data >> 4 & 0xf) & 0x3ff; + + // 7442 0-8: input mux, 7seg data + m_inp_mux = sel & 0x1ff; + m_7seg_data = sel & 0x7f; + sc6_prepare_display(); + + // 7442 9: speaker out + m_dac->write(BIT(sel, 9)); +} + +WRITE8_MEMBER(sc6_state::sc6_select_w) +{ + // P16,P17: digit select + m_led_select = ~data >> 6 & 3; + sc6_prepare_display(); +} + +READ8_MEMBER(sc6_state::sc6_input_r) +{ + // P10-P15: multiplexed inputs low + return (~read_inputs(9) & 0x3f) | 0xc0; +} + +READ_LINE_MEMBER(sc6_state::sc6_input6_r) +{ + // T0: multiplexed inputs bit 6 + return ~read_inputs(9) >> 6 & 1; +} + +READ_LINE_MEMBER(sc6_state::sc6_input7_r) +{ + // T1: multiplexed inputs bit 7 + return ~read_inputs(9) >> 7 & 1; +} + + + +/****************************************************************************** + Address Maps +******************************************************************************/ + +void sc6_state::sc6_map(address_map &map) +{ + map(0x0000, 0x0fff).r("cartslot", FUNC(generic_slot_device::read_rom)); +} + + + +/****************************************************************************** + Input Ports +******************************************************************************/ + +static INPUT_PORTS_START( sc6 ) + PORT_INCLUDE( fidel_cb_buttons ) + + PORT_START("IN.8") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("RV / Pawn") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("DM / Knight") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("TB / Bishop") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("LV / Rook") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("PV / Queen") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("PB / King") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("RE") +INPUT_PORTS_END + + + +/****************************************************************************** + Machine Drivers +******************************************************************************/ + +void sc6_state::sc6(machine_config &config) +{ + /* basic machine hardware */ + I8040(config, m_maincpu, 11_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &sc6_state::sc6_map); + m_maincpu->p2_out_cb().set(FUNC(sc6_state::sc6_mux_w)); + m_maincpu->p1_in_cb().set(FUNC(sc6_state::sc6_input_r)); + m_maincpu->p1_out_cb().set(FUNC(sc6_state::sc6_select_w)); + m_maincpu->t0_in_cb().set(FUNC(sc6_state::sc6_input6_r)); + m_maincpu->t1_in_cb().set(FUNC(sc6_state::sc6_input7_r)); + + TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_fidel_sc6); + + /* sound hardware */ + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); + vref.set_output(5.0); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + + /* cartridge */ + generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_sc6", "bin")); + cartslot.set_device_load(device_image_load_delegate(&sc6_state::device_image_load_sc6_cartridge, this)); + cartslot.set_must_be_loaded(true); + + SOFTWARE_LIST(config, "cart_list").set_original("fidel_sc6"); +} + + + +/****************************************************************************** + ROM Definitions +******************************************************************************/ + +ROM_START( fscc6 ) + ROM_REGION( 0x1000, "maincpu", ROMREGION_ERASE00 ) + // none here, it's in the module slot +ROM_END + + + +/****************************************************************************** + Drivers +******************************************************************************/ + +// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1982, fscc6, 0, 0, sc6, sc6, sc6_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 6", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/fidelmcs48.cpp b/src/mame/drivers/fidelmcs48.cpp deleted file mode 100644 index 6c06abbbcc4..00000000000 --- a/src/mame/drivers/fidelmcs48.cpp +++ /dev/null @@ -1,217 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:hap -// thanks-to:yoyo_chessboard -/****************************************************************************** - -Sensory Chess Challenger 6 (model SC6): -- PCB label 510-1045B01 -- INS8040N-11 MCU, 11MHz XTAL -- external 4KB ROM 2332 101-1035A01, in module slot -- buzzer, 2 7seg LEDs, 8*8 chessboard buttons - -released modules, * denotes not dumped yet: -- *BO6: Book Openings I -- *CG6: Greatest Chess Games 1 -- SC6: pack-in, original program - -SC6 program is contained in BO6 and CG6. - -******************************************************************************/ - -#include "emu.h" -#include "includes/fidelbase.h" - -#include "cpu/mcs48/mcs48.h" -#include "sound/volt_reg.h" -#include "speaker.h" - -// internal artwork -#include "fidel_sc6.lh" // clickable - - -class sc6_state : public fidelbase_state -{ -public: - sc6_state(const machine_config &mconfig, device_type type, const char *tag) : - fidelbase_state(mconfig, type, tag), - m_maincpu(*this, "maincpu") - { } - - void sc6(machine_config &config); - -private: - // devices/pointers - required_device m_maincpu; - - void sc6_map(address_map &map); - - DECLARE_DEVICE_IMAGE_LOAD_MEMBER(sc6_cartridge); - - // I/O handlers - void sc6_prepare_display(); - DECLARE_WRITE8_MEMBER(sc6_mux_w); - DECLARE_WRITE8_MEMBER(sc6_select_w); - DECLARE_READ8_MEMBER(sc6_input_r); - DECLARE_READ_LINE_MEMBER(sc6_input6_r); - DECLARE_READ_LINE_MEMBER(sc6_input7_r); -}; - - - -/****************************************************************************** - Devices, I/O -******************************************************************************/ - -// cartridge - -DEVICE_IMAGE_LOAD_MEMBER(sc6_state, sc6_cartridge) -{ - u32 size = m_cart->common_get_size("rom"); - - // 4KB ROM only? - if (size != 0x1000) - { - image.seterror(IMAGE_ERROR_UNSPECIFIED, "Invalid file size"); - return image_init_result::FAIL; - } - - m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); - m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); - - return image_init_result::PASS; -} - - -// MCU ports/generic - -void sc6_state::sc6_prepare_display() -{ - // 2 7seg leds - set_display_segmask(3, 0x7f); - display_matrix(7, 2, m_7seg_data, m_led_select); -} - -WRITE8_MEMBER(sc6_state::sc6_mux_w) -{ - // P24-P27: 7442 A-D - u16 sel = 1 << (data >> 4 & 0xf) & 0x3ff; - - // 7442 0-8: input mux, 7seg data - m_inp_mux = sel & 0x1ff; - m_7seg_data = sel & 0x7f; - sc6_prepare_display(); - - // 7442 9: speaker out - m_dac->write(BIT(sel, 9)); -} - -WRITE8_MEMBER(sc6_state::sc6_select_w) -{ - // P16,P17: digit select - m_led_select = ~data >> 6 & 3; - sc6_prepare_display(); -} - -READ8_MEMBER(sc6_state::sc6_input_r) -{ - // P10-P15: multiplexed inputs low - return (~read_inputs(9) & 0x3f) | 0xc0; -} - -READ_LINE_MEMBER(sc6_state::sc6_input6_r) -{ - // T0: multiplexed inputs bit 6 - return ~read_inputs(9) >> 6 & 1; -} - -READ_LINE_MEMBER(sc6_state::sc6_input7_r) -{ - // T1: multiplexed inputs bit 7 - return ~read_inputs(9) >> 7 & 1; -} - - - -/****************************************************************************** - Address Maps -******************************************************************************/ - -void sc6_state::sc6_map(address_map &map) -{ - map(0x0000, 0x0fff).r("cartslot", FUNC(generic_slot_device::read_rom)); -} - - - -/****************************************************************************** - Input Ports -******************************************************************************/ - -static INPUT_PORTS_START( sc6 ) - PORT_INCLUDE( fidel_cb_buttons ) - - PORT_START("IN.8") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("RV / Pawn") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("DM / Knight") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("TB / Bishop") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("LV / Rook") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("PV / Queen") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("PB / King") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("RE") -INPUT_PORTS_END - - - -/****************************************************************************** - Machine Drivers -******************************************************************************/ - -void sc6_state::sc6(machine_config &config) -{ - /* basic machine hardware */ - I8040(config, m_maincpu, 11_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &sc6_state::sc6_map); - m_maincpu->p2_out_cb().set(FUNC(sc6_state::sc6_mux_w)); - m_maincpu->p1_in_cb().set(FUNC(sc6_state::sc6_input_r)); - m_maincpu->p1_out_cb().set(FUNC(sc6_state::sc6_select_w)); - m_maincpu->t0_in_cb().set(FUNC(sc6_state::sc6_input6_r)); - m_maincpu->t1_in_cb().set(FUNC(sc6_state::sc6_input7_r)); - - TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1)); - config.set_default_layout(layout_fidel_sc6); - - /* sound hardware */ - SPEAKER(config, "speaker").front_center(); - DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); - voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); - vref.set_output(5.0); - vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); - - /* cartridge */ - generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_sc6", "bin")); - cartslot.set_device_load(device_image_load_delegate(&sc6_state::device_image_load_sc6_cartridge, this)); - cartslot.set_must_be_loaded(true); - - SOFTWARE_LIST(config, "cart_list").set_original("fidel_sc6"); -} - - - -/****************************************************************************** - ROM Definitions -******************************************************************************/ - -ROM_START( fscc6 ) - ROM_REGION( 0x1000, "maincpu", ROMREGION_ERASE00 ) - // none here, it's in the module slot -ROM_END - - - -/****************************************************************************** - Drivers -******************************************************************************/ - -// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -CONS( 1982, fscc6, 0, 0, sc6, sc6, sc6_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 6", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b8f3dcf9ee0..183cbd5ef48 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12849,6 +12849,9 @@ feversoc // (c) 2004 fgoal // TF (c) 1979 Taito Corporation fgoala // MF (c) 1979 Taito Corporation +@source:fidel_sc6.cpp +fscc6 // + @source:fidel6502.cpp chesster // chesstera // @@ -12921,9 +12924,6 @@ fex68kb // fex68km2 // fex68km3 // -@source:fidelmcs48.cpp -fscc6 // - @source:fidelz80.cpp backgamc // bridgec3 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 88927ee51ea..93da1ab056b 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -239,9 +239,9 @@ fb01.cpp fc100.cpp fccpu20.cpp fccpu30.cpp +fidel_sc6.cpp fidel6502.cpp fidel68k.cpp -fidelmcs48.cpp fidelz80.cpp fk1.cpp fm7.cpp -- cgit v1.2.3