summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/saitek_mark5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/saitek_mark5.cpp')
-rw-r--r--src/mame/drivers/saitek_mark5.cpp506
1 files changed, 0 insertions, 506 deletions
diff --git a/src/mame/drivers/saitek_mark5.cpp b/src/mame/drivers/saitek_mark5.cpp
deleted file mode 100644
index f87a57bc2eb..00000000000
--- a/src/mame/drivers/saitek_mark5.cpp
+++ /dev/null
@@ -1,506 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:hap
-// thanks-to:Berger
-/******************************************************************************
-
-Chess Champion: Mark V / Mark VI (aka MK V / MK VI)
-
-Released in late 1981, the chess engine was initially written by David Broughton
-for a Z80 CPU and used in a prototype. It was ported to 6502 by Mark Taylor,
-I/O by Mike Johnson. Support from David Levy and Kevin O'Connell, hardware
-by Nick Toop. These credits are in the ROM data.
-
-Mark VI/Philidor was released a year later, it was a plug-in module for the Mark V.
-It's not much stronger than Mark V(retroactively called Mark V/Travemunde).
-
-When using the MAME sensorboard interface with MK VI, reset the board by pressing
-CLEAR before RESET, needed when starting a new game.
-
-Hardware notes:
-- SY6502A @ ~2MHz (19.6608MHz XTAL, bunch of 74113 dividers)
-- 16KB RAM (8*HM4716AP-4N)
-- 256x4 battery-backed RAM (TC5501P)
-- HLCD0538, 2*HLCD0539, LCD screen with chessboard
-
-3 slots:
-- ROM module at the bottom, mandatory (4*8KB)
-- unused module slot next to the LCD
-- sensory board at left edge, only for MK VI
-
-Chess Champion Sensory Board:
-- PCB label: SciSys 502-00
-- 4KB ROM (NEC D2732), TTL
-- magnet sensors, 64 leds
-
-The slots were designed to support anything, but the only released peripheral
-was the Chess Champion Sensory Board. A piece-recognition chessboard was also
-announced but not released. Maybe it existed as prototype, see patent GB2103943A.
-
-TODO:
-- /2 CPU divider when accessing 0x5000 (the nvram)
-- reading from 0x4400 will write to the LCD too, open bus? it wouldn't make
- sense to use it (and as expected, it never is used)
-- what are the 1M/3M/4M diodes for? CPU speed? the only noticeable difference
- is beeper pitch
-
-******************************************************************************/
-
-#include "emu.h"
-#include "cpu/m6502/m6502.h"
-#include "machine/nvram.h"
-#include "machine/sensorboard.h"
-#include "sound/dac.h"
-#include "video/hlcd0538.h"
-#include "video/pwm.h"
-
-#include "screen.h"
-#include "speaker.h"
-
-// internal artwork
-#include "saitek_mark5.lh" // clickable
-#include "saitek_mark6.lh" // clickable
-
-
-namespace {
-
-class mark5_state : public driver_device
-{
-public:
- mark5_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_board(*this, "board"),
- m_cb_rom(*this, "chessboard"),
- m_display(*this, "display%u", 0),
- m_lcd(*this, "lcd%u", 0),
- m_dac(*this, "dac"),
- m_nvram(*this, "nvram"),
- m_inputs(*this, "IN.%u", 0),
- m_out_x(*this, "%u.%u.%u", 0U, 0U, 0U)
- { }
-
- // machine configs
- void mark5(machine_config &config);
- void mark6(machine_config &config);
-
- DECLARE_INPUT_CHANGED_MEMBER(cb_enable) { if (!newval) m_display[3]->clear(); }
-
-protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
-private:
- // devices/pointers
- required_device<cpu_device> m_maincpu;
- optional_device<sensorboard_device> m_board;
- optional_region_ptr<u8> m_cb_rom;
- optional_device_array<pwm_display_device, 3+1> m_display;
- required_device_array<hlcd0538_device, 3> m_lcd;
- required_device<dac_bit_interface> m_dac;
- required_shared_ptr<u8> m_nvram;
- required_ioport_array<7+2> m_inputs;
- output_finder<3, 8, 34> m_out_x;
-
- // address maps
- void mark5_map(address_map &map);
- void mark6_map(address_map &map);
-
- // I/O handlers
- void nvram_w(offs_t offset, u8 data);
- u8 nvram_r(offs_t offset);
- void lcd_data_w(u8 data);
- void sound_w(u8 data);
- u8 sound_r();
- void reset_irq_w(u8 data);
- u8 reset_irq_r();
- u8 input_r(offs_t offset);
- u8 cb_rom_r(offs_t offset);
- void cb_w(u8 data);
- u8 cb_r();
-
- template<int N> void pwm_output_w(offs_t offset, u8 data);
- template<int N> void lcd_output_w(u64 data);
-
- u8 m_dac_data = 0;
- u8 m_lcd_lcd = 0;
- u8 m_lcd_rowsel = 0;
- u8 m_cb_mux = 0;
-
- emu_timer *m_irqtimer;
- TIMER_CALLBACK_MEMBER(interrupt);
- void write_lcd(int state);
-};
-
-void mark5_state::machine_start()
-{
- m_out_x.resolve();
- m_irqtimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mark5_state::interrupt),this));
-
- // register for savestates
- save_item(NAME(m_dac_data));
- save_item(NAME(m_lcd_lcd));
- save_item(NAME(m_lcd_rowsel));
- save_item(NAME(m_cb_mux));
-}
-
-void mark5_state::machine_reset()
-{
- reset_irq_w(0);
-}
-
-
-
-/******************************************************************************
- I/O
-******************************************************************************/
-
-void mark5_state::nvram_w(offs_t offset, u8 data)
-{
- // nvram is only d0-d3
- m_nvram[offset] = data & 0xf;
-}
-
-u8 mark5_state::nvram_r(offs_t offset)
-{
- return m_nvram[offset] & 0xf;
-}
-
-template<int N>
-void mark5_state::pwm_output_w(offs_t offset, u8 data)
-{
- m_out_x[N][offset & 0x3f][offset >> 6] = data;
-}
-
-template<int N>
-void mark5_state::lcd_output_w(u64 data)
-{
- if (N == 0)
- {
- // HLCD0538 R pins
- m_lcd_rowsel = data & 0xff;
- data >>= 8;
- }
-
- m_display[N]->matrix(m_lcd_rowsel, data);
-}
-
-void mark5_state::write_lcd(int state)
-{
- for (int i = 0; i < 3; i++)
- m_lcd[i]->lcd_w(state);
-
- m_lcd_lcd = state;
-}
-
-TIMER_CALLBACK_MEMBER(mark5_state::interrupt)
-{
- // master clock to MC14020, Q12 to IRQ @ 480Hz
- // irq active ~34.61us (470pF, 100K to GND)
- m_irqtimer->adjust(attotime::from_hz(19.6608_MHz_XTAL / 10 / 0x1000));
- m_maincpu->pulse_input_line(0, attotime::from_nsec(34610));
-
- // MC14020 Q13(1 stage further than IRQ) goes to LCD "LCD" pins
- write_lcd(m_lcd_lcd ^ 1);
-}
-
-void mark5_state::reset_irq_w(u8 data)
-{
- // MC14020 R
- m_irqtimer->adjust(attotime::from_hz((19.6608_MHz_XTAL / 10 / 0x1000) * 2));
- write_lcd(0);
-}
-
-u8 mark5_state::reset_irq_r()
-{
- if (!machine().side_effects_disabled())
- reset_irq_w(0);
-
- return 0xff;
-}
-
-void mark5_state::sound_w(u8 data)
-{
- // 7474 to speaker out
- m_dac_data ^= 1;
- m_dac->write(m_dac_data & m_inputs[7]->read());
-}
-
-u8 mark5_state::sound_r()
-{
- if (!machine().side_effects_disabled())
- sound_w(0);
-
- return 0xff;
-}
-
-void mark5_state::lcd_data_w(u8 data)
-{
- // d0,d2,d4: LCD data
- for (int i = 0; i < 3; i++)
- {
- m_lcd[i]->data_w(BIT(data, i*2));
-
- m_lcd[i]->clk_w(1);
- m_lcd[i]->clk_w(0);
- }
-}
-
-u8 mark5_state::input_r(offs_t offset)
-{
- u8 data = 0;
-
- // _a6: configuration diodes
- // a0-a5: multiplexed inputs
- for (int i = 0; i < 7; i++)
- if (BIT(offset ^ 0x40, i))
- data |= m_inputs[i]->read();
-
- return ~data;
-}
-
-void mark5_state::cb_w(u8 data)
-{
- if (~m_inputs[6]->read() & 0x20)
- return;
-
- // d0-d2: chessboard led mux 1/input mux
- // d3-d5: chessboard led mux 2
- // d6: led state
- m_display[3]->matrix(1 << (data & 7), 1 << (data >> 3 & 0xf));
- m_cb_mux = data;
-}
-
-u8 mark5_state::cb_r()
-{
- if (~m_inputs[6]->read() & 0x20)
- return 0xff;
-
- // read chessboard sensors
- return ~m_board->read_file(m_cb_mux & 7);
-}
-
-u8 mark5_state::cb_rom_r(offs_t offset)
-{
- return (m_inputs[6]->read() & 0x20) ? m_cb_rom[offset] : 0xff;
-}
-
-
-
-/******************************************************************************
- Address Maps
-******************************************************************************/
-
-void mark5_state::mark5_map(address_map &map)
-{
- map.unmap_value_high();
- map(0x0000, 0x3fff).ram();
- map(0x4000, 0x407f).mirror(0x0380).r(FUNC(mark5_state::input_r));
- map(0x4400, 0x4400).mirror(0x03ff).w(FUNC(mark5_state::lcd_data_w));
- map(0x4800, 0x4800).mirror(0x03ff).rw(FUNC(mark5_state::sound_r), FUNC(mark5_state::sound_w));
- map(0x4c00, 0x4c00).mirror(0x03ff).rw(FUNC(mark5_state::reset_irq_r), FUNC(mark5_state::reset_irq_w));
- map(0x5000, 0x50ff).mirror(0x0f00).ram().rw(FUNC(mark5_state::nvram_r), FUNC(mark5_state::nvram_w)).share("nvram");
- map(0x8000, 0xffff).rom();
-}
-
-void mark5_state::mark6_map(address_map &map)
-{
- mark5_map(map);
-
- map(0x7000, 0x77ff).r(FUNC(mark5_state::cb_rom_r));
- map(0x7800, 0x7800).mirror(0x07ff).rw(FUNC(mark5_state::cb_r), FUNC(mark5_state::cb_w));
-}
-
-
-
-/******************************************************************************
- Input Ports
-******************************************************************************/
-
-static INPUT_PORTS_START( mark5 )
- PORT_START("IN.0")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Enter Position")
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Draw")
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Peripheral")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Next Simult")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Swap")
-
- PORT_START("IN.1")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Next Best")
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Auto")
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Comment")
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Analysis")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SLASH) PORT_NAME("Clock")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_STOP) PORT_NAME("Stop Clock")
-
- PORT_START("IN.2")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("No / 0 / CS")
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) PORT_NAME("A / 1 / Pawn")
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B) PORT_NAME("B / 2 / Knight")
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) PORT_NAME("C / 3 / Bishop")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) PORT_NAME("D / 4 / Rook")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / 5 / Queen")
-
- PORT_START("IN.3")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) PORT_NAME("F / 6 / King")
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) PORT_NAME("G / 7 / Black")
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) PORT_NAME("H / 8 / White")
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_EQUALS) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("Yes / 9 / CB")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Backward")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Forward")
-
- PORT_START("IN.4")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Replay")
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Go")
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Mode")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_COMMA) PORT_NAME("Start Clock")
-
- PORT_START("IN.5") // d-pad reads here
- PORT_BIT(0x01, 0x01, IPT_CUSTOM) PORT_CONDITION("IN.8", 0x31, NOTEQUALS, 0x00)
- PORT_BIT(0x02, 0x02, IPT_CUSTOM) PORT_CONDITION("IN.8", 0xc2, NOTEQUALS, 0x00)
- PORT_BIT(0x04, 0x04, IPT_CUSTOM) PORT_CONDITION("IN.8", 0xa4, NOTEQUALS, 0x00)
- PORT_BIT(0x08, 0x08, IPT_CUSTOM) PORT_CONDITION("IN.8", 0x58, NOTEQUALS, 0x00)
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
-
- PORT_START("IN.6") // diodes
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_CUSTOM) // 1M/3M/4M
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_CUSTOM) // "
- PORT_CONFNAME( 0x0c, 0x00, DEF_STR( Language ) )
- PORT_CONFSETTING( 0x00, DEF_STR( English ) )
- PORT_CONFSETTING( 0x04, DEF_STR( German ) )
- PORT_CONFSETTING( 0x08, DEF_STR( French ) )
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_CUSTOM) // $6000 edge connector
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_CUSTOM) // $7000 "
-
- PORT_START("IN.7") // switches
- PORT_CONFNAME( 0x01, 0x01, "Sound" )
- PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
- PORT_CONFSETTING( 0x01, DEF_STR( On ) )
- PORT_CONFNAME( 0x02, 0x02, "LCD Light" )
- PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
- PORT_CONFSETTING( 0x02, DEF_STR( On ) )
-
- PORT_START("IN.8") // square 'd-pad' (8-way, so define joystick)
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_UP) PORT_NAME("Cursor Up")
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Cursor Down")
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Cursor Right")
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Cursor Left")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) // ul
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) // ur
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) // dl
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) // dr
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( mark6 )
- PORT_INCLUDE( mark5 )
-
- PORT_MODIFY("IN.6")
- PORT_CONFNAME( 0x20, 0x20, "Sensory Board" ) PORT_CHANGED_MEMBER(DEVICE_SELF, mark5_state, cb_enable, 0)
- PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
- PORT_CONFSETTING( 0x20, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-
-/******************************************************************************
- Machine Configs
-******************************************************************************/
-
-void mark5_state::mark5(machine_config &config)
-{
- /* basic machine hardware */
- M6502(config, m_maincpu, 19.6608_MHz_XTAL / 10);
- m_maincpu->set_addrmap(AS_PROGRAM, &mark5_state::mark5_map);
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- HLCD0538(config, m_lcd[0]).write_cols().set(FUNC(mark5_state::lcd_output_w<0>));
- PWM_DISPLAY(config, m_display[0]).set_size(8, 26);
- m_display[0]->output_x().set(FUNC(mark5_state::pwm_output_w<0>));
-
- HLCD0539(config, m_lcd[1]).write_cols().set(FUNC(mark5_state::lcd_output_w<1>));
- PWM_DISPLAY(config, m_display[1]).set_size(8, 34);
- m_display[1]->output_x().set(FUNC(mark5_state::pwm_output_w<1>));
-
- HLCD0539(config, m_lcd[2]).write_cols().set(FUNC(mark5_state::lcd_output_w<2>));
- PWM_DISPLAY(config, m_display[2]).set_size(8, 34);
- m_display[2]->output_x().set(FUNC(mark5_state::pwm_output_w<2>));
-
- for (int i = 0; i < 3; i++)
- m_display[i]->set_bri_maximum(0.1);
-
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
- screen.set_refresh_hz(60);
- screen.set_size(942/1.5, 1080/1.5);
- screen.set_visarea_full();
-
- config.set_default_layout(layout_saitek_mark5);
-
- /* sound hardware */
- SPEAKER(config, "speaker").front_center();
- DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
-}
-
-void mark5_state::mark6(machine_config &config)
-{
- mark5(config);
-
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &mark5_state::mark6_map);
-
- SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS);
- m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
- m_board->set_delay(attotime::from_msec(150));
- m_board->set_nvram_enable(true);
-
- PWM_DISPLAY(config, m_display[3]).set_size(8, 8);
- m_display[3]->set_bri_levels(0.001);
- config.set_default_layout(layout_saitek_mark6);
-}
-
-
-
-/******************************************************************************
- ROM Definitions
-******************************************************************************/
-
-ROM_START( ccmk5 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("c47024_syp_2364-3-y51", 0x8000, 0x2000, CRC(c210f530) SHA1(60ba3809ed3054024508344f654a6846061fafd5) ) // 2364
- ROM_LOAD("c47025_syp_2364-3-y5a", 0xa000, 0x2000, CRC(3239c96b) SHA1(6a23713b30c48546d993a0de8998c8de9044e48c) ) // "
- ROM_LOAD("c47026_syp_2364-3-y5c", 0xc000, 0x2000, CRC(1754ccab) SHA1(d246b6aa2e2a1858dd6608a4dbf496778f79b22e) ) // "
- ROM_LOAD("c47027_syp_2364-3-y5d", 0xe000, 0x2000, CRC(7c0f7bd8) SHA1(68b4566f0501005f6b1739bb24a4bec990421a6f) ) // "
-
- ROM_REGION( 1887415, "screen", 0)
- ROM_LOAD("ccmk5.svg", 0, 1887415, CRC(656a2263) SHA1(4557979c62b1240f7a0d813ec5f4d54b8a27218e) )
-ROM_END
-
-ROM_START( ccmk6 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("y6_80", 0x8000, 0x2000, CRC(8144dd71) SHA1(8d6fbb4aa9757149c81d2bf533085dc5203f0751) ) // 2764
- ROM_LOAD("y6_a0", 0xa000, 0x2000, CRC(dd77dd90) SHA1(844aee56e1941f05bdf046d95c5ae687707a2c95) ) // "
- ROM_LOAD("y6_c0", 0xc000, 0x2000, CRC(705e5718) SHA1(513bba3e7344194efaaf022a7934d32d8cba3cb5) ) // "
- ROM_LOAD("y6_e0", 0xe000, 0x2000, CRC(b92c3eb3) SHA1(99a20f5e971b8c4228e0eda0a4c05750d46b95f6) ) // "
-
- ROM_REGION( 0x1000, "chessboard", 0 )
- ROM_LOAD("d2732c-e.u1", 0x0000, 0x1000, CRC(93221b4c) SHA1(8561b52c80cab7c04d30eaa14f9520a362d7f822) ) // no label, identical halves
-
- ROM_REGION( 1887415, "screen", 0)
- ROM_LOAD("ccmk5.svg", 0, 1887415, CRC(656a2263) SHA1(4557979c62b1240f7a0d813ec5f4d54b8a27218e) )
-ROM_END
-
-} // anonymous namespace
-
-
-
-/******************************************************************************
- Drivers
-******************************************************************************/
-
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1981, ccmk5, 0, 0, mark5, mark5, mark5_state, empty_init, "SciSys / Philidor Software", "Chess Champion: Mark V", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1982, ccmk6, ccmk5, 0, mark6, mark6, mark5_state, empty_init, "SciSys / Philidor Software", "Chess Champion: Mark VI/Philidor", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )