PARTNO U202 ; NAME U202 ; DATE October 15, 1992 ; REV 0 ; DESIGNER Dave Haynie ; COMPANY Commodore ; ASSEMBLY Nyx ; LOCATION West Chester ; DEVICE g22v10 ; /************************************************************************/ /* */ /* Nyx SE Generator */ /* */ /* This device generates SE controls for each of the eight */ /* possible chip RAM banks. */ /* */ /************************************************************************/ /* Allowable Target Device Types: 22V10-10 */ /************************************************************************/ /* Clock: NONE */ /************************************************************************/ /* Free Pins: 1(I),6(I),7(I),13(I),14(IO),23(IO) */ /************************************************************************/ /* HISTORY */ /* DBH Oct 15: Completely new. */ /************************************************************************/ /** INPUTS: **/ PIN 2 = !SEEN ; /* Shift port enable */ PIN 3 = RSHIFT0 ; /* RAS bank shift */ PIN 4 = RSHIFT1 ; PIN 5 = DUAL_SING ; /* System size */ PIN [8..11] = [XA0..3] ; /* SE bank address */ /** OUTPUTS: **/ PIN 15 = !SE0 ; /* Bank-specific RAS strobes.*/ PIN 16 = !SE1 ; PIN 17 = !SE4 ; PIN 18 = !SE5 ; PIN 19 = !SE6 ; PIN 20 = !SE7 ; PIN 21 = !SE2 ; PIN 22 = !SE3 ; /** INTERMEDIATE TERMS: **/ /* The logical banking is controlled via the XA lines and DUAL_SING. A quirk of the AAA system is that XA0..2 determine banking in a single system, XA1..3 in a dual system. Hopefully this will be simplified in a future Andrea. */ bank0 = !XA2 & !XA1 & !XA0 & !DUAL_SING # !XA3 & !XA2 & !XA1 & DUAL_SING; bank1 = !XA2 & !XA1 & XA0 & !DUAL_SING # !XA3 & !XA2 & XA1 & DUAL_SING; bank2 = !XA2 & XA1 & !XA0 & !DUAL_SING # !XA3 & XA2 & !XA1 & DUAL_SING; bank3 = !XA2 & XA1 & XA0 & !DUAL_SING # !XA3 & XA2 & XA1 & DUAL_SING; bank4 = XA2 & !XA1 & !XA0 & !DUAL_SING # XA3 & !XA2 & !XA1 & DUAL_SING; bank5 = XA2 & !XA1 & XA0 & !DUAL_SING # XA3 & !XA2 & XA1 & DUAL_SING; bank6 = XA2 & XA1 & !XA0 & !DUAL_SING # XA3 & XA2 & !XA1 & DUAL_SING; bank7 = XA2 & XA1 & XA0 & !DUAL_SING # XA3 & XA2 & XA1 & DUAL_SING; /* The shift count depends on the RSHIFT codes. RAS controls can shift down by 4, 2, 1, or no bank positions. */ noshift = !RSHIFT1 & !RSHIFT0; shift1 = !RSHIFT1 & RSHIFT0; shift2 = RSHIFT1 & !RSHIFT0; shift4 = RSHIFT1 & RSHIFT0; /** OUTPUT TERMS: **/ /* The first SE banks always obey the normal mapping of the XA lines. */ SE0 = bank0 & SEEN; SE1 = bank1 & SEEN; SE2 = bank2 & SEEN; SE3 = bank3 & SEEN; /* The next set of SE banks is based as well on the RAS Shift lines. These lines are set by a small module placed in the first bank, in order to shift the bank driven to the four SElines in the second module bank. */ SE4 = bank4 & noshift & SEEN # bank3 & shift1 & SEEN # bank2 & shift2 & SEEN # bank0 & shift4 & SEEN; SE5 = bank5 & noshift & SEEN # bank4 & shift1 & SEEN # bank3 & shift2 & SEEN # bank1 & shift4 & SEEN; SE6 = bank6 & noshift & SEEN # bank5 & shift1 & SEEN # bank4 & shift2 & SEEN # bank2 & shift4 & SEEN; SE7 = bank7 & noshift & SEEN # bank6 & shift1 & SEEN # bank5 & shift2 & SEEN # bank3 & shift4 & SEEN;