| Zeile 1: | Zeile 1: | ||
| − | Der Floppy Disk Controller ist ein Chip, der ein bis vier | + | Der Floppy Disk Controller ist ein Chip, der ein bis vier Floppy-Laufwerke ansteuern kann. |
== Eigenschaften == | == Eigenschaften == | ||
* DMA-Channel: 2 | * DMA-Channel: 2 | ||
| Zeile 5: | Zeile 5: | ||
= Register = | = Register = | ||
== Übersicht == | == Übersicht == | ||
| − | {| | + | {| {{Prettytable}} |
! Name !! Port !! Beschreibung !! lesen/schreiben | ! Name !! Port !! Beschreibung !! lesen/schreiben | ||
| + | |- | ||
| + | | SRA || 0x3F0 || Status Register A || lesen | ||
| + | |- | ||
| + | | SRB || 0x3F1 || Status Register B || lesen | ||
| + | |- | ||
| + | | DOR || 0x3F2 || Digital Output Register || schreiben | ||
| + | |- | ||
| + | | TDR || 0x3F3 || Tape Drive Register || lesen/schreiben | ||
|- | |- | ||
| MSR || 0x3F4 || Main Status Register || lesen | | MSR || 0x3F4 || Main Status Register || lesen | ||
| + | |- | ||
| + | | DRSR || 0x3F4 || Data Rate Select Register || schreiben | ||
|- | |- | ||
| DR || 0x3F5 || Data Register || lesen/schreiben | | DR || 0x3F5 || Data Register || lesen/schreiben | ||
|- | |- | ||
| − | | | + | | DIR || 0x3F7 || Digital Input Register || lesen |
| + | |- | ||
| + | | CCR || 0x3F7 || Configuration Control Register || schreiben | ||
|- | |- | ||
|} | |} | ||
| + | |||
== Aufbau == | == Aufbau == | ||
Wenn nichts dasteht, gilt das Flag bei gesetztem Bit. | Wenn nichts dasteht, gilt das Flag bei gesetztem Bit. | ||
=== MSR === | === MSR === | ||
| − | {| | + | {| {{Prettytable}} cellpadding="8" |
| − | | Bit ||7||6||5||4||3||2||1||0 | + | | '''Bit''' ||7||6||5||4||3||2||1||0 |
|- | |- | ||
| − | | Name || MRQ || DIO || NDMA || BUSY || ACTD || ACTC || ACTB || ACTA | + | | '''Name''' || MRQ || DIO || NDMA || BUSY || ACTD || ACTC || ACTB || ACTA |
|- | |- | ||
|} | |} | ||
| Zeile 30: | Zeile 43: | ||
;DIO | ;DIO | ||
: Daten I/O | : Daten I/O | ||
| − | : 0: CPU -> FDC | + | : 0: CPU -> FDC (Daten schreiben) |
| − | : 1: FDC -> CPU | + | : 1: FDC -> CPU (Daten lesen) |
;NDMA | ;NDMA | ||
: DMA-Modus | : DMA-Modus | ||
| Zeile 43: | Zeile 56: | ||
: Laufwerk D-A ist im Positionierungs-Modus | : Laufwerk D-A ist im Positionierungs-Modus | ||
=== DOR === | === DOR === | ||
| − | {| | + | {| {{Prettytable}} cellpadding="8" |
| − | | Bit ||7||6||5||4||3||2||1 | + | | '''Bit''' ||7||6||5||4||3||2||1 – 0 |
|- | |- | ||
| − | | Name || MOTD || MOTC || MOTB || MOTA || DMA || RESET || DRIVE | + | | '''Name''' || MOTD || MOTC || MOTB || MOTA || DMA || RESET || DRIVE |
|- | |- | ||
|} | |} | ||
| Zeile 54: | Zeile 67: | ||
: 1: Motor anschalten | : 1: Motor anschalten | ||
;DMA | ;DMA | ||
| − | : DMA und IRQ | + | : DMA und IRQ |
| − | : 0: | + | : 0: deaktiviert |
| − | : 1: | + | : 1: aktiviert |
;RESET | ;RESET | ||
: Controller Reset | : Controller Reset | ||
| Zeile 73: | Zeile 86: | ||
====ST0==== | ====ST0==== | ||
| − | {| | + | {| {{Prettytable}} cellpadding="8" |
| − | | Bit ||7 | + | | '''Bit''' ||7 – 6||5||4||3||2||1 – 0 |
|- | |- | ||
| − | | Name || IC || SE || UC || NR || HD || US | + | | '''Name''' || IC || SE || UC || NR || HD || US |
|- | |- | ||
|} | |} | ||
| Zeile 105: | Zeile 118: | ||
====ST1==== | ====ST1==== | ||
| − | {| | + | {| {{Prettytable}} cellpadding="8" |
| − | | Bit ||7||6||5||4||3||2||1||0 | + | | '''Bit''' ||7||6||5||4||3||2||1||0 |
|- | |- | ||
| − | | Name || EN || 0 || DE || TO || 0 || NDAT || NW || NID | + | | '''Name''' || EN || 0 || DE || TO || 0 || NDAT || NW || NID |
|- | |- | ||
|} | |} | ||
| Zeile 131: | Zeile 144: | ||
: gesetzt wenn die ID Address mark nicht gefunden wurde | : gesetzt wenn die ID Address mark nicht gefunden wurde | ||
====ST2==== | ====ST2==== | ||
| − | {| | + | {| {{Prettytable}} cellpadding="8" |
| − | | Bit ||7||6||5||4||3||2||1||0 | + | | '''Bit''' ||7||6||5||4||3||2||1||0 |
|- | |- | ||
| − | | Name || 0 || DADM || CRCE || WCYL || SEQ || SERR || BCYL || NDAM | + | | '''Name''' || 0 || DADM || CRCE || WCYL || SEQ || SERR || BCYL || NDAM |
|- | |- | ||
|} | |} | ||
| Zeile 156: | Zeile 169: | ||
: not data address mark DAM | : not data address mark DAM | ||
====ST3==== | ====ST3==== | ||
| − | {| | + | {| {{Prettytable}} cellpadding="8" |
| − | | Bit ||7||6||5||4||3||2||1 | + | | '''Bit''' ||7||6||5||4||3||2||1 – 0 |
|- | |- | ||
| − | | Name || ESIG || WPDR || RDY || TRKO || DSDR || HDDR || DS | + | | '''Name''' || ESIG || WPDR || RDY || TRKO || DSDR || HDDR || DS |
|- | |- | ||
|} | |} | ||