Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | - | 1 | || FILE: #0168.PLD |
2 | || PROJ: 20170501 |
||
3 | || FD-02 FDC/ATA/DMA BOARD |
||
4 | || |
||
5 | || PART: G26CV12-#0168 |
||
6 | || |
||
7 | || DEV : GAL26CV12 |
||
8 | || |
||
9 | || DESC: ATA CONTROL |
||
10 | || |
||
11 | | |
||
12 | |GAL26CV12 |
||
13 | | |
||
14 | || INPUT |
||
15 | | 1:A0, 2:A1, 3:A2, 4:A3, 5:PHI2, 6:IO, 8:RW, 9:PHI0, 10:DMA, |
||
16 | | 11:GEN, 12:MW0, 13:IOR, 14:IOW, 28:INT, |
||
17 | || OUTPUT |
||
18 | | 15:WRH, 16:WRL, 17:WRD, 18:RDH, 19:RDD, 20:WE, 22:GA, 23:RD, |
||
19 | | 24:RDL, 25:CS0, 26:CS1, 27:IRQ |
||
20 | | |
||
21 | | ACTIVE-LOW: CS0, CS1, WRH, WRL, WRD, RDH, RDL, RDD, RD, WE, GA |
||
22 | |||
23 | | |
||
24 | | |
||
25 | | SIGNATURE: "0168 " |
||
26 | | |
||
27 | || -------------------------------------------------------- |
||
28 | || common signals when dma disabled (DMA = 1 => cpu access) |
||
29 | || |
||
30 | | ATA = DMA & IO' || ata0 => FDA0-FDAF ata1 => FDB0-FDBF |
||
31 | | S01 = ATA & A3' & A2' & A1' & A0 || FDB1 |
||
32 | | S02 = ATA & A3' & A2' & A1 || FDB2-FDB3 |
||
33 | | S04 = ATA & A3' & A2 || FDB4-FDB7 |
||
34 | | S08 = ATA & A3 & A2' & A1' & A0' || FDB8 |
||
35 | | S0A = ATA & A3 & A2' & A1 & A0' || FDBA |
||
36 | | S0B = ATA & A3 & A2' & A1 & A0 || FDBB |
||
37 | | S0E = ATA & A3 & A2 & A1 & A0' || FDBE |
||
38 | | SATA = (S01 # S02 # S04 # S08 # S0E) || valid ata registers |
||
39 | | SATAX = (S01 # S02 # S04 # S0E) || valid ata registers (no data reg.) |
||
40 | |||
41 | | CRD = SATA & RW & PHI2 || cpu read ata |
||
42 | || CWR0 = SATA & RW' & PHI2 & MW0 || cpu write ata (02) |
||
43 | | CWR0 = SATAX & RW' & PHI2 & MW0 || cpu write ata (02) |
||
44 | | CWR2 = S08 & RW' & PHI0 & PHI2 & MW0' || cpu write ata (02) |
||
45 | |||
46 | || CWR1 = SATA & RW' & PHI0 & MW0' || cpu write ata (00) |
||
47 | || CWE = (CWR0 # CWR1) || cpu write ata |
||
48 | | CWE = (CWR0 # CWR2) || cpu write ata |
||
49 | |||
50 | || |
||
51 | || signals when dma0 access ata |
||
52 | | DRD = DMA' & IOR' || dma read ata port 0 |
||
53 | | DWR = DMA' & IOW' || dma write ata port 0 |
||
54 | || |
||
55 | || output signals |
||
56 | || WRL = S0A & RW' & PHI0 || cpu write low latch |
||
57 | || WRH = S0B & RW' & PHI0 || cpu write high latch |
||
58 | | WRLA = S0A & RW' & PHI2 & MW0 || cpu write low latch |
||
59 | | WRHA = S0B & RW' & PHI2 & MW0 || cpu write high latch |
||
60 | | WRLB = S0A & RW' & PHI0 & MW0' || cpu write low latch |
||
61 | | WRHB = S0B & RW' & PHI0 & MW0' || cpu write high latch |
||
62 | | WRL = (WRLA # WRLB) |
||
63 | | WRH = (WRHA # WRHB) |
||
64 | | RDL = S0A & RW & PHI2 || cpu read low latch |
||
65 | | RDH = S0B & RW & PHI2 || cpu read high latch |
||
66 | | WRD = S08 & RW' & GEN || cpu dummy write latch |
||
67 | | RDD = S08 & RW & PHI2 || cpu dummy read latch |
||
68 | | RD = CRD # DRD || cpu read ata port |
||
69 | | WE = CWE # DWR || cpu write ata port |
||
70 | | GA = (S01 # S02 # S04 # S0E) || enable internal data bus |
||
71 | | CS0 = (S01 # S02 # S04 # S08) & GEN || enable ata port /CS0 |
||
72 | || CS0 = ((S01 # S02 # S04) & GEN) # S08 || enable ata port /CS0 |
||
73 | |||
74 | | CS1 = S0E & GEN || enable ata port /CS1 |
||
75 | | IRQ = INT' || int. inversion |