Пример #1
0
 *
 * Keyboard
 *
 *************************************************************/

READ8_MEMBER(pcat_base_state::get_out2)
{
	return m_pit8254->get_output(2);
}

static const struct kbdc8042_interface at8042 =
{
	KBDC8042_AT386,
	DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_RESET),
	DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_A20),
	DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir1_w),
	DEVCB_NULL,

	DEVCB_NULL,
	DEVCB_DRIVER_MEMBER(pcat_base_state,get_out2)
};

ADDRESS_MAP_START( pcat32_io_common, AS_IO, 32, pcat_base_state )
	AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffffffff)
	AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_device, read, write, 0xffffffff)
	AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffffffff)
	AM_RANGE(0x0060, 0x006f) AM_DEVREADWRITE8("kbdc", kbdc8042_device, data_r, data_w, 0xffffffff)
	AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffffffff)
	AM_RANGE(0x0080, 0x009f) AM_READWRITE8(dma_page_select_r,dma_page_select_w, 0xffffffff)//TODO
	AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_2", pic8259_device, read, write, 0xffffffff)
	AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffffffff)
Пример #2
0
    port B:
        bits 7-0: input/output: pbus
    port C:
        CA1: N/C
        CA2: input: "TDISP" (one of the higher bits in the video line counter, a mirror of the D5 bit from beezer_line_r), done in /video/beezer.c
        CB1: ASH1 to via 1
        CB2: ASH2 to via 1
    /IRQ: to main m6809 cpu
    /RES: from main reset generator/watchdog/button

    TODO: find a better way to attach ca2 read to beezer_line_r
    */
const via6522_interface b_via_0_interface =
{
	/*inputs : A/B         */ DEVCB_HANDLER(b_via_0_pa_r), DEVCB_HANDLER(b_via_0_pb_r),
	/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_DEVICE_LINE_MEMBER("via6522_1", via6522_device, read_ca2), DEVCB_LINE(b_via_0_ca2_r), DEVCB_DEVICE_LINE_MEMBER("via6522_1", via6522_device, read_ca1),
	/*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_NULL, DEVCB_DEVICE_LINE_MEMBER("via6522_1", via6522_device, write_ca1),
	/*irq                  */ DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE)
};

/* VIA 1 (U18 @3C on schematics)
    port A:
        bits 7-0: input/output: pbus
    port B:
        bit 7: output: TIMER1 OUT (used to gate NOISE (see below) to clock channel 1 of 6840, plus acts as channel 0 by itself)
        bit 6: input: NOISE (from mm5837 14-bit LFSR, which also connects to clock above)
        bit 5: output?: N/C
        bit 4: output?: FMSEL1 (does not appear elsewhere on schematics! what does this do? needs tracing) - always 0?
        bit 3: output?: FMSEL0 (does not appear elsewhere on schematics! what does this do? needs tracing) - always 0?
        bit 2: output?: AM (does not appear elsewhere on schematics! what does this do? needs tracing) - always 0?
Пример #3
0
static GFXDECODE_START( pcmda )
	GFXDECODE_ENTRY( "mda:gfx1", 0x0000, pc_16_charlayout, 1, 1 )
	GFXDECODE_ENTRY( "mda:gfx1", 0x1000, pc_8_charlayout, 1, 1 )
GFXDECODE_END

static const mc6845_interface mc6845_mda_intf =
{
	MDA_SCREEN_NAME, /* screen number */
	9,                  /* number of pixels per video memory address */
	NULL,               /* begin_update */
	mda_update_row,     /* update_row */
	NULL,               /* end_update */
	DEVCB_NULL,             /* on_de_changed */
	DEVCB_NULL,             /* on_cur_changed */
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, isa8_mda_device, hsync_changed),    /* on_hsync_changed */
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, isa8_mda_device, vsync_changed),    /* on_vsync_changed */
	NULL
};

static WRITE_LINE_DEVICE_HANDLER(pc_cpu_line)
{
	isa8_mda_device *mda  = downcast<isa8_mda_device *>(device->owner());
	mda->m_isa->irq7_w(state);
}
static const pc_lpt_interface pc_lpt_config =
{
	DEVCB_LINE(pc_cpu_line)
};

Пример #4
0
	/* 1f */ "RESERVED"
};

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)
	},
Пример #5
0
}


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


static const huc6260_interface pce_huc6260_config =
{
    "screen",
    DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
    DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
    DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
    DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
};


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


static const huc6270_interface sgx_huc6270_1_config =
{
    0x10000,
    DEVCB_DRIVER_LINE_MEMBER(pce_state,pce_irq_changed)
Пример #6
0
static const i8271_interface fdc_intf =
{
	atom_8271_interrupt_callback,
	NULL,
	{ FLOPPY_0, FLOPPY_1 }
};

/*-------------------------------------------------
    centronics_interface atom_centronics_config
-------------------------------------------------*/

static const centronics_interface atom_centronics_config =
{
	FALSE,
	DEVCB_DEVICE_LINE_MEMBER(R6522_TAG, via6522_device, write_ca1),
	DEVCB_NULL,
	DEVCB_NULL
};

/*-------------------------------------------------
    FLOPPY_OPTIONS( atom )
-------------------------------------------------*/

static FLOPPY_OPTIONS_START( atom )
	FLOPPY_OPTION(atom, "dsk,40t", "Atom disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
		HEADS([1])
		TRACKS([40])
		SECTORS([10])
		SECTOR_LENGTH([256])
		FIRST_SECTOR_ID([0]))
Пример #7
0
#include "machine/null_modem.h"

const device_type NULL_MODEM = &device_creator<null_modem_device>;

null_modem_device::null_modem_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
	: device_t(mconfig, NULL_MODEM, "Null Modem", tag, owner, clock),
	  device_serial_port_interface(mconfig, *this),
	  m_bitbanger(*this, "bitbanger")
{
}

static struct _bitbanger_config null_modem_image_config =
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, null_modem_device, read),
	BITBANGER_MODEM,
	BITBANGER_9600,
	BITBANGER_0PERCENT
};

static MACHINE_CONFIG_FRAGMENT(null_modem_config)
	MCFG_BITBANGER_ADD("bitbanger", null_modem_image_config);
MACHINE_CONFIG_END

machine_config_constructor null_modem_device::device_mconfig_additions() const
{
	return MACHINE_CONFIG_NAME(null_modem_config);
}
Пример #8
0
WRITE_LINE_MEMBER( poly880_state::ctc_z0_w )
{
    // SEND
}

WRITE_LINE_MEMBER( poly880_state::ctc_z1_w )
{
}

static Z80CTC_INTERFACE( ctc_intf )
{
    DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),	/* interrupt handler */
                         DEVCB_DRIVER_LINE_MEMBER(poly880_state, ctc_z0_w),	/* ZC/TO0 callback */
                         DEVCB_DRIVER_LINE_MEMBER(poly880_state, ctc_z1_w),	/* ZC/TO1 callback */
                         DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF,z80ctc_device, trg3)    /* ZC/TO2 callback */
};

/* Z80-PIO Interface */

WRITE8_MEMBER( poly880_state::pio1_pa_w )
{
    /*

        bit     signal  description

        PA0     SD0     segment E
        PA1     SD1     segment D
        PA2     SD2     segment C
        PA3     SD3     segment P
        PA4     SD4     segment G
Пример #9
0
}

WRITE_LINE_MEMBER( pc1512_state::fdc_drq_w )
{
	m_ddrq = state;
	update_fdc_drq();
}


//-------------------------------------------------
//  ins8250_interface uart_intf
//-------------------------------------------------

static const ins8250_interface uart_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, write_txd),
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, write_dtr),
	DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, write_rts),
	DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir4_w),
	DEVCB_NULL,
	DEVCB_NULL
};


//-------------------------------------------------
//  centronics_interface centronics_intf
//-------------------------------------------------

void pc1512_state::update_ack()
{
	if (m_ack_int_enable)
Пример #10
0
*/

WRITE_LINE_MEMBER( s100_wunderbus_device::pic_int_w )
{
	m_bus->int_w(state);
}


//-------------------------------------------------
//  ins8250_interface ace1_intf
//-------------------------------------------------

static ins8250_interface ace1_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
	DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
	DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
	DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir3_w),
	DEVCB_NULL,
	DEVCB_NULL
};


//-------------------------------------------------
//  ins8250_interface ace2_intf
//-------------------------------------------------

static ins8250_interface ace2_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
Пример #11
0
/* Z80-CTC Interface */

WRITE_LINE_MEMBER(amu880_state::ctc_z0_w)
{
}

WRITE_LINE_MEMBER(amu880_state::ctc_z2_w)
{
	/* cassette transmit/receive clock */
}

static Z80CTC_INTERFACE( ctc_intf )
{
	DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0), /* interrupt handler */
	DEVCB_DRIVER_LINE_MEMBER(amu880_state,ctc_z0_w),    /* ZC/TO0 callback */
	DEVCB_DEVICE_LINE_MEMBER(Z80SIO_TAG, z80dart_device, rxtxcb_w),    /* ZC/TO1 callback */
	DEVCB_DRIVER_LINE_MEMBER(amu880_state,ctc_z2_w) /* ZC/TO2 callback */
};

/* Z80-PIO Interface */

static Z80PIO_INTERFACE( pio1_intf )
{
	DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0), /* callback when change interrupt status */
	DEVCB_NULL,                     /* port A read callback */
	DEVCB_NULL,                     /* port A write callback */
	DEVCB_NULL,                     /* portA ready active callback */
	DEVCB_NULL,                     /* port B read callback */
	DEVCB_NULL,                     /* port B write callback */
	DEVCB_NULL                      /* portB ready active callback */
};
Пример #12
0
WRITE_LINE_MEMBER( wangpc_state::pit2_w )
{
	if (state)
	{
		m_timer2_irq = 0;
		check_level1_interrupts();
	}
}

static const struct pit8253_interface pit_intf =
{
	{
		{
			500000,
			DEVCB_LINE_VCC,
			DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir0_w)
		}, {
			2000000,
			DEVCB_LINE_VCC,
			DEVCB_NULL
		}, {
			500000,
			DEVCB_LINE_VCC,
			DEVCB_DRIVER_LINE_MEMBER(wangpc_state, pit2_w)
		}
	}
};


//-------------------------------------------------
//  IM6402_INTERFACE( uart_intf )
Пример #13
0
	/* on line */
	data |= m_centronics_select << 4;

	/* busy */
	data |= m_centronics_busy << 5;

	return data;
}

static I8255A_INTERFACE( printer_8255_intf )
{
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER("cent_data_out", output_latch_device, write),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(CENTRONICS_TAG, centronics_device, write_strobe),
	DEVCB_DRIVER_MEMBER(xor100_state, i8255_pc_r),
	DEVCB_NULL
};

/* Z80-CTC Interface */

WRITE_LINE_MEMBER( xor100_state::ctc_z0_w )
{
}

WRITE_LINE_MEMBER( xor100_state::ctc_z1_w )
{
}

WRITE_LINE_MEMBER( xor100_state::ctc_z2_w )
Пример #14
0
	} else if(m_dma_channel == channel) {
		m_dma_channel = -1;
		if(m_cur_eop)
			m_isabus->eop_w(channel, CLEAR_LINE );
	}
}

WRITE_LINE_MEMBER( ibm5160_mb_device::pc_dack0_w ) { pc_select_dma_channel(0, state); }
WRITE_LINE_MEMBER( ibm5160_mb_device::pc_dack1_w ) { pc_select_dma_channel(1, state); }
WRITE_LINE_MEMBER( ibm5160_mb_device::pc_dack2_w ) { pc_select_dma_channel(2, state); }
WRITE_LINE_MEMBER( ibm5160_mb_device::pc_dack3_w ) { pc_select_dma_channel(3, state); }

I8237_INTERFACE( pc_dma8237_config )
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma_hrq_changed),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_out_eop),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma_read_byte),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma_write_byte),

	{ DEVCB_NULL,
	  DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_1_dack_r),
	  DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_2_dack_r),
	  DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_3_dack_r) },


	{ DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_0_dack_w),
	  DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_1_dack_w),
	  DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_2_dack_w),
	  DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_dma8237_3_dack_w) },
Пример #15
0
	set_sby(state);
}

WRITE_LINE_MEMBER(cpc_dkspeech_device::lrq_cb)
{
	set_lrq(state);
}

WRITE_LINE_MEMBER(cpc_dkspeech_device::sby_cb)
{
	set_sby(state);
}

static sp0256_interface sp0256_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER,cpc_ssa1_device,lrq_cb),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER,cpc_ssa1_device,sby_cb)
};

static sp0256_interface sp0256_dk_intf =
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER,cpc_dkspeech_device,lrq_cb),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER,cpc_dkspeech_device,sby_cb)
};

//-------------------------------------------------
//  Device ROM definition
//-------------------------------------------------

// Has no actual ROM, just that internal to the SP0256
ROM_START( cpc_ssa1 )
Пример #16
0
}

WRITE_LINE_MEMBER( c2040_device::rw_sel_w )
{
	// read/write select
	m_rw = state;

	update_gcr_data();
	m_via->write_cb1(ERROR);
}

static const via6522_interface via_intf =
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2040_device, via_pa_r),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, ready_r),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, err_r),
	DEVCB_NULL,
	DEVCB_NULL,

	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2040_device, via_pb_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, mode_sel_w),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, rw_sel_w),

	DEVCB_NULL
};

Пример #17
0
}


WRITE_LINE_MEMBER(pc_state::ibm5150_pit8253_out2_changed)
{
	pc_speaker_set_input( state );
}


const struct pit8253_interface ibm5150_pit8253_config =
{
	{
		{
			XTAL_14_31818MHz/12,                /* heartbeat IRQ */
			DEVCB_NULL,
			DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w)
		}, {
			XTAL_14_31818MHz/12,                /* dram refresh */
			DEVCB_NULL,
			DEVCB_DRIVER_LINE_MEMBER(pc_state,ibm5150_pit8253_out1_changed)
		}, {
			XTAL_14_31818MHz/12,                /* pio port c pin 4, and speaker polling enough */
			DEVCB_NULL,
			DEVCB_DRIVER_LINE_MEMBER(pc_state,ibm5150_pit8253_out2_changed)
		}
	}
};


/*
  On the PC Jr the input for clock 1 seems to be selectable
Пример #18
0
}

static I8255A_INTERFACE( ppi8255_intf_2 )
{
	DEVCB_NULL,     /* Port A read */
	DEVCB_NULL,     /* Port A write */
	DEVCB_NULL,     /* Port B read */
	DEVCB_NULL,     /* Port B write */
	DEVCB_DRIVER_MEMBER(pasopia_state, rombank_r),      /* Port C read */
	DEVCB_NULL      /* Port C write */
};

static Z80CTC_INTERFACE( ctc_intf )
{
	DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0),       // interrupt handler
	DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg1),        // ZC/TO0 callback
	DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg2),        // ZC/TO1 callback, beep interface
	DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg3)     // ZC/TO2 callback
};

READ8_MEMBER( pasopia_state::mux_r )
{
	return m_mux_data;
}

READ8_MEMBER( pasopia_state::keyb_r )
{
	const char *const keynames[3][4] = { { "KEY0", "KEY1", "KEY2", "KEY3" },
											{ "KEY4", "KEY5", "KEY6", "KEY7" },
											{ "KEY8", "KEY9", "KEYA", "KEYB" } };
	int i,j;
Пример #19
0
  ISA 8 bit Generic Communication Card

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

#include "isa_com.h"
#include "machine/ser_mouse.h"
#include "machine/terminal.h"
#include "machine/null_modem.h"
#include "machine/serial.h"
#include "machine/ins8250.h"

static const ins8250_interface genpc_com_interface[2]=
{
	{
		DEVCB_DEVICE_LINE_MEMBER("serport0", serial_port_device, tx),
		DEVCB_DEVICE_LINE_MEMBER("serport0", rs232_port_device, dtr_w),
		DEVCB_DEVICE_LINE_MEMBER("serport0", rs232_port_device, rts_w),
		DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, isa8_com_device, pc_com_interrupt_1),
		DEVCB_NULL,
		DEVCB_NULL
	},
	{
		DEVCB_DEVICE_LINE_MEMBER("serport1", serial_port_device, tx),
		DEVCB_DEVICE_LINE_MEMBER("serport1", rs232_port_device, dtr_w),
		DEVCB_DEVICE_LINE_MEMBER("serport1", rs232_port_device, rts_w),
		DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, isa8_com_device, pc_com_interrupt_2),
		DEVCB_NULL,
		DEVCB_NULL
	}/*,
    {
Пример #20
0
			video_ram_addr &= 0xfff;
		}
	}
}

static MC6845_INTERFACE( hd46505s_intf )
{
	false,
	10,
	NULL,
	victor9k_update_row,
	NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir7_w),
	NULL
};


//-------------------------------------------------
//  pit8253_interface pit_intf
//-------------------------------------------------

WRITE_LINE_MEMBER(victor9k_state::mux_serial_b_w)
{
}

WRITE_LINE_MEMBER(victor9k_state::mux_serial_a_w)
{
}
Пример #21
0
static ADDRESS_MAP_START( ct486_map, AS_PROGRAM, 32, ct486_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( ct486_io, AS_IO, 32, ct486_state )
	ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_END


//**************************************************************************
//  MACHINE DRIVERS
//**************************************************************************

static const at_keyboard_controller_interface keybc_intf =
{
	DEVCB_DEVICE_LINE_MEMBER("cs4031", cs4031_device, kbrst_w),
	DEVCB_DEVICE_LINE_MEMBER("cs4031", cs4031_device, gatea20_w),
	DEVCB_DEVICE_LINE_MEMBER("cs4031", cs4031_device, irq01_w),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, clock_write_from_mb),
	DEVCB_DEVICE_LINE_MEMBER("pc_kbdc", pc_kbdc_device, data_write_from_mb)
};

static const pc_kbdc_interface pc_kbdc_intf =
{
	DEVCB_DEVICE_LINE_MEMBER("keybc", at_keyboard_controller_device, keyboard_clock_w),
	DEVCB_DEVICE_LINE_MEMBER("keybc", at_keyboard_controller_device, keyboard_data_w)
};

static const isa16bus_interface isabus_intf =
{
Пример #22
0
#include "emu.h"
#include "machine/ne2000.h"

static const dp8390_interface ne2000_dp8390_interface = {
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, ne2000_device, ne2000_irq_w),
	DEVCB_NULL,
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ne2000_device, ne2000_mem_read),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, ne2000_device, ne2000_mem_write)
};

static MACHINE_CONFIG_FRAGMENT(ne2000_config)
	MCFG_DP8390D_ADD("dp8390d", ne2000_dp8390_interface)
MACHINE_CONFIG_END

const device_type NE2000 = &device_creator<ne2000_device>;

machine_config_constructor ne2000_device::device_mconfig_additions() const {
	return MACHINE_CONFIG_NAME(ne2000_config);
}

ne2000_device::ne2000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
		: device_t(mconfig, NE2000, "NE2000 Network Adapter", tag, owner, clock),
		device_isa16_card_interface(mconfig, *this),
		m_dp8390(*this, "dp8390d") {
}

void ne2000_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);
Пример #23
0
//-------------------------------------------------
//  Z80DART_INTERFACE( abc800_dart_intf )
//-------------------------------------------------

static Z80DART_INTERFACE( abc800_dart_intf )
{
	0, 0, 0, 0,

	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,

	DEVCB_DEVICE_LINE_MEMBER(ABC800_KEYBOARD_TAG, abc800_keyboard_device, txd_r),
	DEVCB_DEVICE_LINE_MEMBER(ABC800_KEYBOARD_TAG, abc800_keyboard_device, rxd_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,

	DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
};


//-------------------------------------------------
//  Z80DART_INTERFACE( abc802_dart_intf )
//-------------------------------------------------

WRITE_LINE_MEMBER( abc802_state::lrs_w )
Пример #24
0
static GROM_CONFIG(grom2_config)
{
	false, 2, region_grom, 0x4000, 0x1800, DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_grom), GROMFREQ
};

static GROMPORT_CONFIG(console_cartslot)
{
	DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_cart),
	DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_reset)
};

static PERIBOX_CONFIG( peribox_conf )
{
	DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, extint),            // INTA
	DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, notconnected),  // INTB
	DEVCB_DEVICE_LINE_MEMBER(DATAMUX_TAG, ti99_datamux_device, ready_line), // READY
	0x70000                                             // Address bus prefix (AMA/AMB/AMC)
};

static TI_SOUND_CONFIG( sound_conf )
{
	DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_sound)  // READY
};

READ8_MEMBER( ti99_4x_state::cruread )
{
//  if (TRACE_CRU) LOG("read access to CRU address %04x\n", offset << 4);
	UINT8 value = 0;

	// Similar to the bus8z_devices, just let the gromport and the p-box
	// decide whether they want to change the value at the CRU address
Пример #25
0

//-------------------------------------------------
//  MC146818_INTERFACE( rtc_intf )
//-------------------------------------------------

WRITE_LINE_MEMBER( e01_device::rtc_irq_w )
{
    m_rtc_irq = state;

    update_interrupts();
}

static mc146818_interface rtc_intf =
{
    DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, e01_device, rtc_irq_w)
};


//-------------------------------------------------
//  mc6854_interface adlc_intf
//-------------------------------------------------

WRITE_LINE_MEMBER( e01_device::adlc_irq_w )
{
    m_adlc_irq = state;

    update_interrupts();
}

READ_LINE_MEMBER( e01_device::econet_data_r )
Пример #26
0
}

TIMER_DEVICE_CALLBACK_MEMBER(h89_state::h89_irq_timer)
{
	if (m_port_f2 & 0x02)
		m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf);
}

WRITE8_MEMBER( h89_state::port_f2_w )
{
	m_port_f2 = data;
}

static const serial_terminal_interface terminal_intf =
{
	DEVCB_DEVICE_LINE_MEMBER("ins8250", ins8250_uart_device, rx_w)
};

static const ins8250_interface h89_ins8250_interface =
{
	DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, rx_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL
};

static MACHINE_CONFIG_START( h89, h89_state )
	/* basic machine hardware */
	MCFG_CPU_ADD("maincpu",Z80, XTAL_12_288MHz / 6)
Пример #27
0
	DEVCB_DRIVER_MEMBER(iq151_state, ppi_portc_r),
	DEVCB_DRIVER_MEMBER(iq151_state, ppi_portc_w)
};

static const cassette_interface iq151_cassette_interface =
{
	cassette_default_formats,
	NULL,
	(cassette_state)(CASSETTE_STOPPED),
	"iq151_cass",
	NULL
};

static const iq151cart_interface iq151_cart_interface =
{
	DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir0_w),
	DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir1_w),
	DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir2_w),
	DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir3_w),
	DEVCB_DEVICE_LINE_MEMBER("pic8259", pic8259_device, ir4_w),
	DEVCB_NULL
};

static SLOT_INTERFACE_START(iq151_cart)
	SLOT_INTERFACE("video32", IQ151_VIDEO32)            // video32
	SLOT_INTERFACE("video64", IQ151_VIDEO64)            // video64
	SLOT_INTERFACE("grafik" , IQ151_GRAFIK)             // Grafik
	SLOT_INTERFACE("disc2"  , IQ151_DISC2)              // Disc 2
	SLOT_INTERFACE("minigraf" , IQ151_MINIGRAF)         // Aritma Minigraf 0507
	SLOT_INTERFACE("ms151a" , IQ151_MS151A)             // MS151A XY Plotter
	SLOT_INTERFACE("staper" , IQ151_STAPER)             // STAPER
Пример #28
0
};

WRITE_LINE_MEMBER( apricot_state::apricot_pit8253_out1 )
{
	/* connected to the rs232c interface */
}

WRITE_LINE_MEMBER( apricot_state::apricot_pit8253_out2 )
{
	/* connected to the rs232c interface */
}

static const struct pit8253_interface apricot_pit8253_intf =
{
	{
		{ XTAL_4MHz / 16,      DEVCB_LINE_VCC, DEVCB_DEVICE_LINE_MEMBER("ic31", pic8259_device, ir6_w) },
		{ 0 /*XTAL_4MHz / 2*/, DEVCB_LINE_VCC, DEVCB_DRIVER_LINE_MEMBER(apricot_state, apricot_pit8253_out1) },
		{ 0 /*XTAL_4MHz / 2*/, DEVCB_LINE_VCC, DEVCB_DRIVER_LINE_MEMBER(apricot_state, apricot_pit8253_out2) }
	}
};

WRITE_LINE_MEMBER(apricot_state::apricot_sio_irq_w)
{
	m_pic->ir5_w(state);
}

static Z80SIO_INTERFACE( apricot_z80sio_intf )
{
	0, 0, 0, 0,

	DEVCB_NULL,
Пример #29
0
}

void ti_video_device::device_reset(void)
{
}

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

/*
    Sound subsystem.
    TODO: Seriously consider to simplify this by connecting to the datamux
    directly. We don't do anything reasonable here.
*/
static const sn76496_config sound_config =
{
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, ti_sound_system_device, sound_ready),
};

WRITE8_MEMBER( ti_sound_system_device::write )
{
	if (space.debugger_access()) return;
	m_sound_chip->write(space, 0, data);
}

void ti_sound_system_device::device_start(void)
{
	const ti_sound_config *conf = reinterpret_cast<const ti_sound_config *>(static_config());
	m_console_ready.resolve(conf->ready, *this);
	m_sound_chip = subdevice<sn76496_base_device>(TISOUNDCHIP_TAG);
}
Пример #30
0
READ_LINE_MEMBER( c2031_device::via0_ca1_r )
{
	return !m_bus->atn_r();
}

READ_LINE_MEMBER( c2031_device::via0_ca2_r )
{
	return get_device_number();
}

static const via6522_interface via0_intf =
{
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pa_r),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pb_r),
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_ca1_r),
	DEVCB_NULL,
	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_ca2_r),
	DEVCB_NULL,

	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pa_w),
	DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pb_w),
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL,
	DEVCB_NULL, // PLL SYN

	DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_irq_w)
};