Brevet FR2445559A1 — publié le 19800725

La présente invention concerne un appareil et un procédé pour déterminer le classement d'un participant à une épreuve de vitesse à partir de constantes et de facteurs prédéterminés provenant des résultats de courses antérieures. La présente invention concerne en outre des calculateurs pour calculer des fonctions arithmétiques déterminées sous la commande de mémoires permanentes de programmes. On connaft actuellement de nombreux procédés pour déterminer un classement des participants à une course, par exemple pour des chevaux de course. L'aptitude d'un animal à courir est fonction de sa capacité naturelle à modifier sa condition physique au moment de la course. Autrement dit, un animal au mieux de sa forme peut courir sur une distance donnée à une certaine vitesse moyenne, c'est-à-dire que cet animal court en fait à sa capacité maximale, et aucun entraSne- ment complémentaire ne peut améliorer sa performance. L'aptitude naturelle à courir pour les animaux d'une espèce donnée est représentée par une courbe en cloche, la même que pour toutes les autres caractéristiques physiques et de performances telles que la taille ou l'intelligence. Les individus d'une espèce donnée sont proches d'une norme (le sommet de la courbe en cloche), certains individus exceptionnels se situant de part et d'autre des extrémités de la cloche. Depuis longtemps, les turfistes cherchent une méthode pour évaleur l'aptitude naturelle à courir des chevaux sur des distances variées. Ceci est difficile pour plusieurs raisons 1. Les chevaux courent sur de nombreuses distances différentes et il est très difficile de relier entre elles les performances sur ces distances différentes. Par exemple, si on connaît l'aptitude à courir d'un cheval A sur une distance de 1 mile (1609 mètres) et l'aptitude à courir d'un cheval B sur 1 1/2 mile (2414 mètres), lequel sera le plus rapide sur une distance de 1 1/4 mile (2012 mètres) ? 2. Les performances passées de tous les chevaux dans une course sont publiées dans les journaux spécialisés (par exemple, aux U.S.A. le "Daily Racing Form"), mais seul le temps du vainqueur est donné.Le nombre de longueurs auquel chaque autre cheval dans une course se trouve derrière le vainqueur à l'arrivée est également donnéet une méthode empirique consiste à ajouter un cinquième de seconde au temps du vainqueur pour chaque longueur derrière celui-ci. Cette méthode empirique n'est précise que si les chevaux courent à la vitesse exacte de 1 furlong (60 longueurs) par douze secondes (16,76 mètres/seconde ou environ 60 km/heure) et est inexacte pour toutes les autres vitesses. Ici, dans la description et les revendications, on emploiera les unités de longueurs anglo-saxonnes suivantes : 1 mile = 1.609,38 m; 1 furlong = 1/8 de mile = 201,17 m; 1 longueur = 1/60 de furlong = 3,353 m. 3. Le même cheval courra à des vitesses différentes sur des pistes différentes. Cette différence est provoquée par la structure de la piste et l'état de celle-ci. Il existe des variations à long terme (structure de la piste) et des variations à court terme (conditions atmosphériques, degré de ratissage, etc.). Le classement d'un cheval est relatif à sa position sur la courbe de performances en forme de cloche. Un cheval de grande classe (à l'extérieur de la cloche sur le bon celé) battra un cheval de classe moyenne (au sommet de la cloche) sur toutes les distances de course. Des chevaux de classes plus élevées tendent à accomplir des performances meilleures que les chevaux de classes inférieures sur toutes les distances de course. Le problème consiste à classer l'aptitude à courir d'un cheval de telle sorte que 1. Des chevaux de la même classe obtiennent en moyenne le même classement sur toutes les distances. 2. Des chevaux de classes différentes ont des classements différents sur une échelle ascendante de performances. 3. Des chevaux pris individuellement sur la moyenne ont le m- me classement sur toutes les distances. Les systèmes actuels de classement de vitesses ne satisfont pas les critères ci-dessus. Dans la plupart des systèmes, tels que le Daily Racing Form, on soustrait un point de 100 points pour chaque cinquième de seconde dont la performance du cheval est supérieu re au record de la piste sur cette distance. Ce système ne satisfait point les critères indiqués ci-dessus, pour les raisons suivantes 1. Un cinquième de seconde sur une distance est beaucoup moins important qu'un cinquième de seconde sur un sprint. 2. Les records de la piste sur des distances différentes peuvent avoir été établis par des chevaux de classes différentes. Le record de la piste est fonction du cheval qui a établi le record. 3. La méthode empirique qu'un cinquième de seconde équivaut à une longueur n'est pas précise. Afin de déterminer des classements de vitesse satisfaisant les trois critères établis ci-dessus, il est nécessaire de partir d'un concept de base avec une équation simple. D'autres systèmes sont envisagés dans un livre intitulé "Picking Winners" (Trouver les Vainqueurs) par Andrew. Un système particulier utilise des tables en matrices, dans lesquelles les coordonnées sont le temps et la distance et dont il résulte des lignes qui correspondent à divers classements de vitesse. On est alors supposé comparer deux chevaux différents en déterminant leurs classements de vitesse respectifs et en comparant ces classements. Ceci est intrinsèquement inexact, du fait qu'il n'y a aucune théorie globale pour déterminer les classements de vitesse, ceci étant actuellement fait empiriquement. En outre, il existe un autre tableau pour les chevaux non gagnants.Celui-ci utilise toujours comme coordonnées la distance et le temps et il est également empirique; lorsqu'on ajoute ces résultats empiriques aux résultats précédents, la comparaison finale est encore plus ridicule du fait de l'inexantitude intrinsèque des systèmes empiriques. Bien qu'il existe de nombreux calculateurs pour exécuter des fonctions arithmétiques, il n'existe aucun calculateur pouvant calculer une équation pour calculer un classement basé sur des constantes et des facteurs prédéterminés provenant de résultats de courses antérieures. C'est en conséquence un but principal de la présente invention de claculer un classement de vitesse pour un engagé dans une épreuve sprotive, telle qu'une course de chevaux, par une méthode qui utilise une relation linéaire entre la vitesse et la distance pour des engagés de la meme catégorie, des relations linéaires parallèles entre des engagés de catégories différentes et une relation linéaire entre la vitesse et la distance pour un engagé particulier et dans laquelle, prenant en considération ces relations linéaires, on utilise une équation spécifique pour déterminer le vainqueur. L'équation est la suivante SR = (60 f - L)/t + 0,07f - 4,92 0,08 dans laquelle f est la longueur de la course en furlongs; L est le nombre de longueurs quel un cheval arrive derrière un vainqueur; t est le temps du vainqueur en secondes. C'est un autre but de la présente invention de calculer un classement de vitesse pour un engagé dans une épreuve sportive telle qu'une course de chevaux, basé sur des résultats comparatifs de l'engagé dans une course antérieure et sur des facteurs constants applicables au classement de l'engagé. C'est un autre but de la présente invention de calculer un classement de vitesse pour un engagé dans une épreuve sportive par l'équation suivante (60f - L)/t + 0,07f - 4,92 0,08 C'est un autre but de l'invention de calculer un classement de vitesse pour un engagé dans une épreuve sportive telle qu'une course de chevaux, basé sur des données de temps et de distances. C'est un autre but de la présente invention de calculer un classement pour un engagé dans une épreuve sportive telle qu'une course de chevaux, basé sur des données de distances et de temps, par un calculateur comportant des moyens pour entrer des informations de données et de commandes, des moyens pour afficher les données entrées et le résultat, des moyens pour stocker les données des informations de commande, des moyens pour calculer un classement de vitesse compte tenu des données entrées et du programme, et des moyens pour commander la séquence d'opérations du calculateur du classement. C'est une caractéristique de la présente invention que le procédé de calcul du classement selon la présente invention procure un classement précis qui prend en compte tous les facteurs appropriés. C'est une autre caractéristique de la présente invention que l'utilisateur puisse emporter l'appareil selon la présente invention à des épreuves sportives de façon à pouvoir calculer instantanément et exactement les classements avant et après une épreuve. Une autre caractéristique de l'invention est de permettre à toute personne sans connaissance de mathématiques ou de caractéristiques de courses de chevaux de calculer rapidement et aisément, à l'aide d'un calculateur, le classement de n'importe quel cheval dans n'importe quelle course. L'utilisateur entre simplement la longueur de la course, les longueurs derrière le vainqueur et le temps du vainqueur. A partir de ces données, le calculateur calcule automatiquement un classement. Le classement ainsi calculé tient automatiquement compte de la variation exacte de vitesse et de distance, ce que ne fait pas la règle empirique (un cinquième de se conde égale une longueur), et utilise également une relation linéaire entre le classement et la distance pour faire correspondre les temps de course de différentes distances au classement. En conséquence, la méthode de la présente invention consiste à classer un engagé par rapport aux autres engagés dans la même épreuve sportive ou dans des épreuves sportives similaires. Le classement de l'engagé est calculé en fonction de la formule mathématique indiquée ci-dessus, laquelle formule contient les facteurs appropriés pour déterminer un classement pour chaque engagé, indépendamment des variations telles que la piste ou la catégorie de l'engagé. Ainsi, grâce à la méthode de la présente invention, on peut calculer un classement qui est général dans ce cas, en ce que le même classement s'applique à l'engagé quelle que soit la distance de la course à parcourir. L'appareil de la présente invention contient des moyens pour rentrer les données, par exemple un clavier similaire aux claviers en usage courant dans les calculateurs arithmétiques à quatre fonctions, une mémoire à accès aléatoire pour stocker les données d'entrées et d'autres données intermédiaires et de sortie, une unité arithmétique pour calculer un classement à partir des données d'entrée, un dispositif d'affichage pour afficher les données choisies et un programme de commande en mémoire permanente pour commander la séquence de pas à exécuter dans le calcul d'un classement. L'invention sera mieux comprise à la lecture de la description détaillée, donnée ci-après à titre d'exemple seulement, d'une réalisation préférée, en liaison avec le dessin joint, sur lequel - la figure 1 est un graphique montrant la vitesse en longueurs par seconde en fonction de la distance exprimée en furlongs, montrant les vitesses record en Amérique du Nord sur des distances de 6 à 10 furlongs; - la figure 2 est un graphique donnant la vitesse en longueurs par seconde en fonction des distances exprimées en furlongs, et montrant les lignes de classements de vitesse pour des classements de O à 100; - la figure 3 est une perspective isométrique d'un calculateur manuel selon la présente invention, - la figure 4 est un schéma-bloc du micro-calculateur de cette invention;; - la figure 5 est un schéma-bloc des détails des sections arithmétique et de mémoires du micro-calculateur; - la figure 6 est un schéma de la section d'affichage du micrc calculateur; - la figure 7 est un schéma du programme et du générateur d'adresses du micro-calculateur; - la figure 8 est un schéma-bloc de l'entrée des données, du générateur de rythme et de la commande de programmes; - la figure 9 est un schéma du décodeur avec une commande marche-arret, et - la figure 10 est un schéma du circuit logique de la virgule Depuis longtemps, les turfistes ont cherché une méthode pour évaluer l'aptitude naturelle à courir des chevaux sur diverses distances. Ceci est difficile pour plusieurs raisons. 1. Les chevaux courent sur de nombreuses distances différentee et il est très difficile de relier entre elles les performances accomplies sur ces distances différentes. Par exemple, si on connaet l'aptitude à courir d'un cheval B sur une distance de 1,5 mile et l'aptitude à courir d'un cheval A sur la distance de 1 mile,lequel sera le plus rapide sur la distance de 1,25 mile ? 2. Les performances passées en course de tous les chevaux sont publiées dans les journaux spécialisés, qui toutefois ne donnent qt le temps du vainqueur. On donne également le nombre de longueurs at quel chaque autre cheval dans la course se trouve derrière le vainqueur à l'arrivée et une méthode empirique consiste à ajouter un cinquième de seconde au temps du vainqueur pour chaque longueur derrière celui-ci.Cette règle empirique est inexacte. 3. Le même cheval peut courir à des vitesses différentes sur des pistes différentes. Ces différences proviennent de la structure de la piste et de l'état de celle-ci. Il y a des variations à long terme (structure de la piste) et des variations à court terme (conditions atmosphériques), etc. Le classement d'un cheval est relié à sa position sur la courbe de performances en forme de cloche. Un cheval de grande classe (en dehors de la courbe sur le bon cté) battra un cheval de classe moyenne (au sommet de la courbe) sur toute distance de course. Les chevaux des classes plus élevées ont tendance à effectuer de meilleures performances que les chevaux de classes inférieures sur toutes les distances de course. Le problème cnnsiste à classer l'aptitude d'un cheval à la course de telle sorte que 1. Des chevaux de la même classe ont en moyenne le même clas sement sur toutes les distances. 2. Des chevaux de classes différentes ont des classements différents se trouvant sur une échelle ascendante avec les performances. 3. Des chevaux pris individuellement sur la moyenne ont le meme classement de vitesse à toutes les distances. Les systèmes actuels de classements de vitesse ne satisfont pas les critères ci-dessus. Dans la plupart des systèmes, tels que le Daily Racing Form, on soustrait un point de cent points pour chaque cinquième de seconde dont la performance du cheval est supérieure au record de la piste sur cette distance. Ce système ne satisfait point les critères indiqués ci-dessus pour les raisons suivantes 1. Un cinquième de seconde sur la distance est beaucoup moins important qu'un cinquième de seconde dans un sprint. 2. Les records de la piste sur des distances différentes peuvent avoir été établis par des chevaux de classes différentes. Le record de la piste est une fonction du cheval qui a établi le record. 3. La règle empirique d'un cinquième de seconde égalant une longueur n'est pas précise. Dans tous les systèmes actuels de classements de vitesse, l'attention se porte sur le temps de la ourse. Si les temps moyens des vainqueurs de la meme classe sont portés en fonction de la distance de la course, la courbe résultante n'est pas linéaire; cependant, si la vitesse moyenne est portée en fonction de la distance, la courbe résultante est une ligne droite. Cette relation apparat sur la figure 1 pour les records d'Amérique du Nord pour des distances variant de 6 furlongs (1207 mètres) à 1,25 mile (2012 mètres). Une recherche approfondie sur les caractéristiques de vitesse en fonction de la distance de toutes les classes de chevaux de course pour des distances allant de 5 furlongs (1006 mètres) à 1,5 mile (2414 mètres) a confirmé que toutes les classes de chevaux présentaient la meme relation linéaire sous forme de ligne droite entre la vitesse moyenne et la distance. Cette découverte fondamentale de la relation linéaire entre la vitesse et la distance pour des chevaux de la même classe permet maintenant d'établir un système satisfaisant les spécifications initiales d'un système de classement de vitesse. La pente de la ligne droite retraçant les records d'Amérique du Nord est pratiquement la meme que la pente des lignes relative à des chevaux de toutes les diverses classes. Cette pente est environ (0;07) lon gueur/seconde/furlong. (0,117 mètre/seconde par 100 mètres). La figure 2 illustre le générateur du système de classement de vitesse. On porte en ordonnées la vitesse moyenne sur la distance et en abscisses la distance en furlongs. On cherche à établir une échelle de O à 100, la majorité de toutes les performances se trouvant à l'intérieur de cette échelle. On choisit le classement 100 comme suit : une vitesse maximale sur 6 furlongs est 5,3 longueurs par seconde (ceci est approximativement le record des Etats-Unis d'Amérique, voir figure 1) et on lui attribue un classement de 100; une vitesse minimale sur 6 furlongs est approximativement 4,5 longueurs par seconde et on lui attribue un classement de vitesse de o. On trace alors la ligne de classement 100 à partir de l'ordonnée 5,3 avec une pente de (-0,07).Chaque valeur de 0,08 longueur/ seconde sur 6 furlongs réduit le classement de 10 jusqu'à ce qu'on atteigne le classement O correspondant à une vitesse de 4,5 longueurs par seconde sur 6 furlongs. La figure 2 montre la famille de lignes de classement ainsi engendrée. Soit f = distance de la course en furlongs; S = vitesse moyenne de l'engagé en longeurs/seconde; Sr= classement de l'engagé; Cr= valeur pour laquelle le classement de vitesses Sr coupe l'axe vertical (vitesse en longueurs/seconde) pour une distance O (f = O); t = temps du vainqueur en secondes. L'équation de la ligne de classement 100 est S1OO = 5,72 - (0,07)f L'équation pour la ligne de classement 90 est SgO = 5,64 - (0,07)f L'équation pour la ligne de classement 80 est : S80 = 5,56 - (0,07)f .................... S0 = 4,92 - (0,07)f Le problème consiste maintenant à générer le classement de vitesse sous forme d'une fonction continue de la vitesse moyenne du coureur sur la distance. En conséquence, S = Cr - (0,07)f Cr = 4,92 + Sr (0,08) En remplaçant Cr dans l'équation précédente, on obtient S = 4,92 + sr (0,08) - (0,07)f En résolvant en Sr, on trouve : Sr = S + (O,07)f - 4,92 0,08 Pour le vainqueur : S = 60 f t En conséquence, l'équation s'écrit : Ce qui s'écrit encore 750 Sr = 750 f (1) Sr = t + 875f - 61,5 L'équation (1) permet ainsi de calculer le classement de vitesse sous forme d'une fonction du temps et de la distance. Cette équation doit être modifiée pour les non-gagnants, du fait que leurs temps de course ne sont pas donnés dans les journaux spécialisés. Plusieurs méthodes de calcul de la vitesse moyenne des chevaux perdants sur la distance sont possibles. Une méthode est la suivante: Soit L = nombre de longueurs derrière le vainqueur au moment où celui-ci coupe la ligne d'arrivée. = vitesse moyenne du perdant = 60f-L t et en conséquence (2) Sr = (60f - L)/t + (0,07)f - 4,92 0,08 On utilise alors l'équation (2) à la fois pour les vainqueurs et les perdants avec L = O pour les vainqueurs. Une recherche approfondie a montré que cette équation génère une famille cohérente de classements de vitesse satisfaisant les spécifications initiales. Une fois établie une équation pour calculer un classement de vitesse qui soit suffisamment générale pour couvrir toutes les variables impliquées dans une épreuve sportive telle qu'une course de chevaux, la méthode pour exécuter le calcul devient apparente et est la suivante 1. Déterminer une vitesse moyenne optimale basée sur la meilleure performance sur la distance. 2. Déterminer la vitesse moyenne minimale que l'expérience a montré avoir une valeur 0 pour le type particulier d'épreuve sportive en question. 3. Déterminer des valeurs intermédiaires entre la valeur optimale et la valeur minimale pour des vitesses sur des distances variées de courses. 4. Résoudre alors en utilisant la formule SR = (60f - L)/t + o,O7 f - 4,92 0,008 L'équation ci-dessus peut etre calculée par un calculateur numérique spécialisé ou par une séquence de pas de programme exé- cutée sur un calculateur numérique non spécialisé. En se reportant à la figure 3, un calculateur électronique 10 de classements de vitesse peut etre câblé comme un calculateur manuel ayant des touches de fonction 12, 13, 14 et 15 pour identifie les données à entrer sur les touches d'entrée de données 16. Un affichage 18 est inclus pour afficher visuellement les données entrées et le résultat du calcul du classement de vitesse. En se reportant rapidement à la figure 8, le schéma-bloc 6 du calculateur de classements de vitesse comporte des moyens d'entrée de données 38 qui peuvent etre un clavier 12-16 représenté sur la figure 3. Les moyens d'entrée de données sont reliées à une unité arithmétique 1 qui exécute les fonctions arithmétiques dans le calculateur et a une mémoire à accès sélectif 2 pour le stockage des données entrées. Une mémoire permanente de commande de programme 4 commande la séquence de fonctions arithmétiques et logiques effectuée par le calculateur. La logique de commande et de synchronisation 8 coopère avec toutes les autres entrées, moyens d'entrée de données 6, unité arithmétique 1, mémoire à accès sélectif 2, mémoir permanente de commande de programme 4 et affichage 3 pour commander l'exécution du calcul du classement de temps. En se reportant maintenant à la figure 5, le fonctionnement d'un calculateur selon la présente invention pour calculer un classement de vitesse selon la présente invention comporte les pas suivants a) Entrée des données de distances en furlongs, retard sur le vainqueur en longueurs et t en secondes. b) Multiplier f par (-60). c) Ajouter L à (-6If) et stocker le résultat. d) Diviser le résultat par t et stocker le nouveau résultat. e) Calculer 0,07f. f) Ajouter 0,07f au résultat précédemment calculé. g) Ajouter une constante (4,92) au calcul effectué. h) Diviser par 0,008. i) Stocker et afficher le résultat qui est le classement de vitesse. La mémoire permanente de commande de programme 4, représentée sur la figure 1, contient un programme de 28 pas pour calculer un classement de vitesse étant donné une distance en furlonts, un intervalle entre le vainqueur et celui qui finit à la nième place en longueurs et le temps en secondes. On donne ci-après la liste des pas de programme pour calculer l'équation d'un classement de vitesse. Pas du Programme Valeur Décimale Fonction (Référence à l'emplacement Observations dans la mémoire à accès sélectif) 00000 (0) Entrée des données Voir N1 et N2 00001 1 Effacer 00000 00010 2 Effacer 11000 et 11100 00011 3 Ajouter 00100 à 11000 et 111000 6 fois (6f) 00100 4 Décaler vers la gauche 11000 et 11100 (60f) 00101 5 Changer de signe 11000 et 111000 (-60f) 00110 6 Ajouter 01000 à 11000 et 11100 (-60f + L) 00111 7 Effacer 00000 01000 8 Décaler vers la gauche 11000 et 11100 Préparation pour division 01001 9 Ajouter 10000 à 11000 et 11100 Diviser par t 01010 10 Transférer 00000 à 01000 Placer le résultat à l'em placement "L" 01011 11 Effacer 00000 01100 12 Effacer 11000 et 11100 01101 13 Ajouter 00100 à 11000 et 11100 6 fois (7f) 01110 14 Ajouter 00100 à 11000 et 11100 1 fois (7f) 01111 15 Décaler vers la droite 11000 et 11100 (0,07f) 10000 16 Décaler vers la droite 11000 et 11100 (0,07f) 10001 17 Ajouter 01000 à 11000 et 11100 "L" + 0,07 f 10010 18 Changer de signe 11000 et 11100 - ("L" + 0,07 f) 10011 19 Ajouter 01000 à 11000 et 11100 Ajouter 4,92 10100 20 Effacer 00000 10101 21 Décaler vers la gauche 11000 et 11100 Préparation pour division 10110 22 Décaler vers la gauche 11000 et 11100 Préparation pour division 10111 23 Décaler vers la gauche 11000 et 11100 Préparation pour division 11000 24 Décaler vers la gauche 11000 et 11100 Préparation pour division 11001 25 Ajouter 10100 à 11000 et 11100 Diviser par 8 11010 26 Ajouter (0101) à 00000 Ajouter 5 11011 27 Déclaer vers la droite 00000 (Arrondi) 11100 28 Stop 11101 29 11110 30 N1 : programme pour entrer les données. Pas du programme Valeur décimale Fonctions 0000 o Affichage (Stop) 0001 1 Entrer le premier chiffre 0010 2 Affichage (Stop) 0011 3 Entrer le deuxième chiffre 0100 4 Affichage (Stop) 0101 5 Entrer le troisième chiffre 0110 6 Affichage (Stop) 0111 7 Entrer le quatrième chiffre 1000 8 Affichage (Stop) N2 : programme pour transférer les données. Pas du programme Valeur décimale Fonctions O 1 Standardiser 1 2 Transférer Comme on le voit d'après les pas exposés ci-dessus, lorsque la mémoire permanente de programme déclenche le programme pour calculer un classement de vitesse, le premier pas est une entrée de données. Les données sont entrées à l'adresse O de la mémoire à accès sélectif. La mémoire à accès sélectif 2, représentée sur la figure 6, est une mémoire à 32 emplacements, dans laquelle chaque emplacement contient un quartet de données décimales codées binaires. Quatre emplacements de mémoire ou quatre multiplets de données constituent un mot de mémoire.La mémoire est organisée de la manière suivante Mot Données stockées O Stockage temporaire et affichage 4 f en furlongs 8 L en longueurs 12 Première constante : 4,92 16 t en secondes 20 Deuxième constante : 0,008 24 Stockage 28 Stockage Les données sont d'abord entrées à l'emplacement O de la mémoire à accès sélectif. Lorsque les données sont entrées, elles sont affichées sur le dispositif d'affichage. Après que la donnée a été entrée dans le stockage temporaire 0, elle est transférée à l'emplacement de mémoire approprié déterminé par la donnée particulière entrée, telle que f, L ou t. Après entrée et stockage correct des données aux emplacements appropriés, on exécute un ordre d'addition pour effectuer une multiplication par 6 sur le contenu du mot 4 (f). Ensuite, on effectue un décalage pour multiplier le résultat 6f par 10 et obtenir 60f. Ensuite, on effectue un changement de signe pour obtenir -60f. On effectue une addition pour ajouter le contenu du mot 8 (L) au résultat -60f calculé précédemment. Ensuite, on divise la nouvelle quantité (L - 60f) par t et le résultat est placé au mot 8. (6f) est à nouveau calculé et ensuite ajouté à f pour obtenir 7f. Ce facteur est alors divisé par 10, et à nouveau par 10, pour obtenir 0,07f. Une opération d'addition ajoute 0,07f au mot 8, qui est le facteur L - 60f divisé par t, précédemment calculé. Ensuite, on ajoute le contenu du mot 12 (4,92) au résultat obtenu par les opérations antérieures et le total est divisé par 0,008. Le résultat est alors stocké au mot O pour affichage. L'équation de base est divisée en fonctions séparées et l'ordre dans lequel ces fonctions sont effectuées est le suivant : 1) multiplier 60 par f : 60 f 2) déduire L du résultat de la multiplication : (60f - L) 3) diviser le résultat par t : (60f - L)/t 4) multiplier f par 0,07 : 0,07f 5) ajouter le résultat de (3) au résultat de (4) : (60f - L)/t + 0,07f 6) déduire 4,92 du résultat de (5) :(60f - L)/t + 0,07f - 4,92 7) obtenir la solution SR en divisant le résultat de (6) par 0,008 : ((60f - L)/t + 0,07f - 4,92)/0,008 Un calculateur spécifique pour effectuer les calculs précités est décrit ci-après. Le calculateur est alimenté avec t, L et f (entrée des données et chargement des emplacements t, f, L) pour préparer les sections de mémoire fonctionnelles en effaçant ou en transférant les informations. Ces stades additionnels doivent être effectués avant chacune des fonctions de base ci-dessus. Par ailleurs, le résultat final doit être arrondi à l'entier décimal le plus proche. Un programme de base pour le fonctionnement du calculateur a été décrit plus haut. Les tâches couramment considérées comme fonctions de sousprogrammes sont données en termes d'emplacements de mémoire RAM (mémoire à accès sélectif) en dessous desquelles sont les sections de mémoires choisies qui sont actionnées : Adresse de mémoire A4 A3 A2A A 00000 00001 O O O 1 O Stockage temporaire O O O 1 1 et affichage O O -1 0 0 00101 00110 f 00111 01000 01001 01010 L 01011 01100 01101 O 1 1 1 0 4,92 (dans la mémoire permanente) 01111 10000 10001 10010 t 10011 10100 10101 1 0 1 1 0 0,008 (dans la mémoire permanente) 10111 11000 11001 11010 11011 Section fonctionnelle 1 1 1 0 O (ajouter, changer de signe, soustraire, etc.) 11101 11110 11111 Nota : Chaque emplacement d'adresse de mémoire contient quatre bits d'informations de mémoire décimales codées binaires (BCD). La capacité de mémoire totale est divisée en 8 sections. Chaque section contient quatre emplacements. Du fait que chaque emplacement a la capacité de quatre bits, la capacité de chaque section 4 x 4 = 16 bits. Du fait que quatre bits BCD (décimaux codés binaires) représentent un chiffre décimal, les quatre bits BCD, stockés dans chaque emplacement de mémoire sont opérés en parallèle. Pour cette raison, la mémoire avec la capacité totale de 128 bits est organisée en 32 mots de 4 bits chacun. Chaque section de mémoire est constituée par quatre emplacements comme on l'a indiqué ci-dessus, et les sections peuvent entre définies en termes d'adresses de mémoire. Par exemple, la section "stockage temporaire et affichage" utilise les quatre premiers emplacements avec les adresses de mémoire A4, A3, A2, A1, Ao partant de 00000 pour aller consécutivement jusqu'à 00011. La section variable f utilise les emplacements d'adresse 00100 à 00111, L 01000 à 01011 et t 10000 10011. Le nombre fixe 4,92 est stocké sous forme de 04.92 dans les emplacements 01100 à 01111, tandis que le nombre 0,008 est stocké sous forme de 0800 dans les emplacements d'adresse 10100 à 10111. Les nombres fixes ne sont pas supposés changer et en conséquence ils peuvent etre stockés de façon permanente dans une forme de mémoire permanente (mémoire ROM).Les deux dernières sections de la mémoire, adresses 11000 à 11011 et 11100 à 11111, sont conservées pour les opérations et elles sont combinées en une Section Opératoire. Les deux sections de mémoire sont nécessaires pour le cas de multiplications ou de divisions, lorsqu'on exige une précision double. Pour la simplicité de la notation, le programme utilise seulement le premier emplacement de départ dans la définition de la section de mémoire. Par exemple, le stockage temporaire est référencé 00000, ce qui signifie une section de mémoire avec un emplacement de départ de cette adresse, mais long de quatre mots, ou de quatre emplacements consécutifs de 00000 à 00011. La Section Opératoire référencée 11000 et 11100 comporte deux sections de mémoire : une première section commençant à l'emplacement de départ 11000 et une deuxième section avec un emplacement de départ 11100. La séquence des pas de programme est la suivante Le pas initial défini par un nombre binaire 00000 (O) : Entrée des Données, consiste à entrer les informations dans la mémoire. Selon les notes N1 et N2, on utilise deux sous-programmes séparés pour charger les emplacements de mémoire. Ces sous-programmes doivent tre décrits avec la description de l'opération d'entrée des données. Fondamentalement, les nombres sont d'abord entrés et stockés dans la section de stockage temporaire (qui est simultané ment affichée) et les nombres sont ensuite transférés à la section prescrite selon la désignation L, t ou f. Le pas 00001 (1) : Effacer 00000 : effaçage de l'emplacement de stockage temporaire 00000, est nécessaire, car cette section est utilisée dans la multiplication. Pas 00010 (2) : Effacer 11000 et 11100 : l'effacement de la section opératoire est nécessaire, car les deux sections de mémoire sont utilisées pour la multiplication. Pas 00011 (3) : Ajouter 00100 à 11000 et 11100 : la multiplication est effectuée ici par addition répétitive de six fois la variable f, qui est stockée dans l'emplacement de mémoire commen canut à l'adresse 00100. Par ailleurs, le nombre de fois où l'addition est effectuée est d'abord stocké dans le Stockage Temporaire 00000 et ensuite comparé à 6. Lorsqu'on atteint la comparaison, le programme avance à l'opération suivante. Pas 00100 (4) : Décaler vers la gauche 11000 et 11100 : le nombre qui se trouve dans la Section Opératoire est décalé vers la gauche d'une position décimale pour effectuer la multiplication par 10 dans cette opération arithmétique à virgule fixe. Pas 00101 (5) : Changer de signe 11000 et 11100 : ceci est un stade préparatoire nécessaire pour effectuer la soustraction dans un programme ultérieur. Pas 00110 (6) : Ajouter 01000 à 11000 et 11100 : la soustraction est obtenue en ajoutant un complément (on utilise un complément à 10) et en laissant le résultat sous la forme complémentaire comme stade préparatoire pour la division dans le programme ultérieur 01001. Pas 00111 (7) : Effacer 00000 : stade préparatoire pour la division Pas Ol0 D (8) : Décaler vers la gauche 11000 et 11100 : stade préparatoire pour la division. Le nombre est décalé vers la gauche d'une position décimale pour obtenir un résultat de la division à la précision de deux décimales. Pas 01001 (9) : Ajouter 10000 à 11000 et 11100 : la division est ici effectuée par soustraction répétitive. La soustraction est obtenue en ajoutant un complément et la variable t est stockée dans la section de mémoire 1000O.Ce programme nécessite également d'enregistrer le nombre de soustractions répétitives qui sont effectuées jusqu'à obtenir un débordement. Ce nombre est conservé dans la section 00000. Pas 01010 (10) : Transférer 00000 à 01000 : le résultat de la division enregistré dans la section 00000 est transféré à la section de mémoire 01000. Ceci est un stade préparatoire, car la section 00000 est nécessaire pour les multiplications ultérieures. Pas 01011 (11) : Comme 00001. Pas 01100 (12) : Comme 00010. Pas 01101 (13) : Comme 00011. Pas 01110 (14) : Ajouter 00100 à 11000 et 11100 : simple addition de t au nombre qui a été déjà multiplié six fois dans le programme 01101. En fait, ceci effectue une multiplication par 7. Pas 01111 (15) : Décaler vers la droite 11000 et 11100 : le nombre total est décalé pour déplacer la virgule d'une position vers la gauche. Pas 10000 (16) : Comme 01111. Pas 10001 (17) : Comme 00110, sauf que le résultat de la division au pas 01001 qui a été transféré ici au pas 01010 est maintenant ajouté au résultat du pas 10000. Pas 10010 (18) : Comme 00101. Pas 10011 (19) : Ajouter 01100 à 11000 et 11100 : la soustraction est effectuée en ajoutant 4,92 au complément et en laissant le résultat sous la forme complémentaire comme stade préparatoire à une division ultérieure. Pas 10100 (20) : Comme 00111. Pas 10101 (21) : Décaler vers la gauche 11000 et 11100 : ceci est un stade préparatoire pour la division en déplaçant la virgule d'une position vers la droite. Pas 10110 (22) : Comme 10101. Pas 10111 (23) : Comme 10101. Pas 11000 (24) : Comme 10101. Pas 11101 (25) : Ajouter 10100 à 11000 et 11100. La division s'obtint ici d'une manière analogue au programme 01001, le nombre 8 étant utilisé ici à la place de la variable t. Le résultat de la division est mémorisé dans la section 00000. Le résultat se présente sous la forme xxx, x, c'est-à-dire avec une décimale. Pas 11010 (26) : Ajouter 101) à 00000. C'est un stade préparatoire pour arrondir le résultat final au chiffre entier le plus proche. En ajoutant 0101 (5) au dernier chiffre de la forme xxx,x, le nombre entier en avant de la virgule est augmenté d'une unité si le nombre dans la dernière position est égal ou supérieur à 5, et il n'est pas modifié si ce nombre est inférieur. Pas 11011 (27) : Décaler vers le bas 00000. Arrondi de l'affichage en décalant vers la droite le nombre entier dans 00000 et en annulant tous les chiffres en dessous de la virgule. Le résultat se présente sous la forme xxx. Pas 11100 à 11111 (28 à 31) : Arrêt : l'opération est terminée et le résultat est affiché. La description des 28 pas impliquée dans l'opération totale est limitée à l'explication de ce qui est fait pour obtenir le résultat final. Les opérations programmées sont effectuées par un calculateur sous la forme de 28 sous-programmes consécutifs. Afin de comprendre comment le calculateur effectue ces sous-programmes, il est nécessaire d'étudier la machine conçue dans ce but. La figure 5 montre le schéma de base de l'organisation du microcalculateur. Comme on le voit, ce calculateur comprend 8 blocs : 1) section arithmétique, 2) : mémoire, 33 : section d'affichage, 4) : programmes (sous-programmes stockés), 5):générateur d'adresse A1 Ao 6) : circuit d'entrée des données, 7) : générateur de synchronisation et 8) : controleur de programmes. La section arithmétique 1, couplée à la mémoire 2,effectue toutes les opérations de base, les sous-programmes d'additions, de multiplications, de divisions, de changements de signes, de décalage vers la gauche, de décalage vers la droite, de transfert, de comptage, etc.La section d'affichage 3 fiche toutes les informations apparaissant sur la barre omnibus de communication à un moment donné, le multiplexage étant effectué par le cyclage de l'adresse A1AO- La section programmes (sous-programmes) 4, non seulement fournit les informations sur les fonctions à effectuer, mais également génère toutes les informations d'adresses, la polarisation de barres omnibus dans certaines conditions et les commandes nécessaires. Elle établit également la séquence pour le générateur d'adresse A1AO 5, utilisé pour produire la séquence appropriée exigée par les sous-programmes. Les circuits d'entrées de données 6 sont utilisés pour charger la mémoire avec des informations initiales. Ces circuits traduisent les chiffres décimaux en nombres DCB (décimaux codés binaires) et les stockent dans les emplacements de mémoires assignés, désignés par L, t ou f. Ceci comporte une instruction pour l'emplacement de la décimale ainsi qu'une instruction d'effaçage et le démarrage de l'instruction d'opération SR. Toutes les informations de synchronisation : horloge de base, horloge de cycle, durée T1 et durée T2, ainsi que le cyclage de l'adresse initiale A1AO sont générées par le générateur de synchronisation 7. Le contrôleur de programmes prend des décisions de base lorsqu'un sous-programme donné est terminé et émet une impulsion d'avance pour le sous-programme suivant jusqu'à ce qu'on atteigne le sous-programme arrêt, et à ce moment le sous-programme affichage est utilisé pour afficher le résultat final. On va maintenant décrire. le principe de fonctionnement, en commençant par décrire les éléments de la section arithmétique. Comme mentionné précédemment, toutes les opérations sont effectuées par la section arithmétique 1, la mémoire 2 étant utilisée pour le stockage. Comme on le voit sur la figure 5, la sortie de la section arithmétique est amenée directement à la mémoire, et on élimine l'usage habituel d'un accumulateur (constitué habituelle ment par des registres à décalage parallèles d'entrées et de sor ties). Le fonctionnement est expliqué par le schéma-bloc détaillé représenté sur la figure 6. Ce schéma montre le raccordement de la sortie de la mémoire à l'entrée de la section arithmétique par l'intermédiaire d'une barre omnibus de communication. La sortie de la section arithmétique, constituée par quatre fils, est raccordée à l'entrée de la mémoire. En outre, on voit une série d'adresses et de commandes avec les informations procurées par les autres sections. En se reportant à la section arithmétique seule, on observe sur la figure 5 qu'elle est constituée par sept petits blocs séparés : trois additionneurs complets à quatre bits numérotés 9, 11 et 12; un bloc pré-accumulateur 10; un inverseur 13; un bloc de porte d'inversion/non inversion 14 et une bascule de stockage de reports 15 avec une fonction ET à son entrée D (données). Les additionneurs complets à quatre bits sont actuellement des articles du commerce et à titre d'exemple, le type SN74283, qui est un type TTL (transistor-transistor-logique) donne satisfaction. Une spécification complète pour ces éléments peut tre trouvée dans un livre intitulé : "The TTL Data Book for Design Engineers" 1973, Texas Instruments Incorporated, PO BOX 5012 Dallas Texas, ainsi que dans le "Supplement to the TTL Data Book for Design Engineers" 1974, meme éditeur. L'additionneur complet mentionné ci-dessus effectue des addi tions de deux nombres binaires à quatre bits donnant une somme résultante sous la forme de quatre bits binaires et également un report (CouTj. Il est également prévu un report antérieur (CO) qui peut être une retenue provenant d'additions antérieures d'ordre inférieur. Le circuit pré-accumulateur 10 est également un article du commerce type SN7495, dont une spécification détaillée complète peut être trouvée dans les livres mentionnés ci-dessus. Fondamentalement, il est constitué par quatre registres à décalage parallèles d'entrées et de sorties, les données étant introduites par un signal de déclenchement à borne négative. Cet élément est utilisé ici sous forme de mémoire temporaire. Le circuit inverseur 13-, par exemple désignation du commerce SN 7404, inverse le signal d'entrée d'un niveau à son niveau opposé. Des portes d'inversion/non inversion, constituant le circuit 14, sont disponibles dans le commerce sous le type SN74H87; inversent les signaux de données si l'entrée de commande est "O", (faible) et émet un signal non inversé lorsque l'entrée de commande est "1" Xlevé). Le circuit de bascule 15 a un repère commercial SN7474. Il est considéré comme une bascule du type D, les informations étant stockées en réponse à une impulsion d'horloge devenant positive. Le circuit est utilisé ici sous forme de mémoire temporaire pour des retenues, pour des additions ultérieures d'ordre supérieur. Du fait que ce type n'a qu'une entrée V, on utilise une porte NON-ET du type SN7408. Par ailleurs, l'entrée de déclenchement, alimentée par l'intervalle de temps T2, est inversée par l'inverseur du type SN7404. En se reportant à la mémoire 2, on a besoin de 128 bits de capacité de stockage. Le composant commercial type SN7489 ayant une capacité de 64 bits, on doit en utiliser deux. Les blocs 17 et 18 représentent la combinaison équivalente de deux composants SN7489. Les portes de commande de sortie, blocs 19, sont ajoutées en utilisant un composant type SN7403, qui est une porte quadruple NON-ET à deux entrées, avec une sortie de collecteur ouverte. La fonction désirée est obtenue en amenant une entrée des quatre portes à l'entrée de commande RE (autorisation de lecture). Les dispositifs de su sorties sont dépolarisés en appliquant un "O" (bas) et ils sont polarisés selon les sorties des mémoires : 20, 21, 22, 3 en appliquant "1" (haut) à l'entrée RE. L'entrée des données dans la mémoire est in troduite par l'entrée de commande WE (autorisation d'écriture) appliquée aux portes 16 procurées par le composant SN7489. L'information est mise en mémoire avec une impulsion de type négatif, désignée ici par WE. On doit noter que les composants commerciaux cités ci-dessus ne sont donnés qu'à titre d'exemple et ne limitent pas le micro-calculateur à leur usage. En fait, on peut utiliser tout autre type de composant ayant une fonction logique similaire. On va maintenant décrire les opérations arithmétiques. Du fait que le nombre BCD n'a que dix combinaisons parmi un total de seize possibles, il est nécessaire de transformer ou de corriger la somme résultat de l'addition de deux tels nombres. Le résultat final doit etre dans une forme BCD appropriée. Pour cette raison, on adopte la procédure suivante pour les additions 1. Ajouter un 6 binaire au nombre BCD en utilisant le circuit additionneur complet 9 à quatre bits. 2. Stocker la somme dans le circuit pré-accumulateur 10 à la fin de l'intervalle de temps T1. 3. Ajouter un autre nombre BCD à l'instant T2, au moyen d'un circuit 14, en utilisant un autre circuit additionneur complet 11 à quatre bits. 4. Corriger la somme résultante par la règle suivante A. Si le report (COUT) est "0" (zéro), alors la "somme" a un excès de 6 binaires qui doit être déduit en utilisant un autre circuit additionneur complet 12 à quatre bits. La procédure pour la déduction est la suivante : en utilisant un inverseur, inverser "O" en "1" et l'amener, sous forme d'un complément de 6 (seizième complément) aux entrées appropriées du circuit 12 et ajouter à la "somme" existante. B. Si le report z (COUT) est "1" (un), alors la "somme" est sous la forme BCD appropriée et aucune correction n'est nécessaire. En conséquence, en utilisant l'inverseur, ajouter "0" à la "somme" en utilisant le meme circuit 12. La somme correcte est introduite dans la mémoire à la fin de la période de temps T2. Par ailleurs, le report est stocké dans le circuit flip flop 15 à la fin de T2. Le report est utilisé pour des additions suivantes d'ordre supérieur. On doit noter que les portes d'inversion/non inversion envoient un signal de non inversion normal pour le cas de l'addition aussi bien que pour la plupart des sous-programmes, sauf pour la sous traction quand un nombre opposé est exigé, auquel cas les portes d'inversion/non inversion sont utilisées pour inverser le nombre BCD en générant un opposé. De façon fondamentale, la soustraction est obtenue en ajoutant un opposé d'un nombre BCD donné. De la description ci-dessus, on note que la section arithmétique n'est conçue que pour des additions. Les sous-programmes exigeant d'autres fonctions doivent se baser sur une génération de polarisation de barres omnibus par la section 4 aux moments appropriés. On note également qu'il y a deux intervalles de temps impliqués : T1 et T2. La procédure totale exige deux stades : 1. En T1, l'information est envoyée au circuit pré-accumulateur 10 de la section arithmétique. 2. Au moment T2, l'information est envoyée par le reste de la section 1 aux entrées de mémoires et y est stockée. Cette procédure est suivie quel que soit le type de sousprogrammes en cours d'accomplissement. Afin de mieux comprendre le procédé appliqué dans les additions, il peut etre souhaitable d'en donner un exemple : Supposons qu'il y ait deux nombres à additionner : 3 (décimal) et 4 (décimal). Sous la forme BCD, les nombres sont : 3 = 0011 4 = 0100 Supposons également que le nombre 0011 (3) soit stocké à l'emplacement de mémoire désigné par l'adresse de mémoire : A A A A A = 00100, dans laquelle : o 1 A3 = 1 3 A4 = 0 et supposons que le nombre 0100 (4) soit stocké à 1'emplacement de mémoire : A4 A3 A2 A1 A0 = 11000 La somme résultante doit être mise dans l'emplacement de mé moire:A A A A A = 11000. Les intervalles de temps T1 et T2 sont générés par le générateur de synchronisation 7. 1. A l'intervalle de temps T1 (T1 = 1, T2 = 0) : L'adresse de mémoire, générée par la section 4 : programme et la section 5 : générateur est: Ao = O, A1 = O, A2 = 1, A3 = O, A4 = 0. La commande de mémoire, également générée par la section 4 programme, est WE = 1 (haut', ce qui empoche l'écriture dans la mémoire et RE = 1 (haut , ce qui permet de lire la mémoire). Les conducteurs omnibus B3B2B1BO reçoivent l'information de la mémoire et en conséquence aucune polarisation n'est à appliquer par la section 4 - programme. On note que, dans des conditions données, l'information telle qu'elle apparat sur les conducteurs omnibus à partir de la mémoire, à savoir 00011 (3), est passée dans le circuit 9 de la section arithmétique. Ici, on ajoute le nombre binaire 01110 (6) avec la somme résultante : 3 = oeîî +6 = Ollq 9 = 1001 Cette somme partielle, 1001, (9) est stockée dans le circuit pré-accumulateur 10, à la fin de l'intervalle de temps T1. On doit noter que les portes d'inversion/non inversion ne sont pas impliquées au moment T1 et également il n'est pas besoin de s'inquiéter de la commande de report ou de la sortie COUT à ce moment, et en conséquence, on peut marquer x = ne pas tenir compte. 2. A l'intervalle de temps T2 (T1 = O, T2 = 1) A ce moment, l'adresse de mémoire générée par la section 4 et la section 5 est : 4 3 2 1 o 11000. Les commandes de mémoires, générées par la section 4, sont WE = (bas, permettant d'écrire), RE = 1. Les conducteurs omnibus sont laissés ouverts pour permettre la lecture de la mémoire. L'entrée aux portes d'inversion/non inversion 14 est également générée par la section 4 - programme, et elle doit entre haute (1) afin de faire passer l'information inchangée au circuit 11, à des fins d'additions. La commande de stockage de report est également alimentée par la section 4 et elle est haute (1), permettant au report, s'il y en a un, d'apparattre à l'entrée D du circuit flip flop 15. De ce fait, dans des conditions données, on note que, pour l'adresse de mémoire A A A A = 11000, un nombre binaire 0100 (4) apparat sur les conducteurs omnibus. Le passage à travers les circuits 9 et 10 est bloqué, du fait que T1 = O. Le nombre est autorisé à passer inchangé, à travers les portes d'inversion/non inver sion, jusqu'aux entrées du circuit 11, où s'effectue l'addition. Les deux nombres, somme partielle stockée dans le circuit 10 et nouvelle entrée, passant à travers le circuit 14, sont additionnés dans le circuit 11 : 9 = 1001 +4 = +0100 13 = 1101 On doit noter que, dans l'addition ci-dessus, il n'y a pas de report et qu'en conséquence la "somme" doit etre corrigée en soustrayant 6 dans le circuit 12. Du fait que COUT = 0, l'inverseur 13 donne une sortie égale l. Ce "1" est appliqué à deux endroits dans le circuit 12 pour appa raftre sous forme d'un complément à 16 d'un 6 binaire, qui est un 10 binaire 13 = 1101 +10 = +1010 23 = 10111 En utilisant seulement les quatre premiers chiffres binaires et en annulant le report dans le circuit 12, le résultat est 23 = 10111 - 16 =-10000 7 = 0111. On doit noter que 3 + 4 = 7, d'où il résulte que 0111 (7) est le résultat correct. Du fait que WE = O, la somme résultante est stockée ou écrite dans la mémoire à la fin de l'intervalle de temps T2. Par ailleurs, à la fin de T2, le report est introduit dans le circuit flip flop 15. Cependant, du fait que dans le cas le report est 0, on introduit "0". L'opération d'addition décrite peut etre représentée sous forme du tableau indiqué ci-après : Adresses de Commandes d Polarisation Commandes Intervalles mémoire mémoire des omnibus arithmétiques AA3A2A1A0 WE RE B B B B I/NI Report COU Tî T2 00100 1 1 ---- x x x ' 1 0 1 1000 O 1 - - - - 1 1 x O 1 Ceci est la notation utilisée pour écrire et effectuer les sousprogrammes. On va maintenant décrire en détail la section d'affichage 3, qui est représentée sur la figure 7. Cette section comporte trois circuits logiques : 20, 21 et 22, et quatre éléments d'affichage 23, 24, 25 et 26. Le circuit logique 20 est un composant commercial type Su74248 (Texas Instruments). Le circuit décodeur 1/4 21, avec une commande d'affichage marche-arrêt, est construit en utilisant des types stan dards de composants SN7440 et SN7404, comme on le voit sur la figure 10. Le circuit logique de virgule 22 est également construit à partir de composants standards SN7412 et SN7404, comme on le voit sur la figure 11. Les éléments d'affichage à sept segments sont des articles du commerce. Les quatre parties 23 à 26 peuvent etre individuelles, par exemple du type MAN-3M, vendu par MONSANTO Display Products 3 400 HILLVIEW Ave. , Palo Alto, California 93 304, ou bien ces éléments peuvent etre en une seule section, comme dans le cas du composant DL-34M par LITRONIX, 19000 HOMESTEAD ROAD, California 95 014. On doit noter que les parties ci-dessus ne sont données qu'à titre d'exemple et ne limitent pas le micro-calculateur à leur utilisation. On va maintenant décrire l'opération d'affichage : le circuit 20 traduit le nombre BCD apparaissant sur le conducteur omnibus en sept segments pour l'affichage. Dans le schéma de multiplexage, communément utilisé, des segments identiques sont raccordés ensemble et le multiplexage est effectué en cyclant les entratnements de chiffres. L'information d'entratnement de chiffres: obtenue de l'adresse de mémoires A1AO, est décodée en quatre sorties par le circuit décodeur 1/4 21. Une seule sortie est basse à un moment donné. En conséquence, un seul chiffre décimal est affiché à un moment donné. Cependant, du fait que A1AO sont cyclées rapidement, tous les quatres chiffres décimaux semblent etre affichés simultanément à l'oeil nu. La commande d'affichage marche-arret provenant des circuits d'entrée de données, blocs 6, commande l'affichage lorsque l'entrée est "1" (haute) ou efface l'affichage lorsque cette entrée est "O" basse; L'information de virgule apparait ici en provenance également de la section : circuit d'entrées de données, et est utilisée principalement pendant le chargement de la mémoire. L'affichage final du résultat se présente sous forme standard avec la virgule à l'extrême droite, c'est-à-dire en nombre entier Do. La lecture de la mémoire, directement sans l'utilisation de registres à décalage classique comme intermédiaires, évite des parties supplémentaires et permet également l'accès visuel direct à toute partie de la mémoire. Par ailleurs, le procédé de lecture direct élimine la nécessité de transférer l'information de la mémoire à la section d'affichage et de lecture. Seule l'adresse de mémoire est sélectionnée pour l'emplacement d'affichage désiré. Le tableau ci-dessous : Sous-programmes d'affichages pour les emplacements à accès sélectifs 00000 montrent l'affichage de quatre chiffres décimaux stockés dans les emplacements de mémoire 00000 jusqu'à 00011, avec 00000 utilisé ici comme notation. On notera que l'emplacement 00000 fait partie du groupe avec le chiffre le moins significatif stocké à cet endroit. SOUS-PROGRAMMES D'AFFICHAGE POUR LU SECTION 00000 DE LA MEMOIRE A A ACCES SELECTIF Adresses de Commandes de Polarisation Commandes Intervalles mémoire mémoire au bus arithmétiques A A WE RE B3B2B1B0 I/NI REPORT COURT T1 T2 O O 01 1 1 1 - - - .- 1 x x 1 O 00011 1 1 ---- 1 x x O 1 00010 1 1 ---- 1 x x 1 0 00010 1 1 ---- 1 x x O 1 0000 1 1 1 - - - - 1 x x 1 0 O O O O 1 1 1 - - - - 1 x x O 1 00000 1 1 ---- 1 x x 1 0 00000 1 1 ----- 1 x x O 1 Note: 1. x = sans objet (toute entrée comportant les transitions). 2. - = pas de polarisation sur les conducteurs omnibus, sauf pour la sortie de la mémoire RAM. Options d'affichage : suppression du zéro de gauche pour la première et la deuxième position. SOUS-PROGRAMME D'ENTREES DES DONNEES POUR LA SECTION RAM 00000 Adreses de Commandes de Polarisation Commandes Intervalles mémoire la mémoire du bus arithmétiques A4A3A2A1A WE RE 8382816O I/NI REPORT COUT T1 T2 O 0 O 1 0 1 1 - - - - 1 x x 1 e (N3) 00011 0 x 0000 1 x x O 1 O O O O 1 1 x - - - - 1 x x 1 O (N3) 00010 0 x 0000 1 x x O 1 O O O O O 1 1 - - - - 1 x x 1 "O (N3) 00001 0 x 0000 1 x x O 1 x x x x x 1 0 - - - - 1 x x 1 0 (Entrer BCD) O O O O O O x O O O O 1 x x O 1 N3 : pour le premier chiffre, les conducteurs omnibus doivent avoir une polarisation O afin d'effacer la mémoire, B3B2BlBo = 0000. De ce qui précède, on notera que, sauf pour les intervalles de temps provenant du générateur de synchronisation, le seul changement apparat dans le cyclage de l'adresse A1AO. La commande de mémoire WE est conservée à un niveau "1" (élevé) pour empecher d'écrire par erreur dans la mémoire pendant le cycle d'affichage. L'adresse A1AO est cyclée par une séquence du générateur d'adresse 5, la séquence étant procurée par la section programme 4. La séquence de départ avec A1 = 1 et Ao = 1, et le cyclage jusqu'à A1 = O, Ao = O, a pour but d'effacer dans l'affichage les zéros de gauche. La section "programmes" est montrée en détail sous forme de bloc sur la figure 7. On notera qu'elle est constituée par dix blocs de circuits logiques, de 27 d 36. Les circuits 27, 28, 29 et 30 sont des composants commerciaux du type SN7450. Ces circuits sont des interrupteurs de sélection et sont utilisés aux intervalles de temps T1 et T2 pour sélectionner les adresses et les commandes appropriées applicables à chaque période. Le bloc circuit 33 est constitué par des fonctions logiques de surpassement des sorties de mémoires permanentes et il est obtenu en câblant des types commerciaux, comme on le voit sur la figure 8. Ces composants commerciaux sont des portes TTL standards. Les blocs circuits 34 et 35 constituent une mémoire permanente. Afin de réduire en pratique la réalisation du micro-calculateur, ces circuits sont ciblés en utilisant des portes TTL NON-ET disponibles dans le commerce. Les spécifications détaillées de ces circuits peu vent être trouvées dans les livres cités plus haut en référence. Toutefois, l'organisation et les fonctions logiques générées par ces portes sont équivalentes au schéma représenté sur la figure 7. Le bloc circuit 36, qui est un compteur de programmes, est construit en utilisant cinq flip flop TTL et D commerciaux SN7474. On notera ici encore que les types mentionnés sont donnés à titre d'exemple et qu'ils ne limitent pas le micro-calculateur à leur usage. Les blocs circuits 34 et 35 forment la base du poste de génération des instructions détaillées. Toutes les adresses et les commandes sont stockées là sous forme fixe et sont envoyées aux sorties pour un sous-programme donné. Le programme est sélectionné par le circuit 35 en décodant les sorties d'un circuit compteur de programmes 36, qui a un compte minimum de 00000 (0) et un compte maximal de 11111 (31) pour une capacité totale de 32 sous-programmes. Du fait qu'il n'est nécessaire que de 28 pas de programmes, les quatre dernières sorties du décodeur sont câblées sous forme de stops. Le programme donné, tel que décodé par le décodeur 1/32, détermine alors toutes les sorties du bloc circuit 34 applicables à ce sous-programme. Ces sorties peuvent être, soit des adresses, soit des signaux de commande. Comme on le voit sur la figure 7, les sorties peuvent etre divisées en huit groupes repérés a, b, c, d, e, f, 8 et h . Le groupe a génère des adresses de mémoire RAM A4 A3 A2 pour la période T1 et également A4 A3 A2 pour la période T2, pour un total de six sorties. Ces adresses sont plus tard sélectionnées par les interrupteurs du bloc circuit 27, qui sont commandés par T1 et T2, de façon à obtenir seulement trois sorties applicables à des intervalles respectés. Le groupe b génère des signaux de commande, qui, à leur tour, déterminent la séquence de générations A1AO par le générateur d'adresses 5, du fait que chaque sous-programme a un ordre prescrit de variation de A1 et Ag. Le groupe c génère des commandes de mémoires : WE (autorisation d'écrire) et RE (autorisation de lecture). Ces signaux sont également donnés pour les périodes T1 et T2 simultanément et sont plus tard sélectionnés par les interrupteurs dans les circuits 28 et 29. Le groupe d génère des conditions de polarisation des conducteurs omnibus pour à la fois les périodes T1 et T2, un total de 8 sorties ROM qui sont plus tard sélectionnées en quatre sorties à des intervalles e temps donnés par les interrupteurs 30. Ces sorties peuvent se trouver dans l'un quelconque des trois états bas (0), haut (1) et Z haut (flottant). Le groupe e génère des niveaux de commande pour les portes d'in- version/non inversion dans la section arithmétique 1, selon ce qui est nécessité par le programme de sous-programmes donnés. Cette sortie est normalement haute (1) sauf dans le cas de complémentation où elle est basse (0). Le groupe f génère une commande de stockage de reports pour le flip flop 15 dans la section arithmétique. Cette commande de sorties est notée "report" pour la simplicité de l'annotation. Le groupe g génère le nombre de cycles qui doivent entre accomplis dans un sous-programme donné. Le cycle minimal est 1 et le cycle maximal est 4. Quatre sorties décodées séparées sont générées simultanément mais une seule sortie est haute (en fonction du nombre de cycles). Le groupe h ne génère qu'une seule sortie qui peut etre 1 (haute) pour la continuation du fonctionnement ou O (basse) pour l'arret. On notera que le bloc de mémoires de lecture, (bloc ROM) génère quelques trente et une sorties. Ces sorties peuvent tre modifiées par des circuits de surpassement 33 comme dans le cas du sousprogramme d'entrée des données, ou si un sous-programme nécessite plusieurs cycles. L'étude montre qu'il est plus économique de modifier les sorties ROM que d'augmenter la capacité de la mémoire de lecture (mémoire ROM), qui pourrait par ailleurs etre envisagée. La figure 7 montre également un schéma-bloc détaillé pour le générateur d'adresses. On doit noter qu'il est constitué par quatre circuits logiques de base : 37, 38, 39 et 40. Le circuit 37 est un composant commercial du type SE7450, qui est une porte d'inversion double à deux entrées NON-OU. Le circuit 38 est une porte d inversion/non inversion, du type commercial SN74H87. Le circuit 39 est un composant SN7450, le meme que 37, sauf que les sorties de commandes de la mémoire de lecture effectuent la sélection des signaux T1 ou T2. Le circuit 40 est un additionneur complet à deux bits, du type commercial SN7482. On doit également noter que les entrées du circuit 38 viennent également de la mémoire de lecture ROM. Chaque sous-programme individuel nécessite une certaine séquence d'adresses A1Ao. Par exemple, une opération de transfert utilise une séquence A1AO comme suit Cas 1: A1 A0 T1 T2 O 0 1 0 O O 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 I 0 1 Telle qu'elle apparat, cette séquence est la meme que celle générée par le générateur de synchronisation 7 et par conséquent l'entrée aux circuits d'inversion/non inversion 38 est haute (1), comme générée par la mémoire de lecture, afin de faire passer inaltérés les signaux. L'entrée au circuit 39 est également haute (1) telle qu'elle est émise par la mémoire de lecture, car l'additionneur n'est pas utilisé. Le sous-programme d'affichage nécessite une séquence qui est la suivante : Cas 2: A A T1 T1 T, 1 1 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 O o 1 0 O O 0 1 Ici, l'adresse doit etre inversée par comparaison au cas 1 cidessus, et en conséquence l'entrée aux portes dinversionXnon inversion est basse (0), mais l'entrée au circuit 39 est toujours haute (1). Le sous-programme de décalage vers la droite (division par 10) nécessite la séquence CALAO suivante : Cas 3: A A T T 0 1 1 O O 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 O 0 1 0 1 1 0 1 Telle qu'elle apparaît, la séquence a un certain ordre qui doit entre généré de façon précise par le générateur 5.A des fins d'analyse, une séquence donnée peut tre représentée séparément pour l'intervalle T1 et également séparément pour l'intervalle T2, avec les ordres respectifs suivants : A A T A A T O 1 1 O O 1 1 0 1 0 1 1 1 1 1 1 O 1 O O 1 1 1 1 On doit noter que, pour l'intervalle T2, l'adresse est normale, la même que dans le cas de transfert; toutefois, pour l'intervalle T1, l'adresse apparait avoir un supplémentaire : cet "1" peut etre ajouté à la séquence A1AO en provenance du générateur de synchronisation 7. L'addition peut être effectuée en utilisant un circuit additionneur complet à deux bits 40. L'entrée en provenance de la mémoire de lecture est alors basse (0) pour aller au circuit d'interrupteur L/R (gauche/droite) 39, de sorte que la sortie du circuit 40 peut passer au travers. Du fait qu'il n'y a pas d'inversion, l'entrée au circuit d'inversion/non inversion 38 est haute (1) telle qu'elle apparat en provenance de la mémoire de lecture. Le circuit d'interrupteur 37 choisit alors la séquence appropriée pour l'intervalle T1 aussi bien que pour l'intervalle T2. La séquence de sous-programme de décalage vers la gauche (multiplication par 10) est la suivante Cas 4: Ai A T T1 I 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 O 0 1 0 0 1 0 1 1 1 I 0 O o 0 1 En comparaison la séquence du cas 4 à celle du cas 3, on notera que la séquence du cas 4 est inversée par rapport à celle du cas 3. Pour cette raison, l'entrée à la porte d'inversion/non inversion doit entre basse (O) pour provoquer 1 inversion et l'entrée au circuit d'interrupteurs L/R 39 est la meme que dans le cas 3, basse (O) pour permettre l'utilisation de la sortie du circuit additionneur 40. Les quatre cas des séquences d'adresses A1AO mentionnés cidessus sont les seuls nécessités pour tous les sous-programmes. Avec le présent schéma, il suffit d'utiliser des portes, tandis que dans l'approche classique, avec des compteurs décompteurs et la prévision d'un saut, deux bascules sont nécessaires en plus des portes. La figure 9 montre le schéma-bloc détaillé de la section "générateur de synchronisation". On doit noter que le générateur de synchronisation est constitué par cinq circuits logiques : 54, 55, 56, 57 et 58. Le circuit 54, l'oscillateur, est réalisé à base d'inverseurs du commerce type SN7406. Le circuit 55, ainsi que les circuits 56, 57 sont des bascules D du type SN7474. Le circuit 58 est une fonction ET réalisée à partir du composant SN7420 (NON-ET) et un inverseur du type SN7404. L'oscillateur, constitué par trois inverseurs montés en série, est raccordé de la sortie à 11 entrée, génère des impulsions d'horloge pour le micro-calculateur. L'utilisation de ce type d'oscillateurs est bien connue; il est très fiable car étant instable, les oscillations persistent dans toutes les conditions de variations de tensions de température. La période d'oscillation est commandée par une capacité extérieure. L'oscillateur entratne un premier circuit flip flop 55,qui est monté sous forme de compteur diviseur. Ce circuit génère à son tour les deux intervalles de temps T1 et T2, qui sont égaux. Les sorties du circuit 55 doivent etre amorties par un avertisseur tampon du type SN7406 afin d'entrainer toutes les sections de l'appareil. La sortie du circuit 55 est également appliquée sous forme d'un signal à une bascule 56 qui est également montée sous forme de comy: teur/diviseur. Cette bascule est utilisée pour générer l'adresse Ao de base. A son tour, le circuit 56 entrain une bascule 57 pour obtenir l'adresse de base A1. Les trois circuits basculeurs 55, 56 et 57 sont montés en circuit ET avec 1'oscillateur 54 pour générer une fréquence de cycle par le circuit 58. Cette fréquence de cycle est amenée dans la section de commande des programmes et également dans la section du cir cuit d'entrée des données. La section de commande de programmes est une partie de la figure 9, et tous les blocs logiques de cette section y sont représentés sous forme détaillée.- On notera que cette section de commande est constituée par quatre circuits logiques 59, 60, 61 et 62. Le circuit 59, qui est un compteur de cycles, utilise deux bascules du type D (SN7474;. Le circuit 60 est un décodeur 1/4 (1 en dehors de 4), représenté sur la figure 10, mais sans la commande marche/arret. Le circuit 60 est un bloc logique représenté en détail sur la figure 12, et utilise un composant de base type SN7406, avec des fonctions "OU" ciblées pour générer des impulsions d'armement et de remise à zéro pour le compteur de cycles. Le circuit 62 est constitué par des portes TTL standards (SE7400). Le nombre de cycles que le sous-programme exige est compté par le circuit 59 et ensuite décodé dans le circuit 60. La commande du compteur provient des sorties de la mémoire permanente, qui détermine par le circuit 61 quand le compteur doit être remis à zéro et quand un nouveau programme doit commencer. Les sorties du circuit décodeur 60 sont utilisées dans un circuit d'avance de programme 62 et également dans la section de sortie de la mémoire permanente pour surpasser les signaux dans le cadre de certains sous-programme Le bloc d'avance de programme 62 prend des décisions de base lorsqu'il faut avancer le programme. Il reçoit des entrées de la mémoire permanente, du compteur de cycles, le report COUT de la section arithmétique et du générateur de synthronisation, et il envoie une impulsion d'avance au compteur de programme. Cette impulsion est soumise à des conditions qui peuvent etre exprimées comme suit Impulsion d'avance de programme = SR (l.t.f)+lSl+E2S2+E3S2AlAo COUT +E4S4COUT Ou : SR (ltf) est un terme déterminant le départ du programme, seulement après l'entrée de toutes les variables f, L et t. 2. E1S1 est un terme se référant à une opération du cycle, le signal E1 provenant de la mémoire permanente et S1 du compteur de cycles. 3. E2S2 est un terme se référant à une opération de deux cycles, avec E2 provenant de la mémoire permanente et S2 du compteur de cycles. 4. E3SZA1AOCOUT est un terme définissant une opération de trois cycles par E3 en provenance de la sortie de la mémoire permanente et dans un second cycle S2 provenant du compteur de cycles, avec A1 et Ao égaux à 1 (haut) an provenance du générateur de synchronisation, et avec un report COUT 1 (haut) en provenance de la section arithmétique. 5. E4 S4 COUT est un terme définissant quatre cycles par E4 en provenance de la mémoire permanente, étant dans le quatrième cycle S4 déterminé par le compteur de cycles, et avec un report COUT 1. La figure 9 montre un schéma-bloc détaillé des circuits d'entrées de données. Les circuits sont des composants logiques standards dont la spécification complète est donnée dans les livres cités en référence. Ils sont un total de 15 et répérés sur la figure 9 de 37 à 51. Le circuit 37 est un codeur décimal binaire, SN74147, avec une porte NI négative SN74s133. Le circuit 38 est un jeu d'interrupteurs qui est un composant standard d'un calculateur tenu à la main. Le circuit 39 est un compteur numérique et il est réalisé en utilisant trois bascules type D 5N7474. Le circuit 40 est un décodeur 1/8 (1 en dehors de 8) SN 74S138. Le circuit 41 est réalisé avec des portes SN7420 et SE7404. Le circuit 42 est réalisé avec des portes NON-ET SN7403 et le circuit 35 est réalisé à partir des portes SN7420 et SN7404.Le circuit 44 est un compteur de virgules, utilisant deux composants du type SN7474. Les circuits 45, 46, 47 et 48 sont des bascules RS, ciblées à partir de SE7400. Le circuit 49 est une porte NI négative SN7420 (NON-ET positive). Le bloc circuit 50 est une logique de combinaisons constituée par des portes standards SN7400 et une bascule 7474. Le circuit 43 est une bascule RS câblée à partir de portes Su7410. Les circuits d'entrées des données utilisent un sous-programme spécial, constitué de deux parties : N1 = programme pour entrer les données dans la section de stockage temporaire de la mémoire et N2 = programme pour transférer les données à des sections de mémoires désignées. En Ex se reportant plus haut, note 1 (N1), on observe que le sous- programme pour rentrer les données comporte huit pas. Le sousprogramme est stocké dans la section d'entrée des données par un circuit compteur numérique 39, un décodeur numérique 40 et un circuit logique d'entrée et d'affichage 41. Ce sous-programme est donné en terme des trois sorties du compteur numérique. Sous-programmes : 00000, 010, 100 et 110 sont des sous-programmes d'affichage selon le tableau des sous-programmes d'affichage. Sous-programmes : 001, 011, 101 et 111 sont des sous-programmes d'entrées des données. Le sous-programme comporte une opération de décalage vers la gauche (multiplication par 10) et l'entrée d'un nombre BCD pendant A1 = o, Ao = O (qui est l'emplacement du chiffre le moins significatif). N3 : pendant l'entrée du premier chiffre, sous-programme 001, la polarisation des conducteurs omnibus reçoit un potentiel O (bas) afin d'effacer tous les chiffres au-dessus de celui qui vient d'être entré. La réalisation physique de l'entrée des données consiste à appuyer sur une touche de chiffre décimal appropriée : O, 1, 2, 3, 4, 5, 6, .7, 8, 9, qui, lorsqu'il est codé en nombre binaire, est autorisé à passer aux conducteurs de communication et, par llintermé- diaire de la section arithmétique, est stocké dans la mémoire, section de stockage temporaire 00000. Le sous-programme pour cette opération est défini par le tableau de sous-programmes d'entrée des données. Une piste spéciale est conservée pour la virgule pendant l'entrée des données. En principe, lorsque la touche est pressée, la virgule est d'abord stockée dans le circuit basculeur RS 45 et ensuite décalée avec l'entrée des chiffres pour être positionnée correctement par le circuit compteur de virgules 44. La sortie de ce compteur est amenée à la section d'affichage à des fins d'affichage. On va maintenant décrire le chargement de la section de mémoire. Selon la commande des programmes, N2, on utilise un sous-programme à deux pas spécial pour transférer les données de la section de mémoire 00000 à la section prédéterminée f, 1 ou t dans la mémoire. Le premier pas dans ce sous-programme consiste à mettre le nombre entré dans une forme standard : XX, XX pour f ou L et XXX,X pour t. La standardisation consiste à décaler vers la gauche le nombre (tableau d'entrée des données) jusqu'à ce que la décimale apparaisse à l'endroit voulu. Le deuxième pas est effectué selon les sous-programmes de transfert représentés dans les tableaux donnés plus haut, en fonction du bouton enfoncé. Ce deuxième pas remet également à zéro le compteur de chiffres et le compteur de virgules, comme stade préparatoire pour les entrées futures. L'enregistrement du chargement t, f et L est conservé par les trois bascules RS 46, 47 et 48. La dernière donnée entrée peut etre effacée en enfonçant la touche CE (effacer l'entrée). Les opérations internes consistent à utiliser des procédures établies pour t, f, , un zéro étant entré en mémoire (aucune touche de chiffre n'est enfoncée) en même temps qu'on remet à zéro le compteur de chiffres et le compteur de virgules pour préparer l'entrée du premier chiffre. L'affichage est déclenché en enfonçant un nombre quelconque ou SR, et est effacé en enfonçant une touche f, t ou L. Une bascule RS est utilisée dans ce but pour enregistrer la dernière touche pressée. La sortie de ce circuit basculeur 51 est amenée à l'affichage. En enfonçant la touche SR, l'opération peut commencer si les trois variables t, f et L sont entrées, au moins une fois chacune. La dernière est enregistrée. Si une quelconque ou plusieurs des variables n'est pas enregistrée et manque, l'affichage montre ceci : 1111 = f manque 2222 = L manque 3333 = t manque. Cet affichage n'est visible que lorsque le bouton SR est maintenu enfoncé. Dans le cas où les trois variables manquent, l'affichage montre 1111; si L et t manquent, l'affichage montre 2222. Toutes les variables étant stockées, une pression sur la touche SR déclenche l'opération Déclenchement = SR (ftL) L'affichage clignote pendant la marche et, lorsque l'opération est terminée, l'affichage du nombre devient fixe. Opérations du micro-calculateur dans son ensemble. Sous-programmes : Pas de programme 00000 : les données sont entrées en utilisant le sous-programme d'entrée des données indiqué dans le tableau par le sous-programme d'entrée des données combiné avec le sous-programme de transfert pour 00100 pour f, le sous-programme de transfert pour 01000 pour L ou le sous-programme de transfert pour 10000 pour les sections t. SOUS-PROGRAMME DE TRANSFERT POUR 00100 Adresses de Commandes de Polarisation Commandes Intervalles mémoire la mémoire des omnibus arithmétiques A4A3A2A1A0 WE RE B32B1Bo I/NI REPORT COUT T1 T2 00000 1 1 --- 1 1 X X 1 0 00100 0 X 0000 1 X X 0 1 00001 1 1 - - - - 1 X X 1 0 00101 0 X 0000 1 X X O 1 O 0 O 10 1 1 - - - - 1 X X 1 0 0 O 1 1 0 0 X O O O 0 1 X X O 1 00011 1 1 ---- 1 X x 1 0 00111 0 X 0000 1 X X O 1 SOUS-PROGRAMME DE TRANSFERT POUR 01000 00000 1 1 ---- 1 X X 1 0 01000 0 X 0000 1 X X 0 1 00001 1 1 ---- 1 X X 1 0 01001 0 X 0000 1 X X 0 1 00010 1 1 ---- 1 X X 1 0 01010 0 X 0000 1 X X O 1 00011 1 1 ---- 1 X X 1 0 01011 0 X 0000 1 X X O 1 SOUS-PROGRAMME DE TRANSFERT POUR 10000 00000 1 1 ---- 1 X X 1 0 10000 0 X 0000 1 X X O 1 00001 1 1 --- 1 1 X X 1 0 10001 0 X 0000 1 X X O 1 00010 1 1 ---- 1 X X 1 0 10010 0 X 0000 1 X X O 1 00011 1 1 ---- 1 X X 1 0 10011 0 X 0000 1 X X O 1 Pas de programme 00001 : sous-programme d'effacement pour 10000, opération d'un cycle. SOUS-PROGRAMME D'EFFACÉMENT POUR 00000 Adresses de Commandes de Polarisation Commandes Intervalles mémoire la mémoire des omnibus arithmétiques A4A3A2A1A0 WE RE B B B B I/NI REPORT COUT T1 T2 4321/00000 X X 321/0000 1 X X 1 0 00000 O X 0000 1 X X O 1 00001 X X 0000 1 X X 1 0 O O O 0 1 O X O O O O 1 X X 0 1 00010 X X 0000 1 X X 1 0 00010 0 X 0000 1 X X O 1 00011 X X 0000 1 X X 1 0 00011 0 X 0000 1 X X O 1 Pas de programme 00010 : sous-programme d'effacement pour l'opération de deux cycles. SOUS-PROGRAMME D'EFFACEMENT POUR 11000 et 11100 11000 X X 0000 1 X X 1 0 11000 0 X 0000 1 X X O 1 11001 X X 0000 1 X X 1 0 11001 0 X 0000 1 X X O 1 11010 X X 0000 1 X X 1 0 11010 0 X 0000 1 X X 0 1 1 1-0 1 1 X X O O O O 1 X X 1 0 11011 0 X 0000 1 X X 0 1 11100 X X 0080 1 X X 1 0 11100 0 X 0000 1 X X O 1 11101 X X 0000 1 X X 1 0 11101 0 X 000 1 X X Q 1 1.1 1 1 1 X X O O O O I X X 1 0 11111 O X 0000 1 X X O 1 Pas de programme 00011 : sous programme de multiplication comme indiqué ci-après. Ce sous-programme comporte quatre cycles répétitifs. La répétition est conditionnelle.LOrsqu'un report égal 1 est obtenu pendant le quatrième cycle, ensuite la multiplication est terminée et le programme est avancé au sous-programme suivant. SOUS-PROGRAMME DE MULTIPLICATION POUR 00100, 11000 et 11100 Adresses de Commandes de Polarisation Commandes Intervalles mémoire la mémoires des omnibus arithmétiques A4A3A2A1A0 WE RE B3B2B1B0 I/NI REPORT COUT 1 2 00100 1 1 ---- 1 x x 1 0 11000 0 1 ---- 1 1 x O 1 00101 1 1 ---- 1 x x 1 0 11001 0 1 ---- 1 1 x O 1 00110 1 1 ---- 1 x x 1 0 11010 0 1 ---- 1 1 x O 1 00111 1 1 ---- 1 x x 1 0 11011 0 1 ---- 1 1 x O 1 11100 1 1 ---- 1 x x 1 0 11100 O x 0000 1 1 x O 1 11101 11 ---- 1 X X 1 0 11101 0 x 0000 1 1 x O 1 11111 1 1 ---- 1 x x 1 0 11111 0 x 0000 1 1 x O 1 00000 1 1 ---- 1 x x 1 0 00000 0 O 0001 1 1 x O 1 00001 1 1 ---- 1 x x 1 0 00001 0 x 0000 1 1 x O 1 00010 1 1 ---- 1 x x 1 0 00010 0 x 0000 1 1 x O 1 00011 1 1 - - - - 1 x x o O 00011 O x 0000 1 1 x O 1 00011 1 x xxxx 1 x x 1 0 00011 1 x xxxx 1 x x O 1 00010 1 x xxxx 1 x x 1 0 00010 1 x xxxx 1 x x O 1 00001 1 x xxxx 1 x x 1 0 00001 1 1 0x00 1 x x O 1 00000 1 1 ---- 1 x x 1 0 O O O O O 1 0 0100 1 o (1) o 1 Pas de programme 00100 : décalage vers la gauche de deux cycles. SOUS-PROGRAMME DE DECALAGE POUR 11000 et 11100 Adresses de Commandes de Polarisation Commandes Intervalles mémoire la mémoire des omnibus arithmétiques A4A3A2A1A0 WE RE B3B2B1BO I/NI REPORT COUT 1 2 11110 1 1 ---- 1 X X 1 0 11111 0 1 0000 1 X X O 1 11101 1 1 ---- 1 X X 1 0 1 1 1 1 0 0 1 0 0 0 0 1 X X 0 1 11100 1 1 ---- 1 X X 1 0 11101 o 1 0000 1 X X O 1 11011 1 1 ---- 1 X X 1 0 11100 0 ' 0000 1 X X O 1 11010 1 1 ---- 1 X X 1 0 11011 0 1 0000 1 X X O 1 11001 1 1 ---- 1 X X 1 0 11010 0 1 0000 1 X X O 1 11000 1 1 ---- 1 X X 1 0 11001 0 1 0000 1 X X 0 1 11x11 1 1 0000 1 X X 1 0 11000 0 1 0000 1 X X O 1 Pas de programme 00101 : sous-programme de complémentation, opération de deux cycles. SOUS-PROGRAMME DE COMPLEMENTATION POUR 11000 et 11100 11000 1 0 0100 X O X 1 0 11000 0 1 ---- O O X O 1 11001 1 0 0100 X 0 X 1 0 11001 0 1 ---- O O X O 1 11010 1 0 0100 X O X 1 0 11010 0 1 ---- 0 O 0 X 0 1 11011 1 0 0100 X O X 1 0 11011 0 1 ---- 0 O X g 0 1 11100 1 0 0100 X O X 1 0 11100 0 1 ---- O O X 0 1 11101 1 0 0100 X O X 1 0 11101 0 1 ---- O O X O 1 11110 1 0 0100 X O X 1 0 11110 0 1 ---- O O X O 1 11111 1 1 0100 X O X 1 0 11111 0 1 ---- O 1 X O 1 Pas de programme 00110 : ajouter en utilisant le sous-program me de multiplication, mais limiter à une seule opération de deux cycles, les deux premiers cycles A4A3A2 (T1) = 010. Pas 00111 : Comme 00001. Pas 01000 : Comme le pas 00100. Pas 01001 : Diviser comme indiqué ci-dessous. Ceci est une opération de trois cycles, mais répétitive jusqu'à ce qu'un report de dépassement COUT = 1 soit détecté à la fin du deuxième cycle, auquel cas le programme saute au sous-programme suivant. SOUS-PROGRAMME DE DIVISION POUR 10000 et 11000 et 111000 Adresses de Commandes de Polarisation Commandes Intervalles mémoire la mémoire des omnibus arithmétiques A4A3A2A1Ao RE B3B2BlBO I/NI REPORT COUT T1 T2 10000 1 1 -- 1 - 1 X X 1 0 11000 0 1 ---- 1 1 X O 1 10001 1 1 ---- 1 X X 1 0 11001 0 1 ---- 1 1 X O 1 10010 1 1 ---- 1 X X 1 0 11010 o 1 ---- 1 1 X O 1 10011 1 1 ---- 1 X X 1 0 11011 0 1 ---- 1 1 X O 1 11100 1 1 ---- 1 X X 1 0 11100 0 X 0000 1 1 X O 1 11101 1 1 ---- 1 X X 1 0 11101 0 X 0000 1 1 X O 1 11110 1 1 ---- 1 X X 1 0 11110 0 X 0000 1 1 X O 1 11111 1 1 ---- 1 X X 1 0 1 1 1s1 1 0 X O O O O 1 1 (1) o 1 00000 1 1 ---- 1 X X 1 0 00000 O O 0001 1 1 X O 1 00001 1 1 ---- 1 X X 1 0 00001 0 X 0000 1 1 X O 1 00010 1 1 ---- 1 X X 1 0 00010 0 X 0000 1 1 X O 1 00011 1 1 ---- 1 X X 1 0 00011 0 X 0000 1 1 X O 1 Pas 01010 : Transférer selon le sous-programme de transfert pour 00100, opération d'un cycle. Pas 01011 : Comme 00001. Pas 01100 : Comme 00010. Pas 01101 : Comme 00011. Pas 01110 : Comme 00110, limité aux deux premiers cycles. Pas 01111 : Décalage vers la droite comme indiqué ci-dessous, deux cycles. SOUS-PROGRAMME DE DECALAGE VERS LA DROITE POUR 11000 et 11100 Adresses de Commandes de Polarisation Commandes Intervalles mémoire la mémoire des omnibus arithmétiques A4A3A2A1A0 WE RE B3B2BlBO I/NI REPORT COUT T1 T 43210/11001 11 3210/@@@@ 1 x 00/X 1/1 $0 11000 0 1 0000 1 X X O 1 11010 1 1 ---- 1 X X 1 0 11001 0 1 0000 1 X X O 1 11011 1 1 ---- 1 X X 1 0 11010 0 1 0000 1 X X O 1 11100 1 1 ---- 1 X X 1 0 11011 O 1 0 0 0 0 1 X X O 1 11101 1 1 ---- 1 X X 1 0 1 1 1'0 0 0 1 0 0 0 0 1 X X O 1 11110 1 1 ---- 1 X X 1 0 11101 0 1 0000 1 X X O 1 11111 1 1 ---- 1 X X 1 O 11110 0 1 0000 1 X X 0 1 11x00 1 1 0000 1 X X 1 0 11111 0 1 0000 1 X X 0 1 Pas 10000 : Comme 01111. Pas 10001 : Comme 00110. Pas 10010 : Comme 00101. Pas 10011 : Comme 00110, sauf que A4A3A2(T1) = 011. Pas 10100 : Comme 00001. Pas 10101 : Comme 00100. Pas 10110 : Comme 00100. Pas 10111 : Comme 00100. Pas 11000 : Comme 00100. Pas 11001 : Comme 01001, sauf que A4A3A2 (T2) = 101. Pas 11010 : Comme dans le sous-programme de multiplication, mais l'opération est limitée à l'opération du premier cycle, avec l'adresse de mémoire AzA3A2 = 000. Pas 11011 : Comme 01111, mais limité à une opération d'un cycle avec A4A3A2 = 000. Pas 11100 = Stop. Le micro-calculateur est construit en utilisant des composants disponibles, de la famille logique standard TTL série SN7400. La construction est réalisée sur deux plaquettes, d'une dimension approximative de 210/280 millimètres, avec un affichage par diodes électroluminescentes et des touches sur un module séparé. On utilise une batterie portative comme unité de puissance. Bien que l'invention ait été décrite en se reportant à une équation mathématique particulière pour calculer un classement de vitesse étant donné des données d'entrées spécifiées, l'invention peut également être utilisée pour d'autres équations pour calculer des classements de vitesse, ou bien on peut utiliser le procédé selon l'invention pour calculer d'autres résultats qu'à classements de vitesse. Bien que la présente invention ait été décrite en se reportant à des réalisations préférées de celle-ci, il est bien entendu qu'on peut apporter divers changements dans la forme et par l'application du calculateur électronique de classement de vitesse ainsi que dans le procédé, sans s'écarter de l'esprit ou du domaine de l'invention. REVENDICATIONS 1.Calculateur électronique pour détermination d'un classement des participants à une épreuve sportive en fonction de leurs performances antérieures, caractérisé en ce qu'il comporte un premier registre pour stocker un signal indicatif d'une distance prédéterminée, un deuxième registre pour stocker un signal indicatif du participant considéré, un troisième registre pour stocker un signal indiquant le temps mis par le vainqueur pour parcourir la distance prédéterminée, des moyens pour accéder au signal provenant du premier registre, des moyens pour accéder sélectivement au signal provenant du deuxième registre et des moyens de soustraction pour retrancher le signal provenant du deuxième registre du signal provenant du premier registre, des moyens de division pour diviser le résultat de la soustraction précitée par le signal provenant du troisième registre, une première mémoire pour procurer sélectivement un signal indicatif d'un facteur constant, des moyens de multiplication pour multiplier le signal provenant du premier registre par le signal provenant de la première mémoire, et des moyens pour ajouter le résultat de cette multiplication au résultat de la division précédente pour déterminer un classement. 2. Calculateur selon la revendication 1, caractérisé en ce qu'il comprend un deuxième registre pour stocker sélectivement un signal indicatif de la distance à laquelle le participant considéré se trouvait derrière le vainqueur lorsque ce dernier a parcouru la distance prédéterminée. 3. Calculateur selon la revendication 1, caractérisé en ce qu'il comprend des moyens pour accéder à une autre constante et soustraire cette constante de l'addition précitée, cette constante étant basée sur l'intersection par l'axe des ordonnées de la pente d'une ligne qui forme la relation linéaire entre la vitesse et la distance pour un classement égal à 0. 4. Calculateur selon la revendication I, comprenant des moyens pour accéder à une autre constante basée sur un classement particulier et diviser le résultat de cette soustraction par la constante précitée. 5. Calculateur pour déterminer un classement pour un participant dans une épreuve sportive, caractérisé en ce qu'il comporte des premiers moyens pour déterminer la vitesse moyenne du participant sur une distance prédéterminée et des seconds moyens pour ajouter un facteur basé sur la distance prédéterminée de l'épreuve. 6. Calculateur selon la revendication 5, caractérisé en ce qu'il comporte des troisièmes moyens pour ajouter un facteur constant pour déterminer un classement de base. 7. Calculateur selon la revendication 6, caractérisé en ce qu'il comporte des quatrièmes moyens pour diviser le résultat des trois premiers moyens par une constante. 8. Calculateur selon la revendication 7, caractérisé en ce que les premiers moyens comportent la distance prédéterminée moins la distance à laquelle l'engagé considéré se trouvait derrière le vainqueur lorsque ce dernier a parcouru la distance prédéterminée, divisée par le temps mis par le vainqueur pour parcourir la distance prédéterminée. 9. Calculateur selon la revendication 8, caractérisé en ce que les seconds moyens comportent la distance prédéterminée multipliée par un facteur constant, lequel facteur est basé sur la pente d'une ligne qui forme la relation linéaire entre la vitesse et la distanc pour un classement particulier. 10. Calculateur selon la revendication 9, caractérisé en ce que la constante des troisièmes moyens est déterminée en déterminant le résultat des premiers et des seconds moyens et en retranchant la constante du troisième moyen de ce résultat de telle sorte que le résultat final ait une valeur prédéterminée pour une classe prédéterminée de participants. 11. Calculateur selon la revendication 10, caractérisé en ce que la constante des quatrièmes moyens est déterminée de telle sort que le résultat des trois premiers moyens, divisé par la constante, fait que le classement est une valeur déterminée pour une classe prédéterminée de participants. 12. Calculateur selon la revendication 1, caractérisé en ce qu'il fonctionne selon la relation SR - (60f - L)/t + 0,07f - 4,92 0,008 dans laquelle f est la distance prédéterminée de la course (exprimée en furlongs) et L est la distance (exprimée en longueurs) à laquelle le participant se trouve derrière le vainqueur, et t est le temps (en secondes) du vainqueur pour accomplir la course sur la distance prédéterminée. 13. Calculateur selon la revendication 12, caractérisé en ce que les participants sont des chevaux et que la course est une cour se de chevaux. 14. Calculateur pour déterminer un classement pour un parti cipant dans une épreuve de vitesse, caractérisé en ce qu'il comporte des moyens pour procurer une relation linéaire entre la vitesse moyenne d'une multiplicité d'individus ayant une caractéristique commune dans une épreuve de vitesse sur des distances prédéterminées et des moyens pour employer cette relation linéaire pour déterminer le classement de vitesse d'un engagé dans une épreuve de vitesse. 15. Calculateur pour déterminer un classement pour un participant dans une épreuve de vitesse, caractérisé en ce qu'il comporte des moyens pour fournir le temps qu'un engagé met dans une épreuve de vitesse pour couvrir une distance prédéterminée, des moyens pour fournir la distance couverte, des moyens pour déterminer le classement de vitssse en prenant en considération la relation linéaire entre la vitesse moyenne et la distance dans une épreuve de vitesse. 16. Calculateur selon la revendication 15, caractérisé en ce qu'il comporte des moyens pour fournir la distance à laquelle le participant est derrière le vainqueur pour déterminer le classement du participant. 17. Calculateur selon la revendication 16, caractérisé en ce qu'il comporte des moyens pour ajouter un facteur constant pour déterminer un classement de base. 18. Calculateur selon la revendication 17, caractérisé en ce qu'il comporte des moyens pour multiplier la distance prédéterminée par un facteur constant, le facteur constant étant basé sur la pente d'une ligne qui forme la relation linéaire entre la vitesse et la distance pour un classement particulier. 19. Calculateur selon la revendication 18, caractérisé en ce que le résultat est une valeur prédéterminée pour une classe prédéterminée de participants. 20. Calculateur selon la revendication 1, caractérisé en ce qu'il fonctionne selon la relation (60f - L)/t + 0,07f - 4,92 O, = o, 008 dans laquelle f est la distance prédéterminée de la course (exprimée en furlongs) et L est la distance (exprimée en longueurs) à laquelle le participant se trouve derrière le vainqueur, et t est le temps (exprimé en secondes) du vainqueur pour accomplir la course sur la distance prédéterminée. 21. Calculateur selon la revendication 20, caractérisé en ce que les participants sont des chevaux et que la course est une course de chevaux.