| ||||
Le test de protection de la disquette contre l'écriture est une opération OBLIGATOIRE avant d'écrire mais ce n'est pas
pour vérifier simplement qu'il y a ou non un notch, cela permet également deux choses importantes : Voici le tableau du code présenté selon la méthode de Jim Sather et qui permet de bien comprendre comment cela fonctionne. Comme nous l'avons déjà expliqué le tableau PULSE et NO PULSE sont identiques car que le LSS reçoive ou non des PULSE, il doit les ignorer puisqu'il s'agit d'écrire sur la disquette et que l'on va réorienter les champs magnétiques. Concentrons nous donc sur le système de l'un d'eux seulement car la navigation entre les colonnes selon la réception ou non des PULSES n'a ici absolument aucun intérêt. Ce qui a un interêt particulier c'est la façon dont se passe le chargement du DATA REGISTER par rapport à l'état du LSS et donc comment ce dernier travaille avec les opérations SHIFT et LOAD L'opération SHIFT consiste à écrire bit par bit, le nibble contenu dans DATA REGISTER, sur la disquette, on remarque donc que le LSS procéde simplement à des décalages avec l'instruction SL0 faisant ainsi passer successivement tous les bits b6 à b0 par position de b7 qui correspond à QA actif si le bit est à 1 et QA inactif si le bit est à 0. Le DATA REGISTER prend donc un certain nombre de valeur jusqu'à contenir $00. Vous n'êtes pas sans remarquer que d'une opération SL0 à l'autre il y a TOUJOURS et PRECISEMENT 8 séquences. Ce n'est pas un hasard : nous avons vu que le LSS fonctionne à 2mhz, 8 séquences correspondent donc à 4 cycles CPU soit 4µs...exactement le délai de la fenêtre d'écriture d'un bit ce qui pour 8 bits fera donc 4*8=32 cycles ! Maintenant vous comprenez pourquoi le programme 6502 doit maintenir 32 cycles entre deux opérations de chargement : c'est pour laisser le temps au LSS d'écrire le nibble correctement. Mais vous comprennez également que si vous ne rechargez pas le DATA REGISTER dès les 32 cycles écoulés, celui-ci contiendra des 0 qui seront alors "shiftés" toutes les 8 séquences donc tous les 4µs CAR ON RESTE DANS LA BOUCLE DE L'OPERATION SHIFT... c'est ainsi que sont écrits les bits de synchronisation : en ayant une routine à 36 ou 40 cycles selon que l'on veut 1 ou 2 extra-bits de synchronisation. Pourquoi donc avoir écrit ce code en 16 séquences ? Certes pas pour vous ennuyer mais le changement de signal se fait lors du passage de la séquence 7 à la séquence 8 ce qui permet donc d'écrire des 1 chaque fois que l'on passe de l'une à l'autre. Par ailleurs en liaison avec la suite des séquences pour le chargement cela permet d'avoir un chargement du DATA REGISTER aussi bien derrière un 1 que derrière un 0, ce qui est assez heureux ! Voici le code d'écriture représenté à nouveau sous la forme d'une machine à état, ce qui permet de comprendre le déroulement des séquences selon que le bit 7 QA soit à 1 ou à 0. On notera : Exemple d'écriture : |
||||
|