mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
i8155.cpp: deMCFGfied (nw)
This commit is contained in:
parent
d8c4c128c8
commit
d1f7028027
@ -35,33 +35,6 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_I8155_IN_PORTA_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_in_pa_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8155_IN_PORTB_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_in_pb_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8155_IN_PORTC_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_in_pc_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8155_OUT_PORTA_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_out_pa_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8155_OUT_PORTB_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_out_pb_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8155_OUT_PORTC_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_out_pc_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8155_OUT_TIMEROUT_CB(_devcb) \
|
||||
downcast<i8155_device &>(*device).set_out_to_callback(DEVCB_##_devcb);
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
@ -75,13 +48,6 @@ public:
|
||||
// construction/destruction
|
||||
i8155_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <class Object> devcb_base &set_in_pa_callback(Object &&cb) { return m_in_pa_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in_pb_callback(Object &&cb) { return m_in_pb_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in_pc_callback(Object &&cb) { return m_in_pc_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_pa_callback(Object &&cb) { return m_out_pa_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_pb_callback(Object &&cb) { return m_out_pb_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_pc_callback(Object &&cb) { return m_out_pc_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_to_callback(Object &&cb) { return m_out_to_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto in_pa_callback() { return m_in_pa_cb.bind(); }
|
||||
auto in_pb_callback() { return m_in_pb_cb.bind(); }
|
||||
auto in_pc_callback() { return m_in_pc_cb.bind(); }
|
||||
|
@ -558,17 +558,17 @@ MACHINE_CONFIG_START(amusco_state::amusco)
|
||||
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
|
||||
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
|
||||
|
||||
MCFG_DEVICE_ADD("lpt_interface", I8155, 0)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, amusco_state, lpt_data_w))
|
||||
MCFG_I8155_IN_PORTB_CB(READ8(*this, amusco_state, lpt_status_r))
|
||||
i8155_device &i8155a(I8155(config, "lpt_interface", 0));
|
||||
i8155a.out_pa_callback().set(FUNC(amusco_state::lpt_data_w));
|
||||
i8155a.in_pb_callback().set(FUNC(amusco_state::lpt_status_r));
|
||||
// Port C uses ALT 3 mode, which MAME does not currently emulate
|
||||
|
||||
MCFG_DEVICE_ADD("rtc", MSM5832, 32.768_kHz_XTAL)
|
||||
|
||||
MCFG_DEVICE_ADD("rtc_interface", I8155, 0)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, amusco_state, rtc_control_w))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8("rtc", msm5832_device, data_r))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8("rtc", msm5832_device, data_w))
|
||||
i8155_device &i8155b(I8155(config, "rtc_interface", 0));
|
||||
i8155b.out_pa_callback().set(FUNC(amusco_state::rtc_control_w));
|
||||
i8155b.in_pc_callback().set("rtc", FUNC(msm5832_device::data_r));
|
||||
i8155b.out_pc_callback().set("rtc", FUNC(msm5832_device::data_w));
|
||||
|
||||
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(30), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH)
|
||||
|
||||
|
@ -277,13 +277,13 @@ MACHINE_CONFIG_START(cp1_state::cp1)
|
||||
maincpu.t0_in_cb().set_log("t0_r");
|
||||
maincpu.t1_in_cb().set_log("t1_r");
|
||||
|
||||
MCFG_DEVICE_ADD("i8155", I8155, 0)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, cp1_state, i8155_porta_w))
|
||||
MCFG_I8155_IN_PORTB_CB(READ8(*this, cp1_state, i8155_portb_r))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, cp1_state, i8155_portb_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, cp1_state, i8155_portc_w))
|
||||
i8155_device &i8155(I8155(config, "i8155", 0));
|
||||
i8155.out_pa_callback().set(FUNC(cp1_state::i8155_porta_w));
|
||||
i8155.in_pb_callback().set(FUNC(cp1_state::i8155_portb_r));
|
||||
i8155.out_pb_callback().set(FUNC(cp1_state::i8155_portb_w));
|
||||
i8155.out_pc_callback().set(FUNC(cp1_state::i8155_portc_w));
|
||||
|
||||
MCFG_DEVICE_ADD("i8155_cp3", I8155, 0)
|
||||
I8155(config, "i8155_cp3", 0);
|
||||
|
||||
config.set_default_layout(layout_cp1);
|
||||
|
||||
|
@ -1047,11 +1047,11 @@ MACHINE_CONFIG_START(equites_state::common_sound)
|
||||
MCFG_DEVICE_IO_MAP(sound_portmap)
|
||||
MCFG_I8085A_CLK_OUT_DEVICE("audio8155")
|
||||
|
||||
MCFG_DEVICE_ADD("audio8155", I8155, 0)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, equites_state, equites_8155_porta_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, equites_state, equites_8155_portb_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, equites_state, equites_8155_portc_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, equites_state, equites_8155_timer_pulse))
|
||||
i8155_device &i8155(I8155(config, "audio8155", 0));
|
||||
i8155.out_pa_callback().set(FUNC(equites_state::equites_8155_porta_w));
|
||||
i8155.out_pb_callback().set(FUNC(equites_state::equites_8155_portb_w));
|
||||
i8155.out_pc_callback().set(FUNC(equites_state::equites_8155_portc_w));
|
||||
i8155.out_to_callback().set(FUNC(equites_state::equites_8155_timer_pulse));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
@ -194,7 +194,7 @@ MACHINE_CONFIG_START(exp85_state::exp85)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
/* devices */
|
||||
MCFG_DEVICE_ADD(I8155_TAG, I8155, 6.144_MHz_XTAL/2)
|
||||
I8155(config, I8155_TAG, 6.144_MHz_XTAL/2);
|
||||
|
||||
MCFG_DEVICE_ADD(I8355_TAG, I8355, 6.144_MHz_XTAL/2)
|
||||
MCFG_I8355_IN_PA_CB(READ8(*this, exp85_state, i8355_a_r))
|
||||
|
@ -302,11 +302,11 @@ MACHINE_CONFIG_START(g627_state::g627)
|
||||
MCFG_DEVICE_PROGRAM_MAP(mem_map)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("i8156", I8156, 14138000/8)
|
||||
MCFG_I8155_IN_PORTA_CB(READ8(*this, g627_state, porta_r))
|
||||
MCFG_I8155_IN_PORTB_CB(READ8(*this, g627_state, portb_r))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, g627_state, portc_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
||||
i8156_device &i8156(I8156(config, "i8156", 14138000/8));
|
||||
i8156.in_pa_callback().set(FUNC(g627_state::porta_r));
|
||||
i8156.in_pb_callback().set(FUNC(g627_state::portb_r));
|
||||
i8156.out_pc_callback().set(FUNC(g627_state::portc_w));
|
||||
i8156.out_to_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
||||
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
|
@ -1363,11 +1363,11 @@ MACHINE_CONFIG_START(kc85_state::kc85)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
/* devices */
|
||||
MCFG_DEVICE_ADD(I8155_TAG, I8155, XTAL(4'915'200)/2)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, kc85_state, i8155_pa_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, kc85_state, i8155_pb_w))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8(*this, kc85_state, i8155_pc_r))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, kc85_state, i8155_to_w))
|
||||
i8155_device &i8155(I8155(config, I8155_TAG, XTAL(4'915'200)/2));
|
||||
i8155.out_pa_callback().set(FUNC(kc85_state::i8155_pa_w));
|
||||
i8155.out_pb_callback().set(FUNC(kc85_state::i8155_pb_w));
|
||||
i8155.in_pc_callback().set(FUNC(kc85_state::i8155_pc_r));
|
||||
i8155.out_to_callback().set(FUNC(kc85_state::i8155_to_w));
|
||||
|
||||
MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
|
||||
|
||||
@ -1411,11 +1411,11 @@ MACHINE_CONFIG_START(pc8201_state::pc8201)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
/* devices */
|
||||
MCFG_DEVICE_ADD(I8155_TAG, I8155, XTAL(4'915'200)/2)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, kc85_state, i8155_pa_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, kc85_state, i8155_pb_w))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8(*this, kc85_state, i8155_pc_r))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, kc85_state, i8155_to_w))
|
||||
i8155_device &i8155(I8155(config, I8155_TAG, XTAL(4'915'200)/2));
|
||||
i8155.out_pa_callback().set(FUNC(kc85_state::i8155_pa_w));
|
||||
i8155.out_pb_callback().set(FUNC(kc85_state::i8155_pb_w));
|
||||
i8155.in_pc_callback().set(FUNC(kc85_state::i8155_pc_r));
|
||||
i8155.out_to_callback().set(FUNC(kc85_state::i8155_to_w));
|
||||
|
||||
MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
|
||||
|
||||
@ -1469,11 +1469,11 @@ MACHINE_CONFIG_START(trsm100_state::trsm100)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
/* devices */
|
||||
MCFG_DEVICE_ADD(I8155_TAG, I8155, XTAL(4'915'200)/2)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, kc85_state, i8155_pa_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, kc85_state, i8155_pb_w))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8(*this, kc85_state, i8155_pc_r))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, kc85_state, i8155_to_w))
|
||||
i8155_device &i8155(I8155(config, I8155_TAG, XTAL(4'915'200)/2));
|
||||
i8155.out_pa_callback().set(FUNC(kc85_state::i8155_pa_w));
|
||||
i8155.out_pb_callback().set(FUNC(kc85_state::i8155_pb_w));
|
||||
i8155.in_pc_callback().set(FUNC(kc85_state::i8155_pc_r));
|
||||
i8155.out_to_callback().set(FUNC(kc85_state::i8155_to_w));
|
||||
|
||||
MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
|
||||
|
||||
@ -1526,11 +1526,11 @@ MACHINE_CONFIG_START(tandy200_state::tandy200)
|
||||
// MCFG_TCM5089_ADD(TCM5089_TAG, XTAL(3'579'545))
|
||||
|
||||
/* devices */
|
||||
MCFG_DEVICE_ADD(I8155_TAG, I8155, XTAL(4'915'200)/2)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, tandy200_state, i8155_pa_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, tandy200_state, i8155_pb_w))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8(*this, tandy200_state, i8155_pc_r))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, tandy200_state, i8155_to_w))
|
||||
i8155_device &i8155(I8155(config, I8155_TAG, XTAL(4'915'200)/2));
|
||||
i8155.out_pa_callback().set(FUNC(tandy200_state::i8155_pa_w));
|
||||
i8155.out_pb_callback().set(FUNC(tandy200_state::i8155_pb_w));
|
||||
i8155.in_pc_callback().set(FUNC(tandy200_state::i8155_pc_r));
|
||||
i8155.out_to_callback().set(FUNC(tandy200_state::i8155_to_w));
|
||||
|
||||
MCFG_DEVICE_ADD(RP5C01A_TAG, RP5C01, XTAL(32'768))
|
||||
|
||||
|
@ -172,11 +172,13 @@ MACHINE_CONFIG_START(mephisto_pinball_state::mephisto)
|
||||
//MCFG_I8256_IRQ_HANDLER(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
//MCFG_I8256_TXD_HANDLER(INPUTLINE("audiocpu", MCS51_RX_LINE))
|
||||
|
||||
MCFG_DEVICE_ADD("ic20", I8155, XTAL(18'000'000)/6)
|
||||
//MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE("muart", i8256_device, write_txc))
|
||||
I8155(config, "ic20", XTAL(18'000'000)/6);
|
||||
//i8155_device &i8155_1(I8155(config, "ic20", XTAL(18'000'000)/6));
|
||||
//i8155_1.out_to_callback().set("muart", FUNC(i8256_device::write_txc));
|
||||
|
||||
MCFG_DEVICE_ADD("ic9", I8155, XTAL(18'000'000)/6)
|
||||
//MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, mephisto_pinball_state, clk_shift_w))
|
||||
I8155(config, "ic9", XTAL(18'000'000)/6);
|
||||
//i8155_device &i8155_2(I8155(config, "ic9", XTAL(18'000'000)/6));
|
||||
//i8155_2.out_to_callback().set(FUNC(mephisto_pinball_state::clk_shift_w));
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", I8051, XTAL(12'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(mephisto_8051_map) // EA tied high for external program ROM
|
||||
|
@ -370,19 +370,19 @@ MACHINE_CONFIG_START(meyc8088_state::meyc8088)
|
||||
MCFG_DEVICE_ADD(m_maincpu, I8088, (XTAL(15'000'000) / 3) * 0.95) // NOTE: underclocked to prevent errors on diagnostics, MAME i8088 cycle timing is probably inaccurate
|
||||
MCFG_DEVICE_PROGRAM_MAP(meyc8088_map)
|
||||
|
||||
MCFG_DEVICE_ADD("i8155_1", I8155, XTAL(15'000'000) / (3*1))
|
||||
i8155_device &i8155_1(I8155(config, "i8155_1", XTAL(15'000'000) / (3*1)));
|
||||
// all ports set to input
|
||||
MCFG_I8155_IN_PORTA_CB(READ8(*this, meyc8088_state, input_r))
|
||||
MCFG_I8155_IN_PORTB_CB(IOPORT("SW"))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8(*this, meyc8088_state, status_r))
|
||||
i8155_1.in_pa_callback().set(FUNC(meyc8088_state::input_r));
|
||||
i8155_1.in_pb_callback().set_ioport("SW");
|
||||
i8155_1.in_pc_callback().set(FUNC(meyc8088_state::status_r));
|
||||
// i8251A trigger txc/rxc (debug related, unpopulated on sold boards)
|
||||
|
||||
MCFG_DEVICE_ADD("i8155_2", I8155, XTAL(15'000'000) / (3*32))
|
||||
i8155_device &i8155_2(I8155(config, "i8155_2", XTAL(15'000'000) / (3*32)));
|
||||
// all ports set to output
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, meyc8088_state, lights2_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, meyc8088_state, lights1_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, meyc8088_state, common_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE("dac", dac_bit_interface, write))
|
||||
i8155_2.out_pa_callback().set(FUNC(meyc8088_state::lights2_w));
|
||||
i8155_2.out_pb_callback().set(FUNC(meyc8088_state::lights1_w));
|
||||
i8155_2.out_pc_callback().set(FUNC(meyc8088_state::common_w));
|
||||
i8155_2.out_to_callback().set("dac", FUNC(dac_bit_interface::write));
|
||||
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
|
@ -185,11 +185,11 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
|
||||
MCFG_DEVICE_PROGRAM_MAP(paranoia_z80_map)
|
||||
MCFG_DEVICE_IO_MAP(paranoia_z80_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("i8155", I8155, 1000000 /*?*/)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, paranoia_state, i8155_a_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, paranoia_state, i8155_b_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, paranoia_state, i8155_c_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, paranoia_state, i8155_timer_out))
|
||||
i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/));
|
||||
i8155.out_pa_callback().set(FUNC(paranoia_state::i8155_a_w));
|
||||
i8155.out_pb_callback().set(FUNC(paranoia_state::i8155_b_w));
|
||||
i8155.out_pc_callback().set(FUNC(paranoia_state::i8155_c_w));
|
||||
i8155.out_to_callback().set(FUNC(paranoia_state::i8155_timer_out));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -220,11 +220,11 @@ MACHINE_CONFIG_START(sbugger_state::sbugger)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sbugger_map)
|
||||
MCFG_DEVICE_IO_MAP(sbugger_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("i8156", I8156, 200000) /* freq is an approximation */
|
||||
MCFG_I8155_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_I8155_IN_PORTB_CB(IOPORT("DSW1"))
|
||||
MCFG_I8155_IN_PORTC_CB(IOPORT("DSW2"))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(INPUTLINE("maincpu", I8085_RST75_LINE))
|
||||
i8156_device &i8156(I8156(config, "i8156", 200000)); /* freq is an approximation */
|
||||
i8156.in_pa_callback().set_ioport("INPUTS");
|
||||
i8156.in_pb_callback().set_ioport("DSW1");
|
||||
i8156.in_pc_callback().set_ioport("DSW2");
|
||||
i8156.out_to_callback().set_inputline(m_maincpu, I8085_RST75_LINE);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sbugger)
|
||||
|
||||
|
@ -158,10 +158,10 @@ MACHINE_CONFIG_START(sdk85_state::sdk85)
|
||||
|
||||
MCFG_DEVICE_ADD("expromio", I8355, 6.144_MHz_XTAL / 2) // Expansion ROM (A15)
|
||||
|
||||
MCFG_DEVICE_ADD("ramio", I8155, 6.144_MHz_XTAL / 2) // Basic RAM (A16)
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(INPUTLINE("maincpu", I8085_TRAP_LINE))
|
||||
i8155_device &i8155(I8155(config, "ramio", 6.144_MHz_XTAL / 2)); // Basic RAM (A16)
|
||||
i8155.out_to_callback().set_inputline(m_maincpu, I8085_TRAP_LINE);
|
||||
|
||||
MCFG_DEVICE_ADD("expramio", I8155, 6.144_MHz_XTAL / 2) // Expansion RAM (A17)
|
||||
I8155(config, "expramio", 6.144_MHz_XTAL / 2); // Expansion RAM (A17)
|
||||
|
||||
/* video hardware */
|
||||
config.set_default_layout(layout_sdk85);
|
||||
|
@ -180,7 +180,7 @@ MACHINE_CONFIG_START(whouse_testcons_state::whousetc)
|
||||
MCFG_DEVICE_PROGRAM_MAP(program_map)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("i8155", I8155, 6.144_MHz_XTAL)
|
||||
I8155(config, "i8155", 6.144_MHz_XTAL);
|
||||
|
||||
MCFG_DEVICE_ADD("i8255", I8255, 0)
|
||||
|
||||
|
@ -419,11 +419,11 @@ MACHINE_CONFIG_START(tourvision_state::tourvision)
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(INPUTLINE("maincpu", 0))
|
||||
|
||||
MCFG_DEVICE_ADD("i8155", I8155, 1000000 /*?*/)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(*this, tourvision_state, tourvision_i8155_a_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, tourvision_state, tourvision_i8155_b_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, tourvision_state, tourvision_i8155_c_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, tourvision_state, tourvision_timer_out))
|
||||
i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/));
|
||||
i8155.out_pa_callback().set(FUNC(tourvision_state::tourvision_i8155_a_w));
|
||||
i8155.out_pb_callback().set(FUNC(tourvision_state::tourvision_i8155_b_w));
|
||||
i8155.out_pc_callback().set(FUNC(tourvision_state::tourvision_i8155_c_w));
|
||||
i8155.out_to_callback().set(FUNC(tourvision_state::tourvision_timer_out));
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
@ -199,10 +199,10 @@ MACHINE_CONFIG_START(horse_state::horse)
|
||||
MCFG_DEVICE_PROGRAM_MAP(horse_map)
|
||||
MCFG_DEVICE_IO_MAP(horse_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("i8155", I8155, XTAL(12'000'000) / 4) // port A input, B output, C output but unused
|
||||
MCFG_I8155_IN_PORTA_CB(READ8(*this, horse_state, input_r))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, horse_state, output_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
i8155_device &i8155(I8155(config, "i8155", XTAL(12'000'000) / 4)); // port A input, B output, C output but unused
|
||||
i8155.in_pa_callback().set(FUNC(horse_state::input_r));
|
||||
i8155.out_pb_callback().set(FUNC(horse_state::output_w));
|
||||
i8155.out_to_callback().set("speaker", FUNC(speaker_sound_device::level_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -764,16 +764,16 @@ MACHINE_CONFIG_START(vixen_state::vixen)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
|
||||
|
||||
// devices
|
||||
MCFG_DEVICE_ADD(P8155H_TAG, I8155, 23.9616_MHz_XTAL / 6)
|
||||
MCFG_I8155_IN_PORTA_CB(READ8(*this, vixen_state, i8155_pa_r))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, vixen_state, i8155_pb_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, vixen_state, i8155_pc_w))
|
||||
i8155_device &i8155(I8155(config, P8155H_TAG, 23.9616_MHz_XTAL / 6));
|
||||
i8155.in_pa_callback().set(FUNC(vixen_state::i8155_pa_r));
|
||||
i8155.out_pb_callback().set(FUNC(vixen_state::i8155_pb_w));
|
||||
i8155.out_pc_callback().set(FUNC(vixen_state::i8155_pc_w));
|
||||
|
||||
MCFG_DEVICE_ADD(P8155H_IO_TAG, I8155, 23.9616_MHz_XTAL / 6)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(m_ieee488, ieee488_device, host_dio_w))
|
||||
MCFG_I8155_OUT_PORTB_CB(WRITE8(*this, vixen_state, io_i8155_pb_w))
|
||||
MCFG_I8155_OUT_PORTC_CB(WRITE8(*this, vixen_state, io_i8155_pc_w))
|
||||
MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(*this, vixen_state, io_i8155_to_w))
|
||||
i8155_device &i8155_io(I8155(config, P8155H_IO_TAG, 23.9616_MHz_XTAL / 6));
|
||||
i8155_io.out_pa_callback().set(m_ieee488, FUNC(ieee488_device::host_dio_w));
|
||||
i8155_io.out_pb_callback().set(FUNC(vixen_state::io_i8155_pb_w));
|
||||
i8155_io.out_pc_callback().set(FUNC(vixen_state::io_i8155_pc_w));
|
||||
i8155_io.out_to_callback().set(FUNC(vixen_state::io_i8155_to_w));
|
||||
|
||||
MCFG_DEVICE_ADD(P8251A_TAG, I8251, 0)
|
||||
MCFG_I8251_TXD_HANDLER(WRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
|
@ -528,10 +528,10 @@ MACHINE_CONFIG_START(vp415_state::vp415)
|
||||
MCFG_DEVICE_PROGRAM_MAP(drive_program_map)
|
||||
MCFG_DEVICE_IO_MAP(drive_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD(I8155_TAG, I8155, 0)
|
||||
MCFG_I8155_OUT_PORTA_CB(WRITE8(CHARGEN_TAG, mb88303_device, da_w))
|
||||
MCFG_I8155_IN_PORTB_CB(READ8(*this, vp415_state, drive_i8155_pb_r))
|
||||
MCFG_I8155_IN_PORTC_CB(READ8(*this, vp415_state, drive_i8155_pc_r))
|
||||
i8155_device &i8155(I8155(config, I8155_TAG, 0));
|
||||
i8155.out_pa_callback().set(CHARGEN_TAG, FUNC(mb88303_device::da_w));
|
||||
i8155.in_pb_callback().set(FUNC(vp415_state::drive_i8155_pb_r));
|
||||
i8155.in_pc_callback().set(FUNC(vp415_state::drive_i8155_pc_r));
|
||||
|
||||
MCFG_DEVICE_ADD(I8255_TAG, I8255, 0)
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, vp415_state, drive_i8255_pa_w))
|
||||
|
Loading…
Reference in New Issue
Block a user