mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
drivers: simplified some handlers (nw)
This commit is contained in:
parent
61dfe59a99
commit
be48335b7c
@ -73,6 +73,10 @@ public:
|
||||
|
||||
void midcoin24cdjuke(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_ioport m_io_row0;
|
||||
@ -82,14 +86,11 @@ private:
|
||||
required_region_ptr<uint16_t> m_charset;
|
||||
output_finder<16> m_digits;
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
uint8_t kb_row_r();
|
||||
void kb_col_w(uint8_t data);
|
||||
void digit_w(offs_t offset, uint8_t data);
|
||||
|
||||
DECLARE_READ8_MEMBER(kb_row_r);
|
||||
DECLARE_WRITE8_MEMBER(kb_col_w);
|
||||
DECLARE_WRITE8_MEMBER(digit_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(unknown_r) { return machine().rand(); }
|
||||
uint8_t unknown_r() { return machine().rand(); }
|
||||
|
||||
void midcoin24cdjuke_io(address_map &map);
|
||||
void midcoin24cdjuke_map(address_map &map);
|
||||
@ -98,7 +99,7 @@ private:
|
||||
};
|
||||
|
||||
|
||||
READ8_MEMBER(midcoin24cdjuke_state::kb_row_r)
|
||||
uint8_t midcoin24cdjuke_state::kb_row_r()
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
|
||||
@ -114,12 +115,12 @@ READ8_MEMBER(midcoin24cdjuke_state::kb_row_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(midcoin24cdjuke_state::kb_col_w)
|
||||
void midcoin24cdjuke_state::kb_col_w(uint8_t data)
|
||||
{
|
||||
m_kb_col = data & 0xf0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(midcoin24cdjuke_state::digit_w)
|
||||
void midcoin24cdjuke_state::digit_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
uint16_t char_data = m_charset[((data & 0x60) << 1) | (data & 0x1f)];
|
||||
|
||||
|
@ -76,7 +76,7 @@ private:
|
||||
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
//INTERRUPT_GEN_MEMBER(drill_device_irq);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
void irqhandler(int state);
|
||||
|
||||
void drill_map(address_map &map);
|
||||
|
||||
@ -330,7 +330,7 @@ INTERRUPT_GEN_MEMBER(_2mindril_state::drill_device_irq)
|
||||
#endif
|
||||
|
||||
/* WRONG,it does something with 60000c & 700002,likely to be called when the player throws the ball.*/
|
||||
WRITE_LINE_MEMBER(_2mindril_state::irqhandler)
|
||||
void _2mindril_state::irqhandler(int state)
|
||||
{
|
||||
// m_maincpu->set_input_line(5, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
@ -77,13 +77,13 @@ private:
|
||||
void main_map(address_map &map);
|
||||
|
||||
void output_digit(int i, u8 data);
|
||||
DECLARE_WRITE8_MEMBER(led_w);
|
||||
DECLARE_WRITE8_MEMBER(led_rank_w);
|
||||
DECLARE_WRITE8_MEMBER(lamps_w);
|
||||
DECLARE_READ8_MEMBER(mux_r);
|
||||
DECLARE_WRITE8_MEMBER(coin_w);
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
DECLARE_WRITE8_MEMBER(okibank_w);
|
||||
void led_w(offs_t offset, u8 data);
|
||||
void led_rank_w(offs_t offset, u8 data);
|
||||
void lamps_w(u8 data);
|
||||
u8 mux_r();
|
||||
void coin_w(u8 data);
|
||||
void mux_w(u8 data);
|
||||
void okibank_w(u8 data);
|
||||
|
||||
u8 m_mux_data = 0;
|
||||
};
|
||||
@ -111,7 +111,7 @@ void namco_30test_state::output_digit(int i, u8 data)
|
||||
m_digits[i] = led_map[data & 0xf];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namco_30test_state::led_w)
|
||||
void namco_30test_state::led_w(offs_t offset, u8 data)
|
||||
{
|
||||
// 0-29: playfield
|
||||
// 30,31: time
|
||||
@ -119,7 +119,7 @@ WRITE8_MEMBER(namco_30test_state::led_w)
|
||||
output_digit(1 + offset * 2, data & 0x0f);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namco_30test_state::led_rank_w)
|
||||
void namco_30test_state::led_rank_w(offs_t offset, u8 data)
|
||||
{
|
||||
// 0: 1st place
|
||||
// 1: 2nd place
|
||||
@ -129,14 +129,14 @@ WRITE8_MEMBER(namco_30test_state::led_rank_w)
|
||||
output_digit(65 + offset * 2, data & 0x0f);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namco_30test_state::lamps_w)
|
||||
void namco_30test_state::lamps_w(u8 data)
|
||||
{
|
||||
// d0-d5: ranking, d6: game over, d7: assume marquee lamp
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_lamps[i] = BIT(data, i);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namco_30test_state::coin_w)
|
||||
void namco_30test_state::coin_w(u8 data)
|
||||
{
|
||||
// d2: coincounter
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 2));
|
||||
@ -145,7 +145,7 @@ WRITE8_MEMBER(namco_30test_state::coin_w)
|
||||
// other: ?
|
||||
}
|
||||
|
||||
READ8_MEMBER(namco_30test_state::mux_r)
|
||||
u8 namco_30test_state::mux_r()
|
||||
{
|
||||
u8 data = 0xff;
|
||||
|
||||
@ -158,12 +158,12 @@ READ8_MEMBER(namco_30test_state::mux_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namco_30test_state::mux_w)
|
||||
void namco_30test_state::mux_w(u8 data)
|
||||
{
|
||||
m_mux_data = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(namco_30test_state::okibank_w)
|
||||
void namco_30test_state::okibank_w(u8 data)
|
||||
{
|
||||
m_oki->set_rom_bank(data & 1);
|
||||
}
|
||||
|
@ -29,9 +29,12 @@ public:
|
||||
|
||||
void _4004clk(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
DECLARE_WRITE8_MEMBER( nixie_w );
|
||||
DECLARE_WRITE8_MEMBER( neon_w );
|
||||
void nixie_w(offs_t offset, uint8_t data);
|
||||
void neon_w(uint8_t data);
|
||||
|
||||
void _4004clk_mem(address_map &map);
|
||||
void _4004clk_mp(address_map &map);
|
||||
@ -39,8 +42,6 @@ private:
|
||||
void _4004clk_rp(address_map &map);
|
||||
void _4004clk_stat(address_map &map);
|
||||
|
||||
virtual void machine_start() override;
|
||||
|
||||
static constexpr uint8_t nixie_to_num(uint16_t val)
|
||||
{
|
||||
return
|
||||
@ -62,7 +63,7 @@ private:
|
||||
output_finder<4> m_neon_out;
|
||||
};
|
||||
|
||||
WRITE8_MEMBER(nixieclock_state::nixie_w)
|
||||
void nixieclock_state::nixie_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_nixie[offset >> 4] = data;
|
||||
m_nixie_out[5] = nixie_to_num(((m_nixie[2] & 3)<<8) | (m_nixie[1] << 4) | m_nixie[0]);
|
||||
@ -73,7 +74,7 @@ WRITE8_MEMBER(nixieclock_state::nixie_w)
|
||||
m_nixie_out[0] = nixie_to_num((m_nixie[14] << 6) | (m_nixie[13] << 2) | (m_nixie[12] >>2));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nixieclock_state::neon_w)
|
||||
void nixieclock_state::neon_w(uint8_t data)
|
||||
{
|
||||
m_neon_out[0] = BIT(data,3);
|
||||
m_neon_out[1] = BIT(data,2);
|
||||
|
@ -202,7 +202,7 @@ protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(_4roses_opcode_r);
|
||||
uint8_t _4roses_opcode_r(offs_t offset);
|
||||
|
||||
void _4roses_map(address_map &map);
|
||||
void _4roses_opcodes_map(address_map &map);
|
||||
@ -220,7 +220,7 @@ public:
|
||||
void rugby(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(rugby_opcode_r);
|
||||
uint8_t rugby_opcode_r(offs_t offset);
|
||||
|
||||
void rugby_map(address_map &map);
|
||||
void rugby_opcodes_map(address_map &map);
|
||||
@ -248,7 +248,7 @@ void _4roses_state::_4roses_map(address_map &map)
|
||||
map(0x6000, 0xffff).rom().region("maincpu", 0x6000);
|
||||
}
|
||||
|
||||
READ8_MEMBER(_4roses_state::_4roses_opcode_r)
|
||||
uint8_t _4roses_state::_4roses_opcode_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = m_maincpu->space(AS_PROGRAM).read_byte(offset);
|
||||
|
||||
@ -300,7 +300,7 @@ void rugby_state::rugby_map(address_map &map)
|
||||
map(0x7000, 0x7fff).ram().w(FUNC(rugby_state::funworld_colorram_w)).share("colorram");
|
||||
}
|
||||
|
||||
READ8_MEMBER(rugby_state::rugby_opcode_r)
|
||||
uint8_t rugby_state::rugby_opcode_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = m_maincpu->space(AS_PROGRAM).read_byte(offset);
|
||||
if ((offset >> 12) == 4)
|
||||
|
@ -506,17 +506,17 @@ private:
|
||||
uint8_t m_ay8910_addr;
|
||||
int m_mux_data;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(cpu_c048_w);
|
||||
DECLARE_WRITE8_MEMBER(cpu_d800_w);
|
||||
DECLARE_READ8_MEMBER(snd_e06_r);
|
||||
DECLARE_WRITE8_MEMBER(snd_800_w);
|
||||
DECLARE_WRITE8_MEMBER(snd_a02_w);
|
||||
DECLARE_READ8_MEMBER(mux_port_r);
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
DECLARE_WRITE8_MEMBER(counters_w);
|
||||
DECLARE_WRITE8_MEMBER(trigsnd_w);
|
||||
DECLARE_READ8_MEMBER(pia0_b_r);
|
||||
DECLARE_READ8_MEMBER(pia1_b_r);
|
||||
void cpu_c048_w(uint8_t data);
|
||||
void cpu_d800_w(uint8_t data);
|
||||
uint8_t snd_e06_r();
|
||||
void snd_800_w(uint8_t data);
|
||||
void snd_a02_w(uint8_t data);
|
||||
uint8_t mux_port_r();
|
||||
void mux_w(uint8_t data);
|
||||
void counters_w(uint8_t data);
|
||||
void trigsnd_w(uint8_t data);
|
||||
uint8_t pia0_b_r();
|
||||
uint8_t pia1_b_r();
|
||||
void fclown_ay8910_w(offs_t offset, u8 data);
|
||||
MC6845_UPDATE_ROW(update_row);
|
||||
void _5clown_palette(palette_device &palette) const;
|
||||
@ -619,7 +619,7 @@ void _5clown_state::_5clown_palette(palette_device &palette) const
|
||||
There are 4 sets of 5 bits each and are connected to PIA0, portA.
|
||||
The selector bits are located in PIA1, portB (bits 4-7).
|
||||
*/
|
||||
READ8_MEMBER(_5clown_state::mux_port_r)
|
||||
uint8_t _5clown_state::mux_port_r()
|
||||
{
|
||||
switch( m_mux_data & 0xf0 ) /* bits 4-7 */
|
||||
{
|
||||
@ -633,13 +633,13 @@ READ8_MEMBER(_5clown_state::mux_port_r)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::mux_w)
|
||||
void _5clown_state::mux_w(uint8_t data)
|
||||
{
|
||||
m_mux_data = data ^ 0xff; /* Inverted */
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::counters_w)
|
||||
void _5clown_state::counters_w(uint8_t data)
|
||||
{
|
||||
/* Counters:
|
||||
|
||||
@ -658,7 +658,7 @@ WRITE8_MEMBER(_5clown_state::counters_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::trigsnd_w)
|
||||
void _5clown_state::trigsnd_w(uint8_t data)
|
||||
{
|
||||
/************ Interrupts trigger **************
|
||||
|
||||
@ -676,13 +676,13 @@ WRITE8_MEMBER(_5clown_state::trigsnd_w)
|
||||
|
||||
}
|
||||
|
||||
READ8_MEMBER(_5clown_state::pia0_b_r)
|
||||
uint8_t _5clown_state::pia0_b_r()
|
||||
{
|
||||
/* often read the port */
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
READ8_MEMBER(_5clown_state::pia1_b_r)
|
||||
uint8_t _5clown_state::pia1_b_r()
|
||||
{
|
||||
/* constantly read the port */
|
||||
return 0x00; /* bit 2 shouldn't be active to allow work the key out system */
|
||||
@ -692,12 +692,12 @@ READ8_MEMBER(_5clown_state::pia1_b_r)
|
||||
/**********************************/
|
||||
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::cpu_c048_w)
|
||||
void _5clown_state::cpu_c048_w(uint8_t data)
|
||||
{
|
||||
logerror("Main: Write to $C048: %02X\n", data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::cpu_d800_w)
|
||||
void _5clown_state::cpu_d800_w(uint8_t data)
|
||||
{
|
||||
logerror("Main: Write to $D800: %02x\n", data);
|
||||
m_main_latch_d800 = data;
|
||||
@ -719,13 +719,13 @@ void _5clown_state::fclown_ay8910_w(offs_t offset, u8 data)
|
||||
* SOUND R/W Handlers *
|
||||
******************************/
|
||||
|
||||
READ8_MEMBER(_5clown_state::snd_e06_r)
|
||||
uint8_t _5clown_state::snd_e06_r()
|
||||
{
|
||||
logerror("Sound: Read from $0E06 \n");
|
||||
return m_main_latch_d800;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::snd_800_w)
|
||||
void _5clown_state::snd_800_w(uint8_t data)
|
||||
{
|
||||
m_snd_latch_0800 = data;
|
||||
|
||||
@ -740,7 +740,7 @@ WRITE8_MEMBER(_5clown_state::snd_800_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_5clown_state::snd_a02_w)
|
||||
void _5clown_state::snd_a02_w(uint8_t data)
|
||||
{
|
||||
m_snd_latch_0a02 = data & 0xff;
|
||||
logerror("Sound: Write to $0A02: %02x\n", m_snd_latch_0a02);
|
||||
|
@ -67,16 +67,16 @@ protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(a5105_memsel_r);
|
||||
DECLARE_READ8_MEMBER(key_r);
|
||||
DECLARE_READ8_MEMBER(key_mux_r);
|
||||
DECLARE_READ8_MEMBER(pio_pb_r);
|
||||
DECLARE_WRITE8_MEMBER(key_mux_w);
|
||||
DECLARE_WRITE8_MEMBER(a5105_ab_w);
|
||||
DECLARE_WRITE8_MEMBER(a5105_memsel_w);
|
||||
DECLARE_WRITE8_MEMBER( a5105_upd765_w );
|
||||
DECLARE_WRITE8_MEMBER(pcg_addr_w);
|
||||
DECLARE_WRITE8_MEMBER(pcg_val_w);
|
||||
uint8_t a5105_memsel_r();
|
||||
uint8_t key_r();
|
||||
uint8_t key_mux_r();
|
||||
uint8_t pio_pb_r();
|
||||
void key_mux_w(uint8_t data);
|
||||
void a5105_ab_w(uint8_t data);
|
||||
void a5105_memsel_w(uint8_t data);
|
||||
void a5105_upd765_w(uint8_t data);
|
||||
void pcg_addr_w(uint8_t data);
|
||||
void pcg_val_w(uint8_t data);
|
||||
void a5105_palette(palette_device &palette) const;
|
||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||
UPD7220_DISPLAY_PIXELS_MEMBER( hgdc_display_pixels );
|
||||
@ -166,7 +166,7 @@ void a5105_state::a5105_mem(address_map &map)
|
||||
map(0xc000, 0xffff).bankrw("bank4");
|
||||
}
|
||||
|
||||
READ8_MEMBER( a5105_state::pio_pb_r )
|
||||
uint8_t a5105_state::pio_pb_r()
|
||||
{
|
||||
/*
|
||||
|
||||
@ -191,13 +191,13 @@ READ8_MEMBER( a5105_state::pio_pb_r )
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a5105_state::pcg_addr_w )
|
||||
void a5105_state::pcg_addr_w(uint8_t data)
|
||||
{
|
||||
m_pcg_addr = data << 3;
|
||||
m_pcg_internal_addr = 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a5105_state::pcg_val_w )
|
||||
void a5105_state::pcg_val_w(uint8_t data)
|
||||
{
|
||||
m_char_ram[m_pcg_addr | m_pcg_internal_addr] = data;
|
||||
|
||||
@ -207,7 +207,7 @@ WRITE8_MEMBER( a5105_state::pcg_val_w )
|
||||
m_pcg_internal_addr&=7;
|
||||
}
|
||||
|
||||
READ8_MEMBER( a5105_state::key_r )
|
||||
uint8_t a5105_state::key_r()
|
||||
{
|
||||
static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3",
|
||||
"KEY4", "KEY5", "KEY6", "KEY7",
|
||||
@ -217,12 +217,12 @@ READ8_MEMBER( a5105_state::key_r )
|
||||
return ioport(keynames[m_key_mux & 0x0f])->read();
|
||||
}
|
||||
|
||||
READ8_MEMBER( a5105_state::key_mux_r )
|
||||
uint8_t a5105_state::key_mux_r()
|
||||
{
|
||||
return m_key_mux;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a5105_state::key_mux_w )
|
||||
void a5105_state::key_mux_w(uint8_t data)
|
||||
{
|
||||
/*
|
||||
xxxx ---- unknown
|
||||
@ -232,7 +232,7 @@ WRITE8_MEMBER( a5105_state::key_mux_w )
|
||||
m_key_mux = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a5105_state::a5105_ab_w )
|
||||
void a5105_state::a5105_ab_w(uint8_t data)
|
||||
{
|
||||
/*port $ab
|
||||
---- 100x tape motor, active low
|
||||
@ -263,7 +263,7 @@ WRITE8_MEMBER( a5105_state::a5105_ab_w )
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER( a5105_state::a5105_memsel_r )
|
||||
uint8_t a5105_state::a5105_memsel_r()
|
||||
{
|
||||
uint8_t res;
|
||||
|
||||
@ -275,7 +275,7 @@ READ8_MEMBER( a5105_state::a5105_memsel_r )
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a5105_state::a5105_memsel_w )
|
||||
void a5105_state::a5105_memsel_w(uint8_t data)
|
||||
{
|
||||
address_space &prog = m_maincpu->space( AS_PROGRAM );
|
||||
|
||||
@ -366,7 +366,7 @@ WRITE8_MEMBER( a5105_state::a5105_memsel_w )
|
||||
//printf("Memsel change to %02x %02x %02x %02x\n",m_memsel[0],m_memsel[1],m_memsel[2],m_memsel[3]);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( a5105_state::a5105_upd765_w )
|
||||
void a5105_state::a5105_upd765_w(uint8_t data)
|
||||
{
|
||||
m_floppy0->get_device()->mon_w(!BIT(data,0));
|
||||
m_floppy1->get_device()->mon_w(!BIT(data,1));
|
||||
@ -517,8 +517,7 @@ INPUT_PORTS_END
|
||||
|
||||
void a5105_state::machine_reset()
|
||||
{
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
a5105_ab_w(space, 0, 9); // turn motor off
|
||||
a5105_ab_w(9); // turn motor off
|
||||
|
||||
m_ram_base = (uint8_t*)m_ram->pointer();
|
||||
m_rom_base = (uint8_t*)memregion("maincpu")->base();
|
||||
|
@ -69,24 +69,25 @@ public:
|
||||
|
||||
void a7150(machine_config &config);
|
||||
|
||||
private:
|
||||
protected:
|
||||
virtual void machine_reset() override;
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(a7150_kgs_r);
|
||||
DECLARE_WRITE8_MEMBER(a7150_kgs_w);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(a7150_tmr2_w);
|
||||
DECLARE_WRITE8_MEMBER(ppi_c_w);
|
||||
void a7150_tmr2_w(int state);
|
||||
void ppi_c_w(uint8_t data);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(ifss_write_txd);
|
||||
DECLARE_WRITE_LINE_MEMBER(ifss_write_dtr);
|
||||
void ifss_write_txd(int state);
|
||||
void ifss_write_dtr(int state);
|
||||
|
||||
DECLARE_READ8_MEMBER(kgs_host_r);
|
||||
DECLARE_WRITE8_MEMBER(kgs_host_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(kgs_iml_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(ifss_loopback_w);
|
||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||
uint8_t kgs_host_r(offs_t offset);
|
||||
void kgs_host_w(offs_t offset, uint8_t data);
|
||||
void kgs_iml_w(int state);
|
||||
void ifss_loopback_w(int state);
|
||||
void kbd_put(uint8_t data);
|
||||
void kgs_memory_remap();
|
||||
|
||||
bool m_kgs_msel, m_kgs_iml;
|
||||
@ -137,24 +138,24 @@ uint32_t a7150_state::screen_update_k7072(screen_device &screen, bitmap_ind16 &b
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(a7150_state::kgs_iml_w)
|
||||
void a7150_state::kgs_iml_w(int state)
|
||||
{
|
||||
m_kgs_iml = !state;
|
||||
kgs_memory_remap();
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(a7150_state::a7150_tmr2_w)
|
||||
void a7150_state::a7150_tmr2_w(int state)
|
||||
{
|
||||
m_uart8251->write_rxc(state);
|
||||
m_uart8251->write_txc(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(a7150_state::ifss_loopback_w)
|
||||
void a7150_state::ifss_loopback_w(int state)
|
||||
{
|
||||
m_ifss_loopback = !state;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(a7150_state::ifss_write_txd)
|
||||
void a7150_state::ifss_write_txd(int state)
|
||||
{
|
||||
if (m_ifss_loopback)
|
||||
m_uart8251->write_rxd(state);
|
||||
@ -162,7 +163,7 @@ WRITE_LINE_MEMBER(a7150_state::ifss_write_txd)
|
||||
m_rs232->write_txd(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(a7150_state::ifss_write_dtr)
|
||||
void a7150_state::ifss_write_dtr(int state)
|
||||
{
|
||||
if (m_ifss_loopback)
|
||||
m_uart8251->write_dsr(state);
|
||||
@ -170,7 +171,7 @@ WRITE_LINE_MEMBER(a7150_state::ifss_write_dtr)
|
||||
m_rs232->write_dtr(state);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(a7150_state::ppi_c_w)
|
||||
void a7150_state::ppi_c_w(uint8_t data)
|
||||
{
|
||||
// b0 -- INTR(B)
|
||||
// b1 -- /OBF(B)
|
||||
@ -183,7 +184,7 @@ WRITE8_MEMBER(a7150_state::ppi_c_w)
|
||||
#define KGS_ST_INT 0x04
|
||||
#define KGS_ST_ERR 0x80
|
||||
|
||||
READ8_MEMBER(a7150_state::kgs_host_r)
|
||||
uint8_t a7150_state::kgs_host_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
|
||||
@ -218,7 +219,7 @@ READ8_MEMBER(a7150_state::kgs_host_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(a7150_state::kgs_host_w)
|
||||
void a7150_state::kgs_host_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (0) logerror("%s: kgs %d <- %02x '%c', ctrl %02x\n", machine().describe_context(), offset, data,
|
||||
(data > 0x1f && data < 0x7f) ? data : 0x20, m_kgs_ctrl);
|
||||
@ -254,7 +255,7 @@ WRITE8_MEMBER(a7150_state::kgs_host_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(a7150_state::kbd_put)
|
||||
void a7150_state::kbd_put(uint8_t data)
|
||||
{
|
||||
m_kgs_datai = data;
|
||||
m_kgs_ctrl |= KGS_ST_OBF | KGS_ST_INT;
|
||||
|
@ -133,15 +133,15 @@ public:
|
||||
void a7800_ntsc(machine_config &config);
|
||||
|
||||
protected:
|
||||
DECLARE_READ8_MEMBER(bios_or_cart_r);
|
||||
DECLARE_READ8_MEMBER(tia_r);
|
||||
DECLARE_WRITE8_MEMBER(tia_w);
|
||||
uint8_t bios_or_cart_r(address_space &space, offs_t offset);
|
||||
uint8_t tia_r(offs_t offset);
|
||||
void tia_w(offs_t offset, uint8_t data);
|
||||
void a7800_palette(palette_device &palette) const;
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
|
||||
TIMER_CALLBACK_MEMBER(maria_startdma);
|
||||
DECLARE_READ8_MEMBER(riot_joystick_r);
|
||||
DECLARE_READ8_MEMBER(riot_console_button_r);
|
||||
DECLARE_WRITE8_MEMBER(riot_button_pullup_w);
|
||||
uint8_t riot_joystick_r();
|
||||
uint8_t riot_console_button_r();
|
||||
void riot_button_pullup_w(uint8_t data);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
@ -192,17 +192,17 @@ protected:
|
||||
***************************************************************************/
|
||||
|
||||
// RIOT
|
||||
READ8_MEMBER(a7800_state::riot_joystick_r)
|
||||
uint8_t a7800_state::riot_joystick_r()
|
||||
{
|
||||
return m_io_joysticks->read();
|
||||
}
|
||||
|
||||
READ8_MEMBER(a7800_state::riot_console_button_r)
|
||||
uint8_t a7800_state::riot_console_button_r()
|
||||
{
|
||||
return m_io_console_buttons->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(a7800_state::riot_button_pullup_w)
|
||||
void a7800_state::riot_button_pullup_w(uint8_t data)
|
||||
{
|
||||
if(m_maincpu->space(AS_PROGRAM).read_byte(0x283) & 0x04)
|
||||
m_p1_one_button = data & 0x04; // pin 6 of the controller port is held high by the riot chip when reading two-button controllers (from schematic)
|
||||
@ -210,7 +210,7 @@ WRITE8_MEMBER(a7800_state::riot_button_pullup_w)
|
||||
m_p2_one_button = data & 0x10;
|
||||
}
|
||||
|
||||
READ8_MEMBER(a7800_state::tia_r)
|
||||
uint8_t a7800_state::tia_r(offs_t offset)
|
||||
{
|
||||
switch (offset & 0x0f)
|
||||
{
|
||||
@ -250,7 +250,7 @@ READ8_MEMBER(a7800_state::tia_r)
|
||||
}
|
||||
|
||||
// TIA
|
||||
WRITE8_MEMBER(a7800_state::tia_w)
|
||||
void a7800_state::tia_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (offset < 0x20)
|
||||
{ //INPTCTRL covers TIA registers 0x00-0x1F until locked
|
||||
@ -288,7 +288,7 @@ TIMER_CALLBACK_MEMBER(a7800_state::maria_startdma)
|
||||
|
||||
|
||||
// ROM
|
||||
READ8_MEMBER(a7800_state::bios_or_cart_r)
|
||||
uint8_t a7800_state::bios_or_cart_r(address_space &space, offs_t offset)
|
||||
{
|
||||
if (!(m_ctrl_reg & 0x04))
|
||||
return m_bios[offset];
|
||||
|
@ -63,13 +63,13 @@ public:
|
||||
private:
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ch00switch_w);
|
||||
DECLARE_READ8_MEMBER(read_keyboard1);
|
||||
DECLARE_READ8_MEMBER(read_keyboard2);
|
||||
DECLARE_READ8_MEMBER(ram_r);
|
||||
DECLARE_WRITE8_MEMBER(ram_w);
|
||||
DECLARE_READ8_MEMBER(sheila_r);
|
||||
DECLARE_WRITE8_MEMBER(sheila_w);
|
||||
void ch00switch_w(offs_t offset, uint8_t data);
|
||||
uint8_t read_keyboard1(offs_t offset);
|
||||
uint8_t read_keyboard2(offs_t offset);
|
||||
uint8_t ram_r(offs_t offset);
|
||||
void ram_w(offs_t offset, uint8_t data);
|
||||
uint8_t sheila_r(offs_t offset);
|
||||
void sheila_w(offs_t offset, uint8_t data);
|
||||
|
||||
void accomm_palette(palette_device &palette) const;
|
||||
INTERRUPT_GEN_MEMBER(vbl_int);
|
||||
@ -150,7 +150,7 @@ void accomm_state::accomm_palette(palette_device &palette) const
|
||||
palette.set_pen_colors(0, electron_palette);
|
||||
}
|
||||
|
||||
READ8_MEMBER(accomm_state::read_keyboard1)
|
||||
uint8_t accomm_state::read_keyboard1(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
|
||||
@ -164,7 +164,7 @@ READ8_MEMBER(accomm_state::read_keyboard1)
|
||||
return data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(accomm_state::read_keyboard2)
|
||||
uint8_t accomm_state::read_keyboard2(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
|
||||
@ -216,7 +216,7 @@ void accomm_state::video_start()
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(accomm_state::ch00switch_w)
|
||||
void accomm_state::ch00switch_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
logerror("ch00switch_w: offset %04x, data %02x\n", offset, data);
|
||||
if (!machine().side_effects_disabled())
|
||||
@ -432,7 +432,7 @@ uint32_t accomm_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(accomm_state::ram_r)
|
||||
uint8_t accomm_state::ram_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
|
||||
@ -456,7 +456,7 @@ READ8_MEMBER(accomm_state::ram_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(accomm_state::ram_w)
|
||||
void accomm_state::ram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
switch (m_ram->size())
|
||||
{
|
||||
@ -471,7 +471,7 @@ WRITE8_MEMBER(accomm_state::ram_w)
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(accomm_state::sheila_r)
|
||||
uint8_t accomm_state::sheila_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
switch ( offset & 0x0f )
|
||||
@ -494,7 +494,7 @@ READ8_MEMBER(accomm_state::sheila_r)
|
||||
static const int palette_offset[4] = { 0, 4, 5, 1 };
|
||||
static const uint16_t screen_base[8] = { 0x3000, 0x3000, 0x3000, 0x4000, 0x5800, 0x5800, 0x6000, 0x5800 };
|
||||
|
||||
WRITE8_MEMBER(accomm_state::sheila_w)
|
||||
void accomm_state::sheila_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
int i = palette_offset[(( offset >> 1 ) & 0x03)];
|
||||
logerror( "ULA: write offset %02x <- %02x\n", offset & 0x0f, data );
|
||||
|
@ -65,10 +65,10 @@ public:
|
||||
void ace(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_WRITE8_MEMBER(ace_objpos_w);
|
||||
DECLARE_WRITE8_MEMBER(ace_characterram_w);
|
||||
DECLARE_WRITE8_MEMBER(ace_scoreram_w);
|
||||
DECLARE_READ8_MEMBER(unk_r);
|
||||
void ace_objpos_w(offs_t offset, uint8_t data);
|
||||
void ace_characterram_w(offs_t offset, uint8_t data);
|
||||
void ace_scoreram_w(offs_t offset, uint8_t data);
|
||||
uint8_t unk_r();
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
@ -90,7 +90,7 @@ private:
|
||||
};
|
||||
|
||||
|
||||
WRITE8_MEMBER(aceal_state::ace_objpos_w)
|
||||
void aceal_state::ace_objpos_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_objpos[offset] = data;
|
||||
}
|
||||
@ -118,7 +118,7 @@ uint32_t aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bit
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(aceal_state::ace_characterram_w)
|
||||
void aceal_state::ace_characterram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (m_characterram[offset] != data)
|
||||
{
|
||||
@ -132,13 +132,13 @@ WRITE8_MEMBER(aceal_state::ace_characterram_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(aceal_state::ace_scoreram_w)
|
||||
void aceal_state::ace_scoreram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scoreram[offset] = data;
|
||||
m_gfxdecode->gfx(4)->mark_dirty(offset / 32);
|
||||
}
|
||||
|
||||
READ8_MEMBER(aceal_state::unk_r)
|
||||
uint8_t aceal_state::unk_r()
|
||||
{
|
||||
return machine().rand() & 0xff;
|
||||
}
|
||||
|
@ -58,11 +58,11 @@ protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
||||
private:
|
||||
DECLARE_WRITE8_MEMBER(acefruit_colorram_w);
|
||||
DECLARE_WRITE8_MEMBER(acefruit_coin_w);
|
||||
DECLARE_WRITE8_MEMBER(acefruit_sound_w);
|
||||
DECLARE_WRITE8_MEMBER(acefruit_lamp_w);
|
||||
DECLARE_WRITE8_MEMBER(acefruit_solenoid_w);
|
||||
void acefruit_colorram_w(offs_t offset, uint8_t data);
|
||||
void acefruit_coin_w(uint8_t data);
|
||||
void acefruit_sound_w(uint8_t data);
|
||||
void acefruit_lamp_w(offs_t offset, uint8_t data);
|
||||
void acefruit_solenoid_w(uint8_t data);
|
||||
|
||||
void acefruit_palette(palette_device &palette) const;
|
||||
uint32_t screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
@ -230,7 +230,7 @@ uint32_t acefruit_state::screen_update_acefruit(screen_device &screen, bitmap_in
|
||||
}
|
||||
|
||||
template <int Mask>
|
||||
READ_LINE_MEMBER(acefruit_state::sidewndr_payout_r)
|
||||
int acefruit_state::sidewndr_payout_r()
|
||||
{
|
||||
switch (Mask)
|
||||
{
|
||||
@ -245,7 +245,7 @@ READ_LINE_MEMBER(acefruit_state::sidewndr_payout_r)
|
||||
}
|
||||
|
||||
template <int Mask>
|
||||
READ_LINE_MEMBER(acefruit_state::starspnr_coinage_r)
|
||||
int acefruit_state::starspnr_coinage_r()
|
||||
{
|
||||
switch (Mask)
|
||||
{
|
||||
@ -264,7 +264,7 @@ READ_LINE_MEMBER(acefruit_state::starspnr_coinage_r)
|
||||
}
|
||||
|
||||
template <int Mask>
|
||||
READ_LINE_MEMBER(acefruit_state::starspnr_payout_r)
|
||||
int acefruit_state::starspnr_payout_r()
|
||||
{
|
||||
switch (Mask)
|
||||
{
|
||||
@ -280,28 +280,28 @@ READ_LINE_MEMBER(acefruit_state::starspnr_payout_r)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(acefruit_state::acefruit_colorram_w)
|
||||
void acefruit_state::acefruit_colorram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_colorram[ offset ] = data & 0xf;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(acefruit_state::acefruit_coin_w)
|
||||
void acefruit_state::acefruit_coin_w(uint8_t data)
|
||||
{
|
||||
/* TODO: ? */
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(acefruit_state::acefruit_sound_w)
|
||||
void acefruit_state::acefruit_sound_w(uint8_t data)
|
||||
{
|
||||
/* TODO: ? */
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(acefruit_state::acefruit_lamp_w)
|
||||
void acefruit_state::acefruit_lamp_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_lamps[(offset << 3) | i] = BIT(data, i);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(acefruit_state::acefruit_solenoid_w)
|
||||
void acefruit_state::acefruit_solenoid_w(uint8_t data)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_solenoids[i] = BIT(data, i);
|
||||
|
@ -78,25 +78,25 @@ private:
|
||||
int m_reel_count[4];
|
||||
int m_optic_pattern;
|
||||
|
||||
template <unsigned N> DECLARE_WRITE_LINE_MEMBER(reel_optic_cb) { if (state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); }
|
||||
template <unsigned N> void reel_optic_cb(int state) { if (state) m_optic_pattern |= (1 << N); else m_optic_pattern &= ~(1 << N); }
|
||||
|
||||
DECLARE_READ8_MEMBER( aces1_unk_r )
|
||||
uint8_t aces1_unk_r()
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( aces1_unk_port00_r )
|
||||
uint8_t aces1_unk_port00_r()
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( aces1_nmi_counter_reset_r )
|
||||
uint8_t aces1_nmi_counter_reset_r()
|
||||
{
|
||||
aces1_reset_nmi_timer();
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER( aces1_nmi_counter_reset_w )
|
||||
void aces1_nmi_counter_reset_w(uint8_t data)
|
||||
{
|
||||
aces1_reset_nmi_timer();
|
||||
}
|
||||
@ -116,7 +116,7 @@ private:
|
||||
emu_timer *m_aces1_nmi_timer;
|
||||
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ic24_write_a)
|
||||
void ic24_write_a(uint8_t data)
|
||||
{
|
||||
if (m_led_strobe != m_input_strobe)
|
||||
{
|
||||
@ -125,7 +125,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ic24_write_b)
|
||||
void ic24_write_b(uint8_t data)
|
||||
{
|
||||
//cheating a bit here, need persistence
|
||||
if (m_lamp_strobe != m_input_strobe)
|
||||
@ -142,22 +142,22 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ic24_write_c)
|
||||
void ic24_write_c(uint8_t data)
|
||||
{
|
||||
m_input_strobe = (data & 0x0f);
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ic25_write_a)
|
||||
void ic25_write_a(uint8_t data)
|
||||
{
|
||||
// printf("extender lamps %02x\n", data);
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ic25_write_b)
|
||||
void ic25_write_b(uint8_t data)
|
||||
{
|
||||
// printf("meters, extender select %02x\n", data);
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ic25_write_c)
|
||||
void ic25_write_c(uint8_t data)
|
||||
{
|
||||
//There needs to be some way of connecting these values to stepper coils, or doing the MCU properly
|
||||
// We should be able to see an enable clock, a sense and a full/half step selector, we don't have the half step visible it seems.
|
||||
@ -203,18 +203,18 @@ private:
|
||||
// printf("reels, extender strobe %02x\n", data);
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( ic37_read_a )
|
||||
uint8_t ic37_read_a()
|
||||
{
|
||||
//Should be coins and doors
|
||||
return ioport("COINS")->read();
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( ic37_read_b )
|
||||
uint8_t ic37_read_b()
|
||||
{
|
||||
return (m_io_ports[m_input_strobe & 7])->read();
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( ic37_read_c )
|
||||
uint8_t ic37_read_c()
|
||||
{
|
||||
int action =0;
|
||||
for (int reel = 0; reel < 4; reel++)
|
||||
|
@ -62,9 +62,9 @@ private:
|
||||
void update_reset(ioport_value state);
|
||||
|
||||
void update_display();
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
DECLARE_WRITE8_MEMBER(digit_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
void mux_w(u8 data);
|
||||
void digit_w(u8 data);
|
||||
u8 input_r();
|
||||
|
||||
u8 m_io[2]; // MK3850 I/O ports
|
||||
u8 m_4042; // 4042 latch output
|
||||
@ -116,7 +116,7 @@ void boris_state::update_display()
|
||||
m_display->matrix(1 << (~m_io[0] & 7), seg_data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(boris_state::mux_w)
|
||||
void boris_state::mux_w(u8 data)
|
||||
{
|
||||
// IO00-IO02: 4028 A-C to digit/input mux (4028 D to GND)
|
||||
// IO03: clock 4042
|
||||
@ -124,7 +124,7 @@ WRITE8_MEMBER(boris_state::mux_w)
|
||||
update_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(boris_state::input_r)
|
||||
u8 boris_state::input_r()
|
||||
{
|
||||
// IO04-IO07: multiplexed inputs from 4028 4-7
|
||||
u8 data = m_io[0];
|
||||
@ -135,7 +135,7 @@ READ8_MEMBER(boris_state::input_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(boris_state::digit_w)
|
||||
void boris_state::digit_w(u8 data)
|
||||
{
|
||||
// IO10-IO17: digit segments
|
||||
m_io[1] = data;
|
||||
|
@ -57,15 +57,15 @@ private:
|
||||
void main_io(address_map &map);
|
||||
|
||||
void update_display();
|
||||
DECLARE_WRITE8_MEMBER(digit_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
DECLARE_WRITE8_MEMBER(matrix_w);
|
||||
void digit_w(u8 data);
|
||||
u8 input_r();
|
||||
void matrix_w(u8 data);
|
||||
|
||||
// 256 bytes data RAM accessed via I/O ports
|
||||
DECLARE_READ8_MEMBER(ram_address_r) { return m_ram_address; }
|
||||
DECLARE_WRITE8_MEMBER(ram_address_w) { m_ram_address = data; }
|
||||
DECLARE_READ8_MEMBER(ram_data_r) { return m_ram[m_ram_address]; }
|
||||
DECLARE_WRITE8_MEMBER(ram_data_w) { m_ram[m_ram_address] = data; }
|
||||
u8 ram_address_r() { return m_ram_address; }
|
||||
void ram_address_w(u8 data) { m_ram_address = data; }
|
||||
u8 ram_data_r() { return m_ram[m_ram_address]; }
|
||||
void ram_data_w(u8 data) { m_ram[m_ram_address] = data; }
|
||||
|
||||
std::unique_ptr<u8[]> m_ram;
|
||||
u8 m_ram_address;
|
||||
@ -101,21 +101,21 @@ void borisdpl_state::update_display()
|
||||
m_display->matrix(1 << (m_matrix & 7), m_digit_data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(borisdpl_state::digit_w)
|
||||
void borisdpl_state::digit_w(u8 data)
|
||||
{
|
||||
// digit segments
|
||||
m_digit_data = ~data & 0x7f;
|
||||
update_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(borisdpl_state::matrix_w)
|
||||
void borisdpl_state::matrix_w(u8 data)
|
||||
{
|
||||
// d0-d2: MC14028B to input/digit select
|
||||
m_matrix = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(borisdpl_state::input_r)
|
||||
u8 borisdpl_state::input_r()
|
||||
{
|
||||
// d4-d7: multiplexed inputs (only one lane can be selected at the same time)
|
||||
u8 data = m_matrix;
|
||||
|
@ -106,14 +106,14 @@ private:
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(ca1_off) { m_via->write_ca1(0); }
|
||||
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cartridge);
|
||||
DECLARE_READ8_MEMBER(cartridge_r);
|
||||
u8 cartridge_r(offs_t offset);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(select_w);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
void select_w(u8 data);
|
||||
void control_w(u8 data);
|
||||
u8 input_r();
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(shift_clock_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(shift_data_w);
|
||||
void shift_clock_w(int state);
|
||||
void shift_data_w(int state);
|
||||
|
||||
u8 m_inp_mux;
|
||||
u16 m_digit_data;
|
||||
@ -189,7 +189,7 @@ DEVICE_IMAGE_LOAD_MEMBER(ggm_state::cartridge)
|
||||
return image_init_result::PASS;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ggm_state::cartridge_r)
|
||||
u8 ggm_state::cartridge_r(offs_t offset)
|
||||
{
|
||||
return m_cart->read_rom(offset & m_cart_mask);
|
||||
}
|
||||
@ -203,7 +203,7 @@ void ggm_state::update_display()
|
||||
m_display->matrix(m_inp_mux, data);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(ggm_state::shift_clock_w)
|
||||
void ggm_state::shift_clock_w(int state)
|
||||
{
|
||||
// shift display segment data on rising edge
|
||||
if (state && !m_shift_clock)
|
||||
@ -215,19 +215,19 @@ WRITE_LINE_MEMBER(ggm_state::shift_clock_w)
|
||||
m_shift_clock = state;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(ggm_state::shift_data_w)
|
||||
void ggm_state::shift_data_w(int state)
|
||||
{
|
||||
m_shift_data = state;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ggm_state::select_w)
|
||||
void ggm_state::select_w(u8 data)
|
||||
{
|
||||
// PA0-PA7: input mux, digit select
|
||||
m_inp_mux = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ggm_state::control_w)
|
||||
void ggm_state::control_w(u8 data)
|
||||
{
|
||||
// PB0: ?
|
||||
|
||||
@ -235,7 +235,7 @@ WRITE8_MEMBER(ggm_state::control_w)
|
||||
m_dac->write(BIT(data, 7));
|
||||
}
|
||||
|
||||
READ8_MEMBER(ggm_state::input_r)
|
||||
u8 ggm_state::input_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
|
@ -109,12 +109,12 @@ private:
|
||||
|
||||
// I/O handlers
|
||||
void update_display();
|
||||
DECLARE_READ8_MEMBER(input1_r);
|
||||
DECLARE_READ8_MEMBER(input2_r);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
u8 input1_r();
|
||||
u8 input2_r();
|
||||
void control_w(u8 data);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(shift_clock_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(shift_data_w);
|
||||
void shift_clock_w(int state);
|
||||
void shift_data_w(int state);
|
||||
|
||||
u8 m_select;
|
||||
u8 m_led_data;
|
||||
@ -151,7 +151,7 @@ void prodigy_state::update_display()
|
||||
m_display->matrix(1 << m_select, m_led_data);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::shift_clock_w)
|
||||
void prodigy_state::shift_clock_w(int state)
|
||||
{
|
||||
// shift 8-bit led/digit data on rising edge
|
||||
if (state && !m_shift_clock)
|
||||
@ -163,12 +163,12 @@ WRITE_LINE_MEMBER(prodigy_state::shift_clock_w)
|
||||
m_shift_clock = state;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(prodigy_state::shift_data_w)
|
||||
void prodigy_state::shift_data_w(int state)
|
||||
{
|
||||
m_shift_data = state;
|
||||
}
|
||||
|
||||
READ8_MEMBER(prodigy_state::input1_r)
|
||||
u8 prodigy_state::input1_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
@ -184,7 +184,7 @@ READ8_MEMBER(prodigy_state::input1_r)
|
||||
return ~data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(prodigy_state::input2_r)
|
||||
u8 prodigy_state::input2_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
@ -197,7 +197,7 @@ READ8_MEMBER(prodigy_state::input2_r)
|
||||
return ~data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(prodigy_state::control_w)
|
||||
void prodigy_state::control_w(u8 data)
|
||||
{
|
||||
// PB0-PB3: 74145
|
||||
m_select = data & 0xf;
|
||||
|
@ -101,8 +101,8 @@ private:
|
||||
void kbd_put(u8 data);
|
||||
void kbd_put_pb(u8 data);
|
||||
|
||||
DECLARE_READ8_MEMBER(kbd_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(bus_nmi_w);
|
||||
uint8_t kbd_r();
|
||||
void bus_nmi_w(int state);
|
||||
|
||||
void a6502_mem(address_map &map);
|
||||
void a6809_mem(address_map &map);
|
||||
@ -155,7 +155,7 @@ void acrnsys_state::machine_reset()
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(acrnsys_state::bus_nmi_w)
|
||||
void acrnsys_state::bus_nmi_w(int state)
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, state);
|
||||
}
|
||||
@ -326,7 +326,7 @@ void acrnsys_state::kbd_put(uint8_t data)
|
||||
m_kbd_data = data | 0x80;
|
||||
}
|
||||
|
||||
READ8_MEMBER(acrnsys_state::kbd_r)
|
||||
uint8_t acrnsys_state::kbd_r()
|
||||
{
|
||||
uint8_t data = m_kbd_data;
|
||||
|
||||
|
@ -73,9 +73,9 @@ public:
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
DECLARE_READ8_MEMBER(ins8154_b1_port_a_r);
|
||||
DECLARE_WRITE8_MEMBER(ins8154_b1_port_a_w);
|
||||
DECLARE_WRITE8_MEMBER(acrnsys1_led_segment_w);
|
||||
uint8_t ins8154_b1_port_a_r();
|
||||
void ins8154_b1_port_a_w(uint8_t data);
|
||||
void acrnsys1_led_segment_w(uint8_t data);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(kansas_w);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
|
||||
void acrnsys1_map(address_map &map);
|
||||
@ -107,7 +107,7 @@ void acrnsys1_state::machine_start()
|
||||
KEYBOARD HANDLING
|
||||
***************************************************************************/
|
||||
// bit 7 is cassin
|
||||
READ8_MEMBER( acrnsys1_state::ins8154_b1_port_a_r )
|
||||
uint8_t acrnsys1_state::ins8154_b1_port_a_r()
|
||||
{
|
||||
uint8_t data = 0x7f, i, key_line = m_ttl74145->read();
|
||||
|
||||
@ -126,7 +126,7 @@ READ8_MEMBER( acrnsys1_state::ins8154_b1_port_a_r )
|
||||
}
|
||||
|
||||
// bit 6 is cassout
|
||||
WRITE8_MEMBER( acrnsys1_state::ins8154_b1_port_a_w )
|
||||
void acrnsys1_state::ins8154_b1_port_a_w(uint8_t data)
|
||||
{
|
||||
m_digit = data & 0x47;
|
||||
m_ttl74145->write(m_digit & 7);
|
||||
@ -167,7 +167,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(acrnsys1_state::kansas_r)
|
||||
LED DISPLAY
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER( acrnsys1_state::acrnsys1_led_segment_w )
|
||||
void acrnsys1_state::acrnsys1_led_segment_w(uint8_t data)
|
||||
{
|
||||
uint16_t const key_line = m_ttl74145->read();
|
||||
|
||||
|
@ -60,7 +60,7 @@ private:
|
||||
void attr_map(address_map &map);
|
||||
|
||||
SCN2674_DRAW_CHARACTER_MEMBER(draw_character);
|
||||
DECLARE_WRITE_LINE_MEMBER(mbc_w);
|
||||
void mbc_w(int state);
|
||||
|
||||
u8 p1_r();
|
||||
void p1_w(u8 data);
|
||||
@ -98,7 +98,7 @@ SCN2674_DRAW_CHARACTER_MEMBER(adm11_state::draw_character)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(adm11_state::mbc_w)
|
||||
void adm11_state::mbc_w(int state)
|
||||
{
|
||||
m_mbc = state;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ private:
|
||||
void pio_pa_w(u8 data);
|
||||
u8 pio_pb_r();
|
||||
void pio_pb_w(u8 data);
|
||||
DECLARE_WRITE_LINE_MEMBER(vsyn_w);
|
||||
void vsyn_w(int state);
|
||||
|
||||
void mem_map(address_map &map);
|
||||
void io_map(address_map &map);
|
||||
@ -93,7 +93,7 @@ void adm36_state::pio_pb_w(u8 data)
|
||||
m_earom->c1_w(BIT(data, 1));
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(adm36_state::vsyn_w)
|
||||
void adm36_state::vsyn_w(int state)
|
||||
{
|
||||
m_vsyn = bool(state);
|
||||
}
|
||||
|
@ -187,10 +187,9 @@ private:
|
||||
|
||||
required_device<airraid_video_device> m_airraid_video;
|
||||
|
||||
DECLARE_READ8_MEMBER(cshooter_coin_r);
|
||||
DECLARE_WRITE8_MEMBER(cshooter_c500_w);
|
||||
DECLARE_WRITE8_MEMBER(cshooter_c700_w);
|
||||
DECLARE_WRITE8_MEMBER(bank_w);
|
||||
void cshooter_c500_w(uint8_t data);
|
||||
void cshooter_c700_w(uint8_t data);
|
||||
void bank_w(uint8_t data);
|
||||
DECLARE_MACHINE_RESET(cshooter);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cshooter_scanline);
|
||||
|
||||
@ -220,15 +219,15 @@ MACHINE_RESET_MEMBER(airraid_state,cshooter)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(airraid_state::cshooter_c500_w)
|
||||
void airraid_state::cshooter_c500_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(airraid_state::cshooter_c700_w)
|
||||
void airraid_state::cshooter_c700_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(airraid_state::bank_w)
|
||||
void airraid_state::bank_w(uint8_t data)
|
||||
{
|
||||
// format of this address is TTBB tbfs
|
||||
|
||||
|
@ -52,17 +52,17 @@ private:
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(paletteram_w);
|
||||
DECLARE_WRITE8_MEMBER(irq_ack_w);
|
||||
DECLARE_WRITE8_MEMBER(output0_w);
|
||||
DECLARE_WRITE8_MEMBER(output1_w);
|
||||
DECLARE_WRITE8_MEMBER(output2_w);
|
||||
DECLARE_WRITE8_MEMBER(output3_w);
|
||||
DECLARE_WRITE8_MEMBER(video_mirror_w);
|
||||
DECLARE_READ8_MEMBER(earom_read);
|
||||
DECLARE_WRITE8_MEMBER(earom_write);
|
||||
DECLARE_WRITE8_MEMBER(earom_control_w);
|
||||
void videoram_w(offs_t offset, uint8_t data);
|
||||
void paletteram_w(offs_t offset, uint8_t data);
|
||||
void irq_ack_w(uint8_t data);
|
||||
void output0_w(uint8_t data);
|
||||
void output1_w(uint8_t data);
|
||||
void output2_w(uint8_t data);
|
||||
void output3_w(uint8_t data);
|
||||
void video_mirror_w(uint8_t data);
|
||||
uint8_t earom_read();
|
||||
void earom_write(offs_t offset, uint8_t data);
|
||||
void earom_control_w(uint8_t data);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<er2055_device> m_earom;
|
||||
@ -160,7 +160,7 @@ TILE_GET_INFO_MEMBER(akkaarrh_state::get_tile_info)
|
||||
tileinfo.set(0, data, data2 & 0xf, TILE_FLIPYX(data2 >> 6));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::videoram_w)
|
||||
void akkaarrh_state::videoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
|
||||
@ -171,7 +171,7 @@ WRITE8_MEMBER(akkaarrh_state::videoram_w)
|
||||
m_tilemap[3]->mark_tile_dirty(tile);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::paletteram_w)
|
||||
void akkaarrh_state::paletteram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_palette_ram[offset] = data;
|
||||
m_palette->set_pen_color(offset, pal3bit(data >> 5), pal2bit(data >> 3), pal3bit(data >> 0));
|
||||
@ -185,17 +185,17 @@ WRITE8_MEMBER(akkaarrh_state::paletteram_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::video_mirror_w)
|
||||
void akkaarrh_state::video_mirror_w(uint8_t data)
|
||||
{
|
||||
m_video_mirror = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::irq_ack_w)
|
||||
void akkaarrh_state::irq_ack_w(uint8_t data)
|
||||
{
|
||||
m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::output0_w)
|
||||
void akkaarrh_state::output0_w(uint8_t data)
|
||||
{
|
||||
// 765----- unknown (always 0?)
|
||||
// ---4---- unknown (1 in attract mode, 0 when playing)
|
||||
@ -211,7 +211,7 @@ WRITE8_MEMBER(akkaarrh_state::output0_w)
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::output1_w)
|
||||
void akkaarrh_state::output1_w(uint8_t data)
|
||||
{
|
||||
// 7------- lamp 1 left bezel (top)
|
||||
// -6------ lamp 2 left bezel
|
||||
@ -224,7 +224,7 @@ WRITE8_MEMBER(akkaarrh_state::output1_w)
|
||||
m_lamps[2 + i] = BIT(data, i);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::output2_w)
|
||||
void akkaarrh_state::output2_w(uint8_t data)
|
||||
{
|
||||
// 7------- lamp 3 right bezel
|
||||
// -6------ lamp 1 top bezel (left)
|
||||
@ -239,7 +239,7 @@ WRITE8_MEMBER(akkaarrh_state::output2_w)
|
||||
m_lamps[10 + i] = BIT(data, i);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::output3_w)
|
||||
void akkaarrh_state::output3_w(uint8_t data)
|
||||
{
|
||||
// 7------- lamp zoomed in
|
||||
// -6------ lamp warning
|
||||
@ -260,18 +260,18 @@ WRITE8_MEMBER(akkaarrh_state::output3_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ8_MEMBER(akkaarrh_state::earom_read)
|
||||
uint8_t akkaarrh_state::earom_read()
|
||||
{
|
||||
return m_earom->data();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::earom_write)
|
||||
void akkaarrh_state::earom_write(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_earom->set_address(offset & 0x3f);
|
||||
m_earom->set_data(data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(akkaarrh_state::earom_control_w)
|
||||
void akkaarrh_state::earom_control_w(uint8_t data)
|
||||
{
|
||||
// CK = DB0, C1 = /DB2, C2 = DB1, CS1 = DB3, /CS2 = GND
|
||||
m_earom->set_control(BIT(data, 3), 1, !BIT(data, 2), BIT(data, 1));
|
||||
|
@ -39,10 +39,10 @@ public:
|
||||
|
||||
private:
|
||||
/* video-related */
|
||||
DECLARE_WRITE8_MEMBER(hanaroku_out_0_w);
|
||||
DECLARE_WRITE8_MEMBER(hanaroku_out_1_w);
|
||||
DECLARE_WRITE8_MEMBER(hanaroku_out_2_w);
|
||||
DECLARE_WRITE8_MEMBER(albazc_vregs_w);
|
||||
void hanaroku_out_0_w(uint8_t data);
|
||||
void hanaroku_out_1_w(uint8_t data);
|
||||
void hanaroku_out_2_w(uint8_t data);
|
||||
void albazc_vregs_w(offs_t offset, uint8_t data);
|
||||
virtual void video_start() override;
|
||||
void albazc_palette(palette_device &palette) const;
|
||||
uint32_t screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
@ -113,7 +113,7 @@ uint32_t albazc_state::screen_update_hanaroku(screen_device &screen, bitmap_ind1
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazc_state::hanaroku_out_0_w)
|
||||
void albazc_state::hanaroku_out_0_w(uint8_t data)
|
||||
{
|
||||
/*
|
||||
bit description
|
||||
@ -135,7 +135,7 @@ WRITE8_MEMBER(albazc_state::hanaroku_out_0_w)
|
||||
machine().bookkeeping().coin_counter_w(4, data & 0x80);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazc_state::hanaroku_out_1_w)
|
||||
void albazc_state::hanaroku_out_1_w(uint8_t data)
|
||||
{
|
||||
/*
|
||||
bit description
|
||||
@ -153,12 +153,12 @@ WRITE8_MEMBER(albazc_state::hanaroku_out_1_w)
|
||||
m_hopper->motor_w(BIT(data, 0));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazc_state::hanaroku_out_2_w)
|
||||
void albazc_state::hanaroku_out_2_w(uint8_t data)
|
||||
{
|
||||
// unused
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazc_state::albazc_vregs_w)
|
||||
void albazc_state::albazc_vregs_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
#ifdef UNUSED_FUNCTION
|
||||
{
|
||||
|
@ -67,14 +67,14 @@ private:
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(yumefuda_vram_w);
|
||||
DECLARE_WRITE8_MEMBER(yumefuda_cram_w);
|
||||
DECLARE_READ8_MEMBER(custom_ram_r);
|
||||
DECLARE_WRITE8_MEMBER(custom_ram_w);
|
||||
DECLARE_WRITE8_MEMBER(prot_lock_w);
|
||||
DECLARE_READ8_MEMBER(mux_r);
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
DECLARE_WRITE8_MEMBER(yumefuda_output_w);
|
||||
void yumefuda_vram_w(offs_t offset, uint8_t data);
|
||||
void yumefuda_cram_w(offs_t offset, uint8_t data);
|
||||
uint8_t custom_ram_r(offs_t offset);
|
||||
void custom_ram_w(offs_t offset, uint8_t data);
|
||||
void prot_lock_w(uint8_t data);
|
||||
uint8_t mux_r();
|
||||
void mux_w(uint8_t data);
|
||||
void yumefuda_output_w(uint8_t data);
|
||||
TILE_GET_INFO_MEMBER(y_get_bg_tile_info);
|
||||
uint32_t screen_update_yumefuda(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
@ -139,26 +139,26 @@ static GFXDECODE_START( gfx_yumefuda )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
WRITE8_MEMBER(albazg_state::yumefuda_vram_w)
|
||||
void albazg_state::yumefuda_vram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazg_state::yumefuda_cram_w)
|
||||
void albazg_state::yumefuda_cram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_colorram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
/*Custom RAM (Thrash Protection)*/
|
||||
READ8_MEMBER(albazg_state::custom_ram_r)
|
||||
uint8_t albazg_state::custom_ram_r(offs_t offset)
|
||||
{
|
||||
// logerror("Custom RAM read at %02x PC = %x\n", offset + 0xaf80, m_maincpu->space(AS_PROGRAM).pc());
|
||||
return m_cus_ram[offset];// ^ 0x55;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazg_state::custom_ram_w)
|
||||
void albazg_state::custom_ram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
// logerror("Custom RAM write at %02x : %02x PC = %x\n", offset + 0xaf80, data, m_maincpu->space(AS_PROGRAM).pc());
|
||||
if(m_prot_lock)
|
||||
@ -166,13 +166,13 @@ WRITE8_MEMBER(albazg_state::custom_ram_w)
|
||||
}
|
||||
|
||||
/*this might be used as NVRAM commands btw*/
|
||||
WRITE8_MEMBER(albazg_state::prot_lock_w)
|
||||
void albazg_state::prot_lock_w(uint8_t data)
|
||||
{
|
||||
// logerror("PC %04x Prot lock value written %02x\n", m_maincpu->space(AS_PROGRAM).pc(), data);
|
||||
m_prot_lock = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(albazg_state::mux_r)
|
||||
uint8_t albazg_state::mux_r()
|
||||
{
|
||||
switch(m_mux_data)
|
||||
{
|
||||
@ -188,7 +188,7 @@ READ8_MEMBER(albazg_state::mux_r)
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazg_state::mux_w)
|
||||
void albazg_state::mux_w(uint8_t data)
|
||||
{
|
||||
int new_bank = (data & 0xc0) >> 6;
|
||||
|
||||
@ -205,7 +205,7 @@ WRITE8_MEMBER(albazg_state::mux_w)
|
||||
m_mux_data = data & ~0xc0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(albazg_state::yumefuda_output_w)
|
||||
void albazg_state::yumefuda_output_w(uint8_t data)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(0, ~data & 4);
|
||||
machine().bookkeeping().coin_counter_w(1, ~data & 2);
|
||||
|
@ -105,7 +105,7 @@ private:
|
||||
required_device<mc6844_device> m_tia_dma;
|
||||
|
||||
/* Interrupt handling */
|
||||
template <unsigned N> DECLARE_WRITE_LINE_MEMBER(irq_w);
|
||||
template <unsigned N> void irq_w(int state);
|
||||
uint8_t m_irq;
|
||||
uint8_t m_imsk;
|
||||
|
||||
@ -275,7 +275,7 @@ static INPUT_PORTS_START( alfaskop4101 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* Interrupt handling - vector address modifyer, irq prioritizer and irq mask */
|
||||
template <unsigned N> WRITE_LINE_MEMBER( alfaskop4110_state::irq_w )
|
||||
template <unsigned N> void alfaskop4110_state::irq_w(int state)
|
||||
{
|
||||
m_irq = (m_irq & ~(1 << N)) | ((state ? 1 : 0) << N);
|
||||
LOGIRQ("4110 IRQ %d: %d ==> %02x\n", N, state, m_irq);
|
||||
|
@ -41,11 +41,11 @@ public:
|
||||
void alinvade(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(irqmask_r);
|
||||
DECLARE_WRITE8_MEMBER(irqmask_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_w);
|
||||
DECLARE_WRITE8_MEMBER(sounden_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(vblank_irq);
|
||||
uint8_t irqmask_r();
|
||||
void irqmask_w(uint8_t data);
|
||||
void sound_w(uint8_t data);
|
||||
void sounden_w(uint8_t data);
|
||||
void vblank_irq(int state);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void alinvade_map(address_map &map);
|
||||
@ -80,23 +80,23 @@ DISCRETE_SOUND_START(alinvade_discrete)
|
||||
|
||||
DISCRETE_SOUND_END
|
||||
|
||||
WRITE8_MEMBER( alinvade_state::sound_w )
|
||||
void alinvade_state::sound_w(uint8_t data)
|
||||
{
|
||||
m_discrete->write(NODE_01, (data^0x3f)<<2);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( alinvade_state::sounden_w )
|
||||
void alinvade_state::sounden_w(uint8_t data)
|
||||
{
|
||||
machine().sound().system_enable(data == 4);
|
||||
}
|
||||
|
||||
READ8_MEMBER(alinvade_state::irqmask_r)
|
||||
uint8_t alinvade_state::irqmask_r()
|
||||
{
|
||||
return 0; // TODO: might be anything
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(alinvade_state::irqmask_w)
|
||||
void alinvade_state::irqmask_w(uint8_t data)
|
||||
{
|
||||
if((!(m_irqff & 1)) && (data & 1)) // f/f, active high? If the above actually returns 0xff this could be active low ...
|
||||
m_irqmask^= 1;
|
||||
@ -201,7 +201,7 @@ uint32_t alinvade_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(alinvade_state::vblank_irq)
|
||||
void alinvade_state::vblank_irq(int state)
|
||||
{
|
||||
if (state && BIT(m_irqmask, 0))
|
||||
m_maincpu->set_input_line(0,HOLD_LINE);
|
||||
|
@ -71,25 +71,25 @@ public:
|
||||
void allied(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_WRITE8_MEMBER(ic1_b_w);
|
||||
DECLARE_WRITE8_MEMBER(ic2_b_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(ic2_cb2_w);
|
||||
DECLARE_WRITE8_MEMBER(ic3_b_w);
|
||||
DECLARE_WRITE8_MEMBER(ic4_b_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(ic4_cb2_w);
|
||||
DECLARE_WRITE8_MEMBER(ic5_b_w);
|
||||
DECLARE_WRITE8_MEMBER(ic6_b_w);
|
||||
DECLARE_WRITE8_MEMBER(ic7_b_w);
|
||||
DECLARE_WRITE8_MEMBER(ic8_a_w);
|
||||
DECLARE_WRITE8_MEMBER(ic8_b_w);
|
||||
DECLARE_READ8_MEMBER(ic1_a_r);
|
||||
DECLARE_READ8_MEMBER(ic2_a_r);
|
||||
DECLARE_READ8_MEMBER(ic4_a_r);
|
||||
DECLARE_READ8_MEMBER(ic5_a_r);
|
||||
DECLARE_READ8_MEMBER(ic6_a_r);
|
||||
DECLARE_READ8_MEMBER(ic6_b_r);
|
||||
DECLARE_READ8_MEMBER(ic7_a_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(ic8_cb2_w);
|
||||
void ic1_b_w(uint8_t data);
|
||||
void ic2_b_w(uint8_t data);
|
||||
void ic2_cb2_w(int state);
|
||||
void ic3_b_w(uint8_t data);
|
||||
void ic4_b_w(uint8_t data);
|
||||
void ic4_cb2_w(int state);
|
||||
void ic5_b_w(uint8_t data);
|
||||
void ic6_b_w(uint8_t data);
|
||||
void ic7_b_w(uint8_t data);
|
||||
void ic8_a_w(uint8_t data);
|
||||
void ic8_b_w(uint8_t data);
|
||||
uint8_t ic1_a_r();
|
||||
uint8_t ic2_a_r();
|
||||
uint8_t ic4_a_r();
|
||||
uint8_t ic5_a_r();
|
||||
uint8_t ic6_a_r();
|
||||
uint8_t ic6_b_r();
|
||||
uint8_t ic7_a_r();
|
||||
void ic8_cb2_w(int state);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_a);
|
||||
void allied_map(address_map &map);
|
||||
|
||||
@ -367,30 +367,30 @@ static INPUT_PORTS_START( allied )
|
||||
INPUT_PORTS_END
|
||||
|
||||
// 1 target, 1 rollover
|
||||
READ8_MEMBER( allied_state::ic1_a_r )
|
||||
uint8_t allied_state::ic1_a_r()
|
||||
{
|
||||
return ioport("X1A")->read();
|
||||
}
|
||||
|
||||
// 6 lamps
|
||||
WRITE8_MEMBER( allied_state::ic1_b_w )
|
||||
void allied_state::ic1_b_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
// 8 switches
|
||||
READ8_MEMBER( allied_state::ic2_a_r )
|
||||
uint8_t allied_state::ic2_a_r()
|
||||
{
|
||||
return ioport("X2A")->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( allied_state::ic2_b_w )
|
||||
void allied_state::ic2_b_w(uint8_t data)
|
||||
{
|
||||
// PB0-4,6 - lamps
|
||||
|
||||
m_disp_data = !BIT(data, 7);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( allied_state::ic2_cb2_w )
|
||||
void allied_state::ic2_cb2_w(int state)
|
||||
{
|
||||
if ((m_display) && (!state))
|
||||
{
|
||||
@ -402,18 +402,18 @@ WRITE_LINE_MEMBER( allied_state::ic2_cb2_w )
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( allied_state::ic3_b_w )
|
||||
void allied_state::ic3_b_w(uint8_t data)
|
||||
{
|
||||
m_maincpu->set_input_line(M6504_IRQ_LINE, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE );
|
||||
}
|
||||
|
||||
// 6 switches
|
||||
READ8_MEMBER( allied_state::ic4_a_r )
|
||||
uint8_t allied_state::ic4_a_r()
|
||||
{
|
||||
return ioport("X4A")->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( allied_state::ic4_b_w )
|
||||
void allied_state::ic4_b_w(uint8_t data)
|
||||
{
|
||||
static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x69, 0x78, 0 }; // 7446A
|
||||
uint8_t segment, i;
|
||||
@ -453,18 +453,18 @@ WRITE8_MEMBER( allied_state::ic4_b_w )
|
||||
// PB0-3 - player 1-4 LED - to do
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( allied_state::ic4_cb2_w )
|
||||
void allied_state::ic4_cb2_w(int state)
|
||||
{
|
||||
}
|
||||
|
||||
// 8 of the adjustment connectors
|
||||
READ8_MEMBER( allied_state::ic5_a_r )
|
||||
uint8_t allied_state::ic5_a_r()
|
||||
{
|
||||
return m_ic5a;
|
||||
}
|
||||
|
||||
// cabinet solenoids
|
||||
WRITE8_MEMBER( allied_state::ic5_b_w )
|
||||
void allied_state::ic5_b_w(uint8_t data)
|
||||
{
|
||||
// PB0 - play meter
|
||||
// PB1 - replay meter
|
||||
@ -485,18 +485,18 @@ WRITE8_MEMBER( allied_state::ic5_b_w )
|
||||
}
|
||||
|
||||
// 4 adjustments, 3 coin slots, slam tilt
|
||||
READ8_MEMBER( allied_state::ic6_a_r )
|
||||
uint8_t allied_state::ic6_a_r()
|
||||
{
|
||||
return m_ic6a0 | m_ic6a1 | m_ic6a2 | ioport("X6A")->read();
|
||||
}
|
||||
|
||||
// 1 adjustment, test switch
|
||||
READ8_MEMBER( allied_state::ic6_b_r )
|
||||
uint8_t allied_state::ic6_b_r()
|
||||
{
|
||||
return m_ic6b4 | ioport("TEST")->read() | m_ic6b7 | 0x4f;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( allied_state::ic6_b_w )
|
||||
void allied_state::ic6_b_w(uint8_t data)
|
||||
{
|
||||
// PB0-3 to drop targets
|
||||
|
||||
@ -504,12 +504,12 @@ WRITE8_MEMBER( allied_state::ic6_b_w )
|
||||
}
|
||||
|
||||
// 6 inputs
|
||||
READ8_MEMBER( allied_state::ic7_a_r )
|
||||
uint8_t allied_state::ic7_a_r()
|
||||
{
|
||||
return ioport("X7A")->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( allied_state::ic7_b_w )
|
||||
void allied_state::ic7_b_w(uint8_t data)
|
||||
{
|
||||
// PB7 - tilt lamp
|
||||
|
||||
@ -567,7 +567,7 @@ WRITE8_MEMBER( allied_state::ic7_b_w )
|
||||
}
|
||||
|
||||
// playfield solenoids
|
||||
WRITE8_MEMBER( allied_state::ic8_a_w )
|
||||
void allied_state::ic8_a_w(uint8_t data)
|
||||
{
|
||||
if ((data & 0x07) < 0x07) // 3 bumpers
|
||||
m_samples->start(0, 0);
|
||||
@ -580,14 +580,14 @@ WRITE8_MEMBER( allied_state::ic8_a_w )
|
||||
}
|
||||
|
||||
// PB0-4 = ball 1-5 LED; PB5 = shoot again lamp
|
||||
WRITE8_MEMBER( allied_state::ic8_b_w )
|
||||
void allied_state::ic8_b_w(uint8_t data)
|
||||
{
|
||||
for (int i = 0; i < 6; i++)
|
||||
m_leds[i+1] = !BIT(data, i);
|
||||
}
|
||||
|
||||
// this line not emulated in PinMAME, maybe it isn't needed
|
||||
WRITE_LINE_MEMBER( allied_state::ic8_cb2_w )
|
||||
void allied_state::ic8_cb2_w(int state)
|
||||
{
|
||||
m_ic6b7 = state ? 128 : 0; // i think it's pb7, hard to tell
|
||||
m_ic7->cb1_w(state);
|
||||
|
@ -93,16 +93,16 @@ private:
|
||||
void apc16_z80_map(address_map &map);
|
||||
void ef9345(address_map &map);
|
||||
|
||||
DECLARE_READ8_MEMBER(p1_r);
|
||||
DECLARE_WRITE8_MEMBER(p1_w);
|
||||
DECLARE_READ8_MEMBER(p2_r);
|
||||
DECLARE_WRITE8_MEMBER(p2_w);
|
||||
DECLARE_READ8_MEMBER(host_scsi_r);
|
||||
DECLARE_WRITE8_MEMBER(host_scsi_w);
|
||||
DECLARE_READ8_MEMBER(flop_scsi_r);
|
||||
DECLARE_WRITE8_MEMBER(flop_scsi_w);
|
||||
DECLARE_READ8_MEMBER(p00_r);
|
||||
DECLARE_WRITE8_MEMBER(p40_w);
|
||||
u8 p1_r();
|
||||
void p1_w(u8 data);
|
||||
u8 p2_r();
|
||||
void p2_w(u8 data);
|
||||
u8 host_scsi_r(offs_t offset);
|
||||
void host_scsi_w(offs_t offset, u8 data);
|
||||
u8 flop_scsi_r(offs_t offset);
|
||||
void flop_scsi_w(offs_t offs_t, u8 data);
|
||||
u8 p00_r();
|
||||
void p40_w(u8 data);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pic8259_device> m_pic8259;
|
||||
@ -127,26 +127,26 @@ void alphatpc16_state::machine_start()
|
||||
m_wdfdc->set_floppy(m_flop0->get_device());
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(alphatpc16_state::p1_w)
|
||||
void alphatpc16_state::p1_w(u8 data)
|
||||
{
|
||||
if((data == 0xff) && !BIT(m_p2, 7))
|
||||
m_p2 &= ~3; //??
|
||||
m_p1 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(alphatpc16_state::p1_r)
|
||||
u8 alphatpc16_state::p1_r()
|
||||
{
|
||||
return m_p1;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(alphatpc16_state::p2_w)
|
||||
void alphatpc16_state::p2_w(u8 data)
|
||||
{
|
||||
m_beep->set_state(!BIT(data, 3));
|
||||
m_pic8259->ir0_w(BIT(data, 5));
|
||||
m_p2 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(alphatpc16_state::p2_r)
|
||||
u8 alphatpc16_state::p2_r()
|
||||
{
|
||||
bool key = false;
|
||||
if(m_p1 < 0x80)
|
||||
@ -154,7 +154,7 @@ READ8_MEMBER(alphatpc16_state::p2_r)
|
||||
return (m_p2 | 0x40) & ~(key ? (m_p1 < 0x40 ? 2 : 1) : 0);
|
||||
}
|
||||
|
||||
READ8_MEMBER(alphatpc16_state::p00_r)
|
||||
u8 alphatpc16_state::p00_r()
|
||||
{
|
||||
u8 ret = 0;
|
||||
switch(m_p40 & 0xf0)
|
||||
@ -175,7 +175,7 @@ READ8_MEMBER(alphatpc16_state::p00_r)
|
||||
return ret;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(alphatpc16_state::p40_w)
|
||||
void alphatpc16_state::p40_w(u8 data)
|
||||
{
|
||||
switch(data & 0xf0)
|
||||
{
|
||||
@ -200,7 +200,7 @@ WRITE8_MEMBER(alphatpc16_state::p40_w)
|
||||
}
|
||||
|
||||
// this scsi emulation is an unrealistic mess
|
||||
WRITE8_MEMBER(alphatpc16_state::host_scsi_w)
|
||||
void alphatpc16_state::host_scsi_w(offs_t offset, u8 data)
|
||||
{
|
||||
switch(offset)
|
||||
{
|
||||
@ -235,7 +235,7 @@ WRITE8_MEMBER(alphatpc16_state::host_scsi_w)
|
||||
logerror("%s, data %x bsy %d sel %d req %d ack %d cd %d io %d\n", machine().describe_context(), m_data, m_bsy, m_sel, m_req, m_ack, m_cd, m_io);
|
||||
}
|
||||
|
||||
READ8_MEMBER(alphatpc16_state::host_scsi_r)
|
||||
u8 alphatpc16_state::host_scsi_r(offs_t offset)
|
||||
{
|
||||
u8 ret = 0;
|
||||
switch(offset)
|
||||
@ -259,7 +259,7 @@ READ8_MEMBER(alphatpc16_state::host_scsi_r)
|
||||
return ret;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(alphatpc16_state::flop_scsi_w)
|
||||
void alphatpc16_state::flop_scsi_w(offs_t offset, u8 data)
|
||||
{
|
||||
switch(offset)
|
||||
{
|
||||
@ -279,7 +279,7 @@ WRITE8_MEMBER(alphatpc16_state::flop_scsi_w)
|
||||
logerror("%s, data %x bsy %d sel %d req %d ack %d cd %d io %d\n", machine().describe_context(), m_data, m_bsy, m_sel, m_req, m_ack, m_cd, m_io);
|
||||
}
|
||||
|
||||
READ8_MEMBER(alphatpc16_state::flop_scsi_r)
|
||||
u8 alphatpc16_state::flop_scsi_r(offs_t offset)
|
||||
{
|
||||
u8 ret = 0;
|
||||
switch(offset)
|
||||
|
Loading…
Reference in New Issue
Block a user