                   3 PHASE COMMANDE - EXECUTION - RESULTAT
 
     Les deux commandes qui suivent sont  particuli}res  . Elles ont une phase 
 instruction qui n'{xige pas une  transmission  de  donn{es  et ne donnent pas 
 de phase r{sultat . Il faudra  cependant lire l'{tat d'interruption (Commande 
 &8) pour 2 raisons : 1 -  V{rifier  que  la  te^te se trouve bien sur la piste 
 demand{e car ce n'est pas sur ! 2  -  Tant  que  ET0  n'a pas {t{ lu , le FDC 
 refuse d'{crire ou de lire sur la disquette ! Quant on vous dit que la be^be^te 
 est capricieuse ...
 
     A - SE PLACER SUR LA PISTE NP  :  L'AMSDOS  n'est plus la pour le faire @ 
 votre place . Vous devez donc  dire  au  FDC  o|  mettre la te^te . Soyez tr}s 
 prudent . Un num{ro de piste  sup{rieur  @  41  risque de provoquer une nette 
 vibration du drive indiquant que la te^te de lecture veut quitter le boitier . 
 Un conseil : Si ceci se  produit  jetez  vous sur l'interrupteur du CPC avant 
 qu'elle y parvienne ! L'exp{rience @ prouv{  qu'un drive peu survivre un bref 
 instant @ ce genre d'avanie mais sans plus ...
 
     INSTRUCTION : 3 octets
     1 COMMANDE  : &F - %00001111
     2 DRIVE     : De 0 @ 3 pour A @ D
     3 Num{ro de piste voulu
     ---------------------------------
     EXECUTION   : RIEN  Essaye de positionner la te^te
 
     B - RECALIBRER SUR LA  PISTE  0  :  Si l'instruction pr{c{dente refuse de 
 donner le r{sultat voulu apr}s plusieurs tentatives  , il est possible que la 
 te^te patauge entre 2 pistes .  Utilisez  alors RECALIBRER et recommencez . Si 
 cela ne fonctionne toujours pas , jetez  un regard haineux sur votre drive et 
 signifiez lui son cong{ !
 
     INSTRUCTION : 2 octets
     1 COMMANDE  : &7 - %00000111
     2 DRIVE     : De 0 @ 3 pour A @ D
     ---------------------------------
     EXECUTION   : RIEN Va en piste 0
 
     NOTE : Ces deux instructions n'ont  pas  non  plus besoin de connai^tre la 
 densit{ ou le mode d'{criture . Elles vont en piste N et c'est tout !
 
     C / FORMATER UNE PISTE :  Cette  instruction permet de formater une piste 
 en secteurs dont la taille (fonction  du  nombre)  peut  varier de 128 @ 4096 
 octets . Positionner pr{alablement la te^te sur la piste @ formater .
 
     INSTRUCTION : 6 octets
     1 COMMANDE             : &4D - %01001101
     2 DRIVE                : De 0 @ 3 pour A @ D
     3 Taille secteur       : De 0 @ 5 . 2 pour AMSDOS
     4 Nombre secteurs      : De 1 @ 32 . 9 pour AMSDOS
     5 Gap de formatage     : &52 pour AMSDOS
     6 Octet de remplissage : &E5 pour AMSDOS
     --------------------------------------------------------
     EXECUTION : 4 octets * par nombre de secteurs @ formater
     --------------------------------------------------------
     RESULTAT : 7 octets
     1 Registre {tat 0
     2 Registre etat 1
     3 Registre etat 2
     4 Num{ro de piste
     5 Adresse de te^te (0 pour AMSDOS)
     6 Num{ro du secteur
     7 Taille du secteur
           --------------------------------------------------------
     Ceci m{rite quelques explications ! Ecartons  pour l'instant la notion de 
 taille secteur et de gap et voyons le reste . En phase instruction , apr}s la 
 commande et le num{ro de drive (Dont le  bit  2 @ 0 pour AMSDOS indique aussi 
 le num{ro de face) on indique au FDC , les param}tres du secteur .
     Les 4 octets transmis en  phase  ex{cution  sont  ce  que l'on nomme l'ID 
 (identification secteur) . Chaque secteur  doit  e^tre  pr{c{d{  de son ID qui 
 contient : 
     1 - Le num{ro de piste 
     2 - Le num{ro de te^te
     3 - Le num{ro de secteur (De &C1 @ &C9 pour DATA ou  &41 @ &49 pour CPM)
     4 - La taille du secteur
 
     Or , 2 de ces donn{es (Num{ro de  te^te et taille ont d{ja {t{ transmises) 
 D'autre part , avant de formater  une  piste  , il convient de positionner la 
 te^te @ l'emplacement voulu ! 3 des informations ID font donc double emploi .
     En r{alit{ , le formatage se  fait  selon  les param}tres fournis dans la 
 phase  instruction  .  Les  valeurs  fournies  dans  l'ID  n'ont  qu'un  ro^le 
 d'information destin{  aux  op{rations  de  lecture  et  {criture  .  On peut 
 parfaitement placer la te^te en piste 0  ,  formater 9 secteurs de taille 2 et 
 {crire dans l'ID : Piste 20 et  taille  des  secteurs  1  . Dans ce cas , les 
 valeurs rendues dans la phase r{sultat auront peu de signification et il sera 
 fort difficile voire impossible de lire ou {crire sur cette piste ...
 
     D - LIRE LES ID D'UNE PISTE : Positionner la te^te sur la piste @ tester .
 
     INSTRUCTION : 2 octets
     1 COMMANDE  : &4A - %01001010
     1 DRIVE     : De 0 @ 3 pour A @ D
     ------------------------------------------------
     EXECUTION   : Variable! Lit le 1er ID disponible
     ------------------------------------------------
     RESULTAT : 7 octets
     1 Registre {tat 0
     2 Registre etat 1
     3 Registre etat 2
     4 Num{ro de piste
     5 Adresse de te^te (0 pour AMSDOS)
     6 Num{ro du secteur
     7 Taille du secteur
 
     Comme on sait d'office sur quelle  piste  on se trouve , une modification 
 de num{ro de piste dans l'ID  sera  instantan{ment d{tect{e . Par contre pour 
 une {ventuelle modification de taille de  secteur , il conviendra de v{rifier 
 par une boucle de lecture de  secteur  testant toutes les tailles possibles . 
 L'ex{cution pr{sente quelques particularit{s dont on reparlera .
 
     E - LIRE UN SECTEUR : Placer la  te^te de lecture sur la piste concern{e . 
 Si les IDs ont {t{ bricol{s , de nombreux probl}mes peuvent se poser .
 
     INSTRUCTION : 9 octets
     1 COMMANDE  : &46 - %01000101
     2 DRIVE     : De 0 @ 3 pour A @ D
     3 Num{ro de piste (Selon ID)
     4 Adresse de te^te (Selon ID)
     5 Num{ro du 1er secteur (Selon ID)
     6 Taille du secteur (Selon ID)
     7 Num{ro du dernier secteur @ lire
     8 GAP d'{criture (Ne pas confondre avec GAP format)
     9 Longueur secteur : En principe toujours &FF
     -----------------------------------------------
     EXECUTION : Lire autant d'octets que n{c{ssaire
     -----------------------------------------------
     RESULTAT  : 7 octets! Registre {tat 0
     1 Registre {tat 1
     2 Registre etat 2
     3 Num{ro de piste
     4 Adresse de te^te
     5 Num{ro du secteur
     6 Taille du secteur
 
     Les commandes qui suivent ne varient  que  par  le code de commande et la 
 nature de la phase ex{cution . Tous les autres octets de la phase instruction 
 et l'ensemble de la phase r{sultat sont identiques @ l'instruction ci dessus.
 
     F - LIRE UNE PISTE : COMMANDE &42 - %01000010
     EXECUTION : Lire les octets envoy{s par le FDC . Cette instruction lit la 
 totalit{ des octets de donn{es du d{but @ la fin de la piste .
 
     G - ECRIRE UN SECTEUR : COMMANDE &45 - %01000101
     PHASE EXECUTION : Transmettre les octets @ {crire au FDC
         
     H - ECRIRE UN SECTEUR EFFACE : COMMANDE &49 - %01001001
     Comme pour {crire les donn{es normales .  Une marque (Data Adress Mark) , 
 interdit la lecture de ces secteurs par la commande &46
 
     I - LIRE UN SECTEUR EFFACE : COMMANDE &4C - %01001100
     Puisqu'on l'a {crit il faut bien le relire ...
 
     J - TESTER EGALITE -    COMMANDE : &51 - %01010001
     K - TESTER SI PLUS PETIT OU EGAL : &59 - %01011001
     L - TESTER SI PLUS GRAND OU EGAL : &5D - %01011101  
     Ces  3  commandes  ne  nous  concernent  pas  dans  l'imm{diat  la  phase 
 d'ex{cution effectue  une  comparaison  entre  les  donn{es  {crites  sur  la 
 disquette et celles r{sidant en RAM .
 ----------------------------------------------------------------------------
                             FIN DE SECTION
                            ----------------   ---------------------------------
     1 - PHASE COMMANDE SEULE : Seule 1 instruction r{pond @ cette condition . 
 Elle transmet au FDC les donn{es sp{cifiques au lecteur de disquette connect{ 
 et n'est utile que si le lecteur employ{ n'est  pas un 3,1/4 . Il y-@ assez @ 
 faire avec les autres instructions . Restons en 3,1/4 pour l'instant .
 -----------------------------------------------------------------------------
                 2 - PHASE COMMANDE SUIVIE DE PHASE RESULTAT :
 
     A - INTERROGER ETAT D'INTERRUPTION :  Cette  commande se contente de lire 
 le registre d'{tat 0  afin  de  d{terminer  les  causes d'une interruption de 
 fonctionnement du FDC . La cause  de  l'interruption peut e^tre la fin normale 
 d'une phase d'instruction ou une erreur quelconque .
 
     INSTRUCTION : 1 octet
     1 COMMANDE  : &8 - %00001000
     --------------------------------------
     RESULTAT    : 2 octets
     1 Registre d'{tat 0
     2 Num{ro de piste ou se trouve la te^te
 
     B - INTERROGER L'ETAT DES LECTEURS  :  C'est la seule commande qui permet 
 de lire le registre ET3 .  ET3  vous  dira  (presque)  tout sur l'{tat de vos 
 drives (Connect{ ou non , disque  manquant  ,  prot{g{  {criture etc) . Si le 
 lecteur est connect{ mais {teint , le r{sultat se plante .
     
     INSTRUCTION : 2 octets
     1 COMMANDE  : &4 - %00000100
     2 DRIVE     : De 0 @ 3 pour A @ D
     ---------------------------------
     RESULTAT    : 1 octet 
     1 Registre d'{tat 3
     
     NOTE : Dans ces deux commandes , les bits 7-6-5 ne sont pas employ{s . La 
 lecture des registres d'{tat n'a  pas  besoin  de  connai^tre la densit{ ni le 
 mode d'{criture !
 