From bf8ff8906f2009c32f37b5941ba9ddaa6a818bc7 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 15 Mar 2017 15:43:52 +0100 Subject: [PATCH] New clone added --------- Kishon Chesster [yovan] --- src/mame/drivers/fidel6502.cpp | 33 ++++++++++++++++++++++++++++++++- src/mame/drivers/fidelz80.cpp | 2 +- src/mame/mame.lst | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp index 8153c2a43ce..ec9c040ade3 100644 --- a/src/mame/drivers/fidel6502.cpp +++ b/src/mame/drivers/fidel6502.cpp @@ -500,6 +500,7 @@ public: // Chesster DECLARE_WRITE8_MEMBER(chesster_control_w); + DECLARE_WRITE8_MEMBER(kishon_control_w); DECLARE_DRIVER_INIT(chesster); }; @@ -1004,9 +1005,17 @@ WRITE8_MEMBER(fidel6502_state::chesster_control_w) membank("bank1")->set_entry((m_led_select >> 2 & 3) | (m_speech_bank >> 1 & 4)); } +WRITE8_MEMBER(fidel6502_state::kishon_control_w) +{ + chesster_control_w(space, offset, data); + + // 2 more bankswitch bits: 74259(2) Q2 to A17, Q0 to A18 + membank("bank1")->set_entry((m_led_select >> 2 & 3) | (m_speech_bank >> 1 & 4) | (m_speech_bank << 1 & 8) | (m_speech_bank << 4 & 0x10)); +} + DRIVER_INIT_MEMBER(fidel6502_state, chesster) { - membank("bank1")->configure_entries(0, 8, memregion("user1")->base(), 0x4000); + membank("bank1")->configure_entries(0, memregion("user1")->bytes() / 0x4000, memregion("user1")->base(), 0x4000); } @@ -1149,6 +1158,11 @@ static ADDRESS_MAP_START( chesster_map, AS_PROGRAM, 8, fidel6502_state ) AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END +static ADDRESS_MAP_START( kishon_map, AS_PROGRAM, 8, fidel6502_state ) + AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(fdesdis_input_r, kishon_control_w) + AM_IMPORT_FROM( chesster_map ) +ADDRESS_MAP_END + /****************************************************************************** @@ -1923,6 +1937,14 @@ static MACHINE_CONFIG_START( chesster, fidel6502_state ) MCFG_SOUND_ROUTE_EX(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac8", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( kishon, chesster ) + + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(XTAL_3_579545MHz) + MCFG_CPU_PROGRAM_MAP(kishon_map) +MACHINE_CONFIG_END + /****************************************************************************** @@ -2332,6 +2354,14 @@ ROM_START( chesstera ) // model 6120, PCB label 510.1141C01 ROM_LOAD("101-1091a02.ic10", 0x0000, 0x20000, CRC(2b4d243c) SHA1(921e51978facb502b207b4f64a73b1e74127e826) ) // AMI, 27C010 or equivalent ROM_END +ROM_START( kishon ) // model 6120G, PCB label 510.1141C01 + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("kishon.ic9", 0x8000, 0x8000, CRC(121c007f) SHA1(652e9ea47b6bb1632d10eb0fcd7f98cdba22fce7) ) // 27C256 + + ROM_REGION( 0x80000, "user1", 0 ) + ROM_LOAD("kishon_v2.6_1-14-91.ic10", 0x0000, 0x80000, CRC(50598869) SHA1(2087e0c2f40a2408fe217a6502c8c3a247bdd063) ) // Toshiba TC544000P-12 +ROM_END + /****************************************************************************** @@ -2391,3 +2421,4 @@ CONS( 1988, fphantom, 0, 0, fphantom, fphantom, fidel6502_state, CONS( 1990, chesster, 0, 0, chesster, chesster, fidel6502_state, chesster, "Fidelity Electronics", "Chesster Challenger (V1.3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1990, chesstera, chesster, 0, chesster, chesster, fidel6502_state, chesster, "Fidelity Electronics", "Chesster Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1991, kishon, chesster, 0, kishon, chesster, fidel6502_state, chesster, "Fidelity Electronics", "Kishon Chesster", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp index cf8739ad306..bcea01c1e5f 100644 --- a/src/mame/drivers/fidelz80.cpp +++ b/src/mame/drivers/fidelz80.cpp @@ -1520,7 +1520,7 @@ static MACHINE_CONFIG_START( vsc, fidelz80_state ) MCFG_CPU_ADD("maincpu", Z80, 3900000) // 3.9MHz resonator MCFG_CPU_PROGRAM_MAP(vsc_map) MCFG_CPU_IO_MAP(vsc_io) - MCFG_CPU_PERIODIC_INT_DRIVER(fidelz80_state, nmi_line_pulse, 600) // 555 timer, approx 600hz + MCFG_CPU_PERIODIC_INT_DRIVER(fidelz80_state, nmi_line_pulse, 587) // 555 timer, measured MCFG_DEVICE_ADD("ppi8255", I8255, 0) MCFG_I8255_OUT_PORTA_CB(WRITE8(fidelz80_state, vsc_ppi_porta_w)) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 1720702adef..d39fabff950 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12349,6 +12349,7 @@ fgoala // MF (c) 1979 Taito Corporation @source:fidel6502.cpp chesster // chesstera // +kishon // csc // CSC: Champion Sensory Chess Challenger (English) cscfr // * French cscg // * German