Exemple #1
0
const float cs4031_device::m_dma_clock_divider[] =
{
	10, 8, 6, 0, 0, 0, 0, 0, 5, 4, 3, 2.5, 2, 1.5, 0, 0
};

//-------------------------------------------------
//  machine_config_additions - device-specific
//  machine configurations
//-------------------------------------------------

I8237_INTERFACE( dma1_config )
{
	DEVCB_DEVICE_LINE_MEMBER("dma2", am9517a_device, dreq0_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_eop_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma_read_byte),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma_write_byte),
	{
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_ior0_r),
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_ior1_r),
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_ior2_r),
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_ior3_r)
	},
	{
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_iow0_w),
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_iow1_w),
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_iow2_w),
		DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_iow3_w)
	},
	{
		DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cs4031_device, dma1_dack0_w),
Exemple #2
0
	update_iec();
}

READ_LINE_MEMBER( base_c1571_device::atn_in_r )
{
	return !m_bus->atn_r();
}

READ_LINE_MEMBER( base_c1571_device::wprt_r )
{
	return !floppy_wpt_r(m_image);
}

static const via6522_interface via0_intf =
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, via0_pa_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, via0_pb_r),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, atn_in_r),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, wprt_r),
	DEVCB_NULL,

	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, via0_pa_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, via0_pb_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,

	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, via0_irq_w)
};
Exemple #3
0
WRITE8_MEMBER(mz_state::mz800_z80pio_port_a_w)
{
	centronics_device *centronics = machine().device<centronics_device>("centronics");

	centronics->init_prime_w(BIT(data, 6));
	centronics->strobe_w(BIT(data, 7));
}

const z80pio_interface mz800_z80pio_config =
{
	DEVCB_DEVICE_LINE("z80pio", mz800_z80pio_irq),
	DEVCB_DRIVER_MEMBER(mz_state,mz800_z80pio_port_a_r),
	DEVCB_DRIVER_MEMBER(mz_state,mz800_z80pio_port_a_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER("centronics", centronics_device, write),
	DEVCB_NULL,
};




/* port CE */
READ8_MEMBER(mz_state::mz800_crtc_r)
{
	UINT8 data = 0x00;
	LOG(1,"mz800_crtc_r",("%02X\n",data),machine());
	return data;
}

Exemple #4
0
	    0
	    1       DIRECTION IN
	    2       -HSXSTB
	    3       STEP
	    4       HEAD SEL 2^0
	    5       HEAD SEL 2^1
	    6       HEAD SEL 2^2
	    7       REDUCE WR CURRENT

	*/
}

static Z80PIO_INTERFACE( pio0_intf )
{
	DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, imi5000h_device, pio0_pa_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, imi5000h_device, pio0_pa_w),
	DEVCB_DEVICE_LINE_MEMBER(Z80PIO_0_TAG, z80pio_device, strobe_a),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, imi5000h_device, pio0_pb_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, imi5000h_device, pio0_pb_w),
	DEVCB_DEVICE_LINE_MEMBER(Z80PIO_0_TAG, z80pio_device, strobe_b)
};


//-------------------------------------------------
//  Z80PIO_INTERFACE( pio2_intf )
//-------------------------------------------------

READ8_MEMBER( imi5000h_device::pio2_pa_r )
{
	/*
Exemple #5
0
	return 0xff;
}

WRITE8_MEMBER(pc9801_86_device::opn_portb_w){ m_joy_sel = data; }

WRITE_LINE_MEMBER(pc9801_86_device::pc9801_sound_irq)
{
	/* TODO: seems to die very often */
	machine().device<pic8259_device>(":pic8259_slave")->ir4_w(state);
}

static const ay8910_interface ay8910_config =
{
	AY8910_LEGACY_OUTPUT,
	AY8910_DEFAULT_LOADS,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, pc9801_86_device,opn_porta_r),
	DEVCB_NULL,//(pc9801_state,opn_portb_r),
	DEVCB_NULL,//(pc9801_state,opn_porta_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, pc9801_86_device,opn_portb_w),
};

static MACHINE_CONFIG_FRAGMENT( pc9801_86_config )
	MCFG_SPEAKER_STANDARD_MONO("mono")
	MCFG_SOUND_ADD("opna", YM2608, MAIN_CLOCK_X1*4) // unknown clock / divider
	MCFG_YM2608_IRQ_HANDLER(WRITELINE(pc9801_86_device, pc9801_sound_irq))
	MCFG_YM2608_AY8910_INTF(&ay8910_config)
	MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END

//-------------------------------------------------
//  machine_config_additions - device-specific
Exemple #6
0
WRITE_LINE_MEMBER( tek4051_state::gpib_pia_irqa_w )
{
    m_gpib_pia_irqa = state;
    update_irq();
}

WRITE_LINE_MEMBER( tek4051_state::gpib_pia_irqb_w )
{
    m_gpib_pia_irqb = state;
    update_irq();
}

static const pia6821_interface gpib_pia_intf =
{
    DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_r),
    DEVCB_DRIVER_MEMBER(tek4051_state, gpib_pia_pb_r),
    DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, eoi_r),
    DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, srq_r),
    DEVCB_NULL,
    DEVCB_NULL,
    DEVCB_DRIVER_MEMBER(tek4051_state, dio_w),
    DEVCB_DRIVER_MEMBER(tek4051_state, gpib_pia_pb_w),
    DEVCB_NULL,
    DEVCB_DRIVER_LINE_MEMBER(tek4051_state, talk_w),
    DEVCB_DRIVER_LINE_MEMBER(tek4051_state, gpib_pia_irqa_w),
    DEVCB_DRIVER_LINE_MEMBER(tek4051_state, gpib_pia_irqb_w)
};


//-------------------------------------------------
Exemple #7
0
}

READ8_MEMBER( hardbox_device::ppi0_pc_r )
{
	UINT8 data = ioport("SW1")->read();

	/* DIP switches on PC1,PC2,PC3 configure the IEEE-488 primary address.
	   We get the address from m_address instead. */
	data |= ((m_slot->get_address() - 8) << 1) ^ 0xff;

	return data;
}

static I8255A_INTERFACE( ppi0_intf )
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, hardbox_device, ppi0_pa_r),
	DEVCB_NULL, // Port A write
	DEVCB_NULL, // Port B read
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, hardbox_device, ppi0_pb_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, hardbox_device, ppi0_pc_r),
	DEVCB_NULL  // Port C write
};


//-------------------------------------------------
//  I8255A_INTERFACE( ppi1_intf )
//-------------------------------------------------

READ8_MEMBER( hardbox_device::ppi1_pa_r )
{
	/*
Exemple #8
0
		m_fdc->reset();
	}

	/* ROM selection */
	membank("bank1")->set_entry(BIT(data, 6));

	/* printer strobe */
	m_centronics->strobe_w(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_MEMBER(CENTRONICS_TAG, centronics_device, write),  // Port B write
	DEVCB_NULL,                                                 // Port C read
	DEVCB_DRIVER_MEMBER(sf7000_state, ppi_pc_w)                 // Port C write
};

//-------------------------------------------------
//  i8251_interface usart_intf
//-------------------------------------------------

static const i8251_interface usart_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx),
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, dsr_r),
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, dtr_w),
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, rts_w),
Exemple #9
0
        PB2     DO2
        PB3     DO3
        PB4     DO4
        PB5     DO5
        PB6     DO6
        PB7     DO7

    */

    m_bus->dio_w(this, data);
}


static const riot6532_interface riot0_intf =
{
    DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, dio_r),
    DEVCB_NULL,
    DEVCB_NULL,
    DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, dio_w),
    DEVCB_NULL
};


//-------------------------------------------------
//  riot6532_interface riot1_intf
//-------------------------------------------------

READ8_MEMBER( base_d9060_device::riot1_pa_r )
{
    /*
Exemple #10
0
    Currently only the printer is emulated

***************************************************************************/

#include "emu.h"
#include "iq151_staper.h"


/***************************************************************************
    IMPLEMENTATION
***************************************************************************/

static I8255_INTERFACE( iq151_staper_ppi_intf )
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, iq151_staper_device, ppi_porta_r),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, iq151_staper_device, ppi_portb_w),
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, iq151_staper_device, ppi_portc_w)
};

static MACHINE_CONFIG_FRAGMENT( iq151_staper )
	MCFG_I8255A_ADD("ppi8255", iq151_staper_ppi_intf)

	MCFG_PRINTER_ADD("printer")
MACHINE_CONFIG_END

//**************************************************************************
//  GLOBAL VARIABLES
Exemple #11
0
}

WRITE8_MEMBER( wdxt_gen_device::ram_w )
{
	m_ram[offset] = data;
}

static WD11C00_17_INTERFACE( host_intf )
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, wdxt_gen_device, irq5_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, wdxt_gen_device, drq3_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, wdxt_gen_device, mr_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_CPU_INPUT_LINE(WD1015_TAG, MCS48_INPUT_IRQ),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, wdxt_gen_device, rd322_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, wdxt_gen_device, ram_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, wdxt_gen_device, ram_w),
	DEVCB_DEVICE_MEMBER(WD2010A_TAG, wd2010_device, read),
	DEVCB_DEVICE_MEMBER(WD2010A_TAG, wd2010_device, write)
};


//-------------------------------------------------
//  WD2010_INTERFACE( hdc_intf )
//-------------------------------------------------

static WD2010_INTERFACE( hdc_intf )
{
	DEVCB_NULL,
	DEVCB_NULL,
Exemple #12
0
  ca2 ndac out
  cb1 srq in
  cb2 dav out
 */

WRITE_LINE_MEMBER(pet_state::pia1_irq_w)
{
	m_pia1_irq = state;
	int level = (m_pia0_irq | m_pia1_irq | m_via_irq) ? ASSERT_LINE : CLEAR_LINE;

	machine().firstcpu->set_input_line(INPUT_LINE_IRQ0, level);
}

const pia6821_interface pet_pia1 =
{
	DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_r),/* in_a_func */
	DEVCB_NULL,                             /* in_b_func */
	DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, atn_r),   /* in_ca1_func */
	DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, srq_r),   /* in_cb1_func */
	DEVCB_NULL,                             /* in_ca2_func */
	DEVCB_NULL,                             /* in_cb2_func */
	DEVCB_NULL,                             /* out_a_func */
	DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_w),                    /* out_b_func */
	DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, ndac_w),                  /* out_ca2_func */
	DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, dav_w),                   /* out_cb2_func */
	DEVCB_DRIVER_LINE_MEMBER(pet_state,pia1_irq_w),                 /* irq_a_func */
	DEVCB_DRIVER_LINE_MEMBER(pet_state,pia1_irq_w)                  /* irq_b_func */
};

/* userport, cassettes, rest ieee488
   ca1 userport
Exemple #13
0
{
	DEVCB_DRIVER_MEMBER(votrpss_state, ppi_pa_r),   // Port A read
	DEVCB_DRIVER_MEMBER(votrpss_state, ppi_pa_w),   // Port A write
	DEVCB_DRIVER_MEMBER(votrpss_state, ppi_pb_r),   // Port B read
	DEVCB_DRIVER_MEMBER(votrpss_state, ppi_pb_w),   // Port B write
	DEVCB_DRIVER_MEMBER(votrpss_state, ppi_pc_r),   // Port C read
	DEVCB_DRIVER_MEMBER(votrpss_state, ppi_pc_w),   // Port C write
};

static const ay8910_interface ay8910_intf =
{
	AY8910_LEGACY_OUTPUT,   // flags
	AY8910_DEFAULT_LOADS,   // channel load in ohms
	DEVCB_NULL,        // port A read
	DEVCB_INPUT_PORT("DSW1"),        // port B read
	DEVCB_DEVICE_MEMBER("votrax", votrax_sc01_device, write),     // port A write
	DEVCB_NULL      // port B write
};

static struct votrax_sc01_interface votrax_interface =
{
};

WRITE8_MEMBER( votrpss_state::kbd_put )
{
	m_term_data = data;
}

static GENERIC_TERMINAL_INTERFACE( terminal_intf )
{
	DEVCB_DRIVER_MEMBER(votrpss_state, kbd_put)
Exemple #14
0
	/* initialize the cdrom controller */
	MACHINE_RESET_CALL( amigacd );
}

static const mos6526_interface cia_0_ntsc_intf =
{
	60,														/* tod_clock */
	DEVCB_DEVICE_LINE("cia_0", amiga_cia_0_irq),							/* irq_func */
	DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, strobe_w),	/* 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("centronics", centronics_device, write)	/* port B */
};

static const mos6526_interface cia_0_pal_intf =
{
	50,														/* tod_clock */
	DEVCB_DEVICE_LINE("cia_0", amiga_cia_0_irq),							/* irq_func */
	DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, strobe_w),	/* 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("centronics", centronics_device, write)	/* port B */
};
Exemple #15
0
	m_centronics->write_init(BIT(data, 3));
}

WRITE_LINE_MEMBER( trs80m2_state::strobe_w )
{
	m_centronics->write_strobe(!state);
}

static Z80PIO_INTERFACE( pio_intf )
{
	DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),             // interrupt callback
	DEVCB_DRIVER_MEMBER(trs80m2_state, pio_pa_r),               // port A read callback
	DEVCB_DRIVER_MEMBER(trs80m2_state, pio_pa_w),               // port A write callback
	DEVCB_NULL,                                                 // port A ready callback
	DEVCB_NULL,                                                 // port B read callback
	DEVCB_DEVICE_MEMBER("cent_data_out", output_latch_device, write), // port B write callback
	DEVCB_DRIVER_LINE_MEMBER(trs80m2_state, strobe_w)           // port B ready callback
};


//-------------------------------------------------
//  Z80SIO_INTERFACE( sio_intf )
//-------------------------------------------------

static Z80SIO_INTERFACE( sio_intf )
{
	0, 0, 0, 0,

	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
Exemple #16
0
	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 */
};

static const legacy_mos6526_interface cia_1_intf =
Exemple #17
0
//  ASCII_KEYBOARD_INTERFACE( kb_intf )
//-------------------------------------------------

WRITE8_MEMBER( vp620_device::kb_w )
{
	m_keydata = data;

	m_slot->inst_w(0);
	m_slot->inst_w(1);

	m_keystb = ASSERT_LINE;
}

static ASCII_KEYBOARD_INTERFACE( kb_intf )
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, vp620_device, kb_w)
};


//-------------------------------------------------
//  MACHINE_CONFIG_FRAGMENT( vp620 )
//-------------------------------------------------

static MACHINE_CONFIG_FRAGMENT( vp620 )
	MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)
MACHINE_CONFIG_END


//-------------------------------------------------
//  machine_config_additions - device-specific
//  machine configurations
Exemple #18
0
	if (!state) m_dack = 2;
}

WRITE_LINE_MEMBER( wangpc_state::dack3_w )
{
	if (!state) m_dack = 3;
}

static AM9517A_INTERFACE( dmac_intf )
{
	DEVCB_DRIVER_LINE_MEMBER(wangpc_state, hrq_w),
	DEVCB_DRIVER_LINE_MEMBER(wangpc_state, eop_w),
	DEVCB_DRIVER_MEMBER(wangpc_state, memr_r),
	DEVCB_DRIVER_MEMBER(wangpc_state, memw_w),
	{ DEVCB_NULL,
	  DEVCB_DEVICE_MEMBER(WANGPC_BUS_TAG, wangpcbus_device, dack1_r),
	  DEVCB_DRIVER_MEMBER(wangpc_state, ior2_r),
	  DEVCB_DEVICE_MEMBER(WANGPC_BUS_TAG, wangpcbus_device, dack3_r) },
	{ DEVCB_NULL,
	  DEVCB_DEVICE_MEMBER(WANGPC_BUS_TAG, wangpcbus_device, dack1_w),
	  DEVCB_DRIVER_MEMBER(wangpc_state, iow2_w),
	  DEVCB_DEVICE_MEMBER(WANGPC_BUS_TAG, wangpcbus_device, dack3_w) },
	{ DEVCB_DRIVER_LINE_MEMBER(wangpc_state, dack0_w),
	  DEVCB_DRIVER_LINE_MEMBER(wangpc_state, dack1_w),
	  DEVCB_DRIVER_LINE_MEMBER(wangpc_state, dack2_w),
	  DEVCB_DRIVER_LINE_MEMBER(wangpc_state, dack3_w) }
};


//-------------------------------------------------
//  pic8259_interface pic_intf
Exemple #19
0

WRITE8_MEMBER(bking_state::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_MEMBER("dac", dac_device, write_signed8),
	DEVCB_DRIVER_MEMBER(bking_state,port_b_w)
};

static MACHINE_START( bking )
{
	bking_state *state = machine.driver_data<bking_state>();

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

	/* video */
	state->save_item(NAME(state->m_pc3259_output));
	state->save_item(NAME(state->m_pc3259_mask));
	state->save_item(NAME(state->m_xld1));
	state->save_item(NAME(state->m_xld2));
	state->save_item(NAME(state->m_xld3));
Exemple #20
0
}

WRITE_LINE_MEMBER( c64_magic_voice_cartridge_device::tpi_ca_w )
{
	m_tpi_pc6 = state;
}

WRITE_LINE_MEMBER( c64_magic_voice_cartridge_device::tpi_cb_w )
{
	m_exrom = state;
}

static const tpi6525_interface tpi_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_irq_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_pa_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_pa_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_pb_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_pb_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_ca_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_magic_voice_cartridge_device, tpi_cb_w),
};


//-------------------------------------------------
//  t6721_interface
//-------------------------------------------------

WRITE_LINE_MEMBER( c64_magic_voice_cartridge_device::phi2_w )
Exemple #21
0
	update_iec();
}

READ_LINE_MEMBER( c1571_device::atn_in_r )
{
	return !m_bus->atn_r();
}

READ_LINE_MEMBER( c1571_device::wprt_r )
{
	return !floppy_wpt_r(m_image);
}

static const via6522_interface via0_intf =
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pa_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pb_r),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, atn_in_r),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, wprt_r),
	DEVCB_NULL,

	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pa_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pb_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,

	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_irq_w)
};
Exemple #22
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_MEMBER(SN76489_TAG, sn76496_base_device, 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_MEMBER(SN76489_TAG, sn76496_base_device, write),       // 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
Exemple #23
0
	m_slot->nmi_w(state);
}

WRITE_LINE_MEMBER( c64_tdos_cartridge_device::dma_w )
{
	m_slot->dma_w(state);
}

WRITE_LINE_MEMBER( c64_tdos_cartridge_device::reset_w )
{
	m_slot->reset_w(state);
}

static C64_EXPANSION_INTERFACE( expansion_intf )
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_tdos_cartridge_device, dma_cd_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_tdos_cartridge_device, dma_cd_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_tdos_cartridge_device, irq_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_tdos_cartridge_device, nmi_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_tdos_cartridge_device, dma_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_tdos_cartridge_device, reset_w)
};


//-------------------------------------------------
//  MACHINE_CONFIG_FRAGMENT( c64_multiscreen )
//-------------------------------------------------

static MACHINE_CONFIG_FRAGMENT( c64_tdos )
	MCFG_MC6852_ADD(MC68A52P_TAG, XTAL_6_5MHz, ssda_intf)
	MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, tdos_floppy_interface)
Exemple #24
0

static const huc6270_interface sgx_huc6270_1_config =
{
	0x10000,
	DEVCB_DRIVER_LINE_MEMBER(pce_state,pce_irq_changed)
};


static const huc6202_interface sgx_huc6202_config =
{
	DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, next_pixel ),
	DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, time_until_next_event ),
	DEVCB_DEVICE_LINE_MEMBER( "huc6270_0", huc6270_device, vsync_changed ),
	DEVCB_DEVICE_LINE_MEMBER( "huc6270_0", huc6270_device, hsync_changed ),
	DEVCB_DEVICE_MEMBER( "huc6270_0", huc6270_device, read ),
	DEVCB_DEVICE_MEMBER( "huc6270_0", huc6270_device, write ),
	DEVCB_DEVICE_MEMBER16( "huc6270_1", huc6270_device, next_pixel ),
	DEVCB_DEVICE_MEMBER16( "huc6270_1", huc6270_device, time_until_next_event ),
	DEVCB_DEVICE_LINE_MEMBER( "huc6270_1", huc6270_device, vsync_changed ),
	DEVCB_DEVICE_LINE_MEMBER( "huc6270_1", huc6270_device, hsync_changed ),
	DEVCB_DEVICE_MEMBER( "huc6270_1", huc6270_device, read ),
	DEVCB_DEVICE_MEMBER( "huc6270_1", huc6270_device, write ),
};


static const huc6260_interface sgx_huc6260_config =
{
	DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, next_pixel ),
	DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, time_until_next_event ),
	DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, vsync_changed ),
  FssD0000 - 64k RAM buffer (used as DP83902 DMA target)
  FssE0000 - DP83902 registers

***************************************************************************/

#include "emu.h"
#include "machine/nubus_asntmc3b.h"

#define MAC8390_ROM_REGION  "asntm3b_rom"
#define MAC8390_839X  "dp83902"

static const dp8390_interface dp8390_interface =
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, nubus_mac8390_device, dp_irq_w),
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, nubus_mac8390_device, dp_mem_read),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, nubus_mac8390_device, dp_mem_write)
};

MACHINE_CONFIG_FRAGMENT( asntm3b )
	MCFG_DP8390D_ADD(MAC8390_839X, dp8390_interface)
MACHINE_CONFIG_END

ROM_START( asntm3nb )
	ROM_REGION(0x4000, MAC8390_ROM_REGION, 0)
	ROM_LOAD( "asante_mc3b.bin", 0x000000, 0x004000, CRC(4f86d451) SHA1(d0a41df667e6b51fbc63f9251d593f4fc49104ba) )
ROM_END

ROM_START( appleenet )
	ROM_REGION(0x4000, MAC8390_ROM_REGION, 0)
	ROM_LOAD( "aenet1",       0x000000, 0x004000, CRC(e3ae8c26) SHA1(01ddc15ee84b17128203cb812f29bac6b20fd642) )
Exemple #26
0
#include "emu.h"
#include "machine/ne1000.h"

static const dp8390_interface ne1000_dp8390_interface = {
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, ne1000_device, ne1000_irq_w),
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ne1000_device, ne1000_mem_read),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ne1000_device, ne1000_mem_write)
};

static MACHINE_CONFIG_FRAGMENT(ne1000_config)
	MCFG_DP8390D_ADD("dp8390d", ne1000_dp8390_interface)
MACHINE_CONFIG_END

const device_type NE1000 = &device_creator<ne1000_device>;

machine_config_constructor ne1000_device::device_mconfig_additions() const {
	return MACHINE_CONFIG_NAME(ne1000_config);
}

ne1000_device::ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
		: device_t(mconfig, NE1000, "NE1000 Network Adapter", tag, owner, clock),
		device_isa8_card_interface(mconfig, *this),
		m_dp8390(*this, "dp8390d") {
}

void ne1000_device::device_start() {
	char mac[7];
	UINT32 num = rand();
	memset(m_prom, 0x57, 16);
	sprintf(mac+2, "\x1b%c%c%c", (num >> 16) & 0xff, (num >> 8) & 0xff, num & 0xff);
Exemple #27
0
};

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_MEMBER("tms", tms5110_device, pdc_w),        /* tms pdc func */
	DEVCB_DEVICE_MEMBER("tms", tms5110_device, 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_MEMBER("tmsprom", tmsprom_device, m0_w),     /* the M0 line */
	DEVCB_NULL,                                     /* the M1 line */
	DEVCB_NULL,                                     /* Write to ADD1,2,4,8 - 4 address bits */
	DEVCB_DEVICE_LINE_MEMBER("tmsprom", tmsprom_device, data_r),   /* Read one bit from ADD8/Data - voice data */
	DEVCB_NULL                                      /* rom clock - Only used to drive the data lines */
};
Exemple #28
0
	m_sti->i4_w(m_ib);

	// keyboard buffer full
	m_kbf = BIT(data, 1);

	// PROF-80 interrupt
	m_ia = BIT(data, 3);
	m_sti->i7_w(m_ia);

	// PROF-80 handshaking
	m_ppi_pc = (!BIT(data, 7) << 7) | (!BIT(data, 5) << 6) | (m_ppi->pa_r() & 0x3f);
}

static I8255A_INTERFACE( ppi_intf )
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, grip_device, ppi_pa_r),  // Port A read
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, grip_device, ppi_pa_w),  // Port A write
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, grip_device, ppi_pb_r),  // Port B read
	DEVCB_NULL,                                                     // Port B write
	DEVCB_NULL,                                                     // Port C read
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, grip_device, ppi_pc_w)   // Port C write
};


//-------------------------------------------------
//  Z80STI_INTERFACE( sti_intf )
//-------------------------------------------------

READ8_MEMBER( grip_device::sti_gpio_r )
{
	/*
Exemple #29
0
WRITE_LINE_MEMBER( tmc1800_state::q_w )
{
	m_cassette->output(state ? 1.0 : -1.0);
}

static COSMAC_INTERFACE( tmc1800_config )
{
	DEVCB_LINE_VCC,
	DEVCB_DRIVER_LINE_MEMBER(tmc1800_state, clear_r),
	DEVCB_NULL,
	DEVCB_DRIVER_LINE_MEMBER(tmc1800_state, ef2_r),
	DEVCB_DRIVER_LINE_MEMBER(tmc1800_state, ef3_r),
	DEVCB_NULL,
	DEVCB_DRIVER_LINE_MEMBER(tmc1800_state, q_w),
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(CDP1861_TAG, cdp1861_device, dma_w),
	NULL,
	DEVCB_NULL,
	DEVCB_NULL
};

// Oscom 1000B

READ_LINE_MEMBER( osc1000b_state::clear_r )
{
	return BIT(m_run->read(), 0);
}

READ_LINE_MEMBER( osc1000b_state::ef2_r )
{
	return m_cassette->input() < 0;
Exemple #30
0
        PB2     DO2
        PB3     DO3
        PB4     DO4
        PB5     DO5
        PB6     DO6
        PB7     DO7

    */

	m_bus->dio_w(this, data);
}


static const riot6532_interface riot0_intf =
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, dio_r),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, dio_w),
	DEVCB_NULL
};


//-------------------------------------------------
//  riot6532_interface riot1_intf
//-------------------------------------------------

READ8_MEMBER( base_d9060_device::riot1_pa_r )
{
	/*