Previous 199869 Revisions Next

r20677 Saturday 2nd February, 2013 at 21:44:17 UTC by Curt Coder
(MESS) Used modern accessors for i8259. (nw)
[src/mess/drivers]apricotp.c pc1512.c sage2.c tandy2k.c trs80m2.c

trunk/src/mess/drivers/sage2.c
r20676r20677
337337   }
338338
339339   // s? interrupt
340   pic8259_ir7_w(m_pic, BIT(data, 2));
340   m_pic->ir7_w(BIT(data, 2));
341341
342342   // processor LED
343343   output_set_led_value(0, BIT(data, 3));
r20676r20677
349349   if (!BIT(data, 6))
350350   {
351351      // clear ACK interrupt
352      pic8259_ir5_w(m_pic, CLEAR_LINE);
352      m_pic->ir5_w(CLEAR_LINE);
353353   }
354354
355355   if (!BIT(data, 7))
356356   {
357357      // clear modem interrupt
358      pic8259_ir4_w(m_pic, CLEAR_LINE);
358      m_pic->ir4_w(CLEAR_LINE);
359359   }
360360}
361361
r20676r20677
380380      {
381381         0, // from U75 OUT0
382382         DEVCB_LINE_VCC,
383         DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir6_w)
383         DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir6_w)
384384      }, {
385385         XTAL_16MHz/2/125,
386386         DEVCB_LINE_VCC,
r20676r20677
388388      }, {
389389         0, // from OUT2
390390         DEVCB_LINE_VCC,
391         DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir0_w)
391         DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir0_w)
392392      }
393393   }
394394};
r20676r20677
442442   DEVCB_NULL,
443443   DEVCB_NULL,
444444   DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_5),
445   DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir2_w),
445   DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir2_w),
446446   DEVCB_NULL,
447447   DEVCB_NULL
448448};
r20676r20677
459459   DEVCB_NULL,
460460   DEVCB_NULL,
461461   DEVCB_NULL,
462   DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir1_w),
463   DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir3_w),
462   DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir1_w),
463   DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir3_w),
464464   DEVCB_NULL,
465465   DEVCB_NULL
466466};
r20676r20677
494494{
495495   if (!state)
496496   {
497      pic8259_ir5_w(m_pic, ASSERT_LINE);
497      m_pic->ir5_w(ASSERT_LINE);
498498   }
499499}
500500
trunk/src/mess/drivers/apricotp.c
r20676r20677
155155
156156WRITE8_MEMBER( fp_state::pint_clr_w )
157157{
158   pic8259_ir6_w(m_pic, CLEAR_LINE);
158   m_pic->ir6_w(CLEAR_LINE);
159159}
160160
161161
r20676r20677
452452      {
453453         2000000,
454454         DEVCB_LINE_VCC,
455         DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir0_w)
455         DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir0_w)
456456      }, {
457457         2000000,
458458         DEVCB_LINE_VCC,
r20676r20677
473473static I8237_INTERFACE( dmac_intf )
474474{
475475   DEVCB_NULL,
476   DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir7_w),
476   DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir7_w),
477477   DEVCB_NULL,
478478   DEVCB_NULL,
479479   { DEVCB_NULL, DEVCB_DEVICE_MEMBER(WD2797_TAG, wd_fdc_t, data_r), DEVCB_NULL, DEVCB_NULL },
r20676r20677
504504   DEVCB_NULL,
505505   DEVCB_NULL,
506506
507   DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir4_w)
507   DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir4_w)
508508};
509509
510510
trunk/src/mess/drivers/tandy2k.c
r20676r20677
158158
159159   int dme = (drq0 > 2) || (drq1 > 2);
160160
161   pic8259_ir6_w(m_pic1, dme);
161   m_pic1->ir6_w(dme);
162162}
163163
164164READ8_MEMBER( tandy2k_state::kbint_clr_r )
r20676r20677
166166   if (m_pb_sel == KBDINEN)
167167   {
168168      m_kb->busy_w(1);
169      pic8259_ir0_w(m_pic1, CLEAR_LINE);
169      m_pic1->ir0_w(CLEAR_LINE);
170170   }
171171
172172   return 0xff;
r20676r20677
357357{
358358   SCREEN_TAG,
359359   10,
360   DEVCB_DEVICE_LINE(I8259A_1_TAG, pic8259_ir1_w),
360   DEVCB_DEVICE_LINE_MEMBER(I8259A_1_TAG, pic8259_device, ir1_w),
361361   DEVCB_NULL, // DMAR     80186 HOLD
362362   DEVCB_DEVICE_LINE_MEMBER(CRT9021B_TAG, crt9021_device, vsync_w), // VS
363363   DEVCB_NULL, // HS
r20676r20677
400400WRITE_LINE_MEMBER( tandy2k_state::rxrdy_w )
401401{
402402   m_rxrdy = state;
403   pic8259_ir2_w(m_pic0, m_rxrdy | m_txrdy);
403   m_pic0->ir2_w(m_rxrdy || m_txrdy);
404404}
405405
406406WRITE_LINE_MEMBER( tandy2k_state::txrdy_w )
407407{
408408   m_txrdy = state;
409   pic8259_ir2_w(m_pic0, m_rxrdy | m_txrdy);
409   m_pic0->ir2_w(m_rxrdy || m_txrdy);
410410}
411411
412412static const i8251_interface usart_intf =
r20676r20677
537537   m_pb_sel = (data >> 1) & 0x03;
538538
539539   // interrupt
540   pic8259_ir3_w(m_pic1, BIT(data, 3));
540   m_pic1->ir3_w(BIT(data, 3));
541541
542542   // printer strobe
543543   m_centronics->strobe_w(BIT(data, 7));
r20676r20677
599599
600600void tandy2k_state::fdc_irq(bool state)
601601{
602   pic8259_ir4_w(m_pic0, state);
602   m_pic0->ir4_w(state);
603603}
604604
605605void tandy2k_state::fdc_drq(bool state)
r20676r20677
638638   if (!m_kbddat && state)
639639   {
640640      m_kb->busy_w(m_kbdclk);
641      pic8259_ir0_w(m_pic1, !m_kbdclk);
641      m_pic1->ir0_w(!m_kbdclk);
642642   }
643643
644644   m_kbddat = state;
trunk/src/mess/drivers/pc1512.c
r20676r20677
6060         data = m_kbd;
6161         m_kb_bits = 0;
6262         m_kb->data_w(1);
63         pic8259_ir1_w(m_pic, CLEAR_LINE);
63         m_pic->ir1_w(CLEAR_LINE);
6464      }
6565      break;
6666
r20676r20677
766766      if (m_kb_bits == 8)
767767      {
768768         m_kb->data_w(0);
769         pic8259_ir1_w(m_pic, ASSERT_LINE);
769         m_pic->ir1_w(ASSERT_LINE);
770770      }
771771   }
772772
r20676r20677
956956      {
957957         XTAL_28_63636MHz/24,
958958         DEVCB_LINE_VCC,
959         DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir0_w)
959         DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir0_w)
960960      }, {
961961         XTAL_28_63636MHz/24,
962962         DEVCB_LINE_VCC,
r20676r20677
976976
977977static const struct mc146818_interface rtc_intf =
978978{
979   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir2_w)
979   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir2_w)
980980};
981981
982982
r20676r20677
987987void pc1512_state::update_fdc_int()
988988{
989989   if (m_nden)
990      pic8259_ir6_w(m_pic, m_dint);
990      m_pic->ir6_w(m_dint);
991991   else
992      pic8259_ir6_w(m_pic, CLEAR_LINE);
992      m_pic->ir6_w(CLEAR_LINE);
993993}
994994
995995void pc1512_state::update_fdc_drq()
r20676r20677
10211021   DEVCB_NULL,
10221022   DEVCB_NULL,
10231023   DEVCB_NULL,
1024   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir4_w),
1024   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir4_w),
10251025   DEVCB_NULL,
10261026   DEVCB_NULL
10271027};
r20676r20677
10341034void pc1512_state::update_ack()
10351035{
10361036   if (m_ack_int_enable)
1037      pic8259_ir7_w(m_pic, m_ack);
1037      m_pic->ir7_w(m_ack);
10381038   else
1039      pic8259_ir7_w(m_pic, CLEAR_LINE);
1039      m_pic->ir7_w(CLEAR_LINE);
10401040}
10411041
10421042WRITE_LINE_MEMBER( pc1512_state::ack_w )
r20676r20677
10641064static const isa8bus_interface isabus_intf =
10651065{
10661066   // interrupts
1067   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir2_w),
1068   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir3_w),
1069   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir4_w),
1070   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir5_w),
1071   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir6_w),
1072   DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir7_w),
1067   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir2_w),
1068   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir3_w),
1069   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir4_w),
1070   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir5_w),
1071   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir6_w),
1072   DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir7_w),
10731073
10741074   // dma request
10751075   DEVCB_DEVICE_LINE_MEMBER(I8237A5_TAG, am9517a_device, dreq1_w),
trunk/src/mess/drivers/trs80m2.c
r20676r20677
277277   m_subcpu->set_input_line(INPUT_LINE_HALT, BIT(data, 2) ? ASSERT_LINE : CLEAR_LINE);
278278   m_subcpu->set_input_line(INPUT_LINE_RESET, BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE);
279279
280   pic8259_ir0_w(m_pic, BIT(data, 4));
281   pic8259_ir1_w(m_pic, BIT(data, 5));
282   pic8259_ir2_w(m_pic, BIT(data, 6));
280   m_pic->ir0_w(BIT(data, 4));
281   m_pic->ir1_w(BIT(data, 5));
282   m_pic->ir2_w(BIT(data, 6));
283283
284284   m_ual = (m_ual & 0x1fe) | BIT(data, 7);
285285}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team