{ 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 }; /************************************* *
}; 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 */ };
}; 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 ) {
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,
{ /* 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 } };
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);
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
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)); }
{ /* 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 */
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 */
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 */ };
/* 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) {
/* 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 ) { }
/************************************* * * 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 */
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 )
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");
/************************************* * * 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 */
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 */
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 = {
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 */
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);
} 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)
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,