92
80
static WRITE8_HANDLER(jcross_vregs4_w){jcross_vregs[4]=data;}
95
static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
96
AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM)
97
AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
83
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
84
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_BASE(&namco_wavedata)
85
AM_RANGE(0x8000, 0x87ff) AM_RAM
98
86
AM_RANGE(0xa000, 0xa000) AM_READ(sound_command_r)
99
87
AM_RANGE(0xc000, 0xc000) AM_READ(sound_nmi_ack_r)
102
static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
103
AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) AM_BASE(&namco_wavedata)
104
AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
105
88
AM_RANGE(0xe000, 0xe000) AM_WRITE(AY8910_control_port_0_w)
106
89
AM_RANGE(0xe001, 0xe001) AM_WRITE(AY8910_write_port_0_w)
107
90
AM_RANGE(0xe002, 0xe007) AM_WRITE(snkwave_w)
108
91
AM_RANGE(0xe008, 0xe008) AM_WRITE(AY8910_control_port_1_w)
109
92
AM_RANGE(0xe009, 0xe009) AM_WRITE(AY8910_write_port_1_w)
113
static ADDRESS_MAP_START( readmem_CPUA, ADDRESS_SPACE_PROGRAM, 8 )
114
AM_RANGE(0x0000, 0x9fff) AM_READ(MRA8_ROM)
95
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
96
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
97
AM_RANGE(0x00, 0x00) AM_READNOP
100
static ADDRESS_MAP_START( cpuA_map, ADDRESS_SPACE_PROGRAM, 8 )
101
AM_RANGE(0x0000, 0x9fff) AM_ROM
115
102
AM_RANGE(0xa000, 0xa000) AM_READ(jcross_port_0_r)
116
103
AM_RANGE(0xa100, 0xa100) AM_READ(input_port_1_r)
117
104
AM_RANGE(0xa200, 0xa200) AM_READ(input_port_2_r)
105
AM_RANGE(0xa300, 0xa300) AM_WRITE(sound_command_w)
118
106
AM_RANGE(0xa400, 0xa400) AM_READ(input_port_3_r)
119
107
AM_RANGE(0xa500, 0xa500) AM_READ(input_port_4_r)
120
AM_RANGE(0xa700, 0xa700) AM_READ(snk_cpuB_nmi_trigger_r)
121
AM_RANGE(0xd800, 0xdfff) AM_READ(sharedram_r)
122
AM_RANGE(0xf000, 0xf3ff) AM_READ(jcross_text_ram_r)
123
AM_RANGE(0xe000, 0xefff) AM_READ(jcross_background_ram_r)
124
AM_RANGE(0xf400, 0xffff) AM_READ(MRA8_RAM)
127
static ADDRESS_MAP_START( writemem_CPUA, ADDRESS_SPACE_PROGRAM, 8 )
128
AM_RANGE(0x0000, 0x9fff) AM_WRITE(MWA8_ROM)
129
AM_RANGE(0xa300, 0xa300) AM_WRITE(sound_command_w)
130
108
AM_RANGE(0xa600, 0xa600) AM_WRITE(jcross_palettebank_w)
131
AM_RANGE(0xa700, 0xa700) AM_WRITE(snk_cpuA_nmi_ack_w)
109
AM_RANGE(0xa700, 0xa700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
132
110
AM_RANGE(0xd300, 0xd300) AM_WRITE(jcross_vregs0_w)
133
111
AM_RANGE(0xd400, 0xd400) AM_WRITE(jcross_vregs1_w)
134
112
AM_RANGE(0xd500, 0xd500) AM_WRITE(jcross_vregs2_w)
135
113
AM_RANGE(0xd600, 0xd600) AM_WRITE(jcross_vregs3_w)
136
114
AM_RANGE(0xd700, 0xd700) AM_WRITE(jcross_vregs4_w)
137
AM_RANGE(0xd800, 0xdfff) AM_WRITE(sharedram_w) AM_BASE(&jcr_sharedram)
138
AM_RANGE(0xe000, 0xefff) AM_WRITE(jcross_background_ram_w) AM_BASE(&videoram)
139
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(jcross_text_ram_w) AM_BASE(&jcr_textram)
140
AM_RANGE(0xf400, 0xffff) AM_WRITE(MWA8_RAM)
144
static ADDRESS_MAP_START( readmem_CPUB, ADDRESS_SPACE_PROGRAM, 8 )
145
AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
146
AM_RANGE(0xa700, 0xa700) AM_READ(snk_cpuA_nmi_trigger_r)
147
AM_RANGE(0xc000, 0xc7ff) AM_READ(sharedram_r)
148
AM_RANGE(0xc800, 0xd7ff) AM_READ(jcross_background_ram_r) /* unknown ??? */
151
static ADDRESS_MAP_START( writemem_CPUB, ADDRESS_SPACE_PROGRAM, 8 )
152
AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
153
AM_RANGE(0xa700, 0xa700) AM_WRITE(snk_cpuB_nmi_ack_w)
154
AM_RANGE(0xc000, 0xc7ff) AM_WRITE(sharedram_w)
157
static ADDRESS_MAP_START( readport_sound, ADDRESS_SPACE_IO, 8 )
158
AM_RANGE(0x0000, 0x0000) AM_READ(MRA8_NOP)
115
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE(1) AM_BASE(&spriteram)
116
AM_RANGE(0xe000, 0xefff) AM_READWRITE(MRA8_RAM, jcross_background_ram_w) AM_SHARE(2) AM_BASE(&videoram)
117
AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(MRA8_RAM, jcross_text_ram_w) AM_BASE(&jcr_textram)
118
AM_RANGE(0xf400, 0xffff) AM_RAM
121
static ADDRESS_MAP_START( cpuB_map, ADDRESS_SPACE_PROGRAM, 8 )
122
AM_RANGE(0x0000, 0x7fff) AM_ROM
123
AM_RANGE(0xa700, 0xa700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
124
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE(1)
125
AM_RANGE(0xc800, 0xd7ff) AM_RAM AM_SHARE(2) /* unknown ??? */
287
254
/***************************************************************************
291
258
***************************************************************************/
293
260
static MACHINE_DRIVER_START( jcross )
295
262
MDRV_CPU_ADD(Z80, 3360000)
296
MDRV_CPU_PROGRAM_MAP(readmem_CPUA,writemem_CPUA)
263
MDRV_CPU_PROGRAM_MAP(cpuA_map,0)
297
264
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
299
266
MDRV_CPU_ADD(Z80, 3360000)
300
MDRV_CPU_PROGRAM_MAP(readmem_CPUB,writemem_CPUB)
267
MDRV_CPU_PROGRAM_MAP(cpuB_map,0)
301
268
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
303
270
MDRV_CPU_ADD(Z80, 4000000)
304
MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
305
MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
306
MDRV_CPU_IO_MAP(readport_sound,0)
307
MDRV_CPU_PERIODIC_INT(irq0_line_hold, 244)
272
MDRV_CPU_PROGRAM_MAP(sound_map,0)
273
MDRV_CPU_IO_MAP(sound_portmap,0)
274
MDRV_CPU_PERIODIC_INT(irq0_line_hold, TIME_IN_HZ(244))
309
276
MDRV_FRAMES_PER_SECOND(61)
310
277
MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)