PARTNO XXXXX ; NAME U3; DATE August 30, 1991; REV 1 ; DESIGNER Dave Haynie ; COMPANY Commodore ; ASSEMBLY A3000+ ; LOCATION West Chester ; /************************************************************************/ /* */ /* A3000+ Gary+ Tower Qualifier */ /* */ /************************************************************************/ /* Allowable Target Device Types: 22V10-10 */ /************************************************************************/ /* Clock: CPUCLK */ /************************************************************************/ /* Free Pins: NONE */ /************************************************************************/ /* HISTORY */ /* DBH Aug 30: Brand stinking new */ /************************************************************************/ /** Inputs **/ PIN 1 = CPUCLK ; /* System clock */ PIN 2 = !N32ERR ; /* Generate errors when unsizable */ PIN 3 = !STERM ; /* Synchronous termination */ PIN [4..10] = [A18..12] ; /* Bus address */ PIN 11 = A1 ; PIN 13 = A0 ; PIN 18 = TIME ; /* Timer output */ /** Outputs **/ PIN 14 = SCSICLK ; /* SCSI bus clock */ PIN 15 = !BERR ; /* Bus error */ PIN 21 = !NETREG ; /* Network register select */ PIN 22 = !DSPREG ; /* DSP reset register select */ PIN 23 = !RSTREG ; /* Reset lock register select */ /** Bidirectionals **/ PIN 16 = !DSACK0 ; /* 68030 asynchronous termination */ PIN 17 = !DSACK1 ; /** Used internally **/ PIN 19 = !DSACKEN ; /* DSACK enable */ PIN 20 = !BERREN ; /* Bus Error enable */ /** Declarations and Intermediate Variable Definitions **/ /* Main address of interest */ field addr = [A18..A0]; /* Where the DSP reset register lives */ dreg = addr:[61001]; /* Where the keyboard lock register lives */ kreg = addr:[61000]; /* Where the network chip lives */ nreg = addr:[10000..1ffff]; /** Logic Equations **/ /* The register qualifiers. These babies just look at address. */ NETREG = nreg; RSTREG = kreg; DSPREG = dreg; /* The SCSI clock is just a CPUCLK divided by two. */ SCSICLK.D = !SCSICLK; /* The DSACK lines are driven when we have a network select or STERM. */ DSACK1 = 'b'0; DSACK1.OE = DSACKEN; DSACK0 = 'b'0; DSACK0.OE = DSACKEN; DSACKEN = TIME # STERM; /* The bus error is driven if there's an N32ERR asserted and we see a non-32-bit termination. */ BERR = 'b'0; BERR.OE = BERREN; BERREN = N32ERR & !(DSACK1 $ DSACK0);