From 16a1e4be4f6c417a35ac81a417d9873adf4fb99b Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 10 Apr 2017 23:25:28 +0200 Subject: fidelz80: WIP skeleton driver for Sensory chess challenger 8 (nw) --- src/mame/drivers/fidelz80.cpp | 88 +++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + 2 files changed, 89 insertions(+) diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp index 8750b995664..c3ec8206385 100644 --- a/src/mame/drivers/fidelz80.cpp +++ b/src/mame/drivers/fidelz80.cpp @@ -553,6 +553,11 @@ public: DECLARE_READ8_MEMBER(bcc_input_r); DECLARE_WRITE8_MEMBER(bcc_control_w); + // SCC + DECLARE_READ8_MEMBER(scc_input_r); + DECLARE_WRITE8_MEMBER(scc_control_w); + DECLARE_WRITE8_MEMBER(scc_leds_w); + // VSC void vsc_prepare_display(); DECLARE_READ8_MEMBER(vsc_io_trampoline_r); @@ -911,6 +916,32 @@ READ8_MEMBER(fidelz80_state::bcc_input_r) +/****************************************************************************** + SCC +******************************************************************************/ + +// TTL + +WRITE8_MEMBER(fidelz80_state::scc_leds_w) +{ +} + +WRITE8_MEMBER(fidelz80_state::scc_control_w) +{ + // d0-d3: input mux, speaker out + m_inp_mux = 1 << (data & 0xf); + m_dac->write(BIT(m_inp_mux, 9)); +} + +READ8_MEMBER(fidelz80_state::scc_input_r) +{ + // d0-d7: multiplexed inputs + //return rand(); + return read_inputs(9); +} + + + /****************************************************************************** VSC ******************************************************************************/ @@ -1133,6 +1164,20 @@ static ADDRESS_MAP_START( bcc_io, AS_IO, 8, fidelz80_state ) ADDRESS_MAP_END +// SCC + +static ADDRESS_MAP_START( scc_map, AS_PROGRAM, 8, fidelz80_state ) + AM_RANGE(0x0000, 0x0fff) AM_ROM + AM_RANGE(0x5000, 0x50ff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( scc_io, AS_IO, 8, fidelz80_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0xf5, 0xf5) AM_WRITE(scc_control_w) + AM_RANGE(0xf6, 0xf6) AM_READ(scc_input_r) +ADDRESS_MAP_END + + // VSC static ADDRESS_MAP_START( vsc_map, AS_PROGRAM, 8, fidelz80_state ) @@ -1463,6 +1508,22 @@ static INPUT_PORTS_START( cb_buttons ) PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor") INPUT_PORTS_END + +static INPUT_PORTS_START( scc ) + PORT_INCLUDE( 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("Pawn") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Rook") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Knight") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bishop") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Queen") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("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 + + static INPUT_PORTS_START( vsc ) PORT_INCLUDE( cb_buttons ) @@ -1547,6 +1608,24 @@ static MACHINE_CONFIG_START( bcc, fidelz80_state ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MACHINE_CONFIG_END +static MACHINE_CONFIG_START( scc, fidelz80_state ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", Z80, XTAL_3_9MHz) + MCFG_CPU_PROGRAM_MAP(scc_map) + MCFG_CPU_IO_MAP(scc_io) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) + //MCFG_DEFAULT_LAYOUT(layout_fidel_scc) + MCFG_DEFAULT_LAYOUT(layout_fidel_vsc) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("speaker") + MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) +MACHINE_CONFIG_END + static MACHINE_CONFIG_START( cc10, fidelz80_state ) /* basic machine hardware */ @@ -1678,12 +1757,19 @@ ROM_START( cc10 ) ROM_LOAD( "cc10b", 0x0000, 0x1000, CRC(afd3ca99) SHA1(870d09b2b52ccb8572d69642c59b5215d5fb26ab) ) // 2332 ROM_END + ROM_START( cc7 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cn19103n_bcc-revb", 0x0000, 0x1000, CRC(a397d471) SHA1(9b12bc442fccee40f4d8500c792bc9d886c5e1a5) ) // 2332 ROM_END +ROM_START( fscc8 ) // model SCC, PCB label 510-1011 REV.2 + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "101-32017", 0x0000, 0x1000, CRC(5340820d) SHA1(e3494c7624b3cacbbb9a0a8cc9e1ed3e00326dfd) ) // MOS 2332 +ROM_END + + ROM_START( vcc ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD("101-32103.bin", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) ) // 32014.VCC??? at location b3? @@ -1850,6 +1936,8 @@ ROM_END CONS( 1978, cc10, 0, 0, cc10, cc10, driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, cc7, 0, 0, bcc, bcc, driver_device, 0, "Fidelity Electronics", "Chess Challenger 7 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, fscc8, 0, 0, scc, scc, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 8", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NOT_WORKING ) + CONS( 1979, vcc, 0, 0, vcc, vcc, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, vccsp, vcc, 0, vcc, vccsp, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, vccg, vcc, 0, vcc, vccg, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 83cce37405f..52555d452d9 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12411,6 +12411,7 @@ bridgec3 // cc10 // cc7 // damesc // +fscc8 // uvc // UVC: Advanced Voice Chess Challenger (English) uvcfr // * French uvcg // * German -- cgit v1.2.3