mirror of
https://github.com/LIV2/a4091-logic.git
synced 2025-12-06 06:22:43 +00:00
A4091 PALs dualfix
Source: Dave Haynie Files
This commit is contained in:
parent
d4e06c2b5f
commit
062cde5ddd
@ -1,16 +1,16 @@
|
||||
PARTNO U205 ;
|
||||
NAME U205 ;
|
||||
DATE July 8, 1992 ;
|
||||
REV 0 ;
|
||||
DATE April 1, 1993 ;
|
||||
REV 5 ;
|
||||
DESIGNER Dave Haynie ;
|
||||
COMPANY Commodore ;
|
||||
ASSEMBLY A3090 ;
|
||||
ASSEMBLY A4091 ;
|
||||
LOCATION West Chester ;
|
||||
DEVICE p22v10 ;
|
||||
DEVICE g22v10 ;
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* A3090 Buffer and termination control. */
|
||||
/* A4091 Buffer and termination control. */
|
||||
/* */
|
||||
/* This device manages data buffer direction, enable, and latch */
|
||||
/* functions, address buffer enable, and slave cycle termination. */
|
||||
@ -20,7 +20,7 @@
|
||||
/* DEVICE DATA: */
|
||||
/* */
|
||||
/* Device: 22V10-15 */
|
||||
/* Clock: CLK (33MHz) */
|
||||
/* Clock: CLK (25MHz) */
|
||||
/* Unused: 16(I/O) */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
@ -28,31 +28,38 @@
|
||||
/* REVISION HISTORY: */
|
||||
/* */
|
||||
/* DBH Jul 8: Original version. */
|
||||
/* */
|
||||
/* DBH Oct 26: Extended data latching function. */
|
||||
/* DBH Nov 2: Modified DTACK again for fast SCSI slave cycle */
|
||||
/* termination. */
|
||||
/* DBH Nov 19: Changed DBOE for self-reference support. */
|
||||
/* DBH Mar 30: Added NOZ3 term for quick Zorro III disconnect, */
|
||||
/* to eliminate the multiple A4091 problem. */
|
||||
/* DBH Apr 1: Some more NOZ3-related tweaks. */
|
||||
/************************************************************************/
|
||||
|
||||
/** INPUTS: **/
|
||||
|
||||
PIN 1 = CLK ; /* 33MHz system clock. */
|
||||
PIN 1 = CLK ; /* 25MHz system clock. */
|
||||
PIN 2 = !SLAVE ; /* Board select. */
|
||||
PIN 3 = !MYBUS ; /* The A3090 has the bus. */
|
||||
PIN 3 = !MYBUS ; /* The A4091 has the bus. */
|
||||
PIN 4 = DOE ; /* Data phase on Zorro III. */
|
||||
PIN 5 = FCS ; /* Z3 full cycle strobe. */
|
||||
PIN 6 = READ ; /* The Zorro III read cycle. */
|
||||
PIN 7 = !SLACK ; /* The NCR 53C710 slave acknowledge. */
|
||||
PIN 8 = !BURST ; /* DMA Burst cycle? */
|
||||
PIN 9 = !INTREG ; /* Interrupt register access. */
|
||||
PIN 8 = !NOZ3 ; /* Get off the Z3 bus? */
|
||||
PIN 9 = INTREG ; /* Interrupt register access. */
|
||||
PIN 10 = !INTVEC ; /* Interrupt vector access. */
|
||||
PIN 11 = !CFGOUT ; /* Configuration chain output. */
|
||||
PIN 13 = !NACK ; /* Network chip acknowledge. */
|
||||
PIN 14 = !MTCR ; /* Zorro III burst strobe. */
|
||||
PIN 15 = !MASTER ; /* SCSI chip owns the A3090 bus. */
|
||||
PIN 16 = !SID ; /* SCSI ID. */
|
||||
|
||||
/** OUTPUTS: **/
|
||||
|
||||
PIN 18 = !D2Z ; /* Data is transferred to Zorro III bus. */
|
||||
PIN 19 = !Z2D ; /* Data is transferred from Zorro III bus. */
|
||||
PIN 20 = !DBLT ; /* Data is latched. */
|
||||
PIN 20 = DBLT ; /* Data is latched. */
|
||||
PIN 21 = !DBOE ; /* Data transfer enable. */
|
||||
PIN 22 = !ABOEL ; /* Low order address transfer enable. */
|
||||
PIN 23 = !ABOEH ; /* High order address transfer enable. */
|
||||
@ -61,48 +68,64 @@ PIN 23 = !ABOEH ; /* High order address transfer enable. */
|
||||
|
||||
PIN 17 = !DTACK ; /* Zorro III termination. */
|
||||
|
||||
/** LOGICAL TERMS: **/
|
||||
|
||||
/* It takes both MYBUS and MASTER to fully qualify a cycle. If MYBUS is
|
||||
asserted but master not, we're in the process of bus arbitration. If
|
||||
MASTER is asserted but not MYBUS, the SCSI chip is master of the A4091
|
||||
bus and waiting for a grant to the Zorro bus. In both of these cases,
|
||||
as little as possible should be done. */
|
||||
|
||||
mastercyc = MYBUS & MASTER;
|
||||
|
||||
slavecyc = !MYBUS & !MASTER;
|
||||
|
||||
/** OUTPUT TERMS: **/
|
||||
|
||||
/* This is the data output enable control. When data buffers are
|
||||
pointed toward the board, they can turn on early in the cycle.
|
||||
This is a write for slave access, a read for DMA access. When
|
||||
the data buffers are pointed out toward the bus, the have to
|
||||
wait until DOE to turn on; this is a slave read or DMA write. */
|
||||
wait until DOE to turn on; this is a slave read or DMA write.
|
||||
When the board responds to itself, the buffers are left off. If
|
||||
the NOZ3 signal is asserted on a write (eg, master driving the
|
||||
Zorro III bus), DBOE must be negated immediately. */
|
||||
|
||||
DBOE = !MYBUS & !READ & FCS & SLAVE
|
||||
# MYBUS & READ & FCS
|
||||
# !MYBUS & READ & FCS & SLAVE & DOE
|
||||
# MYBUS & !READ & FCS & DOE;
|
||||
DBOE = slavecyc & SLAVE & !READ & FCS
|
||||
# slavecyc & SLAVE & READ & FCS & DOE
|
||||
# mastercyc & !SLAVE & !READ & FCS & DOE & !ABOEH & !NOZ3
|
||||
# mastercyc & !SLAVE & READ & FCS;
|
||||
|
||||
/* The data buffer direction calculations are very simple. The data to
|
||||
Zorro III connection is made for slave reads or DMA writes. The Zorro III
|
||||
to data bus connection is made for slave writes or DMA reads. */
|
||||
|
||||
D2Z = !MYBUS & !READ & FCS & SLAVE
|
||||
# MYBUS & READ & FCS;
|
||||
D2Z = slavecyc & READ & FCS & SLAVE
|
||||
# mastercyc & !READ & FCS & !SLAVE;
|
||||
|
||||
Z2D = !MYBUS & READ & FCS & SLAVE
|
||||
# MYBUS & !READ & FCS;
|
||||
Z2D = slavecyc & !READ & FCS & SLAVE
|
||||
# mastercyc & READ & FCS & !SLAVE;
|
||||
|
||||
/* The data latching function is also reasonably simple. For either kind of
|
||||
access, data is latched when DTACK is asserted and we're in data time.
|
||||
For burst DMA access, we have to take into account MTCR and BURST as well. */
|
||||
|
||||
DBLT = !MYBUS & FCS & DTACK & DOE & SLAVE
|
||||
# MYBUS & FCS & DTACK & DOE & !BURST
|
||||
# MYBUS & FCS & DTACK & DOE & BURST & MTCR;
|
||||
/* For either kind of access, data is latched when DTACK is asserted and
|
||||
we're in data time. Data is held through the end of the cycle. */
|
||||
|
||||
DBLT = slavecyc & FCS & DTACK & DOE & SLAVE
|
||||
# mastercyc & FCS & DTACK & DOE & !SLAVE
|
||||
# DBLT & FCS;
|
||||
|
||||
/* The address buffer controls. I want addresses going in unless the SCSI
|
||||
device has been granted the A3090 bus. If so, addresses only go out when
|
||||
the A3090 has been granted the Zorro III bus. High order addresses also
|
||||
go off very quickly after FCS is asserted. */
|
||||
go off quickly after FCS is asserted. */
|
||||
|
||||
ABOEL = !MYBUS & !MASTER
|
||||
# MYBUS;
|
||||
ABOEL.D = slavecyc
|
||||
# mastercyc & !FCS
|
||||
# mastercyc & FCS & ABOEL;
|
||||
ABOEL.AR = NOZ3;
|
||||
|
||||
ABOEH = !MYBUS & !MASTER
|
||||
# MYBUS & !FCS;
|
||||
ABOEH.D = slavecyc
|
||||
# mastercyc & !FCS;
|
||||
ABOEH.AR = NOZ3;
|
||||
|
||||
/* The board needs to generate a DTACK here for slave accesses. Most
|
||||
of the slave terminations are very simple, since they're either
|
||||
@ -111,12 +134,13 @@ ABOEH = !MYBUS & !MASTER
|
||||
any write should also be instantly terminated, that would be a
|
||||
configuration register write (reads are governed by ROM access). */
|
||||
|
||||
DTACK = SLAVE & FCS & DOE & SLACK
|
||||
DTACK = SLAVE & FCS & DOE & SLACK
|
||||
# SLAVE & FCS & DOE & INTREG
|
||||
# SLAVE & FCS & DOE & INTVEC
|
||||
# SLAVE & FCS & DOE & SID
|
||||
# SLAVE & FCS & DOE & NACK
|
||||
# SLAVE & FCS & DOE & !CFGOUT & !READ
|
||||
# SLAVE & FCS & DOE & DTACK;
|
||||
|
||||
DTACK.OE = SLAVE & FCS;
|
||||
DTACK.OE = SLAVE & FCS & !NOZ3;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
PARTNO U305 ;
|
||||
NAME U305 ;
|
||||
DATE November 2, 1992 ;
|
||||
REV 2 ;
|
||||
DATE April 5, 1993 ;
|
||||
REV 6 ;
|
||||
DESIGNER Dave Haynie ;
|
||||
COMPANY Commodore ;
|
||||
ASSEMBLY A3090 ;
|
||||
@ -20,8 +20,8 @@
|
||||
/* DEVICE DATA: */
|
||||
/* */
|
||||
/* Device: 22V10-10 */
|
||||
/* Clock: CLK (33MHz) */
|
||||
/* Unused: 17(I/O) */
|
||||
/* Clock: CLK (25MHz) */
|
||||
/* Unused: 9(I),10(I),14(I/O),15(I/),17(I/O) */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
/* */
|
||||
@ -31,6 +31,15 @@
|
||||
/* DBH Oct 26: Changes made to speed up Zorro III version of */
|
||||
/* the FCS signal. */
|
||||
/* DBH Nov 2: Hold onto BFCS until AS goes away for slaves. */
|
||||
/* DBH Nov 17: ASQ shutoff based on !AS to prevent FCS echo. */
|
||||
/* DBH Nov 19: Eliminate A3 passthrough, part of the self- */
|
||||
/* reference fix. */
|
||||
/* DBH Apr 1: Added the MASTER signal to prevent bogus A4091 */
|
||||
/* activities when SCSI has the A4091 bus but not */
|
||||
/* the Zorro III bus. */
|
||||
/* DBH Apr 5: When things lined up just right, we missed */
|
||||
/* the start of the new AS* cycle. Now it's */
|
||||
/* interlocked with the end of the FCS cycle. */
|
||||
/* COMPILE -M3 */
|
||||
/************************************************************************/
|
||||
|
||||
@ -42,10 +51,9 @@ PIN 3 = !AS ; /* SCSI address strobe. */
|
||||
PIN 4 = READ ; /* The Zorro III read cycle. */
|
||||
PIN 5 = SIZ1 ; /* SCSI transfer size. */
|
||||
PIN 6 = SIZ0 ;
|
||||
PIN 7 = !BURST ; /* This cycle will be a burst cycle. */
|
||||
PIN 7 = !NOZ3 ; /* Zorro III bus cutoff */
|
||||
PIN 8 = !MTCR ; /* Zorro III multiple transfer strobe. */
|
||||
PIN 9 = BA3 ; /* SCSI burst addresses. */
|
||||
PIN 10 = BA2 ;
|
||||
PIN 10 = MASTER ; /* SCSI chip owns A4091 bus. */
|
||||
PIN 11 = A1 ; /* SCSI sizing addresses. */
|
||||
PIN 13 = A0 ;
|
||||
PIN 18 = !EFCS ; /* Zorro III cycle strobe. */
|
||||
@ -53,8 +61,6 @@ PIN 23 = DOE ; /* Zorro III data ouput enable. */
|
||||
|
||||
/** OUTPUTS: **/
|
||||
|
||||
PIN 14 = A2 ; /* Zorro III addresses. */
|
||||
PIN 15 = A3 ;
|
||||
PIN 16 = BFCS ; /* Buffered cycle strobe. */
|
||||
PIN 17 = !ASQ ; /* Qualified version of the SCSI AS* */
|
||||
PIN 19 = !DS0 ; /* Zorro III data strobes. */
|
||||
@ -68,20 +74,31 @@ PIN 22 = !DS3 ;
|
||||
/** OUTPUT TERMS: **/
|
||||
|
||||
/* The buffered FCS depends on the mode. In non-DMA modes, it's simply
|
||||
based on the expansion FCS. In DMA, the expansion FCS can go away
|
||||
before the A3090 SCSI chip cycle is complete, so a latching term is
|
||||
added. */
|
||||
based on the expansion FCS, as long as a SCSI-chip cycle isn't present
|
||||
(that would indicate DMA awaiting a grant). In DMA, the expansion
|
||||
FCS starts a cycle, but it can go away before the A4091 SCSI chip cycle
|
||||
is complete, so a latching term is added. */
|
||||
|
||||
BFCS = EFCS
|
||||
|
||||
/* With MASTER, I could interlock differently.
|
||||
|
||||
BFCS = EFCS & !MASTER & !MYBUS
|
||||
# EFCS & MASTER & MYBUS
|
||||
# BFCS & AS & ASQ & MYBUS
|
||||
# BFCS & AS & !MYBUS;
|
||||
# BFCS & AS & !MYBUS;*/
|
||||
|
||||
BFCS = EFCS & !MYBUS & !AS
|
||||
# BFCS & !MYBUS & AS
|
||||
# EFCS & MYBUS & AS
|
||||
# BFCS & MYBUS & AS & ASQ;
|
||||
|
||||
/* A Zorro III cycle is started based on the start of a SCSI cycle and the
|
||||
A3090's ownership of the Zorro III bus. This is a qualifier for that
|
||||
start. */
|
||||
|
||||
ASQ.D = AS & MYBUS;
|
||||
ASQ.AR = !MYBUS;
|
||||
ASQ.D = AS & !BFCS & !EFCS & MYBUS
|
||||
# ASQ & MYBUS;
|
||||
ASQ.AR = !AS;
|
||||
|
||||
/* The data strobes are based on the low order address and size input
|
||||
from the SCSI chip. We don't turn these on until the A3090 is bus
|
||||
@ -110,19 +127,4 @@ DS0 = READ
|
||||
|
||||
[DS3..0].OE = MYBUS & DOE;
|
||||
|
||||
/* The burst addresses are done here. When a cycle starts, BA2 and BA3
|
||||
are directly routed to A2 and A3. On successive burst cycles, these
|
||||
two are incremented to provide the proper Zorro III address. */
|
||||
|
||||
A2.D = BA2 & !DOE
|
||||
# A2 & !BURST & DOE
|
||||
# A2 & BURST & DOE & MTCR
|
||||
# !A2 & BURST & DOE & !MTCR;
|
||||
|
||||
A3.D = BA3 & !DOE
|
||||
# A3 & !BURST & DOE
|
||||
# A3 & BURST & DOE & MTCR
|
||||
# (A2 $ A3) & BURST & DOE & !MTCR;
|
||||
|
||||
[A3,A2].OE = MYBUS;
|
||||
|
||||
121
source/u306.pld
121
source/u306.pld
@ -1,12 +1,12 @@
|
||||
PARTNO U306 ;
|
||||
PARTNO U306;
|
||||
NAME U306 ;
|
||||
DATE July 9, 1992 ;
|
||||
REV 0 ;
|
||||
DATE March 29, 1993 ;
|
||||
REV 5 ;
|
||||
DESIGNER Dave Haynie ;
|
||||
COMPANY Commodore ;
|
||||
ASSEMBLY A3090 ;
|
||||
LOCATION West Chester ;
|
||||
DEVICE p22v10 ;
|
||||
DEVICE g22v10 ;
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
@ -21,21 +21,34 @@
|
||||
/* */
|
||||
/* Device: 22V10-10 */
|
||||
/* Clock: !CLK (33MHz) */
|
||||
/* Unused: 11(I),13(I),18(I/O) */
|
||||
/* Unused: 13(I) */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* REVISION HISTORY: */
|
||||
/* */
|
||||
/* DBH Jul 9: Original version. */
|
||||
/* */
|
||||
/* DBH Oct 26: The expansion FCS is now generated here. */
|
||||
/* DBH Oct 26: Reworked DTSYNC and STERM to free up AR for */
|
||||
/* use EFCS. */
|
||||
/* DBH Oct 26: Find the missing DTACK. Fix to correct this. */
|
||||
/* DBH Oct 28: Changes here for a different FCS/DTACK strategy */
|
||||
/* that makes the FCS shutoff delay independent of */
|
||||
/* A3090 DTACK sampling. */
|
||||
/* DBH Oct 29: Changed above to also insure STERM is generated */
|
||||
/* in slave mode, even at 25MHz. */
|
||||
/* DBH Mar 29: Stolen the unused BURST pin for NOZ3. This */
|
||||
/* is asserted to get the A4091 off the Zorro III */
|
||||
/* bus quickly, even when its local FCS may still */
|
||||
/* be active. This is designed to fix the */
|
||||
/* multiple A4091 problem. */
|
||||
/************************************************************************/
|
||||
|
||||
/** INPUTS: **/
|
||||
|
||||
PIN 1 = !CLK ; /* 33MHz system clock. */
|
||||
PIN 2 = !MYBUS ; /* SCSI owns the Zorro III bus. */
|
||||
PIN 3 = FCS ; /* Zorro III cycle strobe. */
|
||||
PIN 3 = BFCS ; /* A3090 local Zorro III cycle strobe. */
|
||||
PIN 4 = !MTACK ; /* Zorro III slave burst strobe. */
|
||||
PIN 5 = !CBREQ ; /* SCSI burst request. */
|
||||
PIN 6 = !SCSI ; /* SCSI slave chip select. */
|
||||
@ -43,77 +56,93 @@ PIN 7 = !EDTACK ; /* Zorro III data acknowledge, on bus. */
|
||||
PIN 8 = !ABOEH ; /* High order address buffer enable. */
|
||||
PIN 9 = !BERR ; /* Zorro III bus error. */
|
||||
PIN 10 = !RST ; /* Zorro III reset. */
|
||||
PIN 11 = !ASQ ; /* Clocked and qualified SCSI strobe. */
|
||||
|
||||
/** OUTPUTS: **/
|
||||
|
||||
PIN 14 = !BDTACK ; /* Zorro III data acknowledge, buffered. */
|
||||
PIN 16 = !STERM ; /* SCSI termination. */
|
||||
PIN 17 = !BURST ; /* This cycle will be a burst cycle. */
|
||||
PIN 17 = !NOZ3 ; /* Stop driving Zorro III! */
|
||||
PIN 18 = !EFCS ; /* Zorro III cycle strobe for DMA. */
|
||||
PIN 19 = DOE ; /* Zorro III data ouput enable. */
|
||||
PIN 21 = !MTCR ; /* Zorro III multiple transfer strobe. */
|
||||
PIN 22 = !LASTBURST ; /* Zorro III end-of-burst indicator. */
|
||||
PIN 23 = !CBACK ; /* SCSI burst acknowledge. */
|
||||
|
||||
/** USED INTERNALLY: **/
|
||||
|
||||
PIN 15 = !DTSYNC ; /* Synchronizer for DTACK->STERM. */
|
||||
PIN 20 = !DCNT ; /* State bit for Zorro III stuff. */
|
||||
|
||||
PIN 15 = !DCNT ; /* State bit for Zorro III stuff. */
|
||||
PIN 20 = !DTSYNC ; /* Synchronizer for DTACK->STERM. */
|
||||
PIN 22 = !CYCZ3 ; /* On-bus Zorro III cycle. */
|
||||
|
||||
/** OUTPUT TERMS: **/
|
||||
|
||||
/* The Zorro III cycle starts on-bus as soon as it's certain to be a real
|
||||
cycle that's starting. If just starting, the buffered FCS isn't
|
||||
asserted but ASQ is. Once on, it stays on until a DTACK is properly
|
||||
noticed. */
|
||||
|
||||
CYCZ3 = !RST & MYBUS & !BFCS & ASQ & !BDTACK & !CLK
|
||||
# !RST & MYBUS & CYCZ3 & ASQ & !BDTACK;
|
||||
|
||||
/* The master-mode FCS is asserted onto the bus once we have determined
|
||||
a real out-to-bus Zorro III cycle should take place. This wasn't
|
||||
originally clocked out, but I got nervous about ABOEH setup. */
|
||||
|
||||
EFCS = CLK & MYBUS & CYCZ3 & !RST
|
||||
# EFCS & MYBUS & CYCZ3 & !RST;
|
||||
EFCS.OE = MYBUS & CYCZ3;
|
||||
|
||||
/* Get off the Zorro III bus right after the EFCS cycle ends, hold it
|
||||
until the local cycle ends. */
|
||||
|
||||
NOZ3 = MYBUS & BFCS & !CYCZ3
|
||||
# RST;
|
||||
|
||||
/* The data output enable has to wait until a safe "data phase". This is
|
||||
guaranteed to be two clocks after FCS falls. DCNT is used to time
|
||||
this from cycle's start. */
|
||||
|
||||
DOE.D = FCS & !DOE & MYBUS & DCNT
|
||||
# FCS & DOE;
|
||||
DOE.D = BFCS & !RST & !DOE & MYBUS & DCNT
|
||||
# BFCS & !RST & DOE;
|
||||
DOE.OE = MYBUS;
|
||||
DOE.AR = RST;
|
||||
|
||||
/* This form FCS, to ensure proper DOE assertion. */
|
||||
/* This is a count phase from FCS, to ensure proper DOE assertion. */
|
||||
|
||||
DCNT.D = FCS & !DOE & !DCNT & MYBUS
|
||||
# FCS & DCNT;
|
||||
DCNT.AR = RST;
|
||||
DCNT.D = BFCS & !DOE & !DCNT & MYBUS
|
||||
# BFCS & DCNT;
|
||||
|
||||
/* This signal samples an incoming DTACK, to help out with STERM
|
||||
generation. */
|
||||
/* This signal samples a termination signal. It used to sample EDTACK, but
|
||||
the quick turnoff of EFCS means that EDTACK may be gone before our sampling
|
||||
edge comes around. Instead, the state where EFCS is negated but BFCS is
|
||||
asserted indicates that the EFCS logic has detected EDTACK. */
|
||||
|
||||
DTSYNC.D = FCS & DOE & !BURST & EDTACK
|
||||
# FCS & DOE & BURST & EDTACK & MTCR;
|
||||
DTSYNC.AR = RST;
|
||||
DTSYNC.D = BFCS & !RST & DOE & BDTACK
|
||||
# BFCS & !RST & DOE & DTSYNC;
|
||||
DTSYNC.AR = !BFCS;
|
||||
|
||||
/* The SCSI termination is based on a synchronized DTACK. I actually
|
||||
/* The SCSI termination is based on a synchronized DTACK. I
|
||||
synchronize DTACK for either slave or master cycle, since the
|
||||
NCR 53C710 wants the effect of SLACK (which makes a DTACK on slave
|
||||
to SCSI cycles) reflected on STERM to actually end the cycle. */
|
||||
|
||||
STERM.D = DTSYNC & EDTACK & FCS & !BURST
|
||||
# DTSYNC & !STERM & FCS & BURST & MTCR;
|
||||
STERM.AR = RST;
|
||||
STERM.D = !RST & MYBUS & BFCS & DTSYNC & !STERM & BDTACK
|
||||
# !RST & !MYBUS & BFCS & BDTACK & !STERM;
|
||||
STERM.AR = !BFCS;
|
||||
|
||||
/* The SCSI chips gets a CBACK any time we have an MTACK. */
|
||||
/* We _never_ issue a CBACK, since BURST isn't supported. */
|
||||
|
||||
CBACK = MYBUS & FCS & MTACK;
|
||||
CBACK.OE = MYBUS;
|
||||
|
||||
/* The burst cycle is based on the burst handshaking between Zorro III and
|
||||
the SCSI chip. This has to be done by DOE time. */
|
||||
|
||||
BURST = MYBUS & MTACK & FCS & CBACK & !DOE
|
||||
# MYBUS & BURST & FCS;
|
||||
|
||||
LASTBURST = MYBUS & BURST & !MTACK & MTCR
|
||||
# MYBUS & LASTBURST & FCS;
|
||||
CBACK = 'b'0;
|
||||
CBACK.OE = 'b'0;
|
||||
|
||||
/* The burst strobe is generated for any burst cycle
|
||||
/* We _never_ issue an MTCR, since BURST isn't supported. */
|
||||
|
||||
MTCR.D = MYBUS & FCS & BURST & DOE & !STERM & !LASTBURST
|
||||
# MYBUS & FCS & BURST & DOE & !STERM & MTCR;
|
||||
MTCR.AR = RST;
|
||||
MTCR = 'b'0;
|
||||
MTCR.OE = 'b'0;
|
||||
|
||||
/* The DTACK line is buffered into the rest of the board. */
|
||||
/* The DTACK line is buffered into the rest of the board. It actually
|
||||
latches the EDTACK line in various ways, since EDTACK isn't necessarily
|
||||
going to hang around long enough to be sampled. */
|
||||
|
||||
BDTACK = EDTACK;
|
||||
BDTACK = !RST & BFCS & EDTACK
|
||||
# !RST & BFCS & BDTACK & !STERM;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user