24
24
static WRITE8_HANDLER( video_interrupt_w )
26
kingofb_state *state = space->machine->driver_data<kingofb_state>();
27
cpu_set_input_line_and_vector(state->video_cpu, 0, HOLD_LINE, 0xff);
26
kingofb_state *state = space->machine().driver_data<kingofb_state>();
27
device_set_input_line_and_vector(state->m_video_cpu, 0, HOLD_LINE, 0xff);
30
30
static WRITE8_HANDLER( sprite_interrupt_w )
32
kingofb_state *state = space->machine->driver_data<kingofb_state>();
33
cpu_set_input_line_and_vector(state->sprite_cpu, 0, HOLD_LINE, 0xff);
32
kingofb_state *state = space->machine().driver_data<kingofb_state>();
33
device_set_input_line_and_vector(state->m_sprite_cpu, 0, HOLD_LINE, 0xff);
36
36
static WRITE8_HANDLER( scroll_interrupt_w )
38
kingofb_state *state = space->machine->driver_data<kingofb_state>();
38
kingofb_state *state = space->machine().driver_data<kingofb_state>();
39
39
sprite_interrupt_w(space, offset, data);
40
*state->scroll_y = data;
40
*state->m_scroll_y = data;
43
43
static WRITE8_HANDLER( sound_command_w )
45
kingofb_state *state = space->machine->driver_data<kingofb_state>();
45
kingofb_state *state = space->machine().driver_data<kingofb_state>();
46
46
soundlatch_w(space, 0, data);
47
cpu_set_input_line_and_vector(state->audio_cpu, 0, HOLD_LINE, 0xff);
47
device_set_input_line_and_vector(state->m_audio_cpu, 0, HOLD_LINE, 0xff);
51
static ADDRESS_MAP_START( kingobox_map, ADDRESS_SPACE_PROGRAM, 8 )
51
static ADDRESS_MAP_START( kingobox_map, AS_PROGRAM, 8 )
52
52
AM_RANGE(0x0000, 0xbfff) AM_ROM
53
53
AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
54
54
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */
56
56
AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */
57
57
AM_RANGE(0xf800, 0xf800) AM_WRITE(kingofb_f800_w) /* NMI enable, palette bank */
58
58
AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* ???? */
59
AM_RANGE(0xf802, 0xf802) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, scroll_y)
59
AM_RANGE(0xf802, 0xf802) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, m_scroll_y)
60
60
AM_RANGE(0xf803, 0xf803) AM_WRITE(scroll_interrupt_w)
61
61
AM_RANGE(0xf804, 0xf804) AM_WRITE(video_interrupt_w)
62
62
AM_RANGE(0xf807, 0xf807) AM_WRITE(sound_command_w) /* sound latch */
68
68
AM_RANGE(0xfc05, 0xfc05) AM_READ_PORT("EXTRA")
71
static ADDRESS_MAP_START( kingobox_video_map, ADDRESS_SPACE_PROGRAM, 8 )
71
static ADDRESS_MAP_START( kingobox_video_map, AS_PROGRAM, 8 )
72
72
AM_RANGE(0x0000, 0x3fff) AM_ROM
73
73
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
74
74
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1") /* shared with main */
75
AM_RANGE(0xc000, 0xc0ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, videoram) /* background vram */
76
AM_RANGE(0xc400, 0xc4ff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, colorram) /* background colorram */
77
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, videoram2) /* foreground vram */
78
AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, colorram2) /* foreground colorram */
75
AM_RANGE(0xc000, 0xc0ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, m_videoram) /* background vram */
76
AM_RANGE(0xc400, 0xc4ff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, m_colorram) /* background colorram */
77
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, m_videoram2) /* foreground vram */
78
AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, m_colorram2) /* foreground colorram */
81
static ADDRESS_MAP_START( kingobox_sprite_map, ADDRESS_SPACE_PROGRAM, 8 )
81
static ADDRESS_MAP_START( kingobox_sprite_map, AS_PROGRAM, 8 )
82
82
AM_RANGE(0x0000, 0x1fff) AM_ROM
83
83
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
84
84
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share2") /* shared with main */
85
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, spriteram, spriteram_size) /* sprite ram */
85
AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, m_spriteram, m_spriteram_size) /* sprite ram */
86
86
AM_RANGE(0xc400, 0xc43f) AM_RAM /* something related to scroll? */
89
static ADDRESS_MAP_START( kingobox_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
89
static ADDRESS_MAP_START( kingobox_sound_map, AS_PROGRAM, 8 )
90
90
AM_RANGE(0x0000, 0xbfff) AM_ROM
91
91
AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* ??? */
92
92
AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
95
static ADDRESS_MAP_START( kingobox_sound_io_map, ADDRESS_SPACE_IO, 8 )
95
static ADDRESS_MAP_START( kingobox_sound_io_map, AS_IO, 8 )
96
96
ADDRESS_MAP_GLOBAL_MASK(0xff)
97
97
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_w)
98
98
AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
115
115
AM_RANGE(0xe003, 0xe003) AM_READ_PORT("P2")
116
116
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM")
117
117
AM_RANGE(0xe005, 0xe005) AM_READ_PORT("EXTRA")
118
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, scroll_y)
118
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, m_scroll_y)
119
119
AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */
122
static ADDRESS_MAP_START( ringking_video_map, ADDRESS_SPACE_PROGRAM, 8 )
122
static ADDRESS_MAP_START( ringking_video_map, AS_PROGRAM, 8 )
123
123
AM_RANGE(0x0000, 0x3fff) AM_ROM
124
124
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
125
125
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") /* shared with main */
126
AM_RANGE(0xa800, 0xa8ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, videoram) /* background vram */
127
AM_RANGE(0xac00, 0xacff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, colorram) /* background colorram */
128
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, videoram2) /* foreground vram */
129
AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, colorram2) /* foreground colorram */
126
AM_RANGE(0xa800, 0xa8ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, m_videoram) /* background vram */
127
AM_RANGE(0xac00, 0xacff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, m_colorram) /* background colorram */
128
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, m_videoram2) /* foreground vram */
129
AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, m_colorram2) /* foreground colorram */
132
static ADDRESS_MAP_START( ringking_sprite_map, ADDRESS_SPACE_PROGRAM, 8 )
132
static ADDRESS_MAP_START( ringking_sprite_map, AS_PROGRAM, 8 )
133
133
AM_RANGE(0x0000, 0x1fff) AM_ROM
134
134
AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
135
135
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with main */
136
AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, spriteram, spriteram_size) /* sprite ram */
136
AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, m_spriteram, m_spriteram_size) /* sprite ram */
137
137
AM_RANGE(0xa400, 0xa43f) AM_RAM /* something related to scroll? */
140
static ADDRESS_MAP_START( ringking_sound_io_map, ADDRESS_SPACE_IO, 8 )
140
static ADDRESS_MAP_START( ringking_sound_io_map, AS_IO, 8 )
141
141
ADDRESS_MAP_GLOBAL_MASK(0xff)
142
142
AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_w)
143
143
AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_r)
449
449
static INTERRUPT_GEN( kingofb_interrupt )
451
kingofb_state *state = device->machine->driver_data<kingofb_state>();
451
kingofb_state *state = device->machine().driver_data<kingofb_state>();
453
if (state->nmi_enable)
454
cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
453
if (state->m_nmi_enable)
454
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
457
457
static MACHINE_START( kingofb )
459
kingofb_state *state = machine->driver_data<kingofb_state>();
461
state->video_cpu = machine->device("video");
462
state->sprite_cpu = machine->device("sprite");
463
state->audio_cpu = machine->device("audiocpu");
465
state_save_register_global(machine, state->nmi_enable);
466
state_save_register_global(machine, state->palette_bank);
459
kingofb_state *state = machine.driver_data<kingofb_state>();
461
state->m_video_cpu = machine.device("video");
462
state->m_sprite_cpu = machine.device("sprite");
463
state->m_audio_cpu = machine.device("audiocpu");
465
state->save_item(NAME(state->m_nmi_enable));
466
state->save_item(NAME(state->m_palette_bank));
469
469
static MACHINE_RESET( kingofb )
471
kingofb_state *state = machine->driver_data<kingofb_state>();
471
kingofb_state *state = machine.driver_data<kingofb_state>();
473
state->nmi_enable = 0;
474
state->palette_bank = 0;
473
state->m_nmi_enable = 0;
474
state->m_palette_bank = 0;
477
477
static MACHINE_CONFIG_START( kingofb, kingofb_state )
506
506
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
507
507
MCFG_SCREEN_SIZE(32*8, 32*8)
508
508
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
509
MCFG_SCREEN_UPDATE(kingofb)
510
511
MCFG_GFXDECODE(kingobox)
511
512
MCFG_PALETTE_LENGTH(256+8*2)
513
514
MCFG_PALETTE_INIT(kingofb)
514
515
MCFG_VIDEO_START(kingofb)
515
MCFG_VIDEO_UPDATE(kingofb)
517
517
/* sound hardware */
518
518
MCFG_SPEAKER_STANDARD_MONO("mono")
559
559
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
560
560
MCFG_SCREEN_SIZE(32*8, 32*8)
561
561
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
562
MCFG_SCREEN_UPDATE(ringking)
563
564
MCFG_GFXDECODE(rk)
564
565
MCFG_PALETTE_LENGTH(256+8*2)
566
567
MCFG_PALETTE_INIT(ringking)
567
568
MCFG_VIDEO_START(ringking)
568
MCFG_VIDEO_UPDATE(ringking)
570
570
/* sound hardware */
571
571
MCFG_SPEAKER_STANDARD_MONO("mono")