106
104
*************************************/
108
static WRITE16_HANDLER( eprom_latch_w )
106
WRITE16_MEMBER(eprom_state::eprom_latch_w)
110
eprom_state *state = space->machine().driver_data<eprom_state>();
112
if (ACCESSING_BITS_0_7 && (space->machine().device("extra") != NULL))
109
if (ACCESSING_BITS_0_7 && (machine().device("extra") != NULL))
114
111
/* bit 0: reset extra CPU */
116
cputag_set_input_line(space->machine(), "extra", INPUT_LINE_RESET, CLEAR_LINE);
113
cputag_set_input_line(machine(), "extra", INPUT_LINE_RESET, CLEAR_LINE);
118
cputag_set_input_line(space->machine(), "extra", INPUT_LINE_RESET, ASSERT_LINE);
115
cputag_set_input_line(machine(), "extra", INPUT_LINE_RESET, ASSERT_LINE);
120
117
/* bits 1-4: screen intensity */
121
state->m_screen_intensity = (data & 0x1e) >> 1;
118
m_screen_intensity = (data & 0x1e) >> 1;
123
120
/* bit 5: video disable */
124
state->m_video_disable = (data & 0x20);
121
m_video_disable = (data & 0x20);
161
156
*************************************/
163
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
158
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
164
159
AM_RANGE(0x000000, 0x09ffff) AM_ROM
165
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
166
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("share2")
160
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
161
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("sync_data")
167
162
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
168
AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(atarigen_eeprom_enable_w)
163
AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
169
164
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
170
165
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
171
166
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
172
AM_RANGE(0x260030, 0x260031) AM_READ(atarigen_sound_r)
167
AM_RANGE(0x260030, 0x260031) AM_READ_LEGACY(atarigen_sound_r)
173
168
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
174
AM_RANGE(0x360000, 0x360001) AM_WRITE(atarigen_video_int_ack_w)
169
AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
175
170
AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
176
AM_RANGE(0x360020, 0x360021) AM_WRITE(atarigen_sound_reset_w)
177
AM_RANGE(0x360030, 0x360031) AM_WRITE(atarigen_sound_w)
178
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_BASE_GENERIC(paletteram)
179
AM_RANGE(0x3f0000, 0x3f1fff) AM_WRITE(atarigen_playfield_w) AM_BASE_MEMBER(eprom_state, m_playfield)
180
AM_RANGE(0x3f2000, 0x3f3fff) AM_READWRITE(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
181
AM_RANGE(0x3f4000, 0x3f4f7f) AM_WRITE(atarigen_alpha_w) AM_BASE_MEMBER(eprom_state, m_alpha)
182
AM_RANGE(0x3f4f80, 0x3f4fff) AM_READWRITE(atarimo_0_slipram_r, atarimo_0_slipram_w)
183
AM_RANGE(0x3f8000, 0x3f9fff) AM_WRITE(atarigen_playfield_upper_w) AM_BASE_MEMBER(eprom_state, m_playfield_upper)
171
AM_RANGE(0x360020, 0x360021) AM_WRITE_LEGACY(atarigen_sound_reset_w)
172
AM_RANGE(0x360030, 0x360031) AM_WRITE_LEGACY(atarigen_sound_w)
173
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
174
AM_RANGE(0x3f0000, 0x3f1fff) AM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
175
AM_RANGE(0x3f2000, 0x3f3fff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
176
AM_RANGE(0x3f4000, 0x3f4f7f) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
177
AM_RANGE(0x3f4f80, 0x3f4fff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
178
AM_RANGE(0x3f8000, 0x3f9fff) AM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
184
179
AM_RANGE(0x3f0000, 0x3f9fff) AM_RAM
188
static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16 )
183
static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16, eprom_state )
189
184
AM_RANGE(0x000000, 0x09ffff) AM_ROM
190
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
191
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("share2")
185
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
186
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("sync_data")
192
187
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
193
AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(atarigen_eeprom_enable_w)
188
AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
194
189
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
195
190
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
196
191
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
197
AM_RANGE(0x260030, 0x260031) AM_READ(atarigen_sound_r)
192
AM_RANGE(0x260030, 0x260031) AM_READ_LEGACY(atarigen_sound_r)
198
193
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
199
AM_RANGE(0x360000, 0x360001) AM_WRITE(atarigen_video_int_ack_w)
194
AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
200
195
// AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
201
AM_RANGE(0x360020, 0x360021) AM_WRITE(atarigen_sound_reset_w)
202
AM_RANGE(0x360030, 0x360031) AM_WRITE(atarigen_sound_w)
203
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_BASE_GENERIC(paletteram)
204
AM_RANGE(0xff0000, 0xff1fff) AM_WRITE(atarigen_playfield_upper_w) AM_BASE_MEMBER(eprom_state, m_playfield_upper)
205
AM_RANGE(0xff8000, 0xff9fff) AM_WRITE(atarigen_playfield_w) AM_BASE_MEMBER(eprom_state, m_playfield)
206
AM_RANGE(0xffa000, 0xffbfff) AM_READWRITE(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
207
AM_RANGE(0xffc000, 0xffcf7f) AM_WRITE(atarigen_alpha_w) AM_BASE_MEMBER(eprom_state, m_alpha)
208
AM_RANGE(0xffcf80, 0xffcfff) AM_READWRITE(atarimo_0_slipram_r, atarimo_0_slipram_w)
196
AM_RANGE(0x360020, 0x360021) AM_WRITE_LEGACY(atarigen_sound_reset_w)
197
AM_RANGE(0x360030, 0x360031) AM_WRITE_LEGACY(atarigen_sound_w)
198
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
199
AM_RANGE(0xff0000, 0xff1fff) AM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
200
AM_RANGE(0xff8000, 0xff9fff) AM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
201
AM_RANGE(0xffa000, 0xffbfff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
202
AM_RANGE(0xffc000, 0xffcf7f) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
203
AM_RANGE(0xffcf80, 0xffcfff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
209
204
AM_RANGE(0xff0000, 0xff1fff) AM_RAM
210
205
AM_RANGE(0xff8000, 0xffffff) AM_RAM
219
214
*************************************/
221
static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16 )
216
static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, eprom_state )
222
217
AM_RANGE(0x000000, 0x07ffff) AM_ROM
223
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w) AM_SHARE("share2") AM_BASE_MEMBER(eprom_state, m_sync_data)
218
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w) AM_SHARE("sync_data")
224
219
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
225
220
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
226
221
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
227
222
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
228
AM_RANGE(0x260030, 0x260031) AM_READ(atarigen_sound_r)
229
AM_RANGE(0x360000, 0x360001) AM_WRITE(atarigen_video_int_ack_w)
223
AM_RANGE(0x260030, 0x260031) AM_READ_LEGACY(atarigen_sound_r)
224
AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
230
225
AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
231
AM_RANGE(0x360020, 0x360021) AM_WRITE(atarigen_sound_reset_w)
232
AM_RANGE(0x360030, 0x360031) AM_WRITE(atarigen_sound_w)
226
AM_RANGE(0x360020, 0x360021) AM_WRITE_LEGACY(atarigen_sound_reset_w)
227
AM_RANGE(0x360030, 0x360031) AM_WRITE_LEGACY(atarigen_sound_w)