Radic/formatovac SAB 2797
*************************
Material sestaven podle firemnich materialu Siemens AG.
pripojeni kanalu pro vystup a vstup:
CH OUT INP VYZNAM
80 - Command - Status Prikazovy registr / Stavovy registr
81 - Track - Track Stopa
82 - Sector - Sector Sektor
83 - Data - Data Data
84 - Drive - not used Prime rizeni mechaniky / nevyuzito
Command register:
=================
Slouzi pro zadavani 8mi prikazu pro radic. Bity 7 az 5 obsahuji cislo prikazu
( tim je dan zaroven i typ prikazu I az IV, viz nize ), v ostatnich bitech
jsou pak predavany parametry prikazu. Je-li nejaky prikaz prave vykonavan,
je nastaven bit BUSY stavoveho registru a do prikazoveho registru nemuze byt
zapisovan jiny prikaz.
Prikaz 0a - hledani home stopy - I
---------------------------------- bity: 4 3 2 1 0
Provede vyhledani nulte stopy. 0 h V r1 r0
Prikaz 0b - hledani stopy - I
----------------------------- 4 3 2 1 0
Provede vyhledani stopy podle registru Data. 1 h V r1 r0
Prikaz 1 - krok o stopu - I
--------------------------- 4 3 2 1 0
Provede jeden krok naposledy uvedenym smerem. T h V r1 r0
Prikaz 2 - krok ke stredu - I
----------------------------- 4 3 2 1 0
Provede jeden krok smerem k vyssi stope. T h V r1 r0
Prikaz 3 - krok od stredu - I
----------------------------- 4 3 2 1 0
Provede jeden krok smerem k nizsi stope. T h V r1 r0
Prikaz 4 - cti sektor - II
-------------------------- 4 3 2 1 0
Provede nacteni sektoru podle registru Sector. m L E U 0
Prikaz 5 - zapis sektor - II
---------------------------- 4 3 2 1 0
Provede zapis do sektoru podle registru Sector. m L E U a
Prikaz 6a - cteni adresy - III
------------------------------ 4 3 2 1 0
Provede nacteni informacnich bajtu z datoveho pole. 0 0 E U 0
Prikaz 6b - nucene preruseni - IV
--------------------------------- 4 3 2 1 0
Zpusobi preruseni vykonavani prikazu. 1 I3 I2 I1 I0
Prikaz 7a - cteni stopy - III
----------------------------- 4 3 2 1 0
Provede nacteni cele jedne stopy bez kontrol. 0 0 E U 0
Prikaz 7b - zapis stopy - III
----------------------------- 4 3 2 1 0
Provede naformatovani jedne stopy. 1 0 E U 0
vyznam bitu parametru:
h=0 na pocatku operace hlavicka neni usazena na diskete, pri h=1 usazena je
V=1 verifikace cisla stopy, kontrola CRC, pri V=0 bez verifikace
r1 r0 rychlost krokoveho motorku. Uvedene hodnoty plati pro 1 MHz, pro 2 MHz
jsou polovicni. Pulsy: 00 - 6 ms, 01 - 12 ms, 10 - 20 ms, 11 - 30 ms
T=0 po ukonceni kroku neobnovovat registr stopy, pri T=1 obnovit
a=0 adresova znacka dat DAM je FB ( Data Address Mark ), pri a=1 je adresova
znacka dat vynechana - DAM je F8
U=0 nastaveni strany 0 ( SSO, Side Select Output), pri U=1 nastaveni na stranu
jedna
E=1 zpozdeni vykonani prikazu pro ustaveni hlavicky o 15 ms, pri E=0 bez zpoz-
deni
L - delka sektoru v zavislosti na delce uvedene v ID poli
ID 00 01 10 11
L=0 256 512 1024 128
L=1 128 256 512 1024
m=0 jednotlivy zaznam, m=1 mnohonasobny zaznam
I0=1 preruseni pri prechodu z NOT READY do READY
I1=1 preruseni pri prechodu z READY do NOT READY
I2=1 preruseni u nasledujiciho indexoveho pulsu
I3=1 okamzite preruseni vyzadujici reset
Je-li I3 az I0 na 0 - ukonceni bez preruseni INTRQ
Blizsi specifikace jednotlivych prikazu:
----------------------------------------
Pri posunu hlavicky na novou stopu je pri nastavenem bitu verifikace po
ukonceni kroku generovana prodleva 15 ms ( nebo 30 ms u 1 MHz ). Jsou-li
provadeny prikazy typu I s pozadavkem verifikace, pak 15 ms po ustaveni
hlavicky je zapocteno hledani ID pole na prave nastavene stope. Cislo stopy
z prvniho nalezeneho ID pole je porovnano s obsahem registru stopy a pokud
souhlasi a souhlasi-li i cyklicka redundancni kontrola, je prikaz ukoncen bez
generovani chyby. Pokud souhlasi jen cislo, je nastaven bit chyby CRC a hleda
se dalsi ID pole. Pokud neni nenalezeno bezchybne ID pole behem 5 otacek
diskety, je prikaz ukoncen s nastavenym bitem SEEK ERROR. Vystup SSO neni
behem prikazu typu I ovlivnovan a porovnani stran se pri verifikaci neprovadi.
Pri hledani stopy stopovy registr obsahuje cislo stopy, na ktere se nachazi
hlavicka a datovy registr obsahuje cislo pozadovane stopy, na kterou se ma
najet. Pri hledani nulte stopy je provedeno maximalne 255 kroku smerem od
stredu diskety. Pri nenalezeni zadane stopy je nastaven bit chyby SEEK ERROR.
Je-li pri prikazu pro krok hlavicky parametr T=1, pak je stopovy registr po
ukonceni kroku zmensen nebo zvetsen o 1 podle smeru pohybu.
U prikazu typu II je kontrolovano cislo stopy, cislo sektoru a spravnost CRC
ID pole a teprve pote je provaden zapis nebo cteni datoveho pole.
Pri nastavenem priznaku mnohonasobneho zaznamu radic po precteni nebo zapsani
pozadovaneho sektoru zvetsi hodnotu sektoroveho registru a pokusi se sektor
s timto cislem na diskete najit a opet jej precist nebo do neho zapsat. Prikaz
je ukoncen nenalezenim sektoru nebo nucenym prerusenim. Je-li pozadavek na
SSO, porovnava radic cislo pozadovane strany s cislem uvedenym v ID poli.
Parametr L dovoluje ve spojenim s bytem delky sektoru v ID poli implementovat
ruzne bytove delky sektoru. Pri cteni adresy se nacte nejblizsi ID pole
a informace z nej se prenesou do datoveho registru v poradi: cislo stopy,
cislo strany, cislo sektoru, delka sektoru, CRC 1 a CRC 2. Cislo stopy se
zaroven prepise do sektoroveho registru. Pri cteni cele stopy zacne radic
predavat data od nabezne hrany prvniho indexoveho impulsu, pricemz pro kazdy
byte je generovano DRQ. Neni provadena kontrola CRC, byty nactene v mezerach
mohou byt preneseny nespravne, vzhledem k synchronizaci. Pri formatovani stopy
se zapisuji byty na disketu od nabezne hrany prvniho indexoveho impulsu, tak
jak prichazeji do radice z pocitace. Byty 00 az F4 a FF jsou zapsany normalne,
byty F5 az FE jsou interpretovany jinak ( viz nize ) a nesmi byt zapisovany
do mezer, datovych a identifikacnich poli.
Provadeni prikazu typu I probiha nezavisle na stavu READY disku. Prikazy typu
II a III naopak pripravenost disku vyzaduji.
Vyznam bytu pri formatovani:
----------------------------
byte FM MFM
00 az F4 - 00 az F4 s CLK FF 00 az F4
F5 - neni dovoleno zapise A1 s PCRC
F6 - neni dovoleno zapise C2
F7 - vygeneruje 2 CRC byty vygeneruje 2 CRC byty
F8 az FB - F8 az FB s CLK C7 a PCRC F8 az FB
FC - FC s CLK D7 FC
FD - FD s CLK FF FD
FE - FE s CLK C7 a PCRC FE
FF - FF s CLK FF FF
PCRC znamena, ze od tohoto bajtu se zacne pocitat CRC.
Status register:
================
Bity stavoveho registru obsahuji informace o prave provadenem prikazu. Po
zadani kakehokoli prikazu krome typu IV je aktivovan bit BUSY a ostatni bity
jsou inicializovany. Pri prijmuti prikazu typu IV je bit BUSY shozen a ostatni
bity zustavaji beze zmeny. Po precteni stavoveho registru jsou resetovany
signaly INTRQ a DRQ a bit DATA REQUEST. Jednotlive bity maji ruzny vyznam
v zavislosti na typu provadeneho prikazu. Bit nastaveny na hodnotu 1 oznamuje,
ze je dany priznak aktivni.
Nazvy priznaku pro jednotlive prikazy
-------------------------------------
bit prikazy typu I - cteni adresy - cteni sektoru - cteni stopy
7 - NOT READY - NOT READY - NOT READY - NOT READY
6 - WRITE PROTECT - 0 - 0 - 0
5 - HEAD LOADED - 0 - RECORD TYPE - 0
4 - SEEK ERROR - RNF - RNF - 0
3 - CRC ERROR - CRC ERROR - CRC ERROR - 0
2 - TRACK 0 - LOST DATA - LOST DATA - LOST DATA
1 - INDEX - DRQ - DRQ - DRQ
0 - BUSY - BUSY - BUSY - BUSY
bit zapis sektor - zapis stopu
7 - NOT READY - NOT READY
6 - WRITE PROTECT - WRITE PROTECT
5 - WRITE FAULT - WRITE FAULT
4 - RNF - 0
3 - CRC ERROR - 0
2 - LOST DATA - LOST DATA
1 - DRQ - DRQ
0 - BUSY - BUSY
Vyznam priznaku:
----------------
NOT READY radic neni v pohotovosti
WRITE PROTECT na diskete je nastven zakaz zapisu
HEAD LOADED hlavicka je usazena na mediu
SEEK ERROR pozadavana stopa neni verifikovana
CRC ERROR v poli ID je zjisteno CRC
TRACK 0 hlavicka se nachazi na nulte stope
INDEX byla nalezena indexova znacka
RECORD TYPE oznacuje kod typu zaznamu, pri =1 je vynechana DAM,
pri =0 je DAM pouzita
WRITE FAULT vzdy nulovy ( pak to ale nema smysl !!! )
RNF (RECORD NOT FOUND) pozadovana strana, sektor nebo stopa nebyla nalezena
CRC ERROR pri nastavenem bitu RNF je chyba v poli ID, jinak je
v datech
LOST DATA data nebyla vcas pocitacem odebrana nebo zapsana
DRQ (DATA REQUEST) pri cteni: data lze cist, pri zapisu: lze zapsat
BUSY radic prave zpracovava prikaz
Vzhledem k vnitrnim synchronizacnim cyklum je nutno dodrzovat urcita zpozdeni
pri provozu s programovanymi vstupy/vystupy:
probihajici operace nasledujici operace potrebne zpozdeni FM / MFM
zapis do Command reg. cteni bitu 0 12 / 6 microsec
zapis do Command reg. cteni bitu 1 az 7 28 / 14 microsec
zapis do lib. registru cteni z jineho reg. 0 / 0 microsec
Casy plati pro CLK 2 MHz, pri pouziti 1 MHz se zdvojnasobuji.
Track register:
===============
Obsahuje cislo stopy ( 0 az 255 ), nad kterou se nachazi hlavicka mechaniky.
Je-li nastaven parametr T, meni se automaticky hodnota registru pri kroku
hlavy k jine stope, pricemz se obsah registru neporovnava s cislem stopy
na diskete. Je-li pozadavek na cteni, zapis nebo verifikaci, pak se obsah
registru se porovnava s cislem stopy, ktere je zaznamenane v ID poli
na diskete. Je-li radic ve stavu BUSY, nesmi byt registr naplnovan.
Sector register:
================
Obsahuje cislo pozadovaneho sektoru ( 0 az 255 ). Obsah registru se porovnava
s cislem sektoru, ktere je zaznamenane v ID poli na diskete, je-li pozadavek
na cteni nebo zapis. Je-li radic ve stavu BUSY, nesmi byt registr naplnovan.
Data register:
==============
Tento registr je pouzivan pro zachyceni dat, pri operacich cteni a zapisu.
Pri provadeni prikazu hledani je v datovem registru adresa pozadovane stopy.
Drive register:
===============
Slouzi k primemu ovladani mechaniky bez prostrednictvi radice. Jednotlive bity
maji tento vyznam:
bit 1/0
7 - HI/NOR - high / normal
6 - OFF/ON - LED lamp, select
5 - ON/OFF - wait
4 - ON/OFF - motor
3 - FM/MFM - density
2 - 8"/5.25" - drive
1 - 1/0 - not used ( pozdeji se pouzije pro prepinani drajvru 0 a 1 )
0 - 2/1 - frequency MHz
Aby mohl radic ohlasit DISC READY, musi byt nastaven bit SELECT.
SELECT lze zrusit pouze v okamziku, kdy je hlavicka nadzdvizena.
Toto je dano nastavenim propojek v mechanice.
Formaty disket
**************
IBM 3740 IBM 34 FM mini MFM mini
8 palcu 8 palcu diskette diskette
Gap I - 40 x FF - 80 x 4E - 40 x FF - 60 x 4E
- 6 x 00 - 12 x 00 - -
- - 3 x F6 - -
Index Mark - 1 x FC - 1 x FC - -
- 26 x FF - 50 x 4E - -
----------------------------------------------------.
- 6 x 00 - 12 x 00 - 6 x 00 - 12 x 00 |
- - 3 x F5 - - 3 x F5 |
ID Address Mark - 1 x FE - 1 x FE - 1 x FE - 1 x FE |
Track Number - 1 x nn - 1 x nn - 1 x nn - 1 x nn |
Side Number - 1 x nn - 1 x nn - 1 x nn - 1 x nn |
Sector Number - 1 x nn - 1 x nn - 1 x nn - 1 x nn `
Sector Lenght - 1 x 00 - 1 x 01 - 1 x 00 - 1 x 01 \
Writes 2 CRCs - 1 x F7 - 1 x F7 - 1 x F7 - 1 x F7 > 26 x
Gap II - 11 x FF - 22 x 4E - 11 x FF - 22 x 4E /
- 6 x 00 - 12 x 00 - 6 x 00 - 12 x 00 '
Writes A1 - - 3 x F5 - - 3 x F5 |
Data Address Mark - 1 x FB - 1 x FB - 1 x FB - 1 x FB |
Data Field - 128 x E5 - 256 x E5 - 128 x E5 - 256 x E5 |
Writes 2 CRCs - 1 x F7 - 1 x F7 - 1 x F7 - 1 x F7 |
Gap III - 27 x FF - 54 x 4E - 10 x FF - 24 x 4E |
----------------------------------------------------'
Gap IV - 247 x FF - 598 x 4E - 369 x FF - 718 x 4E
U nestandardnich formatu lze delky mezer zmenit:
FM MFM
Gap I - 16 x FF - 32 x 4E
Gap II - 11 x FF - 22 x 4E
6 x 00 12 x 00
Gap III - 10 x FF - 24 x 4E
4 x 00 8 x 00
3 x F5 ( zapise A1 )
Gap IV - 16 x FF - 16 x 4E
SKEW ( skju ) faktor - logicke cislovani sektoru
Kapacity diskety pri 80 tps, 2 stranach a maximalnim poctu zapsanych sektoru:
FM / MFM
bps spt KB / spt KB bps - bytes per sector
128 - 18 360 / 29 580 spt - sectors per track
256 - 10 400 / 18 720 tps - track per side
512 - 5 400 / 10 800
1024 - 2 320 / 5 800
Maximum je 83 tps.
Standardni formaty:
IBM PC 360 KB - MFM, 512 bps, 9 spt, 40 tps, 2 sides
IBM PC 720 KB - MFM, 512 bps, 9 spt, 80 tps, 2 sides
CP/M86 720 KB - MFM, 512 bps, 9 spt, 80 tps, 2 sides
Datum poslední editace: 27. 4. 1992
============== Napsal Roman Štec z teamu LZR Soft ==============