From c78b33c590c1c717dfb4872ec42b80d5fd9aa6df Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Thu, 30 May 2013 07:11:26 +0000 Subject: [PATCH] Fix for Apollo PIC8259 breakage [Hans Ostermeyer] --- src/mess/includes/apollo.h | 1 + src/mess/machine/apollo.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/mess/includes/apollo.h b/src/mess/includes/apollo.h index 6ea92275a71..f4bcacca986 100644 --- a/src/mess/includes/apollo.h +++ b/src/mess/includes/apollo.h @@ -213,6 +213,7 @@ public: DECLARE_WRITE_LINE_MEMBER( apollo_dma_2_hrq_changed ); DECLARE_WRITE_LINE_MEMBER( apollo_pic8259_master_set_int_line ); DECLARE_WRITE_LINE_MEMBER( apollo_pic8259_slave_set_int_line ); + DECLARE_READ8_MEMBER( apollo_pic8259_get_slave_ack ); }; MACHINE_CONFIG_EXTERN( apollo ); diff --git a/src/mess/machine/apollo.c b/src/mess/machine/apollo.c index 8feca2894b6..3315635550e 100644 --- a/src/mess/machine/apollo.c +++ b/src/mess/machine/apollo.c @@ -689,6 +689,13 @@ IRQ_CALLBACK_MEMBER(apollo_state::apollo_pic_acknowledge) * pic8259 configuration *************************************************************/ +READ8_MEMBER( apollo_state::apollo_pic8259_get_slave_ack ) +{ + MLOG1(("apollo_pic8259_get_slave_ack: offset=%x", offset)); + + return offset == 3 ? m_pic8259_slave->inta_r() : 0; +} + WRITE_LINE_MEMBER( apollo_state::apollo_pic8259_master_set_int_line ) { static int interrupt_line = -1; if (state != interrupt_line) { @@ -1367,8 +1374,9 @@ MACHINE_CONFIG_FRAGMENT( apollo ) MCFG_I8237_ADD( APOLLO_DMA1_TAG, XTAL_14_31818MHz/3, apollo_dma8237_1_config ) MCFG_I8237_ADD( APOLLO_DMA2_TAG, XTAL_14_31818MHz/3, apollo_dma8237_2_config ) - MCFG_PIC8259_ADD( APOLLO_PIC1_TAG, WRITELINE(apollo_state,apollo_pic8259_master_set_int_line), GND, NULL ) // TODO: Doublecheck config - MCFG_PIC8259_ADD( APOLLO_PIC2_TAG, WRITELINE(apollo_state,apollo_pic8259_slave_set_int_line), GND, NULL ) // TODO: Doublecheck config + MCFG_PIC8259_ADD( APOLLO_PIC1_TAG, WRITELINE(apollo_state,apollo_pic8259_master_set_int_line), VCC, READ8(apollo_state, apollo_pic8259_get_slave_ack)) + MCFG_PIC8259_ADD( APOLLO_PIC2_TAG, WRITELINE(apollo_state,apollo_pic8259_slave_set_int_line), GND, NULL) + MCFG_PTM6840_ADD(APOLLO_PTM_TAG, apollo_ptm_config) MCFG_MC146818_ADD( APOLLO_RTC_TAG, MC146818_UTC ) MCFG_DUART68681_ADD( APOLLO_SIO_TAG, XTAL_3_6864MHz, apollo_sio_config )