//------------------------------------------------- static MACHINE_CONFIG_FRAGMENT( d9060 ) // DOS MCFG_CPU_ADD(M6502_DOS_TAG, M6502, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(d9060_main_mem) MCFG_RIOT6532_ADD(M6532_0_TAG, XTAL_4MHz/4, riot0_intf) MCFG_RIOT6532_ADD(M6532_1_TAG, XTAL_4MHz/4, riot1_intf) // controller MCFG_CPU_ADD(M6502_HDC_TAG, M6502, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(d9060_hdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_4MHz/4) MCFG_VIA6522_READPA_HANDLER(DEVREAD8(SASIBUS_TAG ":host", scsicb_device, scsi_data_r)) MCFG_VIA6522_READPB_HANDLER(READ8(base_d9060_device, via_pb_r)) MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(base_d9060_device, scsi_data_w)) MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(base_d9060_device, via_pb_w)) MCFG_VIA6522_CA2_HANDLER(WRITELINE(base_d9060_device, ack_w)) MCFG_VIA6522_CB2_HANDLER(WRITELINE(base_d9060_device, enable_w)) MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(M6502_HDC_TAG, m6502_device, irq_line)) MCFG_SCSIBUS_ADD(SASIBUS_TAG) MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", D9060HD, SCSI_ID_0) MCFG_SCSICB_ADD(SASIBUS_TAG ":host") MCFG_SCSICB_REQ_HANDLER(DEVWRITELINE(DEVICE_SELF_OWNER, base_d9060_device, req_w)) MACHINE_CONFIG_END //-------------------------------------------------
static MACHINE_CONFIG_START( niyanpai, niyanpai_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12288000/2) /* TMP68301, 6.144 MHz */ MCFG_CPU_PROGRAM_MAP(niyanpai_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", niyanpai_state, interrupt) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(niyanpai_state, tmp68301_parallel_port_w)) MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */ MCFG_Z80_DAISY_CHAIN(daisy_chain_sound) MCFG_CPU_PROGRAM_MAP(niyanpai_sound_map) MCFG_CPU_IO_MAP(niyanpai_sound_io_map) MCFG_TMPZ84C011_PORTD_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read)) MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(niyanpai_state, soundbank_w)) MCFG_TMPZ84C011_PORTB_WRITE_CB(DEVWRITE8("dac1", dac_device, write_unsigned8)) MCFG_TMPZ84C011_PORTC_WRITE_CB(DEVWRITE8("dac2", dac_device, write_unsigned8)) MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(niyanpai_state, soundlatch_clear_w)) MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3)) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024, 512) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(niyanpai_state, screen_update)
FLOPPY_FORMATS_MEMBER( isbc_208_device::floppy_formats ) FLOPPY_PC_FORMAT FLOPPY_FORMATS_END static SLOT_INTERFACE_START( isbc_208_floppies ) SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD ) SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) SLOT_INTERFACE_END static MACHINE_CONFIG_FRAGMENT( isbc_208 ) MCFG_DEVICE_ADD("dmac", AM9517A, XTAL_8MHz/4) MCFG_I8237_OUT_HREQ_CB(WRITELINE(isbc_208_device, hreq_w)) MCFG_I8237_OUT_EOP_CB(WRITELINE(isbc_208_device, out_eop_w)) MCFG_I8237_IN_MEMR_CB(READ8(isbc_208_device, dma_read_byte)) MCFG_I8237_OUT_MEMW_CB(WRITE8(isbc_208_device, dma_write_byte)) MCFG_I8237_IN_IOR_0_CB(DEVREAD8("fdc", i8272a_device, mdma_r)) MCFG_I8237_OUT_IOW_0_CB(DEVWRITE8("fdc", i8272a_device, mdma_w)) MCFG_I8272A_ADD("fdc", true) MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isbc_208_device, irq_w)) MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dmac", am9517a_device, dreq0_w)) MCFG_FLOPPY_DRIVE_ADD("fdc:0", isbc_208_floppies, "525dd", isbc_208_device::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", isbc_208_floppies, "525dd", isbc_208_device::floppy_formats) MACHINE_CONFIG_END DEVICE_ADDRESS_MAP_START( map, 8, isbc_208_device ) AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE("dmac", am9517a_device, read, write) AM_RANGE(0x10, 0x11) AM_DEVICE("fdc", i8272a_device, map) AM_RANGE(0x12, 0x15) AM_READWRITE(stat_r, aux_w) ADDRESS_MAP_END
WRITE16_MEMBER(taito_zoom_device::reg_address_w) { m_reg_address = data & 0xff; } /*************************************************************************** Machine Config ***************************************************************************/ MACHINE_CONFIG_FRAGMENT( taito_zoom_sound ) /* basic machine hardware */ MCFG_TAITO_ZOOM_ADD("taito_zoom") MCFG_CPU_ADD("mn10200", MN1020012A, XTAL_25MHz/2) MCFG_MN10200_READ_PORT_CB(1, DEVREAD8("taito_zoom", taito_zoom_device, tms_ctrl_r)) MCFG_MN10200_WRITE_PORT_CB(1, DEVWRITE8("taito_zoom", taito_zoom_device, tms_ctrl_w)) MCFG_CPU_PROGRAM_MAP(taitozoom_mn_map) MCFG_QUANTUM_TIME(attotime::from_hz(60000)) MCFG_ZSG2_ADD("zsg2", XTAL_25MHz) // we assume the parent machine has created lspeaker/rspeaker MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END
// 12MHz XTAL @ X1 // Toshiba TMPZ84C015AF-6 (@U5) components: // - Z80 // - CTC // - SIO // - PIO // - CGC // - WDT MCFG_CPU_ADD("tmpz84_cpu", Z80, XTAL_12MHz/2) /* 6 MHz */ MCFG_CPU_PROGRAM_MAP(bm_012_memory_map) MCFG_CPU_IO_MAP(bm_012_io_map) MCFG_CPU_CONFIG(bm_012_daisy_chain) MCFG_DEVICE_ADD("tmpz84_pio", Z80PIO, XTAL_12MHz/2) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("tmpz84_cpu", INPUT_LINE_IRQ0)) MCFG_Z80PIO_IN_PA_CB(DEVREAD8("bm012_pio", z80pio_device, pa_r)) MCFG_Z80PIO_OUT_PA_CB(DEVWRITE8("bm012_pio", z80pio_device, pa_w)) MCFG_Z80PIO_IN_PB_CB(DEVREAD8("bm012_pio", z80pio_device, pb_r)) MCFG_Z80PIO_OUT_PB_CB(DEVWRITE8("bm012_pio", z80pio_device, pb_w)) MCFG_Z80PIO_OUT_BRDY_CB(DEVWRITELINE("bm012_pio", z80pio_device, strobe_b)) MCFG_DEVICE_ADD("tmpz84_ctc", Z80CTC, XTAL_12MHz/2) MCFG_Z80CTC_INTR_CB(INPUTLINE("tmpz84_cpu", INPUT_LINE_IRQ0)) MCFG_Z80SIO0_ADD("tmpz84_sio", XTAL_12MHz/2, 0, 0, 0, 0) MCFG_Z80DART_OUT_INT_CB(INPUTLINE("tmpz84_cpu", INPUT_LINE_IRQ0)) // Sony CXK5864BSP-10L (8KB ram) // Sharp LH0081A Z80A-PIO-0 - For communicating between the MSX and the TMP MCFG_DEVICE_ADD("bm012_pio", Z80PIO, XTAL_3_579545MHz) // ????? MCFG_Z80PIO_OUT_PA_CB(DEVWRITE8("tmpz84_pio", z80pio_device, pa_w))
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic_0", pic8259_device, inta_cb) MCFG_PIC8259_ADD("pic_0", INPUTLINE(":maincpu", 0), VCC, READ8(isbc_state, get_slave_ack)) MCFG_PIC8259_ADD("pic_1", DEVWRITELINE("pic_0", pic8259_device, ir7_w), GND, NULL) MCFG_DEVICE_ADD("pit", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL_22_1184MHz/18) MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic_0", pic8259_device, ir0_w)) MCFG_PIT8253_CLK1(XTAL_22_1184MHz/18) MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("uart8274", z80dart_device, rxtxcb_w)) MCFG_PIT8253_CLK2(XTAL_22_1184MHz/18) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(isbc_state, isbc286_tmr2_w)) MCFG_DEVICE_ADD("ppi", I8255A, 0) MCFG_I8255_OUT_PORTA_CB(DEVWRITE8("cent_data_out", output_latch_device, write)) MCFG_I8255_IN_PORTB_CB(DEVREAD8("cent_status_in", input_buffer_device, read)) MCFG_I8255_OUT_PORTC_CB(WRITE8(isbc_state, ppi_c_w)) MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(isbc_state, write_centronics_ack)) MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit7)) MCFG_CENTRONICS_FAULT_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit6)) MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_I8274_ADD("uart8274", XTAL_16MHz/4, 0, 0, 0, 0) MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_txd)) MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_dtr)) MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232a", rs232_port_device, write_rts))
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(suprridr_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", suprridr) MCFG_PALETTE_ADD("palette", 96) MCFG_PALETTE_INIT_OWNER(suprridr_state, suprridr) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay1", AY8910, XTAL_49_152MHz/32) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ADD("ay2", AY8910, XTAL_49_152MHz/32) MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0)) MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true) MACHINE_CONFIG_END /************************************* * * ROM definitions * *************************************/
MCFG_CPU_IO_MAP(josvolly_cpu2_io_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", josvolly_state, irq0_line_assert) MCFG_DEVICE_ADD("mcu1", I8741, 18000000/2) /* ? */ MCFG_MCS48_PORT_P1_IN_CB(READ8(josvolly_state, mcu1_p1_r)) MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(josvolly_state, mcu1_p1_w)) MCFG_MCS48_PORT_P2_IN_CB(READ8(josvolly_state, mcu1_p2_r)) MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(josvolly_state, mcu1_p2_w)) MCFG_DEVICE_ADD("mcu2", I8741, 12000000/2) /* ? */ MCFG_MCS48_PORT_P1_IN_CB(READ8(josvolly_state, mcu2_p1_r)) MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(josvolly_state, mcu2_p1_w)) MCFG_MCS48_PORT_P2_IN_CB(READ8(josvolly_state, mcu2_p2_r)) MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(josvolly_state, mcu2_p2_w)) // TEST0 and TEST1 are driven by P20 and P21 on the other MCU MCFG_MCS48_PORT_T0_IN_CB(DEVREAD8("mcu1", i8741_device, p2_r)) MCFG_DEVCB_RSHIFT(0) MCFG_MCS48_PORT_T1_IN_CB(DEVREAD8("mcu1", i8741_device, p2_r)) MCFG_DEVCB_RSHIFT(1) MCFG_DEVICE_ADD("aa_007", I8255, 0) MCFG_I8255_IN_PORTA_CB(IOPORT("IN1")) // 1PL MCFG_I8255_IN_PORTB_CB(IOPORT("IN2")) // 2PL / ACK MCFG_I8255_IN_PORTC_CB(IOPORT("IN0")) // START // the second MCU polls the first MCU's outputs, so it needs tight sync MCFG_QUANTUM_PERFECT_CPU("mcu2") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
/*************************************************************************** Machine Config ***************************************************************************/ static MACHINE_CONFIG_START( snmath, tispeak_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0270, MASTER_CLOCK/2) MCFG_TMS1XXX_READ_K_CB(READ8(tispeak_state, snspell_read_k)) MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, snmath_write_o)) MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tispeak_state, snspell_write_r)) MCFG_TMS0270_READ_CTL_CB(DEVREAD8("tms5100", tms5100_device, ctl_r)) MCFG_TMS0270_WRITE_CTL_CB(DEVWRITE8("tms5100", tms5100_device, ctl_w)) MCFG_TMS0270_WRITE_PDC_CB(DEVWRITELINE("tms5100", tms5100_device, pdc_w)) MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_snspell) // max 9 digits /* no video! */ /* sound hardware */ MCFG_DEVICE_ADD("tms6100", TMS6100, MASTER_CLOCK/4) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("tms5100", TMS5100, MASTER_CLOCK) MCFG_TMS5110_M0_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_m0_w)) MCFG_TMS5110_M1_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_m1_w))
MCFG_SCREEN_SIZE(78*6, 30*10) MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) MCFG_GFXDECODE_ADD("gfxdecode", "palette", partner) MCFG_PALETTE_ADD("palette", 3) MCFG_PALETTE_INIT_OWNER(partner_state,radio86) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_DEVICE_ADD("dma8257", I8257, XTAL_16MHz / 9) MCFG_I8257_OUT_HRQ_CB(WRITELINE(partner_state, hrq_w)) MCFG_I8257_IN_MEMR_CB(READ8(radio86_state, memory_read_byte)) MCFG_I8257_OUT_MEMW_CB(WRITE8(radio86_state, memory_write_byte)) MCFG_I8257_IN_IOR_0_CB(DEVREAD8("wd1793", fd1793_t, data_r)) MCFG_I8257_OUT_IOW_0_CB(DEVWRITE8("wd1793", fd1793_t, data_w)) MCFG_I8257_OUT_IOW_2_CB(DEVWRITE8("i8275", i8275_device, dack_w)) MCFG_I8257_REVERSE_RW_MODE(1) MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_FORMATS(rkp_cassette_formats) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED) MCFG_CASSETTE_INTERFACE("partner_cass") MCFG_SOFTWARE_LIST_ADD("cass_list","partner_cass") MCFG_FD1793_ADD("wd1793", XTAL_16MHz / 16) MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("dma8257", i8257_device, dreq0_w)) MCFG_FLOPPY_DRIVE_ADD("wd1793:0", partner_floppies, "525qd", partner_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd1793:1", partner_floppies, "525qd", partner_state::floppy_formats)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", deadang) MCFG_PALETTE_ADD("palette", 2048) MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) MCFG_SEIBU_SOUND_CPU("audiocpu") MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1") MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ym1", ym2203_device, read)) MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ym1", ym2203_device, write)) MCFG_SOUND_ADD("ym1", YM2203, XTAL_14_31818MHz/4) MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) MCFG_SOUND_ADD("ym2", YM2203, XTAL_14_31818MHz/4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) MCFG_SOUND_ADD("adpcm1", SEIBU_ADPCM, 8000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_SOUND_ADD("adpcm2", SEIBU_ADPCM, 8000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MACHINE_CONFIG_END
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("sio1", z80dart_device, rxtxcb_w)) MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80DART_ADD("sio1", XTAL_8MHz / 2, 0, 0, 0, 0 ) MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_8MHz / 2) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // MCFG_Z80PIO_OUT_PB_CB(WRITE8(rc702_state, portxx_w)) // parallel port MCFG_DEVICE_ADD("dma", AM9517A, XTAL_8MHz / 2) MCFG_I8237_OUT_HREQ_CB(WRITELINE(rc702_state, busreq_w)) MCFG_I8237_OUT_EOP_CB(WRITELINE(rc702_state, tc_w)) // inverted MCFG_I8237_IN_MEMR_CB(READ8(rc702_state, memory_read_byte)) MCFG_I8237_OUT_MEMW_CB(WRITE8(rc702_state, memory_write_byte)) MCFG_I8237_IN_IOR_1_CB(DEVREAD8("fdc", upd765a_device, mdma_r)) MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8("fdc", upd765a_device, mdma_w)) MCFG_I8237_OUT_IOW_2_CB(DEVWRITE8("crtc", i8275_device, dack_w)) MCFG_I8237_OUT_IOW_3_CB(DEVWRITE8("crtc", i8275_device, dack_w)) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(rc702_state, dack1_w)) // inverted MCFG_UPD765A_ADD("fdc", false, true) MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE("ctc1", z80ctc_device, trg3)) MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dma", am9517a_device, dreq1_w)) MCFG_FLOPPY_DRIVE_ADD("fdc:0", floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) /* Keyboard */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) MCFG_GENERIC_KEYBOARD_CB(WRITE8(rc702_state, kbd_put))
MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intv) MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE) MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE-1) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD("palette", 0x400) MCFG_PALETTE_INDIRECT_ENTRIES(32) MCFG_PALETTE_INIT_OWNER(intv_state, intv) MCFG_INTV_CONTROL_PORT_ADD("iopt_right_ctrl", intv_control_port_devices, "handctrl") MCFG_INTV_CONTROL_PORT_ADD("iopt_left_ctrl", intv_control_port_devices, "handctrl") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay8914", AY8914, XTAL_3_579545MHz/2) MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("iopt_right_ctrl", intv_control_port_device, ctrl_r)) MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("iopt_left_ctrl", intv_control_port_device, ctrl_r)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33) /* cartridge */ MCFG_INTV_CARTRIDGE_ADD("cartslot", intv_cart, nullptr) /* software lists */ MCFG_SOFTWARE_LIST_ADD("cart_list", "intv") MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("ecs_list", "intvecs") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( intv2, intv ) MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_PROGRAM_MAP(intv2_mem) MACHINE_CONFIG_END
} /************************************* * * Speech board machine drivers * *************************************/ MACHINE_CONFIG_START(segag80snd_common::sega_speech_board) /* CPU for the speech board */ MCFG_CPU_ADD("audiocpu", I8035, SPEECH_MASTER_CLOCK) /* divide by 15 in CPU */ MCFG_CPU_PROGRAM_MAP(speech_map) MCFG_CPU_IO_MAP(speech_portmap) MCFG_MCS48_PORT_P1_IN_CB(DEVREAD8("segaspeech", speech_sound_device, p1_r)) MCFG_MCS48_PORT_P1_OUT_CB(DEVWRITE8("segaspeech", speech_sound_device, p1_w)) MCFG_MCS48_PORT_P2_OUT_CB(DEVWRITE8("segaspeech", speech_sound_device, p2_w)) MCFG_MCS48_PORT_T0_IN_CB(DEVREADLINE("segaspeech", speech_sound_device, t0_r)) MCFG_MCS48_PORT_T1_IN_CB(DEVREADLINE("segaspeech", speech_sound_device, t1_r)) /* sound hardware */ MCFG_SOUND_ADD("segaspeech", SEGASPEECH, 0) MCFG_SOUND_ADD("speech", SP0250, SPEECH_MASTER_CLOCK) MCFG_SP0250_DRQ_CALLBACK(DEVWRITELINE("segaspeech", speech_sound_device, drq_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END /***************************************************************************
MCFG_DEVICE_MODIFY("melodypsg1") MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4g_porta_w)) MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.15, 0) MCFG_DEVICE_MODIFY("melodypsg2") MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4h_porta_w)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4h_portb_w)) MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.15, 0) MCFG_CPU_ADD("audiocpu", M6802, XTAL_3_579545MHz) // verified on pcb MCFG_CPU_PROGRAM_MAP(zac1b11142_audio_map) MCFG_CPU_PERIODIC_INT_DRIVER(zac1b11142_audio_device, input_poll, 60) MCFG_DEVICE_ADD("pia_1i", PIA6821, 0) MCFG_PIA_READPA_HANDLER(DEVREAD8("speech", tms5220_device, status_r)) MCFG_PIA_WRITEPA_HANDLER(DEVWRITE8("speech", tms5220_device, data_w)) MCFG_PIA_WRITEPB_HANDLER(WRITE8(zac1b11142_audio_device, pia_1i_portb_w)) MCFG_DAC_ADD("dac_1f") MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.80, 0) // There is no xtal, the clock is obtained from a RC oscillator as shown in the TMS5220 datasheet (R=100kOhm C=22pF) // 162kHz measured on pin 3 20 minutes after power on, clock would then be 162.3*4=649.2kHz MCFG_SOUND_ADD("speech", TMS5200, 649200) // ROMCLK pin measured at 162.3Khz, OSC is exactly *4 of that) MCFG_TMS52XX_IRQ_HANDLER(DEVWRITELINE("pia_1i", pia6821_device, cb1_w)) MCFG_TMS52XX_READYQ_HANDLER(DEVWRITELINE("pia_1i", pia6821_device, ca2_w)) MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.80, 0) MACHINE_CONFIG_END
MCFG_PIT68230_PC_INPUT_CB(READ8(fccpu30_state, pit1c_r)) MCFG_PIT68230_PC_OUTPUT_CB(WRITE8(fccpu30_state, pit1c_w)) // MCFG_PIT68230_OUT_INT_CB(DEVWRITELINE("fga002", fga002_device, lirq2_w)) // Interrupts not yet supported by 68230 MCFG_DEVICE_ADD ("pit2", PIT68230, XTAL_16MHz / 2) // Th PIT clock is not verified on schema but reversed from behaviour MCFG_PIT68230_PB_INPUT_CB(READ8(fccpu30_state, board_mem_id_rd)) MCFG_PIT68230_PA_INPUT_CB(READ8(fccpu30_state, pit2a_r)) MCFG_PIT68230_PA_OUTPUT_CB(WRITE8(fccpu30_state, pit2a_w)) MCFG_PIT68230_PC_INPUT_CB(READ8(fccpu30_state, pit2c_r)) MCFG_PIT68230_PC_OUTPUT_CB(WRITE8(fccpu30_state, pit2c_w)) // MCFG_PIT68230_OUT_INT_CB(DEVWRITELINE("fga002", fga002_device, lirq3_w)) // Interrupts not yet supported by 68230 /* FGA-002, Force Gate Array */ MCFG_FGA002_ADD("fga002", 0) MCFG_FGA002_OUT_INT_CB(WRITELINE(fccpu30_state, fga_irq_callback)) MCFG_FGA002_OUT_LIACK4_CB(DEVREAD8("duscc", duscc_device, iack)) MCFG_FGA002_OUT_LIACK5_CB(DEVREAD8("duscc2", duscc_device, iack)) MACHINE_CONFIG_END /* ROM definitions */ ROM_START (fccpu30) ROM_REGION32_BE(0x900000, "roms", 0) #if 1 // Boots with Board ID set to: 0x36 (FGA002 BOOT and VMEPROM on terminal P4) ROM_LOAD16_BYTE("CPU33LO.BIN", 0x000001, 0x40000, CRC (49895fdf) SHA1 (733abd144c95225a2faf920490e31df2a27f8e03)) ROM_LOAD16_BYTE("CPU33UP.BIN", 0x000000, 0x40000, CRC (cfe75e94) SHA1 (d40e0635a48607be25f7c58c74b53b7e58fe735d)) // Boots with Board ID set to: 0x36 (FGA002 BOOT on terminal P4, "Wait until harddisk is up to speed " on terminal P1) #else ROM_LOAD32_BYTE("CPU30LL.BIN", 0x000003, 0x20000, CRC (a03ebf46) SHA1 (48fa0268cb10e20679c093e02574dbd9925f95d1))
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette") MCFG_MC6845_ADD("ic30", HD6845, "screen", XTAL_15MHz / 10) MCFG_MC6845_SHOW_BORDER_AREA(false) MCFG_MC6845_CHAR_WIDTH(10) MCFG_MC6845_UPDATE_ROW_CB(apricot_state, crtc_update_row) MCFG_MC6845_OUT_DE_CB(WRITELINE(apricot_state, apricot_hd6845_de)) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ic7", SN76489, XTAL_4MHz / 2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) // devices MCFG_DEVICE_ADD("ic17", I8255A, 0) MCFG_I8255_IN_PORTA_CB(DEVREAD8("cent_data_in", input_buffer_device, read)) MCFG_I8255_OUT_PORTA_CB(DEVWRITE8("cent_data_out", output_latch_device, write)) MCFG_I8255_OUT_PORTB_CB(WRITE8(apricot_state, i8255_portb_w)) MCFG_I8255_IN_PORTC_CB(READ8(apricot_state, i8255_portc_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(apricot_state, i8255_portc_w)) MCFG_PIC8259_ADD("ic31", INPUTLINE("ic91", 0), VCC, NOOP) MCFG_DEVICE_ADD("ic16", PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_4MHz / 16) MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("ic31", pic8259_device, ir6_w)) MCFG_PIT8253_CLK1(XTAL_4MHz / 2) MCFG_PIT8253_OUT1_HANDLER(WRITELINE(apricot_state, timer_out1)) MCFG_PIT8253_CLK2(XTAL_4MHz / 2) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(apricot_state, timer_out2))
msx_cart_msx_audio_hxmu900::msx_cart_msx_audio_hxmu900(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, MSX_CART_MSX_AUDIO_HXMU900, "MSX Cartridge - MSX-AUDIO HX-MU900", tag, owner, clock, "msx_audio_hxmu900", __FILE__) , msx_cart_interface(mconfig, *this) , m_y8950(*this, "y8950") { } static MACHINE_CONFIG_FRAGMENT( msx_audio_hxmu900 ) // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("y8950", Y8950, XTAL_3_579545MHz) // Not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_Y8950_KEYBOARD_WRITE_HANDLER(DEVWRITE8("kbdc", msx_audio_kbdc_port_device, write)) MCFG_Y8950_KEYBOARD_READ_HANDLER(DEVREAD8("kbdc", msx_audio_kbdc_port_device, read)) MCFG_MSX_AUDIO_KBDC_PORT_ADD("kbdc", msx_audio_keyboards, NULL) MACHINE_CONFIG_END machine_config_constructor msx_cart_msx_audio_hxmu900::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_audio_hxmu900 ); } void msx_cart_msx_audio_hxmu900::device_start() { // Install IO read/write handlers address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO);
/* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK / 8) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_PERIODIC_INT_DRIVER(starwars_state, irq0_line_assert, CLOCK_3KHZ / 12) MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(CLOCK_3KHZ / 128)) MCFG_SLAPSTIC_ADD("slapstic") MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8) MCFG_CPU_PROGRAM_MAP(sound_map) MCFG_DEVICE_ADD("riot", RIOT6532, MASTER_CLOCK / 8) MCFG_RIOT6532_IN_PA_CB(READ8(starwars_state, r6532_porta_r)) MCFG_RIOT6532_OUT_PA_CB(WRITE8(starwars_state, r6532_porta_w)) MCFG_RIOT6532_IN_PB_CB(DEVREAD8("tms", tms5220_device, status_r)) MCFG_RIOT6532_OUT_PB_CB(DEVWRITE8("tms", tms5220_device, data_w)) MCFG_RIOT6532_IRQ_CB(WRITELINE(starwars_state, snd_interrupt)) MCFG_X2212_ADD_AUTOSAVE("x2212") /* nvram */ /* video hardware */ MCFG_VECTOR_ADD("vector") MCFG_SCREEN_ADD("screen", VECTOR) MCFG_SCREEN_REFRESH_RATE(CLOCK_3KHZ / 12 / 6) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 250, 0, 280) MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update) MCFG_DEVICE_ADD("avg", AVG_STARWARS, 0) MCFG_AVGDVG_VECTOR("vector")
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6202", huc6202_device, next_pixel)) MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6202", huc6202_device, time_until_next_event)) MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, vsync_changed)) MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, hsync_changed)) MCFG_DEVICE_ADD( "huc6270_0", HUC6270, 0 ) MCFG_HUC6270_VRAM_SIZE(0x10000) MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed)) MCFG_DEVICE_ADD( "huc6270_1", HUC6270, 0 ) MCFG_HUC6270_VRAM_SIZE(0x10000) MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed)) MCFG_DEVICE_ADD( "huc6202", HUC6202, 0 ) MCFG_HUC6202_NEXT_PIXEL_0_CB(DEVREAD16("huc6270_0", huc6270_device, next_pixel)) MCFG_HUC6202_TIME_TIL_NEXT_EVENT_0_CB(DEVREAD16("huc6270_0", huc6270_device, time_until_next_event)) MCFG_HUC6202_VSYNC_CHANGED_0_CB(DEVWRITELINE("huc6270_0", huc6270_device, vsync_changed)) MCFG_HUC6202_HSYNC_CHANGED_0_CB(DEVWRITELINE("huc6270_0", huc6270_device, hsync_changed)) MCFG_HUC6202_READ_0_CB(DEVREAD8("huc6270_0", huc6270_device, read)) MCFG_HUC6202_WRITE_0_CB(DEVWRITE8("huc6270_0", huc6270_device, write)) MCFG_HUC6202_NEXT_PIXEL_1_CB(DEVREAD16("huc6270_1", huc6270_device, next_pixel)) MCFG_HUC6202_TIME_TIL_NEXT_EVENT_1_CB(DEVREAD16("huc6270_1", huc6270_device, time_until_next_event)) MCFG_HUC6202_VSYNC_CHANGED_1_CB(DEVWRITELINE("huc6270_1", huc6270_device, vsync_changed)) MCFG_HUC6202_HSYNC_CHANGED_1_CB(DEVWRITELINE("huc6270_1", huc6270_device, hsync_changed)) MCFG_HUC6202_READ_1_CB(DEVREAD8("huc6270_1", huc6270_device, read)) MCFG_HUC6202_WRITE_1_CB(DEVWRITE8("huc6270_1", huc6270_device, write)) MCFG_DEVICE_ADD("rtc", MSM6242, XTAL_32_768kHz) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") MCFG_SOUND_ADD("c6280", C6280, PCE_MAIN_CLOCK/6) MCFG_C6280_CPU("maincpu") MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
//MCFG_I8237_IN_IOR_2_CB(NOOP) // RAM Refresh //MCFG_I8237_IN_IOR_3_CB(NOOP) //MCFG_I8237_OUT_IOW_0_CB(NOOP) //MCFG_I8237_OUT_IOW_1_CB(NOOP) // HDC //MCFG_I8237_OUT_IOW_2_CB(NOOP) // RAM Refresh //MCFG_I8237_OUT_IOW_3_CB(NOOP) MCFG_I8237_OUT_DACK_0_CB(WRITELINE(octopus_state, dack0_w)) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(octopus_state, dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(octopus_state, dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(octopus_state, dack3_w)) MCFG_DEVICE_ADD("dma2", AM9517A, XTAL_24MHz / 6) // 4MHz MCFG_I8237_OUT_HREQ_CB(WRITELINE(octopus_state, dma_hrq_changed)) MCFG_I8237_IN_MEMR_CB(READ8(octopus_state,dma_read)) MCFG_I8237_OUT_MEMW_CB(WRITE8(octopus_state,dma_write)) //MCFG_I8237_IN_IOR_0_CB(NOOP) MCFG_I8237_IN_IOR_1_CB(DEVREAD8("fdc",fd1793_t,data_r)) // FDC //MCFG_I8237_IN_IOR_2_CB(NOOP) //MCFG_I8237_IN_IOR_3_CB(NOOP) //MCFG_I8237_OUT_IOW_0_CB(NOOP) MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8("fdc",fd1793_t,data_w)) // FDC //MCFG_I8237_OUT_IOW_2_CB(NOOP) //MCFG_I8237_OUT_IOW_3_CB(NOOP) MCFG_I8237_OUT_DACK_0_CB(WRITELINE(octopus_state, dack4_w)) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(octopus_state, dack5_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(octopus_state, dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(octopus_state, dack7_w)) MCFG_PIC8259_ADD("pic_master", INPUTLINE("maincpu",0), VCC, READ8(octopus_state,get_slave_ack)) MCFG_PIC8259_ADD("pic_slave", DEVWRITELINE("pic_master",pic8259_device, ir7_w), GND, NOOP) // RTC (MC146818 via i8255 PPI)
AM_RANGE(0xfc, 0xff) AM_DEVREADWRITE("d8255_master", i8255_device, read, write) ADDRESS_MAP_END static SLOT_INTERFACE_START( sd725_floppies ) SLOT_INTERFACE("sd320", EPSON_SD_320) SLOT_INTERFACE_END static MACHINE_CONFIG_FRAGMENT(spc1000_fdd) /* sub CPU(5 inch floppy drive) */ MCFG_CPU_ADD("fdccpu", Z80, XTAL_4MHz) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(sd725_mem) MCFG_CPU_IO_MAP(sd725_io) MCFG_DEVICE_ADD("d8255_master", I8255, 0) MCFG_I8255_IN_PORTA_CB(DEVREAD8("d8255_master", i8255_device, pb_r)) MCFG_I8255_IN_PORTB_CB(DEVREAD8("d8255_master", i8255_device, pa_r)) MCFG_I8255_OUT_PORTB_CB(WRITE8(spc1000_fdd_exp_device, i8255_b_w)) MCFG_I8255_IN_PORTC_CB(READ8(spc1000_fdd_exp_device, i8255_c_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(spc1000_fdd_exp_device, i8255_c_w)) // floppy disk controller MCFG_UPD765A_ADD("upd765", true, true) MCFG_UPD765_INTRQ_CALLBACK(INPUTLINE("fdccpu", INPUT_LINE_IRQ0)) // floppy drives MCFG_FLOPPY_DRIVE_ADD("upd765:0", sd725_floppies, "sd320", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("upd765:1", sd725_floppies, "sd320", floppy_image_device::default_floppy_formats) MACHINE_CONFIG_END //-------------------------------------------------
MCFG_CPU_ADD("maincpu",Z80, XTAL_10MHz / 4) MCFG_CPU_PROGRAM_MAP(mycom_map) MCFG_CPU_IO_MAP(mycom_io) MCFG_DEVICE_ADD("ppi8255_0", I8255, 0) MCFG_I8255_OUT_PORTA_CB(WRITE8(mycom_state, mycom_04_w)) MCFG_I8255_IN_PORTB_CB(READ8(mycom_state, mycom_05_r)) MCFG_I8255_IN_PORTC_CB(READ8(mycom_state, mycom_06_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(mycom_state, mycom_06_w)) MCFG_DEVICE_ADD("ppi8255_1", I8255, 0) MCFG_I8255_IN_PORTA_CB(READ8(mycom_state, mycom_08_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(mycom_state, mycom_0a_w)) MCFG_DEVICE_ADD("ppi8255_2", I8255, 0) MCFG_I8255_IN_PORTB_CB(DEVREAD8("rtc", msm5832_device, data_r)) MCFG_I8255_OUT_PORTB_CB(DEVWRITE8("rtc", msm5832_device, data_w)) MCFG_I8255_OUT_PORTC_CB(WRITE8(mycom_state, mycom_rtc_w)) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 192-1) MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", mycom) /* Manual states clock is 1.008mhz for 40 cols, and 2.016 mhz for 80 cols. The CRTC is a HD46505S - same as a 6845. The start registers need to be readable. */
MCFG_Z80DART_OUT_DTRB_CB(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_dtr)) MCFG_Z80DART_OUT_RTSB_CB(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_rts)) MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(bullet_state, dartbrdy_w)) MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, XTAL_16MHz/4) MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT)) MCFG_Z80DMA_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) MCFG_Z80DMA_IN_MREQ_CB(READ8(bullet_state, dma_mreq_r)) MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(bullet_state, dma_mreq_w)) MCFG_Z80DMA_IN_IORQ_CB(READ8(bullet_state, io_read_byte)) MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(bullet_state, io_write_byte)) MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL_16MHz/4) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) MCFG_Z80PIO_IN_PA_CB(DEVREAD8("scsi_ctrl_in", input_buffer_device, read)) MCFG_Z80PIO_OUT_PA_CB(WRITE8(bulletf_state, pio_pa_w)) MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITE8("cent_data_out", output_latch_device, write)) MCFG_Z80PIO_OUT_BRDY_CB(WRITELINE(bulletf_state, cstrb_w)) MCFG_MB8877_ADD(MB8877_TAG, XTAL_16MHz/16) MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE(Z80DART_TAG, z80dart_device, rib_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bullet_state, fdc_drq_w)) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":0", bullet_525_floppies, "525qd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":1", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":2", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":3", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":4", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":5", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":6", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":7", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats)
MCFG_Z80CTC_ZC1_CB(WRITELINE(aussiebyte_state, ctc_z1_w)) // SIO1 Ch B, SIO2 Ch A MCFG_Z80CTC_ZC2_CB(WRITELINE(aussiebyte_state, ctc_z2_w)) // SIO2 Ch B, CTC Ch 3 MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz / 4) MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(aussiebyte_state, busreq_w)) // BAO, not used MCFG_Z80DMA_IN_MREQ_CB(READ8(aussiebyte_state, memory_read_byte)) MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(aussiebyte_state, memory_write_byte)) MCFG_Z80DMA_IN_IORQ_CB(READ8(aussiebyte_state, io_read_byte)) MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(aussiebyte_state, io_write_byte)) MCFG_DEVICE_ADD("pio1", Z80PIO, XTAL_16MHz / 4) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80PIO_OUT_PA_CB(DEVWRITE8("cent_data_out", output_latch_device, write)) MCFG_Z80PIO_IN_PB_CB(DEVREAD8("cent_data_in", input_buffer_device, read)) MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITELINE("centronics", centronics_device, write_strobe)) MCFG_DEVCB_INVERT MCFG_DEVICE_ADD("pio2", Z80PIO, XTAL_16MHz / 4) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80PIO_OUT_PA_CB(WRITE8(aussiebyte_state, port20_w)) MCFG_Z80SIO0_ADD("sio1", XTAL_16MHz / 4, 0, 0, 0, 0) MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio1_rdya_w)) MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio1_rdyb_w)) MCFG_Z80SIO0_ADD("sio2", XTAL_16MHz / 4, 0, 0, 0, 0) MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio2_rdya_w)) MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio2_rdyb_w))
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) MCFG_SEIBU_SOUND_CPU("audiocpu") MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1") MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read)) MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write)) MACHINE_CONFIG_END static MACHINE_CONFIG_START( sdgndmps, dcon_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) MCFG_CPU_PROGRAM_MAP(dcon_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dcon_state, irq4_line_hold) MCFG_CPU_ADD("audiocpu", Z80, 14318180/4) MCFG_CPU_PROGRAM_MAP(seibu_sound_map) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER)