Subversion Repositories MB01 Project

Rev

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
 
44
|| NOTA: questo funziona
45
| CWR0 = SATAX & RW' & PHI2 & MW0	|| cpu write ata (02)
46
| CWR2 = S08 & RW' & PHI0 & PHI2 & MW0'	|| cpu write ata (02)
47
 
48
|| PROVA:
49
| CWR0 = SATAX & RW' & PHI2 		|| cpu write ata (02)
50
| CWR2 = S08 & RW' & PHI0 & PHI2	|| cpu write ata (02)
51
 
52
| CWE  = (CWR0 # CWR2)			|| cpu write ata
53
 
54
||
55
|| signals when dma0 access ata
56
| DRD  = DMA' & IOR'			|| dma read  ata port 0
57
| DWR  = DMA' & IOW'			|| dma write ata port 0
58
||
59
|| output signals
60
|| WRL  = S0A & RW' & PHI0		|| cpu write low  latch
61
|| WRH  = S0B & RW' & PHI0		|| cpu write high latch
62
| WRLA  = S0A & RW' & PHI2 & MW0		|| cpu write low  latch
63
| WRHA  = S0B & RW' & PHI2 & MW0		|| cpu write high latch
64
| WRLB  = S0A & RW' & PHI0 & MW0'		|| cpu write low  latch
65
| WRHB  = S0B & RW' & PHI0 & MW0'		|| cpu write high latch
66
| WRL = (WRLA # WRLB)
67
| WRH = (WRHA # WRHB)
68
| RDL  = S0A & RW  & PHI2		|| cpu read  low  latch
69
| RDH  = S0B & RW  & PHI2		|| cpu read  high latch
70
| WRD  = S08 & RW' & GEN		|| cpu dummy write latch
71
| RDD  = S08 & RW  & PHI2		|| cpu dummy read  latch
72
| RD   = CRD # DRD			|| cpu read  ata port
73
| WE   = CWE # DWR			|| cpu write ata port
74
| GA   = (S01 # S02 # S04 # S0E)	|| enable internal data bus
75
| CS0  = (S01 # S02 # S04 # S08) & GEN	|| enable ata port /CS0
76
|| CS0  = ((S01 # S02 # S04) & GEN) # S08	|| enable ata port /CS0
77
 
78
| CS1  = S0E & GEN			|| enable ata port /CS1
79
| IRQ  = INT'				|| int. inversion