Initialised more variables and updated a few things overlooked earlier.

This commit is contained in:
Robbbert 2021-12-26 04:40:26 +11:00
parent da40d38565
commit f1ed47b3aa
84 changed files with 760 additions and 725 deletions

View File

@ -89,10 +89,10 @@ private:
uint8_t *m_ram_base;
uint8_t *m_rom_base;
uint8_t *m_char_ram;
uint16_t m_pcg_addr;
uint16_t m_pcg_internal_addr;
uint8_t m_key_mux;
uint8_t m_memsel[4];
uint16_t m_pcg_addr = 0U;
uint16_t m_pcg_internal_addr = 0U;
uint8_t m_key_mux = 0U;
uint8_t m_memsel[4]{};
required_device<z80_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<upd7220_device> m_hgdc;

View File

@ -66,9 +66,9 @@ public:
, m_ic6(*this, "ic6")
, m_ic7(*this, "ic7")
, m_ic8(*this, "ic8")
, m_digits(*this, "digit%u", 0U)
, m_leds(*this, "led%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_leds(*this, "led%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void allied(machine_config &config);
@ -96,16 +96,16 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(timer_a);
void mem_map(address_map &map);
u32 m_player_score[6];
u8 m_display;
u8 m_bit_counter;
bool m_disp_data;
u8 m_ic5a;
u8 m_ic6a0;
u8 m_ic6a1;
u8 m_ic6a2;
u8 m_ic6b4;
u8 m_ic6b7;
u32 m_player_score[6]{};
u8 m_display = 0U;
u8 m_bit_counter = 0U;
bool m_disp_data = 0;
u8 m_ic5a = 0U;
u8 m_ic6a0 = 0U;
u8 m_ic6a1 = 0U;
u8 m_ic6a2 = 0U;
u8 m_ic6b4 = 0U;
u8 m_ic6b7 = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<m6504_device> m_maincpu;
@ -626,6 +626,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( allied_state::timer_a )
void allied_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_leds.resolve();
m_io_outputs.resolve();
@ -644,6 +645,10 @@ void allied_state::machine_start()
void allied_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_display = 0;
m_bit_counter = 0;
m_disp_data = 0;

View File

@ -77,8 +77,6 @@ public:
, m_centronics(*this, "centronics")
, m_config(*this, "CONFIG")
, m_cart(*this, "cartslot")
, m_centronics_ack(0)
, m_centronics_busy(0)
{ }
void alphatro(machine_config &config);
@ -119,11 +117,11 @@ private:
uint8_t *m_ram_ptr;
required_device<ram_device> m_ram;
required_shared_ptr<u8> m_p_videoram;
u8 m_flashcnt;
u8 m_cass_data[4];
u8 m_port_10, m_port_20, m_port_f0;
bool m_cassbit;
bool m_cassold, m_fdc_irq;
u8 m_flashcnt = 0U;
u8 m_cass_data[4]{};
u8 m_port_10 = 0U, m_port_20 = 0U, m_port_f0 = 0U;
bool m_cassbit = 0;
bool m_cassold = 0, m_fdc_irq = 0;
required_region_ptr<u8> m_p_chargen;
required_device<cpu_device> m_maincpu;
required_device<mc6845_device> m_crtc;
@ -140,12 +138,12 @@ private:
required_ioport m_config;
required_device<generic_slot_device> m_cart;
int m_centronics_ack;
int m_centronics_busy;
int m_centronics_ack = 0;
int m_centronics_busy = 0;
std::unique_ptr<uint8_t[]> m_bicom_ram;
uint16_t m_bicom_addr;
uint8_t m_bicom_en;
uint16_t m_bicom_addr = 0U;
uint8_t m_bicom_en = 0U;
};
class alphatro_pal_state : public alphatro_state

View File

@ -69,10 +69,10 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
uint8_t m_port08;
uint8_t m_port09;
bool m_ipl;
offs_t m_curr_bank;
uint8_t m_port08 = 0U;
uint8_t m_port09 = 0U;
bool m_ipl = 0;
offs_t m_curr_bank = 0;
floppy_image_device *m_floppy;
std::unique_ptr<u8[]> m_ram; // main ram 192k
std::unique_ptr<u8[]> m_dummy; // for wrpt

View File

@ -148,9 +148,9 @@ private:
MC6845_BEGIN_UPDATE(crtc_update_border);
void applix_palette(palette_device &palette) const;
u8 m_video_latch;
u8 m_pa;
u8 m_palette_latch[4];
u8 m_video_latch = 0U;
u8 m_pa = 0U;
u8 m_palette_latch[4]{};
required_shared_ptr<u16> m_base;
void main_mem(address_map &map);
@ -159,24 +159,24 @@ private:
void sub_io(address_map &map);
void sub_mem(address_map &map);
u8 m_pb;
u8 m_analog_latch;
u8 m_dac_latch;
u8 m_port08;
u8 m_data_to_fdc;
u8 m_data_from_fdc;
bool m_data;
bool m_data_or_cmd;
bool m_buffer_empty;
bool m_fdc_cmd;
u8 m_clock_count;
bool m_cp;
u8 m_p1;
u8 m_p1_data;
u8 m_p2;
u8 m_p3;
u16 m_last_write_addr;
u8 m_cass_data[4];
u8 m_pb = 0U;
u8 m_analog_latch = 0U;
u8 m_dac_latch = 0U;
u8 m_port08 = 0U;
u8 m_data_to_fdc = 0U;
u8 m_data_from_fdc = 0U;
bool m_data = 0;
bool m_data_or_cmd = 0;
bool m_buffer_empty = 0;
bool m_fdc_cmd = 0;
u8 m_clock_count = 0U;
bool m_cp = 0;
u8 m_p1 = 0U;
u8 m_p1_data = 0U;
u8 m_p2 = 0U;
u8 m_p3 = 0U;
u16 m_last_write_addr = 0U;
u8 m_cass_data[4]{};
required_device<cpu_device> m_maincpu;
required_device<mc6845_device> m_crtc;
required_device<via6522_device> m_via;

View File

@ -38,7 +38,7 @@ public:
atari_4x4_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_digits(*this, "digit%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }

View File

@ -76,9 +76,9 @@ public:
, m_maincpu(*this, "maincpu")
, m_p_ram(*this, "ram")
, m_dac(*this, "dac")
, m_switch(*this, "X%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_player_lamps(*this, "text%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_player_lamps(*this, "text%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -114,18 +114,18 @@ private:
bool m_audio_en = false;
u8 m_timer_s[3]{};
u8 m_vol = 0;
u8 m_1080 = 0;
u8 m_1084 = 0;
u8 m_1088 = 0;
u8 m_108c = 0;
u8 m_bit6 = 0;
u8 m_t_c = 0;
u8 m_vol = 0U;
u8 m_1080 = 0U;
u8 m_1084 = 0U;
u8 m_1088 = 0U;
u8 m_108c = 0U;
u8 m_bit6 = 0U;
u8 m_t_c = 0U;
required_region_ptr<u8> m_p_prom;
required_device<cpu_device> m_maincpu;
required_shared_ptr<u8> m_p_ram;
required_device<dac_4bit_r2r_device> m_dac;
required_ioport_array<10> m_switch;
required_ioport_array<10> m_io_keyboard;
output_finder<78> m_digits;
output_finder<8> m_player_lamps;
output_finder<160> m_io_outputs; // 32 solenoids + 128 lamps
@ -393,7 +393,7 @@ void atari_s1_state::midearth_w(offs_t offset, u8 data)
u8 atari_s1_state::switch_r(offs_t offset)
{
return (BIT(m_switch[offset>>3]->read(), offset&7 ) << 7) | (BIT(m_bit6, 1) << 6) | 0x3f; // switch bit | BIT6_CLK
return (BIT(m_io_keyboard[offset>>3]->read(), offset&7 ) << 7) | (BIT(m_bit6, 1) << 6) | 0x3f; // switch bit | BIT6_CLK
}
TIMER_DEVICE_CALLBACK_MEMBER( atari_s1_state::nmi )

View File

@ -43,7 +43,7 @@ public:
, m_maincpu(*this, "maincpu")
, m_dac(*this, "dac")
, m_dac1(*this, "dac1")
, m_digits(*this, "digit%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -70,10 +70,10 @@ private:
bool m_timer_sb = 0;
u8 m_timer_s[5]{};
u8 m_sound0 = 0;
u8 m_sound1 = 0;
u8 m_vol = 0;
u8 m_t_c = 0;
u8 m_sound0 = 0U;
u8 m_sound1 = 0U;
u8 m_vol = 0U;
u8 m_t_c = 0U;
u8 m_segment[7]{};
required_region_ptr<u8> m_p_prom;
required_device<cpu_device> m_maincpu;

View File

@ -1,12 +1,12 @@
// license:BSD-3-Clause
// copyright-holders:Robbbert
// PINBALL
// Skeleton driver for Barni pinballs.
// Known pinballs to be dumped: Shield (1985) - different electronics
// Hardware listing and ROM definitions from PinMAME.
/**************************************************************************************************************
PINBALL
Driver for Barni pinballs.
Known pinballs to be dumped: Shield (1985) - different electronics
Hardware listing and ROM definitions from PinMAME.
/*
Hardware:
Hardware:
CPU: 2 x 6809E, optional MC6802 which may replace second 6809E
INT: IRQ on CPU 0, FIRQ on CPU 1
IO: 2x PIA 6821
@ -16,6 +16,9 @@
Undumped 16L8 at position U9
Status:
- Skeletons
TODO:
- Almost everything
- Value of crystal on audio cpu
@ -26,7 +29,7 @@ TODO:
- Does speech work? DAC works by poking $5D in audio cpu.
- Manuals are difficult to read, and don't show everything we need.
*/
**************************************************************************************************************/
#include "emu.h"
#include "machine/genpin.h"
@ -55,7 +58,7 @@ public:
, m_speech(*this, "tms5220")
, m_dac(*this, "dac")
, m_dac2(*this, "dac2")
, m_digits(*this, "digit%u", 0U)
, m_digits(*this, "digit%d", 0U)
{ }
void barni(machine_config &config);
@ -71,9 +74,9 @@ private:
void pias1_pb_w(u8);
void pias2_pb_w(u8);
void showseg(u8, u8);
u8 m_via_pa = 0;
u8 m_bitcount = 0;
u8 m_soundcmd = 0;
u8 m_via_pa = 0U;
u8 m_bitcount = 0U;
u8 m_soundcmd = 0U;
//void machine_reset() override;
void machine_start() override { m_digits.resolve(); }
required_device<mc6809e_device> m_maincpu;

View File

@ -144,10 +144,10 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
u8 crt8002(u8 ac_ra, u8 ac_chr, u8 ac_attr, uint16_t ac_cnt, bool ac_curs);
u8 m_term_data;
u8 m_term_status;
uint16_t m_cnt;
bool m_cc[8];
u8 m_term_data = 0U;
u8 m_term_status = 0U;
uint16_t m_cnt = 0U;
bool m_cc[8]{};
floppy_image_device *m_floppy;
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -75,8 +75,8 @@ private:
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
u8 m_cass_data[4];
bool m_cassold, m_cassinbit, m_cassoutbit;
u8 m_cass_data[4]{};
bool m_cassold = 0, m_cassinbit = 0, m_cassoutbit = 0;
void mem_map(address_map &map);
void machine_start() override;

View File

@ -133,33 +133,33 @@ private:
uint8_t ym2203_r();
void ym2203_w(u8 data);
u8 m_hres_reg;
u8 m_crtc_vreg[0x100];
u8 m_psg_latch;
u8 m_attr_latch;
u8 m_vres_reg;
bool m_keyb_interrupt_enabled;
bool m_keyb_nmi_disabled; // not used yet
bool m_keyb_counter_operation_disabled;
u8 m_keyb_empty_scan;
u8 m_keyb_scancode;
u16 m_kbt = 0;
bool m_keyb_capslock_led_on;
bool m_keyb_hiragana_led_on;
bool m_keyb_katakana_led_on;
bool m_cassbit;
bool m_cassold;
u8 m_cass_data[4];
u8 m_hres_reg = 0U;
u8 m_crtc_vreg[0x100]{};
u8 m_psg_latch = 0U;
u8 m_attr_latch = 0U;
u8 m_vres_reg = 0U;
bool m_keyb_interrupt_enabled = 0;
bool m_keyb_nmi_disabled = 0; // not used yet
bool m_keyb_counter_operation_disabled = 0;
u8 m_keyb_empty_scan = 0U;
u8 m_keyb_scancode = 0U;
u16 m_kbt = 0U;
bool m_keyb_capslock_led_on = 0;
bool m_keyb_hiragana_led_on = 0;
bool m_keyb_katakana_led_on = 0;
bool m_cassbit = 0;
bool m_cassold = 0;
u8 m_cass_data[4]{};
virtual void machine_reset() override;
virtual void machine_start() override;
void m6845_change_clock(u8 setting);
u8 m_crtc_index;
u8 m_crtc_index = 0U;
std::unique_ptr<u8[]> m_extram;
std::unique_ptr<u8[]> m_vram;
std::unique_ptr<u8[]> m_aram;
u8 m_firq_mask;
u8 m_firq_status;
u8 m_nmi;
u8 m_firq_mask = 0U;
u8 m_firq_status = 0U;
u8 m_nmi = 0U;
required_device<cpu_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
required_device<bml3bus_device> m_bml3bus;

View File

@ -183,7 +183,7 @@ public:
, m_palette(*this, "palette")
, m_maincpu(*this, "maincpu")
, m_ram(*this, RAM_TAG)
, m_bankr(*this, "bankr%d", 0)
, m_bankr(*this, "bankr%d", 0U)
, m_cass(*this, "cassette")
//, m_printer(*this, "centronics")
, m_crtc(*this, "crtc")
@ -222,12 +222,12 @@ private:
void lynx48k_io(address_map &map);
void lynx48k_mem(address_map &map);
void lynx96k_io(address_map &map);
u8 m_port58;
u8 m_port80;
u8 m_bankdata;
u8 m_wbyte;
u8 m_port58 = 0U;
u8 m_port80 = 0U;
u8 m_bankdata = 0U;
u8 m_wbyte = 0U;
u8 *m_p_ram;
bool m_is_128k;
bool m_is_128k = 0;
required_device<palette_device> m_palette;
required_device<z80_device> m_maincpu;
required_device<ram_device> m_ram;

View File

@ -131,10 +131,10 @@ protected:
void port04_w(u8 data);
void port34_w(u8 data);
bool m_ss;
bool m_dden;
bool m_dsize;
u8 m_ds;
bool m_ss = 0;
bool m_dden = 0;
bool m_dsize = 0;
u8 m_ds = 0U;
floppy_image_device *m_floppy;
required_device<z80_device> m_maincpu;
@ -161,7 +161,7 @@ private:
void ccs2810_io(address_map &map);
void ccs2810_mem(address_map &map);
u8 m_power_on_status;
u8 m_power_on_status = 0U;
};
class ccs300_state : public ccs_state

View File

@ -86,10 +86,10 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
u8 m_term_data;
bool m_cassbit;
bool m_cassold;
u8 m_cass_data[4];
u8 m_term_data = 0U;
bool m_cassbit = 0;
bool m_cassold = 0;
u8 m_cass_data[4]{};
void machine_reset() override;
void machine_start() override;
required_device<s2650_device> m_maincpu;

View File

@ -88,9 +88,9 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
bool m_kbd_ack;
bool m_vdp_int;
u8 m_term_data;
bool m_kbd_ack = 0;
bool m_vdp_int = 0;
u8 m_term_data = 0U;
required_device<tms9995_device> m_maincpu;
required_region_ptr<u8> m_rom;
required_shared_ptr<u8> m_ram;

View File

@ -76,7 +76,7 @@ private:
void piaset_w(offs_t, u8);
bool m_cassbit = 0;
bool m_cassold = 0;
u8 m_cass_data[4] = { 0, };
u8 m_cass_data[4]{};
void machine_start() override;
void machine_reset() override;
required_device<cpu_device> m_maincpu;

View File

@ -58,8 +58,8 @@ private:
void digit_w(u8 data);
void segment_w(u8 data);
u8 m_digit;
u8 m_seg;
u8 m_digit = 0U;
u8 m_seg = 0U;
required_device<cpu_device> m_maincpu;
required_device<pwm_display_device> m_display;
required_ioport_array<8> m_io_keyboard;

View File

@ -91,10 +91,10 @@ private:
void d6800_map(address_map &map);
bool m_cb2;
bool m_cassold;
uint8_t m_cass_data[4];
uint8_t m_portb;
bool m_cb2 = 0;
bool m_cassold = 0;
uint8_t m_cass_data[4]{};
uint8_t m_portb = 0U;
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;

View File

@ -119,11 +119,11 @@ private:
void mem_map(address_map &map);
void machine_start() override;
u8 m_cass_data;
u8 m_last_key;
bool m_cassbit;
bool m_cassold;
bool m_speaker_state;
u8 m_cass_data = 0U;
u8 m_last_key = 0U;
bool m_cassbit = 0;
bool m_cassold = 0;
bool m_speaker_state = 0;
required_device<s2650_device> m_maincpu;
required_device<speaker_sound_device> m_speaker;
required_device<cassette_image_device> m_cass;

View File

@ -61,8 +61,8 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
bool m_dma_dir;
u16 m_dma_adr;
bool m_dma_dir = 0;
u16 m_dma_adr = 0U;
required_device<cpu_device> m_maincpu;
required_region_ptr<u8> m_rom;
required_shared_ptr<u8> m_ram;

View File

@ -66,9 +66,9 @@ public:
, m_cti(*this, CDP1864_TAG)
, m_pia(*this, MC6821_TAG)
, m_cassette(*this, "cassette")
, m_io_keyboard(*this, "KEY.%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_special(*this, "SPECIAL")
, m_leds(*this, "led%u", 0U)
, m_leds(*this, "led%d", 0U)
{ }
void eti660(machine_config &config);
@ -104,11 +104,11 @@ private:
uint16_t m_resetcnt;
/* keyboard state */
u8 m_keylatch;
u8 m_keylatch = 0U;
/* video state */
u8 m_color_ram[0xc0];
u8 m_color;
u8 m_color_ram[0xc0]{};
u8 m_color = 0U;
};
@ -164,28 +164,28 @@ void eti660_state::io_map(address_map &map)
/* Input Ports */
static INPUT_PORTS_START( eti660 )
PORT_START("KEY.0")
PORT_START("X0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3')
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2')
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("KEY.1")
PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7')
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6')
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5')
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4')
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("KEY.2")
PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9')
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("KEY.3")
PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')

View File

@ -109,12 +109,12 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_sys_status;
u8 m_kbdrow;
bool m_crtc_vs;
bool m_crtc_hs;
bool m_motor;
bool m_centronics_busy;
u8 m_sys_status = 0U;
u8 m_kbdrow = 0U;
bool m_crtc_vs = 0;
bool m_crtc_hs = 0;
bool m_motor = 0;
bool m_centronics_busy = 0;
std::unique_ptr<u8[]> m_vram;
std::unique_ptr<u8[]> m_hram;
std::unique_ptr<u8[]> m_ram;

View File

@ -57,10 +57,10 @@ public:
g627_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_switch(*this, "SWITCH.%u", 0)
, m_testipt(*this, "TEST.%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_testipt(*this, "T%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void g627(machine_config &config);
@ -76,15 +76,15 @@ private:
void lamp_w(offs_t offset, u8 data);
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_seg[6];
u8 m_portc = 0;
u8 m_motor = 0;
u8 m_last_solenoid = 0;
u8 m_seg[6]{};
u8 m_portc = 0U;
u8 m_motor = 0U;
u8 m_last_solenoid = 0U;
bool m_type = 0;
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
required_ioport_array<7> m_switch;
required_ioport_array<7> m_io_keyboard;
required_ioport_array<6> m_testipt;
output_finder<56> m_digits;
output_finder<72> m_io_outputs; // 16 solenoids + 56 lamps
@ -108,10 +108,10 @@ void g627_state::io_map(address_map &map)
}
static INPUT_PORTS_START( g627 )
PORT_START("SWITCH.0")
PORT_START("X0")
//bits 0,1 : optical encoder for precise table alignment. Correct position = 3.
//bit2-7 : position of table as it turns, using Gray code.
PORT_START("SWITCH.1")
PORT_START("X1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Centre TB")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Bank Shot Outlane")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Spinner")
@ -120,7 +120,7 @@ static INPUT_PORTS_START( g627 )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_START2) PORT_NAME("Call South")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Call North")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START4) PORT_NAME("Call West")
PORT_START("SWITCH.2")
PORT_START("X2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Bottom TB")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left Flipper Return") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("3/11 Target")
@ -129,7 +129,7 @@ static INPUT_PORTS_START( g627 )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("North Test")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("North Coin")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_NAME("North Tilt")
PORT_START("SWITCH.3")
PORT_START("X3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Top Slingshot")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Bank Shot Advance")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) PORT_NAME("4/12 Target")
@ -138,16 +138,16 @@ static INPUT_PORTS_START( g627 )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("South Test")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("South Coin")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("South Tilt")
PORT_START("SWITCH.4")
PORT_START("X4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Right Slingshot")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("OutHole")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("5/13 Target")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("4/16 Target")
PORT_START("SWITCH.5")
PORT_START("X5")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Left Slingshot")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right Flipper Return") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_P) PORT_NAME("Right Out Lane")
PORT_START("SWITCH.6")
PORT_START("X6")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Top TB")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("7/15 Target")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("10 Points")
@ -156,32 +156,32 @@ static INPUT_PORTS_START( g627 )
// Diagnostic Keyboard: Press GAME then END then TEST#. Press GAME etc for more tests.
// Pressing test 8 at any time will instantly reset the NVRAM.
PORT_START("TEST.0")
PORT_START("T0")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD)
PORT_START("TEST.1")
PORT_START("T1")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7") PORT_CODE(KEYCODE_7_PAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4") PORT_CODE(KEYCODE_4_PAD)
PORT_START("TEST.2")
PORT_START("T2")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("SET") PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(".") PORT_CODE(KEYCODE_DEL_PAD)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9_PAD)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8") PORT_CODE(KEYCODE_8_PAD)
PORT_START("TEST.3")
PORT_START("T3")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 3") PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 2") PORT_CODE(KEYCODE_EQUALS)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 1") PORT_CODE(KEYCODE_MINUS)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("GAME") PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("TEST.4")
PORT_START("T4")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 7") PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 6") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 5") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 4") PORT_CODE(KEYCODE_COLON)
PORT_START("TEST.5")
PORT_START("T5")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("END") PORT_CODE(KEYCODE_END)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 10") PORT_CODE(KEYCODE_BACKSLASH)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Test 9") PORT_CODE(KEYCODE_CLOSEBRACE)
@ -199,7 +199,7 @@ u8 g627_state::porta_r()
if (!m_portc)
return ((m_motor >> 1)^m_motor) | 3; // convert to Gray Code
else if (m_portc < 7)
return m_switch[m_portc]->read();
return m_io_keyboard[m_portc]->read();
return 0;
}
@ -327,7 +327,6 @@ void g627_state::lamp_w(offs_t offset, u8 data)
void g627_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_io_outputs.resolve();
@ -341,6 +340,8 @@ void g627_state::machine_start()
void g627_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
}
void g627_state::g627(machine_config &config)

View File

@ -52,8 +52,8 @@ public:
, m_io_x9(*this, "X9")
, m_io_xa(*this, "XA")
, m_io_xb(*this, "XB")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gp_1(machine_config &config);
@ -66,10 +66,10 @@ private:
u8 portb_r();
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_u14 = 0;
u8 m_digit = 0;
u8 m_u14 = 0U;
u8 m_digit = 0U;
u8 m_segment[16]{};
u8 m_last_solenoid = 15;
u8 m_last_solenoid = 15U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<z80_device> m_maincpu;

View File

@ -2,8 +2,8 @@
// copyright-holders:Robbbert
/*****************************************************************************************
PINBALL
Game Plan MPU-2
PINBALL
Game Plan MPU-2
When first turned on, you need to press num-0 to enter the setup program, then keep
pressing num-0 until 06 shows in the credits display. Press the credit button to set
@ -68,8 +68,8 @@ public:
, m_io_x9(*this, "X9")
, m_io_xa(*this, "XA")
, m_io_xb(*this, "XB")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gp_2(machine_config &config);
@ -80,10 +80,10 @@ private:
u8 portb_r();
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_u14 = 0;
u8 m_digit = 0;
u8 m_u14 = 0U;
u8 m_digit = 0U;
u8 m_segment[16]{};
u8 m_last_solenoid = 15;
u8 m_last_solenoid = 15U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<z80_device> m_maincpu;

View File

@ -58,9 +58,9 @@ public:
, m_maincpu(*this, "maincpu")
, m_u4(*this, "u4")
, m_u5(*this, "u5")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gts3(machine_config &config);
@ -77,10 +77,10 @@ private:
void mem_map(address_map &map);
bool m_dispclk = 0;
bool m_lampclk = 0;
u8 m_digit = 0;
u8 m_row = 0; // for lamps and switches
u8 m_segment[4];
u8 m_u4b = 0;
u8 m_digit = 0U;
u8 m_row = 0U; // for lamps and switches
u8 m_segment[4]{};
u8 m_u4b = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<m65c02_device> m_maincpu;
@ -115,8 +115,8 @@ static INPUT_PORTS_START( gts3 )
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN3)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_COIN2)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_START)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Left Advance")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SERVICE2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Right Advance")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Left Advance")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Right Advance")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("INP06")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("INP07")
@ -320,6 +320,9 @@ void gts3_state::machine_start()
void gts3_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_digit = 0;
m_dispclk = 0;
}

View File

@ -43,9 +43,9 @@ public:
, m_vram(*this, "vram")
, m_u4(*this, "u4")
, m_u5(*this, "u5")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gts3a(machine_config &config);
@ -73,10 +73,10 @@ private:
bool m_dispclk = 0;
bool m_lampclk = 0;
u8 m_digit = 0;
u8 m_row = 0; // for lamps and switches
u8 m_segment = 0;
u8 m_u4b = 0;
u8 m_digit = 0U;
u8 m_row = 0U; // for lamps and switches
u8 m_segment = 0U;
u8 m_u4b = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<m65c02_device> m_maincpu;
@ -129,8 +129,8 @@ static INPUT_PORTS_START( gts3a )
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN3)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_COIN2)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_START)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Left Advance")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SERVICE2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Right Advance")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Left Advance")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Right Advance")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("INP06")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("INP07")
@ -391,6 +391,9 @@ void gts3a_state::machine_start()
void gts3a_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_digit = 0;
m_dispclk = 0;
}

View File

@ -54,12 +54,12 @@ public:
, m_riot1(*this, "riot1")
, m_riot2(*this, "riot2")
, m_riot3(*this, "riot3")
, m_io_dips(*this, "DSW%u", 0U)
, m_io_keyboard(*this, "X%u", 0U)
, m_io_dips(*this, "DSW%d", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_r0_sound(*this, "r0sound")
, m_r1_sound(*this, "r1sound")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gts80(machine_config &config);
@ -78,10 +78,10 @@ private:
void port3b_w(u8 data);
void gts80_map(address_map &map);
u8 m_segment = 0;
u8 m_lamprow = 0;
u8 m_swrow = 0;
u8 m_soundex = 0;
u8 m_segment = 0U;
u8 m_lamprow = 0U;
u8 m_swrow = 0U;
u8 m_soundex = 0U;
u8 m_sol_state[9][2]{};
virtual void machine_reset() override;
virtual void machine_start() override;

View File

@ -46,12 +46,12 @@ public:
, m_riot1(*this, "riot1")
, m_riot2(*this, "riot2")
, m_riot3(*this, "riot3")
, m_io_dips(*this, "DSW%u", 0U)
, m_io_keyboard(*this, "X%u", 0U)
, m_io_dips(*this, "DSW%d", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_r0_sound(*this, "r0sound")
, m_r1_sound(*this, "r1sound")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gts80a(machine_config &config);
@ -69,11 +69,11 @@ private:
void port3b_w(u8 data);
void gts80a_map(address_map &map);
u8 m_segment = 0;
u8 m_lamprow = 0;
u8 m_swrow = 0;
u8 m_soundex = 0;
u8 m_sol_state[9][2];
u8 m_segment = 0U;
u8 m_lamprow = 0U;
u8 m_swrow = 0U;
u8 m_soundex = 0U;
u8 m_sol_state[9][2]{};
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<m6502_device> m_maincpu;
@ -469,6 +469,9 @@ void gts80a_state::machine_start()
void gts80a_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_lamprow = 0;
m_swrow = 0;
m_segment = 0;

View File

@ -46,12 +46,12 @@ public:
, m_riot1(*this, "riot1")
, m_riot2(*this, "riot2")
, m_riot3(*this, "riot3")
, m_io_dips(*this, "DSW%u", 0U)
, m_io_keyboard(*this, "X%u", 0U)
, m_io_dips(*this, "DSW%d", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_r0_sound(*this, "r0sound")
, m_r1_sound(*this, "r1sound")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void gts80b_s2(machine_config &config);
@ -73,14 +73,14 @@ private:
void port3b_w(u8 data);
void gts80b_map(address_map &map);
u8 m_segment = 0;
u8 m_lamprow = 0;
u8 m_swrow = 0;
u8 m_soundex = 0;
u8 m_sol_state[9][2];
u8 m_dispcmd;
bool m_in_cmd_mode[2];
u8 m_digit[2];
u8 m_segment = 0U;
u8 m_lamprow = 0U;
u8 m_swrow = 0U;
u8 m_soundex = 0U;
u8 m_sol_state[9][2]{};
u8 m_dispcmd = 0U;
bool m_in_cmd_mode[2]{};
u8 m_digit[2]{};
bool m_slam_low = false;
virtual void machine_reset() override;
@ -517,6 +517,9 @@ void gts80b_state::machine_start()
void gts80b_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_lamprow = 0;
m_swrow = 0;
m_segment = 0;

View File

@ -84,7 +84,7 @@ private:
required_device<cassette_image_device> m_cassette;
required_ioport_array<11> m_io_keyboard;
uint8_t m_bank = 0;
uint8_t m_bank = 0U;
MC6845_UPDATE_ROW(crtc_update_row);
uint8_t *m_ram_ptr, *m_vram_ptr;

View File

@ -46,8 +46,8 @@ public:
, m_ic2(*this, "ic2")
, m_dac(*this, "dac")
, m_io_test(*this, "TEST")
, m_io_x(*this, { "X0", "X1", "X2", "X3", "X4", "DSW0", "DSW1", "DSW2" })
, m_digits(*this, "digit%u%u", 0U, 0U)
, m_io_keyboard(*this, { "X0", "X1", "X2", "X3", "X4", "DSW0", "DSW1", "DSW2" })
, m_digits(*this, "digit%d%d", 0U, 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -80,19 +80,19 @@ private:
bool m_timer_sb = 0;
u8 m_timer_s[3]{};
u8 m_vol = 0;
u8 m_ic2a = 0;
u8 m_ic2b = 0;
u8 m_ic10a = 0;
u8 m_ic10b = 0;
u8 m_ic11a = 0;
u8 m_vol = 0U;
u8 m_ic2a = 0U;
u8 m_ic2b = 0U;
u8 m_ic10a = 0U;
u8 m_ic10b = 0U;
u8 m_ic11a = 0U;
bool m_ic11_ca2 = 0;
bool m_ic11_cb2 = 0;
bool m_ic10_cb2 = 0;
bool m_ic2_ca2 = 0;
bool m_ic2_cb2 = 0;
u8 m_counter = 0;
u8 m_digit = 0;
u8 m_counter = 0U;
u8 m_digit = 0U;
u8 m_segment[5]{};
required_region_ptr<u8> m_p_prom;
@ -103,7 +103,7 @@ private:
required_device<pia6821_device> m_ic2;
required_device<dac_4bit_r2r_device> m_dac;
required_ioport m_io_test;
required_ioport_array<8> m_io_x;
required_ioport_array<8> m_io_keyboard;
output_finder<5, 6> m_digits;
output_finder<96> m_io_outputs; // 32 solenoids + 64 lamps
};
@ -368,7 +368,7 @@ u8 hankin_state::ic11_b_r()
for (unsigned i = 0U; i < 8U; ++i)
{
if (BIT(m_ic11a, i))
data |= m_io_x[i]->read();
data |= m_io_keyboard[i]->read();
}
return data;

View File

@ -66,8 +66,8 @@ protected:
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
std::unique_ptr<u8[]> m_vram;
u8 m_rows;
u8 m_cols;
u8 m_rows = 0U;
u8 m_cols = 0U;
required_device<cpu_device> m_maincpu;
required_memory_bank m_bank1;
required_region_ptr<u8> m_p_chargen;
@ -90,8 +90,8 @@ private:
INTERRUPT_GEN_MEMBER(homelab_frame);
void homelab2_mem(address_map &map);
u8 cass2_r();
bool m_nmi;
bool m_spr_bit;
bool m_nmi = 0;
bool m_spr_bit = 0;
u8 mem3800_r();
u8 mem3a00_r(offs_t);
void mem3c00_w(offs_t, u8);

View File

@ -22,6 +22,7 @@ ToDO:
- Display
- Mechanical sounds
- The usual: identify lamps, solenoids, contactors
- Outputs
**********************************************************************************************************************/
@ -43,7 +44,7 @@ public:
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_speech(*this, "speech")
, m_ppi(*this, "ppi%u", 1)
, m_ppi(*this, "ppi%u", 1U)
{ }
void bsktbllp(machine_config &config);
@ -72,8 +73,8 @@ private:
virtual void machine_reset() override;
uint16_t m_irqcnt;
uint8_t m_ppi_data;
uint16_t m_irqcnt = 0U;
uint8_t m_ppi_data = 0U;
required_device<cpu_device> m_maincpu;
required_device<sp0256_device> m_speech;
optional_device_array<i8255_device, 2> m_ppi;
@ -110,64 +111,64 @@ void idsa_state::maincpu_io_map(address_map &map)
static INPUT_PORTS_START( idsa )
PORT_START("X0") // 1-8
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP01")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP02")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP03")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP04")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP05")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP06")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP07")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP08")
PORT_START("X1") // 9-16
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP09")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP10")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP11")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP12")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP13")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP14")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP15")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP16")
PORT_START("X2") // 17-24
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP17")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP18")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP19")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP20")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP21")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP22")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP23")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("INP24")
PORT_START("X3") // 25-32
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP25")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP26")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP27")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP28")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP29")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP30")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP31")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP32")
PORT_START("X4") // 33-40
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SPACE)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP33")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP34")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP35")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP36")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP37")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP38")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP39")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP40")
PORT_START("X5") // 41-48
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP41")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP42")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP43")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP44")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP45")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP46")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP47")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("INP48")
PORT_START("X6")
PORT_DIPNAME( 0x01, 0x01, "S01")

View File

@ -119,14 +119,14 @@ private:
void lapbylap_audio_map(address_map &map);
bool m_pc0 = 0;
u8 m_game = 0;
u8 m_portc = 0;
u8 m_row = 0;
u8 m_game = 0U;
u8 m_portc = 0U;
u8 m_row = 0U;
u8 m_segment[8]{};
u8 m_sndcmd = 0;
u8 m_sndbank = 0;
u32 m_sound_addr = 0;
u32 m_audio_size = 0;
u8 m_sndcmd = 0U;
u8 m_sndbank = 0U;
u32 m_sound_addr = 0U;
u32 m_audio_size = 0U;
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;

View File

@ -45,9 +45,9 @@ public:
inderp_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_io_keyboard(*this, "X%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void inderp(machine_config &config);
@ -55,9 +55,9 @@ public:
private:
DECLARE_WRITE_LINE_MEMBER(clock_tick);
u8 m_key_row = 0;
u16 m_t_c = 0;
u8 m_segment[5];
u8 m_key_row = 0U;
u16 m_t_c = 0U;
u8 m_segment[5]{};
bool m_1player = false;
void inputs_w(offs_t offset, u8 data);
u8 inputs_r();

View File

@ -95,11 +95,11 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
uint16_t m_lar;
uint8_t m_digit;
u8 m_seg;
bool m_cassin;
bool m_irqstate;
uint16_t m_lar = 0U;
uint8_t m_digit = 0U;
u8 m_seg = 0U;
bool m_cassin = 0;
bool m_irqstate = 0;
required_device<s2650_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_ram;
required_shared_ptr<uint8_t> m_p_smiram;

View File

@ -56,7 +56,7 @@ protected:
u8 p3_r();
void p3_w(u8 data);
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
int m_centronics_busy;
int m_centronics_busy = 0;
DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
required_device<z8_device> m_maincpu;
required_device<ram_device> m_ram;
@ -106,7 +106,7 @@ private:
u8 videoram_r(offs_t offset);
void videoram_w(offs_t offset, u8 data);
void banksel_w(u8 data);
u8 m_video_bank;
u8 m_video_bank = 0U;
memory_share_creator<uint8_t> m_video_ram_40;
memory_share_creator<uint8_t> m_color_ram_r;

View File

@ -38,10 +38,10 @@ public:
lckydraw_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_io_dips(*this, "DSW%u", 0U)
, m_io_switches(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_dips(*this, "DSW%d", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void lckydraw(machine_config &config);
@ -53,17 +53,17 @@ private:
void p2_w(u8);
u8 bus_r(offs_t);
void bus_w(offs_t,u8);
u8 m_bank_sw = 0;
u8 m_ram[256];
u8 m_p2_out[16];
u8 m_segment[3];
u8 m_p1 = 0;
u8 m_p2 = 0;
u8 m_bank_sw = 0U;
u8 m_ram[256]{};
u8 m_p2_out[16]{};
u8 m_segment[3]{};
u8 m_p1 = 0U;
u8 m_p2 = 0U;
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<i8035_device> m_maincpu;
required_ioport_array<4> m_io_dips;
required_ioport_array<8> m_io_switches;
required_ioport_array<8> m_io_keyboard;
output_finder<48> m_digits;
output_finder<48> m_io_outputs; // 16 solenoids + 32 lamps
};
@ -99,7 +99,7 @@ u8 lckydraw_state::bus_r(offs_t offset)
data = 0xff;
for (u8 i = 0; i < 4; i++)
if (!BIT(m_p1, i))
data &= m_io_switches[i]->read();
data &= m_io_keyboard[i]->read();
}
break;
case 4:
@ -385,6 +385,8 @@ void lckydraw_state::machine_start()
void lckydraw_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
}
void lckydraw_state::lckydraw(machine_config &config)

View File

@ -82,8 +82,8 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_porta;
u8 m_term_data;
u8 m_porta = 0U;
u8 m_term_data = 0U;
required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_region_ptr<u8> m_p_chargen;

View File

@ -106,7 +106,7 @@ private:
void lnw80_io(address_map &map);
void lnw80_mem(address_map &map);
u8 m_lnw_mode = 0;
u8 m_lnw_mode = 0U;
required_shared_ptr<u8> m_p_gfxram;
memory_view m_lnw_bank;
};

View File

@ -67,16 +67,16 @@ public:
ltd_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
DECLARE_INPUT_CHANGED_MEMBER(ficha);
protected:
u8 m_digit = 0;
u8 m_digit = 0U;
void mr_common();
void ms_common();
required_device<cpu_device> m_maincpu;

View File

@ -44,10 +44,10 @@ public:
macp_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_ay8910(*this, "ay%u", 0U)
, m_io_keyboard(*this, "X%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_ay8910(*this, "ay%d", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void mac16k(machine_config &config);
@ -68,11 +68,11 @@ private:
void ay1_b_w(u8);
u8 ay1_b_r();
u8 kbd_r();
u8 m_t_c = 0;
u8 m_digit = 0;
u8 m_ay1_b = 0;
u8 m_ay1_a = 0;
u8 m_relay_ctrl = 0;
u8 m_t_c = 0U;
u8 m_digit = 0U;
u8 m_ay1_b = 0U;
u8 m_ay1_a = 0U;
u8 m_relay_ctrl = 0U;
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<z80_device> m_maincpu;

View File

@ -126,11 +126,11 @@ private:
void mem_map(address_map &map);
u8 m_size_store = 0;
u8 m_size_store = 0U;
bool m_fdc_drq = 0;
bool m_fdc_int = 0;
bool m_allow_nmi = 0;
u8 m_mode = 0;
u8 m_mode = 0U;
floppy_image_device *m_floppy;
required_device<cpu_device> m_maincpu;
//required_region_ptr<u8> m_p_chargen;

View File

@ -103,8 +103,8 @@ private:
void sub_mem(address_map &map);
void sub_io(address_map &map);
u8 m_comm_latch;
u8 m_term_data;
u8 m_comm_latch = 0U;
u8 m_term_data = 0U;
required_device<mc6845_device> m_crtc;
required_device<i8255_device> m_ppi_m;
required_shared_ptr<u8> m_vram;

View File

@ -69,9 +69,9 @@ private:
void sport2k_map(address_map &map);
void sport2k_8051_io(address_map &map);
u8 m_ay8910_data;
bool m_ay8910_bdir;
bool m_ay8910_bc1;
u8 m_ay8910_data = 0U;
bool m_ay8910_bdir = 0;
bool m_ay8910_bc1 = 0;
void ay8910_update();
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -47,8 +47,8 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_term_data;
u8 m_port08;
u8 m_term_data = 0U;
u8 m_port08 = 0U;
required_device<cpu_device> m_maincpu;
required_shared_ptr<u8> m_p_videoram;
required_region_ptr<u8> m_p_chargen;

View File

@ -50,15 +50,15 @@ class micropin_state : public genpin_class
public:
micropin_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_digits(*this, "digit%u", 0U)
, m_leds(*this, "led%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_leds(*this, "led%d", 0U)
{ }
void pentacup2(machine_config &config);
protected:
TIMER_DEVICE_CALLBACK_MEMBER(timer_a);
u8 m_led_time[10]; // size must match m_leds
u8 m_led_time[10]{}; // size must match m_leds
void mr_common();
void ms_common();
output_finder<76> m_digits;
@ -92,8 +92,8 @@ private:
void p51b_w(u8 data) { }; // volume control
void mem_map(address_map &map);
u8 m_row;
u8 m_counter;
u8 m_row = 0U;
u8 m_counter = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<m6800_cpu_device> m_v1cpu;

View File

@ -120,9 +120,9 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_cass_data[4];
bool m_cassinbit, m_cassoutbit, m_cassold;
u8 m_return_code;
u8 m_cass_data[4]{};
bool m_cassinbit = 0, m_cassoutbit = 0, m_cassold = 0;
u8 m_return_code = 0U;
required_device<i8080_cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;

View File

@ -158,14 +158,14 @@ private:
bool m_ackv = 0;
bool m_flip = 0;
bool m_intst = 0;
u8 m_data = 0;
u8 m_sxx = 0;
u8 m_irq_state = 0;
u8 m_row = 0;
u8 m_sound_data = 0;
u8 m_gfx_bank = 0;
u8 m_video_data = 0;
u8 m_video_status = 0;
u8 m_data = 0U;
u8 m_sxx = 0U;
u8 m_irq_state = 0U;
u8 m_row = 0U;
u8 m_sound_data = 0U;
u8 m_gfx_bank = 0U;
u8 m_video_data = 0U;
u8 m_video_status = 0U;
tilemap_t *m_tilemap;
};

View File

@ -52,9 +52,9 @@ public:
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_nvram(*this, "nvram")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void nsm(machine_config &config);
@ -82,11 +82,11 @@ private:
u8 m_cru_out[9]{};
u8 m_cru_in[3]{};
u8 m_cru_in_bit = 0;
u8 m_cru_overflow = 0;
u8 m_row = 0;
u8 m_np_cru = 0;
u8 m_np_sel = 0;
u8 m_cru_in_bit = 0U;
u8 m_cru_overflow = 0U;
u8 m_row = 0U;
u8 m_np_cru = 0U;
u8 m_np_sel = 0U;
bool m_e600_locked = false;
virtual void machine_reset() override;
virtual void machine_start() override;

View File

@ -105,9 +105,9 @@ private:
void pegasus_mem(address_map &map);
void pegasusm_mem(address_map &map);
u8 m_kbd_row;
bool m_kbd_irq;
u8 m_control_bits;
u8 m_kbd_row = 0U;
bool m_kbd_irq = 0;
u8 m_control_bits = 0U;
std::unique_ptr<u8[]> m_pcg;
void pegasus_decrypt_rom(u8 *ROM);
required_device<cpu_device> m_maincpu;

View File

@ -126,9 +126,9 @@ private:
void mem_map(address_map &map);
virtual void machine_start() override;
int m_centronics_busy;
int m_centronics_ack;
bool m_cass_state;
int m_centronics_busy = 0;
int m_centronics_ack = 0;
bool m_cass_state = 0;
required_device<cpu_device> m_maincpu;
required_device<centronics_device> m_centronics;
required_device<cassette_image_device> m_cass;

View File

@ -76,8 +76,8 @@ private:
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
void data_map(address_map &map);
void mem_map(address_map &map);
u8 m_cass_data[4];
bool m_cassold, m_cassinbit;
u8 m_cass_data[4]{};
bool m_cassold = 0, m_cassinbit = 0;
};
void pipbug_state::pipbug_ctrl_w(u8 data)

View File

@ -40,11 +40,11 @@ public:
play_1_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_io_keyboard(*this, "X%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_monotone(*this, "monotone")
, m_digits(*this, "digit%u", 0U)
, m_leds(*this, "led%u", 1U)
, m_player_lamps(*this, "text%u", 1U)
, m_digits(*this, "digit%d", 0U)
, m_leds(*this, "led%d", 1U)
, m_player_lamps(*this, "text%d", 1U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -74,12 +74,12 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
u8 m_resetcnt = 0;
u16 m_clockcnt = 0;
u16 m_waitcnt = 0;
u8 m_segment = 0;
u8 m_match = 0;
u8 m_ball = 0;
u8 m_resetcnt = 0U;
u16 m_clockcnt = 0U;
u16 m_waitcnt = 0U;
u8 m_segment = 0U;
u8 m_match = 0U;
u8 m_ball = 0U;
required_device<cosmac_device> m_maincpu;
required_ioport_array<10> m_io_keyboard;
required_device<clock_device> m_monotone;

View File

@ -59,8 +59,8 @@ public:
, m_4020(*this, "4020")
, m_1863(*this, "1863")
, m_snd_off(*this, "snd_off")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -83,13 +83,13 @@ protected:
void play_2_io(address_map &map);
void play_2_map(address_map &map);
u8 m_resetcnt = 0;
u8 m_kbdrow = 0;
u8 m_resetcnt = 0U;
u8 m_kbdrow = 0U;
u8 m_segment[5]{};
bool m_disp_sw = 0;
u8 m_port06 = 0;
u8 m_port06 = 0U;
u8 m_old_solenoids[8]{};
u8 m_soundlatch = 0;
u8 m_soundlatch = 0U;
bool m_snd_on = false;
virtual void machine_reset() override;
virtual void machine_start() override;

View File

@ -87,8 +87,8 @@ public:
, m_ay1(*this, "ay1")
, m_ay2(*this, "ay2")
, m_zsu(*this, "zsu")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -127,13 +127,13 @@ private:
void flashman_io(address_map &map);
void sklflite_io(address_map &map);
u8 m_resetcnt = 0;
u8 m_resetcnt_a = 0;
u8 m_soundlatch = 0;
u8 m_port03_old = 0;
u8 m_a_irqset = 0;
u16 m_a_irqcnt = 0;
u8 m_kbdrow = 0;
u8 m_resetcnt = 0U;
u8 m_resetcnt_a = 0U;
u8 m_soundlatch = 0U;
u8 m_port03_old = 0U;
u8 m_a_irqset = 0U;
u16 m_a_irqcnt = 0U;
u8 m_kbdrow = 0U;
u8 m_segment[5]{};
bool m_disp_sw = 0;
virtual void machine_reset() override;

View File

@ -144,8 +144,8 @@ private:
u8 port07_r();
void port1b_w(u8 data);
void port1c_w(u8 data);
u8 m_term_out;
u8 m_term_in;
u8 m_term_out = 0U;
u8 m_term_in = 0U;
required_device<generic_terminal_device> m_terminal;
};

View File

@ -89,12 +89,12 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
bool m_q_state;
bool m_qbar_state;
bool m_drq_state;
uint16_t m_beepcnt;
bool m_eop;
bool m_dack1;
bool m_q_state = 0;
bool m_qbar_state = 0;
bool m_drq_state = 0;
uint16_t m_beepcnt = 0U;
bool m_eop = 0;
bool m_dack1 = 0;
required_device<palette_device> m_palette;
required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_rom;

View File

@ -34,6 +34,7 @@ ToDo:
- No info on the sound (all it says is 4 TTL chips controlled by 6 bits of the IO expander)
- A plug-in printer is used to view and alter settings. We have no info about it.
- Default layout
- Outputs
*****************************************************************************************************/
@ -58,8 +59,8 @@ public:
, m_maincpu(*this, "maincpu")
, m_pm(*this, "module") // personality module
, m_nvram(*this, "nvram")
, m_switches(*this, "X%u", 0U)
, m_digit(*this, "digit%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digit(*this, "digit%d", 0U)
{ }
void recel(machine_config &config);
@ -87,14 +88,14 @@ private:
required_device<pps4_2_device> m_maincpu;
required_region_ptr<u8> m_pm;
required_shared_ptr<u8> m_nvram;
required_ioport_array<6> m_switches;
required_ioport_array<6> m_io_keyboard;
output_finder<32> m_digit;
u8 m_strobe = 0;
u16 m_nvram_addr = 0;
u8 m_nvram_data = 0;
u8 m_strobe = 0U;
u16 m_nvram_addr = 0U;
u8 m_nvram_data = 0U;
bool m_nvram_prev_clk = 0;
u8 m_prom_addr = 0;
u8 m_prom_addr = 0U;
};
void recel_state::recel_map(address_map &map) // need address ranges
@ -121,53 +122,53 @@ void recel_state::recel_io(address_map &map) // to be done
static INPUT_PORTS_START( recel )
PORT_START("X0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Play/Test")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("SW.10")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("SW.20")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("SW.30")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("SW.40")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("SW.50")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("SW.60")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("SW.70")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP10")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP20")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP30")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP40")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP50")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP60")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP70")
PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("SW.11")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("SW.21")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("SW.31")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("SW.41")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("SW.51")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("SW.61")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("SW.71")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP11")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP21")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP31")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP41")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP51")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP61")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP71")
PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("SW.12")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("SW.22")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("SW.32")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("SW.42")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("SW.52")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("SW.62")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("SW.72")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP12")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP22")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP32")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP42")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP52")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP62")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP72")
PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("SW.13")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("SW.23")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("SW.33")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("SW.43")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("SW.53")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("SW.63")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("SW.73")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP13")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP23")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP33")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP43")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP53")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP63")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP73")
PORT_START("X4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Tilt")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("SW.14")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("SW.24")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("SW.34")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("SW.44")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("SW.54")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("SW.64")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("SW.74")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP14")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP24")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP34")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP44")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP54")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP64")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP74")
PORT_START("X5")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Reset")
@ -239,7 +240,7 @@ u8 recel_state::switches_r(offs_t offset) // to be done
for (u8 i = 0; i < 5; i++)
if (BIT(m_strobe, i))
{
data |= BIT(m_switches[i]->read(), offset & 7);
data |= BIT(m_io_keyboard[i]->read(), offset & 7);
//LOG("%s: switches[bit %X of %X, using offset of %X] got %x\n", __FUNCTION__, i, m_strobe, offset&7, data);
}
return data ? 0 : 1; // FIXME: inverted or normal?

View File

@ -42,7 +42,7 @@ public:
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu")
, m_digits(*this, "digit%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -57,7 +57,7 @@ private:
void audio_mem_map(address_map &map);
void audio_io_map(address_map &map);
u8 m_sndcmd = 0xff;
u8 m_sndcmd = 0xffU;
u8 m_io[32]{};
virtual void machine_reset() override;
virtual void machine_start() override;

View File

@ -124,11 +124,11 @@ private:
optional_device<ram_device> m_videoram;
optional_region_ptr<uint8_t> m_p_cas;
int m_led1_val;
int m_led2_val;
u8 m_krfd;
uint16_t m_dma_adr;
int m_r, m_w;
int m_led1_val = 0;
int m_led2_val = 0;
u8 m_krfd = 0U;
uint16_t m_dma_adr = 0U;
int m_r = 0, m_w = 0;
};
@ -882,6 +882,6 @@ ROM_END
***************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1986, rt1715, 0, 0, rt1715, k7658, rt1715_state, empty_init, "Robotron", "Robotron PC-1715", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
COMP( 1986, rt1715lc, rt1715, 0, rt1715, k7658, rt1715_state, empty_init, "Robotron", "Robotron PC-1715 (latin/cyrillic)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
COMP( 1986, rt1715, 0, 0, rt1715, k7658, rt1715_state, empty_init, "Robotron", "Robotron PC-1715", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
COMP( 1986, rt1715lc, rt1715, 0, rt1715, k7658, rt1715_state, empty_init, "Robotron", "Robotron PC-1715 (latin/cyrillic)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
COMP( 1986, rt1715w, rt1715, 0, rt1715w, rt1715w, rt1715_state, empty_init, "Robotron", "Robotron PC-1715W", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )

View File

@ -115,15 +115,15 @@ private:
void rx78_io(address_map &map);
void rx78_mem(address_map &map);
u8 m_vram_read_bank = 0;
u8 m_vram_write_bank = 0;
u8 m_pal_reg[7];
u8 m_pri_mask = 0;
u8 m_key_mux = 0;
u8 m_background = 0;
u8 m_vram_read_bank = 0U;
u8 m_vram_write_bank = 0U;
u8 m_pal_reg[7]{};
u8 m_pri_mask = 0U;
u8 m_key_mux = 0U;
u8 m_background = 0U;
bool m_irq_en = 1;
u8 m_irq_slow = 0;
u8 m_irq_count = 0;
u8 m_irq_slow = 0U;
u8 m_irq_count = 0U;
std::unique_ptr<u8[]> m_vram;
required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;

View File

@ -122,11 +122,11 @@ private:
void audio_map(address_map &map);
void main_map(address_map &map);
u8 m_sound_data = 0;
u8 m_strobe = 0;
u8 m_row = 0;
u8 m_sound_data = 0U;
u8 m_strobe = 0U;
u8 m_row = 0U;
bool m_data_ok = 0;
u8 m_lamp_data = 0;
u8 m_lamp_data = 0U;
emu_timer* m_irq_timer;
static const device_timer_id TIMER_IRQ = 0;
required_device<m6802_cpu_device> m_maincpu;

View File

@ -117,14 +117,14 @@ private:
void sub_io_map(address_map &map);
void sub_mem_map(address_map &map);
bool m_busak;
u8 m_keydown;
u8 m_porta;
u8 m_portb;
u8 m_portc;
u8 m_port10;
u8 m_key_data;
u8 m_framecnt;
bool m_busak = 0;
u8 m_keydown = 0U;
u8 m_porta = 0U;
u8 m_portb = 0U;
u8 m_portc = 0U;
u8 m_port10 = 0U;
u8 m_key_data = 0U;
u8 m_framecnt = 0U;
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;

View File

@ -57,10 +57,10 @@ public:
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_snsnd(*this, "snsnd")
, m_switch(*this, "X%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_p_ram(*this, "nvram")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void spectra(machine_config &config);
@ -74,15 +74,15 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(outtimer);
void spectra_map(address_map &map);
u8 m_porta;
u8 m_portb;
u8 m_t_c;
u8 m_out_offs;
u8 m_porta = 0U;
u8 m_portb = 0U;
u8 m_t_c = 0U;
u8 m_out_offs = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<cpu_device> m_maincpu;
required_device<sn76477_device> m_snsnd;
required_ioport_array<4> m_switch;
required_ioport_array<4> m_io_keyboard;
required_shared_ptr<u8> m_p_ram;
output_finder<40> m_digits;
output_finder<64> m_io_outputs; // 16 solenoids + 48 lamps
@ -143,7 +143,7 @@ INPUT_PORTS_END
u8 spectra_state::porta_r()
{
u8 row = (m_porta & 0x18) >> 3;
u8 key = m_switch[row]->read();
u8 key = m_io_keyboard[row]->read();
u8 ret = ((BIT(key, m_porta & 7)) ? 0x40 : 0) | (m_porta & 0xbf);
if (ret == 0x1b && m_p_ram[0x7b] < 0x1E)
@ -240,7 +240,6 @@ TIMER_DEVICE_CALLBACK_MEMBER( spectra_state::outtimer)
void spectra_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_io_outputs.resolve();
@ -253,6 +252,9 @@ void spectra_state::machine_start()
void spectra_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_t_c = 0;
}

View File

@ -138,23 +138,23 @@ private:
bool m_pc0a = 0;
bool m_pc0m = 0;
u8 m_game = 0;
u8 m_row = 0;
u8 m_p3 = 0;
u8 m_p32 = 0;
u8 m_dmdcmd = 0;
u8 m_dmdbank = 0;
u8 m_dmdextaddr = 0;
u8 m_game = 0U;
u8 m_row = 0U;
u8 m_p3 = 0U;
u8 m_p32 = 0U;
u8 m_dmdcmd = 0U;
u8 m_dmdbank = 0U;
u8 m_dmdextaddr = 0U;
u8 m_dmdram[0x2000]{};
u8 m_sndcmd = 0;
u8 m_sndbank_a = 0;
u8 m_sndbank_m = 0;
u32 m_sound_addr_a = 0;
u32 m_sound_addr_m = 0;
u32 m_audio_size = 0;
u32 m_music_size = 0;
u32 m_dmd_size = 0;
u8 m_return_status = 0;
u8 m_sndcmd = 0U;
u8 m_sndbank_a = 0U;
u8 m_sndbank_m = 0U;
u32 m_sound_addr_a = 0U;
u32 m_sound_addr_m = 0U;
u32 m_audio_size = 0U;
u32 m_music_size = 0U;
u32 m_dmd_size = 0U;
u8 m_return_status = 0U;
u8 m_segment[8]{}; // metalman
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;

View File

@ -65,9 +65,9 @@ private:
u8 sw_r();
void maincpu_map(address_map &map);
u8 m_t_c = 0;
u8 m_strobe = 0;
u8 m_segment = 0;
u8 m_t_c = 0U;
u8 m_strobe = 0U;
u8 m_segment = 0U;
u8 m_last_solenoid[2]{ };
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -47,8 +47,8 @@ public:
, m_io_x2(*this, "X2")
, m_io_x3(*this, "X3")
, m_io_x4(*this, "X4")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void st_mp100(machine_config &config);
@ -74,18 +74,18 @@ private:
DECLARE_WRITE_LINE_MEMBER(u11_cb2_w);
void mem_map(address_map &map);
u8 m_u10a = 0;
u8 m_u10b = 0;
u8 m_u11a = 0;
u8 m_u11b = 0;
u8 m_u10a = 0U;
u8 m_u10b = 0U;
u8 m_u11a = 0U;
u8 m_u11b = 0U;
bool m_u10_ca2 = 0;
bool m_u10_cb2 = 0;
bool m_u11_cb2 = 0;
u8 m_stored_lamp = 0xff;
u8 m_digit = 0;
u8 m_counter = 0;
u8 m_stored_lamp = 0xffU;
u8 m_digit = 0U;
u8 m_counter = 0U;
u8 m_segment[5]{};
u8 m_last_solenoid = 15;
u8 m_last_solenoid = 15U;
required_device<m6800_cpu_device> m_maincpu;
required_device<pia6821_device> m_pia_u10;
@ -718,7 +718,6 @@ void st_mp100_state::u11_b_w(u8 data)
void st_mp100_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_io_outputs.resolve();

View File

@ -67,8 +67,8 @@ public:
, m_io_x2(*this, "X2")
, m_io_x3(*this, "X3")
, m_io_x4(*this, "X4")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void st_mp201(machine_config &config);
@ -101,19 +101,19 @@ private:
void mem_map(address_map &map);
u8 m_u10a = 0;
u8 m_u10b = 0;
u8 m_u11a = 0;
u8 m_u11b = 0;
u8 m_u10a = 0U;
u8 m_u10b = 0U;
u8 m_u11a = 0U;
u8 m_u11b = 0U;
bool m_u10_ca2 = 0;
bool m_u10_cb2 = 0;
bool m_u11_cb2 = 0;
bool m_7d = 0; // 7-digit display yes/no
u8 m_stored_lamp = 0xff;
u8 m_digit = 0;
u8 m_counter = 0;
u8 m_stored_lamp = 0xffU;
u8 m_digit = 0U;
u8 m_counter = 0U;
u8 m_segment[5]{};
u8 m_last_solenoid = 31;
u8 m_last_solenoid = 31U;
required_device<m6800_cpu_device> m_maincpu;
optional_device<s14001a_device> m_s14001a;
optional_region_ptr<u8> m_speech;
@ -538,7 +538,6 @@ u8 st_mp200_state::speech_r(offs_t offset)
void st_mp200_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_io_outputs.resolve();
@ -560,6 +559,7 @@ void st_mp200_state::machine_start()
void st_mp200_state::machine_reset()
{
genpin_class::machine_reset();
m_u10a = 0;
m_u10b = 0;
m_u10_cb2 = 0;

View File

@ -69,8 +69,8 @@ private:
void maincpu_io(address_map &map);
void maincpu_map(address_map &map);
u8 m_segment[5]{};
u8 m_game = 0;
u8 m_row = 0;
u8 m_game = 0U;
u8 m_row = 0U;
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -84,17 +84,17 @@ private:
required_ioport m_io_row2;
required_ioport m_io_joy;
uint8_t m_column;
uint8_t m_column = 0U;
// graphics signals
uint8_t m_ag;
uint8_t m_gm2;
uint8_t m_gm1;
uint8_t m_gm0;
uint8_t m_as;
uint8_t m_css;
uint8_t m_intext;
uint8_t m_inv;
uint8_t m_ag = 0U;
uint8_t m_gm2 = 0U;
uint8_t m_gm1 = 0U;
uint8_t m_gm0 = 0U;
uint8_t m_as = 0U;
uint8_t m_css = 0U;
uint8_t m_intext = 0U;
uint8_t m_inv = 0U;
};

View File

@ -66,7 +66,7 @@ public:
: genpin_class(mconfig, type, tag)
, m_audiocpu(*this, "audiocpu")
, m_pia(*this, "pia")
, m_digits(*this, "digit%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
@ -79,7 +79,7 @@ protected:
void audio_map(address_map &map);
void audio_map2(address_map &map);
u8 pia_pb_r();
u8 m_sndcmd = 0x3e;
u8 m_sndcmd = 0x3eU;
required_device<m6802_cpu_device> m_audiocpu;
required_device<pia6821_device> m_pia;
output_finder<32> m_digits;
@ -114,7 +114,7 @@ private:
void shock_audio_map(address_map &map);
void main_map(address_map &map);
u8 m_votrax_cmd = 0;
u8 m_votrax_cmd = 0U;
u8 m_io[32]{};
required_device<i8080_cpu_device> m_maincpu;
optional_device<votrax_sc01_device> m_votrax;
@ -143,8 +143,8 @@ private:
void z80_lamp_w(u8);
void z80_sol_w(u8);
u8 z80_key_r();
u8 m_row = 0;
u8 m_t_c = 0;
u8 m_row = 0U;
u8 m_t_c = 0U;
required_device<z80_device> m_z80cpu;
required_ioport_array<8> m_io_keyboard;
};

View File

@ -47,9 +47,9 @@ public:
, m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu")
, m_dac(*this, "dac")
, m_io_keyboard(*this, "X%u", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void techno(machine_config &config);
@ -95,12 +95,12 @@ private:
emu_timer *m_irq_advance_timer;
bool m_digwait = 0;
u8 m_keyrow = 0;
u16 m_digit = 0;
u8 m_vector = 0;
u8 m_snd_cmd = 0;
u8 m_keyrow = 0U;
u16 m_digit = 0U;
u8 m_vector = 0U;
u8 m_snd_cmd = 0U;
bool m_snd_ack = 0;
u32 m_last_solenoid = 0;
u32 m_last_solenoid = 0U;
};

View File

@ -168,21 +168,21 @@ private:
output_finder<10> m_digits;
output_finder<7> m_leds;
int m_load_state;
int m_load_state = 0;
int m_digitsel;
int m_segment;
int m_digitsel = 0;
int m_segment = 0;
emu_timer *m_displayena_timer;
uint8_t m_segment_state[10];
uint8_t m_old_segment_state[10];
uint8_t m_LED_state;
uint8_t m_segment_state[10]{};
uint8_t m_old_segment_state[10]{};
uint8_t m_LED_state = 0U;
emu_timer *m_joy1x_timer;
emu_timer *m_joy1y_timer;
emu_timer *m_joy2x_timer;
emu_timer *m_joy2y_timer;
device_image_interface *m_rs232_fp;
//uint8_t m_rs232_rts;
uint8_t m_bogus_read_save;
uint8_t m_bogus_read_save = 0U;
};

View File

@ -59,7 +59,6 @@ public:
, m_crtc(*this, "crtc")
, m_psg(*this, "psg")
, m_uart(*this, "uart")
, m_membank(0)
{}
void ultim809(machine_config &config);
@ -77,7 +76,7 @@ private:
required_device<tms9918a_device> m_crtc;
required_device<ay8910_device> m_psg;
required_device<ns16550_device> m_uart;
u8 m_membank;
u8 m_membank = 0U;
};
void ultim809_state::mem_map(address_map &map)

View File

@ -71,7 +71,6 @@ class v6809_state : public driver_device
public:
v6809_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_video_address(0)
, m_pia0(*this, "pia0")
, m_maincpu(*this, "maincpu")
, m_crtc(*this, "crtc")
@ -103,11 +102,11 @@ private:
void v6809_mem(address_map &map);
u16 m_video_address;
bool m_speaker_en;
u8 m_video_index;
u8 m_term_data;
u8 m_vidbyte;
u16 m_video_address = 0U;
bool m_speaker_en = 0;
u8 m_video_index = 0U;
u8 m_term_data = 0U;
u8 m_vidbyte = 0U;
std::unique_ptr<u8[]> m_vram;
required_device<pia6821_device> m_pia0;
required_device<cpu_device> m_maincpu;

View File

@ -41,8 +41,8 @@ public:
vd_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void vd(machine_config &config);
@ -61,8 +61,8 @@ private:
void mem_map(address_map &map);
bool m_ready = 0;
u8 m_t_c = 0;
u8 m_game = 0;
u8 m_t_c = 0U;
u8 m_game = 0U;
u8 m_segment[5]{};
virtual void machine_start() override;
virtual void machine_reset() override;

View File

@ -99,14 +99,7 @@ public:
, m_sync_rom(*this, "video")
, m_char_rom(*this, "chargen")
, m_video_ram(*this, "video_ram")
, m_key(*this, "KEY.%u", 0)
, m_cmd_d1(0)
, m_fdint(0)
, m_vsync(0)
, m_srq(1)
, m_atn(1)
, m_rxrdy(0)
, m_txrdy(0)
, m_key(*this, "KEY.%u", 0U)
{ }
void vixen(machine_config &config);
@ -165,30 +158,30 @@ private:
void update_interrupt();
// keyboard state
uint8_t m_col;
uint8_t m_col = 0U;
// interrupt state
int m_cmd_d0;
int m_cmd_d1;
int m_cmd_d0 = 0;
int m_cmd_d1 = 0;
bool m_fdint;
int m_vsync;
bool m_fdint = 0;
int m_vsync = 0;
int m_srq;
int m_atn;
int m_enb_srq_int;
int m_enb_atn_int;
int m_srq = 1;
int m_atn = 1;
int m_enb_srq_int = 0;
int m_enb_atn_int = 0;
int m_rxrdy;
int m_txrdy;
int m_int_clk;
int m_enb_xmt_int;
int m_enb_rcv_int;
int m_enb_ring_int;
int m_rxrdy = 0;
int m_txrdy = 0;
int m_int_clk = 0;
int m_enb_xmt_int = 0;
int m_enb_rcv_int = 0;
int m_enb_ring_int = 0;
// video state
bool m_alt;
bool m_256;
bool m_alt = 0;
bool m_256 = 0;
};

View File

@ -54,8 +54,8 @@ public:
, m_hcpu(*this, "hcpu")
, m_shared_ram(*this, "sharedram")
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void wico(machine_config &config);
@ -77,12 +77,12 @@ private:
void ccpu_map(address_map &map);
void hcpu_map(address_map &map);
bool m_zcen;
bool m_gten;
bool m_disp_on;
bool m_diag_on;
u8 m_firqtimer;
u8 m_diag_segments;
bool m_zcen = 0;
bool m_gten = 0;
bool m_disp_on = 0;
bool m_diag_on = 0;
u8 m_firqtimer = 0U;
u8 m_diag_segments = 0U;
virtual void machine_start() override;
virtual void machine_reset() override;
required_device<cpu_device> m_ccpu;

View File

@ -80,8 +80,8 @@ public:
, m_dac(*this, "dac")
, m_soundlatch(*this, "soundlatch")
, m_sn(*this, "sn")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void locomotp(machine_config &config);
@ -112,13 +112,13 @@ private:
void audio_data(address_map &map);
void audio_io(address_map &map);
uint8_t m_t_c = 0;
uint8_t m_out_offs = 0;
uint8_t m_input_line = 0;
u8 m_sn_store = 0xff;
uint8_t m_t_c = 0U;
uint8_t m_out_offs = 0U;
uint8_t m_input_line = 0U;
u8 m_sn_store = 0xffU;
bool m_clock_state = 0;
bool m_noise_state = 0;
u8 m_40193 = 0;
u8 m_40193 = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
void audio_command_w(uint8_t data);
@ -453,6 +453,10 @@ WRITE_LINE_MEMBER( zac_1_state::serial_w )
void zac_1_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_t_c = 0;
m_out_offs = 0;
m_input_line = 0;
@ -476,6 +480,7 @@ void zac_1_state::machine_reset()
void zac_1_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_io_outputs.resolve();

View File

@ -2,8 +2,8 @@
// copyright-holders:Robbbert
/***************************************************************************************************
PINBALL
Zaccaria Generation 2
PINBALL
Zaccaria Generation 2
****************************************************************************************************/
@ -21,8 +21,8 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_p_ram(*this, "ram")
, m_row(*this, "ROW.%u", 0)
, m_digits(*this, "digit%u", 0U)
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
{ }
void zac_2(machine_config &config);
@ -39,14 +39,14 @@ private:
void zac_2_io(address_map &map);
void zac_2_map(address_map &map);
uint8_t m_input_line;
uint8_t m_t_c;
uint8_t m_out_offs;
uint8_t m_input_line = 0U;
uint8_t m_t_c = 0U;
uint8_t m_out_offs = 0U;
virtual void machine_reset() override;
virtual void machine_start() override { m_digits.resolve(); }
required_device<s2650_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_ram;
required_ioport_array<6> m_row;
required_ioport_array<7> m_io_keyboard;
output_finder<78> m_digits;
};
@ -90,68 +90,81 @@ static INPUT_PORTS_START( zac_2 )
PORT_DIPSETTING( 0x08, DEF_STR(Off))
PORT_DIPSETTING( 0x00, DEF_STR(On))
PORT_START("ROW.0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Advance Test")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Return Test")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_START("X0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Advance Test")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Return Test")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Tilt 2")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Credit Service")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Printer")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("ROW.1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RAM Reset")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Burn Test")
PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt 2")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Factory Burn Test")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
// from here is not correct
PORT_START("ROW.2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Flap") PORT_CODE(KEYCODE_Q)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Flap") PORT_CODE(KEYCODE_W)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Inside RH Canal") PORT_CODE(KEYCODE_E)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Outside RH Canal") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Outside LH Canal") PORT_CODE(KEYCODE_Y)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Inside LH Canal") PORT_CODE(KEYCODE_U)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Hole") PORT_CODE(KEYCODE_I)
PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP17")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP18")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP19")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP20")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP21")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP22")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP23")
PORT_START("ROW.3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bumper") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Canal") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Top Centre Canal") PORT_CODE(KEYCODE_S)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Canal") PORT_CODE(KEYCODE_D)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Fixed Target") PORT_CODE(KEYCODE_F)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Fixed Target") PORT_CODE(KEYCODE_G)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bumper") PORT_CODE(KEYCODE_H)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Hole") PORT_CODE(KEYCODE_J)
PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP24")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP25")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP26")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP27")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP28")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP29")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP30")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP31")
PORT_START("ROW.4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Bumper") PORT_CODE(KEYCODE_K)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Contact") PORT_CODE(KEYCODE_L)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Contact") PORT_CODE(KEYCODE_Z)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Spinning Target") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Lateral Outside Contacts") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Spinning Target") PORT_CODE(KEYCODE_V)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bank Contacts") PORT_CODE(KEYCODE_B)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Moving Target") PORT_CODE(KEYCODE_N)
PORT_START("X4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP32")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP33")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP34")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP35")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP36")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP37")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP38")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP39")
PORT_START("ROW.5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 1") PORT_CODE(KEYCODE_M)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 2") PORT_CODE(KEYCODE_MINUS)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 3") PORT_CODE(KEYCODE_EQUALS)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 4") PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 1") PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 2") PORT_CODE(KEYCODE_CLOSEBRACE)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 3") PORT_CODE(KEYCODE_BACKSLASH)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 4") PORT_CODE(KEYCODE_COLON)
PORT_START("X5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP40")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP41")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP42")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP43")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP44")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP45")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP46")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP47")
PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP48")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP49")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP50")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP51")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP52")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP53")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP54")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP55")
INPUT_PORTS_END
uint8_t zac_2_state::ctrl_r()
{
if (m_input_line < 6)
return m_row[m_input_line]->read();
if (m_input_line < 7)
return m_io_keyboard[m_input_line]->read();
return 0xff;
}

View File

@ -40,8 +40,8 @@ public:
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_speaker(*this, "speaker")
, m_digits(*this, "digit%u", 0U)
, m_io_outputs(*this, "out%u", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void zac_proto(machine_config &config);
@ -53,10 +53,10 @@ private:
void sound_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(audio_clock);
void zac_proto_map(address_map &map);
u8 m_u36 = 0x80; // preset divider for u44/u45
u8 m_u37 = 0; // selector for u48
u8 m_u44u45 = 0; // counters for u44/u45
u8 m_u46u47 = 0; // counters for u46/u47
u8 m_u36 = 0x80U; // preset divider for u44/u45
u8 m_u37 = 0U; // selector for u48
u8 m_u44u45 = 0U; // counters for u44/u45
u8 m_u46u47 = 0U; // counters for u46/u47
virtual void machine_reset() override;
virtual void machine_start() override;
@ -95,35 +95,35 @@ static INPUT_PORTS_START( zac_proto )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Ball Ready")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("INP 06")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("INP 07")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("INP06")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("INP07")
PORT_START("X1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("INP 10")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("INP 11")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("INP 12")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("INP 13")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("INP 14")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("INP 15")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("INP 16")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) PORT_NAME("INP 17")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("INP10")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("INP11")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("INP12")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("INP13")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("INP14")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("INP15")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("INP16")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) PORT_NAME("INP17")
PORT_START("X2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("INP 20")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("INP 21")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("INP 22")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("INP 23")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("INP 24")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_P) PORT_NAME("INP 25")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("INP 26")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("INP 27")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("INP20")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("INP21")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("INP22")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("INP23")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("INP24")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_P) PORT_NAME("INP25")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("INP26")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("INP27")
PORT_START("X3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("INP 30")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("INP 31")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("INP 32")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("INP 33")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("INP 34")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("INP 35")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP 36")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP 37")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("INP30")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("INP31")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("INP32")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("INP33")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("INP34")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("INP35")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP36")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP37")
PORT_START("X4")
PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
@ -299,6 +299,8 @@ void zac_proto_state::machine_start()
void zac_proto_state::machine_reset()
{
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_digits[10] = 0x3f; // units shows zero all the time
}