示例#1
0
{
	device_t *printer = device->machine().device("centronics");
	return (centronics_ack_r(printer) << 2);
}

static WRITE8_DEVICE_HANDLER(i8255_port_c_w)
{
	device_t *printer = device->machine().device("centronics");
	centronics_strobe_w(printer, (data >> 7) & 0x01);
}

static I8255_INTERFACE(elwro800jr_ppi8255_interface)
{
	DEVCB_INPUT_PORT("JOY"),
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("centronics", centronics_data_r),
	DEVCB_DEVICE_HANDLER("centronics", centronics_data_w),
	DEVCB_HANDLER(i8255_port_c_r),
	DEVCB_HANDLER(i8255_port_c_w)
};

static const centronics_interface elwro800jr_centronics_interface =
{
	FALSE,
	DEVCB_DEVICE_LINE_MEMBER("ppi8255", i8255_device, pc2_w),
	DEVCB_NULL,
	DEVCB_NULL
};

/*************************************
 *
示例#2
0
文件: bagman.c 项目: clobber/UME
};

static const tmsprom_interface prom_intf =
{
	"5110ctrl",                     /* prom memory region - sound region is automatically assigned */
	0x1000,                         /* individual rom_size */
	1,                              /* bit # of pdc line */
	/* virtual bit 8: constant 0, virtual bit 9:constant 1 */
	8,                              /* bit # of ctl1 line */
	2,                              /* bit # of ctl2 line */
	8,                              /* bit # of ctl4 line */
	2,                              /* bit # of ctl8 line */
	6,                              /* bit # of rom reset */
	7,                              /* bit # of stop */
	DEVCB_DEVICE_LINE("tms", tms5110_pdc_w),        /* tms pdc func */
	DEVCB_DEVICE_HANDLER("tms", tms5110_ctl_w)      /* tms ctl func */
};

static const tms5110_interface bagman_tms5110_interface =
{
	/* legacy interface */
	NULL,                                           /* function to be called when chip requests another bit */
	NULL,                                           /* speech ROM load address callback */
	/* new rom controller interface */
	DEVCB_DEVICE_LINE("tmsprom", tmsprom_m0_w),     /* the M0 line */
	DEVCB_NULL,                                     /* the M1 line */
	DEVCB_NULL,                                     /* Write to ADD1,2,4,8 - 4 address bits */
	DEVCB_DEVICE_LINE("tmsprom", tmsprom_data_r),   /* Read one bit from ADD8/Data - voice data */
	DEVCB_NULL                                      /* rom clock - Only used to drive the data lines */
};
示例#3
0
};

static GFXDECODE_START( ddribble )
	GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout,    48,  1 )	/* colors 48-63 */
	GFXDECODE_ENTRY( "gfx2", 0x00000, charlayout,    16,  1 )	/* colors 16-31 */
	GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout,  32,  1 )	/* colors 32-47 */
	GFXDECODE_ENTRY( "gfx2", 0x40000, spritelayout,  64, 16 )	/* colors  0-15 but using lookup table */
GFXDECODE_END

static const ym2203_interface ym2203_config =
{
	{
		AY8910_LEGACY_OUTPUT,
		AY8910_DEFAULT_LOADS,
		DEVCB_NULL,
		DEVCB_DEVICE_HANDLER("vlm", ddribble_vlm5030_busy_r),
		DEVCB_DEVICE_HANDLER("vlm", ddribble_vlm5030_ctrl_w),
		DEVCB_NULL
	},
	NULL
};

static const vlm5030_interface vlm5030_config =
{
	0x10000     /* memory size 64Kbyte * 2 bank */
};



static MACHINE_START( ddribble )
{
示例#4
0
static GFXDECODE_START( gyruss )
	GFXDECODE_ENTRY( "gfx1", 0x0000, spritelayout, 0, 16 )	/* upper half */
	GFXDECODE_ENTRY( "gfx1", 0x0010, spritelayout, 0, 16 )	/* lower half */
	GFXDECODE_ENTRY( "gfx2", 0x0000, charlayout,   16*16, 16 )
GFXDECODE_END


static const ay8910_interface ay8910_interface_1 =
{
	AY8910_DISCRETE_OUTPUT,
	{ RES_K(3.3), RES_K(3.3), RES_K(3.3) },
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("discrete", gyruss_filter0_w)
};

static const ay8910_interface ay8910_interface_2 =
{
	AY8910_DISCRETE_OUTPUT,
	{ RES_K(3.3), RES_K(3.3), RES_K(3.3) },
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("discrete", gyruss_filter1_w)
};

static const ay8910_interface ay8910_interface_3 =
{
	AY8910_DISCRETE_OUTPUT,
示例#5
0
	{
		/* floppy terminal count */
		upd765_tc_w(m_fdc, m_tc);
	}
}

static UINT8 memory_read_byte(address_space *space, offs_t address) { return space->read_byte(address); }
static void memory_write_byte(address_space *space, offs_t address, UINT8 data) { space->write_byte(address, data); }

static I8237_INTERFACE( mm1_dma8237_intf )
{
	DEVCB_DRIVER_LINE_MEMBER(mm1_state, dma_hrq_changed),
	DEVCB_DRIVER_LINE_MEMBER(mm1_state, tc_w),
	DEVCB_MEMORY_HANDLER(I8085A_TAG, PROGRAM, memory_read_byte),
	DEVCB_MEMORY_HANDLER(I8085A_TAG, PROGRAM, memory_write_byte),
	{ DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(mm1_state, mpsc_dack_r), DEVCB_DEVICE_HANDLER(UPD765_TAG, upd765_dack_r) },
	{ DEVCB_DEVICE_HANDLER(I8275_TAG, i8275_dack_w), DEVCB_DRIVER_MEMBER(mm1_state, mpsc_dack_w), DEVCB_NULL, DEVCB_DEVICE_HANDLER(UPD765_TAG, upd765_dack_w) },
	{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_LINE_MEMBER(mm1_state, dack3_w) }
};

/* uPD765 Interface */

static const upd765_interface fdc_intf =
{
	DEVCB_CPU_INPUT_LINE(I8085A_TAG, I8085_RST55_LINE),
	DEVCB_DEVICE_LINE(I8237_TAG, i8237_dreq3_w),
	NULL,
	UPD765_RDY_PIN_NOT_CONNECTED,
	{ FLOPPY_0, FLOPPY_1, NULL, NULL }
};
示例#6
0

static WRITE8_DEVICE_HANDLER( port_b_w )
{
	/* don't know what this is... could be a filter */
	if (data != 0x00)
		logerror("port_b = %02x\n", data);
}

static const ay8910_interface ay8910_config =
{
	AY8910_LEGACY_OUTPUT,
	AY8910_DEFAULT_LOADS,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("dac", dac_signed_w),
	DEVCB_HANDLER(port_b_w)
};

static MACHINE_START( bking )
{
	buggychl_state *state = machine->driver_data<buggychl_state>();

	state->audiocpu = machine->device("audiocpu");

	/* video */
	state_save_register_global_array(machine, state->pc3259_output);
	state_save_register_global(machine, state->pc3259_mask);
	state_save_register_global(machine, state->xld1);
	state_save_register_global(machine, state->xld2);
	state_save_register_global(machine, state->xld3);
示例#7
0
	if (BIT(m_keylatch, 2)) data &= read_keyboard(2);
	if (BIT(m_keylatch, 3)) data &= read_keyboard(3);

	return data;
}

static const pia6821_interface pia_intf =
{
	DEVCB_DRIVER_MEMBER(crvision_state, pia_pa_r),		// input A
	DEVCB_DRIVER_MEMBER(crvision_state, pia_pb_r),		// input B
	DEVCB_LINE_VCC,										// input CA1 (+5V)
	DEVCB_DEVICE_LINE(SN76489_TAG, sn76496_ready_r),	// input CB1
	DEVCB_LINE_VCC,										// input CA2 (+5V)
	DEVCB_LINE_VCC,										// input CB2 (+5V)
	DEVCB_DRIVER_MEMBER(crvision_state, pia_pa_w),		// output A
	DEVCB_DEVICE_HANDLER(SN76489_TAG, sn76496_w),		// output B
	DEVCB_NULL,											// output CA2
	DEVCB_NULL,											// output CB2 (SN76489 pin CE_)
	DEVCB_NULL,											// irq A
	DEVCB_NULL											// irq B
};

/*-------------------------------------------------
    pia6821_interface lasr2001_pia_intf
-------------------------------------------------*/

READ8_MEMBER( laser2001_state::pia_pa_r )
{
	/*
        Signal  Description
示例#8
0
	n8080_state *n8080 = device->machine().driver_data<n8080_state>();
	n8080->m_inte = state;
}

static WRITE8_DEVICE_HANDLER( n8080_status_callback )
{
	if (data & I8085_STATUS_INTA)
	{
		/* interrupt acknowledge */
		device_set_input_line(device, INPUT_LINE_IRQ0, CLEAR_LINE);
	}
}

static I8085_CONFIG( n8080_cpu_config )
{
	DEVCB_DEVICE_HANDLER("maincpu",n8080_status_callback),	/* STATUS changed callback */
	DEVCB_DEVICE_LINE("maincpu",n8080_inte_callback),		/* INTE changed callback */
	DEVCB_NULL,								/* SID changed callback (8085A only) */
	DEVCB_NULL								/* SOD changed callback (8085A only) */
};

static MACHINE_START( n8080 )
{
	n8080_state *state = machine.driver_data<n8080_state>();

	state->m_maincpu = machine.device("maincpu");

	state->save_item(NAME(state->m_shift_data));
	state->save_item(NAME(state->m_shift_bits));
	state->save_item(NAME(state->m_inte));
}
示例#9
0
{
	/* Centronics Strobe */
	centronics_strobe_w(device, BIT(data, 5));

	/* FDC Reset */
	if (BIT(data, 6))
		compis_fdc_reset(device->machine());

	/* FDC Terminal count */
	compis_fdc_tc(device->machine(), BIT(data, 7));
}

I8255A_INTERFACE( compis_ppi_interface )
{
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("centronics", centronics_data_w),
	DEVCB_DEVICE_HANDLER("centronics", compis_ppi_port_b_r),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("centronics", compis_ppi_port_c_w)
};


/*-------------------------------------------------------------------------*/
/*  PIT 8253                                                               */
/*-------------------------------------------------------------------------*/

const struct pit8253_config compis_pit8253_config =
{
	{
		/* Timer0 */
示例#10
0
文件: madalien.c 项目: esn3s/mame-rr
	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED(coin_inserted, 0)
INPUT_PORTS_END


static const ay8910_interface ay8910_config =
{
	AY8910_LEGACY_OUTPUT,
	AY8910_DEFAULT_LOADS,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("discrete", madalien_portA_w),
	DEVCB_DEVICE_HANDLER("discrete", madalien_portB_w)
};


static MACHINE_CONFIG_START( madalien, madalien_state )

	/* main CPU */
	MCFG_CPU_ADD("maincpu", M6502, MADALIEN_MAIN_CLOCK / 8)	/* 1324kHz */
	MCFG_CPU_PROGRAM_MAP(main_map)

	MCFG_CPU_ADD("audiocpu", M6502, SOUND_CLOCK / 8)		/* 512kHz */
	MCFG_CPU_PROGRAM_MAP(audio_map)
	MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)

	/* video hardware */
示例#11
0
static READ8_DEVICE_HANDLER( b_via_0_pb_r );
static WRITE8_DEVICE_HANDLER( b_via_0_pa_w );
static WRITE8_DEVICE_HANDLER( b_via_0_pb_w );
static READ8_DEVICE_HANDLER( b_via_0_ca2_r );
static WRITE8_DEVICE_HANDLER( b_via_0_ca2_w );

static READ8_DEVICE_HANDLER( b_via_1_pa_r );
static READ8_DEVICE_HANDLER( b_via_1_pb_r );
static WRITE8_DEVICE_HANDLER( b_via_1_pa_w );
static WRITE8_DEVICE_HANDLER( b_via_1_pb_w );

const via6522_interface b_via_0_interface =
{
	/*inputs : A/B         */ DEVCB_NULL, DEVCB_HANDLER(b_via_0_pb_r),
	/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_DEVICE_HANDLER("via6522_1", via_ca2_r), DEVCB_HANDLER(b_via_0_ca2_r), DEVCB_DEVICE_HANDLER("via6522_1", via_ca1_r),
	/*outputs: A/B         */ DEVCB_HANDLER(b_via_0_pa_w), DEVCB_HANDLER(b_via_0_pb_w),
	/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(b_via_0_ca2_w), DEVCB_DEVICE_HANDLER("via6522_1", via_ca1_w),
	/*irq                  */ DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE)
};

const via6522_interface b_via_1_interface =
{
	/*inputs : A/B         */ DEVCB_HANDLER(b_via_1_pa_r), DEVCB_HANDLER(b_via_1_pb_r),
	/*inputs : CA/B1,CA/B2 */ DEVCB_DEVICE_HANDLER("via6522_0", via_cb2_r), DEVCB_NULL, DEVCB_DEVICE_HANDLER("via6522_0", via_cb1_r), DEVCB_NULL,
	/*outputs: A/B         */ DEVCB_HANDLER(b_via_1_pa_w), DEVCB_HANDLER(b_via_1_pb_w),
	/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_HANDLER("via6522_0", via_cb1_w), DEVCB_NULL,
	/*irq                  */ DEVCB_CPU_INPUT_LINE("audiocpu", M6809_IRQ_LINE)
};

static READ8_DEVICE_HANDLER( b_via_0_ca2_r )

/*************************************
 *
 *  Machine driver
 *
 *************************************/

static const ym2203_interface ym2203_config =
{
	{
		AY8910_LEGACY_OUTPUT,
		AY8910_DEFAULT_LOADS,
		DEVCB_NULL,
		DEVCB_NULL,
		DEVCB_DEVICE_HANDLER("upd", upd7759_port_w),
		DEVCB_DRIVER_MEMBER(bladestl_state,bladestl_port_B_w)
	},
	NULL
};

static const k007342_interface bladestl_k007342_intf =
{
	0,	bladestl_tile_callback	/* gfx_num (for tile creation), callback */
};

static const k007420_interface bladestl_k007420_intf =
{
	0x3ff,	bladestl_sprite_callback	/* banklimit, callback */
};
示例#13
0
	/* HACK - this should be connected to the BUSACK line of Z80 */
	i8257_hlda_w(machine().device("dma8257"), state);
}

static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask) { return space.read_byte(address); }
static void memory_write_byte(address_space &space, offs_t address, UINT8 data, UINT8 mem_mask) { space.write_byte(address, data); }

I8257_INTERFACE( radio86_dma )
{
	DEVCB_DRIVER_LINE_MEMBER(radio86_state,hrq_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, memory_read_byte),
	DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, memory_write_byte),
	{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL },
	{ DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_HANDLER("i8275", i8275_dack_w), DEVCB_NULL }
};

TIMER_CALLBACK_MEMBER(radio86_state::radio86_reset)
{
	membank("bank1")->set_entry(0);
}


READ8_MEMBER(radio86_state::radio_cpu_state_r)
{
	return space.device().state().state_int(I8085_STATUS);
}

READ8_MEMBER(radio86_state::radio_io_r)
{
示例#14
0
	/* on line */
	data |= centronics->vcc_r() << 4;

	/* busy */
	data |= centronics->busy_r() << 5;

	return data;
}

static I8255A_INTERFACE( printer_8255_intf )
{
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(CENTRONICS_TAG, centronics_device, write),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(CENTRONICS_TAG, centronics_device, strobe_w),
	DEVCB_DEVICE_HANDLER(CENTRONICS_TAG, i8255_pc_r),
	DEVCB_NULL
};

static const centronics_interface xor100_centronics_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(I8255A_TAG, i8255_device, pc4_w),
	DEVCB_NULL,
	DEVCB_NULL
};

/* Z80-CTC Interface */

static WRITE_LINE_DEVICE_HANDLER( ctc_z0_w )
{
}
示例#15
0
/*************************************
 *
 *  Venture, etc.
 *
 *************************************/

static const pia6821_interface venture_pia0_intf =
{
	DEVCB_NULL,		/* port A in */
	DEVCB_NULL,		/* port B in */
	DEVCB_NULL,		/* line CA1 in */
	DEVCB_NULL,		/* line CB1 in */
	DEVCB_NULL,		/* line CA2 in */
	DEVCB_NULL,		/* line CB2 in */
	DEVCB_DEVICE_HANDLER("pia1", pia6821_portb_w),		/* port A out */
	DEVCB_DEVICE_HANDLER("pia1", pia6821_porta_w),		/* port B out */
	DEVCB_DEVICE_HANDLER("pia1", pia6821_cb1_w),		/* line CA2 out */
	DEVCB_DEVICE_HANDLER("pia1", pia6821_ca1_w),		/* port CB2 out */
	DEVCB_NULL,		/* IRQA */
	DEVCB_NULL		/* IRQB */
};


static const pia6821_interface venture_pia1_intf =
{
	DEVCB_NULL,		/* port A in */
	DEVCB_NULL,		/* port B in */
	DEVCB_NULL,		/* line CA1 in */
	DEVCB_NULL,		/* line CB1 in */
	DEVCB_NULL,		/* line CA2 in */
示例#16
0
	tms5220_rsq_w(device, (data & 2)>>1);
	/* handle 5220 write */
	tms5220_wsq_w(device, (data & 1)>>0);
}


WRITE_LINE_MEMBER(starwars_state::snd_interrupt)
{
	machine().device("audiocpu")->execute().set_input_line(M6809_IRQ_LINE, state);
}


const riot6532_interface starwars_riot6532_intf =
{
	DEVCB_DRIVER_MEMBER(starwars_state,r6532_porta_r),
	DEVCB_DEVICE_HANDLER("tms", tms5220_status_r),
	DEVCB_DRIVER_MEMBER(starwars_state,r6532_porta_w),
	DEVCB_DEVICE_HANDLER("tms", tms5220_data_w),
	DEVCB_DRIVER_LINE_MEMBER(starwars_state,snd_interrupt)
};




/*************************************
 *
 *  Sound CPU to/from main CPU
 *
 *************************************/

static TIMER_CALLBACK( sound_callback )
示例#17
0
    64*8
};

static GFXDECODE_START( flstory )
GFXDECODE_ENTRY( "gfx1", 0, charlayout,     0, 16 )
GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 256, 16 )
GFXDECODE_END


static const ay8910_interface ay8910_config =
{
    AY8910_LEGACY_OUTPUT,
    AY8910_DEFAULT_LOADS,
    DEVCB_NULL,
    DEVCB_NULL,
    DEVCB_DEVICE_HANDLER("aysnd", sound_control_2_w),
    DEVCB_HANDLER(sound_control_3_w)
};

static const msm5232_interface msm5232_config =
{
    { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 }	/* 1.0 uF capacitors (verified on real PCB) */
};


static MACHINE_START( flstory )
{
    flstory_state *state = (flstory_state *)machine->driver_data;

    state->maincpu = devtag_get_device(machine, "maincpu");
    state->audiocpu = devtag_get_device(machine, "audiocpu");
示例#18
0
/*************************************
 *
 *  Venture, etc.
 *
 *************************************/

static const pia6821_interface venture_pia0_intf =
{
	DEVCB_NULL,		/* port A in */
	DEVCB_NULL,		/* port B in */
	DEVCB_NULL,		/* line CA1 in */
	DEVCB_NULL,		/* line CB1 in */
	DEVCB_NULL,		/* line CA2 in */
	DEVCB_NULL,		/* line CB2 in */
	DEVCB_DEVICE_HANDLER("pia1", pia6821_portb_w),		/* port A out */
	DEVCB_DEVICE_HANDLER("pia1", pia6821_porta_w),		/* port B out */
	DEVCB_DEVICE_LINE("pia1", pia6821_cb1_w),		/* line CA2 out */
	DEVCB_DEVICE_LINE("pia1", pia6821_ca1_w),		/* port CB2 out */
	DEVCB_NULL,		/* IRQA */
	DEVCB_NULL		/* IRQB */
};


static const pia6821_interface venture_pia1_intf =
{
	DEVCB_NULL,		/* port A in */
	DEVCB_NULL,		/* port B in */
	DEVCB_NULL,		/* line CA1 in */
	DEVCB_NULL,		/* line CB1 in */
	DEVCB_NULL,		/* line CA2 in */
示例#19
0
MACHINE_RESET_MEMBER(cdtv_state,cdtv)
{
	MACHINE_RESET_CALL_MEMBER( amiga );

	/* initialize the cdrom controller */
	MACHINE_RESET_CALL_LEGACY( amigacd );
}

static const legacy_mos6526_interface cia_0_ntsc_intf =
{
	DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_0_irq),                            /* irq_func */
	DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, write_strobe),    /* pc_func */
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("cia_0", amiga_cia_0_portA_r),
	DEVCB_DEVICE_HANDLER("cia_0", amiga_cia_0_portA_w),                     /* port A */
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER("cent_data_out", output_latch_device, write) /* port B */
};

static const legacy_mos6526_interface cia_0_pal_intf =
{
	DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_0_irq),                            /* irq_func */
	DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, write_strobe),    /* pc_func */
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_HANDLER("cia_0", amiga_cia_0_portA_r),
	DEVCB_DEVICE_HANDLER("cia_0", amiga_cia_0_portA_w),                     /* port A */
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER("cent_data_out", output_latch_device, write) /* port B */
示例#20
0
		upd765_reset(m_fdc, 0);
	}

	/* ROM selection */
	memory_set_bank(machine(), "bank1", BIT(data, 6));

	/* printer strobe */
	centronics_strobe_w(m_centronics, BIT(data, 7));
}

static I8255_INTERFACE( sf7000_ppi_intf )
{
	DEVCB_DRIVER_MEMBER(sf7000_state, ppi_pa_r),				// Port A read
	DEVCB_NULL,													// Port A write
	DEVCB_NULL,													// Port B read
	DEVCB_DEVICE_HANDLER(CENTRONICS_TAG, centronics_data_w),	// Port B write
	DEVCB_NULL,													// Port C read
	DEVCB_DRIVER_MEMBER(sf7000_state, ppi_pc_w)					// Port C write
};

/*-------------------------------------------------
    upd765_interface sf7000_upd765_interface
-------------------------------------------------*/

WRITE_LINE_MEMBER( sf7000_state::fdc_intrq_w )
{
	m_fdc_irq = state;
}

static const struct upd765_interface sf7000_upd765_interface =
{
示例#21
0
ADDRESS_MAP_END



/*************************************
 *
 *  Sound chip interfaces
 *
 *************************************/

static const ay8910_interface timeplt_ay8910_interface =
{
	AY8910_LEGACY_OUTPUT,
	AY8910_DEFAULT_LOADS,
	DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
	DEVCB_DEVICE_HANDLER("timeplt_audio", timeplt_portB_r),
	DEVCB_NULL,
	DEVCB_NULL
};



/*************************************
 *
 *  Machine drivers
 *
 *************************************/

MACHINE_CONFIG_FRAGMENT( timeplt_sound )

	/* basic machine hardware */
示例#22
0
	msm5205_reset_w(device, !(data & 0x01));
}

static WRITE8_DEVICE_HANDLER( ym2203_write_b )
{
	memory_set_bank(device->machine, "bank4", data & 0x0f);
}

static const ym2203_interface ym2203_config =
{
	{
		AY8910_LEGACY_OUTPUT,
		AY8910_DEFAULT_LOADS,
		DEVCB_NULL,
		DEVCB_NULL,
		DEVCB_DEVICE_HANDLER("msm", ym2203_write_a),
		DEVCB_HANDLER(ym2203_write_b),
	},
	ym2203_irq_handler
};

static void ashnojoe_vclk_cb( running_device *device )
{
	ashnojoe_state *state = device->machine->driver_data<ashnojoe_state>();
	if (state->msm5205_vclk_toggle == 0)
	{
		msm5205_data_w(device, state->adpcm_byte >> 4);
	}
	else
	{
		msm5205_data_w(device, state->adpcm_byte & 0xf);
示例#23
0
文件: esqmr.c 项目: antervud/MAMEHub
}

static READ16_DEVICE_HANDLER(esq5506_read_adc)
{
	return 0;
}

static const es5506_interface es5506_config =
{
	"waverom",  /* Bank 0 */
	"waverom2", /* Bank 1 */
	"waverom3", /* Bank 0 */
	"waverom4", /* Bank 1 */
	1,          /* channels */
	DEVCB_LINE(esq5506_otto_irq), /* irq */
	DEVCB_DEVICE_HANDLER(DEVICE_SELF, esq5506_read_adc)
};

static const es5506_interface es5506_2_config =
{
	"waverom",  /* Bank 0 */
	"waverom2", /* Bank 1 */
	"waverom3", /* Bank 0 */
	"waverom4", /* Bank 1 */
	1,          /* channels */
	DEVCB_NULL,
	DEVCB_NULL
};

static MACHINE_CONFIG_START( mr, esqmr_state )
	MCFG_CPU_ADD("maincpu", M68340, XTAL_16MHz)
示例#24
0
文件: pc.c 项目: risico/jsmess
	if (!state) st->m_dma_channel = channel;
}

static WRITE_LINE_DEVICE_HANDLER( pc_dack0_w ) { set_dma_channel(device, 0, state); }
static WRITE_LINE_DEVICE_HANDLER( pc_dack1_w ) { set_dma_channel(device, 1, state); }
static WRITE_LINE_DEVICE_HANDLER( pc_dack2_w ) { set_dma_channel(device, 2, state); }
static WRITE_LINE_DEVICE_HANDLER( pc_dack3_w ) { set_dma_channel(device, 3, state); }

I8237_INTERFACE( ibm5150_dma8237_config )
{
	DEVCB_DEVICE_LINE("dma8237", pc_dma_hrq_changed),
	DEVCB_DEVICE_LINE("dma8237", pc_dma8237_out_eop),
	DEVCB_DRIVER_MEMBER(pc_state, pc_dma_read_byte),
	DEVCB_DRIVER_MEMBER(pc_state, pc_dma_write_byte),
	{ DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_HANDLER("dma8237", pc_dma8237_fdc_dack_r), DEVCB_DEVICE_HANDLER("dma8237", pc_dma8237_hdc_dack_r) },
	{ DEVCB_DEVICE_HANDLER("dma8237", pc_dma8237_0_dack_w), DEVCB_NULL, DEVCB_DEVICE_HANDLER("dma8237", pc_dma8237_fdc_dack_w), DEVCB_DEVICE_HANDLER("dma8237", pc_dma8237_hdc_dack_w) },
	{ DEVCB_DEVICE_LINE("dma8237", pc_dack0_w), DEVCB_DEVICE_LINE("dma8237", pc_dack1_w), DEVCB_DEVICE_LINE("dma8237", pc_dack2_w), DEVCB_DEVICE_LINE("dma8237", pc_dack3_w) }
};


/*************************************************************
 *
 * pic8259 configuration
 *
 *************************************************************/

const struct pic8259_interface ibm5150_pic8259_config =
{
	DEVCB_CPU_INPUT_LINE("maincpu", 0),
	DEVCB_LINE_VCC,