mirror of
https://github.com/holub/mame
synced 2025-06-12 15:45:52 +03:00
renamed supercon.cpp to novag6502.cpp
This commit is contained in:
parent
62fb91d39e
commit
262fc7035a
@ -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")
|
||||||
|
@ -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 */
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user