mirror of
https://github.com/holub/mame
synced 2025-07-03 17:08:39 +03:00
snova/svip: rename driver to primo/vip
This commit is contained in:
parent
de4d2a5902
commit
15a453a55a
@ -34865,6 +34865,11 @@ nmicro
|
|||||||
@source:novag/micro2.cpp
|
@source:novag/micro2.cpp
|
||||||
nmicro2
|
nmicro2
|
||||||
|
|
||||||
|
@source:novag/primo.cpp
|
||||||
|
nprimo
|
||||||
|
nsnova
|
||||||
|
supremo
|
||||||
|
|
||||||
@source:novag/robotadv.cpp
|
@source:novag/robotadv.cpp
|
||||||
robotadv
|
robotadv
|
||||||
|
|
||||||
@ -34887,12 +34892,7 @@ sforteb //
|
|||||||
sfortec //
|
sfortec //
|
||||||
sfortec1 //
|
sfortec1 //
|
||||||
|
|
||||||
@source:novag/snova.cpp
|
@source:novag/vip.cpp
|
||||||
nprimo
|
|
||||||
nsnova
|
|
||||||
supremo
|
|
||||||
|
|
||||||
@source:novag/svip.cpp
|
|
||||||
nsvip
|
nsvip
|
||||||
nsvipa
|
nsvipa
|
||||||
nsvipb
|
nsvipb
|
||||||
|
@ -87,10 +87,10 @@ the Super VIP combined with the Novag Super System Touch Sensory board.
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class snova_state : public driver_device
|
class primo_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
snova_state(const machine_config &mconfig, device_type type, const char *tag) :
|
primo_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_board(*this, "board"),
|
m_board(*this, "board"),
|
||||||
@ -145,7 +145,7 @@ private:
|
|||||||
void p6_w(u8 data);
|
void p6_w(u8 data);
|
||||||
};
|
};
|
||||||
|
|
||||||
void snova_state::machine_start()
|
void primo_state::machine_start()
|
||||||
{
|
{
|
||||||
m_out_lcd.resolve();
|
m_out_lcd.resolve();
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ void snova_state::machine_start()
|
|||||||
|
|
||||||
// power
|
// power
|
||||||
|
|
||||||
void snova_state::standby(int state)
|
void primo_state::standby(int state)
|
||||||
{
|
{
|
||||||
// clear display
|
// clear display
|
||||||
if (state)
|
if (state)
|
||||||
@ -175,7 +175,7 @@ void snova_state::standby(int state)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INPUT_CHANGED_MEMBER(snova_state::snova_power_off)
|
INPUT_CHANGED_MEMBER(primo_state::snova_power_off)
|
||||||
{
|
{
|
||||||
// NMI at power-off, which will trigger standby mode
|
// NMI at power-off, which will trigger standby mode
|
||||||
if (newval && !m_maincpu->standby())
|
if (newval && !m_maincpu->standby())
|
||||||
@ -185,12 +185,12 @@ INPUT_CHANGED_MEMBER(snova_state::snova_power_off)
|
|||||||
|
|
||||||
// misc
|
// misc
|
||||||
|
|
||||||
void snova_state::lcd_pwm_w(offs_t offset, u8 data)
|
void primo_state::lcd_pwm_w(offs_t offset, u8 data)
|
||||||
{
|
{
|
||||||
m_out_lcd[offset & 0x3f][offset >> 6] = data;
|
m_out_lcd[offset & 0x3f][offset >> 6] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::update_leds()
|
void primo_state::update_leds()
|
||||||
{
|
{
|
||||||
m_led_pwm->matrix(m_select >> 4 & 3, m_led_data);
|
m_led_pwm->matrix(m_select >> 4 & 3, m_led_data);
|
||||||
}
|
}
|
||||||
@ -198,7 +198,7 @@ void snova_state::update_leds()
|
|||||||
|
|
||||||
// MCU ports
|
// MCU ports
|
||||||
|
|
||||||
u8 snova_state::p2_r()
|
u8 primo_state::p2_r()
|
||||||
{
|
{
|
||||||
// P20: 4051 Z
|
// P20: 4051 Z
|
||||||
u8 data = 0;
|
u8 data = 0;
|
||||||
@ -224,7 +224,7 @@ u8 snova_state::p2_r()
|
|||||||
return data ^ 1;
|
return data ^ 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::p2_w(u8 data)
|
void primo_state::p2_w(u8 data)
|
||||||
{
|
{
|
||||||
// P21: 4066 in/out to LCD
|
// P21: 4066 in/out to LCD
|
||||||
if (m_lcd_strobe && ~data & 2)
|
if (m_lcd_strobe && ~data & 2)
|
||||||
@ -246,7 +246,7 @@ void snova_state::p2_w(u8 data)
|
|||||||
m_inp_mux = data >> 5 & 7;
|
m_inp_mux = data >> 5 & 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::p5_w(u8 data)
|
void primo_state::p5_w(u8 data)
|
||||||
{
|
{
|
||||||
// P50-P53: 4066 control to LCD
|
// P50-P53: 4066 control to LCD
|
||||||
// P54,P55: led select
|
// P54,P55: led select
|
||||||
@ -255,7 +255,7 @@ void snova_state::p5_w(u8 data)
|
|||||||
update_leds();
|
update_leds();
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::p6_w(u8 data)
|
void primo_state::p6_w(u8 data)
|
||||||
{
|
{
|
||||||
// P60-P67: led data, lcd data, chessboard mux
|
// P60-P67: led data, lcd data, chessboard mux
|
||||||
m_led_data = ~data;
|
m_led_data = ~data;
|
||||||
@ -268,18 +268,18 @@ void snova_state::p6_w(u8 data)
|
|||||||
Address Maps
|
Address Maps
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
void snova_state::primo_map(address_map &map)
|
void primo_state::primo_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x4000, 0x47ff).ram().share("nvram");
|
map(0x4000, 0x47ff).ram().share("nvram");
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::supremo_map(address_map &map)
|
void primo_state::supremo_map(address_map &map)
|
||||||
{
|
{
|
||||||
primo_map(map);
|
primo_map(map);
|
||||||
map(0x8000, 0xffff).rom();
|
map(0x8000, 0xffff).rom();
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::snova_map(address_map &map)
|
void primo_state::snova_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x4000, 0x5fff).ram().share("nvram");
|
map(0x4000, 0x5fff).ram().share("nvram");
|
||||||
map(0x8000, 0xffff).rom();
|
map(0x8000, 0xffff).rom();
|
||||||
@ -313,7 +313,7 @@ static INPUT_PORTS_START( primo )
|
|||||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
||||||
|
|
||||||
PORT_START("POWER") // needs to be triggered for nvram to work
|
PORT_START("POWER") // needs to be triggered for nvram to work
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, snova_state, primo_power_off, 0) PORT_NAME("Power Off")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, primo_state, primo_power_off, 0) PORT_NAME("Power Off")
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( supremo )
|
static INPUT_PORTS_START( supremo )
|
||||||
@ -349,7 +349,7 @@ static INPUT_PORTS_START( snova )
|
|||||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
|
||||||
|
|
||||||
PORT_START("POWER")
|
PORT_START("POWER")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, snova_state, snova_power_off, 0) PORT_NAME("Power Off")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, primo_state, snova_power_off, 0) PORT_NAME("Power Off")
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
@ -358,18 +358,18 @@ INPUT_PORTS_END
|
|||||||
Machine Configs
|
Machine Configs
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
void snova_state::primo(machine_config &config)
|
void primo_state::primo(machine_config &config)
|
||||||
{
|
{
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
HD6301Y0(config, m_maincpu, 8_MHz_XTAL);
|
HD6301Y0(config, m_maincpu, 8_MHz_XTAL);
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &snova_state::primo_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo_map);
|
||||||
m_maincpu->nvram_enable_backup(true);
|
m_maincpu->nvram_enable_backup(true);
|
||||||
m_maincpu->standby_cb().set(m_maincpu, FUNC(hd6301y0_cpu_device::nvram_set_battery));
|
m_maincpu->standby_cb().set(m_maincpu, FUNC(hd6301y0_cpu_device::nvram_set_battery));
|
||||||
m_maincpu->standby_cb().append(FUNC(snova_state::standby));
|
m_maincpu->standby_cb().append(FUNC(primo_state::standby));
|
||||||
m_maincpu->in_p2_cb().set(FUNC(snova_state::p2_r));
|
m_maincpu->in_p2_cb().set(FUNC(primo_state::p2_r));
|
||||||
m_maincpu->out_p2_cb().set(FUNC(snova_state::p2_w));
|
m_maincpu->out_p2_cb().set(FUNC(primo_state::p2_w));
|
||||||
m_maincpu->out_p5_cb().set(FUNC(snova_state::p5_w));
|
m_maincpu->out_p5_cb().set(FUNC(primo_state::p5_w));
|
||||||
m_maincpu->out_p6_cb().set(FUNC(snova_state::p6_w));
|
m_maincpu->out_p6_cb().set(FUNC(primo_state::p6_w));
|
||||||
|
|
||||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||||
|
|
||||||
@ -380,7 +380,7 @@ void snova_state::primo(machine_config &config)
|
|||||||
|
|
||||||
// video hardware
|
// video hardware
|
||||||
PWM_DISPLAY(config, m_lcd_pwm).set_size(4, 10);
|
PWM_DISPLAY(config, m_lcd_pwm).set_size(4, 10);
|
||||||
m_lcd_pwm->output_x().set(FUNC(snova_state::lcd_pwm_w));
|
m_lcd_pwm->output_x().set(FUNC(primo_state::lcd_pwm_w));
|
||||||
|
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||||
screen.set_refresh_hz(60);
|
screen.set_refresh_hz(60);
|
||||||
@ -395,31 +395,31 @@ void snova_state::primo(machine_config &config)
|
|||||||
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::supremo(machine_config &config)
|
void primo_state::supremo(machine_config &config)
|
||||||
{
|
{
|
||||||
primo(config);
|
primo(config);
|
||||||
|
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
HD6303Y(config.replace(), m_maincpu, 8_MHz_XTAL);
|
HD6303Y(config.replace(), m_maincpu, 8_MHz_XTAL);
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &snova_state::supremo_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::supremo_map);
|
||||||
m_maincpu->nvram_enable_backup(true);
|
m_maincpu->nvram_enable_backup(true);
|
||||||
m_maincpu->standby_cb().set(m_maincpu, FUNC(hd6303y_cpu_device::nvram_set_battery));
|
m_maincpu->standby_cb().set(m_maincpu, FUNC(hd6303y_cpu_device::nvram_set_battery));
|
||||||
m_maincpu->standby_cb().append(FUNC(snova_state::standby));
|
m_maincpu->standby_cb().append(FUNC(primo_state::standby));
|
||||||
m_maincpu->in_p2_cb().set(FUNC(snova_state::p2_r));
|
m_maincpu->in_p2_cb().set(FUNC(primo_state::p2_r));
|
||||||
m_maincpu->out_p2_cb().set(FUNC(snova_state::p2_w));
|
m_maincpu->out_p2_cb().set(FUNC(primo_state::p2_w));
|
||||||
m_maincpu->out_p5_cb().set(FUNC(snova_state::p5_w));
|
m_maincpu->out_p5_cb().set(FUNC(primo_state::p5_w));
|
||||||
m_maincpu->out_p6_cb().set(FUNC(snova_state::p6_w));
|
m_maincpu->out_p6_cb().set(FUNC(primo_state::p6_w));
|
||||||
|
|
||||||
config.set_default_layout(layout_novag_supremo);
|
config.set_default_layout(layout_novag_supremo);
|
||||||
}
|
}
|
||||||
|
|
||||||
void snova_state::snova(machine_config &config)
|
void primo_state::snova(machine_config &config)
|
||||||
{
|
{
|
||||||
supremo(config);
|
supremo(config);
|
||||||
|
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
m_maincpu->set_clock(16_MHz_XTAL);
|
m_maincpu->set_clock(16_MHz_XTAL);
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &snova_state::snova_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::snova_map);
|
||||||
|
|
||||||
config.set_default_layout(layout_novag_snova);
|
config.set_default_layout(layout_novag_snova);
|
||||||
|
|
||||||
@ -468,8 +468,8 @@ ROM_END
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||||
SYST( 1987, nprimo, 0, 0, primo, primo, snova_state, empty_init, "Novag", "Primo (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1987, nprimo, 0, 0, primo, primo, primo_state, empty_init, "Novag", "Primo (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
SYST( 1988, supremo, 0, 0, supremo, supremo, snova_state, empty_init, "Novag", "Supremo", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1988, supremo, 0, 0, supremo, supremo, primo_state, empty_init, "Novag", "Supremo", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
SYST( 1990, nsnova, 0, 0, snova, snova, snova_state, empty_init, "Novag", "Super Nova (Novag, v1.05)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1990, nsnova, 0, 0, snova, snova, primo_state, empty_init, "Novag", "Super Nova (Novag, v1.05)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
@ -87,10 +87,10 @@ Known official Novag Super System (or compatible) peripherals:
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class svip_state : public driver_device
|
class vip_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
svip_state(const machine_config &mconfig, device_type type, const char *tag) :
|
vip_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_lcd_pwm(*this, "lcd_pwm"),
|
m_lcd_pwm(*this, "lcd_pwm"),
|
||||||
@ -135,7 +135,7 @@ private:
|
|||||||
void p6_w(u8 data);
|
void p6_w(u8 data);
|
||||||
};
|
};
|
||||||
|
|
||||||
void svip_state::machine_start()
|
void vip_state::machine_start()
|
||||||
{
|
{
|
||||||
m_out_lcd.resolve();
|
m_out_lcd.resolve();
|
||||||
|
|
||||||
@ -152,12 +152,12 @@ void svip_state::machine_start()
|
|||||||
I/O
|
I/O
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
void svip_state::lcd_pwm_w(offs_t offset, u8 data)
|
void vip_state::lcd_pwm_w(offs_t offset, u8 data)
|
||||||
{
|
{
|
||||||
m_out_lcd[offset & 0x3f][offset >> 6] = data;
|
m_out_lcd[offset & 0x3f][offset >> 6] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 svip_state::p2_r()
|
u8 vip_state::p2_r()
|
||||||
{
|
{
|
||||||
u8 data = 0;
|
u8 data = 0;
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ u8 svip_state::p2_r()
|
|||||||
return ~data;
|
return ~data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void svip_state::p2_w(u8 data)
|
void vip_state::p2_w(u8 data)
|
||||||
{
|
{
|
||||||
// P21: 4066 in/out to LCD
|
// P21: 4066 in/out to LCD
|
||||||
if (m_lcd_strobe && ~data & 2)
|
if (m_lcd_strobe && ~data & 2)
|
||||||
@ -192,7 +192,7 @@ void svip_state::p2_w(u8 data)
|
|||||||
m_rs232->write_txd(BIT(data, 4));
|
m_rs232->write_txd(BIT(data, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
void svip_state::p5_w(u8 data)
|
void vip_state::p5_w(u8 data)
|
||||||
{
|
{
|
||||||
// P50-P53: 4066 control to LCD
|
// P50-P53: 4066 control to LCD
|
||||||
// P56,P57: lcd data
|
// P56,P57: lcd data
|
||||||
@ -202,7 +202,7 @@ void svip_state::p5_w(u8 data)
|
|||||||
m_dac->write(data >> 4 & 3);
|
m_dac->write(data >> 4 & 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void svip_state::p6_w(u8 data)
|
void vip_state::p6_w(u8 data)
|
||||||
{
|
{
|
||||||
// P60-P67: input mux, lcd data
|
// P60-P67: input mux, lcd data
|
||||||
m_inp_mux = ~data;
|
m_inp_mux = ~data;
|
||||||
@ -214,12 +214,12 @@ void svip_state::p6_w(u8 data)
|
|||||||
Address Maps
|
Address Maps
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
void svip_state::vip_map(address_map &map)
|
void vip_state::vip_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x4000, 0x47ff).mirror(0x3800).ram().share("nvram");
|
map(0x4000, 0x47ff).mirror(0x3800).ram().share("nvram");
|
||||||
}
|
}
|
||||||
|
|
||||||
void svip_state::svip_map(address_map &map)
|
void vip_state::svip_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x2000, 0x27ff).mirror(0x1800).ram().share("nvram");
|
map(0x2000, 0x27ff).mirror(0x1800).ram().share("nvram");
|
||||||
map(0x4000, 0xbfff).rom().region("eprom", 0);
|
map(0x4000, 0xbfff).rom().region("eprom", 0);
|
||||||
@ -266,10 +266,10 @@ static INPUT_PORTS_START( vip )
|
|||||||
PORT_CONFNAME( 0x01, 0x00, "Keyboard Lock")
|
PORT_CONFNAME( 0x01, 0x00, "Keyboard Lock")
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
||||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(svip_state, power_r)
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(vip_state, power_r)
|
||||||
|
|
||||||
PORT_START("POWER") // needs to be triggered for nvram to work
|
PORT_START("POWER") // needs to be triggered for nvram to work
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, svip_state, power_off, 0) PORT_NAME("Power Off")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, vip_state, power_off, 0) PORT_NAME("Power Off")
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( svip )
|
static INPUT_PORTS_START( svip )
|
||||||
@ -292,7 +292,7 @@ static INPUT_PORTS_START( svip )
|
|||||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("King / Referee / Board")
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("King / Referee / Board")
|
||||||
|
|
||||||
PORT_MODIFY("IN.3")
|
PORT_MODIFY("IN.3")
|
||||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(svip_state, power_r)
|
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(vip_state, power_r)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
@ -302,24 +302,24 @@ INPUT_PORTS_END
|
|||||||
Machine Configs
|
Machine Configs
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
void svip_state::vip(machine_config &config)
|
void vip_state::vip(machine_config &config)
|
||||||
{
|
{
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
HD6301Y0(config, m_maincpu, 8_MHz_XTAL);
|
HD6301Y0(config, m_maincpu, 8_MHz_XTAL);
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &svip_state::vip_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &vip_state::vip_map);
|
||||||
m_maincpu->nvram_enable_backup(true);
|
m_maincpu->nvram_enable_backup(true);
|
||||||
m_maincpu->standby_cb().set(m_maincpu, FUNC(hd6301y0_cpu_device::nvram_set_battery));
|
m_maincpu->standby_cb().set(m_maincpu, FUNC(hd6301y0_cpu_device::nvram_set_battery));
|
||||||
m_maincpu->standby_cb().append([this](int state) { if (state) m_lcd_pwm->clear(); });
|
m_maincpu->standby_cb().append([this](int state) { if (state) m_lcd_pwm->clear(); });
|
||||||
m_maincpu->in_p2_cb().set(FUNC(svip_state::p2_r));
|
m_maincpu->in_p2_cb().set(FUNC(vip_state::p2_r));
|
||||||
m_maincpu->out_p2_cb().set(FUNC(svip_state::p2_w));
|
m_maincpu->out_p2_cb().set(FUNC(vip_state::p2_w));
|
||||||
m_maincpu->out_p5_cb().set(FUNC(svip_state::p5_w));
|
m_maincpu->out_p5_cb().set(FUNC(vip_state::p5_w));
|
||||||
m_maincpu->out_p6_cb().set(FUNC(svip_state::p6_w));
|
m_maincpu->out_p6_cb().set(FUNC(vip_state::p6_w));
|
||||||
|
|
||||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||||
|
|
||||||
// video hardware
|
// video hardware
|
||||||
PWM_DISPLAY(config, m_lcd_pwm).set_size(4, 10);
|
PWM_DISPLAY(config, m_lcd_pwm).set_size(4, 10);
|
||||||
m_lcd_pwm->output_x().set(FUNC(svip_state::lcd_pwm_w));
|
m_lcd_pwm->output_x().set(FUNC(vip_state::lcd_pwm_w));
|
||||||
|
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||||
screen.set_refresh_hz(60);
|
screen.set_refresh_hz(60);
|
||||||
@ -333,13 +333,13 @@ void svip_state::vip(machine_config &config)
|
|||||||
DAC_2BIT_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.125);
|
DAC_2BIT_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.125);
|
||||||
}
|
}
|
||||||
|
|
||||||
void svip_state::svip(machine_config &config)
|
void vip_state::svip(machine_config &config)
|
||||||
{
|
{
|
||||||
vip(config);
|
vip(config);
|
||||||
|
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
m_maincpu->set_clock(9.8304_MHz_XTAL);
|
m_maincpu->set_clock(9.8304_MHz_XTAL);
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &svip_state::svip_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &vip_state::svip_map);
|
||||||
|
|
||||||
config.set_default_layout(layout_novag_svip);
|
config.set_default_layout(layout_novag_svip);
|
||||||
|
|
||||||
@ -419,9 +419,9 @@ ROM_END
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||||
SYST( 1987, nvip, 0, 0, vip, vip, svip_state, empty_init, "Novag", "VIP (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1987, nvip, 0, 0, vip, vip, vip_state, empty_init, "Novag", "VIP (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
SYST( 1989, nsvip, 0, 0, svip, svip, svip_state, empty_init, "Novag", "Super VIP (v3.7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1989, nsvip, 0, 0, svip, svip, vip_state, empty_init, "Novag", "Super VIP (v3.7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
SYST( 1989, nsvipa, nsvip, 0, svip, svip, svip_state, empty_init, "Novag", "Super VIP (v3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1989, nsvipa, nsvip, 0, svip, svip, vip_state, empty_init, "Novag", "Super VIP (v3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
SYST( 1989, nsvipb, nsvip, 0, svip, svip, svip_state, empty_init, "Novag", "Super VIP (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1989, nsvipb, nsvip, 0, svip, svip, vip_state, empty_init, "Novag", "Super VIP (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||||
SYST( 1989, nsvipc, nsvip, 0, svip, svip, svip_state, empty_init, "Novag", "Super VIP (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
SYST( 1989, nsvipc, nsvip, 0, svip, svip, vip_state, empty_init, "Novag", "Super VIP (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
Loading…
Reference in New Issue
Block a user