210
210
/* Memory Maps */
211
static ADDRESS_MAP_START( docastle_map, AS_PROGRAM, 8 )
211
static ADDRESS_MAP_START( docastle_map, AS_PROGRAM, 8, docastle_state )
212
212
AM_RANGE(0x0000, 0x7fff) AM_ROM
213
213
AM_RANGE(0x8000, 0x97ff) AM_RAM
214
AM_RANGE(0x9800, 0x99ff) AM_RAM AM_BASE_SIZE_MEMBER(docastle_state, m_spriteram, m_spriteram_size)
214
AM_RANGE(0x9800, 0x99ff) AM_RAM AM_SHARE("spriteram")
215
215
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared0_r, docastle_shared1_w)
216
216
AM_RANGE(0xa800, 0xa800) AM_WRITE(watchdog_reset_w)
217
AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_videoram_w) AM_BASE_MEMBER(docastle_state, m_videoram)
218
AM_RANGE(0xb400, 0xb7ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_colorram_w) AM_BASE_MEMBER(docastle_state, m_colorram)
217
AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_videoram_w) AM_SHARE("videoram")
218
AM_RANGE(0xb400, 0xb7ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_colorram_w) AM_SHARE("colorram")
219
219
AM_RANGE(0xe000, 0xe000) AM_WRITE(docastle_nmitrigger_w)
222
static ADDRESS_MAP_START( docastle_map2, AS_PROGRAM, 8 )
222
static ADDRESS_MAP_START( docastle_map2, AS_PROGRAM, 8, docastle_state )
223
223
AM_RANGE(0x0000, 0x3fff) AM_ROM
224
224
AM_RANGE(0x8000, 0x87ff) AM_RAM
225
225
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared1_r, docastle_shared0_w)
230
230
AM_RANGE(0xc005, 0xc005) AM_MIRROR(0x0080) AM_READ_PORT("BUTTONS")
231
231
AM_RANGE(0xc007, 0xc007) AM_MIRROR(0x0080) AM_READ_PORT("SYSTEM")
232
232
AM_RANGE(0xc084, 0xc084) AM_READWRITE(docastle_flipscreen_on_r, docastle_flipscreen_on_w)
233
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("sn1", sn76496_w)
234
AM_RANGE(0xe400, 0xe400) AM_DEVWRITE("sn2", sn76496_w)
235
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE("sn3", sn76496_w)
236
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("sn4", sn76496_w)
233
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
234
AM_RANGE(0xe400, 0xe400) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
235
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
236
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("sn4", sn76496_w)
239
static ADDRESS_MAP_START( docastle_map3, AS_PROGRAM, 8 )
239
static ADDRESS_MAP_START( docastle_map3, AS_PROGRAM, 8, docastle_state )
240
240
AM_RANGE(0x0000, 0x00ff) AM_ROM
241
241
AM_RANGE(0x4000, 0x47ff) AM_RAM
242
242
AM_RANGE(0x8000, 0x8008) AM_READ(docastle_shared1_r) // ???
244
244
AM_RANGE(0xc432, 0xc435) AM_NOP // ???
247
static ADDRESS_MAP_START( docastle_io_map, AS_IO, 8 )
247
static ADDRESS_MAP_START( docastle_io_map, AS_IO, 8, docastle_state )
248
248
ADDRESS_MAP_GLOBAL_MASK(0xff)
249
249
AM_RANGE(0x00, 0x00) AM_NOP // goes to CRT 46505S
250
250
AM_RANGE(0x02, 0x02) AM_NOP // goes to CRT 46505S
254
static ADDRESS_MAP_START( dorunrun_map, AS_PROGRAM, 8 )
254
static ADDRESS_MAP_START( dorunrun_map, AS_PROGRAM, 8, docastle_state )
255
255
AM_RANGE(0x0000, 0x1fff) AM_ROM
256
256
AM_RANGE(0x2000, 0x37ff) AM_RAM
257
AM_RANGE(0x3800, 0x39ff) AM_RAM AM_BASE_SIZE_MEMBER(docastle_state, m_spriteram, m_spriteram_size)
257
AM_RANGE(0x3800, 0x39ff) AM_RAM AM_SHARE("spriteram")
258
258
AM_RANGE(0x4000, 0x9fff) AM_ROM
259
259
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared0_r, docastle_shared1_w)
260
260
AM_RANGE(0xa800, 0xa800) AM_WRITE(watchdog_reset_w)
261
AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(docastle_videoram_w) AM_BASE_MEMBER(docastle_state, m_videoram)
262
AM_RANGE(0xb400, 0xb7ff) AM_RAM_WRITE(docastle_colorram_w) AM_BASE_MEMBER(docastle_state, m_colorram)
261
AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(docastle_videoram_w) AM_SHARE("videoram")
262
AM_RANGE(0xb400, 0xb7ff) AM_RAM_WRITE(docastle_colorram_w) AM_SHARE("colorram")
263
263
AM_RANGE(0xb800, 0xb800) AM_WRITE(docastle_nmitrigger_w)
266
static ADDRESS_MAP_START( dorunrun_map2, AS_PROGRAM, 8 )
266
static ADDRESS_MAP_START( dorunrun_map2, AS_PROGRAM, 8, docastle_state )
267
267
AM_RANGE(0x0000, 0x3fff) AM_ROM
268
268
AM_RANGE(0x8000, 0x87ff) AM_RAM
269
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn1", sn76496_w)
270
AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("sn2", sn76496_w)
271
AM_RANGE(0xa800, 0xa800) AM_DEVWRITE("sn3", sn76496_w)
272
AM_RANGE(0xac00, 0xac00) AM_DEVWRITE("sn4", sn76496_w)
269
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
270
AM_RANGE(0xa400, 0xa400) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
271
AM_RANGE(0xa800, 0xa800) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
272
AM_RANGE(0xac00, 0xac00) AM_DEVWRITE_LEGACY("sn4", sn76496_w)
273
273
AM_RANGE(0xc001, 0xc001) AM_MIRROR(0x0080) AM_READ_PORT("DSW2")
274
274
AM_RANGE(0xc002, 0xc002) AM_MIRROR(0x0080) AM_READ_PORT("DSW1")
275
275
AM_RANGE(0xc003, 0xc003) AM_MIRROR(0x0080) AM_READ_PORT("JOYS")
284
static ADDRESS_MAP_START( idsoccer_map, AS_PROGRAM, 8 )
284
static ADDRESS_MAP_START( idsoccer_map, AS_PROGRAM, 8, docastle_state )
285
285
AM_RANGE(0x0000, 0x3fff) AM_ROM
286
286
AM_RANGE(0x4000, 0x57ff) AM_RAM
287
AM_RANGE(0x5800, 0x59ff) AM_RAM AM_BASE_SIZE_MEMBER(docastle_state, m_spriteram, m_spriteram_size)
287
AM_RANGE(0x5800, 0x59ff) AM_RAM AM_SHARE("spriteram")
288
288
AM_RANGE(0x6000, 0x9fff) AM_ROM
289
289
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared0_r, docastle_shared1_w)
290
290
AM_RANGE(0xa800, 0xa800) AM_WRITE(watchdog_reset_w)
291
AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_videoram_w) AM_BASE_MEMBER(docastle_state, m_videoram)
292
AM_RANGE(0xb400, 0xb7ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_colorram_w) AM_BASE_MEMBER(docastle_state, m_colorram)
293
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE("msm", idsoccer_adpcm_status_r, idsoccer_adpcm_w)
291
AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_videoram_w) AM_SHARE("videoram")
292
AM_RANGE(0xb400, 0xb7ff) AM_MIRROR(0x0800) AM_RAM_WRITE(docastle_colorram_w) AM_SHARE("colorram")
293
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE_LEGACY("msm", idsoccer_adpcm_status_r, idsoccer_adpcm_w)
294
294
AM_RANGE(0xe000, 0xe000) AM_WRITE(docastle_nmitrigger_w)
297
static ADDRESS_MAP_START( idsoccer_map2, AS_PROGRAM, 8 )
297
static ADDRESS_MAP_START( idsoccer_map2, AS_PROGRAM, 8, docastle_state )
298
298
AM_RANGE(0x0000, 0x3fff) AM_ROM
299
299
AM_RANGE(0x8000, 0x87ff) AM_RAM
300
300
AM_RANGE(0xa000, 0xa008) AM_READWRITE(docastle_shared1_r, docastle_shared0_w)
305
305
AM_RANGE(0xc005, 0xc005) AM_MIRROR(0x0080) AM_READ_PORT("BUTTONS")
306
306
AM_RANGE(0xc007, 0xc007) AM_MIRROR(0x0080) AM_READ_PORT("SYSTEM")
307
307
AM_RANGE(0xc084, 0xc084) AM_READ_PORT("JOYS_RIGHT") AM_WRITE(docastle_flipscreen_on_w)
308
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("sn1", sn76496_w)
309
AM_RANGE(0xe400, 0xe400) AM_DEVWRITE("sn2", sn76496_w)
310
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE("sn3", sn76496_w)
311
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("sn4", sn76496_w)
308
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
309
AM_RANGE(0xe400, 0xe400) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
310
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
311
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("sn4", sn76496_w)
314
314
/* Input Ports */