>NP ON
 >CP OFF
 >EM 0
 >HM 0
 >BM 0
 >TM 0
 >PL 64
 >---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---R
                            ----------------------
                           - ECRITURE DE SECTEURS -
                            ----------------------
 
     L'{criture de secteurs est similaire @ la  lecture  , pour une fois il ne
 sera pas n{c{ssaire de dig{rer une {norme tartine de th{orie .
 
     Pour {crire un secteur , vous utiliserez exactement les me^mes routines et
 param}tres qu'en lecture @ l'exception de l'octet de commande qui sera de :
 
                      #45 Pour {crire un secteur normal .
                  #49 Pour {crire un secteur 'Effac{' (CM) .
 
     Comme en lecture , l'{criture de  secteurs  se tamponne joyeusement de la
 taille r{elle de formatage !  Elle  ne  reconnai^t  que  le  contenu des 4 IDS
 secteur . Si un seul de ceux-ci  ne  correspond  pas @ ceux transmis en phase
 instruction , la sanction sera un {tat 'No Data' et rien ne sera {crit sur la
 disquette ! Pour cette raison :  Il  est  pr{f{rable  de lire ou d'{crire les
 secteurs un par un . Si on essaye de  lire ou {crire une s{rie de secteurs en
 une fois , il suffira d'un seul  ID  piste  , te^te ou longueur diff{rent pour
 interrompre les op{rations avec un No Data .
 
     On se souvient (On  devrait  en  tout  cas)  que  l'ID longueur peut e^tre
 quelconque en lecture . Formater  une  piste  en  taille  2  en donnant un ID
 Longueur Secteur de 5 permet de  retrouver  les  gaps de formatage lors de la
 lecture de ce secteur . De la me^me  mani}re  : Formater une piste en taille 2
 avec un ID Longueur Secteur  de  5  enregistrera  128*5^2  = 4096.00 octets .
 Est-il bien utile de pr{ciser que  les  IDS secteurs qui suivent n'ont aucune
 chance de survie ?... Apr}s une telle  op{ration , seul restera un secteur de
 taille 5 qui , bien que n'ayant aucun rapport avec le format d'origine pourra
 e^tre lu et {crit normalement  .  Si  vous  faites  la  me^me op{ration avec un
 secteur de taille  6  (128*6^2  =  8192.00  octets)  ,  l'{criture d{borde et
 recouvre le d{but de la piste lors de  la  seconde r{volution . Dans ce cas ,
 la piste est enti}rement d{truite et retrouve son statut de piste vierge .
 
     Jusque-l@ rien de  bien  terrifiant  .  Mais  si  l'on  consid}re  le cas
 suivant:
                             Taille de format : 2
                            Nombre de secteurs : 9
     IDS longueur : 4,2,2,2,2,2,2,2,2 (Ce qu'on veut pour les 3 premiers)
 
     Ecrire le 1er secteur sur la disquette  aura pour effet de d{truire les 3
 secteurs suivants et vous vous retrouverez avec  une piste de 6 secteurs dont
 les IDS taille seront : 4,2,2,2,2,2 . Ceci  ne nous plonge pas encore dans le
 plus profonde affliction mais cela va venir .
 
     On aura constat{ qu'apr}s  un  formatage  ,  la  lecture d'un secteur NON
 ECRIT dont l'ID longueur  ne  correspond  pas  @  la  vraie taille de secteur
 renvoie le message CR DD . Sito^t  que  ce  dernier est {crit et @ d{truit les
 IDS qui suivent , le FDC le consid}re  comme un {l{ment tout @ fait normal de
 la piste et ne met aucun  flag  d'erreur  ! Encore pire : L'instruction 'Lire
 piste' , dans  le  cas  d'une  piste  format{e  mais  NON  ECRITE renvoie les
 messages : CR - DD quant elle trouve  un secteur dont l'ID n'est pas conforme
 @ la longueur de formatage  .  Lorsque  l'un  de  ces  secteurs de taille non
 conforme est ECRIT , ce me^me flag  DD  est  mis  dans tous les cas ! Comme le
 test de sortie de la routine  FINDLEN  dans FDC3A.MAX (Voir analyse SOS2) est
 bas{  sur  ce  flag  ,  la  routine  d'analyse  se  plante  et  vous  renvoie
 syst{matiquement un message GAP <> de #4E avec une taille de secteur de 5 !
 
     De ceci on peut d{duire quelques notions int{ressantes :
 
     1 : Lors d'une lecture de secteur  ,  le  message CR - DD signifie que la
 taille lue dans L'ID est  diff{rente  de  la  taille  de  formatage et que LE
 SECTEUR N'EST PAS ECRIT .  Ce  dernier  point  est  tr}s important car on est
 alors certain de trouver dans un secteur de  ce type , l'octet ayant servi au
 formatage .
     2 : Lors d'une instruction lire  piste  ,  si un secteur est trouv{ ECRIT
 avec un ID taille diff{rent de la  taille de formatage , on trouvera toujours
 les flags DD & CR @ l'{tat  1  ceci  quelque  soit le param}tre LS transmis @
 l'instruction .
     On peut aussi se demander pourquoi ce  d{tail  n'a pas {t{ pris en compte
 par la version pr{c{dente et n'est  toujours  pas  r{solu ici ... La solution
 est assez longue , faites un CAT sur SOS2 et SOS3 et dites moi o| j'aurais pu
 la caser ?? En attendant SOS4 ,  m{ditez  sur le sujet , vous aurez peut-e^tre
 la joie de la d{couvrir vous me^me .
 
                          ---------------------------
                         - THEORIE LEGERE ET EN VRAC -
                          ---------------------------
 
     Secteurs de taille 0 : Nous avons vu dans le num{ro 2 que cette taille de
 secteur n'est jamais lue  correctement  ,  on  ne  peut pas d'avantage {crire
 convenablement un secteur de cette longueur  .  Ne soyez donc pas surpris des
 erreurs entrain{es par cette op{ration .  Aucun  logiciel ne peut r{soudre ce
 type de probl}me , cela vient des connections internes du CPC .
 
     GAP de formatage : Il  @  {t{  dit  dans  le  num{ro 2 que les op{rations
 d'{criture de secteur en  modifiaient  la  longueur  .  c'est  prouv{ dans ce
 num{ro . Modifi{ par une  op{ration  d'{criture  ,  le GAP peut s'allonger et
 prendre une valeur excessive interdisant la  reproduction exacte du format de
 la piste lue . La routine CALIGAP r{sout  ce  probl}me , {tudiez la de pr}s ,
 cela pourrait vous donner une id{e pour r{soudre le probl}me de l'analyse .
 
     Pour reproduire une piste o| recopier  efficacement  un secteur , il faut
 s{parer Drive , te^te et piste en  source  et destination . Les donn{es source
 et destination sont m{moris{es s{par{ment . On transmet l'une ou l'autre dans
 les donn{es drive te^te piste s{lectionn{s selon l'op{ration en cours .
 
 -----------------------------------------------------------------------------
 THEORIE QUI A FORCE DE VOULOIR VOLER TROP HAUT RISQUE DE RETOMBER AVEC FRACAS
 -----------------------------------------------------------------------------
 
     1 : Sachant qu'@ partir du  moment  o|  sa  longueur est donn{e dans l'ID
 n'importe quelle taille de secteur  peut  e^tre  {crite  sur le disque quelque
 soit le formatage .
 
     2 : Que l'{criture d'un secteur  de  taille 6 (8192 octets) se poursuivra
 sans complexes apr}s la  premi}re  r{volution  et recouvrira partiellement le
 d{but de la piste avec les  derniers  octets  transmis (ce qui a g{n{ralement
 pour effet de la d{formater) .
 
     Il doit e^tre possible de bricoler des  pistes avec des GAPS diff{rents de
 #4E voire de reproduire certaines  pistes  bizarroides  ...  Le tout {tant de
 d{terminer avec  pr{cision  la  valeur  des  GAPS  ,  CRC  ,  IDAM  ainsi que
 l'intervalle entre ceux-ci et surtout de  la s{rie d'octets qui recouvrira le
 d{but de la piste ... Un fois n'est  pas  coutume  : QUI A LA REPONSE A CETTE
 QUESTION ???
 
          ----------------------------------------------------------
         - THEORIE APPARAMENT DEBILE MAIS PEUT ETRE PAS TANT QUE CA -
          ----------------------------------------------------------
 
     Une id{e que je n'ai pas eu le  temps d'essayer . Si au beau milieu d'une
 op{ration de formatage on interrompait un  bref instant la rotation du moteur
 (Cela pourrait se faire dans  WRITFDC1  de  FDC3B.MAX) Non seulement certains
 IDS seraient omis mais surtout , la suite  serait d{cal{e sur la piste . Pour
 relire celle-ci sans erreur , le moteur devrait e^tre stopp{ au me^me moment et
 durant le me^me  d{lai  qu'au  cours  de  l'{criture  .  A  supposer  que cela
 fonctionne , quel copieur pourrait reproduire cette piste ??
 
  - FIN DE SECTION . AU CHOIX , FICHIERS LISTING OU MODE D'EMPLOI PROGRAMME -
 