| Zeile 45: | Zeile 45: | ||
=== Fehlerregister === | === Fehlerregister === | ||
Nach der Ausführung eines Kommandos kann man hier den Fehlercode auslesen. Der Fehlercode gilt aber nur, wenn im Statusregister das ERR-Bit gesetzt ist. | Nach der Ausführung eines Kommandos kann man hier den Fehlercode auslesen. Der Fehlercode gilt aber nur, wenn im Statusregister das ERR-Bit gesetzt ist. | ||
| − | + | {| {{Prettytable}} | |
| + | ! width="60pt" | 7 !! width="60pt" | 6 !! width="60pt" | 5 !! width="60pt" | 4 !! width="60pt" | 3 !! width="60pt" | 2!! width="60pt" | 1 !! width="60pt" | 0 | ||
| + | |- | ||
| + | | ICRC ||UNC||MC||IDNF||MCR ||ABRT || NM || r | ||
| + | |} | ||
| + | * ICRC: CRC-Vergleichsfehler bei Ultra-DMA-Übertragungen | ||
| + | * UNC: Fehler im Datenfeld des Sektors | ||
| + | * MC: Das Speichermedium(CD) wurde gewechselt | ||
| + | * IDNF: Die Sektor-ID wurde nicht gefunden | ||
| + | * MCR: Bei einem CD-Laufwerk wurde der Auswurf-Knopf gedrückt | ||
| + | * ABRT: Command aborted (falsches Kommando oder Gerätefehler) | ||
| + | * NM: No Media | ||
| + | * r: reserviert | ||
=== Sektoranzahl === | === Sektoranzahl === | ||
| + | Anzahl der zu lesenden/schreibenden Sektoren. | ||
=== LBA niedrig === | === LBA niedrig === | ||
| + | LBA Bit 0-7. | ||
=== LBA mittel === | === LBA mittel === | ||
| + | LBA Bit 8-15. | ||
=== LBA hoch === | === LBA hoch === | ||
| + | LBA Bit 16-23. | ||
=== Geräteauswahl === | === Geräteauswahl === | ||
| + | {| {{Prettytable}} | ||
| + | ! width="60pt" | 7 !! width="60pt" | 6 !! width="60pt" | 5 !! width="60pt" | 4 !! width="60pt" | 3 !! width="60pt" | 2!! width="60pt" | 1 !! width="60pt" | 0 | ||
| + | |- | ||
| + | | 1||1||1||DR|| colspan="4" align="center" | LBA Bit 27-24 | ||
| + | |} | ||
| + | * DR: Drive Master(0) / Slave(1) | ||
| + | === Status/Kommandoregister === | ||
| + | Beim Lesen: | ||
| + | {| {{Prettytable}} | ||
| + | ! width="60pt" | 7 !! width="60pt" | 6 !! width="60pt" | 5 !! width="60pt" | 4 !! width="60pt" | 3 !! width="60pt" | 2!! width="60pt" | 1 !! width="60pt" | 0 | ||
| + | |- | ||
| + | | BSY ||DRDY||DF||#||DRQ || r || r || ERR | ||
| + | |} | ||
| + | * BSY: Busy | ||
| + | * DRDY: Drive Ready. Gesetzt, wenn die Drive Kommandos annehmen kann. | ||
| + | * DF: Device Fault. Betrifft Fehler, die nicht im Fehlerregister angezeigt werden. | ||
| + | * #: Kommando-abhängig | ||
| + | * DRQ: Ein Zugriff auf das Datenregister wird erwartet | ||
| + | * ERR: Error-Bit. Nach Fehler gesetzt, Beschreibung im Fehlerregister. | ||
| + | Beim Schreiben: | ||
| + | Hier wird der Befehl reingeschrieben. | ||
| + | === Status2/Steuerregister === | ||
| + | Beim Lesen: | ||
| + | Wie Statusregister. | ||
| + | Beim Schreiben: | ||
{| {{Prettytable}} | {| {{Prettytable}} | ||
! width="60pt" | 7 !! width="60pt" | 6 !! width="60pt" | 5 !! width="60pt" | 4 !! width="60pt" | 3 !! width="60pt" | 2!! width="60pt" | 1 !! width="60pt" | 0 | ! width="60pt" | 7 !! width="60pt" | 6 !! width="60pt" | 5 !! width="60pt" | 4 !! width="60pt" | 3 !! width="60pt" | 2!! width="60pt" | 1 !! width="60pt" | 0 | ||
| Zeile 56: | Zeile 97: | ||
| HOB ||r||r||r||r || SRST || nIEN || 0 | | HOB ||r||r||r||r || SRST || nIEN || 0 | ||
|} | |} | ||
| − | |||
| − | |||
* HOB: siehe [[AT Attachment#HOB-Bit löschen|HOB-Bit]] | * HOB: siehe [[AT Attachment#HOB-Bit löschen|HOB-Bit]] | ||
* SRST: Software Reset | * SRST: Software Reset | ||
* nIEN: Wenn gesetzt, sendet der Controller keine PIC-Ints mehr | * nIEN: Wenn gesetzt, sendet der Controller keine PIC-Ints mehr | ||
* 0: Immer 0 | * 0: Immer 0 | ||
| − | |||
| − | |||
| − | |||
== Fehlerquellen == | == Fehlerquellen == | ||