i8279: De-MCFG, nw
This commit is contained in:
parent
da09a76aac
commit
3d37224601
@ -35,53 +35,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
DEVICE CONFIGURATION MACROS
|
||||
***************************************************************************/
|
||||
|
||||
#define MCFG_I8279_OUT_IRQ_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_out_irq_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8279_OUT_SL_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_out_sl_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8279_OUT_DISP_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_out_disp_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8279_OUT_BD_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_out_bd_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8279_IN_RL_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_in_rl_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8279_IN_SHIFT_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_in_shift_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_I8279_IN_CTRL_CB(_devcb) \
|
||||
downcast<i8279_device &>(*device).set_in_ctrl_callback(DEVCB_##_devcb);
|
||||
|
||||
/***************************************************************************
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
// ======================> i8279_device
|
||||
|
||||
class i8279_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
i8279_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <class Object> devcb_base &set_out_irq_callback(Object &&cb) { return m_out_irq_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_sl_callback(Object &&cb) { return m_out_sl_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_disp_callback(Object &&cb) { return m_out_disp_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_bd_callback(Object &&cb) { return m_out_bd_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in_rl_callback(Object &&cb) { return m_in_rl_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in_shift_callback(Object &&cb) { return m_in_shift_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in_ctrl_callback(Object &&cb) { return m_in_ctrl_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto out_irq_callback() { return m_out_irq_cb.bind(); }
|
||||
auto out_sl_callback() { return m_out_sl_cb.bind(); }
|
||||
auto out_disp_callback() { return m_out_disp_cb.bind(); }
|
||||
|
@ -107,13 +107,13 @@ MACHINE_CONFIG_START(ax80_state::ax80)
|
||||
MCFG_DEVICE_ADD(PPI0_TAG, I8255A, 0)
|
||||
MCFG_DEVICE_ADD(PPI1_TAG, I8255A, 0)
|
||||
|
||||
MCFG_DEVICE_ADD("kdc", I8279, 6554800 / 8) // Keyboard/Display Controller
|
||||
//MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", UPD7810_INTF1)) // irq
|
||||
//MCFG_I8279_OUT_SL_CB(WRITE8(*this, ax80_state, scanlines_w)) // scan SL lines
|
||||
//MCFG_I8279_OUT_DISP_CB(WRITE8(*this, ax80_state, digit_w)) // display A&B
|
||||
//MCFG_I8279_IN_RL_CB(READ8(*this, ax80_state, kbd_r)) // kbd RL lines
|
||||
//MCFG_I8279_IN_SHIFT_CB(VCC) // not connected
|
||||
//MCFG_I8279_IN_CTRL_CB(VCC) // not connected
|
||||
I8279(config, "kdc", 6554800 / 8); // Keyboard/Display Controller
|
||||
//kdc.out_irq_calback().set_inputline("maincpu", UPD7810_INTF1); // irq
|
||||
//kdc.out_sl_callback().set(FUNC(ax80_state::scanlines_w)); // scan SL lines
|
||||
//kdc.out_disp_callback().set(FUNC(ax80_state::digit_w)); // display A&B
|
||||
//kdc.in_rl_callback().set(FUNC(ax80_state::kbd_r)) // kbd RL lines
|
||||
//kdc.in_shift_callback().set_constant(1); // not connected
|
||||
//kdc.in_ctrl_callback().set_constant(1); // not connected
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static INPUT_PORTS_START( ax80 )
|
||||
|
@ -380,11 +380,11 @@ MACHINE_CONFIG_START(i7000_state::i7000)
|
||||
MCFG_PIT8253_OUT2_HANDLER(WRITELINE("speaker", speaker_sound_device, level_w))
|
||||
|
||||
/* Keyboard interface */
|
||||
MCFG_DEVICE_ADD("i8279", I8279, 4000000) /* guessed value. TODO: verify on PCB */
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, i7000_state, i7000_scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, i7000_state, i7000_kbd_r)) // kbd RL lines
|
||||
MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // TODO: Shift key
|
||||
MCFG_I8279_IN_CTRL_CB(CONSTANT(1)) // TODO: Ctrl key
|
||||
i8279_device &kbdc(I8279(config, "i8279", 4000000)); /* guessed value. TODO: verify on PCB */
|
||||
kbdc.out_sl_callback().set(FUNC(i7000_state::i7000_scanlines_w)); // scan SL lines
|
||||
kbdc.in_rl_callback().set(FUNC(i7000_state::i7000_kbd_r)); // kbd RL lines
|
||||
kbdc.in_shift_callback().set_constant(1); // TODO: Shift key
|
||||
kbdc.in_ctrl_callback().set_constant(1); // TODO: Ctrl key
|
||||
|
||||
/* Cartridge slot */
|
||||
MCFG_GENERIC_CARTSLOT_ADD("cardslot", generic_romram_plain_slot, "i7000_card")
|
||||
|
@ -385,11 +385,11 @@ MACHINE_CONFIG_START(icecold_state::icecold)
|
||||
pia2.irqa_handler().set_inputline("maincpu", M6809_IRQ_LINE);
|
||||
pia2.irqb_handler().set_inputline("maincpu", M6809_IRQ_LINE);
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, XTAL(6'000'000)/4)
|
||||
MCFG_I8279_OUT_IRQ_CB(WRITELINE("pia0", pia6821_device, cb1_w)) // irq
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, icecold_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, icecold_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, icecold_state, kbd_r)) // kbd RL lines
|
||||
i8279_device &kbdc(I8279(config, "i8279", XTAL(6'000'000)/4));
|
||||
kbdc.out_irq_callback().set("pia0", FUNC(pia6821_device::cb1_w)); // irq
|
||||
kbdc.out_sl_callback().set(FUNC(icecold_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(icecold_state::digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(icecold_state::kbd_r)); // kbd RL lines
|
||||
|
||||
// 30Hz signal from CH-C of ay0
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("sint_timer", icecold_state, icecold_sint_timer, attotime::from_hz(30))
|
||||
|
@ -225,13 +225,13 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010)
|
||||
// MCFG_AY51013_WRITE_SO_CB(WRITE8(*this, sdk80_state, nascom1_hd6402_so))
|
||||
|
||||
/* Devices */
|
||||
// MCFG_DEVICE_ADD("i8279", I8279, 3100000) // based on divider
|
||||
// MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", I8085_RST55_LINE)) // irq
|
||||
// MCFG_I8279_OUT_SL_CB(WRITE8(*this, sdk80_state, scanlines_w)) // scan SL lines
|
||||
// MCFG_I8279_OUT_DISP_CB(WRITE8(*this, sdk80_state, digit_w)) // display A&B
|
||||
// MCFG_I8279_IN_RL_CB(READ8(*this, sdk80_state, kbd_r)) // kbd RL lines
|
||||
// MCFG_I8279_IN_SHIFT_CB(VCC) // Shift key
|
||||
// MCFG_I8279_IN_CTRL_CB(VCC)
|
||||
// i8279_device &kbdc(I8279(config, "i8279", 3100000)); // based on divider
|
||||
// kbdc.out_irq_callback().set_inputline("maincpu", I8085_RST55_LINE); // irq
|
||||
// kbdc.out_sl_callback().set(FUNC(sdk80_state::scanlines_w)); // scan SL lines
|
||||
// kbdc.out_disp_callback().set(FUNC(sdk80_state::digit_w)); // display A&B
|
||||
// kbdc.in_rl_callback().set(FUNC(sdk80_state::kbd_r)); // kbd RL lines
|
||||
// kbdc.in_shift_callback().set_constant(1); // Shift key
|
||||
// kbdc.in_ctrl_callback().set_constant(1);
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -194,10 +194,10 @@ MACHINE_CONFIG_START(marywu_state::marywu)
|
||||
//TODO: figure out what each bit is mapped to in the 80c31 ports P1 and P3
|
||||
|
||||
/* Keyboard & display interface */
|
||||
MCFG_DEVICE_ADD("i8279", I8279, XTAL(10'738'635)) /* should it be perhaps a fraction of the XTAL clock ? */
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, marywu_state, multiplex_7seg_w)) // select block of 7seg modules by multiplexing the SL scan lines
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, marywu_state, keyboard_r)) // keyboard Return Lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, marywu_state, display_7seg_data_w))
|
||||
i8279_device &kbdc(I8279(config, "i8279", XTAL(10'738'635))); // should it be perhaps a fraction of the XTAL clock ?
|
||||
kbdc.out_sl_callback().set(FUNC(marywu_state::multiplex_7seg_w)); // select block of 7seg modules by multiplexing the SL scan lines
|
||||
kbdc.in_rl_callback().set(FUNC(marywu_state::keyboard_r)); // keyboard Return Lines
|
||||
kbdc.out_disp_callback().set(FUNC(marywu_state::display_7seg_data_w));
|
||||
|
||||
/* Video */
|
||||
config.set_default_layout(layout_marywu);
|
||||
|
@ -811,16 +811,16 @@ MACHINE_CONFIG_START(maygay1b_state::maygay_m1)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("nmitimer", maygay1b_state, maygay1b_nmitimer_callback, attotime::from_hz(75)) // freq?
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, M1_MASTER_CLOCK/4) // unknown clock
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, maygay1b_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, maygay1b_state, lamp_data_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, maygay1b_state, kbd_r)) // kbd RL lines
|
||||
i8279_device &kbdc(I8279(config, "i8279", M1_MASTER_CLOCK/4)); // unknown clock
|
||||
kbdc.out_sl_callback().set(FUNC(maygay1b_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(maygay1b_state::lamp_data_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(maygay1b_state::kbd_r)); // kbd RL lines
|
||||
|
||||
#ifndef USE_MCU
|
||||
// on M1B there is a 2nd i8279, on M1 / M1A a 8051 handles this task!
|
||||
MCFG_DEVICE_ADD("i8279_2", I8279, M1_MASTER_CLOCK/4) // unknown clock
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, maygay1b_state, scanlines_2_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, maygay1b_state, lamp_data_2_w)) // display A&B
|
||||
i8279_device &kbdc2(I8279(config, "i8279_2", M1_MASTER_CLOCK/4)); // unknown clock
|
||||
kbdc2.out_sl_callback().set(FUNC(maygay1b_state::scanlines_2_w)); // scan SL lines
|
||||
kbdc2.out_disp_callback().set(FUNC(maygay1b_state::lamp_data_2_w)); // display A&B
|
||||
#endif
|
||||
|
||||
MCFG_DEVICE_ADD("reel0", REEL, STARPOINT_48STEP_REEL, 1, 3, 0x09, 4)
|
||||
|
@ -914,10 +914,10 @@ MACHINE_CONFIG_START(maygayv1_state::maygayv1)
|
||||
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, maygayv1_state, duart_irq_handler))
|
||||
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(*this, maygayv1_state, duart_txa))
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, maygayv1_state, strobe_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, maygayv1_state, lamp_data_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, maygayv1_state, kbd_r)) // kbd RL lines
|
||||
i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock
|
||||
kbdc.out_sl_callback().set(FUNC(maygayv1_state::strobe_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(maygayv1_state::lamp_data_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(maygayv1_state::kbd_r)); // kbd RL lines
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
|
@ -519,12 +519,12 @@ MACHINE_CONFIG_START(mmd1_state::mmd2)
|
||||
config.set_default_layout(layout_mmd2);
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD("i8279", I8279, 400000) // based on divider
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, mmd1_state, mmd2_scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, mmd1_state, mmd2_digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, mmd1_state, mmd2_kbd_r)) // kbd RL lines
|
||||
MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key
|
||||
MCFG_I8279_IN_CTRL_CB(CONSTANT(1))
|
||||
i8279_device &kbdc(I8279(config, "i8279", 400000)); // based on divider
|
||||
kbdc.out_sl_callback().set(FUNC(mmd1_state::mmd2_scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(mmd1_state::mmd2_digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(mmd1_state::mmd2_kbd_r)); // kbd RL lines
|
||||
kbdc.in_shift_callback().set_constant(1); // Shift key
|
||||
kbdc.in_ctrl_callback().set_constant(1);
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -625,12 +625,12 @@ MACHINE_CONFIG_START(peyper_state::peyper)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "ayvol", 1.0)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD("i8279", I8279, 2500000)
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, peyper_state, col_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, peyper_state, disp_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, peyper_state, sw_r)) // kbd RL lines
|
||||
MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key
|
||||
MCFG_I8279_IN_CTRL_CB(CONSTANT(1))
|
||||
i8279_device &kbdc(I8279(config, "i8279", 2500000));
|
||||
kbdc.out_sl_callback().set(FUNC(peyper_state::col_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(peyper_state::disp_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(peyper_state::sw_r)); // kbd RL lines
|
||||
kbdc.in_shift_callback().set_constant(1); // Shift key
|
||||
kbdc.in_ctrl_callback().set_constant(1);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
// Not allowed to set up an array all at once, so we have this mess
|
||||
|
@ -458,8 +458,8 @@ MACHINE_CONFIG_START(pg685_state::pg675)
|
||||
// rs232 port
|
||||
|
||||
// keyboard
|
||||
MCFG_DEVICE_ADD("kbdc", I8279, XTAL(12'288'000) / 6) // divider guessed
|
||||
MCFG_I8279_OUT_IRQ_CB(WRITELINE("mainpic", pic8259_device, ir0_w))
|
||||
i8279_device &kbdc(I8279(config, "kbdc", XTAL(12'288'000) / 6)); // divider guessed
|
||||
kbdc.out_irq_callback().set("mainpic", FUNC(pic8259_device::ir0_w));
|
||||
|
||||
// printer
|
||||
|
||||
@ -508,8 +508,8 @@ MACHINE_CONFIG_START(pg685_state::pg685)
|
||||
// rs232 port
|
||||
|
||||
// keyboard
|
||||
MCFG_DEVICE_ADD("kbdc", I8279, XTAL(12'288'000) / 6) // divider guessed
|
||||
MCFG_I8279_OUT_IRQ_CB(WRITELINE("mainpic", pic8259_device, ir0_w))
|
||||
i8279_device &kbdc(I8279(config, "kbdc", XTAL(12'288'000) / 6)); // divider guessed
|
||||
kbdc.out_irq_callback().set("mainpic", FUNC(pic8259_device::ir0_w));
|
||||
|
||||
// printer
|
||||
|
||||
@ -559,8 +559,8 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
|
||||
// rs232 port
|
||||
|
||||
// keyboard
|
||||
MCFG_DEVICE_ADD("kbdc", I8279, 12288000 / 6) // wrong
|
||||
MCFG_I8279_OUT_IRQ_CB(WRITELINE("mainpic", pic8259_device, ir0_w))
|
||||
i8279_device &kbdc(I8279(config, "kbdc", 12288000 / 6)); // wrong
|
||||
kbdc.out_irq_callback().set("mainpic", FUNC(pic8259_device::ir0_w));
|
||||
|
||||
// printer
|
||||
|
||||
|
@ -167,13 +167,13 @@ MACHINE_CONFIG_START(sdk85_state::sdk85)
|
||||
config.set_default_layout(layout_sdk85);
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD("kdc", I8279, 6.144_MHz_XTAL / 2) // Keyboard/Display Controller (A13)
|
||||
MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", I8085_RST55_LINE)) // irq
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, sdk85_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, sdk85_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, sdk85_state, kbd_r)) // kbd RL lines
|
||||
MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key
|
||||
MCFG_I8279_IN_CTRL_CB(CONSTANT(1))
|
||||
i8279_device &kdc(I8279(config, "kdc", 6.144_MHz_XTAL / 2)); // Keyboard/Display Controller (A13)
|
||||
kdc.out_irq_callback().set_inputline("maincpu", I8085_RST55_LINE); // irq
|
||||
kdc.out_sl_callback().set(FUNC(sdk85_state::scanlines_w)); // scan SL lines
|
||||
kdc.out_disp_callback().set(FUNC(sdk85_state::digit_w)); // display A&B
|
||||
kdc.in_rl_callback().set(FUNC(sdk85_state::kbd_r)); // kbd RL lines
|
||||
kdc.in_shift_callback().set_constant(1); // Shift key
|
||||
kdc.in_ctrl_callback().set_constant(1);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/* ROM definition */
|
||||
|
@ -170,12 +170,12 @@ MACHINE_CONFIG_START(sdk86_state::sdk86)
|
||||
usart_clock.signal_handler().set(I8251_TAG, FUNC(i8251_device::write_txc));
|
||||
usart_clock.signal_handler().append(I8251_TAG, FUNC(i8251_device::write_rxc));
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, 2500000) // based on divider
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, sdk86_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, sdk86_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, sdk86_state, kbd_r)) // kbd RL lines
|
||||
MCFG_I8279_IN_SHIFT_CB(CONSTANT(0)) // Shift key
|
||||
MCFG_I8279_IN_CTRL_CB(CONSTANT(0))
|
||||
i8279_device &kbdc(I8279(config, "i8279", 2500000)); // based on divider
|
||||
kbdc.out_sl_callback().set(FUNC(sdk86_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(sdk86_state::digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(sdk86_state::kbd_r)); // kbd RL lines
|
||||
kbdc.in_shift_callback().set_constant(0); // Shift key
|
||||
kbdc.in_ctrl_callback().set_constant(0);
|
||||
|
||||
MCFG_DEVICE_ADD("port1", I8255A, 0)
|
||||
MCFG_DEVICE_ADD("port2", I8255A, 0)
|
||||
|
@ -242,12 +242,12 @@ MACHINE_CONFIG_START(selz80_state::selz80)
|
||||
MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr))
|
||||
MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts))
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, 5000000 / 2) // based on divider
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, selz80_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, selz80_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(READ8(*this, selz80_state, kbd_r)) // kbd RL lines
|
||||
MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key
|
||||
MCFG_I8279_IN_CTRL_CB(CONSTANT(1))
|
||||
i8279_device &kbdc(I8279(config, "i8279", 5000000 / 2)); // based on divider
|
||||
kbdc.out_sl_callback().set(FUNC(selz80_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(selz80_state::digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set(FUNC(selz80_state::kbd_r)); // kbd RL lines
|
||||
kbdc.in_shift_callback().set_constant(1); // Shift key
|
||||
kbdc.in_ctrl_callback().set_constant(1);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(selz80_state::dagz80)
|
||||
|
@ -870,10 +870,10 @@ MACHINE_CONFIG_START(turbo_state::turbo)
|
||||
m_i8255_3->in_pb_callback().set_ioport("DSW2");
|
||||
m_i8255_3->out_pc_callback().set(FUNC(turbo_state::turbo_ppi3c_w));
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, turbo_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, turbo_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines
|
||||
i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock
|
||||
kbdc.out_sl_callback().set(FUNC(turbo_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(turbo_state::digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set_ioport("DSW1"); // kbd RL lines
|
||||
|
||||
ls259_device &outlatch(LS259(config, "outlatch")); // IC125 - outputs passed through CN5
|
||||
outlatch.q_out_cb<0>().set(FUNC(turbo_state::coin_meter_1_w));
|
||||
@ -915,10 +915,10 @@ MACHINE_CONFIG_START(turbo_state::subroc3d)
|
||||
m_i8255_1->out_pb_callback().set(FUNC(turbo_state::subroc3d_sound_b_w));
|
||||
m_i8255_1->out_pc_callback().set(FUNC(turbo_state::subroc3d_sound_c_w));
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, turbo_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, turbo_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines
|
||||
i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock
|
||||
kbdc.out_sl_callback().set(FUNC(turbo_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(turbo_state::digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set_ioport("DSW1"); // kbd RL lines
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turbo)
|
||||
@ -963,10 +963,10 @@ MACHINE_CONFIG_START(turbo_state::buckrog)
|
||||
m_i8255_1->out_pb_callback().set(FUNC(turbo_state::buckrog_sound_b_w));
|
||||
m_i8255_1->out_pc_callback().set(FUNC(turbo_state::buckrog_ppi1c_w));
|
||||
|
||||
MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock
|
||||
MCFG_I8279_OUT_SL_CB(WRITE8(*this, turbo_state, scanlines_w)) // scan SL lines
|
||||
MCFG_I8279_OUT_DISP_CB(WRITE8(*this, turbo_state, digit_w)) // display A&B
|
||||
MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines
|
||||
i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock
|
||||
kbdc.out_sl_callback().set(FUNC(turbo_state::scanlines_w)); // scan SL lines
|
||||
kbdc.out_disp_callback().set(FUNC(turbo_state::digit_w)); // display A&B
|
||||
kbdc.in_rl_callback().set_ioport("DSW1"); // kbd RL lines
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turbo)
|
||||
|
Loading…
Reference in New Issue
Block a user