summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2016-03-09 12:21:05 +0100
committer hap <happppp@users.noreply.github.com>2016-03-09 12:21:05 +0100
commit262fc7035a2f5328b97adea11cae1a7d58cd8653 (patch)
tree5dd0c3fac3e93e22d70af14921deacb16b2efcdd
parent62fb91d39eb48057317fb844d1c78ec64e30a7fb (diff)
renamed supercon.cpp to novag6502.cpp
-rw-r--r--scripts/target/mame/mess.lua2
-rw-r--r--src/mame/drivers/novag6502.cpp (renamed from src/mame/drivers/supercon.cpp)52
-rw-r--r--src/mame/mame.lst6
-rw-r--r--src/mame/mess.flt2
4 files changed, 34 insertions, 28 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index e6af65ea8ef..829c82af577 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -2171,10 +2171,10 @@ createMESSProjects(_target, _subtarget, "novag")
files {
MAME_DIR .. "src/mame/drivers/mk1.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/includes/ssystem3.h",
MAME_DIR .. "src/mame/video/ssystem3.cpp",
- MAME_DIR .. "src/mame/drivers/supercon.cpp",
}
createMESSProjects(_target, _subtarget, "olivetti")
diff --git a/src/mame/drivers/supercon.cpp b/src/mame/drivers/novag6502.cpp
index 9ee51150fe8..6bb71e2e24d 100644
--- a/src/mame/drivers/supercon.cpp
+++ b/src/mame/drivers/novag6502.cpp
@@ -2,8 +2,14 @@
// 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?)
- 2*2KB RAM TC5516APL-2 battery-backed, 2*32KB ROM custom label
- TTL, buzzer, 24 LEDs, 8*8 chessboard buttons
@@ -20,10 +26,10 @@
#include "supercon.lh"
-class supercon_state : public driver_device
+class novag6502_state : public driver_device
{
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),
m_maincpu(*this, "maincpu"),
m_beeper(*this, "beeper"),
@@ -79,7 +85,7 @@ protected:
// machine start/reset
-void supercon_state::machine_start()
+void novag6502_state::machine_start()
{
// zerofill
memset(m_display_state, 0, sizeof(m_display_state));
@@ -106,7 +112,7 @@ void supercon_state::machine_start()
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.
// To prevent flickering here, we need to simulate a decay.
-void supercon_state::display_update()
+void novag6502_state::display_update()
{
UINT32 active_state[0x20];
@@ -174,7 +180,7 @@ void supercon_state::display_update()
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
for (int y = 0; y < m_display_maxy; y++)
@@ -185,13 +191,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(supercon_state::display_decay_tick)
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_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
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);
@@ -217,7 +223,7 @@ void supercon_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety
// generic input handlers
-UINT16 supercon_state::read_inputs(int columns)
+UINT16 novag6502_state::read_inputs(int columns)
{
UINT16 ret = 0;
@@ -233,22 +239,22 @@ UINT16 supercon_state::read_inputs(int columns)
/* 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
m_inp_mux = m_led_data = data;
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
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;
}
-READ8_MEMBER(supercon_state::supercon_1d_r)
+READ8_MEMBER(novag6502_state::supercon_1d_r)
{
return 0xff;
}
-READ8_MEMBER(supercon_state::supercon_1e_r)
+READ8_MEMBER(novag6502_state::supercon_1e_r)
{
// d6,d7: multiplexed inputs (side panel)
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)
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(0x1c00, 0x1c00) AM_READWRITE(supercon_1c_r, supercon_1c_w)
AM_RANGE(0x1d00, 0x1d00) AM_READWRITE(supercon_1d_r, supercon_1d_w)
@@ -398,16 +404,16 @@ INPUT_PORTS_END
/* Machine driver */
-static MACHINE_CONFIG_START( supercon, supercon_state )
+static MACHINE_CONFIG_START( supercon, novag6502_state )
/* basic machine hardware */
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_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)
/* sound hardware */
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 94ae3cf2bd7..3f8095b579e 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -28448,6 +28448,9 @@ pkunwarj // UPL-????? (c) 1985 (Arcade Game TV List - P.9
raiders5 // UPL-85004 (c) 1985
raiders5t // UPL-85004 (c) 1985 Taito license
+@source:novag6502.cpp
+supercon //
+
@source:nsm.cpp
firebird //
@@ -33606,9 +33609,6 @@ superchsj // D46 (c) 1992 Taito Corporation (Japan)
superchsp // prototype
superchsu // D46 (c) 1992 Taito America Corporation (US)
-@source:supercon.cpp
-supercon //
-
@source:supercrd.cpp
fruitstr // (c) 1992 Fun World
supercrd // (c) 1992 Fun World
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index d79069a97f2..93b0531b119 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -376,6 +376,7 @@ ngen.cpp
ngp.cpp
nokia_3310.cpp
notetaker.cpp
+novag6502.cpp
ob68k1a.cpp
octopus.cpp
odyssey2.cpp
@@ -542,7 +543,6 @@ sun3.cpp
sun4.cpp
super6.cpp
super80.cpp
-supercon.cpp
superslave.cpp
supracan.cpp
sv8000.cpp