renamed some novag drivers (nw)

This commit is contained in:
hap 2019-07-06 19:30:20 +02:00
parent ac0a72912e
commit d5f741d8a3
8 changed files with 84 additions and 84 deletions

View File

@ -1064,7 +1064,6 @@ function linkProjects_mame_mess(_target, _subtarget)
"be", "be",
"bitcorp", "bitcorp",
"bnpo", "bnpo",
"brea",
"bondwell", "bondwell",
"booth", "booth",
"camputers", "camputers",
@ -1087,6 +1086,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"cxg", "cxg",
"cybiko", "cybiko",
"dai", "dai",
"dcs",
"ddr", "ddr",
"dec", "dec",
"dicksmth", "dicksmth",
@ -1774,11 +1774,6 @@ files {
MAME_DIR .. "src/mame/video/b2m.cpp", MAME_DIR .. "src/mame/video/b2m.cpp",
} }
createMESSProjects(_target, _subtarget, "brea")
files {
MAME_DIR .. "src/mame/drivers/intellect02.cpp",
}
createMESSProjects(_target, _subtarget, "bondwell") createMESSProjects(_target, _subtarget, "bondwell")
files { files {
MAME_DIR .. "src/mame/drivers/bw12.cpp", MAME_DIR .. "src/mame/drivers/bw12.cpp",
@ -1839,6 +1834,7 @@ files {
MAME_DIR .. "src/mame/includes/c65.h", MAME_DIR .. "src/mame/includes/c65.h",
MAME_DIR .. "src/mame/drivers/c900.cpp", MAME_DIR .. "src/mame/drivers/c900.cpp",
MAME_DIR .. "src/mame/drivers/cbm2.cpp", MAME_DIR .. "src/mame/drivers/cbm2.cpp",
MAME_DIR .. "src/mame/drivers/chessmate.cpp",
MAME_DIR .. "src/mame/drivers/clcd.cpp", MAME_DIR .. "src/mame/drivers/clcd.cpp",
MAME_DIR .. "src/mame/drivers/pet.cpp", MAME_DIR .. "src/mame/drivers/pet.cpp",
MAME_DIR .. "src/mame/drivers/plus4.cpp", MAME_DIR .. "src/mame/drivers/plus4.cpp",
@ -1853,6 +1849,7 @@ createMESSProjects(_target, _subtarget, "cccp")
files { files {
MAME_DIR .. "src/mame/drivers/argo.cpp", MAME_DIR .. "src/mame/drivers/argo.cpp",
MAME_DIR .. "src/mame/drivers/cm1800.cpp", MAME_DIR .. "src/mame/drivers/cm1800.cpp",
MAME_DIR .. "src/mame/drivers/intellect02.cpp",
MAME_DIR .. "src/mame/drivers/lviv.cpp", MAME_DIR .. "src/mame/drivers/lviv.cpp",
MAME_DIR .. "src/mame/includes/lviv.h", MAME_DIR .. "src/mame/includes/lviv.h",
MAME_DIR .. "src/mame/machine/lviv.cpp", MAME_DIR .. "src/mame/machine/lviv.cpp",
@ -1980,6 +1977,11 @@ files {
MAME_DIR .. "src/mame/video/dai.cpp", MAME_DIR .. "src/mame/video/dai.cpp",
} }
createMESSProjects(_target, _subtarget, "dcs")
files {
MAME_DIR .. "src/mame/drivers/compuchess.cpp",
}
createMESSProjects(_target, _subtarget, "ddr") createMESSProjects(_target, _subtarget, "ddr")
files { files {
MAME_DIR .. "src/mame/drivers/ac1.cpp", MAME_DIR .. "src/mame/drivers/ac1.cpp",
@ -2814,10 +2816,7 @@ files {
createMESSProjects(_target, _subtarget, "novag") createMESSProjects(_target, _subtarget, "novag")
files { files {
MAME_DIR .. "src/mame/drivers/novag_cforte.cpp", MAME_DIR .. "src/mame/drivers/novag_cforte.cpp",
MAME_DIR .. "src/mame/drivers/novag_delta1.cpp",
MAME_DIR .. "src/mame/drivers/novag_diablo.cpp", MAME_DIR .. "src/mame/drivers/novag_diablo.cpp",
MAME_DIR .. "src/mame/drivers/novag_mk1.cpp",
MAME_DIR .. "src/mame/drivers/novag_mk2.cpp",
MAME_DIR .. "src/mame/drivers/novag_presto.cpp", MAME_DIR .. "src/mame/drivers/novag_presto.cpp",
MAME_DIR .. "src/mame/drivers/novag_savant.cpp", MAME_DIR .. "src/mame/drivers/novag_savant.cpp",
MAME_DIR .. "src/mame/drivers/novag_scon.cpp", MAME_DIR .. "src/mame/drivers/novag_scon.cpp",
@ -3070,6 +3069,7 @@ files {
createMESSProjects(_target, _subtarget, "saitek") createMESSProjects(_target, _subtarget, "saitek")
files { files {
MAME_DIR .. "src/mame/drivers/risc2500.cpp", MAME_DIR .. "src/mame/drivers/risc2500.cpp",
MAME_DIR .. "src/mame/drivers/saitek_delta1.cpp",
MAME_DIR .. "src/mame/drivers/scisys_chesstrv.cpp", MAME_DIR .. "src/mame/drivers/scisys_chesstrv.cpp",
MAME_DIR .. "src/mame/drivers/scisys_cp2000.cpp", MAME_DIR .. "src/mame/drivers/scisys_cp2000.cpp",
MAME_DIR .. "src/mame/drivers/stratos.cpp", MAME_DIR .. "src/mame/drivers/stratos.cpp",

View File

@ -541,9 +541,6 @@ INPUT_CHANGED_MEMBER(sensorboard_device::ui_init)
// input_ports - device-specific input ports // input_ports - device-specific input ports
//------------------------------------------------- //-------------------------------------------------
#undef PORT_CONDITION
#define PORT_CONDITION(a, b, c, d) ;
static INPUT_PORTS_START( sensorboard ) static INPUT_PORTS_START( sensorboard )
PORT_START("RANK.1") PORT_START("RANK.1")
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x00) PORT_NAME("Sensor A1") PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x00) PORT_NAME("Sensor A1")

View File

@ -52,10 +52,10 @@ MOS MPS 6332 005 2179
namespace { namespace {
class mk2_state : public driver_device class chessmate_state : public driver_device
{ {
public: public:
mk2_state(const machine_config &mconfig, device_type type, const char *tag) : chessmate_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_miot(*this, "miot"), m_miot(*this, "miot"),
@ -65,7 +65,7 @@ public:
{ } { }
// machine configs // machine configs
void mk2(machine_config &config); void chessmate(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(reset_button); DECLARE_INPUT_CHANGED_MEMBER(reset_button);
@ -94,7 +94,7 @@ private:
u8 m_led_data; u8 m_led_data;
}; };
void mk2_state::machine_start() void chessmate_state::machine_start()
{ {
// zerofill // zerofill
m_inp_mux = 0; m_inp_mux = 0;
@ -107,7 +107,7 @@ void mk2_state::machine_start()
save_item(NAME(m_led_data)); save_item(NAME(m_led_data));
} }
INPUT_CHANGED_MEMBER(mk2_state::reset_button) INPUT_CHANGED_MEMBER(chessmate_state::reset_button)
{ {
// assume that NEW GAME button is tied to reset pin(s) // assume that NEW GAME button is tied to reset pin(s)
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
@ -123,13 +123,13 @@ INPUT_CHANGED_MEMBER(mk2_state::reset_button)
// 6530 ports // 6530 ports
void mk2_state::update_display() void chessmate_state::update_display()
{ {
m_display->write_row(4, m_led_data); m_display->write_row(4, m_led_data);
m_display->matrix_partial(0, 4, 1 << m_inp_mux, m_7seg_data); m_display->matrix_partial(0, 4, 1 << m_inp_mux, m_7seg_data);
} }
WRITE8_MEMBER(mk2_state::control_w) WRITE8_MEMBER(chessmate_state::control_w)
{ {
// d0-d2: 74145 to input mux/digit select // d0-d2: 74145 to input mux/digit select
m_inp_mux = data & 7; m_inp_mux = data & 7;
@ -146,13 +146,13 @@ WRITE8_MEMBER(mk2_state::control_w)
m_maincpu->set_input_line(M6502_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); m_maincpu->set_input_line(M6502_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
} }
WRITE8_MEMBER(mk2_state::digit_w) WRITE8_MEMBER(chessmate_state::digit_w)
{ {
m_7seg_data = data; m_7seg_data = data;
update_display(); update_display();
} }
READ8_MEMBER(mk2_state::input_r) READ8_MEMBER(chessmate_state::input_r)
{ {
u8 data = 0; u8 data = 0;
@ -173,7 +173,7 @@ READ8_MEMBER(mk2_state::input_r)
Address Maps Address Maps
******************************************************************************/ ******************************************************************************/
void mk2_state::main_map(address_map &map) void chessmate_state::main_map(address_map &map)
{ {
map.global_mask(0x1fff); map.global_mask(0x1fff);
map(0x0000, 0x00ff).mirror(0x100).ram(); map(0x0000, 0x00ff).mirror(0x100).ram();
@ -189,7 +189,7 @@ void mk2_state::main_map(address_map &map)
Input Ports Input Ports
******************************************************************************/ ******************************************************************************/
static INPUT_PORTS_START( mk2 ) static INPUT_PORTS_START( chessmate )
PORT_START("IN.0") PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("F / Skill Level") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("F / Skill Level")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / Stop Clock") PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / Stop Clock")
@ -217,7 +217,7 @@ static INPUT_PORTS_START( mk2 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7") PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
PORT_START("RESET") PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CHANGED_MEMBER(DEVICE_SELF, mk2_state, reset_button, nullptr) PORT_NAME("New Game") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmate_state, reset_button, nullptr) PORT_NAME("New Game")
INPUT_PORTS_END INPUT_PORTS_END
@ -226,16 +226,16 @@ INPUT_PORTS_END
Machine Configs Machine Configs
******************************************************************************/ ******************************************************************************/
void mk2_state::mk2(machine_config &config) void chessmate_state::chessmate(machine_config &config)
{ {
/* basic machine hardware */ /* basic machine hardware */
M6504(config, m_maincpu, 1000000); M6504(config, m_maincpu, 1000000);
m_maincpu->set_addrmap(AS_PROGRAM, &mk2_state::main_map); m_maincpu->set_addrmap(AS_PROGRAM, &chessmate_state::main_map);
MOS6530(config, m_miot, 1000000); MOS6530(config, m_miot, 1000000);
m_miot->in_pa_callback().set(FUNC(mk2_state::input_r)); m_miot->in_pa_callback().set(FUNC(chessmate_state::input_r));
m_miot->out_pa_callback().set(FUNC(mk2_state::digit_w)); m_miot->out_pa_callback().set(FUNC(chessmate_state::digit_w));
m_miot->out_pb_callback().set(FUNC(mk2_state::control_w)); m_miot->out_pb_callback().set(FUNC(chessmate_state::control_w));
/* video hardware */ /* video hardware */
PWM_DISPLAY(config, m_display).set_size(4+1, 8); PWM_DISPLAY(config, m_display).set_size(4+1, 8);
@ -268,5 +268,5 @@ ROM_END
Drivers Drivers
******************************************************************************/ ******************************************************************************/
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1979, ccmk2, 0, 0, mk2, mk2, mk2_state, empty_init, "Novag", "Chess Champion: MK II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, ccmk2, 0, 0, chessmate, chessmate, chessmate_state, empty_init, "Novag", "Chess Champion: MK II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -9,6 +9,8 @@ Driver largely rewritten over the years.
TODO: TODO:
- cncchess sound is wrong, it should be a long dual-tone alarm sound - cncchess sound is wrong, it should be a long dual-tone alarm sound
- verify CPU speed
- dump/add cmpchess2
BTANB: BTANB:
- digits may flash briefly after entering a command, eg. the "b" or "P" digit - digits may flash briefly after entering a command, eg. the "b" or "P" digit
@ -16,9 +18,10 @@ BTANB:
******************************************************************************* *******************************************************************************
The MK I was a clone of Data Cash Systems's CompuChess (1977, one of the first Data Cash Systems's CompuChess (1977, one of the first chess computers).
chess computers). The ROM is identical. DCS sued Novag Industries for copyright The game underneath is better known as Novag's MK I, it was an unlicensed clone.
infringement and somehow didn't manage to win the case. The ROM is identical. DCS sued JS&A / Novag Industries for copyright infringement
and somehow didn't manage to win the case.
Unlike CompuChess, MK I was a large success, we can assume that it kickstarted Unlike CompuChess, MK I was a large success, we can assume that it kickstarted
Novag's chess computer generation. It was also distributed as "Computer Chess" Novag's chess computer generation. It was also distributed as "Computer Chess"
@ -84,10 +87,10 @@ Fairchild 3850PK CPU @ 2MHz (LC circuit), 3853PK
namespace { namespace {
class mk1_state : public driver_device class compuchess_state : public driver_device
{ {
public: public:
mk1_state(const machine_config &mconfig, device_type type, const char *tag) : compuchess_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_display(*this, "display"), m_display(*this, "display"),
@ -142,7 +145,7 @@ private:
bool m_blink; bool m_blink;
}; };
void mk1_state::machine_start() void compuchess_state::machine_start()
{ {
// zerofill // zerofill
m_inp_mux = 0; m_inp_mux = 0;
@ -157,12 +160,12 @@ void mk1_state::machine_start()
save_item(NAME(m_blink)); save_item(NAME(m_blink));
} }
void mk1_state::machine_reset() void compuchess_state::machine_reset()
{ {
update_reset(ioport("RESET")->read()); update_reset(ioport("RESET")->read());
} }
void mk1_state::update_reset(ioport_value state) void compuchess_state::update_reset(ioport_value state)
{ {
// reset switch is tied to F3850 RESET pin // reset switch is tied to F3850 RESET pin
m_maincpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); m_maincpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
@ -178,7 +181,7 @@ void mk1_state::update_reset(ioport_value state)
Devices, I/O Devices, I/O
******************************************************************************/ ******************************************************************************/
READ8_MEMBER(mk1_state::beeper_r) READ8_MEMBER(compuchess_state::beeper_r)
{ {
// cncchess: trigger beeper // cncchess: trigger beeper
if (!machine().side_effects_disabled() && m_beeper != nullptr) if (!machine().side_effects_disabled() && m_beeper != nullptr)
@ -190,7 +193,7 @@ READ8_MEMBER(mk1_state::beeper_r)
return m_maincpu->space(AS_PROGRAM).read_byte(offset); return m_maincpu->space(AS_PROGRAM).read_byte(offset);
} }
void mk1_state::update_display() void compuchess_state::update_display()
{ {
// display panel goes into automated blink mode if DP segment is held high, // display panel goes into automated blink mode if DP segment is held high,
// and DP segment itself by default only appears to be active if no other segments are // and DP segment itself by default only appears to be active if no other segments are
@ -202,32 +205,32 @@ void mk1_state::update_display()
m_display->matrix(m_digit_select, bstate << 8 | digit_data); m_display->matrix(m_digit_select, bstate << 8 | digit_data);
} }
WRITE8_MEMBER(mk1_state::digit_data_w) WRITE8_MEMBER(compuchess_state::digit_data_w)
{ {
// digit segment data // digit segment data
m_digit_data = data; m_digit_data = data;
update_display(); update_display();
} }
READ8_MEMBER(mk1_state::digit_data_r) READ8_MEMBER(compuchess_state::digit_data_r)
{ {
return m_digit_data; return m_digit_data;
} }
WRITE8_MEMBER(mk1_state::digit_select_w) WRITE8_MEMBER(compuchess_state::digit_select_w)
{ {
// d0-d3: digit select (active low) // d0-d3: digit select (active low)
m_digit_select = ~data & 0xf; m_digit_select = ~data & 0xf;
update_display(); update_display();
} }
WRITE8_MEMBER(mk1_state::input_w) WRITE8_MEMBER(compuchess_state::input_w)
{ {
// input matrix is shared with either digit_data_w, or digit_select_w // input matrix is shared with either digit_data_w, or digit_select_w
m_inp_mux = data; m_inp_mux = data;
} }
READ8_MEMBER(mk1_state::input_r) READ8_MEMBER(compuchess_state::input_r)
{ {
u8 data = m_inp_mux; u8 data = m_inp_mux;
@ -250,24 +253,24 @@ READ8_MEMBER(mk1_state::input_r)
Address Maps Address Maps
******************************************************************************/ ******************************************************************************/
void mk1_state::main_map(address_map &map) void compuchess_state::main_map(address_map &map)
{ {
map(0x0000, 0x07ff).rom(); map(0x0000, 0x07ff).rom();
map(0x1800, 0x18ff).ram(); map(0x1800, 0x18ff).ram();
map(0x8000, 0xffff).r(FUNC(mk1_state::beeper_r)); map(0x8000, 0xffff).r(FUNC(compuchess_state::beeper_r));
} }
void mk1_state::main_io(address_map &map) void compuchess_state::main_io(address_map &map)
{ {
map(0x00, 0x00).rw(FUNC(mk1_state::input_r), FUNC(mk1_state::input_digit_data_w)); map(0x00, 0x00).rw(FUNC(compuchess_state::input_r), FUNC(compuchess_state::input_digit_data_w));
map(0x01, 0x01).w(FUNC(mk1_state::digit_select_w)); map(0x01, 0x01).w(FUNC(compuchess_state::digit_select_w));
map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write)); map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write));
} }
void mk1_state::cnc_io(address_map &map) void compuchess_state::cnc_io(address_map &map)
{ {
map(0x00, 0x00).rw(FUNC(mk1_state::digit_data_r), FUNC(mk1_state::digit_data_w)); map(0x00, 0x00).rw(FUNC(compuchess_state::digit_data_r), FUNC(compuchess_state::digit_data_w));
map(0x01, 0x01).rw(FUNC(mk1_state::input_r), FUNC(mk1_state::input_digit_select_w)); map(0x01, 0x01).rw(FUNC(compuchess_state::input_r), FUNC(compuchess_state::input_digit_select_w));
map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write)); map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write));
} }
@ -303,7 +306,7 @@ static INPUT_PORTS_START( cmpchess )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5 / Black Knight") PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5 / Black Knight")
PORT_START("RESET") PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, mk1_state, reset_switch, nullptr) PORT_NAME("Reset Switch") // L.S. switch on the MK I PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, compuchess_state, reset_switch, nullptr) PORT_NAME("Reset Switch") // L.S. switch on the MK I
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( cncchess ) static INPUT_PORTS_START( cncchess )
@ -332,7 +335,7 @@ static INPUT_PORTS_START( cncchess )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / White Queen") PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / White Queen")
PORT_START("RESET") PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mk1_state, reset_switch, nullptr) PORT_NAME("Reset") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, compuchess_state, reset_switch, nullptr) PORT_NAME("Reset")
INPUT_PORTS_END INPUT_PORTS_END
@ -341,12 +344,12 @@ INPUT_PORTS_END
Machine Configs Machine Configs
******************************************************************************/ ******************************************************************************/
void mk1_state::cmpchess(machine_config &config) void compuchess_state::cmpchess(machine_config &config)
{ {
/* basic machine hardware */ /* basic machine hardware */
F8(config, m_maincpu, 3.579545_MHz_XTAL/2); // Fairchild 3850PK F8(config, m_maincpu, 3.579545_MHz_XTAL/2); // Fairchild 3850PK
m_maincpu->set_addrmap(AS_PROGRAM, &mk1_state::main_map); m_maincpu->set_addrmap(AS_PROGRAM, &compuchess_state::main_map);
m_maincpu->set_addrmap(AS_IO, &mk1_state::main_io); m_maincpu->set_addrmap(AS_IO, &compuchess_state::main_io);
m_maincpu->set_irq_acknowledge_callback("smi", FUNC(f3853_device::int_acknowledge)); m_maincpu->set_irq_acknowledge_callback("smi", FUNC(f3853_device::int_acknowledge));
f3853_device &smi(F3853(config, "smi", 3.579545_MHz_XTAL/2)); f3853_device &smi(F3853(config, "smi", 3.579545_MHz_XTAL/2));
@ -357,10 +360,10 @@ void mk1_state::cmpchess(machine_config &config)
m_display->set_segmask(0xf, 0xff); m_display->set_segmask(0xf, 0xff);
config.set_default_layout(layout_cmpchess); config.set_default_layout(layout_cmpchess);
TIMER(config, "blink_display").configure_periodic(FUNC(mk1_state::blink), attotime::from_msec(250)); // approximation TIMER(config, "blink_display").configure_periodic(FUNC(compuchess_state::blink), attotime::from_msec(250)); // approximation
} }
void mk1_state::mk1(machine_config &config) void compuchess_state::mk1(machine_config &config)
{ {
cmpchess(config); cmpchess(config);
@ -371,12 +374,12 @@ void mk1_state::mk1(machine_config &config)
config.set_default_layout(layout_novag_mk1); config.set_default_layout(layout_novag_mk1);
} }
void mk1_state::cnc(machine_config &config) void compuchess_state::cnc(machine_config &config)
{ {
mk1(config); mk1(config);
/* basic machine hardware */ /* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &mk1_state::cnc_io); m_maincpu->set_addrmap(AS_IO, &compuchess_state::cnc_io);
config.set_default_layout(layout_cncchess); config.set_default_layout(layout_cncchess);
@ -384,7 +387,7 @@ void mk1_state::cnc(machine_config &config)
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
BEEP(config, m_beeper, 2000); // wrong, see TODO BEEP(config, m_beeper, 2000); // wrong, see TODO
m_beeper->add_route(ALL_OUTPUTS, "speaker", 0.25); m_beeper->add_route(ALL_OUTPUTS, "speaker", 0.25);
TIMER(config, "beeper_off").configure_generic(FUNC(mk1_state::beeper_off)); TIMER(config, "beeper_off").configure_generic(FUNC(compuchess_state::beeper_off));
} }
@ -417,8 +420,8 @@ ROM_END
Drivers Drivers
******************************************************************************/ ******************************************************************************/
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1977, cmpchess, 0, 0, cmpchess, cmpchess, mk1_state, empty_init, "Data Cash Systems", "CompuChess", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1977, cmpchess, 0, 0, cmpchess, cmpchess, compuchess_state, empty_init, "Data Cash Systems", "CompuChess", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1978, ccmk1, cmpchess, 0, mk1, cmpchess, mk1_state, empty_init, "Novag", "Chess Champion: MK I", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1978, ccmk1, cmpchess, 0, mk1, cmpchess, compuchess_state, empty_init, "Novag", "Chess Champion: MK I", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1979, cncchess, 0, 0, cnc, cncchess, mk1_state, empty_init, "Conic", "Computer Chess (Conic)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, cncchess, 0, 0, cnc, cncchess, compuchess_state, empty_init, "Conic", "Computer Chess (Conic)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -21,7 +21,7 @@ Hardware notes:
#include "video/pwm.h" #include "video/pwm.h"
// internal artwork // internal artwork
#include "novag_delta1.lh" // clickable #include "saitek_delta1.lh" // clickable
namespace { namespace {
@ -218,7 +218,7 @@ void delta1_state::delta1(machine_config &config)
/* video hardware */ /* video hardware */
PWM_DISPLAY(config, m_display).set_size(4, 7); PWM_DISPLAY(config, m_display).set_size(4, 7);
m_display->set_segmask(0xf, 0x7f); m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_novag_delta1); config.set_default_layout(layout_saitek_delta1);
TIMER(config, "display_blink").configure_periodic(FUNC(delta1_state::blink), attotime::from_msec(250)); // approximation TIMER(config, "display_blink").configure_periodic(FUNC(delta1_state::blink), attotime::from_msec(250)); // approximation
} }

View File

@ -9836,6 +9836,9 @@ chaos //
@source:cheekyms.cpp @source:cheekyms.cpp
cheekyms // 8004 (c) [1980?] cheekyms // 8004 (c) [1980?]
@source:chessmate.cpp
ccmk2 // Chess Champion MK II
@source:chessmst.cpp @source:chessmst.cpp
chessmst // chessmst //
chessmsta // chessmsta //
@ -10163,6 +10166,11 @@ compgolfo // (c) 1985 Data East Corporation (Japan)
compis // 1985 Telenova Compis compis // 1985 Telenova Compis
compis2 // 1985 Telenova Compis compis2 // 1985 Telenova Compis
@source:compuchess.cpp
ccmk1 // Chess Champion MK I
cmpchess
cncchess
@source:compucolor.cpp @source:compucolor.cpp
compclr2 // compclr2 //
@ -30964,21 +30972,10 @@ raiders5t // UPL-85004 (c) 1985 Taito license
cfortea // cfortea //
cforteb // cforteb //
@source:novag_delta1.cpp
ccdelta1 //
@source:novag_diablo.cpp @source:novag_diablo.cpp
diablo68 // diablo68 //
scorpio68 // scorpio68 //
@source:novag_mk1.cpp
ccmk1 // Chess Champion MK I
cmpchess
cncchess
@source:novag_mk2.cpp
ccmk2 // Chess Champion MK II
@source:novag_presto.cpp @source:novag_presto.cpp
nocto // nocto //
npresto // npresto //
@ -34091,6 +34088,9 @@ safarirj // (c) 1979 Shin Nihon Kikaku (SNK)
@source:sage2.cpp @source:sage2.cpp
sage2 // sage2 //
@source:saitek_delta1.cpp
ccdelta1 //
@source:sam.cpp @source:sam.cpp
24_130 // 24_130 //
24_140 // 24_140 //

View File

@ -140,6 +140,7 @@ cgc7900.cpp
cgenie.cpp cgenie.cpp
channelf.cpp channelf.cpp
chaos.cpp chaos.cpp
chessmate.cpp
chessmst.cpp chessmst.cpp
cit101.cpp cit101.cpp
cit220.cpp cit220.cpp
@ -155,6 +156,7 @@ codata.cpp
coleco.cpp coleco.cpp
compc.cpp compc.cpp
compis.cpp compis.cpp
compuchess.cpp
compucolor.cpp compucolor.cpp
comquest.cpp comquest.cpp
comx35.cpp comx35.cpp
@ -541,10 +543,7 @@ ngp.cpp
nokia_3310.cpp nokia_3310.cpp
notetaker.cpp notetaker.cpp
novag_cforte.cpp novag_cforte.cpp
novag_delta1.cpp
novag_diablo.cpp novag_diablo.cpp
novag_mk1.cpp
novag_mk2.cpp
novag_presto.cpp novag_presto.cpp
novag_savant.cpp novag_savant.cpp
novag_scon.cpp novag_scon.cpp
@ -693,6 +692,7 @@ rz1.cpp
rzone.cpp rzone.cpp
sacstate.cpp sacstate.cpp
sage2.cpp sage2.cpp
saitek_delta1.cpp
samcoupe.cpp samcoupe.cpp
sansa_fuze.cpp sansa_fuze.cpp
sapi1.cpp sapi1.cpp