Projects/tigris
Projects
/
tigris
Archived
5
0
Fork 0
This repository has been archived on 2024-07-04. You can view files and clone it, but cannot push or open issues or pull requests.
tigris/reference/disk.txt

192 lines
6.0 KiB
Plaintext

Diskettstasjonkontrolleren i TIKI-100 Rev C
-------------------------------------------
TIKI-100 inneholder en FD1767PL-02 eller en FD1797-PL diskettstasjonkontroller
fra Western Digital. I TIKI-100 er ikke FD17xx kretsens INTRQ tilkoblet, så
den vil ikke kunne generere interrupts.
FD17xx kretsen kontrolleres gjennom 4 I/O porter:
I/O-port 10H: Statusord / styreord
Ved skriving er dette kommandoregisteret. Ved lesing er det statusregisteret.
I/O-port 11H: Spornummer
Her kan spor-registeret skrives og leses.
I/O-port 12H: Sektornummer
Her kan sektor-registeret skrives og leses.
I/O-port 13H: Dataregister
Gjennom denne porten leses og skrives data til diskett.
Oversikt over kommandoer
Type Navn Bits i kommandoregister
---------------------------------------------
I Restore 0 0 0 0 h V r1 r0
I Seek 0 0 0 1 h V r1 r0
I Step 0 0 1 T h V r1 r0
I Step-In 0 1 0 T h V r1 r0
I Step-Out 0 1 1 T h V r1 r0
II Read Sector 1 0 0 m 1 1 U 0
II Write Sector 1 0 1 m 1 1 U a0
III Read Address 1 1 0 0 0 1 U 0
III Read Track 1 1 1 0 0 1 U 0
III Write Track 1 1 1 1 0 1 U 0
IV Force Interrupt 1 1 0 1 0 0 0 0
r1,r0: Stepping Motor Rate
0 0 = 6 ms
0 1 = 12 ms
1 0 = 20 ms
1 1 = 30 ms
V: Track Number Verify Flag
0 = ikke verifiser
1 = sjekk at sporregisteret tilsvarer spornummeret i første ID-felt på
målsporet
h: Head Load
0 = ikke senk lese/skrive hodet
1 = senk lese/skrive hodet
T: Track Update Flag
0 = ikke oppdater sporregister
1 = oppdater sporregister etter endt operasjon
U: Side select
0 = velg side 0
1 = velg side 1
m: Multiple Record Flag
0 = les/skriv kun 1 sektor
1 = les/skriv sektorer helt til hele sporet er dekket
a0: Data Address Mark
0 = dataadressemerket er 0fbH
1 = dataadressemerket er 0f8H (slettet dataadressemerke)
Statusregister
Type I kommandoer:
Bit Navn Forklaring
----------------------------------------------------------------------------
7 Not ready Stasjonen er ikke klar
6 Protected Skrivebeskyttet diskett
5 Alltid 1 i TIKI-100
4 Seek error Ønsket spor ikke verifisert
3 CRC error Gal CRC i ID-felt
2 Track 0 Hodet står over spor 0
1 Index Angir begynnelsen av første sektor
0 Busy Kommando under utførelse
Type II og III kommandoer:
Bit Navn Forklaring
----------------------------------------------------------------------------
7 Not ready Samme som for type I
6 Protected Lesekommandoer: ikke brukt
Skrivekommandoer: diskett er skrivebeskyttet
5 Record type/Write fault Les sektor: 1 = slettet dataadressemerke
0 = vanlig dataadressemerke
Skrivekommandoer: Skrivefeil
4 Record not found Ønsket spor, sektor eller side ikke funnet
3 CRC error Sammen med bit 4: Feil sjekksum i kontrollfelt
Uten bit 4: Feil sjekksum i datafelt
2 Lost data Prosessor har ikke håndtert DRQ raskt nok
1 Data request Kopi av DRQ, klar for overføring av neste byte
0 Busy Kommando under utførelse
Busy flagget settes når en kommando er under utførelse. Ingen kommando, utenom
"Force Interrupt" må legges inn i kommandoregisteret mens Busy er satt.
Type I kommandoer
Restore
Før hodet til spor 0 og oppdater sporregisteret.
Hvis ikke sporet finnes innen 255 flytt, settes "Seek error" i
statusregisteret.
Seek
Denne kommandoen antar at sporregisteret inneholder gjeldende spornummer og
dataregisteret inneholder ønsket målspor.
Fører hodet til sporet angitt i dataregisteret og oppdaterer sporregisteret.
Step
Flytt hodet ett spor i samme retning som det ble flyttet sist.
Step-In
Flytt hodet ett spor innover (mot økende spornummer).
Step-Out
Flytt hodet ett spor utover (mot spor 0).
Type II kommandoer
Legg ønsket sektor i sektorregisteret.
Read Sector
Overfører ønsket sektor byte for byte gjennom dataregisteret. Hver gang en byte
er klar for overføring settes "Data request" flagget i statusregisteret. Etter
endt operasjon settes "Recort type" flagget i statusregisteret.
Write Sector
Skriver ønsket sektor til diskett. Hver gang en byte kan skrives, settes "Data
request" flagget i statusregisteret. Diskettkontrolleren lager selv ID feltet
med riktig dataadressemerke og CRC.
Type III kommandoer
Read Address
Overfører gjennom dataregisteret det neste ID feltet som passeres. Hver gang en
byte er klar for overføring settes "Data request" flagget i statusregisteret.
ID feltet består av seks bytes:
1 spor
2 side
3 sektor
4 sektorlengde
0 = 128 bytes
1 = 256 bytes
2 = 512 bytes
3 = 1024 bytes
5,6 CRC
Read Track
Overfører hele sporet gjennom dataregisteret, inkludert ID felt og mellomrom.
Hver gang en byte er klar for overføring settes "Data request" flagget i
statusregisteret.
Write Track
Skriver et spor til diskett, inkludert mellomrom og ID felter. Brukes til
formatering av diskett. Bytes overføres gjennom dataregisteret. "Data request"
settes i statusregisteret når det er klart for neste byte.
Bytes f5H-feH tolkes som dataadressemerke. Spesielt tolkes f5H-f7H slik:
f5H Skriv a1H, nullstill CRC generator.
f6H Skriv c2H
f7H Skriv 2 bytes CRC.
Type IV kommandoer
Force Interrupt
Brukes til å stanse en pågående operasjon før den avsluttes på normalt vis,
eller sikre type I statusregister.
Hvis denne kommandoen settes mens en annen kommando utføres (busy = 1), vil
busy settes lik 0 og resten av statusregisteret er uforandret.
Hvis busy = 0 når denne kommandoen utføres vil statusregisteret slettes /
oppdateres og reflektere type I statusregister.
---
21 januar 2001
Asbjørn Djupdal, djupdal@stud.ntnu.no