PARTNO XXXXX ; NAME U681; DATE November 20, 1991; REV 2 ; DESIGNER Haynie ; COMPANY Commodore ; ASSEMBLY AA3000 ; LOCATION U681 ; /************************************************************************/ /* */ /* AA3000 Interrupt mixing & latch, primary bus arbitration */ /* */ /************************************************************************/ /* Allowable Target Device Types: 16R4A */ /************************************************************************/ /* Clock: 7Mhz */ /************************************************************************/ /* Free Pins: I(5),I(6),I(7),I(8),14(Q) */ /************************************************************************/ /* HISTORY */ /* DBH Jan 29: Descended from A3000 U701, Rev 2 */ /* DBG Nov 20: New for Rev2 PCB. */ /************************************************************************/ /** Inputs **/ PIN 2 = !CIPL0 ; /* Chip conditioned interrupts */ PIN 3 = !CIPL1 ; PIN 4 = !CIPL2 ; PIN 9 = !INTENB ; /* Interrupt enable */ PIN 13 = !BG30 ; /* Bus Grant from 68030 */ PIN 18 = !CBR ; /* Coprocessor slot bus request */ PIN 19 = !BOSS ; /* Coprocessor slot owns system */ /** Outputs **/ PIN 17 = !IPL0 ; /* CPU interrupts */ PIN 16 = !IPL1 ; PIN 15 = !IPL2 ; PIN 12 = !BG ; /* Bus grant out to Buster */ /** Declarations and Intermediate Variable Definitions **/ /** Logic Equations **/ /* Here we drive the interrupt bits. All we consider is the enable and latching. */ IPL2.D = CIPL2 & INTENB; IPL1.D = CIPL1 & INTENB; IPL0.D = CIPL0 & INTENB; /* This is the bus grant output term. In general, we want BG30 connected with BG when the coprocessor is not in charge of things. However, we have to take care that this arbitration doesn't take place out of sync with the secondary arbitrations that happen in Buster. So the CPU slot can't assert CBR until it sees BG and BGACK negated. The CBR term here keeps the Coprocessor-initiated BG from being seen by the main bus arbiter. The 68030 and coprocessor slots are called primary bus masters; they're the ones responsible for driving BG and acknowledging BR. */ BG = BG30 & !CBR; BG.OE = !BOSS;