72
72
#define TAOTAIDO_SHOW_ALL_INPUTS 0
75
static READ16_HANDLER( pending_command_r )
75
READ16_MEMBER(taotaido_state::pending_command_r)
77
taotaido_state *state = space->machine().driver_data<taotaido_state>();
78
77
/* Only bit 0 is tested */
79
return state->m_pending_command;
78
return m_pending_command;
82
static WRITE16_HANDLER( sound_command_w )
81
WRITE16_MEMBER(taotaido_state::sound_command_w)
84
taotaido_state *state = space->machine().driver_data<taotaido_state>();
85
83
if (ACCESSING_BITS_0_7)
87
state->m_pending_command = 1;
88
soundlatch_w(space, offset, data & 0xff);
89
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
85
m_pending_command = 1;
86
soundlatch_byte_w(space, offset, data & 0xff);
87
cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
92
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
90
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state )
93
91
AM_RANGE(0x000000, 0x0fffff) AM_ROM
94
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(taotaido_bgvideoram_w) AM_BASE_MEMBER(taotaido_state, m_bgram) // bg ram?
95
AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_BASE_MEMBER(taotaido_state, m_spriteram) // sprite ram
96
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_BASE_MEMBER(taotaido_state, m_spriteram2) // sprite tile lookup ram
92
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(taotaido_bgvideoram_w) AM_SHARE("bgram") // bg ram?
93
AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_SHARE("spriteram") // sprite ram
94
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("spriteram2") // sprite tile lookup ram
97
95
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram
98
AM_RANGE(0xffc000, 0xffcfff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // palette ram
99
AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_BASE_MEMBER(taotaido_state, m_scrollram) // rowscroll / rowselect / scroll ram
96
AM_RANGE(0xffc000, 0xffcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette ram
97
AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_SHARE("scrollram") // rowscroll / rowselect / scroll ram
100
98
AM_RANGE(0xffff80, 0xffff81) AM_READ_PORT("P1")
101
99
AM_RANGE(0xffff82, 0xffff83) AM_READ_PORT("P2")
102
100
AM_RANGE(0xffff84, 0xffff85) AM_READ_PORT("SYSTEM")
118
116
/* sound cpu - same as aerofgt */
121
static WRITE8_HANDLER( pending_command_clear_w )
123
taotaido_state *state = space->machine().driver_data<taotaido_state>();
124
state->m_pending_command = 0;
127
static WRITE8_HANDLER( taotaido_sh_bankswitch_w )
129
UINT8 *rom = space->machine().region("audiocpu")->base() + 0x10000;
131
memory_set_bankptr(space->machine(), "bank1",rom + (data & 0x03) * 0x8000);
134
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
119
WRITE8_MEMBER(taotaido_state::pending_command_clear_w)
121
m_pending_command = 0;
124
WRITE8_MEMBER(taotaido_state::taotaido_sh_bankswitch_w)
126
UINT8 *rom = memregion("audiocpu")->base() + 0x10000;
128
membank("bank1")->set_base(rom + (data & 0x03) * 0x8000);
131
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taotaido_state )
135
132
AM_RANGE(0x0000, 0x77ff) AM_ROM
136
133
AM_RANGE(0x7800, 0x7fff) AM_RAM
137
134
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
140
static ADDRESS_MAP_START( sound_port_map, AS_IO, 8 )
137
static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, taotaido_state )
141
138
ADDRESS_MAP_GLOBAL_MASK(0xff)
142
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
139
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
143
140
AM_RANGE(0x04, 0x04) AM_WRITE(taotaido_sh_bankswitch_w)
144
141
AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w)
145
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
142
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_byte_r)