+------------------------------------+
| Ansteuerung der Laufwerks-Motoren: |
+------------------------------------+
| OUT &F8FF,0 -> Stoppe Motor |
| OUT &F8FF,1 -> Starte Motor |
+------------------------------------+
| Speicher und Peripherie: Reservierte und frei verfügbare I/O-AdressenI/O-Adressen Die ICs im Überblick: Der FDC 765 Das Innenleben der CPC-Rechner: Der FDC 765des FDC: |
+------------------------------------+
| &Die Register des FDC: Das Haupt-Statusregister - INP(&FB7E)FB7E -> Haupt-Statusregister |
| &FB7F -> Datenregister |
+------------------------------------+
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 - RQM - Request for Master
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 6 - DIO - Data Input/Output
Das Haupt-Statusregister - INP(&FB7E): Bit 5 - EXM - Execution ModeBit 5 - EXM - Execution Mode
Das Haupt-Statusregister - INP(&FB7E): Bit 4 - FCB - Floppy Controller BusyBit 4 - FCB - Floppy Controller Busy
Das Haupt-Statusregister - INP(&FB7E): Bits 0-3 - FDB - Floppy Drive BusyBits 0-3 - FDB - Floppy Drive Busy
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bits 7,6 - Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt Code
00 -> Kommando erfolgreich beendet
01 -> Kommando abgebrochen wegen Der Linien-Algorithmus: Fehler 3Fehler
10 -> ungültiges Kommando
11 -> Kommando abgebrochen weil Drive 'not Erklärung zu den Bezeichnungen: READY Erklärungen zu den Anschlussbezeichnungen: READYready' wurde
Das Statusregister 0: Bit 5 = 1 -> Seek End auf einem DriveBit 5 = 1 -> Seek End auf einem Drive
Das Statusregister 0: Bit 4 = 1 -> Fehler in der FloppyBit 4 = 1 -> Fehler in der Floppy
Das Statusregister 0: Bit 3 = 1 -> Laufwerk ist nicht bereitBit 3 = 1 -> Laufwerk ist nicht bereit
Das Statusregister 0: Bit 2 - HeadBit 2 - Head
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 1,0 - Unit Select
Das Statusregister 1: Bit 7 = 1 -> End of track errorBit 7 = 1 -> End of track error
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 6 = 0 nicht benutzt
Das Statusregister 1: Bit 5 = 1 -> CRC-Fehler im Daten- oder ID-FeldBit 5 = 1 -> CRC-Fehler im Daten- oder ID-Feld
Das Statusregister 1: Bit 4 = 1 -> Puffer-ÜberlaufBit 4 = 1 -> Puffer-Überlauf
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 3 = 0 nicht benutzt
Das Statusregister 1: Bit 2 = 1 -> Sektor nicht auffindbarBit 2 = 1 -> Sektor nicht auffindbar
Das Statusregister 1: Bit 1 = 1 -> Diskette ist geschreibgeschützt.Bit 1 = 1 -> Diskette ist geschreibgeschützt.
Das Statusregister 1: Bit 0 = 1 -> ID- oder Data Address Mark fehltBit 0 = 1 -> ID- oder Data Address Mark fehlt
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 = 0 nicht benutzt
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 6 = 1 -> 'gelöschter' Sektor gefunden
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 5 = 1 -> Checksummenfehler im Datenteil eines Sektors
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 4 = 1 -> die logische Spurnummer aus der Sektor-ID stimmt nicht
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 3 = 1 -> Vergleich von Sektor- und Prozessor-Daten lieferte Gleichheit
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 2 = 1 -> Testbedingung im Scan-Kommando nicht erfüllt
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 1 = 1 -> Track enthält fehlerhafte Stellen. Nicht beschreiben!
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 0 = 1 -> Die Markierung für den Datenbereich war nicht auffindbar
Das Statusregister 3: Bit 7 = 1 -> Fehler-Flip-Flop gesetztBit 7 = 1 -> Fehler-Flip-Flop gesetzt
Das Statusregister 3: Bit 6 = 1 -> eingelegte Diskette ist schreibgeschütztBit 6 = 1 -> eingelegte Diskette ist schreibgeschützt
Das Statusregister 3: Bit 5 = 1 -> Laufwerk meldet 'ready'Bit 5 = 1 -> Laufwerk meldet 'ready'
Das Statusregister 3: Bit 4 = 1 -> Schreib-Lesekopf steht auf Spur Null (Track 0)Bit 4 = 1 -> Schreib-Lesekopf steht auf Spur Real: NullNull (Track 0)
Das Statusregister 3: Bit 3 = 1 -> Doppelkopf-LaufwerkBit 3 = 1 -> Doppelkopf-Laufwerk
Das Statusregister 0: Bit 2 - HeadBit 2 = Head
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 1 = Die Besonderheiten des FDC 765 im Schneider CPC: US1US1
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 0 = US0
OUT &FB7F,Spurnummer ; Sektor-ID-Information
OUT &FB7F,Kopfnummer ; dito
OUT &FB7F,Sektornummere ; dito
OUT &FB7F,Sektorgröße ; dito
OUT &FB7F,logische letzte Das Identifikationsfeld in jedem Sektor: 3. SektornummerSektornummer der Spur
OUT &FB7F,Lücke zwischen Sektor-ID und Daten
OUT &FB7F,Sektorlänge wenn Sektorgröße = 0
INP &FB7F,Statusregister 0
INP &FB7F,Statusregister 1
INP &FB7F,Statusregister 2
INP &FB7F,Spurnummer ; Sektor-ID-Informationen
INP &FB7F,Kopfnummer ; dito
INP &FB7F,Das Identifikationsfeld in jedem Sektor: 3. SektornummerSektornummer ; dito
INP &FB7F,Sektorgröße ; dito
&Die Befehle des FDC 765: &X0ms00010 - ganze Spur lesen (READ TRACK)X0ms00010 - ganze Spur lesen (READ TRACK)
&Die Befehle des FDC 765: &X00000011 - Laufwerksdaten festlegen (SPECIFY)X00000011 - Laufwerksdaten festlegen (SPECIFY)
&Die Befehle des FDC 765: &X00000100 - Statusregister 3 abfragen (SENSE DRIVE STATE)X00000100 - Statusregister 3 abfragen (SENSE DRIVE STATE)
&Die Befehle des FDC 765: &Xtm000101 - Sektor(en) schreiben (WRITE SECTOR)Xtm000101 - Sektor(en) schreiben (WRITE SECTOR)
&Die Befehle des FDC 765: &Xtms00110 - Sektor(en) lesen (READ SECTOR)Xtms00110 - Sektor(en) lesen (READ SECTOR)
&Die Befehle des FDC 765: &X00000111 - Spur 0 suchen (RECALIBRATE)X00000111 - Spur 0 suchen (RECALIBRATE)
&Die Befehle des FDC 765: &X00001000 - Statusregister 0 abfragen (SENSE INTERRUPT STATE)X00001000 - Statusregister 0 abfragen (SENSE INTERRUPT STATE)
&Die Befehle des FDC 765: &Xtm001001 - gelöschte Sektoren schreiben (WRITE DELETED SECTOR)Xtm001001 - gelöschte Sektoren schreiben (WRITE DELETED SECTOR)
&Die Befehle des FDC 765: &X0m001010 - Sektor-ID lesen (READ SECTOR ID)X0m001010 - Sektor-ID lesen (READ SECTOR ID)
&Die Befehle des FDC 765: &Xtms01100 - gelöschte Sektoren lesen (READ DELETED SECTOR)Xtms01100 - gelöschte Sektoren lesen (READ DELETED SECTOR)
&Die Befehle des FDC 765: &X0m001101 - eine Spur formatieren (FORMAT TRACK)X0m001101 - eine Spur formatieren (FORMAT TRACK)
&Die Befehle des FDC 765: &X00001111 - Spur suchen (SEEK)X00001111 - Spur suchen (SEEK)
&Die Befehle des FDC 765: &Xtms10001 - Sektor(en) testen (SCAN EQUAL)Xtms10001 - Sektor(en) testen (SCAN EQUAL)
&Die Befehle des FDC 765: &Xtms11001 - Sektor(en) testen (SCAN LOW OR EQUAL)Xtms11001 - Sektor(en) testen (SCAN LOW OR EQUAL)
&Die Befehle des FDC 765: &Xtms11101 - Sektor(en) testen (SCAN HIGH OR EQUAL)Xtms11101 - Sektor(en) testen (SCAN HIGH OR EQUAL)
|