32
32
/******************************************************************************/
34
static WRITE8_HANDLER( battlera_sound_w )
34
WRITE8_MEMBER(battlera_state::battlera_sound_w)
38
soundlatch_w(space,0,data);
39
cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
38
soundlatch_byte_w(space,0,data);
39
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
43
43
/******************************************************************************/
45
static WRITE8_HANDLER( control_data_w )
45
WRITE8_MEMBER(battlera_state::control_data_w)
47
battlera_state *state = space->machine().driver_data<battlera_state>();
48
state->m_control_port_select=data;
47
m_control_port_select=data;
51
static READ8_HANDLER( control_data_r )
50
READ8_MEMBER(battlera_state::control_data_r)
53
battlera_state *state = space->machine().driver_data<battlera_state>();
54
switch (state->m_control_port_select)
52
switch (m_control_port_select)
56
case 0xfe: return input_port_read(space->machine(), "IN0"); /* Player 1 */
57
case 0xfd: return input_port_read(space->machine(), "IN1"); /* Player 2 */
58
case 0xfb: return input_port_read(space->machine(), "IN2"); /* Coins */
59
case 0xf7: return input_port_read(space->machine(), "DSW2"); /* Dip 2 */
60
case 0xef: return input_port_read(space->machine(), "DSW1"); /* Dip 1 */
54
case 0xfe: return ioport("IN0")->read(); /* Player 1 */
55
case 0xfd: return ioport("IN1")->read(); /* Player 2 */
56
case 0xfb: return ioport("IN2")->read(); /* Coins */
57
case 0xf7: return ioport("DSW2")->read(); /* Dip 2 */
58
case 0xef: return ioport("DSW1")->read(); /* Dip 1 */
66
64
/******************************************************************************/
68
static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8 )
66
static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8, battlera_state )
69
67
AM_RANGE(0x000000, 0x0fffff) AM_ROM
70
68
AM_RANGE(0x100000, 0x10ffff) AM_READWRITE(HuC6270_debug_r, HuC6270_debug_w) /* Cheat to edit vram data */
71
69
AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE(battlera_sound_w)
72
AM_RANGE(0x1e1000, 0x1e13ff) AM_WRITE(battlera_palette_w) AM_BASE_GENERIC(paletteram)
70
AM_RANGE(0x1e1000, 0x1e13ff) AM_WRITE(battlera_palette_w) AM_SHARE("paletteram")
73
71
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* Main ram */
74
72
AM_RANGE(0x1fe000, 0x1fe001) AM_READWRITE(HuC6270_register_r, HuC6270_register_w)
75
73
AM_RANGE(0x1fe002, 0x1fe003) AM_WRITE(HuC6270_data_w)
76
74
AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(control_data_r, control_data_w)
77
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
75
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
80
static ADDRESS_MAP_START( battlera_portmap, AS_IO, 8 )
78
static ADDRESS_MAP_START( battlera_portmap, AS_IO, 8, battlera_state )
81
79
AM_RANGE(0x00, 0x01) AM_WRITE(HuC6270_register_w)
82
80
AM_RANGE(0x02, 0x03) AM_WRITE(HuC6270_data_w)
97
95
cputag_set_input_line(device->machine(), "audiocpu", 1, HOLD_LINE);
100
static WRITE8_HANDLER( battlera_adpcm_data_w )
98
WRITE8_MEMBER(battlera_state::battlera_adpcm_data_w)
102
battlera_state *state = space->machine().driver_data<battlera_state>();
103
state->m_msm5205next = data;
100
m_msm5205next = data;
106
103
static WRITE8_DEVICE_HANDLER( battlera_adpcm_reset_w )
108
105
msm5205_reset_w(device, 0);
111
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
108
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state )
112
109
AM_RANGE(0x000000, 0x00ffff) AM_ROM
113
AM_RANGE(0x040000, 0x040001) AM_DEVWRITE("ymsnd", ym2203_w)
110
AM_RANGE(0x040000, 0x040001) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w)
114
111
AM_RANGE(0x080000, 0x080001) AM_WRITE(battlera_adpcm_data_w)
115
AM_RANGE(0x1fe800, 0x1fe80f) AM_DEVWRITE("c6280", c6280_w)
112
AM_RANGE(0x1fe800, 0x1fe80f) AM_DEVWRITE_LEGACY("c6280", c6280_w)
116
113
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank7") /* Main ram */
117
AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_r) AM_DEVWRITE("msm", battlera_adpcm_reset_w)
118
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
114
AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_byte_r) AM_DEVWRITE_LEGACY("msm", battlera_adpcm_reset_w)
115
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
121
118
/******************************************************************************/