28
29
return input_port_read(space->machine, flip_screen_get(space->machine) ? "P2" : "P1");
32
static READ8_HANDLER( citycon_irq_ack_r )
34
cputag_set_input_line(space->machine, "maincpu", 0, CLEAR_LINE);
33
39
static ADDRESS_MAP_START( citycon_map, ADDRESS_SPACE_PROGRAM, 8 )
34
40
AM_RANGE(0x0000, 0x0fff) AM_RAM
35
41
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(citycon_videoram_w) AM_BASE(&citycon_videoram)
36
AM_RANGE(0x2000, 0x20ff) AM_WRITE(citycon_linecolor_w) AM_BASE(&citycon_linecolor)
37
AM_RANGE(0x2800, 0x28ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
42
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(citycon_linecolor_w) AM_BASE(&citycon_linecolor)
43
AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
44
AM_RANGE(0x2800, 0x2fff) AM_NOP //0x2900-0x2fff cleared at post but unused
38
45
AM_RANGE(0x3000, 0x3000) AM_READWRITE(citycon_in_r, citycon_background_w) /* player 1 & 2 inputs multiplexed */
39
46
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_w)
40
47
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_w)
41
AM_RANGE(0x3004, 0x3005) AM_WRITE(SMH_RAM) AM_BASE(&citycon_scroll)
42
AM_RANGE(0x3007, 0x3007) AM_READ(watchdog_reset_r) /* ? */
43
AM_RANGE(0x3800, 0x3cff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram)
48
AM_RANGE(0x3004, 0x3005) AM_READNOP AM_WRITEONLY AM_BASE(&citycon_scroll)
49
AM_RANGE(0x3007, 0x3007) AM_READ(citycon_irq_ack_r)
50
AM_RANGE(0x3800, 0x3cff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram)
44
51
AM_RANGE(0x4000, 0xffff) AM_ROM
194
201
/* basic machine hardware */
195
202
MDRV_CPU_ADD("maincpu", M6809, 2048000) /* 2.048 MHz ??? */
196
203
MDRV_CPU_PROGRAM_MAP(citycon_map)
197
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
204
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
199
206
MDRV_CPU_ADD("audiocpu", M6809, 640000) /* 0.640 MHz ??? */
200
207
MDRV_CPU_PROGRAM_MAP(sound_map)
201
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
208
// MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) //actually unused, probably it was during development
203
210
/* video hardware */
204
211
MDRV_SCREEN_ADD("screen", RASTER)
244
252
ROM_REGION( 0x10000, "audiocpu", 0 )
245
253
ROM_LOAD( "c1", 0x8000, 0x8000, CRC(1fad7589) SHA1(2e626bbbab8cffe11ee7de3e56aa1871c29d5fa9) )
247
ROM_REGION( 0x03000, "gfx1", ROMREGION_DISPOSE )
255
ROM_REGION( 0x03000, "gfx1", 0 )
248
256
ROM_LOAD( "c4", 0x00000, 0x2000, CRC(a6b32fc6) SHA1(d99d5a527440e9a91525c1084b95b213e3b760ec) ) /* Characters */
250
ROM_REGION( 0x04000, "gfx2", ROMREGION_DISPOSE )
258
ROM_REGION( 0x04000, "gfx2", 0 )
251
259
ROM_LOAD( "c12", 0x00000, 0x2000, CRC(08eaaccd) SHA1(a970381e3ba22bcdea6df2d31cd8a10c4b2bc413) ) /* Sprites */
252
260
ROM_LOAD( "c13", 0x02000, 0x2000, CRC(1819aafb) SHA1(8a5ffcd8866e09c5568879257384767d61796111) )
254
ROM_REGION( 0x18000, "gfx3", ROMREGION_DISPOSE )
262
ROM_REGION( 0x18000, "gfx3", 0 )
255
263
ROM_LOAD( "c9", 0x00000, 0x8000, CRC(8aeb47e6) SHA1(bb09dbe6b37e1bd02abf3024ac4d954c8f0e70f2) ) /* Background tiles */
256
264
ROM_LOAD( "c8", 0x08000, 0x4000, CRC(0d7a1eeb) SHA1(60b8d4124ce857a248d3c41fdb050f11be58549f) )
257
265
ROM_LOAD( "c6", 0x0c000, 0x8000, CRC(2246fe9d) SHA1(f7f8708d499bcbd1a583e1092b54425ad1105f94) )
271
279
ROM_REGION( 0x10000, "audiocpu", 0 )
272
280
ROM_LOAD( "c1", 0x8000, 0x8000, CRC(1fad7589) SHA1(2e626bbbab8cffe11ee7de3e56aa1871c29d5fa9) )
274
ROM_REGION( 0x03000, "gfx1", ROMREGION_DISPOSE )
282
ROM_REGION( 0x03000, "gfx1", 0 )
275
283
ROM_LOAD( "c4", 0x00000, 0x2000, CRC(a6b32fc6) SHA1(d99d5a527440e9a91525c1084b95b213e3b760ec) ) /* Characters */
277
ROM_REGION( 0x04000, "gfx2", ROMREGION_DISPOSE )
285
ROM_REGION( 0x04000, "gfx2", 0 )
278
286
ROM_LOAD( "c12", 0x00000, 0x2000, CRC(08eaaccd) SHA1(a970381e3ba22bcdea6df2d31cd8a10c4b2bc413) ) /* Sprites */
279
287
ROM_LOAD( "c13", 0x02000, 0x2000, CRC(1819aafb) SHA1(8a5ffcd8866e09c5568879257384767d61796111) )
281
ROM_REGION( 0x18000, "gfx3", ROMREGION_DISPOSE )
289
ROM_REGION( 0x18000, "gfx3", 0 )
282
290
ROM_LOAD( "c9", 0x00000, 0x8000, CRC(8aeb47e6) SHA1(bb09dbe6b37e1bd02abf3024ac4d954c8f0e70f2) ) /* Background tiles */
283
291
ROM_LOAD( "c8", 0x08000, 0x4000, CRC(0d7a1eeb) SHA1(60b8d4124ce857a248d3c41fdb050f11be58549f) )
284
292
ROM_LOAD( "c6", 0x0c000, 0x8000, CRC(2246fe9d) SHA1(f7f8708d499bcbd1a583e1092b54425ad1105f94) )
298
306
ROM_REGION( 0x10000, "audiocpu", 0 )
299
307
ROM_LOAD( "c1", 0x8000, 0x8000, CRC(1fad7589) SHA1(2e626bbbab8cffe11ee7de3e56aa1871c29d5fa9) )
301
ROM_REGION( 0x03000, "gfx1", ROMREGION_DISPOSE )
309
ROM_REGION( 0x03000, "gfx1", 0 )
302
310
ROM_LOAD( "cr4", 0x00000, 0x2000, CRC(8cd0308e) SHA1(7303b9e074bda557d64b39e04cef0f965a756be6) ) /* Characters */
304
ROM_REGION( 0x04000, "gfx2", ROMREGION_DISPOSE )
312
ROM_REGION( 0x04000, "gfx2", 0 )
305
313
ROM_LOAD( "c12", 0x00000, 0x2000, CRC(08eaaccd) SHA1(a970381e3ba22bcdea6df2d31cd8a10c4b2bc413) ) /* Sprites */
306
314
ROM_LOAD( "c13", 0x02000, 0x2000, CRC(1819aafb) SHA1(8a5ffcd8866e09c5568879257384767d61796111) )
308
ROM_REGION( 0x18000, "gfx3", ROMREGION_DISPOSE )
316
ROM_REGION( 0x18000, "gfx3", 0 )
309
317
ROM_LOAD( "c9", 0x00000, 0x8000, CRC(8aeb47e6) SHA1(bb09dbe6b37e1bd02abf3024ac4d954c8f0e70f2) ) /* Background tiles */
310
318
ROM_LOAD( "c8", 0x08000, 0x4000, CRC(0d7a1eeb) SHA1(60b8d4124ce857a248d3c41fdb050f11be58549f) )
311
319
ROM_LOAD( "c6", 0x0c000, 0x8000, CRC(2246fe9d) SHA1(f7f8708d499bcbd1a583e1092b54425ad1105f94) )