renamed supercon.cpp to novag6502.cpp

This commit is contained in:
hap 2016-03-09 12:21:05 +01:00
parent 62fb91d39e
commit 262fc7035a
4 changed files with 34 additions and 28 deletions

View File

@ -2171,10 +2171,10 @@ createMESSProjects(_target, _subtarget, "novag")
files { files {
MAME_DIR .. "src/mame/drivers/mk1.cpp", MAME_DIR .. "src/mame/drivers/mk1.cpp",
MAME_DIR .. "src/mame/drivers/mk2.cpp", MAME_DIR .. "src/mame/drivers/mk2.cpp",
MAME_DIR .. "src/mame/drivers/novag6502.cpp",
MAME_DIR .. "src/mame/drivers/ssystem3.cpp", MAME_DIR .. "src/mame/drivers/ssystem3.cpp",
MAME_DIR .. "src/mame/includes/ssystem3.h", MAME_DIR .. "src/mame/includes/ssystem3.h",
MAME_DIR .. "src/mame/video/ssystem3.cpp", MAME_DIR .. "src/mame/video/ssystem3.cpp",
MAME_DIR .. "src/mame/drivers/supercon.cpp",
} }
createMESSProjects(_target, _subtarget, "olivetti") createMESSProjects(_target, _subtarget, "olivetti")

View File

@ -2,8 +2,14 @@
// copyright-holders:hap // copyright-holders:hap
/****************************************************************************** /******************************************************************************
Novag Super Constellation Chess Computer (model 844) Novag generic 6502 based chess computer driver
TODO:
- move other Novag sets here when applicable
-------------------------------------------------------------------------------
Super Constellation Chess Computer (model 844):
- UMC UM6502C @ 4 MHz (8MHz XTAL), 600Hz IRQ(source unknown?) - UMC UM6502C @ 4 MHz (8MHz XTAL), 600Hz IRQ(source unknown?)
- 2*2KB RAM TC5516APL-2 battery-backed, 2*32KB ROM custom label - 2*2KB RAM TC5516APL-2 battery-backed, 2*32KB ROM custom label
- TTL, buzzer, 24 LEDs, 8*8 chessboard buttons - TTL, buzzer, 24 LEDs, 8*8 chessboard buttons
@ -20,10 +26,10 @@
#include "supercon.lh" #include "supercon.lh"
class supercon_state : public driver_device class novag6502_state : public driver_device
{ {
public: public:
supercon_state(const machine_config &mconfig, device_type type, const char *tag) novag6502_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_beeper(*this, "beeper"), m_beeper(*this, "beeper"),
@ -79,7 +85,7 @@ protected:
// machine start/reset // machine start/reset
void supercon_state::machine_start() void novag6502_state::machine_start()
{ {
// zerofill // zerofill
memset(m_display_state, 0, sizeof(m_display_state)); memset(m_display_state, 0, sizeof(m_display_state));
@ -106,7 +112,7 @@ void supercon_state::machine_start()
save_item(NAME(m_led_data)); save_item(NAME(m_led_data));
} }
void supercon_state::machine_reset() void novag6502_state::machine_reset()
{ {
} }
@ -121,7 +127,7 @@ void supercon_state::machine_reset()
// The device may strobe the outputs very fast, it is unnoticeable to the user. // The device may strobe the outputs very fast, it is unnoticeable to the user.
// To prevent flickering here, we need to simulate a decay. // To prevent flickering here, we need to simulate a decay.
void supercon_state::display_update() void novag6502_state::display_update()
{ {
UINT32 active_state[0x20]; UINT32 active_state[0x20];
@ -174,7 +180,7 @@ void supercon_state::display_update()
memcpy(m_display_cache, active_state, sizeof(m_display_cache)); memcpy(m_display_cache, active_state, sizeof(m_display_cache));
} }
TIMER_DEVICE_CALLBACK_MEMBER(supercon_state::display_decay_tick) TIMER_DEVICE_CALLBACK_MEMBER(novag6502_state::display_decay_tick)
{ {
// slowly turn off unpowered segments // slowly turn off unpowered segments
for (int y = 0; y < m_display_maxy; y++) for (int y = 0; y < m_display_maxy; y++)
@ -185,13 +191,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(supercon_state::display_decay_tick)
display_update(); display_update();
} }
void supercon_state::set_display_size(int maxx, int maxy) void novag6502_state::set_display_size(int maxx, int maxy)
{ {
m_display_maxx = maxx; m_display_maxx = maxx;
m_display_maxy = maxy; m_display_maxy = maxy;
} }
void supercon_state::set_display_segmask(UINT32 digits, UINT32 mask) void novag6502_state::set_display_segmask(UINT32 digits, UINT32 mask)
{ {
// set a segment mask per selected digit, but leave unselected ones alone // set a segment mask per selected digit, but leave unselected ones alone
for (int i = 0; i < 0x20; i++) for (int i = 0; i < 0x20; i++)
@ -202,7 +208,7 @@ void supercon_state::set_display_segmask(UINT32 digits, UINT32 mask)
} }
} }
void supercon_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety, bool update) void novag6502_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety, bool update)
{ {
set_display_size(maxx, maxy); set_display_size(maxx, maxy);
@ -217,7 +223,7 @@ void supercon_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety
// generic input handlers // generic input handlers
UINT16 supercon_state::read_inputs(int columns) UINT16 novag6502_state::read_inputs(int columns)
{ {
UINT16 ret = 0; UINT16 ret = 0;
@ -233,22 +239,22 @@ UINT16 supercon_state::read_inputs(int columns)
/* Address maps */ /* Address maps */
WRITE8_MEMBER(supercon_state::supercon_1c_w) WRITE8_MEMBER(novag6502_state::supercon_1c_w)
{ {
} }
WRITE8_MEMBER(supercon_state::supercon_1d_w) WRITE8_MEMBER(novag6502_state::supercon_1d_w)
{ {
} }
WRITE8_MEMBER(supercon_state::supercon_1e_w) WRITE8_MEMBER(novag6502_state::supercon_1e_w)
{ {
// d0-d7: input mux, led data // d0-d7: input mux, led data
m_inp_mux = m_led_data = data; m_inp_mux = m_led_data = data;
display_matrix(8, 3, m_led_data, m_led_select); display_matrix(8, 3, m_led_data, m_led_select);
} }
WRITE8_MEMBER(supercon_state::supercon_1f_w) WRITE8_MEMBER(novag6502_state::supercon_1f_w)
{ {
// d4-d6: select led row // d4-d6: select led row
m_led_select = data >> 4 & 7; m_led_select = data >> 4 & 7;
@ -259,23 +265,23 @@ WRITE8_MEMBER(supercon_state::supercon_1f_w)
} }
READ8_MEMBER(supercon_state::supercon_1c_r) READ8_MEMBER(novag6502_state::supercon_1c_r)
{ {
return 0xff; return 0xff;
} }
READ8_MEMBER(supercon_state::supercon_1d_r) READ8_MEMBER(novag6502_state::supercon_1d_r)
{ {
return 0xff; return 0xff;
} }
READ8_MEMBER(supercon_state::supercon_1e_r) READ8_MEMBER(novag6502_state::supercon_1e_r)
{ {
// d6,d7: multiplexed inputs (side panel) // d6,d7: multiplexed inputs (side panel)
return (read_inputs(8) >> 2 & 0xc0) ^ 0xff; return (read_inputs(8) >> 2 & 0xc0) ^ 0xff;
} }
READ8_MEMBER(supercon_state::supercon_1f_r) READ8_MEMBER(novag6502_state::supercon_1f_r)
{ {
// d0-d7: multiplexed inputs (chessboard squares) // d0-d7: multiplexed inputs (chessboard squares)
return ~read_inputs(8) & 0xff; return ~read_inputs(8) & 0xff;
@ -284,7 +290,7 @@ READ8_MEMBER(supercon_state::supercon_1f_r)
static ADDRESS_MAP_START( supercon_mem, AS_PROGRAM, 8, supercon_state ) static ADDRESS_MAP_START( supercon_mem, AS_PROGRAM, 8, novag6502_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1c00, 0x1c00) AM_READWRITE(supercon_1c_r, supercon_1c_w) AM_RANGE(0x1c00, 0x1c00) AM_READWRITE(supercon_1c_r, supercon_1c_w)
AM_RANGE(0x1d00, 0x1d00) AM_READWRITE(supercon_1d_r, supercon_1d_w) AM_RANGE(0x1d00, 0x1d00) AM_READWRITE(supercon_1d_r, supercon_1d_w)
@ -398,16 +404,16 @@ INPUT_PORTS_END
/* Machine driver */ /* Machine driver */
static MACHINE_CONFIG_START( supercon, supercon_state ) static MACHINE_CONFIG_START( supercon, novag6502_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, XTAL_8MHz/2) MCFG_CPU_ADD("maincpu", M6502, XTAL_8MHz/2)
MCFG_CPU_PERIODIC_INT_DRIVER(supercon_state, irq0_line_hold, 600) // guessed MCFG_CPU_PERIODIC_INT_DRIVER(novag6502_state, irq0_line_hold, 600) // guessed
MCFG_CPU_PROGRAM_MAP(supercon_mem) MCFG_CPU_PROGRAM_MAP(supercon_mem)
MCFG_NVRAM_ADD_0FILL("nvram") MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", supercon_state, display_decay_tick, attotime::from_msec(1)) MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novag6502_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_supercon) MCFG_DEFAULT_LAYOUT(layout_supercon)
/* sound hardware */ /* sound hardware */

View File

@ -28448,6 +28448,9 @@ pkunwarj // UPL-????? (c) 1985 (Arcade Game TV List - P.9
raiders5 // UPL-85004 (c) 1985 raiders5 // UPL-85004 (c) 1985
raiders5t // UPL-85004 (c) 1985 Taito license raiders5t // UPL-85004 (c) 1985 Taito license
@source:novag6502.cpp
supercon //
@source:nsm.cpp @source:nsm.cpp
firebird // firebird //
@ -33606,9 +33609,6 @@ superchsj // D46 (c) 1992 Taito Corporation (Japan)
superchsp // prototype superchsp // prototype
superchsu // D46 (c) 1992 Taito America Corporation (US) superchsu // D46 (c) 1992 Taito America Corporation (US)
@source:supercon.cpp
supercon //
@source:supercrd.cpp @source:supercrd.cpp
fruitstr // (c) 1992 Fun World fruitstr // (c) 1992 Fun World
supercrd // (c) 1992 Fun World supercrd // (c) 1992 Fun World

View File

@ -376,6 +376,7 @@ ngen.cpp
ngp.cpp ngp.cpp
nokia_3310.cpp nokia_3310.cpp
notetaker.cpp notetaker.cpp
novag6502.cpp
ob68k1a.cpp ob68k1a.cpp
octopus.cpp octopus.cpp
odyssey2.cpp odyssey2.cpp
@ -542,7 +543,6 @@ sun3.cpp
sun4.cpp sun4.cpp
super6.cpp super6.cpp
super80.cpp super80.cpp
supercon.cpp
superslave.cpp superslave.cpp
supracan.cpp supracan.cpp
sv8000.cpp sv8000.cpp