147
147
*************************************/
149
static ADDRESS_MAP_START( atarifb_map, AS_PROGRAM, 8 )
149
static ADDRESS_MAP_START( atarifb_map, AS_PROGRAM, 8, atarifb_state )
150
150
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
151
151
AM_RANGE(0x0000, 0x01ff) AM_RAM
152
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
152
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
153
153
AM_RANGE(0x0260, 0x039f) AM_RAM
154
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap2_videoram)
155
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_BASE_MEMBER(atarifb_state, m_field_videoram)
156
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(atarifb_state, m_spriteram, m_spriteram_size)
157
AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_BASE_MEMBER(atarifb_state, m_scroll_register) /* OUT 0 */
154
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
155
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
156
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_SHARE("spriteram")
157
AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
158
158
AM_RANGE(0x2001, 0x2001) AM_WRITE(atarifb_out1_w) /* OUT 1 */
159
159
AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
160
160
AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
169
static ADDRESS_MAP_START( atarifb4_map, AS_PROGRAM, 8 )
169
static ADDRESS_MAP_START( atarifb4_map, AS_PROGRAM, 8, atarifb_state )
170
170
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
171
171
AM_RANGE(0x0000, 0x01ff) AM_RAM
172
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
172
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
173
173
AM_RANGE(0x0260, 0x039f) AM_RAM
174
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap2_videoram)
175
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_BASE_MEMBER(atarifb_state, m_field_videoram)
176
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(atarifb_state, m_spriteram, m_spriteram_size)
177
AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_BASE_MEMBER(atarifb_state, m_scroll_register) /* OUT 0 */
174
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
175
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
176
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_SHARE("spriteram")
177
AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
178
178
AM_RANGE(0x2001, 0x2001) AM_WRITE(atarifb4_out1_w) /* OUT 1 */
179
179
AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
180
180
AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
190
static ADDRESS_MAP_START( abaseb_map, AS_PROGRAM, 8 )
190
static ADDRESS_MAP_START( abaseb_map, AS_PROGRAM, 8, atarifb_state )
191
191
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
192
192
AM_RANGE(0x0000, 0x01ff) AM_RAM
193
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
193
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
194
194
AM_RANGE(0x0260, 0x039f) AM_RAM
195
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap2_videoram)
196
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_BASE_MEMBER(atarifb_state, m_field_videoram)
197
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_SIZE_MEMBER(atarifb_state, m_spriteram, m_spriteram_size)
198
AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_BASE_MEMBER(atarifb_state, m_scroll_register) /* OUT 0 */
195
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
196
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
197
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_SHARE("spriteram")
198
AM_RANGE(0x2000, 0x2000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
199
199
AM_RANGE(0x2001, 0x2001) AM_WRITE(abaseb_out1_w) /* OUT 1 */
200
200
AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
201
201
AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
210
static ADDRESS_MAP_START( soccer_map, AS_PROGRAM, 8 )
210
static ADDRESS_MAP_START( soccer_map, AS_PROGRAM, 8, atarifb_state )
211
211
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
212
212
AM_RANGE(0x0000, 0x01ff) AM_RAM
213
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap1_videoram)
213
AM_RANGE(0x0200, 0x025f) AM_RAM_WRITE(atarifb_alpha1_videoram_w) AM_SHARE("p1_videoram")
214
214
AM_RANGE(0x0260, 0x039f) AM_RAM
215
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_BASE_MEMBER(atarifb_state, m_alphap2_videoram)
216
AM_RANGE(0x0800, 0x0bbf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_BASE_MEMBER(atarifb_state, m_field_videoram)
217
AM_RANGE(0x0bc0, 0x0bff) AM_RAM AM_BASE_SIZE_MEMBER(atarifb_state, m_spriteram, m_spriteram_size)
218
AM_RANGE(0x1000, 0x1000) AM_WRITEONLY AM_BASE_MEMBER(atarifb_state, m_scroll_register) /* OUT 0 */
215
AM_RANGE(0x03a0, 0x03ff) AM_RAM_WRITE(atarifb_alpha2_videoram_w) AM_SHARE("p2_videoram")
216
AM_RANGE(0x0800, 0x0bbf) AM_RAM_WRITE(atarifb_field_videoram_w) AM_SHARE("field_videoram")
217
AM_RANGE(0x0bc0, 0x0bff) AM_RAM AM_SHARE("spriteram")
218
AM_RANGE(0x1000, 0x1000) AM_WRITEONLY AM_SHARE("scroll_register") /* OUT 0 */
219
219
AM_RANGE(0x1001, 0x1001) AM_WRITE(soccer_out1_w) /* OUT 1 */
220
220
AM_RANGE(0x1002, 0x1002) AM_WRITE(soccer_out2_w) /* OUT 2 */
221
221
AM_RANGE(0x1004, 0x1004) AM_WRITENOP /* Interrupt Acknowledge */
240
240
PORT_BIT ( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
241
241
PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
242
242
PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_TILT )
243
PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK )
243
PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
244
244
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
246
246
PORT_START("IN1")
310
310
PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
311
311
PORT_BIT ( 0x38, IP_ACTIVE_LOW, IPT_UNKNOWN )
312
312
PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
313
PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
313
PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
387
387
PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused on schematics */
388
388
PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_TILT )
389
389
PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
390
PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
390
PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
392
392
PORT_START("DSW1")
393
393
PORT_DIPNAME( 0x07, 0x00, "Time per coin" ) PORT_DIPLOCATION("SW1:1,2,3")