Previous 199869 Revisions Next

r22843 Wednesday 15th May, 2013 at 21:57:33 UTC by Wilbert Pol
pic8259.c: Switched to devcb2. (nw)
[src/emu]devcb2.h
[src/emu/machine]pic8259.c pic8259.h
[src/mame/drivers]calchase.c chihiro.c fruitpc.c funkball.c gamecstl.c gammagic.c mediagx.c midqslvr.c pcxt.c photoply.c pinball2k.c quakeat.c queen.c savquest.c su2000.c taitowlf.c voyager.c xtom3d.c
[src/mame/machine]pcshare.c
[src/mess/drivers]amstr_pc.c apc.c apricot.c apricotp.c at.c b2m.c bebox.c cbm2.c compis.c fmtowns.c iq151.c irisha.c m20.c mbc55x.c multi16.c paso1600.c pasogo.c pc.c pc100.c pc1512.c pc88va.c pc9801.c pk8020.c qx10.c sage2.c tandy2k.c tdv2324.c trs80m2.c tsispch.c victor9k.c wangpc.c z100.c
[src/mess/includes]apollo.h at.h b2m.h bebox.h compis.h irisha.h mbc55x.h pc.h pk8020.h
[src/mess/machine]apollo.c at.c b2m.c bebox.c compis.c genpc.c irisha.c mbc55x.c pc.c pk8020.c s100_wunderbus.c southbridge.c

trunk/src/emu/machine/pic8259.c
r22842r22843
377377
378378void pic8259_device::device_start()
379379{
380   const struct pic8259_interface *intf = (const struct pic8259_interface *)this->static_config();
381
382   assert(intf != NULL);
383
384380   /* resolve callbacks */
385   m_out_int_func.resolve(intf->out_int_func, *this);
386   m_sp_en_func.resolve(intf->sp_en_func, *this);
387   m_read_slave_ack_func.resolve(intf->read_slave_ack_func, *this);
381   m_out_int_func.resolve();
382   m_sp_en_func.resolve();
383   m_read_slave_ack_func.resolve();
388384}
389385
390386
r22842r22843
422418
423419pic8259_device::pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
424420   : device_t(mconfig, PIC8259, "Intel PIC8259", tag, owner, clock)
421   , m_out_int_func(*this)
422   , m_sp_en_func(*this)
423   , m_read_slave_ack_func(*this)
425424{
426425}
427426
428//-------------------------------------------------
429//  device_config_complete - perform any
430//  operations now that the configuration is
431//  complete
432//-------------------------------------------------
433
434void pic8259_device::device_config_complete()
435{
436}
437
trunk/src/emu/machine/pic8259.h
r22842r22843
2525#ifndef __PIC8259_H__
2626#define __PIC8259_H__
2727
28#include "devlegcy.h"
2928#include "devcb.h"
3029
30
31/***************************************************************************
32    DEVICE CONFIGURATION MACROS
33***************************************************************************/
34
35#define MCFG_PIC8259_ADD(_tag, _out_int, _sp_en, _read_slave_ack) \
36   MCFG_DEVICE_ADD(_tag, PIC8259, 0) \
37   devcb = &pic8259_device::static_set_out_int_callback( *device, DEVCB2_##_out_int ); \
38   devcb = &pic8259_device::static_set_sp_en_callback( *device, DEVCB2_##_sp_en ); \
39   devcb = &pic8259_device::static_set_read_slave_ack_callback( *device, DEVCB2_##_read_slave_ack );
40
41
3142class pic8259_device : public device_t
3243{
3344public:
3445   pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
3546
47   template<class _Object> static devcb2_base &static_set_out_int_callback(device_t &device, _Object object) { return downcast<pic8259_device &>(device).m_out_int_func.set_callback(object); }
48   template<class _Object> static devcb2_base &static_set_sp_en_callback(device_t &device, _Object object) { return downcast<pic8259_device &>(device).m_sp_en_func.set_callback(object); }
49   template<class _Object> static devcb2_base &static_set_read_slave_ack_callback(device_t &device, _Object object) { return downcast<pic8259_device &>(device).m_read_slave_ack_func.set_callback(object); }
50
3651   DECLARE_READ8_MEMBER( read );
3752   DECLARE_WRITE8_MEMBER( write );
3853   UINT32 acknowledge();
r22842r22843
5065
5166protected:
5267   // device-level overrides
53   virtual void device_config_complete();
5468   virtual void device_start();
5569   virtual void device_reset();
5670   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
r22842r22843
7185      STATE_READY
7286   };
7387
74   devcb_resolved_write_line m_out_int_func;
75   devcb_resolved_read_line m_sp_en_func;
76   devcb_resolved_read8 m_read_slave_ack_func;
88   devcb2_write_line m_out_int_func;
89   devcb2_read_line m_sp_en_func;
90   devcb2_read8 m_read_slave_ack_func;
7791
7892   pic8259_state_t m_state;
7993
r22842r22843
109123
110124extern const device_type PIC8259;
111125
112
113/***************************************************************************
114    TYPE DEFINITIONS
115***************************************************************************/
116
117struct pic8259_interface
118{
119   /* Called when int line changes */
120   devcb_write_line out_int_func;
121   /* 1 - when master, 0 - when slave */
122   devcb_read_line sp_en_func;
123   /* Called when on master slave irq is trigered*/
124   devcb_read8 read_slave_ack_func;
125};
126
127
128/***************************************************************************
129    DEVICE CONFIGURATION MACROS
130***************************************************************************/
131
132#define MCFG_PIC8259_ADD(_tag, _intrf) \
133   MCFG_DEVICE_ADD(_tag, PIC8259, 0) \
134   MCFG_DEVICE_CONFIG(_intrf)
135
136
137126#endif /* __PIC8259_H__ */
trunk/src/emu/devcb2.h
r22842r22843
5858#define DEVCB2_CONSTANT(_value) devcb2_base::constant_desc(_value)
5959#define DEVCB2_LOGGER(_string, _value) devcb2_base::logger_desc(_string, _value)
6060#define DEVCB2_INPUTLINE(_tag, _line) devcb2_base::inputline_desc(_tag, _line)
61#define DEVCB2_VCC DEVCB2_CONSTANT(1)
62#define DEVCB2_GND DEVCB2_CONSTANT(0)
6163
6264// wrappers for read callbacks into the owner device
6365#define DEVCB2_READLINE(_class, _func) read_line_delegate(&_class::_func, #_class "::" #_func, DEVICE_SELF, (_class *)0)
trunk/src/mess/drivers/irisha.c
r22842r22843
157157
158158   MCFG_PIT8253_ADD( "pit8253", irisha_pit8253_intf )
159159
160   MCFG_PIC8259_ADD( "pic8259", irisha_pic8259_config )
160   MCFG_PIC8259_ADD( "pic8259", WRITELINE(irisha_state,irisha_pic_set_int_line), VCC, NULL )
161161
162162   /* video hardware */
163163   MCFG_SCREEN_ADD("screen", RASTER)
trunk/src/mess/drivers/trs80m2.c
r22842r22843
737737   return m_pic->inta_r();
738738}
739739
740static const struct pic8259_interface pic_intf =
741{
742   DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_5),
743   DEVCB_LINE_VCC,
744   DEVCB_NULL
745};
746740
747741
748
749742//**************************************************************************
750743//  MACHINE INITIALIZATION
751744//**************************************************************************
r22842r22843
901894   MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":1", trs80m2_floppies, NULL,    NULL, floppy_image_device::default_floppy_formats)
902895   MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":2", trs80m2_floppies, NULL,    NULL, floppy_image_device::default_floppy_formats)
903896   MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":3", trs80m2_floppies, NULL,    NULL, floppy_image_device::default_floppy_formats)
904   MCFG_PIC8259_ADD(AM9519A_TAG, pic_intf)
897   MCFG_PIC8259_ADD(AM9519A_TAG, INPUTLINE(M68000_TAG, M68K_IRQ_5), VCC, NULL )
905898   MCFG_TRS80M2_KEYBOARD_ADD(kb_intf)
906899
907900   // internal RAM
trunk/src/mess/drivers/wangpc.c
r22842r22843
748748   return m_pic->inta_r();
749749}
750750
751static const struct pic8259_interface pic_intf =
752{
753   DEVCB_CPU_INPUT_LINE(I8086_TAG, INPUT_LINE_IRQ0),
754   DEVCB_LINE_VCC,
755   DEVCB_NULL
756};
757751
758
759752//-------------------------------------------------
760753//  I8255A_INTERFACE( ppi_intf )
761754//-------------------------------------------------
r22842r22843
12031196
12041197   // devices
12051198   MCFG_AM9517A_ADD(AM9517A_TAG, 4000000, dmac_intf)
1206   MCFG_PIC8259_ADD(I8259A_TAG, pic_intf)
1199   MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NULL)
12071200   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
12081201   MCFG_PIT8253_ADD(I8253_TAG, pit_intf)
12091202   MCFG_IM6402_ADD(IM6402_TAG, uart_intf)
trunk/src/mess/drivers/cbm2.c
r22842r22843
16881688   return m_ext_pic->inta_r();
16891689}
16901690
1691static pic8259_interface ext_pic_intf =
1692{
1693   DEVCB_CPU_INPUT_LINE(EXT_I8088_TAG, INPUT_LINE_IRQ0),
1694   DEVCB_LINE_VCC,
1695   DEVCB_NULL
1696};
16971691
1698
16991692//-------------------------------------------------
17001693//  tpi6525_interface ext_tpi_intf
17011694//-------------------------------------------------
r22842r22843
24312424   MCFG_CPU_PROGRAM_MAP(ext_mem)
24322425   MCFG_CPU_IO_MAP(ext_io)
24332426
2434   MCFG_PIC8259_ADD(EXT_I8259A_TAG, ext_pic_intf)
2427   MCFG_PIC8259_ADD(EXT_I8259A_TAG, INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0), VCC, NULL)
24352428   MCFG_TPI6525_ADD(EXT_MOS6525_TAG, ext_tpi_intf)
24362429   MCFG_MOS6526_ADD(EXT_MOS6526_TAG, XTAL_18MHz/9, 60, DEVWRITELINE(DEVICE_SELF, cbm2_state, ext_cia_irq_w))
24372430   MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w))
r22842r22843
24902483   MCFG_CPU_PROGRAM_MAP(ext_mem)
24912484   MCFG_CPU_IO_MAP(ext_io)
24922485
2493   MCFG_PIC8259_ADD(EXT_I8259A_TAG, ext_pic_intf)
2486   MCFG_PIC8259_ADD(EXT_I8259A_TAG, INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0), VCC, NULL)
24942487   MCFG_TPI6525_ADD(EXT_MOS6525_TAG, ext_tpi_intf)
24952488   MCFG_MOS6526_ADD(EXT_MOS6526_TAG, XTAL_18MHz/9, 50, DEVWRITELINE(DEVICE_SELF, cbm2_state, ext_cia_irq_w))
24962489   MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w))
trunk/src/mess/drivers/apricot.c
r22842r22843
148148   return m_pic->inta_r();
149149}
150150
151static const struct pic8259_interface apricot_pic8259_intf =
152{
153   DEVCB_CPU_INPUT_LINE("maincpu", 0),
154   DEVCB_LINE_VCC,
155   DEVCB_NULL
156};
157
158
159151/***************************************************************************
160152    FLOPPY
161153***************************************************************************/
r22842r22843
394386   /* Devices */
395387   MCFG_MC6845_ADD("ic30", MC6845, XTAL_15MHz / 10, apricot_mc6845_intf)
396388   MCFG_I8255A_ADD("ic17", apricot_i8255a_intf)
397   MCFG_PIC8259_ADD("ic31", apricot_pic8259_intf)
389   MCFG_PIC8259_ADD("ic31", INPUTLINE("maincpu",0), VCC, NULL)
398390   MCFG_PIT8253_ADD("ic16", apricot_pit8253_intf)
399391   MCFG_Z80SIO_ADD("ic15", 0, apricot_z80sio_intf)
400392
trunk/src/mess/drivers/tsispch.c
r22842r22843
173173   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
174174}
175175
176static const struct pic8259_interface pic8259_config =
177{
178   DEVCB_DRIVER_LINE_MEMBER(tsispch_state,pic8259_set_int_line),
179   DEVCB_LINE_VCC,
180   DEVCB_NULL
181};
182
183176IRQ_CALLBACK_MEMBER(tsispch_state::irq_callback)
184177{
185178   return machine().device<pic8259_device>("pic8259")->acknowledge();
r22842r22843
418411   MCFG_CPU_CONFIG(upd7720_config)
419412
420413   /* PIC 8259 */
421   MCFG_PIC8259_ADD("pic8259", pic8259_config)
414   MCFG_PIC8259_ADD("pic8259", WRITELINE(tsispch_state,pic8259_set_int_line), VCC, NULL)
422415
423416   /* uarts */
424417   MCFG_I8251_ADD("i8251a_u15", i8251_config)
trunk/src/mess/drivers/pasogo.c
r22842r22843
495495   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
496496}
497497
498static const pic8259_interface pasogo_pic8259_config =
499{
500   DEVCB_DRIVER_LINE_MEMBER(pasogo_state, pasogo_pic8259_set_int_line),
501   DEVCB_LINE_VCC,
502   DEVCB_NULL
503};
504498
505
506499static MACHINE_CONFIG_START( pasogo, pasogo_state )
507500
508501   MCFG_CPU_ADD("maincpu", I80188/*V30HL in vadem vg230*/, 10000000/*?*/)
r22842r22843
513506
514507   MCFG_PIT8254_ADD( "pit8254", pc_pit8254_config )
515508
516   MCFG_PIC8259_ADD( "pic8259", pasogo_pic8259_config )
509   MCFG_PIC8259_ADD( "pic8259", WRITELINE(pasogo_state, pasogo_pic8259_set_int_line), VCC, NULL )
517510
518511   MCFG_SCREEN_ADD("screen", LCD)
519512   MCFG_SCREEN_REFRESH_RATE(60)
trunk/src/mess/drivers/qx10.c
r22842r22843
564564   return 0x00;
565565}
566566
567static const struct pic8259_interface qx10_pic8259_master_config =
568{
569   DEVCB_DRIVER_LINE_MEMBER(qx10_state, qx10_pic8259_master_set_int_line),
570   DEVCB_LINE_VCC,
571   DEVCB_DRIVER_MEMBER(qx10_state, get_slave_ack)
572};
573567
574568/*
575569    Slave PIC8259
r22842r22843
584578
585579*/
586580
587static const struct pic8259_interface qx10_pic8259_slave_config =
588{
589   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
590   DEVCB_LINE_GND,
591   DEVCB_NULL
592};
593
594581IRQ_CALLBACK_MEMBER(qx10_state::irq_callback)
595582{
596583   return m_pic_m->acknowledge();
r22842r22843
10481035   /* Devices */
10491036   MCFG_PIT8253_ADD("pit8253_1", qx10_pit8253_1_config)
10501037   MCFG_PIT8253_ADD("pit8253_2", qx10_pit8253_2_config)
1051   MCFG_PIC8259_ADD("pic8259_master", qx10_pic8259_master_config)
1052   MCFG_PIC8259_ADD("pic8259_slave", qx10_pic8259_slave_config)
1038   MCFG_PIC8259_ADD("pic8259_master", WRITELINE(qx10_state, qx10_pic8259_master_set_int_line), VCC, READ8(qx10_state, get_slave_ack))
1039   MCFG_PIC8259_ADD("pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL)
10531040   MCFG_UPD7201_ADD("upd7201", MAIN_CLK/4, qx10_upd7201_interface)
10541041   MCFG_I8255_ADD("i8255", qx10_i8255_interface)
10551042   MCFG_I8237_ADD("8237dma_1", MAIN_CLK/4, qx10_dma8237_1_interface)
trunk/src/mess/drivers/b2m.c
r22842r22843
207207
208208   MCFG_I8255_ADD( "ppi8255_3", b2m_ppi8255_interface_3 )
209209
210   MCFG_PIC8259_ADD( "pic8259", b2m_pic8259_config )
210   MCFG_PIC8259_ADD( "pic8259", WRITELINE(b2m_state,b2m_pic_set_int_line), VCC, NULL )
211211
212
213212   /* sound */
214213   MCFG_SPEAKER_STANDARD_MONO("mono")
215214   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
trunk/src/mess/drivers/apricotp.c
r22842r22843
434434
435435*/
436436
437static const struct pic8259_interface pic_intf =
438{
439   DEVCB_CPU_INPUT_LINE(I8086_TAG, INPUT_LINE_IRQ0),
440   DEVCB_LINE_VCC,
441   DEVCB_NULL
442};
443
444
445437//-------------------------------------------------
446438//  pit8253_config pit_intf
447439//-------------------------------------------------
r22842r22843
660652   /* Devices */
661653   MCFG_APRICOT_KEYBOARD_ADD(kb_intf)
662654   MCFG_I8237_ADD(I8237_TAG, 250000, dmac_intf)
663   MCFG_PIC8259_ADD(I8259A_TAG, pic_intf)
655   MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NULL)
664656   MCFG_PIT8253_ADD(I8253A5_TAG, pit_intf)
665657   MCFG_Z80DART_ADD(Z80SIO0_TAG, 2500000, sio_intf)
666658   MCFG_WD2797x_ADD(WD2797_TAG, 2000000)
trunk/src/mess/drivers/apc.c
r22842r22843
898898   return 0x00;
899899}
900900
901static const struct pic8259_interface pic8259_master_config =
902{
903   DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_master_set_int_line),
904   DEVCB_LINE_VCC,
905   DEVCB_DRIVER_MEMBER(apc_state,get_slave_ack)
906};
907
908static const struct pic8259_interface pic8259_slave_config =
909{
910   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w), //TODO: check me
911   DEVCB_LINE_GND,
912   DEVCB_NULL
913};
914
915901/****************************************
916902*
917903* I8237 DMA interface
r22842r22843
10301016   MCFG_CPU_IO_MAP(apc_io)
10311017
10321018   MCFG_PIT8253_ADD( "pit8253", pit8253_config )
1033   MCFG_PIC8259_ADD( "pic8259_master", pic8259_master_config )
1034   MCFG_PIC8259_ADD( "pic8259_slave", pic8259_slave_config )
1019   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(apc_state, apc_master_set_int_line), VCC, READ8(apc_state,get_slave_ack) )
1020   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL ) // TODO: check ir7_w
10351021   MCFG_I8237_ADD("i8237", MAIN_CLOCK, dmac_intf)
10361022
10371023   MCFG_NVRAM_ADD_1FILL("cmos")
trunk/src/mess/drivers/at.c
r22842r22843
380380   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, at_dma8237_1_config )
381381   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, at_dma8237_2_config )
382382
383   MCFG_PIC8259_ADD( "pic8259_master", at_pic8259_master_config )
384   MCFG_PIC8259_ADD( "pic8259_slave", at_pic8259_slave_config )
383   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(at_state, get_slave_ack) )
384   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
385385
386386   MCFG_AT_KEYBOARD_CONTROLLER_ADD("keybc", XTAL_12MHz, keyboard_controller_intf)
387387   MCFG_PC_KBDC_ADD("pc_kbdc", pc_kbdc_intf)
trunk/src/mess/drivers/pc9801.c
r22842r22843
29302930   return 0x00;
29312931}
29322932
2933static const struct pic8259_interface pic8259_master_config =
2934{
2935   DEVCB_DRIVER_LINE_MEMBER(pc9801_state, pc9801_master_set_int_line),
2936   DEVCB_LINE_VCC,
2937   DEVCB_DRIVER_MEMBER(pc9801_state,get_slave_ack)
2938};
2939
2940static const struct pic8259_interface pic8259_slave_config =
2941{
2942   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w), //TODO: check me
2943   DEVCB_LINE_GND,
2944   DEVCB_NULL
2945};
2946
29472933/****************************************
29482934*
29492935* I8253 PIT interface
r22842r22843
35713557
35723558   MCFG_PIT8253_ADD( "pit8253", pc9801_pit8253_config )
35733559   MCFG_I8237_ADD("i8237", 5000000, dmac_intf) // unknown clock
3574   MCFG_PIC8259_ADD( "pic8259_master", pic8259_master_config )
3575   MCFG_PIC8259_ADD( "pic8259_slave", pic8259_slave_config )
3560   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(pc9801_state, pc9801_master_set_int_line), VCC, READ8(pc9801_state,get_slave_ack) )
3561   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL ) // TODO: Check ir7_w
35763562   MCFG_I8255_ADD( "ppi8255_sys", ppi_system_intf )
35773563   MCFG_I8255_ADD( "ppi8255_prn", ppi_printer_intf )
35783564   MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf )
r22842r22843
36403626
36413627   MCFG_PIT8253_ADD( "pit8253", pc9801_pit8253_config )
36423628   MCFG_I8237_ADD("i8237", MAIN_CLOCK_X1*8, pc9801rs_dmac_intf) // unknown clock
3643   MCFG_PIC8259_ADD( "pic8259_master", pic8259_master_config )
3644   MCFG_PIC8259_ADD( "pic8259_slave", pic8259_slave_config )
3629   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(pc9801_state, pc9801_master_set_int_line), VCC, READ8(pc9801_state,get_slave_ack) )
3630   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL ) // TODO: Check ir7_w
36453631   MCFG_I8255_ADD( "ppi8255_sys", ppi_system_intf )
36463632   MCFG_I8255_ADD( "ppi8255_prn", ppi_printer_intf )
36473633   MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf )
r22842r22843
37063692
37073693   MCFG_PIT8253_ADD( "pit8253", pc9821_pit8253_config )
37083694   MCFG_I8237_ADD("i8237", 16000000, pc9801rs_dmac_intf) // unknown clock
3709   MCFG_PIC8259_ADD( "pic8259_master", pic8259_master_config )
3710   MCFG_PIC8259_ADD( "pic8259_slave", pic8259_slave_config )
3695   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(pc9801_state, pc9801_master_set_int_line), VCC, READ8(pc9801_state,get_slave_ack) )
3696   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL ) // TODO: Check ir7_w
37113697   MCFG_I8255_ADD( "ppi8255_sys", ppi_system_intf )
37123698   MCFG_I8255_ADD( "ppi8255_prn", ppi_printer_intf )
37133699   MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf )
trunk/src/mess/drivers/fmtowns.c
r22842r22843
26912691   }
26922692   return 0x00;
26932693}
2694static const struct pic8259_interface towns_pic8259_master_config =
2695{
2696   DEVCB_DRIVER_LINE_MEMBER(towns_state,towns_pic_irq),
2697   DEVCB_LINE_VCC,
2698   DEVCB_DRIVER_MEMBER(towns_state,get_slave_ack)
2699};
27002694
2701
2702static const struct pic8259_interface towns_pic8259_slave_config =
2703{
2704   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
2705   DEVCB_LINE_GND,
2706   DEVCB_NULL
2707};
2708
27092695static const wd17xx_interface towns_mb8877a_interface =
27102696{
27112697   DEVCB_NULL,
r22842r22843
28202806   MCFG_PIT8253_ADD("pit",towns_pit8253_config)
28212807   MCFG_PIT8253_ADD("pit2",towns_pit8253_config_2)
28222808
2823   MCFG_PIC8259_ADD( "pic8259_master", towns_pic8259_master_config )
2809   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(towns_state,towns_pic_irq), VCC, READ8(towns_state,get_slave_ack))
28242810
2825   MCFG_PIC8259_ADD( "pic8259_slave", towns_pic8259_slave_config )
2811   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL)
28262812
28272813   MCFG_MB8877_ADD("fdc",towns_mb8877a_interface)
28282814   MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(towns_floppy_interface)
trunk/src/mess/drivers/pc100.c
r22842r22843
414414   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
415415}
416416
417static const struct pic8259_interface pc100_pic8259_config =
418{
419   DEVCB_DRIVER_LINE_MEMBER(pc100_state, pc100_set_int_line),
420   DEVCB_LINE_GND,
421   DEVCB_NULL
422};
423
424417void pc100_state::machine_start()
425418{
426419   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc100_state::pc100_irq_callback),this));
r22842r22843
500493   MCFG_TIMER_DRIVER_ADD_PERIODIC("10hz", pc100_state, pc100_10hz_irq, attotime::from_hz(MASTER_CLOCK/10))
501494   MCFG_I8255_ADD( "ppi8255_1", pc100_ppi8255_interface_1 )
502495   MCFG_I8255_ADD( "ppi8255_2", pc100_ppi8255_interface_2 )
503   MCFG_PIC8259_ADD( "pic8259", pc100_pic8259_config )
496   MCFG_PIC8259_ADD( "pic8259", WRITELINE(pc100_state, pc100_set_int_line), GND, NULL )
504497   MCFG_UPD765A_ADD("upd765", true, true)
505498   MCFG_MSM58321_ADD("rtc", XTAL_32_768kHz, rtc_intf)
506499
trunk/src/mess/drivers/tdv2324.c
r22842r22843
268268
269269
270270//-------------------------------------------------
271//  pic8259_interface pic_intf
272//-------------------------------------------------
273
274static const struct pic8259_interface pic_intf =
275{
276   DEVCB_NULL,
277   DEVCB_NULL,
278   DEVCB_NULL
279};
280
281
282//-------------------------------------------------
283271//  pit8253_config pit0_intf
284272//-------------------------------------------------
285273
r22842r22843
411399   MCFG_TMS9927_ADD(TMS9937NL_TAG, XTAL_25_39836MHz, vtac_intf)
412400
413401   // devices
414   MCFG_PIC8259_ADD(P8259A_TAG, pic_intf)
402   MCFG_PIC8259_ADD(P8259A_TAG, NULL, NULL, NULL)
415403   MCFG_PIT8253_ADD(P8253_5_0_TAG, pit0_intf)
416404   MCFG_PIT8253_ADD(P8253_5_1_TAG, pit1_intf)
417405   MCFG_Z80SIO2_ADD(MK3887N4_TAG, 8000000/2, sio_intf)
trunk/src/mess/drivers/paso1600.c
r22842r22843
286286   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
287287}
288288
289static const struct pic8259_interface paso1600_pic8259_config =
290{
291   DEVCB_DRIVER_LINE_MEMBER(paso1600_state, paso1600_set_int_line),
292   DEVCB_LINE_GND,
293   DEVCB_NULL
294};
295289
296290void paso1600_state::machine_start()
297291{
r22842r22843
352346
353347   /* Devices */
354348   MCFG_MC6845_ADD("crtc", H46505, 16000000/4, mc6845_intf)    /* unknown clock, hand tuned to get ~60 fps */
355   MCFG_PIC8259_ADD( "pic8259", paso1600_pic8259_config )
349   MCFG_PIC8259_ADD( "pic8259", WRITELINE(paso1600_state, paso1600_set_int_line), GND, NULL )
356350   MCFG_I8237_ADD("8237dma", 16000000/4, paso1600_dma8237_interface)
357351MACHINE_CONFIG_END
358352
trunk/src/mess/drivers/tandy2k.c
r22842r22843
568568
569569*/
570570
571static const struct pic8259_interface pic0_intf =
572{
573   DEVCB_CPU_INPUT_LINE(I80186_TAG, INPUT_LINE_INT0),
574   DEVCB_LINE_VCC,
575   DEVCB_NULL
576};
577
578571/*
579572
580573    IR0     KBDINT10
r22842r22843
588581
589582*/
590583
591static const struct pic8259_interface pic1_intf =
592{
593   DEVCB_CPU_INPUT_LINE(I80186_TAG, INPUT_LINE_INT1),
594   DEVCB_LINE_VCC,
595   DEVCB_NULL
596};
597
598584// Intel 8272 Interface
599585
600586void tandy2k_state::fdc_irq(bool state)
r22842r22843
715701   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
716702   MCFG_I8251_ADD(I8251A_TAG, usart_intf)
717703   MCFG_PIT8253_ADD(I8253_TAG, pit_intf)
718   MCFG_PIC8259_ADD(I8259A_0_TAG, pic0_intf)
719   MCFG_PIC8259_ADD(I8259A_1_TAG, pic1_intf)
704   MCFG_PIC8259_ADD(I8259A_0_TAG, INPUTLINE(I80186_TAG, INPUT_LINE_INT0), VCC, NULL)
705   MCFG_PIC8259_ADD(I8259A_1_TAG, INPUTLINE(I80186_TAG, INPUT_LINE_INT1), VCC, NULL)
720706   MCFG_I8272A_ADD(I8272A_TAG, true)
721707   MCFG_FLOPPY_DRIVE_ADD(I8272A_TAG ":0", tandy2k_floppies, "525qd", 0, floppy_image_device::default_floppy_formats)
722708   MCFG_FLOPPY_DRIVE_ADD(I8272A_TAG ":1", tandy2k_floppies, "525qd", 0, floppy_image_device::default_floppy_formats)
trunk/src/mess/drivers/victor9k.c
r22842r22843
169169
170170*/
171171
172static const struct pic8259_interface pic_intf =
173{
174   DEVCB_CPU_INPUT_LINE(I8088_TAG, INPUT_LINE_IRQ0),
175   DEVCB_LINE_VCC,
176   DEVCB_NULL
177};
178
179172// NEC uPD7201 Interface
180173
181174static UPD7201_INTERFACE( mpsc_intf )
r22842r22843
937930   MCFG_IEEE488_BUS_ADD()
938931   MCFG_IEEE488_NRFD_CALLBACK(DEVWRITELINE(M6522_1_TAG, via6522_device, write_ca1))
939932   MCFG_IEEE488_NDAC_CALLBACK(DEVWRITELINE(M6522_1_TAG, via6522_device, write_ca2))
940   MCFG_PIC8259_ADD(I8259A_TAG, pic_intf)
933   MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8088_TAG, INPUT_LINE_IRQ0), VCC, NULL)
941934   MCFG_PIT8253_ADD(I8253_TAG, pit_intf)
942935   MCFG_UPD7201_ADD(UPD7201_TAG, XTAL_30MHz/30, mpsc_intf)
943936   MCFG_MC6852_ADD(MC6852_TAG, XTAL_30MHz/30, ssda_intf)
trunk/src/mess/drivers/z100.c
r22842r22843
614614   return 0;
615615}
616616
617static const struct pic8259_interface z100_pic8259_master_config =
618{
619   DEVCB_DRIVER_LINE_MEMBER(z100_state, z100_pic_irq),
620   DEVCB_LINE_VCC,
621   DEVCB_DRIVER_MEMBER(z100_state, get_slave_ack)
622};
623
624static const struct pic8259_interface z100_pic8259_slave_config =
625{
626   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir3_w),
627   DEVCB_LINE_GND,
628   DEVCB_NULL
629};
630
631
632617static MC6845_INTERFACE( mc6845_intf )
633618{
634619   "screen",   /* screen we are acting on */
r22842r22843
791776   /* Devices */
792777   MCFG_MC6845_ADD("crtc", MC6845, XTAL_14_31818MHz/8, mc6845_intf)    /* unknown clock, hand tuned to get ~50/~60 fps */
793778
794   MCFG_PIC8259_ADD( "pic8259_master", z100_pic8259_master_config )
795   MCFG_PIC8259_ADD( "pic8259_slave", z100_pic8259_slave_config )
779   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(z100_state, z100_pic_irq), VCC, READ8(z100_state, get_slave_ack) )
780   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir3_w), GND, NULL )
796781
797782   MCFG_PIA6821_ADD("pia0", pia0_intf)
798783   MCFG_PIA6821_ADD("pia1", pia1_intf)
trunk/src/mess/drivers/compis.c
r22842r22843
373373   /* Devices */
374374   MCFG_PIT8253_ADD( "pit8253", compis_pit8253_config )
375375   MCFG_PIT8254_ADD( "pit8254", compis_pit8254_config )
376   MCFG_PIC8259_ADD( "pic8259_master", compis_pic8259_master_config )
377   MCFG_PIC8259_ADD( "pic8259_slave", compis_pic8259_slave_config )
376   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(compis_state, compis_pic8259_master_set_int_line), VCC, READ8(compis_state, get_slave_ack) )
377   MCFG_PIC8259_ADD( "pic8259_slave", WRITELINE(compis_state, compis_pic8259_slave_set_int_line), GND, NULL )
378378   MCFG_I8255_ADD( "ppi8255", compis_ppi_interface )
379379   MCFG_UPD7220_ADD("upd7220", XTAL_4_433619MHz/2, hgdc_intf, upd7220_map) //unknown clock
380380   MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
r22842r22843
413413   /* Devices */
414414   MCFG_PIT8253_ADD( "pit8253", compis_pit8253_config )
415415   MCFG_PIT8254_ADD( "pit8254", compis_pit8254_config )
416   MCFG_PIC8259_ADD( "pic8259_master", compis_pic8259_master_config )
417   MCFG_PIC8259_ADD( "pic8259_slave", compis_pic8259_slave_config )
416   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(compis_state, compis_pic8259_master_set_int_line), VCC, READ8(compis_state, get_slave_ack) )
417   MCFG_PIC8259_ADD( "pic8259_slave", WRITELINE(compis_state, compis_pic8259_slave_set_int_line), GND, NULL )
418418   MCFG_I8255_ADD( "ppi8255", compis_ppi_interface )
419419   MCFG_UPD7220_ADD("upd7220", XTAL_4_433619MHz/2, hgdc_intf, upd7220_map) //unknown clock
420420   MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
trunk/src/mess/drivers/sage2.c
r22842r22843
206206
207207*/
208208
209static const struct pic8259_interface pic_intf =
210{
211   DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_1),
212   DEVCB_LINE_VCC,
213   DEVCB_NULL
214};
215209
216
217210//-------------------------------------------------
218211//  I8255A_INTERFACE( ppi0_intf )
219212//-------------------------------------------------
r22842r22843
568561   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
569562
570563   // devices
571   MCFG_PIC8259_ADD(I8259_TAG, pic_intf)
564   MCFG_PIC8259_ADD(I8259_TAG, INPUTLINE(M68000_TAG, M68K_IRQ_1), VCC, NULL)
572565   MCFG_I8255A_ADD(I8255A_0_TAG, ppi0_intf)
573566   MCFG_I8255A_ADD(I8255A_1_TAG, ppi1_intf)
574567   MCFG_PIT8253_ADD(I8253_0_TAG, pit0_intf)
trunk/src/mess/drivers/pc.c
r22842r22843
995995
996996   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
997997
998   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
998   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
999999
10001000   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
10011001
r22842r22843
10791079
10801080   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
10811081
1082   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1082   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
10831083
10841084   MCFG_I8255_ADD( "ppi8255", pc_ppi8255_interface )
10851085
r22842r22843
11311131
11321132   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
11331133
1134   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1134   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
11351135
11361136   MCFG_I8255_ADD( "ppi8255", pc_ppi8255_interface )
11371137
r22842r22843
11851185
11861186   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
11871187
1188   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1188   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
11891189
11901190   MCFG_I8255_ADD( "ppi8255", pc_ppi8255_interface )
11911191
r22842r22843
12341234
12351235   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
12361236
1237   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1237   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
12381238
12391239   MCFG_I8255_ADD( "ppi8255", pc_ppi8255_interface )
12401240
r22842r22843
13031303
13041304   MCFG_PIT8253_ADD( "pit8253", pcjr_pit8253_config )
13051305
1306   MCFG_PIC8259_ADD( "pic8259", pcjr_pic8259_config )
1306   MCFG_PIC8259_ADD( "pic8259", WRITELINE(pc_state,pcjr_pic8259_set_int_line), VCC, NULL )
13071307
13081308   MCFG_I8255_ADD( "ppi8255", pcjr_ppi8255_interface )
13091309
r22842r22843
13921392
13931393   MCFG_PIT8253_ADD( "pit8253", mc1502_pit8253_config )
13941394
1395   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1395   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
13961396
13971397   MCFG_I8255_ADD( "ppi8255", mc1502_ppi8255_interface )       /* not complete */
13981398   MCFG_I8255_ADD( "ppi8255n2", mc1502_ppi8255_interface_2 )   /* not complete */
r22842r22843
14421442   // maybe XTAL_12_288MHz
14431443   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
14441444
1445   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1445   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
14461446
14471447   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
14481448
r22842r22843
14921492
14931493   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
14941494
1495   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1495   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
14961496
14971497   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
14981498
r22842r22843
15651565
15661566   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
15671567
1568   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1568   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
15691569
15701570   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
15711571
r22842r22843
16201620
16211621   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
16221622
1623   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1623   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
16241624
16251625   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
16261626
r22842r22843
16751675
16761676   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
16771677
1678   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1678   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
16791679
16801680   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
16811681
r22842r22843
17301730
17311731   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
17321732
1733   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1733   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
17341734
17351735   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
17361736
r22842r22843
17851785
17861786   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
17871787
1788   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
1788   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
17891789
17901790   MCFG_I8255_ADD( "ppi8255", ibm5160_ppi8255_interface )
17911791
trunk/src/mess/drivers/m20.c
r22842r22843
950950   }
951951};
952952
953const struct pic8259_interface pic_intf =
954{
955   DEVCB_DRIVER_LINE_MEMBER(m20_state, pic_irq_line_w),
956   DEVCB_LINE_VCC, // we're the only 8259, so we're the master
957   DEVCB_NULL
958};
959
960953static SLOT_INTERFACE_START( m20_floppies )
961954   SLOT_INTERFACE( "5dd", FLOPPY_525_DD )
962955SLOT_INTERFACE_END
r22842r22843
1003996   MCFG_I8251_ADD("i8251_1", kbd_i8251_intf)
1004997   MCFG_I8251_ADD("i8251_2", tty_i8251_intf)
1005998   MCFG_PIT8253_ADD("pit8253", pit8253_intf)
1006   MCFG_PIC8259_ADD("i8259", pic_intf)
999   MCFG_PIC8259_ADD("i8259", WRITELINE(m20_state, pic_irq_line_w), VCC, NULL)
10071000
10081001   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
10091002
trunk/src/mess/drivers/mbc55x.c
r22842r22843
259259   /* Devices */
260260   MCFG_I8251_ADD(I8251A_KB_TAG,mbc55x_i8251a_interface)
261261   MCFG_PIT8253_ADD( PIT8253_TAG, mbc55x_pit8253_config )
262   MCFG_PIC8259_ADD( PIC8259_TAG, mbc55x_pic8259_config )
262   MCFG_PIC8259_ADD( PIC8259_TAG, INPUTLINE(MAINCPU_TAG, INPUT_LINE_IRQ0), VCC, NULL )
263263   MCFG_I8255_ADD( PPI8255_TAG, mbc55x_ppi8255_interface )
264264   MCFG_MC6845_ADD(VID_MC6845_NAME, MC6845, XTAL_14_31818MHz/8, mb55x_mc6845_intf)
265265
trunk/src/mess/drivers/multi16.c
r22842r22843
128128   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
129129}
130130
131static const struct pic8259_interface multi16_pic8259_config =
132{
133   DEVCB_DRIVER_LINE_MEMBER(multi16_state, multi16_set_int_line),
134   DEVCB_LINE_GND,
135   DEVCB_NULL
136};
137
138131void multi16_state::machine_start()
139132{
140133   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(multi16_state::multi16_irq_callback),this));
r22842r22843
179172
180173   /* Devices */
181174   MCFG_MC6845_ADD("crtc", H46505, 16000000/5, mc6845_intf)    /* unknown clock, hand tuned to get ~60 fps */
182   MCFG_PIC8259_ADD( "pic8259", multi16_pic8259_config )
175   MCFG_PIC8259_ADD( "pic8259", WRITELINE(multi16_state, multi16_set_int_line), GND, NULL )
183176MACHINE_CONFIG_END
184177
185178/* ROM definition */
trunk/src/mess/drivers/pk8020.c
r22842r22843
224224   MCFG_I8255_ADD( "ppi8255_2", pk8020_ppi8255_interface_2 )
225225   MCFG_I8255_ADD( "ppi8255_3", pk8020_ppi8255_interface_3 )
226226   MCFG_PIT8253_ADD( "pit8253", pk8020_pit8253_intf )
227   MCFG_PIC8259_ADD( "pic8259", pk8020_pic8259_config )
227   MCFG_PIC8259_ADD( "pic8259", WRITELINE(pk8020_state,pk8020_pic_set_int_line), VCC, NULL )
228228   MCFG_I8251_ADD( "rs232", default_i8251_interface)
229229   MCFG_I8251_ADD( "lan", default_i8251_interface)
230230
trunk/src/mess/drivers/bebox.c
r22842r22843
197197
198198   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, bebox_dma8237_2_config )
199199
200   MCFG_PIC8259_ADD( "pic8259_master", bebox_pic8259_master_config )
200   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(bebox_state,bebox_pic8259_master_set_int_line), VCC, READ8(bebox_state,get_slave_ack) )
201201
202   MCFG_PIC8259_ADD( "pic8259_slave", bebox_pic8259_slave_config )
202   MCFG_PIC8259_ADD( "pic8259_slave", WRITELINE(bebox_state,bebox_pic8259_slave_set_int_line), GND, NULL )
203203
204204   MCFG_NS16550_ADD( "ns16550_0", bebox_uart_inteface_0, 0 )   /* TODO: Verify model */
205205   MCFG_NS16550_ADD( "ns16550_1", bebox_uart_inteface_1, 0 )   /* TODO: Verify model */
trunk/src/mess/drivers/iq151.c
r22842r22843
374374   return 0;
375375}
376376
377
378const struct pic8259_interface iq151_pic8259_config =
379{
380   DEVCB_DRIVER_LINE_MEMBER(iq151_state, pic_set_int_line),
381   DEVCB_LINE_VCC,
382   DEVCB_NULL
383};
384
385377static I8255_INTERFACE( iq151_ppi8255_intf )
386378{
387379   DEVCB_DRIVER_MEMBER(iq151_state, keyboard_row_r),
r22842r22843
448440   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
449441   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
450442
451   MCFG_PIC8259_ADD("pic8259", iq151_pic8259_config)
443   MCFG_PIC8259_ADD("pic8259", WRITELINE(iq151_state, pic_set_int_line), VCC, NULL)
452444
453445   MCFG_I8255_ADD("ppi8255", iq151_ppi8255_intf)
454446
trunk/src/mess/drivers/amstr_pc.c
r22842r22843
268268
269269   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
270270
271   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
271   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
272272
273273   MCFG_I8255_ADD( "ppi8255", pc_ppi8255_interface )
274274
r22842r22843
341341
342342   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, ibm5150_dma8237_config )
343343
344   MCFG_PIC8259_ADD( "pic8259", ibm5150_pic8259_config )
344   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
345345
346346   MCFG_I8255_ADD( "ppi8255", pc_ppi8255_interface )
347347
trunk/src/mess/drivers/pc88va.c
r22842r22843
16371637   return 0x00;
16381638}
16391639
1640static const struct pic8259_interface pc88va_pic8259_master_config =
1641{
1642   DEVCB_DRIVER_LINE_MEMBER(pc88va_state, pc88va_pic_irq),
1643   DEVCB_LINE_VCC,
1644   DEVCB_DRIVER_MEMBER(pc88va_state,get_slave_ack)
1645};
1646
1647static const struct pic8259_interface pc88va_pic8259_slave_config =
1648{
1649   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir7_w),
1650   DEVCB_LINE_GND,
1651   DEVCB_NULL
1652};
1653
16541640void pc88va_state::machine_start()
16551641{
16561642   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc88va_state::pc88va_irq_callback),this));
r22842r22843
18561842
18571843   MCFG_I8255_ADD( "d8255_2s", slave_fdd_intf )
18581844
1859   MCFG_PIC8259_ADD( "pic8259_master", pc88va_pic8259_master_config )
1860   MCFG_PIC8259_ADD( "pic8259_slave", pc88va_pic8259_slave_config )
1845   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(pc88va_state, pc88va_pic_irq), VCC, READ8(pc88va_state,get_slave_ack) )
18611846
1847   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL )
1848
18621849   MCFG_UPD71071_ADD("dmac",pc88va_dma_config)
18631850
18641851   MCFG_UPD765A_ADD("upd765", false, true)
trunk/src/mess/drivers/pc1512.c
r22842r22843
916916   return m_pic->inta_r();
917917}
918918
919static const struct pic8259_interface pic_intf =
920{
921   DEVCB_CPU_INPUT_LINE(I8086_TAG, INPUT_LINE_IRQ0),
922   DEVCB_LINE_VCC,
923   DEVCB_NULL
924};
925919
926
927920//-------------------------------------------------
928921//  pit8253_config pit_intf
929922//-------------------------------------------------
r22842r22843
12441237   // devices
12451238   MCFG_PC1512_KEYBOARD_ADD(kb_intf)
12461239   MCFG_I8237_ADD(I8237A5_TAG, XTAL_24MHz/6, dmac_intf)
1247   MCFG_PIC8259_ADD(I8259A2_TAG, pic_intf)
1240   MCFG_PIC8259_ADD(I8259A2_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NULL)
12481241   MCFG_PIT8253_ADD(I8253_TAG, pit_intf)
12491242   MCFG_MC146818_IRQ_ADD(MC146818_TAG, MC146818_STANDARD, rtc_intf)
12501243   MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG)
r22842r22843
12891282   // devices
12901283   MCFG_PC1512_KEYBOARD_ADD(kb_intf)
12911284   MCFG_I8237_ADD(I8237A5_TAG, XTAL_24MHz/6, dmac_intf)
1292   MCFG_PIC8259_ADD(I8259A2_TAG, pic_intf)
1285   MCFG_PIC8259_ADD(I8259A2_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NULL)
12931286   MCFG_PIT8253_ADD(I8253_TAG, pit_intf)
12941287   MCFG_MC146818_IRQ_ADD(MC146818_TAG, MC146818_STANDARD, rtc_intf)
12951288   MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG)
trunk/src/mess/machine/irisha.c
r22842r22843
127127   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
128128}
129129
130const struct pic8259_interface irisha_pic8259_config =
131{
132   DEVCB_DRIVER_LINE_MEMBER(irisha_state,irisha_pic_set_int_line),
133   DEVCB_LINE_VCC,
134   DEVCB_NULL
135};
136
137130const struct pit8253_config irisha_pit8253_intf =
138131{
139132   {
trunk/src/mess/machine/southbridge.c
r22842r22843
99#include "machine/southbridge.h"
1010#include "machine/pc_keyboards.h"
1111
12const struct pic8259_interface at_pic8259_master_config =
13{
14   DEVCB_CPU_INPUT_LINE(":maincpu", 0),
15   DEVCB_LINE_VCC,
16   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, get_slave_ack)
17};
1812
19const struct pic8259_interface at_pic8259_slave_config =
20{
21   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir2_w),
22   DEVCB_LINE_GND,
23   DEVCB_NULL
24};
25
2613const struct pit8253_config at_pit8254_config =
2714{
2815   {
r22842r22843
127114   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, at_dma8237_1_config )
128115   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, at_dma8237_2_config )
129116
130   MCFG_PIC8259_ADD( "pic8259_master", at_pic8259_master_config )
131   MCFG_PIC8259_ADD( "pic8259_slave", at_pic8259_slave_config )
117   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, DEVREAD8(DEVICE_SELF_OWNER, southbridge_device, get_slave_ack) )
118   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
132119
133120   MCFG_AT_KEYBOARD_CONTROLLER_ADD("keybc", XTAL_12MHz, keyboard_controller_intf)
134121   MCFG_PC_KBDC_ADD("pc_kbdc", pc_kbdc_intf)
trunk/src/mess/machine/at.c
r22842r22843
2121   return 0x00;
2222}
2323
24const struct pic8259_interface at_pic8259_master_config =
25{
26   DEVCB_CPU_INPUT_LINE("maincpu", 0),
27   DEVCB_LINE_VCC,
28   DEVCB_DRIVER_MEMBER(at_state, get_slave_ack)
29};
30
31const struct pic8259_interface at_pic8259_slave_config =
32{
33   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir2_w),
34   DEVCB_LINE_GND,
35   DEVCB_NULL
36};
37
38
39
4024/*************************************************************************
4125 *
4226 *      PC Speaker related
trunk/src/mess/machine/b2m.c
r22842r22843
350350   return m_pic->acknowledge();
351351}
352352
353const struct pic8259_interface b2m_pic8259_config =
354{
355   DEVCB_DRIVER_LINE_MEMBER(b2m_state,b2m_pic_set_int_line),
356   DEVCB_LINE_VCC,
357   DEVCB_NULL
358};
359
360353INTERRUPT_GEN_MEMBER(b2m_state::b2m_vblank_interrupt)
361354{
362355   m_vblank_state++;
trunk/src/mess/machine/pc.c
r22842r22843
279279
280280/*************************************************************
281281 *
282 * pic8259 configuration
283 *
284 *************************************************************/
285
286const struct pic8259_interface ibm5150_pic8259_config =
287{
288   DEVCB_CPU_INPUT_LINE("maincpu", 0),
289   DEVCB_LINE_VCC,
290   DEVCB_NULL
291};
292
293
294/*************************************************************
295 *
296282 * PCJR pic8259 configuration
297283 *
298284 * Part of the PCJR CRT POST test at address F0452/F0454 writes
r22842r22843
325311   }
326312}
327313
328const struct pic8259_interface pcjr_pic8259_config =
329{
330   DEVCB_DRIVER_LINE_MEMBER(pc_state,pcjr_pic8259_set_int_line),
331   DEVCB_LINE_VCC,
332   DEVCB_NULL
333};
334
335
336314/*************************************************************************
337315 *
338316 *      PC Speaker related
trunk/src/mess/machine/pk8020.c
r22842r22843
946946   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
947947}
948948
949const struct pic8259_interface pk8020_pic8259_config =
950{
951   DEVCB_DRIVER_LINE_MEMBER(pk8020_state,pk8020_pic_set_int_line),
952   DEVCB_LINE_VCC,
953   DEVCB_NULL
954};
955
956949IRQ_CALLBACK_MEMBER(pk8020_state::pk8020_irq_callback)
957950{
958951   return m_pic8259->acknowledge();
trunk/src/mess/machine/apollo.c
r22842r22843
689689 * pic8259 configuration
690690 *************************************************************/
691691
692static WRITE_LINE_DEVICE_HANDLER( apollo_pic8259_master_set_int_line ) {
692WRITE_LINE_MEMBER( apollo_state::apollo_pic8259_master_set_int_line ) {
693693   static int interrupt_line = -1;
694694   if (state != interrupt_line) {
695      device_t *device = pic8259_master;
695696      DLOG1(("apollo_pic8259_master_set_int_line: %x", state));
696697   }
697698   interrupt_line = state;
r22842r22843
704705      apollo_set_cache_status_register(0x10, state ? 0x10 : 0x00);
705706   }
706707
707   device->machine().device(MAINCPU)->execute().set_input_line_and_vector(M68K_IRQ_6,state ? ASSERT_LINE : CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR);
708   machine().device(MAINCPU)->execute().set_input_line_and_vector(M68K_IRQ_6,state ? ASSERT_LINE : CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR);
708709}
709710
710static WRITE_LINE_DEVICE_HANDLER( apollo_pic8259_slave_set_int_line ) {
711WRITE_LINE_MEMBER( apollo_state::apollo_pic8259_slave_set_int_line ) {
711712   static int interrupt_line = -1;
712713   if (state != interrupt_line) {
714      device_t *device = pic8259_slave;
713715      DLOG1(("apollo_pic8259_slave_set_int_line: %x", state));
714716      interrupt_line = state;
715717      apollo_pic_set_irq_line(device, 3, state);
716718   }
717719}
718720
719static const struct pic8259_interface apollo_pic8259_master_config = {
720      DEVCB_LINE(apollo_pic8259_master_set_int_line) };
721721
722static const struct pic8259_interface apollo_pic8259_slave_config = {
723      DEVCB_LINE(apollo_pic8259_slave_set_int_line) };
724
725722//##########################################################################
726723// machine/apollo_ptm.c - APOLLO DS3500 Programmable Timer 6840
727724//##########################################################################
r22842r22843
13701367
13711368   MCFG_I8237_ADD( APOLLO_DMA1_TAG, XTAL_14_31818MHz/3, apollo_dma8237_1_config )
13721369   MCFG_I8237_ADD( APOLLO_DMA2_TAG, XTAL_14_31818MHz/3, apollo_dma8237_2_config )
1373   MCFG_PIC8259_ADD( APOLLO_PIC1_TAG, apollo_pic8259_master_config )
1374   MCFG_PIC8259_ADD( APOLLO_PIC2_TAG, apollo_pic8259_slave_config )
1370   MCFG_PIC8259_ADD( APOLLO_PIC1_TAG, WRITELINE(apollo_state,apollo_pic8259_master_set_int_line), NULL, NULL ) // TODO: Doublecheck config
1371   MCFG_PIC8259_ADD( APOLLO_PIC2_TAG, WRITELINE(apollo_state,apollo_pic8259_slave_set_int_line), NULL, NULL ) // TODO: Doublecheck config
13751372   MCFG_PTM6840_ADD(APOLLO_PTM_TAG, apollo_ptm_config)
13761373   MCFG_MC146818_ADD( APOLLO_RTC_TAG, MC146818_UTC )
13771374   MCFG_DUART68681_ADD( APOLLO_SIO_TAG, XTAL_3_6864MHz, apollo_sio_config )
trunk/src/mess/machine/bebox.c
r22842r22843
506506   return 0x00;
507507}
508508
509const struct pic8259_interface bebox_pic8259_master_config =
510{
511   DEVCB_DRIVER_LINE_MEMBER(bebox_state,bebox_pic8259_master_set_int_line),
512   DEVCB_LINE_VCC,
513   DEVCB_DRIVER_MEMBER(bebox_state,get_slave_ack)
514};
515509
516const struct pic8259_interface bebox_pic8259_slave_config =
517{
518   DEVCB_DRIVER_LINE_MEMBER(bebox_state,bebox_pic8259_slave_set_int_line),
519   DEVCB_LINE_GND,
520   DEVCB_NULL
521};
522
523
524510/*************************************
525511 *
526512 *  Floppy/IDE/ATA
trunk/src/mess/machine/compis.c
r22842r22843
12741274   return 0;
12751275}
12761276
1277const struct pic8259_interface compis_pic8259_master_config =
1278{
1279   DEVCB_DRIVER_LINE_MEMBER(compis_state, compis_pic8259_master_set_int_line),
1280   DEVCB_LINE_VCC,
1281   DEVCB_DRIVER_MEMBER(compis_state, get_slave_ack)
1282};
12831277
1284const struct pic8259_interface compis_pic8259_slave_config =
1285{
1286   DEVCB_DRIVER_LINE_MEMBER(compis_state, compis_pic8259_slave_set_int_line),
1287   DEVCB_LINE_GND,
1288   DEVCB_NULL
1289};
1290
1291
12921278IRQ_CALLBACK_MEMBER(compis_state::compis_irq_callback)
12931279{
12941280   return m_8259m->inta_r();
trunk/src/mess/machine/genpc.c
r22842r22843
191191   m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
192192}
193193
194const struct pic8259_interface pc_pic8259_config =
195{
196   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_cpu_line),
197   DEVCB_LINE_VCC,
198   DEVCB_NULL
199};
200
201
202194WRITE_LINE_MEMBER(ibm5160_mb_device::pc_speaker_set_spkrdata)
203195{
204196   m_pc_spkrdata = state ? 1 : 0;
r22842r22843
481473
482474   MCFG_I8237_ADD( "dma8237", XTAL_14_31818MHz/3, pc_dma8237_config )
483475
484   MCFG_PIC8259_ADD( "pic8259", pc_pic8259_config )
476   MCFG_PIC8259_ADD( "pic8259", DEVWRITELINE(DEVICE_SELF_OWNER, ibm5160_mb_device, pc_cpu_line), VCC, NULL )
485477
486478   MCFG_I8255A_ADD( "ppi8255", pc_ppi8255_interface )
487479
trunk/src/mess/machine/mbc55x.c
r22842r22843
109109
110110/* PIC 8259 Configuration */
111111
112const struct pic8259_interface mbc55x_pic8259_config =
113{
114   DEVCB_CPU_INPUT_LINE(MAINCPU_TAG, INPUT_LINE_IRQ0),
115   DEVCB_LINE_VCC,
116   DEVCB_NULL
117};
118
119112READ8_MEMBER(mbc55x_state::mbcpic8259_r)
120113{
121114   return m_pic->read(space, offset>>1);
trunk/src/mess/machine/s100_wunderbus.c
r22842r22843
5454   m_bus->int_w(state);
5555}
5656
57static struct pic8259_interface pic_intf =
58{
59   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, s100_wunderbus_device, pic_int_w),
60   DEVCB_LINE_VCC,
61   DEVCB_NULL
62};
6357
64
6558//-------------------------------------------------
6659//  ins8250_interface ace1_intf
6760//-------------------------------------------------
r22842r22843
148141//-------------------------------------------------
149142
150143static MACHINE_CONFIG_FRAGMENT( s100_wunderbus )
151   MCFG_PIC8259_ADD(I8259A_TAG, pic_intf)
144   MCFG_PIC8259_ADD(I8259A_TAG, DEVWRITELINE(DEVICE_SELF_OWNER, s100_wunderbus_device, pic_int_w), VCC, NULL)
152145   MCFG_INS8250_ADD(INS8250_1_TAG, ace1_intf, XTAL_18_432MHz/10)
153146   MCFG_INS8250_ADD(INS8250_2_TAG, ace2_intf, XTAL_18_432MHz/10)
154147   MCFG_INS8250_ADD(INS8250_3_TAG, ace3_intf, XTAL_18_432MHz/10)
trunk/src/mess/includes/b2m.h
r22842r22843
7777/*----------- defined in machine/b2m.c -----------*/
7878
7979extern const struct pit8253_config b2m_pit8253_intf;
80extern const struct pic8259_interface b2m_pic8259_config;
8180
8281extern const i8255_interface b2m_ppi8255_interface_1;
8382extern const i8255_interface b2m_ppi8255_interface_2;
trunk/src/mess/includes/bebox.h
r22842r22843
108108extern const struct pit8253_config bebox_pit8254_config;
109109extern const i8237_interface bebox_dma8237_1_config;
110110extern const i8237_interface bebox_dma8237_2_config;
111extern const struct pic8259_interface bebox_pic8259_master_config;
112extern const struct pic8259_interface bebox_pic8259_slave_config;
113111extern const ins8250_interface bebox_uart_inteface_0;
114112extern const ins8250_interface bebox_uart_inteface_1;
115113extern const ins8250_interface bebox_uart_inteface_2;
trunk/src/mess/includes/apollo.h
r22842r22843
207207   DECLARE_WRITE_LINE_MEMBER( apollo_dma8237_out_eop );
208208   DECLARE_WRITE_LINE_MEMBER( apollo_dma_1_hrq_changed );
209209   DECLARE_WRITE_LINE_MEMBER( apollo_dma_2_hrq_changed );
210   DECLARE_WRITE_LINE_MEMBER( apollo_pic8259_master_set_int_line );
211   DECLARE_WRITE_LINE_MEMBER( apollo_pic8259_slave_set_int_line );
210212};
211213
212214MACHINE_CONFIG_EXTERN( apollo );
trunk/src/mess/includes/pc.h
r22842r22843
192192extern const struct pit8253_config ibm5150_pit8253_config;
193193extern const struct pit8253_config pcjr_pit8253_config;
194194extern const struct pit8253_config mc1502_pit8253_config;
195extern const struct pic8259_interface ibm5150_pic8259_config;
196extern const struct pic8259_interface pcjr_pic8259_config;
197195extern const ins8250_interface ibm5150_com_interface[4];
198196extern const rs232_port_interface ibm5150_serport_config[4];
199197extern const i8255_interface ibm5160_ppi8255_interface;
trunk/src/mess/includes/mbc55x.h
r22842r22843
172172/*----------- defined in machine/mbc55x.c -----------*/
173173
174174extern const struct pit8253_config mbc55x_pit8253_config;
175extern const struct pic8259_interface mbc55x_pic8259_config;
176175extern const i8255_interface mbc55x_ppi8255_interface;
177176extern const i8251_interface mbc55x_i8251a_interface;
178177extern const i8251_interface mbc55x_i8251b_interface;
trunk/src/mess/includes/irisha.h
r22842r22843
5959
6060extern const i8255_interface irisha_ppi8255_interface;
6161extern const struct pit8253_config irisha_pit8253_intf;
62extern const struct pic8259_interface irisha_pic8259_config;
6362
6463#endif /* IRISHA_H_ */
trunk/src/mess/includes/pk8020.h
r22842r22843
9797extern const i8255_interface pk8020_ppi8255_interface_2;
9898extern const i8255_interface pk8020_ppi8255_interface_3;
9999extern const struct pit8253_config pk8020_pit8253_intf;
100extern const struct pic8259_interface pk8020_pic8259_config;
101100
102101#endif /* pk8020_H_ */
trunk/src/mess/includes/compis.h
r22842r22843
203203extern const i8255_interface compis_ppi_interface;
204204extern const struct pit8253_config compis_pit8253_config;
205205extern const struct pit8253_config compis_pit8254_config;
206extern const struct pic8259_interface compis_pic8259_master_config;
207extern const struct pic8259_interface compis_pic8259_slave_config;
208206extern const i8251_interface compis_usart_interface;
209207
210208#endif /* COMPIS_H_ */
trunk/src/mess/includes/at.h
r22842r22843
191191
192192/*----------- defined in machine/at.c -----------*/
193193
194extern const struct pic8259_interface at_pic8259_master_config;
195extern const struct pic8259_interface at_pic8259_slave_config;
196194extern const struct pit8253_config at_pit8254_config;
197195extern const am9517a_interface at_dma8237_1_config;
198196extern const am9517a_interface at_dma8237_2_config;
trunk/src/mame/machine/pcshare.c
r22842r22843
151151   return 0x00;
152152}
153153
154static const struct pic8259_interface pic8259_1_config =
155{
156   DEVCB_CPU_INPUT_LINE("maincpu", 0),
157   DEVCB_LINE_VCC,
158   DEVCB_DRIVER_MEMBER(pcat_base_state, get_slave_ack)
159};
160
161static const struct pic8259_interface pic8259_2_config =
162{
163   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
164   DEVCB_LINE_GND,
165   DEVCB_NULL
166};
167
168154IRQ_CALLBACK_MEMBER(pcat_base_state::irq_callback)
169155{
170156   return m_pic8259_1->acknowledge();
r22842r22843
240226ADDRESS_MAP_END
241227
242228MACHINE_CONFIG_FRAGMENT(pcat_common)
243   MCFG_PIC8259_ADD( "pic8259_1", pic8259_1_config )
244   MCFG_PIC8259_ADD( "pic8259_2", pic8259_2_config )
229   MCFG_PIC8259_ADD( "pic8259_1", INPUTLINE("maincpu", 0), VCC, READ8(pcat_base_state, get_slave_ack) )
230   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
245231   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
246232   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
247233   MCFG_PIT8254_ADD( "pit8254", at_pit8254_config )
trunk/src/mame/drivers/queen.c
r22842r22843
462462   return 0x00;
463463}
464464
465static const struct pic8259_interface queen_pic8259_1_config =
466{
467   DEVCB_DRIVER_LINE_MEMBER(queen_state,queen_pic8259_1_set_int_line),
468   DEVCB_LINE_VCC,
469   DEVCB_DRIVER_MEMBER(queen_state,get_slave_ack)
470};
471
472static const struct pic8259_interface queen_pic8259_2_config =
473{
474   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
475   DEVCB_LINE_GND,
476   DEVCB_NULL
477};
478
479465READ8_MEMBER(queen_state::get_out2)
480466{
481467   return pit8253_get_output( m_pit8254, 2 );
r22842r22843
524510   MCFG_PIT8254_ADD( "pit8254", queen_pit8254_config )
525511   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
526512   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
527   MCFG_PIC8259_ADD( "pic8259_1", queen_pic8259_1_config )
528   MCFG_PIC8259_ADD( "pic8259_2", queen_pic8259_2_config )
513   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(queen_state,queen_pic8259_1_set_int_line), VCC, READ8(queen_state,get_slave_ack) )
514   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
529515
530516   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
531517
trunk/src/mame/drivers/savquest.c
r22842r22843
561561   return 0x00;
562562}
563563
564static const struct pic8259_interface savquest_pic8259_1_config =
565{
566   DEVCB_DRIVER_LINE_MEMBER(savquest_state,savquest_pic8259_1_set_int_line),
567   DEVCB_LINE_VCC,
568   DEVCB_DRIVER_MEMBER(savquest_state,get_slave_ack)
569};
570
571static const struct pic8259_interface savquest_pic8259_2_config =
572{
573   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
574   DEVCB_LINE_GND,
575   DEVCB_NULL
576};
577
578564READ8_MEMBER(savquest_state::get_out2)
579565{
580566   return pit8253_get_output( m_pit8254, 2 );
r22842r22843
627613   MCFG_PIT8254_ADD( "pit8254", savquest_pit8254_config )
628614   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
629615   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
630   MCFG_PIC8259_ADD( "pic8259_1", savquest_pic8259_1_config )
631   MCFG_PIC8259_ADD( "pic8259_2", savquest_pic8259_2_config )
616   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(savquest_state,savquest_pic8259_1_set_int_line), VCC, READ8(savquest_state,get_slave_ack) )
617   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
632618
633619   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
634620
trunk/src/mame/drivers/photoply.c
r22842r22843
215215   return 0x00;
216216}
217217
218static const struct pic8259_interface pic8259_1_config =
219{
220   DEVCB_DRIVER_LINE_MEMBER(photoply_state,pic8259_1_set_int_line),
221   DEVCB_LINE_VCC,
222   DEVCB_DRIVER_MEMBER(photoply_state,get_slave_ack)
223};
224
225static const struct pic8259_interface pic8259_2_config =
226{
227   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
228   DEVCB_LINE_GND,
229   DEVCB_NULL
230};
231
232218IRQ_CALLBACK_MEMBER(photoply_state::irq_callback)
233219{
234220   return m_pic8259_1->acknowledge();
r22842r22843
388374   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
389375
390376//  MCFG_FRAGMENT_ADD( at_kbdc8042 )
391   MCFG_PIC8259_ADD( "pic8259_1", pic8259_1_config )
392   MCFG_PIC8259_ADD( "pic8259_2", pic8259_2_config )
377   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(photoply_state,pic8259_1_set_int_line), VCC, READ8(photoply_state,get_slave_ack) )
378   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
393379   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
394380   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
395381   MCFG_PIT8254_ADD( "pit8254", at_pit8254_config )
trunk/src/mame/drivers/mediagx.c
r22842r22843
11071107   return 0x00;
11081108}
11091109
1110static const struct pic8259_interface mediagx_pic8259_1_config =
1111{
1112   DEVCB_DRIVER_LINE_MEMBER(mediagx_state,mediagx_pic8259_1_set_int_line),
1113   DEVCB_LINE_VCC,
1114   DEVCB_DRIVER_MEMBER(mediagx_state,get_slave_ack)
1115};
11161110
1117static const struct pic8259_interface mediagx_pic8259_2_config =
1118{
1119   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir2_w),
1120   DEVCB_LINE_GND,
1121   DEVCB_NULL
1122};
1123
1124
11251111/*************************************************************
11261112 *
11271113 * pit8254 configuration
r22842r22843
11901176
11911177   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
11921178
1193   MCFG_PIC8259_ADD( "pic8259_master", mediagx_pic8259_1_config )
1179   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(mediagx_state,mediagx_pic8259_1_set_int_line), VCC, READ8(mediagx_state,get_slave_ack) )
11941180
1195   MCFG_PIC8259_ADD( "pic8259_slave", mediagx_pic8259_2_config )
1181   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
11961182
11971183   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
11981184   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
trunk/src/mame/drivers/midqslvr.c
r22842r22843
598598   return 0x00;
599599}
600600
601static const struct pic8259_interface midqslvr_pic8259_1_config =
602{
603   DEVCB_DRIVER_LINE_MEMBER(midqslvr_state,midqslvr_pic8259_1_set_int_line),
604   DEVCB_LINE_VCC,
605   DEVCB_DRIVER_MEMBER(midqslvr_state,get_slave_ack)
606};
607
608static const struct pic8259_interface midqslvr_pic8259_2_config =
609{
610   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
611   DEVCB_LINE_GND,
612   DEVCB_NULL
613};
614
615601READ8_MEMBER(midqslvr_state::get_out2)
616602{
617603   return pit8253_get_output( m_pit8254, 2 );
r22842r22843
669655   MCFG_PIT8254_ADD( "pit8254", midqslvr_pit8254_config )
670656   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
671657   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
672   MCFG_PIC8259_ADD( "pic8259_1", midqslvr_pic8259_1_config )
673   MCFG_PIC8259_ADD( "pic8259_2", midqslvr_pic8259_2_config )
658   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(midqslvr_state,midqslvr_pic8259_1_set_int_line), VCC, READ8(midqslvr_state,get_slave_ack) )
659   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
674660
675661   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
676662
trunk/src/mame/drivers/calchase.c
r22842r22843
842842   return 0x00;
843843}
844844
845static const struct pic8259_interface calchase_pic8259_1_config =
846{
847   DEVCB_DRIVER_LINE_MEMBER(calchase_state,calchase_pic8259_1_set_int_line),
848   DEVCB_LINE_VCC,
849   DEVCB_DRIVER_MEMBER(calchase_state,get_slave_ack)
850};
851845
852static const struct pic8259_interface calchase_pic8259_2_config =
853{
854   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
855   DEVCB_LINE_GND,
856   DEVCB_NULL
857};
858
859
860
861
862846/*************************************************************
863847 *
864848 * pit8254 configuration
r22842r22843
916900   MCFG_PIT8254_ADD( "pit8254", calchase_pit8254_config )
917901   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
918902   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
919   MCFG_PIC8259_ADD( "pic8259_1", calchase_pic8259_1_config )
920   MCFG_PIC8259_ADD( "pic8259_2", calchase_pic8259_2_config )
903   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(calchase_state,calchase_pic8259_1_set_int_line), VCC, READ8(calchase_state,get_slave_ack) )
904   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
921905   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
922906   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
923907
trunk/src/mame/drivers/fruitpc.c
r22842r22843
476476   return 0x00;
477477}
478478
479static const struct pic8259_interface fruitpc_pic8259_1_config =
480{
481   DEVCB_DRIVER_LINE_MEMBER(fruitpc_state,fruitpc_pic8259_1_set_int_line),
482   DEVCB_LINE_VCC,
483   DEVCB_DRIVER_MEMBER(fruitpc_state,get_slave_ack)
484};
485479
486static const struct pic8259_interface fruitpc_pic8259_2_config =
487{
488   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
489   DEVCB_LINE_GND,
490   DEVCB_NULL
491};
492
493
494
495
496480/*************************************************************
497481 *
498482 * pit8254 configuration
r22842r22843
547531   MCFG_PIT8254_ADD( "pit8254", fruitpc_pit8254_config )
548532   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
549533   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
550   MCFG_PIC8259_ADD( "pic8259_1", fruitpc_pic8259_1_config )
551   MCFG_PIC8259_ADD( "pic8259_2", fruitpc_pic8259_2_config )
534   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(fruitpc_state,fruitpc_pic8259_1_set_int_line), VCC, READ8(fruitpc_state,get_slave_ack) )
535   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
552536   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
553537   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
554538
trunk/src/mame/drivers/su2000.c
r22842r22843
150150   return 0x00;
151151}
152152
153static const struct pic8259_interface su2000_pic8259_1_config =
154{
155   DEVCB_DRIVER_LINE_MEMBER(su2000_state,su2000_pic8259_1_set_int_line),
156   DEVCB_LINE_VCC,
157   DEVCB_DRIVER_MEMBER(su2000_state,get_slave_ack)
158};
153//static const struct pic8259_interface su2000_pic8259_1_config =
154//{
155//   DEVCB_DRIVER_LINE_MEMBER(su2000_state,su2000_pic8259_1_set_int_line),
156//   DEVCB_LINE_VCC,
157//   DEVCB_DRIVER_MEMBER(su2000_state,get_slave_ack)
158//};
159//
160//static const struct pic8259_interface su2000_pic8259_2_config =
161//{
162//   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
163//   DEVCB_LINE_GND,
164//   DEVCB_NULL
165//};
159166
160static const struct pic8259_interface su2000_pic8259_2_config =
161{
162   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
163   DEVCB_LINE_GND,
164   DEVCB_NULL
165};
166167
167
168168/*************************************************************
169169 *
170170 * PIT8254 Configuration
trunk/src/mame/drivers/voyager.c
r22842r22843
678678   return 0x00;
679679}
680680
681static const struct pic8259_interface voyager_pic8259_1_config =
682{
683   DEVCB_DRIVER_LINE_MEMBER(voyager_state,voyager_pic8259_1_set_int_line),
684   DEVCB_LINE_VCC,
685   DEVCB_DRIVER_MEMBER(voyager_state,get_slave_ack)
686};
687681
688static const struct pic8259_interface voyager_pic8259_2_config =
689{
690   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
691   DEVCB_LINE_GND,
692   DEVCB_NULL
693};
694
695
696
697
698682/*************************************************************
699683 *
700684 * pit8254 configuration
r22842r22843
752736   MCFG_PIT8254_ADD( "pit8254", voyager_pit8254_config )
753737   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
754738   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
755   MCFG_PIC8259_ADD( "pic8259_1", voyager_pic8259_1_config )
756   MCFG_PIC8259_ADD( "pic8259_2", voyager_pic8259_2_config )
739   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(voyager_state,voyager_pic8259_1_set_int_line), VCC, READ8(voyager_state,get_slave_ack) )
740   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
757741   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
758742   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
759743
trunk/src/mame/drivers/chihiro.c
r22842r22843
27892789   return 0x00;
27902790}
27912791
2792static const struct pic8259_interface chihiro_pic8259_1_config =
2793{
2794   DEVCB_DRIVER_LINE_MEMBER(chihiro_state, chihiro_pic8259_1_set_int_line),
2795   DEVCB_LINE_VCC,
2796   DEVCB_DRIVER_MEMBER(chihiro_state,get_slave_ack)
2797};
2798
2799static const struct pic8259_interface chihiro_pic8259_2_config =
2800{
2801   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
2802   DEVCB_LINE_GND,
2803   DEVCB_NULL
2804};
2805
28062792IRQ_CALLBACK_MEMBER(chihiro_state::irq_callback)
28072793{
28082794   int r = 0;
r22842r22843
30623048   MCFG_PCI_BUS_LEGACY_ADD("agpbus", 1)
30633049   MCFG_PCI_BUS_LEGACY_SIBLING("pcibus")
30643050   MCFG_PCI_BUS_LEGACY_DEVICE(0, "NV2A GeForce 3MX Integrated GPU/Northbridge", geforce_pci_r, geforce_pci_w)
3065   MCFG_PIC8259_ADD( "pic8259_1", chihiro_pic8259_1_config )
3066   MCFG_PIC8259_ADD( "pic8259_2", chihiro_pic8259_2_config )
3051   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(chihiro_state, chihiro_pic8259_1_set_int_line), VCC, READ8(chihiro_state,get_slave_ack) )
3052   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
30673053   MCFG_PIT8254_ADD( "pit8254", chihiro_pit8254_config )
30683054   MCFG_IDE_CONTROLLER_ADD( "ide", ide_baseboard, NULL, "bb", true)
30693055   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
trunk/src/mame/drivers/taitowlf.c
r22842r22843
582582   return 0x00;
583583}
584584
585static const struct pic8259_interface taitowlf_pic8259_1_config =
586{
587   DEVCB_DRIVER_LINE_MEMBER(taitowlf_state,taitowlf_pic8259_1_set_int_line),
588   DEVCB_LINE_VCC,
589   DEVCB_DRIVER_MEMBER(taitowlf_state,get_slave_ack)
590};
591585
592static const struct pic8259_interface taitowlf_pic8259_2_config =
593{
594   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
595   DEVCB_LINE_GND,
596   DEVCB_NULL
597};
598
599
600586/*************************************************************
601587 *
602588 * pit8254 configuration
r22842r22843
666652   MCFG_PIT8254_ADD( "pit8254", taitowlf_pit8254_config )
667653   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
668654   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
669   MCFG_PIC8259_ADD( "pic8259_1", taitowlf_pic8259_1_config )
670   MCFG_PIC8259_ADD( "pic8259_2", taitowlf_pic8259_2_config )
655   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(taitowlf_state,taitowlf_pic8259_1_set_int_line), VCC, READ8(taitowlf_state,get_slave_ack) )
656   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
671657   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
672658   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
673659   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
trunk/src/mame/drivers/funkball.c
r22842r22843
10451045   return 0x00;
10461046}
10471047
1048static const struct pic8259_interface funkball_pic8259_1_config =
1049{
1050   DEVCB_DRIVER_LINE_MEMBER(funkball_state,funkball_pic8259_1_set_int_line),
1051   DEVCB_LINE_VCC,
1052   DEVCB_DRIVER_MEMBER(funkball_state,get_slave_ack)
1053};
1054
1055static const struct pic8259_interface funkball_pic8259_2_config =
1056{
1057   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
1058   DEVCB_LINE_GND,
1059   DEVCB_NULL
1060};
1061
10621048READ8_MEMBER(funkball_state::get_out2)
10631049{
10641050   return pit8253_get_output( m_pit8254, 2 );
r22842r22843
11311117   MCFG_PIT8254_ADD( "pit8254", funkball_pit8254_config )
11321118   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
11331119   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
1134   MCFG_PIC8259_ADD( "pic8259_1", funkball_pic8259_1_config )
1135   MCFG_PIC8259_ADD( "pic8259_2", funkball_pic8259_2_config )
1120   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(funkball_state,funkball_pic8259_1_set_int_line), VCC, READ8(funkball_state,get_slave_ack) )
1121   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
11361122
11371123   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
11381124
trunk/src/mame/drivers/gamecstl.c
r22842r22843
645645   return 0x00;
646646}
647647
648static const struct pic8259_interface gamecstl_pic8259_1_config =
649{
650   DEVCB_DRIVER_LINE_MEMBER(gamecstl_state,gamecstl_pic8259_1_set_int_line),
651   DEVCB_LINE_VCC,
652   DEVCB_DRIVER_MEMBER(gamecstl_state,get_slave_ack)
653};
654648
655static const struct pic8259_interface gamecstl_pic8259_2_config =
656{
657   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
658   DEVCB_LINE_GND,
659   DEVCB_NULL
660};
661
662
663649/*************************************************************
664650 *
665651 * pit8254 configuration
r22842r22843
720706
721707   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
722708
723   MCFG_PIC8259_ADD( "pic8259_1", gamecstl_pic8259_1_config )
709   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(gamecstl_state,gamecstl_pic8259_1_set_int_line), VCC, READ8(gamecstl_state,get_slave_ack) )
724710
725   MCFG_PIC8259_ADD( "pic8259_2", gamecstl_pic8259_2_config )
711   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
726712
727713   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
728714   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
trunk/src/mame/drivers/pinball2k.c
r22842r22843
809809   return 0x00;
810810}
811811
812static const struct pic8259_interface mediagx_pic8259_1_config =
813{
814   DEVCB_DRIVER_LINE_MEMBER(pinball2k_state,mediagx_pic8259_1_set_int_line),
815   DEVCB_LINE_VCC,
816   DEVCB_DRIVER_MEMBER(pinball2k_state,get_slave_ack)
817};
818812
819static const struct pic8259_interface mediagx_pic8259_2_config =
820{
821   DEVCB_DEVICE_LINE_MEMBER("pic8259_master", pic8259_device, ir2_w),
822   DEVCB_LINE_GND,
823   DEVCB_NULL
824};
825
826
827813/*************************************************************
828814 *
829815 * pit8254 configuration
r22842r22843
892878
893879   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
894880
895   MCFG_PIC8259_ADD( "pic8259_master", mediagx_pic8259_1_config )
881   MCFG_PIC8259_ADD( "pic8259_master", WRITELINE(pinball2k_state,mediagx_pic8259_1_set_int_line), VCC, READ8(pinball2k_state,get_slave_ack) )
896882
897   MCFG_PIC8259_ADD( "pic8259_slave", mediagx_pic8259_2_config )
883   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
898884
899885   MCFG_IDE_CONTROLLER_ADD("ide", ide_devices, "hdd", NULL, true)
900886   MCFG_IDE_CONTROLLER_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
trunk/src/mame/drivers/gammagic.c
r22842r22843
708708   return 0x00;
709709}
710710
711static const struct pic8259_interface gammagic_pic8259_1_config =
712{
713   DEVCB_DRIVER_LINE_MEMBER(gammagic_state,gammagic_pic8259_1_set_int_line),
714   DEVCB_LINE_VCC,
715   DEVCB_DRIVER_MEMBER(gammagic_state,get_slave_ack)
716};
717
718static const struct pic8259_interface gammagic_pic8259_2_config =
719{
720   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
721   DEVCB_LINE_GND,
722   DEVCB_NULL
723};
724
725711/*************************************************************
726712 *
727713 * pit8254 configuration
r22842r22843
771757   MCFG_PIT8254_ADD( "pit8254", gammagic_pit8254_config )
772758   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
773759   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
774   MCFG_PIC8259_ADD( "pic8259_1", gammagic_pic8259_1_config )
775   MCFG_PIC8259_ADD( "pic8259_2", gammagic_pic8259_2_config )
760   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(gammagic_state,gammagic_pic8259_1_set_int_line), VCC, READ8(gammagic_state,get_slave_ack) )
761   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
776762   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
777763//  MCFG_I82371SB_ADD("i82371sb")
778764//  MCFG_I82439TX_ADD("i82439tx", "maincpu", "user")
trunk/src/mame/drivers/quakeat.c
r22842r22843
134134   return 0x00;
135135}
136136
137static const struct pic8259_interface quakeat_pic8259_1_config =
138{
139   DEVCB_DRIVER_LINE_MEMBER(quakeat_state,quakeat_pic8259_1_set_int_line),
140   DEVCB_LINE_VCC,
141   DEVCB_DRIVER_MEMBER(quakeat_state,get_slave_ack)
142};
143
144static const struct pic8259_interface quakeat_pic8259_2_config =
145{
146   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
147   DEVCB_LINE_GND,
148   DEVCB_NULL
149};
150
151137/*************************************************************/
152138
153139static INPUT_PORTS_START( quake )
r22842r22843
176162   MCFG_CPU_IO_MAP(quake_io)
177163
178164
179   MCFG_PIC8259_ADD( "pic8259_1", quakeat_pic8259_1_config )
180   MCFG_PIC8259_ADD( "pic8259_2", quakeat_pic8259_2_config )
165   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(quakeat_state,quakeat_pic8259_1_set_int_line), VCC, READ8(quakeat_state,get_slave_ack) )
166   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
181167
182168   /* video hardware */
183169   MCFG_SCREEN_ADD("screen", RASTER)
trunk/src/mame/drivers/xtom3d.c
r22842r22843
590590   return 0x00;
591591}
592592
593static const struct pic8259_interface xtom3d_pic8259_1_config =
594{
595   DEVCB_DRIVER_LINE_MEMBER(xtom3d_state,xtom3d_pic8259_1_set_int_line),
596   DEVCB_LINE_VCC,
597   DEVCB_DRIVER_MEMBER(xtom3d_state,get_slave_ack)
598};
599
600static const struct pic8259_interface xtom3d_pic8259_2_config =
601{
602   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
603   DEVCB_LINE_GND,
604   DEVCB_NULL
605};
606
607593READ8_MEMBER(xtom3d_state::get_out2)
608594{
609595   return pit8253_get_output( m_pit8254, 2 );
r22842r22843
660646   MCFG_PIT8254_ADD( "pit8254", xtom3d_pit8254_config )
661647   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
662648   MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
663   MCFG_PIC8259_ADD( "pic8259_1", xtom3d_pic8259_1_config )
664   MCFG_PIC8259_ADD( "pic8259_2", xtom3d_pic8259_2_config )
649   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(xtom3d_state,xtom3d_pic8259_1_set_int_line), VCC, READ8(xtom3d_state,get_slave_ack) )
650   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
665651
666652   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
667653
trunk/src/mame/drivers/pcxt.c
r22842r22843
530530   return 0x00;
531531}
532532
533static const struct pic8259_interface pic8259_1_config =
534{
535   DEVCB_DRIVER_LINE_MEMBER(pcxt_state,pic8259_1_set_int_line),
536   DEVCB_LINE_VCC,
537   DEVCB_DRIVER_MEMBER(pcxt_state,get_slave_ack)
538};
539
540static const struct pic8259_interface pic8259_2_config =
541{
542   DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir2_w),
543   DEVCB_LINE_GND,
544   DEVCB_NULL
545};
546
547533IRQ_CALLBACK_MEMBER(pcxt_state::irq_callback)
548534{
549535   return m_pic8259_1->acknowledge();
r22842r22843
738724
739725   MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config )
740726
741   MCFG_PIC8259_ADD( "pic8259_1", pic8259_1_config )
727   MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(pcxt_state,pic8259_1_set_int_line), VCC, READ8(pcxt_state,get_slave_ack) )
742728
743   MCFG_PIC8259_ADD( "pic8259_2", pic8259_2_config )
729   MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL )
744730
745731   MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
746732

Previous 199869 Revisions Next


© 1997-2024 The MAME Team