trunk/src/mess/drivers/sage2.c
| r20676 | r20677 | |
| 337 | 337 | } |
| 338 | 338 | |
| 339 | 339 | // s? interrupt |
| 340 | | pic8259_ir7_w(m_pic, BIT(data, 2)); |
| 340 | m_pic->ir7_w(BIT(data, 2)); |
| 341 | 341 | |
| 342 | 342 | // processor LED |
| 343 | 343 | output_set_led_value(0, BIT(data, 3)); |
| r20676 | r20677 | |
| 349 | 349 | if (!BIT(data, 6)) |
| 350 | 350 | { |
| 351 | 351 | // clear ACK interrupt |
| 352 | | pic8259_ir5_w(m_pic, CLEAR_LINE); |
| 352 | m_pic->ir5_w(CLEAR_LINE); |
| 353 | 353 | } |
| 354 | 354 | |
| 355 | 355 | if (!BIT(data, 7)) |
| 356 | 356 | { |
| 357 | 357 | // clear modem interrupt |
| 358 | | pic8259_ir4_w(m_pic, CLEAR_LINE); |
| 358 | m_pic->ir4_w(CLEAR_LINE); |
| 359 | 359 | } |
| 360 | 360 | } |
| 361 | 361 | |
| r20676 | r20677 | |
| 380 | 380 | { |
| 381 | 381 | 0, // from U75 OUT0 |
| 382 | 382 | DEVCB_LINE_VCC, |
| 383 | | DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir6_w) |
| 383 | DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir6_w) |
| 384 | 384 | }, { |
| 385 | 385 | XTAL_16MHz/2/125, |
| 386 | 386 | DEVCB_LINE_VCC, |
| r20676 | r20677 | |
| 388 | 388 | }, { |
| 389 | 389 | 0, // from OUT2 |
| 390 | 390 | DEVCB_LINE_VCC, |
| 391 | | DEVCB_DEVICE_LINE(I8259_TAG, pic8259_ir0_w) |
| 391 | DEVCB_DEVICE_LINE_MEMBER(I8259_TAG, pic8259_device, ir0_w) |
| 392 | 392 | } |
| 393 | 393 | } |
| 394 | 394 | }; |
| r20676 | r20677 | |
| 442 | 442 | DEVCB_NULL, |
| 443 | 443 | DEVCB_NULL, |
| 444 | 444 | 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), |
| 446 | 446 | DEVCB_NULL, |
| 447 | 447 | DEVCB_NULL |
| 448 | 448 | }; |
| r20676 | r20677 | |
| 459 | 459 | DEVCB_NULL, |
| 460 | 460 | DEVCB_NULL, |
| 461 | 461 | 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), |
| 464 | 464 | DEVCB_NULL, |
| 465 | 465 | DEVCB_NULL |
| 466 | 466 | }; |
| r20676 | r20677 | |
| 494 | 494 | { |
| 495 | 495 | if (!state) |
| 496 | 496 | { |
| 497 | | pic8259_ir5_w(m_pic, ASSERT_LINE); |
| 497 | m_pic->ir5_w(ASSERT_LINE); |
| 498 | 498 | } |
| 499 | 499 | } |
| 500 | 500 | |
trunk/src/mess/drivers/apricotp.c
| r20676 | r20677 | |
| 155 | 155 | |
| 156 | 156 | WRITE8_MEMBER( fp_state::pint_clr_w ) |
| 157 | 157 | { |
| 158 | | pic8259_ir6_w(m_pic, CLEAR_LINE); |
| 158 | m_pic->ir6_w(CLEAR_LINE); |
| 159 | 159 | } |
| 160 | 160 | |
| 161 | 161 | |
| r20676 | r20677 | |
| 452 | 452 | { |
| 453 | 453 | 2000000, |
| 454 | 454 | DEVCB_LINE_VCC, |
| 455 | | DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir0_w) |
| 455 | DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir0_w) |
| 456 | 456 | }, { |
| 457 | 457 | 2000000, |
| 458 | 458 | DEVCB_LINE_VCC, |
| r20676 | r20677 | |
| 473 | 473 | static I8237_INTERFACE( dmac_intf ) |
| 474 | 474 | { |
| 475 | 475 | DEVCB_NULL, |
| 476 | | DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir7_w), |
| 476 | DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir7_w), |
| 477 | 477 | DEVCB_NULL, |
| 478 | 478 | DEVCB_NULL, |
| 479 | 479 | { DEVCB_NULL, DEVCB_DEVICE_MEMBER(WD2797_TAG, wd_fdc_t, data_r), DEVCB_NULL, DEVCB_NULL }, |
| r20676 | r20677 | |
| 504 | 504 | DEVCB_NULL, |
| 505 | 505 | DEVCB_NULL, |
| 506 | 506 | |
| 507 | | DEVCB_DEVICE_LINE(I8259A_TAG, pic8259_ir4_w) |
| 507 | DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir4_w) |
| 508 | 508 | }; |
| 509 | 509 | |
| 510 | 510 | |
trunk/src/mess/drivers/tandy2k.c
| r20676 | r20677 | |
| 158 | 158 | |
| 159 | 159 | int dme = (drq0 > 2) || (drq1 > 2); |
| 160 | 160 | |
| 161 | | pic8259_ir6_w(m_pic1, dme); |
| 161 | m_pic1->ir6_w(dme); |
| 162 | 162 | } |
| 163 | 163 | |
| 164 | 164 | READ8_MEMBER( tandy2k_state::kbint_clr_r ) |
| r20676 | r20677 | |
| 166 | 166 | if (m_pb_sel == KBDINEN) |
| 167 | 167 | { |
| 168 | 168 | m_kb->busy_w(1); |
| 169 | | pic8259_ir0_w(m_pic1, CLEAR_LINE); |
| 169 | m_pic1->ir0_w(CLEAR_LINE); |
| 170 | 170 | } |
| 171 | 171 | |
| 172 | 172 | return 0xff; |
| r20676 | r20677 | |
| 357 | 357 | { |
| 358 | 358 | SCREEN_TAG, |
| 359 | 359 | 10, |
| 360 | | DEVCB_DEVICE_LINE(I8259A_1_TAG, pic8259_ir1_w), |
| 360 | DEVCB_DEVICE_LINE_MEMBER(I8259A_1_TAG, pic8259_device, ir1_w), |
| 361 | 361 | DEVCB_NULL, // DMAR 80186 HOLD |
| 362 | 362 | DEVCB_DEVICE_LINE_MEMBER(CRT9021B_TAG, crt9021_device, vsync_w), // VS |
| 363 | 363 | DEVCB_NULL, // HS |
| r20676 | r20677 | |
| 400 | 400 | WRITE_LINE_MEMBER( tandy2k_state::rxrdy_w ) |
| 401 | 401 | { |
| 402 | 402 | m_rxrdy = state; |
| 403 | | pic8259_ir2_w(m_pic0, m_rxrdy | m_txrdy); |
| 403 | m_pic0->ir2_w(m_rxrdy || m_txrdy); |
| 404 | 404 | } |
| 405 | 405 | |
| 406 | 406 | WRITE_LINE_MEMBER( tandy2k_state::txrdy_w ) |
| 407 | 407 | { |
| 408 | 408 | m_txrdy = state; |
| 409 | | pic8259_ir2_w(m_pic0, m_rxrdy | m_txrdy); |
| 409 | m_pic0->ir2_w(m_rxrdy || m_txrdy); |
| 410 | 410 | } |
| 411 | 411 | |
| 412 | 412 | static const i8251_interface usart_intf = |
| r20676 | r20677 | |
| 537 | 537 | m_pb_sel = (data >> 1) & 0x03; |
| 538 | 538 | |
| 539 | 539 | // interrupt |
| 540 | | pic8259_ir3_w(m_pic1, BIT(data, 3)); |
| 540 | m_pic1->ir3_w(BIT(data, 3)); |
| 541 | 541 | |
| 542 | 542 | // printer strobe |
| 543 | 543 | m_centronics->strobe_w(BIT(data, 7)); |
| r20676 | r20677 | |
| 599 | 599 | |
| 600 | 600 | void tandy2k_state::fdc_irq(bool state) |
| 601 | 601 | { |
| 602 | | pic8259_ir4_w(m_pic0, state); |
| 602 | m_pic0->ir4_w(state); |
| 603 | 603 | } |
| 604 | 604 | |
| 605 | 605 | void tandy2k_state::fdc_drq(bool state) |
| r20676 | r20677 | |
| 638 | 638 | if (!m_kbddat && state) |
| 639 | 639 | { |
| 640 | 640 | m_kb->busy_w(m_kbdclk); |
| 641 | | pic8259_ir0_w(m_pic1, !m_kbdclk); |
| 641 | m_pic1->ir0_w(!m_kbdclk); |
| 642 | 642 | } |
| 643 | 643 | |
| 644 | 644 | m_kbddat = state; |
trunk/src/mess/drivers/pc1512.c
| r20676 | r20677 | |
| 60 | 60 | data = m_kbd; |
| 61 | 61 | m_kb_bits = 0; |
| 62 | 62 | m_kb->data_w(1); |
| 63 | | pic8259_ir1_w(m_pic, CLEAR_LINE); |
| 63 | m_pic->ir1_w(CLEAR_LINE); |
| 64 | 64 | } |
| 65 | 65 | break; |
| 66 | 66 | |
| r20676 | r20677 | |
| 766 | 766 | if (m_kb_bits == 8) |
| 767 | 767 | { |
| 768 | 768 | m_kb->data_w(0); |
| 769 | | pic8259_ir1_w(m_pic, ASSERT_LINE); |
| 769 | m_pic->ir1_w(ASSERT_LINE); |
| 770 | 770 | } |
| 771 | 771 | } |
| 772 | 772 | |
| r20676 | r20677 | |
| 956 | 956 | { |
| 957 | 957 | XTAL_28_63636MHz/24, |
| 958 | 958 | DEVCB_LINE_VCC, |
| 959 | | DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir0_w) |
| 959 | DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir0_w) |
| 960 | 960 | }, { |
| 961 | 961 | XTAL_28_63636MHz/24, |
| 962 | 962 | DEVCB_LINE_VCC, |
| r20676 | r20677 | |
| 976 | 976 | |
| 977 | 977 | static const struct mc146818_interface rtc_intf = |
| 978 | 978 | { |
| 979 | | DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir2_w) |
| 979 | DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir2_w) |
| 980 | 980 | }; |
| 981 | 981 | |
| 982 | 982 | |
| r20676 | r20677 | |
| 987 | 987 | void pc1512_state::update_fdc_int() |
| 988 | 988 | { |
| 989 | 989 | if (m_nden) |
| 990 | | pic8259_ir6_w(m_pic, m_dint); |
| 990 | m_pic->ir6_w(m_dint); |
| 991 | 991 | else |
| 992 | | pic8259_ir6_w(m_pic, CLEAR_LINE); |
| 992 | m_pic->ir6_w(CLEAR_LINE); |
| 993 | 993 | } |
| 994 | 994 | |
| 995 | 995 | void pc1512_state::update_fdc_drq() |
| r20676 | r20677 | |
| 1021 | 1021 | DEVCB_NULL, |
| 1022 | 1022 | DEVCB_NULL, |
| 1023 | 1023 | DEVCB_NULL, |
| 1024 | | DEVCB_DEVICE_LINE(I8259A2_TAG, pic8259_ir4_w), |
| 1024 | DEVCB_DEVICE_LINE_MEMBER(I8259A2_TAG, pic8259_device, ir4_w), |
| 1025 | 1025 | DEVCB_NULL, |
| 1026 | 1026 | DEVCB_NULL |
| 1027 | 1027 | }; |
| r20676 | r20677 | |
| 1034 | 1034 | void pc1512_state::update_ack() |
| 1035 | 1035 | { |
| 1036 | 1036 | if (m_ack_int_enable) |
| 1037 | | pic8259_ir7_w(m_pic, m_ack); |
| 1037 | m_pic->ir7_w(m_ack); |
| 1038 | 1038 | else |
| 1039 | | pic8259_ir7_w(m_pic, CLEAR_LINE); |
| 1039 | m_pic->ir7_w(CLEAR_LINE); |
| 1040 | 1040 | } |
| 1041 | 1041 | |
| 1042 | 1042 | WRITE_LINE_MEMBER( pc1512_state::ack_w ) |
| r20676 | r20677 | |
| 1064 | 1064 | static const isa8bus_interface isabus_intf = |
| 1065 | 1065 | { |
| 1066 | 1066 | // 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), |
| 1073 | 1073 | |
| 1074 | 1074 | // dma request |
| 1075 | 1075 | DEVCB_DEVICE_LINE_MEMBER(I8237A5_TAG, am9517a_device, dreq1_w), |
trunk/src/mess/drivers/trs80m2.c
| r20676 | r20677 | |
| 277 | 277 | m_subcpu->set_input_line(INPUT_LINE_HALT, BIT(data, 2) ? ASSERT_LINE : CLEAR_LINE); |
| 278 | 278 | m_subcpu->set_input_line(INPUT_LINE_RESET, BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE); |
| 279 | 279 | |
| 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)); |
| 283 | 283 | |
| 284 | 284 | m_ual = (m_ual & 0x1fe) | BIT(data, 7); |
| 285 | 285 | } |