26
26
static INTERRUPT_GEN( pooyan_interrupt )
28
pooyan_state *state = device->machine->driver_data<pooyan_state>();
28
pooyan_state *state = device->machine().driver_data<pooyan_state>();
30
if (state->irq_enable)
31
cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
30
if (state->m_irq_enable)
31
device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
35
35
static WRITE8_HANDLER( irq_enable_w )
37
pooyan_state *state = space->machine->driver_data<pooyan_state>();
37
pooyan_state *state = space->machine().driver_data<pooyan_state>();
39
state->irq_enable = data & 1;
40
if (!state->irq_enable)
41
cpu_set_input_line(state->maincpu, INPUT_LINE_NMI, CLEAR_LINE);
39
state->m_irq_enable = data & 1;
40
if (!state->m_irq_enable)
41
device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
49
49
*************************************/
51
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
51
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
52
52
AM_RANGE(0x0000, 0x7fff) AM_ROM
53
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pooyan_colorram_w) AM_BASE_MEMBER(pooyan_state, colorram)
54
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pooyan_videoram_w) AM_BASE_MEMBER(pooyan_state, videoram)
53
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pooyan_colorram_w) AM_BASE_MEMBER(pooyan_state, m_colorram)
54
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pooyan_videoram_w) AM_BASE_MEMBER(pooyan_state, m_videoram)
55
55
AM_RANGE(0x8800, 0x8fff) AM_RAM
56
AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE_MEMBER(pooyan_state, spriteram)
57
AM_RANGE(0x9400, 0x94ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE_MEMBER(pooyan_state, spriteram2)
56
AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE_MEMBER(pooyan_state, m_spriteram)
57
AM_RANGE(0x9400, 0x94ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE_MEMBER(pooyan_state, m_spriteram2)
58
58
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x5e7f) AM_READ_PORT("DSW1")
59
59
AM_RANGE(0xa080, 0xa080) AM_MIRROR(0x5e1f) AM_READ_PORT("IN0")
60
60
AM_RANGE(0xa0a0, 0xa0a0) AM_MIRROR(0x5e1f) AM_READ_PORT("IN1")
209
209
static MACHINE_START( pooyan )
211
pooyan_state *state = machine->driver_data<pooyan_state>();
213
state->maincpu = machine->device<cpu_device>("maincpu");
215
state_save_register_global(machine, state->irq_enable);
211
pooyan_state *state = machine.driver_data<pooyan_state>();
213
state->m_maincpu = machine.device<cpu_device>("maincpu");
215
state->save_item(NAME(state->m_irq_enable));
219
219
static MACHINE_RESET( pooyan )
221
pooyan_state *state = machine->driver_data<pooyan_state>();
222
state->irq_enable = 0;
221
pooyan_state *state = machine.driver_data<pooyan_state>();
222
state->m_irq_enable = 0;
239
239
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
240
240
MCFG_SCREEN_SIZE(32*8, 32*8)
241
241
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
242
MCFG_SCREEN_UPDATE(pooyan)
243
244
MCFG_GFXDECODE(pooyan)
244
245
MCFG_PALETTE_LENGTH(16*16+16*16)
246
247
MCFG_PALETTE_INIT(pooyan)
247
248
MCFG_VIDEO_START(pooyan)
248
MCFG_VIDEO_UPDATE(pooyan)
250
250
/* sound hardware */
251
251
MCFG_FRAGMENT_ADD(timeplt_sound)