FR 2558615 A1 19850726 FR 8418817 A 19841210 La présente invention se rapporte au domaine technique des unités de commande et contrôleurs servant à établir vrne interface entre un ordinateur numérique et une unité à discque souple. L'invention décrite ici est particulièrement appro- priée pour être mise en oeuvre sous la forme d'un circuit intégré. Les contrôleurs d'unité à disque souple servant d'inter- face entre des ordinateurs numériques et des unités à disque souple sont bien connus. De telles unités à disque comprennent un moteur pour entraîner en rotation un disque souple; un disque souple qui est formé en une matière flexible de façon à être plat et circulaire et sur lequel est collé un support magnétique; une tête d'écriture pour enregistrer des données sur le support magnétique et une tête de lecture pour lire des données enregistrées sur le support magnétique; un moteur pas à pas pour déplacer les têtes d'écriture et de lecture le long de la surface du disque souple et des circuits élec- troniques et logiques pour recevoir des signaux binaires qui mettent le moteur d'entraînement de disque sous tension et hors tension, déplacent les têtes de lecture et d'écriture et provoquent la transmission de siqnaux électriques à la tête d'écriture pour enregistrer des données ou reçoivent des signaux électriques engendrés par la tête de lecture lorsque le support magnétique passe entournant devant elle. Les contrôleurs d'unité à disque engendrentles signaux bi- naires nécessaires pour mettre sous tension ou hors tension le moteur d'entraînement du disque et pour déplacer les têtes de lecture et d'écriture et ils transmettent des si- gnaux appropriés aux circuits électroniques et logiques de 39 l'unité à disque pour-provoquer l'écriture ou la lecture par les têtes d'écriture et de lecture sur le support magné- tique du disque souple en rotation. Les contrôleurs d'unité à disque engendrent les signaux appropriés pour commander le fonctionnement d'unités à disque à partir de signaux de o commande, de données et d'horloge appropriés reçus d'un or- dinateur numérique. Un contrôleur d'unité à disque souple a été décrit dans le brevet des EUA no 4 210 959,ce contrôleur comprenant un registre à décalage série/parallèle, des moyens logiques et de synchronisation de contrôleur et des bascules à verrouil- lage. Le registre à décalage série/parallèle est utilisé pour transférer des données à l'ordinateur et recevoir des données de l'ordinateur par l'intermédiaire d'un bus de don- nées. Les moyens logiques et de synchronisation de contrôleur reçoivent des signaux des bascules à verrouillage pour placer les moyens logiques de contrôleur dans l'un de quatre modes de fonctionnement possibles à savoir lecture, détection pro- tection écriture/initialisation écriture, enregistrement écriture, chargement écriture. Toutes les opérations de lec- ture et d'écriture sont effectuées d'une manière synchrone sur la base d'un signal d'horloge HL. L'invention précitée a trait à un contrôleur relativement simple,bon marché, appro- prié pour les applications au grand public et aux petits com- merces. La présente invention a trait à une intégration du contrôleur révélé dans le brevet des EUA n 4 210 959 avec des prolongements et perfectionnements et,notamment,la capa- cité de multiples modes de fonctionnement. Conformément à l'invention, on a réalisé une interface constituée par un contrôleur d'unité à disque souple qui est construit sous la forme d'un circuit intégré. Le contrôleur connecte un bus de données d'ordinateur hôte à une ou plu- sieurs unités à disque. Sur la base des signaux d'horloge et de commande reçus de l'ordinateur numérique, le contrôleur engendre des données codées séquentielles en vue de leur en- registrement sur un disque souple et reçoit des données co- dées séquentielles précédemment enregistrées sur un disque souple. Le contrôleur comprend des moyens de commande de lec- ture qui comprennent un registre de données de lecture, des moyens de commande d'écriture qui comprennent un registre de données d'écriture, un registre de mode, un registre d'é-- tat, des bascules à verrouillage d'état, un décodeur et des registres de fonctions spéciales. Le contrôleur fonc- tionne en enclenchant et en remettant à zéro les bascules à verrouillage et en lisant le registre de mode, le registre d'état, les registres de fonctions spéciales, le registre de données de lecture et le registre de données d'écriture ou en y écrivant. L'enclenchement d'une bascule à verrouillage et l'accès d'un registre sont effectués simul- tanément. Le contrôleur, sous la commande du logiciel, fonc- tionne dans un mode de lecture/écriture synchrone ou asyn- chrone et dans un mode de lecture/écriture lent ou rapide. Les signaux de commande reçusde l'ordinateur par le con- tr1ôleur enclenchent ou remettent à zéro l'une des huit bascules à verrouillage d'état. Deux des bascules choi- sissent l'une de deux unités à disque et mettent sous tension ou hors tension le moteur d'entraînement de l'unité à disque choisie. Quatre des bascules commandent un moteur pas à pas qui fait partie de l'unité à disque et qui provoque le dépla- cement des têtes de lecture et d'écriture d'une piste du disque souple à la suivante. Les deux bascules restantes sont couplées au décodeur qui décode les signaux d'horloge et de commande reçus de l'ordinateur et engendre des si- gnaux appliqués aux divers registres du contrôleur et aux moyens de commande d'écriture et aux moyens de commande de lecture pour commander la fonction que doit exécuter l'unité à disque. D'autres caractéristiques et avantages de l'invention apparaitront à la lecture de la description qui va suivre et à l'examen des dessins annexés dans lesquels: la Fig. 1 représente le contrôleur de la présente inven- tion qui établit une interface entre un ordinateur numérique et une unité à disque souple; la Fig. 2 est un schéma-bloc du contrôleur de la pré- sente invention; la Fig. 3 est un schéma-bloc détaillé des moyens de com- mande de lecture de la présente invention; la Fig. 4 est un schéma-bloc détaillé des moyens de com- mande d'écriture de la présente invention. On décrira ci-après un contrôleur d'unité à disque souple réalisé sous la forme d'un circuit intégré et qui sert à former une interface ou jonction entre un ordinateur numé- rique et une unité à disque souple. Dans la description qui va suivre, on indiquera de nombreux détails spécifiques, tels que des longueurs de mot ou de multiplet spécifiques,pour permettre une pleine compréhension de la présente invention. Cependant, il apparaitra clairement à un spécialiste de la technique que l'on peut mettre en oeuvre la présente inven- tion sans utiliser ces détails spécifiques. Dans d'autres cas, on a représenté des circuits bien connus par des blocs ou rectangles afin de ne pas obscurcir laprésente invention par des détails inutiles. Sauf indication contraire, et par commodité, on utilisera une logique positive pour décrire l'invention. Ainsi les termes enclenché, "1", niveau haut et vrai sont équivalents comme le sont les termes restauré, "0" bas niveau et faux. Le mode de réalisation actuellement préféré du contrô- leur est une interface entre des micro-ordinateurs fabriqués par Appel Computer, Inc. de Cupertino, Californie (EUA) tels que son ordinateurApple II et ses successeurs et des unités à disque souple, telles que le Disk II fabriqué par Apple Computer, Inc. et ses successeurs. Sur la Fig. 1 à laquelle on se référera tout d'abord, on a représenté le contrôleur 11 de la présente invention comme constituant une interface entre un ordinateur numé- rique 13 et une unité 15 à disque souple. L'ordinateur numé- rique 13 est couplé au contrôleur 11 par un bus de données bidirectionnel 17 (D0-D7),par des lignes de commande A0-A3, par une ligne de sélection d'unité ou dispositif DISP,par une ligne de restauration REST et par des lignes d'horloge Q3 et FHL. Bien qu'elle ne fasse pas partie de la présente invention, on a également représenté sur la Fig. 1 une mé- moire morte ou mémoire morte programmable d'amorce (MEMOR d'amorce) 19 qui est couplée à l'ordinateur numérique par l'intermédiaire du bus de données 17, d'un bus d'adresse 21 (A0-A7) et d'une ligne de mise en fonction MISEF. Lorsque l'ordinateur est initialement mis sous tension ou chaque fois qu'il est nécessaire de réinitialiser le système d'exploita- tion de l'ordinateur, un programme mis en mémoire dans la mémoire morte d'amorce 19 est utilisé pour donner l'instruc- tion au contrôleur 11 de lire un programme enregistré sur un disque souple de l'unité 15 à disque et le transmettre sur le bus de données 17 à l'ordinateur 13. De tels pro- grammes d'amorce ou routines d'amorçage sont bien connus dans la technique et on ne les décrira pas davantage ici. Les données présentes sur le bus de données 17, selon les signaux qui ont été places sur les lignes de commande A0- A3, comprennent un multiplet de données qui a été reçu de l'unité à disque, qui doit être transmis à l'unité à disque ou qui doit être chargé dans des registres du contrôleur 11 ou lu dans ces registres. Le contrôleur 11 est choisi par l'ordinateur par un "0" appliqué sur la ligne DISP et est placé dans un état initial par un "0" transmis sur la ligne REST. Des signaux d'horloge engendrés par l'ordinateur sur les lignes Q3 et FHL sont utilisés par le contrôleur comme signaux de synchronisation. Les signaux d'horloge Q3 et FIL sont engendrés à une périodicité qui dépend de la vitesse du processeur contenu dans l'ordinateur. Dans un mode de réali- sation préféré, Q3 est un signal d'horloge de 2 MHz et FHL est un signal d'horloge de 7 MHz. En outre, Q3 peut être laissé à "0" (si seul le mode asynchrone est utilisé) et/ou FHL peut avoir une fréquence de 8 MHz. Les lignes de données/de commande d'exécution entre le contrôleur 11 et l'unité à disque 15 sont les suivantes. Les signaux de lignes P0 à P3 commandent un moteur pas à pas 22 qui tourne d'une unité de distance angulaire soit vers l'a- vant soit vers l'arrière selon les signaux présents sur les lignes PO à P3. Dans une unité à disque simple typique, une unité de distance angulaire est égale à un quart de tour, un huitième de tour ou un seizième de tour; cependant, cette valeur dépend exclusivement de l'unité à disque. Chaque rota- tion d'unité de distance angulaire du moteur pas à pas pro- voque le déplacement des têtes d'écriture et de lecture d'une 3. unité de distance linéaire vers l'avant ou vers l'arrière. L'unité de distance linéaire dont les têtes se déplacent dé- pend également de l'unité mais des unites de distance liné- aire typiques sont d'une demi-piste ou d'un quart de piste. Les signaux binaires présents sur les lignes P0 à P3 sont appliqués à des amplificateurs 23 de sélection de piste qui convertissent les signaux binaires en une tension qui fait tourner le moteur pas à pas 22. Les signaux transmis entre la ligne DONECR sont des signaux binaires engendrés par le contrôleur et qui sont appliques à l'entrée d'amplificateurs 25de lecture/écriture de l'unité 15 à disque, Les signaux de la ligne DONECR pro- voquent l'excitation ou la désexcitation par les amplifi- cateurs 25 de lecture/écriture de la bobine 26 de la tête d'écriture pour provoquer l'écriture de données sur le sup- port magnétique lorsque ce dernier tourne au-dessous de la tête d' écriture. Les signaux présents sur la ligne DEMECR mettent en fonction ou hors fonction la bobine 26 de la tête d'écriture pour permettre ou empêcher l'écriture des don- nées présentes sur la ligne DONECR. De même, lorsque le sup- port magnétique passe au-dessous de la tête de lecture, la bobine 26' de la tête de lecture est excitée ou désexcitée et les données détectées sont converties par les amplifica- teurs 25 de lecture/écriture en un signal binaire qui est placé sur la ligne DONLECT. Un signal de détection de protection d'écriture est en- gendré par l'unité 15 à disque et placé sur une ligne de DE- TECTION lorsqu'un interrupteur 28 monté dans l'unité à disque est fermé pour indiquer que l'unité à disque a été placée dans un état de protection d'écriture. Un tel interrupteur peut être un interrupteur mécanique actionné par l'utilisa- teur et/ou un interrupteur qui détecte si la chemise d'un disque souple comporte ou non une encoche de protection d'é- criture, comme,par exemple, une cellule photoélectrique qui provoque la fermeture d'un interrupteur à transistor lorsque qu'une lumière dirigée vers elle est interrompue par la che- mise du disque souple. Enfin, des signaux de sélection d'unité à disque sont engendrés par le contrôleur et places sur des lignes MISEF1 ou MISEF2. Le signal MISEF1 est appliqué en entrée à une première unité à disque et le signal MISEF2 est appliqué en entrée à une seconde unité à disque. Chacun de ces signaux d'entrée MISEF1 et MISEF2 est appliqué à un amplificateur 27 de moteur d'entraînement qui convertit le signal binaire en une tension pour provoquer la rotation d'un moteur 29 conte- nu dans l'unité à disque de façon ainsi à faire tourner un disque souple qui a été introduit dans l'unité à disque. Dans le mode de réalisation représenté, un unique bit du con- trôleur est utilisé pour engendrer un signal sur la ligne MISEF1 ou sur la ligne MISEF2 et, par conséquent, une seule des deux unités à disque peut être choisie à un moment donné quelconque. Naturellement, avec un matériel supplémentaire, des unités à disque supplémentaires peuvent être connectées au contrôleur. On doit noter que, bien qu'on n'ait représenté qu'un seul groupe de lignes comme étant couplé au contrôleur 11, en cequi concerne des lignes telles que DETECTION,qui puissent être à l'état "1" pourune unité à disque et à l'é- tat "0" pour l'autre, des circuits logiques appropriés sont utilisés pour assurer que seuls les signaux émanant de l'uni- té choisie sont appliqués en entrée aux circuits logiques du contrôleur. On décrira maintenant,en se référant à la Fig. 2, les éléments principaux du contrôleur 11. Le contrôleur de l'in- vention comprend un registre de mode 31, un registre d'état 33, un registre 35 de lecture de "1", un registre 37 de dra- peaux d'établissement de liaison/écriture non achevée, des bascules à verrouillage d'état 39, un décodeur 41, des moyens 45 de commande de lecture et des moyens 47 de commande d'écriture. On décrira plus complètement les moyens 45 de commande de lecture et les moyens 47 de commande d'écriture en se référant respectivement à la Fig. 3 et à la Fig. 4. Une fois que le contrôleur 11 a été choisi par l'ordina- teur 13 par un signal transmis sur la ligne DISP et que le contrôleur a été initialisé par un signal transmis sur REST (qui met les bascules à verrouillage à leur valeur par dé- faut (0)), le contrôleur reçoit de l'ordinateur l'instruc- tion d'exécuter une fonction particulière par des signaux transmis sur les lignes A0-A3 qui enclenchent ou restaurent l'une des huit bascules de condition 39 (P0 à P3 et L4 à L7). Il doit être bien compris que, quel que soit l'état des bascules P0 à P3 et L4 à L7, à moins que le contrôleur ait été choisi par un signal appliqué sur la ligne DISP, au- cune opération n'est exécutée par le contrôleur. Le signal DISP à niveau bas met en fonction le contrôleur. Le front arrière du signal DISP verrouille dans les bascules les in- formations présentes sur les lignes A0 à A3. L'une des huit bascules précitées est enclenchée par un "1" transmis sur la ligne A0 et restaurée par un "0" transmis sur la ligne A0. La bascule particulière qui doit être enclenchée ou res- taurée selon le signal de la ligne A0 est déterminée par l'a- dresse chargée sur les lignes A1 à A3. Le tableau 2 indique les adresses des lignes A1 à A3 qui correspondent aux bas- cules P0 à P3 et L4 à L7. TABLEAU 1 A3 A2 A1 BASCULE O O O PO 0 0 1 P1 0 1 0 P2 0 1 1 P3 1 0 0 L4 1 0 1 L5 1 1 0 L6 1 1 1 L7 Les signaux des bascules P0 à P3 provoquent le fonction- nement du moteur pas à pas 22 de la manière suivante. L'en- clenchement (mise à l'état 1) de la bascule P0 a pour effet de mettre le moteur pas à pas dans un état initial,le pré- parant pour qu'il puisse effectuer un déplacement d'une uni- té de distance angulaire soit vers l'avant soit vers l'ar- rière,selon le signal suivant qu'il recevra. Si le signal suivant reçu est P1 (c'est-à-dire que la bascule P1 est en- clenchée) le moteur pas à pas se déplace d'une unité de dis- tance angulaire, ce qui provoque le déplacement des têtes de lecture et d'écriture d'une unité de distance linéaire vers l'avant. Si la bascule P3 est enclenchée après la bascule P0 le moteur pas à pas tourne dans le sens opposé d'une unité de distance angulaire et les têtes de lecture et d'écriture se déplacent d'une unité de distance linéaire vers l'arrière. A ce stade, les deux bascules Po0 et P1 sont enclenchées (ou PO et P3 si les têtes se déplacent vers l'arrière) et la bas- cule PO est remise à O. Après remise à O de la bascule P0, si l'on admet qu'un déplacement vers l'avant supplémentaire est désiré, la bascule P2 est enclenchée ce qui provoque la rotation du moteur pas à pas vers l'avant d'une unité de distance angulaire supplémentaire faisant ainsi avancer les têtes de lecture et de'écriture d'une autre unité de distance lindaire vers l'avant. Si un déplacement supplémen- taire des têtes vers l'avant est nécessaire, la bascule P1 est remise à O et la bascule P3 est enclenchée ce qui pro- voque la rotation du moteur pas à pas d'une unité de dis- tance angulaire supplémentaire. De la même manière, si un déplacement vers l'arrière des têtes de lecture et d'écri- ture est nécessaire et que la bascule PO a été enclenchée puis que la bascule P3 a été également enclenchée, la bas- cule PO est remise à O et la bascule P2 est enclenchée puis la bascule P3 est remise à O et la bascule P1 est enclenchée; chacune de ces opérations provoque la rotation du moteur pas à pas d'une unité de distance angulaire dans le sens opposé et déplace vers l'arrière les têtes de lecture et d'écriture d'une unité de distance lindaire. D'autres cycles P0, P1, P2 et P3 (pour le déplacement vers l'avant)ou P0, P3, P2, P1 (pourle déplacement des têtes vers l'arrière) peuvent être déclenchés par l'ordinateur 13 au moyen des adresses A0 à A3 de la manière appropriée pour provoquer le déplacement des têtes de lecture/écriture jusqu'à une piste désirée quel- conque. L'enclenchement et la remise à 0 des bascules L4 à L7 d-terminent l'exécution d'autres fonctions par le contrôleur 11 de la manière décrite ci-dessous. Après que le contrôleur a été choisi par le signal DISP et initialisé par REST et que le signal CHARGER REGISTRE DE MODE a été mis à 1 de la manière décrite ci-dessous, les signaux des lignes DO à D4 du bus de données 17 sont char- gés dans le registre de mode 31 pour choisir un mode de fonc- tionnement particulier pour les opérations de lecture et d'é- criture qui seront effectuées ensuite. Les données présentes sur les lignes D0 à D4 correspondent respectivement aux si- gnaux VER, SYNC, MSP, RAP et 8/7 du registre de mode. On dé- crira plus complètement le signal VER ci-après lors de la description des moyens 45 de commande de lecture et de la Fig. 3. Le signal SYNC,lorsqu'il est remis à 0,place le con- trôleur dans un mode synchrone pour les opérations de lec- ture et d'écriture ultérieures. Lorsque le signal SYNC est à l'état 1, les opérations de lecture et d'écriture qui suivent sont effectuées dans un mode asynchrone. On décrira plus com- plètement ci-après les modes de fonctionnement synchrones et asynchrones en se référant aux Fig. 3 et 4. Le signal MSP lorsqu'il est remis à 0 met en fonction un minuteur d'une seconde prévu sur la plaquette de circuit. Lorsque le signal MSP est à l'état 1,le minuteur est mis hors fonction. On décrira plus complètement ci-après le minuteur prévu sur la plaquette en se référant aux signaux MISEF1 et MISEF2 qui choisissent l'une de deux unités à disque qui sont couplées au contrôleur. Lorsque le signal RAP est mis à O,le contrôleur fonc- tionne dans le mode lent. Normalement, la synchronisation in- terne du contrôleur est basée sur le signal d'horloge HL qui est égal au signal d'horloge FHL engendré par l'ordina- teur. Lorsque le signal RAP est mis à O, la synchronisation interne, c'est-à-dire la période du signal HL,est égale au double de la période du signal FHL. Le signal 8/7 concerne également la synchronisation et le signal FHL. Lorsqu'un signal d'horloge de 8 MHz est utili- sé, le signal 8/7 est à l'état 1. Si le signal FHL est à une fréquence de 7 MHz, le signal 8/7 est mis à O. La valeur du signal 8/7 est utilisée par le contrôleur pour déterminer le nombre de périodes du signal FHL nécessaires pour compter une unité de temps donnée. Par exemple, si le signal FHL a une fréquence de 8 MHz,une microseconde est égale à 8 périodes ll d'horloge; si le signal FHL a une fréquence de 7 MHz, une mi- croseconde est égale à 7 périodes d'horloge. Ceci permet à des ordinateurs ayant une horloge de 7 MHz et à des ordina- teurs ayant une horloge de 8 MHz de lire et d'écrire de fa- çon équivalente, c'est-à-dire que des données écrites par un ordinateur ayant une horloge de 7 MHz peuvent être lues par un ordinateur ayant une horloge de 8 MHz et vice-versa. Après que le registre de mode a été chargé de façon à établir des modes de fonctionnement particuliers, l'une des deux unités à disque est choisie par la bascule L5. Lorsque la bascule L5 est mise à 0, l'unité 1 est choisie. Lorsque la bascule L5 est mise à 1, l'unité 2 est choisie. Après ': qu'une unité a été choisie, l'enclenchement ou mise à l'état i de la bascule L4 provoque la mise à l'état 1 du signal MOTEUR SOUS TENSION. Lorsque la bascule L4 est enclenchée, si la bascule L5 est à l'état 0, l'unité 1 est mise en fonc- tion par le signal MISEF1; si la bascule L5 est à l'état 1, l'unité 2 est mise en fonction par le signal MISEF2. On décrira maintenant le signal MSP ci-dessus mentionné. Lorsque le signal MSP est à l'état 1, si la bascule L4 est remise à 0, le signal MISEF1 ou MISEF2 est mis hors fonction par le circuit logique 42,selon l'état de la bascule L5,ar- rêtant, de ce fait, le moteur d'entraînement 29. Cependant, si le signal MSP est mis à 0, la remise à 0 de la bascule L4 ne provoque la mise hors fonction du signal MISEF1 ou MISEF2 par le circuit logique 42 qu'après expiration de la période de comptage d'un minuteur d'une seconde (sile signal VER est à l'état 0 ou après expiration de la période de comptage d'un minuteur d'une demi-milliseconde si le signal VER est à l'état 1). En général, il est préférable qu'il y ait un re- tard avant l'arrêt d'un moteur d'entraînement du fait que des opérations sur disque suivantes sont fréquemment effec- tuées à l'intérieur d'un très court créneau de temps après les opérations sur disque antérieures. Ainsi, en l'absence d'un retard avant la mise hors fonction du signal MISEF1 ou du signal MISEF2, les opérations sur disque suivantes seraient soumises à une période d'attente jusqu'à ce que le moteur ait à nouveau atteint la vitesse appropriée. Naturellement, le système d'exploitation ou un autre programme de l'ordina- teur devrait comporter des boucles d'attente ou de tempori- sation dans tous les cas nécessaires, pour assurer qu'aucune opération de lecture ou d'écriture ne serait demandée avant que le moteur d'entraînement ait atteint la vitesse requise. * D'autres fonctions remplies par le contrôleur sont déter- minées par les réglages des bascules L6, L7 et MOTEUR SOUS TENSION. Les signaux L6, L7 et MOTEUR SOUS TENSION choisissent celui des registres qui doit être lu ou chargé. Les registres sont lus au cours d'une opération quelconque pendant laquelle le signal A0 est remis à 0. Les registres sont chargés lors- que le signal A0 est mis à 1. Les signaux L6, L7, MOTEUR SOUS TENSION, A0 et DISP sont appliqués à l'entrée d'un décodeur 41 qui décode les signaux d'entrée et qui,comme décrit ci- dessous,place un 1 sur l'une des lignes LIRE REGISTRE D'ETAT, CHARGER REGISTRE DE MODE, CHARGER REGISTRE DE DONNEES, LIRE REGISTRE DE DONNEES, LIRE REGISTRE DE 1 OU LIRE REGISTRE DE DRAPEAUX D'ETABLISSEMENT DE LIAISON/ECRITURE NON ACHEVEE. Chacune des opérations suivantes est effectuée au front ar- rière du signal DISP appliqué au décodeur 41. Lorsque les signaux L6, L7 et MOTEUR SOUS TENSION sont des 0, le décodeur 41 place un 1 sur la ligne LIRE REGISTRE DE 1, ce qui a pour effet que le registre 35 de lecture de 1 place un multiplet de 1 binaires sur le bus de données 17, lignes DO à D7. Les 1 transmis sur le bus de données sont en- trés dans la mémoire de l'ordinateur,en vue d'être utilisés par le système d'exploitation ou par un autre programme approprié. Lorsque les signaux L6, L7 sont des 0 et que MOTEUR SOUS TENSION est un 1, le décodeur 41 place un 1 sur la ligne LIRE REGISTRE DE DONNEES. On décrira ci-après la fonction exécutée lorsque la ligne LIRE REGISTRE DE DONNEES est à l'état 1 au cours de la description des moyens 45 de commande de lecture et de la Fig. 3. Lorsque le signal L6 est un 1, que le signal L7 est un 0 e.t -P le sigrnal MOTEUR SOUS TENSION est un O ou un 1 c'es'--dire indifférent), le décodeur 41 place un 1 sur la ligne L/IRE im REISTRE D 'ETAT, ce qui a pour effet que le conte- u. du -e.is;.re de mode 21 et celui du registre d'état 33 sont p'.c 3 -.l !a Atgne!e signal 8/7 sur la ligne D41 le Jf un,. --:,U_ US 8u-':e 'i? su la ligne D5, un 0 est placé ju i ccw ' ïs*; re: ',rq.i DETZCTION provenant de lu-unit& I:.s?'e.:ue-.'-- i' c,e. D7o Le système d exploiQation -{.-w--1-,vL. l: u 13 est ainsi c ae ) A. O, L- Q que le signal L7 est un e. ce ',":: s!.cE;, -i... S O U S T EN ION est un 0 ouun 'i 1 le :,.;s!igne LIRE REGISTRE DE DRPAPEAUX %..c:::, L C x/R TURE NON ACHEVEEsE, ce ',ui a -.,,; r.s',.? de drapeaux d' etaablssement 3-:.. 'X c'-n6,- -'..:-,e p:lace des 1 sur les lignes 7, a 3,5:.:: DS unées irp.-. gx" 1-... -,,f ,.- '.:.-'"o 'riture non ache e sur l l gne 6 f '-lE u gpau ';] tiss ent de liaison sur la ligne -rv,r;i cc:,Te!$eent le drapeau ENA Ad éc.r i '-r v= Et >Dea d. tablissement de liaison s c e-,es rô, ,-.,. des;,_ovens 47 de commande d 3écriture -);.1'";J -. ? \- ._- -n...'. r,: rd.=-;' o I-..- r-gistre de mode 31, la ligne DO cor- ra.p oidai :-;ne D& if: e:- 3 a)igneD4 à 8/7. Ce chargiement se5 pro- i=:.%al'.' 1si;nal CeMAiRGER REGISTRE DE MODE au front il;: e].:_'n-ion i. logique Q3 ou DISP. %63'osn es si-naux L6, L7 et MOTEUR SOUS TENSION sont *ies 3 - r,l cdr-' 41 place un 1 sur la ligne CHARGER REGISTRE DE D(Ni=ES, On:écrira ciaprès la fonction exécutée lorsque le signal CHARGER REGISTRE DE DONNEES est à l'état 1 lors de la description des moyens 47 de commande d'écriture et de la Fig. 4. On décrira maintenant les moyens 45 de commande de lec- ture en se référant à la Fig. 3. Conmme indiqué ci-dessus, lorsque les signaux L6 et L7 sont des 0 et que le signal MOTEUR SOUS TENSION est un 1, le décodeur 41 place un 1 sur la ligne LIRE REGISTRE DE DONNEES. Naturellement, avant la lecture, la tête de lecture est déplacée jusqu'à la piste dé- sirée du disque souple par rotation du moteur pas à pas 22t conformément aux signaux de co!mmande PO b P3, corpre décrit ci-dessus. Lorsque le disque souple tourne sous la tête de lecture, les données enregistrées sur la piste provccezant l'excitation et la désexcitation de la bobine de la tête de lecturece qui provoque l'application de fluctuations sur la ligne LWNLECT, fluctuations qui ccrrespondent aux bits 1 et 0 enregistrés sur le support magnétique. A ce mo- ment, ni le contrôleur ni l ordinateur ne peuvent déterminer quelle est la partie d'une piste qui est situés sous la tête de lecture. Par conséquent, il est nécessaire de prévoir un procédé pour détermirner le moment o la lecture des don- nées doit comumencer. Un procédé pour assurer une synchroni- sation appropriée à cette fin a été décrit dans le brevet des EUA n 4 210 959. Une- fois que la synchronisation a été obtenue, la lec- ture s'effectue de la façon suivante. L'extracteur 51 de don- nées de lecture détecte les transitions négatives du signal DONLECT synchronisées avec le signal d'horloge HL. Chaque fois qu'une transition négative du signal DONLECT se produ:it, il remet à 0 un compteur d'intervalle de temps. Lorsque le signal 8/7 est à l'état 1, l'intervalle est de 16 HL. Lorsque le signal 8/7 est à l'état 0, l'intervalle est de 14 HL. Les informations présentes sur la ligne DONLECT sont espacées à ces intervalles ou "autour" de ces intervalles. Un 1 est une transition négative au temps escompté, c'est-à-dire à la fin de l'intervalle. Un 0 est l'absence de transition au temps escompté. Le temps escompté est élargi d'approximativement un demi-intervalle avant et après le temps escompté, étant donné que les données ne sont pas espacées de manière pré- cise au cours de la lecture du fait des variations de la vitesse d'entraînement et autres facteurs externes. Une transition négative du signal DONLECT est détectée comme un 1 et l'extracteur 51 de données de lecture produit une impulsion du signal LFT1 à l'état 1 pendant un cycle d'horloge HL. La-donnée suivante escomptée est nominalement à 16 HL lorsque le signal 8/7 est à l'état 1. Cette donnée peut être produite entre 16-8=8 HL et 16+7=23 HL. Ainsi, si une autre transition négative du signal DINLECT se produit entre 8 et 23 HL, un autre 1 est détecté et une impulsion du signal LFT1 à l'état 1 est produite pendant un cycle d'horloge HL. Si aucune transition négative ne se produit sur la ligne DONLECT entre 8 et 23 HL, un zéro est détecté et une impulsion du signal LFT0 à l'état 1 est produite pen- dant un cycle d'horloge HL. Si le signal LFT1 s'est produit à l'intérieur de la période de temps escomptée, le compteur d'intervalle de temps est remis à 0, sinon la donnée suivante escomptée est nomina- lement à 32 HL. Cette donnée peut se produire entre 32-8= 24 HL et 32+ 7=39 EL. Si une transition négative du signal DONLECT se produit entre 24 et 39 HL, un 1 est détecté et une impulsion à l'état 1 du signal LFT1 est produite pendant un cycle d'horloge HL. S'il ne se produit aucune transition du signal DONLECT, un 0 est détecté et il est produit une impulsion à l'état 1 du signal LFT0. De la même manière, les intervalles suivants sont élargis par rapport au nombre nominal d'impulsions HL de moins 8 HL et de plus 7 HL, une impulsion à l'état 1 du signal LFT1 étant produite si une transition négative du signal DONLECT se produit à l'inté- rieur de l'intervalle élargi tandis qu'une impulsion à l'é- tat 1 du signal LFT0 est produite s'il n'y a pas de transi- tion négative du signal DONLECT. Lorsque le signal 8/7 est mis à 0, des impulsions des signaux LFT1 et LFT0 sont pro- duites de la manière décrite ci-dessus, excepté que les in- tervalles sont nominalement de 14 HL et sont élargis de moins 7 HL et de plus 6 HL. Les signaux LFT0 et LFT1 sont appliqués à un circuit logique 53 qui met une ligne 55 à l'état 1 si le signal LFT1 est un 1 et met la ligne 55 à l'état 0 si le signal LFT10 est un 1, à moins que le signal RD7 soit un 1 (comme décrit ci-dessous), les données présentes sur la ligne 51 étant les données d'entrée d'un registre à décalage 57. Les données présentes sur la ligne 55, lorsque le re- gistre à décalage 57 reçoit un signal de l'horloge de déca- lage 59 sur sa ligne d'horloge 60,sont entrées bit par bit dans le registre à décalage. L'horloge de décalage 59 met à l'état 1 la ligne 60 à la fin de chaque impulsion LFT1 ou de chaque impulsion LFT0 sauf lorsque le signal RD7 est mis à 1. Le signal RD7 est mis à l'état 1 après qu'un multiplet complet de données a été décalé dans le registre à décalage. Ceci se produit du fait que le bit initial reçu par le re- gistre à décalage 57 des données mises en mémoire est tou- jours un 1 conformément au système de codage de code de groupe utilisé pour mettre les données en mémoire sur la disquette, système suivant lequel le premier bit d'un multiplet est toujours un 1. Une fois que le signal RD7 est à l'état 1, le circuit logique 61 de chargement du registre de données de lecture engendre sur la ligne 63 un signal qui provoque le chargement en parallèle des données contenues dans le registre à déca- lage 57 dans le registre 65 de données de lecture. Le registre à décalage est remis à zéro une demi-période d'horloge de dé- calage de lecture après la mise à l'état 1 du signal RD7 de sorte qu'il est prêt à recevoir le multiplet de,données sui- vant. Le signal de la ligne 63 est mis à l'état 1 par le cir- cuit logique 61 de chargement du registre de données de lec- ture de la manière suivante. Dans le mode synchrone, c'est-à-dire lorsque le signal SYNC est égal à 0, au moment o le signal X7 est remis à 0, les données du registre à décalage 57 sont chargées dans le registre 65 de données de lecture chaque fois que le registre à décalage est décalé par la mise à l'état 1 de la ligne 63 par le circuit logique 61 de chargement du registre de don- nées de lecture. Cependant, lorsque le signal X7 est à l'é- tat 1, c'est-à-dire lorsque le premier bit du multiplet qui est lu arrive à l'extrémité terminale du registre à décalage et est chargé en parallèle dans le registre 65 de données de lecture, le circuit logique 61 de chargement du registre de données de lecture maintient la ligne 63 à un niveau bas pendant quatre impulsions d'horloge HL après que le signal RD1 (correspondant au bit 1 du registre à décalage 57) est passée à l'état 1 du fait que le premier bit du multiplet suivant est décalé dans le registre à décalage 57. Le retard est utilisé pour assurer que le multiplet contenu dans le registre 65 de données de lecture est effectivement présent et est par conséquent disponible pour être acheminé dans le registre intermédiaire 66 et sur le bus de données 17g DO à D7, pendant un temps suffisant pour que l'ordinateur puisse le détecter et le lire mais insuffisant pour qu'il puisse le lire deux fois cemme multiplet valide. Le front avant du si- gnal D7 est retardé par un circuit logique 67 de maintien du registre de données de lecture de sorte que si le signal D7 est lu par l'ordinateur 13 comme un 1, ceci garantit que les données DO à D6 ont été correctement écrites dans un re- gistre de l'ordinateur 13. Ce retard est créé par le circuit logique 67 de maintien du registre de données de lecture de la manière suivante. Lorsque le signal VER est mis à 0, ce qui doit être le cas pendant le mode de fonctionnement syn- chrone et que le signal X7 qui correspond au bit 7 du re- gistre 65 de données de lecture est à l'état 1, le signal de sortie RR7 du circuit logique 67 de maintien du registre de données de lecture qui correspond au bit 7 d'entrée du registre intezdi.ire 66, n'est pas mis à l'état 1 pendant une période d'horloge HL, lorsque le signal RAP est un 1 (mode rapide)et na1t une delei-piériode lhor!cge orsque le signal RAP est un 0 (mode lent) après la mise à létat 1 du signal X7. Dans le mode asynchrone, c'est-à-dire lo sque le signal SYNC est à l'état 1, le registre 65 de données de lecture est chargé en parallèle. à partir du registre. à décalage 57. Ceci se produit lorsque le circuit logique 61 de chargement du registre de données de lecture met la ligne 63 à l'état 1 après que le signal RD7 a été mis à 1. Pour assurer que les données du registre 65 de données de lecture sont correcte- ment chargées dans un registre de l'ordinateur 13, dans le mode asynchrone, le signal VER doit toujours être à l'état 1. Lorsque le signal VER est à l'état 1, la donnée présente sur la ligne X7 est placée sur la ligne RR7 par le circuit lo- gique 67 de maintien du registre de données de lecture,au front avant du signal LIRE REGISTRE DE DONNEES. Ceci assure que le signal D7 répondra aux conditions d'établissement et de maintien de l'ordinateur 13. Si le signal D7 est lu par l'ordinateur 13 comme étant un 1, les données DO à D6 sont correctement écrites dans un registre de l'ordinateur 13. Le signal X7 est remis à O par le circuit logique 69 de re- mise à O du signal X7,quatorze impulsions FHL après la mise à l'état 1 du signal LIRE REGISTRE DE DONNEES et.après le passage à l'état 1 du signal D7 (c'est-à-dire que le multi- plet a été lu par l'ordinateur) de façon que le signal X7 soit remis à O et que l'ordinateur ne relise pas le multi- plet comme valide au cours d'une interrogation suivante,à savoir la mise à 1 du signal LIRE REGISTRE DE DONNEES. On décrira maintenant les moyens 47 de commande d'écri- ture en se réfarant à la Fig. 4. Les moyens de commande d'é- criture comprennent un registre 81 de données d'écriture pour recevoir un multiplet de données qui doit être écrit sur le disque, un registre à décalage 83 pour convertir les don- nées en parallèle du registre 81 de données d'écriture sous une forme séquentielle et une bascule 85 pour engendrer la séquence de bits qui doit être écrit sur le disque. Les moyens 47 de commande d'écriture comprennent, en outre, un circuit logique 87 de chargement/décalage, un circuit logique 89 d'é- tablissement de liaison/écriture non achevée, une horloge 91 de décalage d'écriture et un circuit logique 93 DEMECR qui servent tous deux à commander la synchronisation des moyens de commande d'écriture. Pour déclencher une opération d'écriture, le signal L6 est mis à 1, le signal L7 est mis à 0 afin d'établir un état de préparation d'écriture. L'état de préparation d'écriture initialise l'horloge 91 de décalage d'écriture et le circuit logique 87 de chargement/décalage,mettant à l'état 1 les si- gnaux DONECR et DEMECR, remet à 0 le drapeau ENA d'écriture non achevée dans le registre 37 de drapeaux d'établissement de liaison/écriture non achevée et initialise une horloge de basculement dans la bascule 85. Avant l'écriture effective, les bascules L4 et L5 doivent être placées dans des états appropriés pour choisir l'unité désirée et mettre MOTEUR SOUS TENSION à l'état 1. Lorsque les signaux L6, L7 et.MOTEUR SOUS TENSION sont des 1, le décodeur place un 1 sur la ligne CHARGER REGISTRE DE DONNEES ce qui provoque le chargement des données du bus de données 17, DO à D7, dans le registre 81 de données d'écriture au front avant de la fonction logique Q3 ou DISP. Ce registre est ensuite chargé en parallèle dans le registre à décalage 83 de la façon suivante. Comme noté ci- dessus, lorsque le circuit logique 87 de commande de charge- ment/décalage est initialisé, la ligne 99 est mise à l'état 1. Lorsque la ligne 99 est à l'état 1, une impulsion de l'hor- loge 91 de décalage d'écriture transmise sur la ligne 97 pro- voque le chargement des données du registre 81 de données d'é- criture dans le registre à décalage 83. Dans le mode asyn- chrone (le signal SYNC est à l'état 1), ce chargement est achevé approximativement 8 impulsions HL après mise à l'état 1 du signal CHARGER REGISTRE DE DONNEES. Dans le mode syn- chrone le chargement est achevé après quatre ou cinq périodes Q3 après mise à l'état 1 du signal CHARGER REGISTRE DE DONNEES. Dans le mode synchrone (le signal SYNC est à l'état 0), l'écriture sepoursuit de la manière suivante. Une fois que les données ont été chargées dans le registre à décalage 83, le bit le plus significatif du registre est décalé sur la ligne 95 ce qui (après deux périodes Q3) provoque le bascule- ment du signal DONECR de l'état 1 à l'état 0, étant donné que le signal DONECR est initialisé à 1 et que, conformément au système de codage à code de groupe, le premier bit d'un mul- tiplet doit être un 1. Le registre à décalage 83 est décalé toutes les huit périodes Q3 après qu'il a étéchargé, ce dé- calage étant suivi, deux périodes Q3 plus tard,d'un bascule- ment si la donnée de la ligne 95 est un 1 et ces décalages et basculements se poursuivent jusqu'à ce que le multiplet ait été écrit. Ainsi, un multiplet est décalé en sortie et écrit en 64 périodes Q3 et un nouveau multiplet de données peut alors être chargé en parallèle dans le registre à décalage 83. Avec cette synchronisation, un I doit être placé sur la ligne CHARGER REGISTRE DE DONNEES toutes les 64 périodes Q3, sinon des 0 seront décalés en sortie du registre à décalage 83. Pendant le mode synchrone,le drapeau CNA est toujours mis à 0 de sorte que le signal CNA n'empêche pas l'écriture de données sur le disque en provoquant la mise à l'état 1 du signal DEMECR. Lorsque le contrôleur est dans le mode asynchrone (le signal SYNC est à l'état 1), les contraintes de synchronisa- tion des opérations d'écriture synchrones sont assouplies. Lorsqu'ils sont dans le mode asynchrone, les moyens 47 de com- mande d'écriture fonctionnent de la façon suivante. Après que les données du registre 81 de données d'écriture ont été char- gées en parallèle dans le registre à décalage 83, le bit le plus significatif du registre à décalage 83 est décalé sur la ligne 95 et, après huit périodes HL supplémentaires, la bascule 85 provoque le basculement du signal DONECR de 1 à 0 dtant donné que, comme noté ci-dessus, le bit le plus signi- ficatif doit être un 1. Les décalages et basculements sui- vants sont séparés par huit impulsions HL. Apres que les huit bits ont tous été décalés en sortie du registre à décalage 83, le circuit logique 87 de chargement/décalage place un 1 sur la ligne 99 qui charge en parallèle dans le registre à décalage 83 les données du registre 81 de données d'écriture. Lorsque le signal 8/7 est mis à l'état 1,les décalages et les basculements sont séparés par 8 impulsions d'horloge HL. Lorsque le signal 8/7 est remis à 0, les basculements se pro- duisent 6 impulsions d'horloge HL après les décalages et les décalages se produisent 8 impulsions d'horloge après les basculements. Du fait des conditions de synchronisation moins strictes qui existent pendant les opérations d'écriture asynchrones par rapport aux opérations d'écriture synchrones, les opéra- tions supplémentaires suivantes sont nécessaires pour assurer que les données sont correctement écrites. Le drapeau DEL d'établissement de liaison est mis à l'état 1 par le circuit logique 89 d'établissement de liaison/écriture non achevée à la suite de l'achèvement d'un chargement en parallèle du registre à décalage 83 de la manière déterminée par les si- gnaux des lignes 97 et 99 et il est remis à O par le circuit t, logique 89 d'établissement de liaison/écriture non achevée lorsque le signal CHARGER REGISTRE DE DONNEES est mis en fonction. Etant donné que l'ordinateur 13 peut émettre une commande pour remettre à O le signal L6, ce qui a pour effet que le décodeur met en fonction le signal LIRE REGISTRE D'ETABLISSEMENT DE LIAISON/ECRITURE NON ACHEVEEE, l'ordina- teur peut déterminer l'état de drapeau DEL d'établissement de liaison. En d'autres termes, l'ordinateur peut interroger le registre 37 de drapeaux d'établissement de liaison/écri- ture non achevée jusqu'à ce que le drapeau DEL soit à l'état 1,ce qui indique que les données du registre 81 de données d'écriture ont été chargées en parallèle dans le registre à décalage 83 et que le registre de données d'écri- ture est disponible pour recevoir un autre multiplet de don- nées. Une fois que l'ordinateur a détecté que le registre 81 de données d'écriture est disponible, il peut émettre une commande pour mettre à l'état 1 le signal L6,ce qui met en fonction le signal CHARGER REGISTRE DE DONNEES,ce qui pro- voque l'écriture du multiplet présent sur le bus de données 17 dans le registre 81 de données d'écriture. Pour assurer que le nouveau multiplet de données a été, en fait, chargé dans le registre 81 de données d'écriture avant le chargement du registre à décalage 83, le drapeau ENA d'écriture non achevée du registre 37 de drapeaux d'é- tablissement de liaison/écriture non achevée est utilisé de la manikre suivante. Comme noté ci-dessus, pendant la condi- tion de préparation d'écriture, lorsque l'opération d'écri- ture est commencée, le drapeau ENA d'écriture non achevée est remis à 0, c'est-à-dire lorsque le signal L7 est égal.à 0. Le drapeau ENA d'écriture non achevée est mis à l'état 1 par le circuit logique 89 d'établissement de liaison/écriture non achevée lorsque le chargement en parallèle du registre à décalage est terminé, si le drapeau d'établissement de liai- sont est à l'état 1, indiquant qu'un nouveau multiplet n'a pas été écrit dans le registre 81 de données d'écriture. Etant donné que l'état en cours du drapeau ENA d'écriture non achevée est appliqué à l'entrée du circuit logique DEMECR 93 par l'intermédiaire de la ligne 101, si le signal ENA est mis à l'état 1, aucune nouvelle donnée n'a été chargée dans le registre 81 de données d'écriture avant le chargement du registre à décalage 83 et le circuit logique DEMECR 93 met en fonction le signal DEMECR avant que la transition suivante du signal DONECR se produise. Lorsque le signal DEMECR est à l'état 1, la tête d'écriture est hors fonction empochant le même multiplet de données d'être ré-écrit. Le signal ENA ne peut être remis à 0 que par la sortie de l'opération d'écri- ture, c'est-à-dire lorsque le signal L7 est un 0. On renverra au Tableau 2 qui représente un exemple qui montre comment les bascules L4 à L7 sont enclenchées par l'ordinateur au cours des opérations d'écriture asynchrones. On renverra également au Tableau 3 qui représente un exemple qui montre comment les bascules L4 à L7 sont enclenchées par l'ordinateur au cours des opérations d'écriture synchrones. TABLEAU 2 (Opérations d'écriture asynchrones) MOTEUR SOUS L4 L5 L6 L7 TENSION Action 0 0 0 0 0 état initial 0 0 1 0 0 mettre L6 à l'état 1 0 0 1 1 0 mettre L7 à l'état 1; charger les données du bus dans le registre de mode 0 0 1 0 0 remettre L7 à 0 0 0 0 0 O0 remettre L6 à 0 1 0 0 0 1 mettre L4 à 1; choisir unité 1; mettre MOTEUR SOUS TENSION TABLEAU 2 (suite) (Opérations d'écriture synchrones) MOTEUR SOUS L4 L5 L6 L7 TENSION Action 1 0 1 0 1 mettre L6 à 1; condition de pré- paration d'écriture; initialiser horloge 91 de décalage d'écriture; initialiser commande de charge- ment/décalage mettre DONECR à 1; mettre DEMECR à 1;remettre CNA à 0 1 0 1 1 1 mettre L7 à 1; mettre en fonction CHARGER REGISTRE DE DONNEES 1 0 0 1 1 remettre L6 àO;lire DEL et ENA 1 0 0 1 1 continuer interrogation drapeau DEL jusqu'à ce qu'il soit mis à 1 i 0 1 1 1 mettre L6 àl;mettre en fonction CHARGER REGISTRE DONNEES i 0 0 1 1 mettre L6 àO0;lire DEL et ENA 1 0 0 1 1 continuer interrogation DEL jus- qulà ce qu'il soit mis à 1 1 0 1 1 1 mettre L6 à 1;mettre en fonction CHARGER REGISTRE DE DONNEES i 0 1 0 1 remettre L7 à 0; sortie du mode d'écriture i 0 0 0 1 remettre L6 à 0 0 0 0 0 1 remettre L4 à 0 0 0 0 0 0 remettre MOTEUR SOUS TENSION à 0 après expiration du temps de comp- tage du minuteur. TABLEAU 3 (Opérations d'écriture synchrones) MOTEUR SOUS L4 L5 L6 L7 TENSION Action 0 0 0 0 0 état initial 0 0 1 0 0 mettre L6 à 1 0 0 1 1 0 mettre L7 à 1; charger données du bus dans registre de mode 0 0 1 0 0 remettre L7 à 0 0 0 0 0 0 remettre L6 à 0 TABLEAU 3.(suite) (Opérations d.'écriture synchrones) MOTEUR SOUS L4 L5 L6 L7 TENSION Action 1 0 0 0 1 mettre L4 à 1; choisir unité 1; mettre MOTEUR SOUS TENSION 1 0 1 0 1 mettre L6 à 1; état de prépara- tion d'écriture; initialiser hor- loge de décalage d'écriture; ini- tiliser commande chargement/dc-a- lage; mettre DONECR à 1; mettre DEMECR à 1 1 0 1 I 1 mettre L7 à 1; placer un multiplet de données sur le bus de données 17 toutes les 64 impulsions Q3 1 0 1 0 1 remettre L7 à 0; sortir ensuite du mode d'écriture 1 0 0 0 1 remettre L6 à 0 0 0 0 0 1 remettre L4 à 0 0 0 0 0 0 remettre MOTEUR SOUS TENSION après expiration du temps de comptage du minuteur Le contrôleur décrit peut être assemblé dans un bottier classique en matière plastique de 15,24 mm à deux rangées de connexions comportant 28 broches. La disposition de toutes les broches à l'exception de la broche Vcc connectée à une source de tension et de la broche connectée à la masse a été représentée sur la Fig. 1. Ainsi, on a décrit ci-dessus un contrôleur d'unité à disque conçu pour établir une interface entre un ordinateur numérique et au moins une unité à disque souple qui peut être réalisé sous la forme d'un circuit intégré. Le contrô- leur est capable d'exécuter de multiples modes de fonction- nement y compris un fonctionnement rapide et un fonctionnement lent et des opérations de lecture et d'écriture synchrones et asynchrones. REVENDICATIONS 1 - Un contrôleur (11) d'unité (15) à disque souple formé par un circuit intégré conçu pour établir une interface entre un ordinateur numérique (13) et une unité à disque souple, caractérisé en ce qu'il comporte: des bascules à verrouillage(39) couplées à l'ordinateur (13) pour mettre en mémoire des commandes l'état transmises par l'ordina- teur; un décodeur (41) couplé aux bascules à verrouillage pour décoder les commandes mises en mémoire dans ces bascules à verrouillage et pour engendrer des signaux d'exécution sur la base des commandes décodées; un registre de mode (31) couplé à l'ordinateur et au décodeur pour mettre en mémoire des modes de fonctionnement choisis par l'ordinateur; un re- gistre d'état (33) couplé au décodeur, à l'unité à disque souple et à l'ordinateur pour mettre en mémoire des informa- tions relatives à l'état de l'unité à disque et du contrô- leur, en vue de son interrogation par l'ordinateur; un cir- cuit (45) de commande de lecture couplé au registre de mode, à l'ordinateur et à l'unité à disque pour recevoir des don- nées de l'unité à disque et transmettre ces données.àl'ordi- nateur dans un mode de fonctionnement déterminé par le re- gistre de mode; et un circuit (47) de commande d'écriture couplé au registre de mode, à l'ordinateur et à l'unité à disque pour recevoir des données de l'ordinateur, et trans- mettre ces données à l'unité à disque dans un mode de fonc- tionnement déterminé par le registre de mode. 2 - Contrôleur selon la revendication 1, caractérisé en ce que les bascules à verrouillage (39) comprennent plusieurs bas- cules à verrouillage qui mettent en mémoire l'état des commandes d'état transmises par l'ordinateur (13). 3 - Contrôleur selon la revendication 2, caractérisé en ce que l'état des bascules à verrouillage (39) commande le positionnement d'un moteur pas à pas (22) faisant partie de l'unité (15) à disque, met en fonction et hors fonction un moteur d'entrainement (29) faisant partie de l'unité à disque, choisit l'une de plusieurs unités à disque pour y effectuer des opérations d'écriture ou de lecture et comman- de l'opération effectuée par le contrôleur (11) de la ma- nière déterminée par les commandes d'état reçues de l'or- dinateur. 4 - Contrôleur selon la revendication 2, caractérisé en ce que le décodeur (41) décode certaines prédéterminées des bascules (39) à l'aide de moyens logiques. - Contrôleur selon la revendication 1, caractérisé en ce que le registre de mode (31) comprend plusieurs bascules à verrouillage qui mettent en mémoire les modes de fonctionne- ment choisis par l'ordinateur (13). 6 - Contrôleur selon la revendication 5, caractérisé en ce que les modes de fonctionnement sont la lecture et l'écri- ture asynchrones, la lecture et l'écriture synchrones, la synchronisation basée sur une horloge fonctionnant à une pre- mière fréquence, la synchronisation basée sur une horloge fonctionnant à une seconde fréquence, la mise en fonction d'un minuteur de temporisation pour la mise hors tension d'un moteur d'entraXnement, la mise hors fonction d'un minu- teur de temporisation pour la mise hors tension d'un moteur d'entraînement. 7 - Contrôleur selon la revendication 1, caractérisé en ce que le registre d'état (33) comprend plusieurs bascules à verrouillage et les informations mises en mémoire dans ces bascules sont utilisées pour informer l'ordinateur (13) que l'unité (15) à disque est ou non dans une condition de protection d'écriture et qu'un moteur d'entraînement (29) faisant partie de l'unité à disque est ou non sous tension. 8 - Contrôleur selon la revendication 1, caractérisé en ce que le circuit (45) de commande de lecture comprend: un extracteur (51) de données de lecture pour convertir des si- gnaux séquentiels reçus de l'unité à disque en une série d'impulsions séquentielles représentant des 1 binaires et des O binaires; un registre à décalage (57) couplé à l'ex- tracteur de données de lecture pour convertir la série d'im- pulsions séquentielles en données parallèles; un registre (65) couplé au registre à décalage pour mettre en mémoire les données provenant du registre à décalage jusqu'à ce qu'elles puissent être placées sur un bus de données (17) en vue de leur transfert à l'ordinateur (13); et un circuit de commande (61, 67, 69) pour commander le chargement des données dans le registre à décalage, dans le registre et sur le bus de données afin d'assurer que les données transmises à l'ordinateur ne sont ni perdues ni reproduites en double. 9 - Contrôleur selon la revendication 8, caractérisé en ce que le circuit (45) de commande de lecture comporte: une horloge (59) de décalage de lecture couplée à l'extracteur (51) de données de lecture et au registre à décalage (57); un circuit logique (61) de chargement du registre de données de lecture couplé à l'horloge de décalage, au registre à décalage et au registre (65) et qui transmet un signal au registre lorsque des données antérieures contenues dans le registre ont été reçues par l'ordinateur (13); un circuit logique (67) de maintien du registre de données de lecture couplé au registre (65) et à un registre intermédiaire (66), le registre intermédiaire étant couplé au registre, le cir- cuit logique de maintien du registre de données de lecture transmettant un signal au registre intermédiaire après une période de temps prédéterminée qui est suffisamment longue pour assurer que les données contenues dans le registre inter- médiaire ont été convenablement transférées à l'ordinateur. - Contrôleur selon la revendication 1, caractérisé en ce que les moyens (47) de commande d'écriture comportent: un registre (81) pour mettre en mémoire les données en parallèle reçues de l'ordinateur (13) et qui doivent être transmises à l'unité (15) à disque; un registre à décalage (83) couplé au registre pour convertir les données en parallèle en un courant de bits séquentiels; une bascule (85) couplée au registre à décalage pour engendrer des impulsions représen- tant des 1 binaires et des 0 binaires qui sont transmises à l'unité à disque; et des moyens de commande (87) pour com- mander le chargement de données provenant de l'ordinateur (13) dans le registre, dans le registre à décalage et dans la bascule afin d'assurer que les données transmises à l'u- nité à disque ne sont ni perdues ni reproduites en double. 11 - Contrôleur selon la revendication 10, caractérisé en ce que les moyens de commande d'écriture comprennent une hor- loge (91) de décalage d'écriture, un circuit logique (87) de chargement et de décalage de registre, couplé au registre à décalage (83) et à l'horloge de décalage d'écriture qui trans- met au registre à décalage un signal qui provoque le charge- ment par le registre à décalage des données du registre (81) ou le décalage des données qui ont été précédemment chargées; et un circuit logique d'établissement de liaison/6criture non achevée couplé au circuit logique de chargement et de dé- calage de registre pour engendrer des signaux servant à in- former l'ordinateur que des données précédemment transmises par l'ordinateur n'ont pas été chargées dans le registre à temps pour être transmises à l'unité à disque.