FR 2557713 A1 19850705 FR 8319467 A 19831206 La présente invention se rapporte au domaine des calculateurs numériques et concerne en particulier les microcalculateurs ou micro-ordinateurs dotés de possibilités d'aiiichage vidéo, de lecture de clavier et de connexion avec des magnétoptiones. Les quelques dernières années ont montré l'intér8t du public et de l'enseignement pour des calculateurs et microordinateurs de faible prix mais ayant de bonnes performances. Pour pouvoir allier ces deux critères, il faut faire preuve d'ingéniosité afin de pouvoir utiliser des éléments faisant normalement partie de tout foyer susceptible d'utiliser un micro-ordinateur, Ainsi, le téléviseur peut faire office de terminal vidéo et le magnétophone peut servir de mémoire de masse permettant de stocker des informations afin de pouvoir les récupérer aisément. De plus, un tel système doit être suffisamment universel afin de pouvoir s'adapter aux multiples applications auxquelles les utilisateurs les destinent. Un tel micro-ordinateur doit donc être capable de généré rer des signaux d'images compatibles avec les téléviseurs aux normes du pays concerné et doit pouvoir coder et décoder des informations afin de les mémoriser sur la plupart des magnétophones que l'on peut trouver dans le commerce avec lesquels il doit pouvoir se connecter grtce à des interfaces compatibles. De plus, pour permettre son utilisation immé- diate, il doit être doté d'un langage de programmation répandu et facilement assimilable, par exemple le BASIC, Afin qu'il ne soit pas limité dans ses performances et pour le rendre attractif auprès de la clientèle visée, le langage de programmation propre au microprocesseur utilisé doit être facilement accessible. Ces deux langages devant être résidents. Pour pouvoir allier ces performances aux critères de coût, il est nécessaire d'utiliser un microprocesseur peu coûteux et d'optimiser ses performances gracie à des montages électroniques astucieux. Ces montages pouvant être soit indépendants, soit commandés par des signaux générés par un logiciel spécifique associé au microprocesseur. Ce logiciel devant Qbligatoirement être résident, donc implanté dans des unités de stockage de type mémoire morte. Comme on le verra plus loin, le micrc-ordinateur décrit ici convient de manière idéale aux applications grand public et à l'enseignement. Il offre une large gamme de possibilités non limitatiyes dont l'affichage de caractères alphan mériques et graphiques, le transcodage d'informations pour une connexion à un magnétophone à cassettes, un langage de programmation de type BASIC facilement accessible et, poe- sibilité que l'on ne trouve pas dans les micro-ordinateurs de techniques antérieures destinés aux types d'applications décrites auparavant, l'accès facile au langage machine propre au microprocesseur utilisé. De plus ce micro-ordinateur est conversationnel en français et peut être adapté à d'autres langues. La figure 1 représente le schéma synoptique de l'archi- tecture matérielle complète du micro-ordinateur suivant l'invention décrite ci-après. Le schéma de montage de la figure 2 représente les interconnexions et les moyens logiques associés afin de pouvoir utiliser la mémoire morte conformément à l'intention décrite. les figures 3 et'4 représentent le sous système d'afin chage du micro-ordinateur suivant l'invention. La figure 3 est un schéma de montage représentant les cirnuits de génération du signal vidéo. La figure 4 est le schéma de montage des circuits destinés à produire le signal de synchro-ligne dont la iorme d'onde est représentée en figure 5. La figure 6 représente le principe de matrice d'affin chage d'un caractère destiné à l'écran. La figure 7 indique l'organisatiôn d'un octet dont les bits sont utilisés pour la traduction d'une touche appuyée sur le clavier en un code représentatif d'un caractère ou d'une fonction. Les figures 8a et 8b représentent la suite des inatru- ctions contrôlant le matériel afin de générer un affichage sur l'écran. L'organisation de la matrice des touches du clavier, en QWERTY ou AZERTY, est présentée en figure 9. Ce clavier est scruté par la suite des instructions de la figure 10 afin de produire un code qui, après traitement par la suite des instructions des figures 12, 13a, {)b, 13c et grâce au tableau de la figure 14, permet de créer un nouveau/signifi- catit de la touche appuyée conformément aux tableaux des figures lia et iib. La figure 15 montre la procédure de sauvegarde des informations sur une cassette via l'interface de la figure 16. Cette sauvegarde se fait en produisant des signaux conformes aux figures 19 et 20 contrôlés par la suite des instructions des figures 17 et 18. Bien que la description soit faite en faisant référence à un type déterminé de microprocesseur, il apparaîtra clairement au spécialiste de cette technique que les concepts inventifs décrits ici peuvent être utilisés avec d'autres microprocesseurs. Bati autour d'un microprocesseur 301, aussi appelé 018, de type Z80 et pour lequel tous les signaux sont figurés, le système représenté en figure 1 comprend un bus d'adresses 302 composé des lignes AO à A15 issues de 30t, d'un bus de données 303 qui, après passage dans le bloc bidirectionnel BOT, prend le nom B04 afin d'être relié à de la mémoire de type RAM 306 et de type ROM 307 ainsi qu'à un registre tampon 308. La mémoire de type ROM stocke des programmes et des données dont une partie sera expliquée par la suite. Le bus B02 et les signaux ED, WR, MREQ issus de 301 sont présentés à un décodeur 309 pour adresser la mémoire RAM 306, à un décodeur 310 pour générer des signaux qui sont présentés à un multiplexeur B11, et à un décodeur B12 qui, grâce à IORQ issu de B01, permet de sélectionner au choix les circuits de contrôle d'entrée-sortie B21 du clavier, de l'interface cassette B20, et des interfaces de génération des signaux de synchro B16 et vidéo B18 destinés à un écran à tube cathodique. La mémoire morte 307 est adressée par un multiplexeur Biî dont les entrées proviennent soit de 310 ou soit d'un compteur par huit 313 et du registre tampon B08 selon la valeur du signal RFSH issu de 301. Un oscillateur 314, qui peut être contrôlé par un quartz, produit des signaux à une fréquence de l'ordre de 6,5 Yhz destinés à la génération du signal vidéo et à un diviseur par deux, 315, afin de générer l'horloge # de 301 et de piloter la génération des signaux de vidéo et de synchro-ligne gracie à B16 qui, lui-même, contre le compteur 313, le circuit 317 de génération des signaux NMI et WAIT ainsi que le bloc 320 pour produire un signal vers la cassette. Le signal vidéo, issu de B18, est généré grâce à une information présente sur Bo3, quand les portes à collecteur ouvert symbolisées par 319 le permettent, et à un bit issu du tampon B08, contrôlé lui-même par ce bloc de génération de vidéo. Les signaux MICRO destinés à la cassette et ECOUTEUR provenant d'un magnétophone sont contrôlés par B20 qui utilise le signal de synchro-ligne et le bus B03. Enfin, le clavier est décodé par B21 grâce à un bus B22 et au bus B23 provenant de 312. La figure 2 montre les différentes manières dont les mémoires mortes 307 sont adressées. Dans le but de prévoir l'avancement de la technologie et de faciliter l'industrialisation, le décodage est fait de sorte qu'il soit possible de connecter deux mémoires ROM ou RKPROM de 8 Kilo-octets chacune ( la première,CI5, à partir de l'adresse 0000R et la seconde, CIX, à partir de l'adresse 2000H ) ou bien une seule mémoire morte CI5 de 16 Kilo-octets. La sélection des types de mémoires choisis se fait à l'aide de connexions qu'il faut établir entre des points bien déiinis.Ainsi, il faut relier a à c si deux mémoires de 8 Kilo-octets sont utilisées ou bien a à b si le choix d'une seule mémoire de 16 Kilo-octets a été fait. Si CIT est du type ROM 8 Eilo- octets, il faut établir les liaisons m-p, d-e, g-h. Si cette mémoire est du type REPROM de même capacité, il faut réunir m-n, d-f, g-i, j-l. Afin, dans le cas d'une seule mémoire de 16 Kilo-octets, CIX n'étant alors pas utilisée, il faut relier : m-n, d-f, g-i, j-k. Le choix d'une ROM de 8 Kilooctets pour CI6 implique les liaisons u-w, q-r ; le cas d'une REPROM étant sélectionné par les liaisons u-v, q-t. Cette figure montre aussi clairement que les adresses fournies aux mémoires CI5 et CI6 peuvent avoir deux origines possibles multiplexées par les circuits CI1, CI2 et CI3 correspondant au bloc B11. Lorsque le signal RFSH, généré par le microprocesseur, est au niveau logique 1, l'adresse est fournie directement par ledit microprocesseur ::les lignes AO à A9 sont sélectionnées par les trois multiple xeurs, les lignes A10 à A12 sont présentées directement aux mémoires et il faut que les portes logiques 201, 202 et 203 vérifient l'équation A15+A14+EREQ=O afin d'imposer un niveau bas sur certaines entrées de CI5 via CIt. Dans ce cas, lorsque la ligne A15 est au niveau bas, la mémoire CIS est sélectionnée alors que les portes 204 et 205 imposent un niveau haut sur deux entrées de CI6 pour ne pas sélectionner ce circuit. Quand A13=1, seule la mémoire CI6 est choisie. Quand RF#=O, ce qui ne se produit que pendant les deux dernières périodes d'horloge du microprocesseur lors de la recherche d'une instruction, les trois multiplexeurs sélectionnent douze autres lignes pour adresser les mémoires CI5 et CI6. Il sera vu plus loin que cet adressage servira à l'acquisition d'une information nécessaire à la génération du signal vidéo.Simultanément, le contenu du registre I du microprocesseur, chargé par programme par la valeur prédé finie #CH, est présenté sur les lignes A15 d du bus 302 finie 1CH, est présenté sur les lignes A15 à A8/Les emcpees Ai et A2 de CII étant respéctivement aux niveaux logiques O et 1, seule la mémoire CI5 est sélectionnée et est adressée par 213=0, Ai2=i, Aii=1, A10=1. Les signaux arrivant aux entrées A3 à A9 de CI5 sont issus du circuit CI4, bloc B0B, dans lequel a été stocké auparavant le code du caractère à afficher selon un processus qui sera expliqué par la suite. Enfin, les entrées A0 à A2 de CI5 sont reliées à un compteur par huit, CI7 (bloc 313 ), qui peut Stre initialisé par SRO et incrémenté par SYNC, inverse du signal SYNCERO-LIGNE, afin de faire varier l'adresse de la mémoire dans le but de poin- ter consécutivement les huit lignes composant la matrice d'affichage du caractère dont le code est mémorise dans CI4. Le changement du choix d'une ligne parmi huit est donc fait à chaque ligne d'écran nouvelle demandée par le signal SYNCHRO-IIGNE. Ce procédé permet d'adresser une zone mémoire comprise entre les bornes 1000H et 1#F#I incluses où se situent l'ensemble des 128 matrices d'affichage des caractères. Pour un code de caractère donné, l'adresse du début de sa matrice se trouve par la formule : lCOOR+( 8x code ).# La prise des huit lignes de la matrice se fait grâce au compteur CI7 incrémenté par le signal SYNC à chaque nouvelle ligne affi chée sur l'écran. Par exemple, la matrice du caractère "A", montrée en figure 6 et dont le code est 41R car codé en ASCII, se situe des adresses lEO8H à 1EOFH. Chaque bit des huit octets indique si le point doit être allumé ou éteint sur l'écran. Les circuits servant à générer le signal vidéo sont représentés en figure 3 où seuls les signaux nécessaires à l'explication sont représentés. Lors de cette génération, il sera vu plus loin que le bit A15 du bus d'adresses est imposé à l'état haut et les bits A14 à AO contiennent l'adresse du code du caractère à afficher. Le microprocesseur C18 rentre dans le cycle de recherche d'instruction pendant lequel M1=0 durant les deux premières périodes de l'horloge qui pilote le microprocesseur. Dans le cas oh le code du caractère est différent de liii 1111 en binaire, soit FFH en hexadécimal, l'équation ((FO.F1.F2 .F3.F4,PS,E#6.F7) . HALT ) . A15 + M 1 , vérifiée par les portes logiques 301 à 304, donne la valeur logique t qui, présentée aux huit inverseurs à collecteur ouvert/20 , àfCJr2c# les huit bits DO à D7 du bus de données du microprocesseur à l'état bas grace aux résistances de rappel RR2 ( bloc 305 ). Ainsi, le microprocesseur lira 00 comme code d'instruction, c'est à dire l'instruction NOP qu'il exécutera et qui dure quatre périodes d'horloge. Dans la suite, une période d'horloge sera appelée 2. Le fichier d'affichage se trouve en mémoire vive pour laquelle le bit A15 n'est pas décodé. Ainsi les bits AO à A14 adresses réellement le code du caractère à afficher qui se trouve alors présenté sur le bus PO à F7, 304, et qui est mémorisé dans le registre CI4 ( figure 2 ) en tout début de la troisième période d'horloge T grâce à SLE=MBEQ.RFSE.T=O comme le vérifient les portes 305 et 304. Pendant les deux dernières périodes d'horloge des quatres nécessaires à l'exécution de cette instruction NOP, le signal RFSH est au niveau bas et permet ainsi d'adresser la ROM ( figure 2 ) avec l'adresse de la matrice du caractère. L'octet contenu à cette adresse, représentant une ligne sur les huit affichables, est alors lu et présenté sur les lignes F0 à F7 ainsi que sur les entrées DO à D7 de CI8 via les résistances FR2 et PO à P7 de CI9 car, lors de ces deux dernières périodes d'horloge, M1 est imposé au niveau haut enlevant ainsi l'inhibition qui forçait des 0 sur le bus 303 Lors de la dernière demi-période.du cycle d'exécution du NOP, le signal MREQ est au niveau haut.Le décodage par les portes 307 et 308 de la sortie Q du tampon CI13, mémori sée à 0 par SLE auparavant, DIREZ et une impulsion brève donnée par CI12 permet de mémoriser, par SL=O, dans le registre à décalage CI9 l'octet représentant une ligne à afficher Simultanément et gracie aux portes 309, 310 et 313, le bit de poids fort du code, CI407 provenant de CI4, est mémorisé par la bascule RS constituée des portes 311 et 312. Ce signal sera utilisé pour générer une inversion éventuelle du signal vidéo pour ce caractère. Les huit impulsions de décalage du registre CI9 sont générées par CI10 à la fréquence de l'ordre de 6,5 Mhz lors de l'exécution de l'instruction suivante dont les quatre premiers cycles d'horloge du microprocesseur, à 3,25 Mhz car divisée par deux par CI11 ( bloc 315 ), servent à la recherche de l'instruction. Les impulsions de décalages sont générées grâce à la bascule CI10 de type D dont la sortie Q est reliée à l'entrée CLR, active au niveau bas. Ainsi, chaque front montant présenté sur l'entrée 0K provoque le passage de la sortie Q à 1, car D est constamment à , et de Q à 0 qui, présenté sur l'entrée CLR, force les sorties Q et Q respectivement à-O et 1.La durée brève de l'impulsion produite sur la sortie Q est très étroitement liée aux temps de propagations internes de la bascule utilisée. Tant que le bit A15 est au niveau haut, le système est fait de manière telle qu'il fonctionne comme décrit précédemment pour générer l'affichage en simulant la lecture d'un NOP sauf si le code réel lu et présenté sur BO-F7 est FFH. Dans ce dernier cas, détecté grâce à la porte à huit entrées 301, les niveaux bas ne sont plus imposés sur le bus DO-D7 et le code FRH est réellement lu par le microprocesseur qui exécutera ainsi l'instruction correspondante, soit RST38. Le signal vidéo issu de la sortie Q de CI9 peut être inversé grssce au OU EXCLUSIF 314 pour un caractère quelconque par le bit CI407, bit de poids fort du code de l'octet à afficher, ou bien à l'aide du OU EXCLUSIF 315 pour lten- semble de l'écran par la -sortie Q de la bascule CI14, initialisée à 1 par le REMET lors de la charge du condensateur C2 à travers la résistance R21, pouvant être modifiée pour chaque instruction provoquant ( IORQ+WR )+(A3+AO.A1.A2 ) = 1 et vérifiée par les portes 316 à 319. Ce qui se produit, par exemple, à l'exécution de l'instruction OUT #Q#7),Â. Le schéma de la figure 4 est le détail du bloc 316 et montre le fonctionnement de la génération du signal de SYN#0-LIGNE destiné à l'écran. Ce signal peut être généré par le matériel seul, SIM, ou bien être contrôlé par logiciel pour prendre le nom SIL ; le choix étant fait par multiplexage. Le signalSLM est construit à partir du signal inverse de l'horloge, de période T, du microprocesseur qui est divisée plusieurs fois par deux grâce aux compteurs binaires CI15 et CI16, Les 15ème et 208ème impulsions sont détectées par des portes afin de générer un signal durant 15 périodes d'horloge au niveau bas et 193 au niveau haut conforme à la figure 5. La 15ème impulsion, détectée par les portes 401 et 403, fait passer la sortie Q de CI17 au niveau haut et la 208ème, détectée par 402, réinitialise les compteurs et la bascule, grâce à l'inverseur 404, afin de générer un nouveau signal identique.Pour éviter tout aléa de fonctionnement, quatre inverseurs, 405 à 408, sont reliés à la sortie Q de CI17 afin de produire un retard dans le signal présenté sur la porte OU 409. Le signal SLL est commandé par le logiciel dont les instructions sont indiquées en figure 8a. L'ensemble de ce programme sera expliqué par la suite. Au commencement de l'exécution de ce programme, ayant pour origine l'adresse 0038E, les sorties Q de CI18, Q de CI19 et CI20 sont au niveau haut. Lors de l'exécution de l'instruction OUT (OFF),A la sortie IORQ passe au niveau bas après la huitième impulsion d'horloge et, étant connectée à l'entrée PRESET de CI18 active au niveau bas, provoque Q=0. Le signal M1 passe au niveau bas lors de la recherche de l'instruction DEC C et, après inversion par 410, force Q de 0119 au niveau bas. Le front descendant de Ml lors de la recherche de l'instruction JP MZ,INCER1 force la sortie Q de CI20, c'est à dire STT, au niveau bas réinitialisant ainsi Q de CI18=1 car SLL est connecté à l'entrée CIR de CI18 active au niveau bas. Que la condition testée lors de l'instruction JP NZ,INTER1 soit vérifiée ou non la durée de cette dernière est de lOT et une instruction qui dure ST, RET Z ou RET NZ, est toujours exécutée ensuite pendant laquelle la sortie Q de CI19 repasse à d car l'entrée CE de cette bascule est excitée par M1. Lors de l'instruction suivante, le front descendant de M1 fait repasser SLL au niveau haut. Ainsi, le signal SLL est au niveau haut pendant les deux premières instructions qui durent en tout 15T puis SLL=O pendant 15e. Le signal reste au niveau haut pendant la suite du programme qui,quelque soit la suite d'instructions exécutées, dure 31T car des instructions ne visant qu'à créer des retards sont exécutées dans la branche INTERI. Il sera vu par la suite que le JP (gL) se fait avec le bit de poids fort de H égal à 1 pour forcer Ai5=i afin de pouvoir générer le signal vidéo. Il a été vu que, dans ce cas, le microprocesseur exécute des instructions NOP, de durée 4T, pendant l'affichage des 34 colonnes qui constituent une ligne d'écran. Il rencontre ensuite l'instruction RST38, signifiée par F# et de durée 112. Cette dernière instruction fait ré-exécuter le programme de la figure Sa à partir de l'adresse 0038H. le temps écoulé entre deux exécutions est donc de 15T+15T+31T+( 4T x 34 )+l1t, soit 2881. Ainsi la forme et la durée des signaux 511 et SLM sont identiques et conformes à la figure 5. Il est à noter que, l'horloge du microprocesseur étant de l'ordre de 3,25 Mhz, les durées de 208T et 15T correspondent respectivement à des temps de 64 et 4,6 micro-secondes donc compatibles avec les types de signaux de synchro-ligne qu'un écran à tube cathodique peut recevoir. Le multiplexage entre SES et SLM est assuré par les deux ET 411 et 412 ainsi que le OU 413. La commande de ce multiplexeur est faite par la bascule RS constituée de 414 et 415, elle-m#me commandée par la logique qui détecte les instructions OUT (OFE),A et OUT (OFD),A par la vérification de l'équation WR+IORQ=O grâce à 416 combinée avec les bits ÂO à A3 du bus d'adresses reconnus par les portes 417 à 426. Quand l'instruction OUT CoFE),Â est détectée, le signal SIM est présenté sur l'entrée 0K de CI21 et le signal d'interruption NMI est généré vers CI8 à travers la porte OU 427. Quand l'instruction OUT (OFD),A est reconnue, le signal SIS sst sélectlonne et la sortie Q de CI21 est imposée au niveau haut afin d'inhiber par le OU 432 tout signal présent sur l'entrée CE de CI21 Jusqu'au prochain front montant donné par SIL, ceci pour éviter tout aléa de fonctionnement. Le signal SYNC ainsi produit sert à incrémenter le compteur de lignes CI7 ( figure 2 )et, après inversion par la porte 433, fournit le signal SYNCHRO-LIGNE pour l'écran. La remise à zéro du compteur C17 est assurée par SR0=1 quand l'équation LORQ+RD+AO=0 est vérifiée par les portes 41X, 428, 429 et la bascule RS constituée des portes 430 et 431.Ce dernier cas se produisant par exemple lors de l'exécution de l'instruction IN A,(OFE). Il sera vu par la suite que la parfaite synchronisation nécessaire entre les signaux SLM et SLL est assurée par logiciel. Le fichier contenant les codes des caractères à affi- cher se trouve en mémoire vive entre les adresses 4030E et 43BNH incluses. Le contenu de cette zone de 910 octets se décompose en 26 lignes de 35 caractères codés pour la plupart en ASCII. Le dernier caractère de chaque ligne est touJours le code FFE correspondant à l'instruction RST38 du microprocesseur Z80. Le principe d'affichage du caractère selon son code a été vu précédemment. La figure 8a donne la liste des instructions du programme, commençant à l'adresse 004tE, gérant la partie utile de l'affichage. Le registre HL est initialisé par adresse de la première case du fichier d'affichage, soit 4030E. Le bit 7 de H est positionné i 1 afin d'imposer A15=1 lorsque l'instruction JP (ifs) de l'adresse 0044E, qui provoquera ainsi PC=C030H, sera exécutée. Le registre B est initialisé par le nombre de lignes à afficher ( tAS=26) et le registre C par 8, représentant le nombre de lignes par matrice de caractère.Le signal de SYNCHRO de la ligne à afficher est envoyé par les instructions des lignes 0053H à 0057H qui générent une forme d'onde représentée en figure 5 car les temps d'exécution de ces instructions correspondent à ceux des lignes d'instructions du programme générant les signaux de SYNCHRO-LIGNE expliqués auparavant; les retards générés des lignes 0058H à 005AH servent à conserver une durée de 31f jusqu'au JP(HL) inclus. Cette dernière instruction, avec Hl=0030H, provoque A15=1 et les bits A14 à AO pointent l'adresse du premier code à afficher.L'exécution du code situé en 4030H provoque alors la mise à 0 des huit bits du bus de données du microprocesseur afin de simuler un NOP pour pouvoir générer l'affichage dont l'explication détaillée a été faite auparavant. Le compteur programme du microprocesseur s'incrémente automatiquement à chaque instruction NOP lue et pointe ainsi successivement les 34 codes des caractères affichables de la ligne, Lorsque le code FFE est lu, ce qui arrive après le 34ème code affichable, il est reconnu par la porte 301 et est interprêté comme étant le code de l'instruction RST38 qui provoque alors la mise automatique en pile de l'adresse suivant ce code et l1exécu- tion du programme de gestion des interruptions logicielles à l'adresse 0038E. Celui-ci commence par envoyer un nouveau signal de synchronisation pour la nouvelle ligne et décompte le nombre de lignes affichées sur les huit que comporte la matrice du caractère grâce à l'instruction DEC C. Tant que ces huit lignes ne sont pas affichées, le saut en INTERI permet, par l'instruction POP DE, d'annuler ce qui a été rangé en pile sans modifierELqui tient toujours l'adresse du début de la ligne en cours d'affichage.Après un retard généré par les lignes 0047H et 0048H afin de conserver toujours la durée de 208T entre deux signaux de synchronisation, un nouveau JP (HL) fait afficher la ligne suivante de la matrice car le signal de SYNCERO envoyé a incrément le compteur C17 (figure 2) ... et ainsi de suite jusqu'd ce que les huit lignes de la matrice soient affichées, ce qui est détecté par O50 à l'adresse 0033E. Dans ce cas, l'instruction POP HL a pour effet d'annuler l'adresse qui avait été sauvegardée en pile en réinitialisant EL par l'adresse du premier caractère de la ligne suivante éventuelle à afficher, décomptée pax B. Le compteur de lignes pour la matrice est réinitialisé à huit par l'instruction SET 3,C avant le JP (zL) qui continue l'affichage. Lorsque les 26 lignes sont affichées, ce qui se détecte par B=X, l'instruction RET Z située à l'adresse 0041H termine le programme d'affichage et fait continuer l'exécution à l'adresse OOB8H, c'est à dire après le CAIL I1LSPId#(fig. 8b). L'écran sur lequel l'affichage est produit est divisé en trois parties distinctes définies par le logiciel du micro-ordinateur. Dans le cas de l'utilisation d'un écran de 625 lignes, où seulement 312 sont utilisées, le logiciel produit un signal de synchro trame qui dure 2 lignes suivi de 63 lignes pour lesquelles la SYNCHRO -LIGNE est générée par le matériel grâce au signal SIM (figure 4). Ensuite les 26 lignes de caractères, composés chacun d'une matrice 8 x 8, sont affichées grtce au logiciel DISPLA ( 209 signaux de SYNCERO LIGNE sont alors produits par SLL ) et enfin, les 38 lignes restantes sont produites pendant lesquelles SIM génére la SYNCHRO-IIGNE. Un nouveau cycle recommence ensuite pour rafratchir l'image de l'écran. Ce rafratchissement est fait toutes les 20 ms. Un indicateur, représenté par le bit 3 d'une variable nommée SCRILS, permet de savoir Si le programme doit gérer la partie, sans affichage sur l'écran, haute ou basse afin de déterminer s'il faudra produire un affichage ou bien un signal de synchro-trame ensuite. Un registre 1' contient en permanence le nombre de lignes sans affichage restant à produire.A l'initialisation du système, le bit 3 de ECIEMP est positionné de sorte de simuler la fin de la génération de la partie basse de l'éeran et le registre 1' est redéfini à t afin de pouvoir produi#re le signal de synchro-trame dès que la première interruption il, qui a été autorisée auparavant, interviendra et fera exécuter le programme dont les instructions sont données en figure Sa et 8b. Ce programme, implanté à partir de l'adresse 0066H commence par décrémenter le compteur A' de lignes vides. Quand celui-ci est non nul, la partie vide de l'affichage n'est pas terminée et le programme s'achève par I'instruc- tion RETN afin de permettre la continuation de l'exécution du programme qui a été interrompu par Quand A'=O, l'exécution se poursuit en EMIOO1 oh le contexte du microprocesseur est sauvegardé. si le test situé aux adresses 0070H et 0074H indique que l'on vient de terminer la partie vide basse de l'écran, un saut est fait en NMI002 où les interruptions sont inhibées et où le registre A' et l'indicateur sont réinitialisés afin de pouvoir gérer la partie vide haute de l'écran lors de la prochaîne interruption NMI.La gestion du clignotement du curseur est ensuite effectuée avant de produire le signal de synchro-trame des adresses 00B2H à GOBIE. Puis la variable FRAMES, utilisée par la fonction PAUSE du BASIC, est décrémentée et est donc modifiée toutes les 20 ms Le contexte du microprocesseur est ensuite restitué avant d'autoriser à nouveau les interruptions NMI et de terminer le programme. Il est à noter que le module de gestion du clignotement du curseur dure toujours le même temps, que le bit de poids fort, significatif de la vidéo, soit complémenté ou non. Nécessaire pour une stabilité de l'affichage de l'image sur écran, ce temps constant est assuré par des retards produits en CURCL1 des adresses OOD2H à 0014E. Lors des 62 (-3ER) interruptions , pendant lesquelles la SYNCERO LIGNE est assurée par SIM, le programme s'vexé cutera jusqu!d l'adresse- 006GH. . A la 62 ème , la détection de-Â'=O provoque le saut en NMI001.La valeur du bit 3 de ECRIMP positionné auparavant permet de ne pas sauter en EMI002 et de continuer en séquence où A' est réinitialisé par 39 (-27H) pour la partie basse de l'écran. Afin d'as~ surer une parfaite synchronisation des signaux SLL et SLM, l'instruction HALT stoppe le microprocesseur qui ne recommenacera l'exécution qutaprès une interruption NMI (qui provoquera A'=38) 0 Le signal de SYNCERO LIGNE est généré simultanément gracie à SEM. Cette reprise a lieu à l'adresse 007AH à partir de laquelle les interruptions EMI et le signal SIM sont inhibés, l'indicateur est positionné et le contexte sauvegardé. Un retard de 41T est généré afin d'assurer une parfaite synchronisation entre les signaux SIL et SLM. L'affichage de la partie utile est faite par l'appel du module DISPLA puis les interruptions sont autorisées, le clavier est lu, le contexte est restitué et le programme se termine. Les 38 lignes vides du bas de l'écran sont générées avec une SYNCERO LIGNE automatique issue de SLM et les interruptions sont autorisées avant de recommencer à générer une synchro trame0 Le schéma de la figure 9 montre l'adressage du clavier par 8 lignes AS à liS du bus d'adresses B02 via un réseau de diodes afin de fournir le bus 323 (figure t). Cinq informations sont transmises sur les bits DO à D4 du bus de don nées 303 quand l'équation I0RQ + RD + D = O est vérifiée par la porte OU 901 afin de sortir les portes de CI22, bloc 3212 de l'état haute impédance. La scrutation du clavier est faite en imposant un bit à la fois au niveau bas de A15 à A8 et en lisant sur le bus de données si une informatiqn 0 existe, ce qui se produit quand une ligne li à O est mise en contact avec une ligne Dj par l'appui d'une touche Si aucune touche n'est appuyée, les résistances RR3 imposent un niveau logique 1. Cette scrutation est assurée par le programme SARCLA de la figure 10. À l'adresse 0144H, le registre C est initialisé par la va- leur es afin d'avoir AO=O pour qu'à l'instruction IN A,(C) l'équation IORQ + RD + AO = 0 soit vérifiée. Lors de cette instruction, le contenu du registre B est présenté sur les bits A15 à A8 du bus d'adresses. A l'initialisation, 3=FEH, ainsi les touches N, U, Q, A et shift sont scrutées. Si l'une d'entre elles est appuyée, le bit correspondant du registre A est positionné à O. Après avoir imposé les trois bits de poids forts inutilisés à 4 par l'instruction OR EO, un test est fait afin de savoir si l'un des bits lus est à O. Dans la négative, la ligne suivante est scrutée et ce, jusqu'à la huitième ligne sauf si une touche est appuyée. Dans ce cas, le SHIFT peut être détecté en SCRCL1 et mémorisé dans le registre B. Le programme se termine dès qu'une touche est détectée ou que toutes les lignes sont scrutées. La valeur des registres B et C est alors significative de la touche appuyée et la colonne S des figures lia et Ilb permet de connaître la valeur ainsi calculée selon un clavier de type QWERTY ou AZERTY. Le programme DECCA de la figure t2 permet, à partir de ce code de 16 bits, dé générer en B un code compris entre les valeurs 00 et 4FE incluses, soit 80 valeurs contigues représentant les 40 touches seules, les 39 touches avec SEIZE et aucune touche. Le code calculé est indiqué en colonne D des figures lia et llb, Le programme SCRCLÀ est tel que le bit 5 du registre C de CI8 est positionné à O si et seulement si la touche SE a été appuyée.Leprogramme iE~CLAteste ce bit et initialise un registre D par la valeur O si SHIFT n'est pas appuyée ou par la valeur 28E ( =40 ) dans le cas contraire. Un nombre est fabriqué dans le registre A selon la colonne de la touche appuyée car ce registre, initialisé à 0, est incrémenté tant qutune valeur 0 n'est pas trouvée dans les bits successifs de C.Si aucune touche n'a été appuyée, ce qui se détecte par A = 5, la valeur O est mise en B pour l'indiquer avant de terminer le traitement. Dès qu'une colonne est détectée, un saut est fait en DS:CI2 pour chercher la ligne de la touche après avoir sauvegardé le nombre significatif de la colonne dans un registre E. Un nombre est ensuite produit par incrémentation du registre A Jusqu'à ce qu'un bit O soit trouvé. Quand la ligne a été trouvée,-- un nombre est calaulé en B, compris entre 00 et 4FR, qui tient compte de la colonne, de la ligne et du SHIF. Le programme CAPPOT, dont l'organigramme est présenté en figures 13a,b,c s'exécute à la suite de SARCLA et DECCA afin de fournir un code significatif de la touche appuyée. Chaque touche du clavier du micro-ordinateur objet du présent brevet peut avoir jusqu'àBuit interprétations différentes dépendantes du mode de traduction dans lequel le système se trouve lors de l'appui d'une touche. Une m8me touche peut fournir un caractère alpha-numérique en maåus- cule ou en minuscule, qui peuvent éventuellement avoir leur vîo inversée types de fonctions di lorsque a touche SHIFT e estaussi appuyee, une tion ou un caractère graphique ; les fonctions disponibles sont soit des fonctions du langage BASIC, soit des ordres spécifiques au micro-ordinateur tels l'inversion vidéo, l'accès au langage machine, la sélection du mode d'affi chage sur l'écran, les fonctions d'édition et de déplacement du curseur dans les quatre directions, la sauvegarde sur cassette, la sélection des majuscules ou des minuscules, la sélection du mode graphique... Une variable MQDACT, figure 7, permet d'indiquer dans quel mode la touche détectée doit etre interprêtée par CAEMOD. Les colonnes i, 2, 3 et 4 des figures fla et 11b indiquent les résultats de la traduction en fonction des modes de même numéro. En mode i, la touche est comprise comme une instruction ou un numérique. Le mode 2 est réservé à la traduction de la touche en caractère alphanumérique majuscule ou minuscule selon la valeur du bit 7 de MODACT. Le mode 3 donne le code d'une fonction. Et enfin, le mode 4 sert à fournir le code de caractères graphiques, majuscules ou minuscules. Le mode 5 est réservé pour les fonctions d'aides au travail en langage machine. e. pn fourni en B ai t programme e code fourni en B par DECCA selon le bit mis à i dans MODACT, qui est significa- tif du mode sous lequel la touche doit être interprêtée, afin de générer un nouveau code en B et un indicateur en C qui prendra la valeur 00 pour un caractère affichable, la valeur 8D pour une fonction et la valeur 01 dans les autres cas. La valeur du code mis en B est reproduit dans les colonnes b des figures lia et 11b et a pour signification ce qui est dans les colonnes a. CAREMOD indique également, colonne c, le mode sous lequel la prochaine touche devra être interprêtée. L'organigramme de la figure 13a montre qu'une table, indiquée en figure 14, est utilisée et est adressée par le registre HI du microprocesseur afin de fournir le code recherché, Cette table est reproduite en figure 14. Le registre H est initialisé par une valeur constante, 1BH, égale aux huit bits de poids forts de l'adresse de cette table alors que le registre L variera selon la touche et le mode. Le registre C est initialisé à O afin d'indiquer, par hypothèse, que le code donnera un caractère affichable Cette valeur pourra éventuellement être modifiée par la suite. MODACT est ensuite testé pour savoir sous quel mode il faut interprêter la touche appuyée. Quand il faut traduire sous le mode 4, mode graphique, le code de la touche fourni par DECCLA est mis en L afin d'adresser par ET un nouveau code dans la table de la figure 14 et le ranger en E. Par exemple, si la touche D a été appuyée, la figure lia montre que SARCLA fournît BC=FDFIN et DECCLA produit B=09. le programme CARB:OD va alors chercher le contenu de l'adresse 1309E (figure 14) qui contient la valeur 44H, c'est à dire le code ASCII de la lettre "D". Dans le cas où le code trouvé dans la table le la figure 14 est celui de la touche ENTER, avec ou sans SHIFT, le registre C est positionné à 1 afin d'indiquer qu'aucun code n'est à prendre en compte et les variables MODACD et MOSAN: sont réinitialisées au mode 2 car l'appui de cette touche ne sert qu'à sortir du mode graphique. La variable MODÂNC sera utilisée ultérieurement. Si la touche EFFACE est appuyée, la fonction est indiquée par BD. Dans le cas de touches appuyées simultanément avec SHIFT, le code est directement fourni par E et correspond à l'un des graphismes de la colonne 4a de la figure Ilb. les touches sans appui simultané de SHIFT correspondent à des caractères #lpha-numériques et le mode graphique consiste à inverser la vidéo en positionnant le bit 7 de E à i (colonne 4a de la figure lla). Dans le cas où le caractère est alphabétique et que le mode minuscule est indiqué par le bit 7 de MODAUX, la valeur 20H est ajoutée à E. Le code est ensuite rangé en B avant de donner à la variable hIODANC la même valeur que MODAC. Quand la touche est interprêtée selon le mode 3, figure 43b, l'appui éventuel de SE est ignoré car seule une fonction peut autre détectée. Un nouveau code est acquis grâce à son adresse fournie par ET où L est l'octet fourni par DECCLA. si une touche sans fonction est appuyée, C=1 et le mode futur est réinitialisé par le mode précédent qui a été sauvegardé auparavant en MODANC. Quand une touche valide de fonction est détectée, C=8D pour l'indiquer et le code réel de la fonction s'obtient en rajoutant la valeur 80H à E. Si le code est celui de la fonction GRAPHIQUE, 0=1 et MODACT est initialisé par le mode 4. Si la touche qui permet de faire basculer les choix MAJUSCULE et MINUSCULE est détectée, les bits 7 de MODANO et MODACT sont complémentés et C=1. dans les autres cas, le mode 2 est sélectionné et le code est rangé en B. Quand la touche est interprêtée selon le mode 1, figure 13c, un test est fait pour savoir si la touche SHIFT a été actionnée simultanément. Dans la négative, le code est pris en table grâce à HL où X contient le code fourni par DECCA. Si ce code correspond à un chiffre, C n'est pas positionné à BD car les touches contenant les chiffres ne comportent pas de fonctions interprêtables sous le mode 1 comme c'est le cas des autres touches qui provoquent alors MODACT= Mode 2. Le code est ensuite rangé en B et, dans le cas où le mode 5 avait été auparavant choisi, les modes 2 et 5 sont imposés en MODAL. C est positionné à 1 sauf dans le cas des fonctions EFFACE et de déplacements horizontaux du curseur. Si la touche SHIFT a été appuyée simultanément, elle est supprimée et un code pointé par HL est acquis en E. Si ce code correspond à une touche où une fonction est implantée alors C=8D et un nouveau code pointé par EL est pris. Si ce code est celui des fonctions REDIT ou THEN le mode 1 est positionné en MODACT. Si le code ne correspond pas aux fonctions de déplacements verticaux du curseur, le mode 2 est choisi pour le futur.Si le code trouvé ne correspond pas à une touche avec fonction, le caractère est alors codé en ASCII en ajoutant 22X à E afin d'adresser par HL un nouveau code en table sauf pour les touches ESPACE ou ENTER qui, pour cette dernière, provoque MODACT = Mode 3 et 0=1. Par exemple, l'appui de SEIFT N provoque ( se reporter figure llb ) BC=FECFH par SARCLA et B=48E par DECCA. En enlevant la valeur 28H, B est ramené à 20H afin de pouvoir lire le contenu de la case 1B20H, c'est à dire ( figure 14 ) le code XEH. Cette touche ne correspondant ni à une fonction, ni à ESPACE ou ENTER, 22E est ajouté à ce code pour obtenir ainsi l'adresse 1370H qui contient le code ASCII de " Lorsque le mode 2 ou 5 a été sélectionné et que la touche SEIFT est appuyée simultanément, le traitement est identique à cette même configuration en mode 1. Sinon une adresse est produite grâce à B afin de prendre un code en table. Si celui ci correspond à un caractère alphabétique et que le mode minuscule est positionné, la valeur 20E est ajoutée afin d'obtenir la valeur ASCII exacte. Si la touche ENTER a été appuyée, le mode 1 est choisi. Lorsque, en fin d'exécution du programme CÂRMOD, le registre C contient la valeur 0, le contenu du registre B est le code d'un caractère affichable correspondant à une touche du clavier. Ce code est celui utilisé lors de l'affi chage vidéo pour adresser la matrice du caractère correspondant comme celà a été expliqué auparavant selon la figure 3. Une procédure non expliquée dans le présent brevet permet, grssce au registre C=O, de reconnattre les caractères affichables afin de les ranger dans la zone mémoire image de l'écran décrite précédemment. Quand C--8D, une fonction est détectée et peut être exécutée immédiatement. Ces fonctions peusent être soit des utilitaires, soit des fonctions ou commandes du langage BASIC. Quelquten soit la nature, elles sont donc toujours déclenchées matériellement par l'appui d'une touche du clavier. Les fonctions implantables sont multiples et les figures lia et ilb indiquent une disposition possible#sur les touches du clavier.On peut remarquer la fonction GRAPHIQUE ( code 8BB5 ) permettant de passer en Mode 4, la fonction MAJmin ( code 8DB7 ) pour sélectionner les caractères en majuscule ou en minuscule, la fonction VIDEO qui commande la bascule CI14 de la figure 3, et la fonction MACHINE ( code 8DBO ) qui sert à reconfigurer les fonctions du clavier de sorte que l'appui de certaines touches permette de travailler en hexadécimal et d'examiner des zones de mémoire, des registres, de positionner des points d'arrêt, d'exécuter des programmes écrits en langage machine, etc...La fin de l'exécution de ces fonctions utilisées en tant que commande, c'est à dire non incluses dans une suite d'instructions de programme écrit en BASIC, provoque l'affichage à l'écran d'un message en français indiquant à l'utilisateur le résultat des opérations demandées. Il apparartra aisément au lecteur que la place des fonctions sur les touches et les libellés des messages peuvent être modifiés sans compromettre le fonctionnement des principes inventifs obJets du présent brevet. La mémoire vive RAM est organisée en plusieurs zones dtiniormations dont certaines ont leurs positions fixes et d'autres peusent varier selon leur taille. Trois pointeurs pour chaque zone variable déterminent l'adresse de début, l'adresse de fin et l'adresse contenant l'octet sur lequel une opération peut être effectuée. Comme l1effacement de l'une de ces zones se fait en rendant égales les adresses contenues par ces trois pointeurs, il se peut que deux zones qui étaient consécutives deviennent séparées par une zone vide, appelée tampon, lorsque l'une de ces deux zones est effacée.La première zone qui nous intéresse dans la présente explication est réservée pour stocker des programmes ou des données écrits en langage Machine grâce à la fonction BSC!INE vue précédemment qui positionne en Mode 5. Son début est fixe: et est situé à l'adresse #E3USR=4450E Cette zone est suivie par des zones d'adresses variables dont, par ordre d'adresses croissantes, celles pour ranger les pro grammes écrits en BASIC, les variables déclarées par les instructions du BASIC et les données utilisées par les instractions REBAT et DATA du BASIC dont l'adresse de fin de zone est contenue dans une variable appelée FINDAT. Ces quatre zones sont sauvegardables sur cassette ainsi que l'ensemble des pointeurs contenant leurs adresses. l'utilisation d'un magnétophone à cassette en tant que mémoire de masse implique d'avoir une liaison entre le microordinateur et l'entrée MICRO du magnétophone afin de pouvoir enregistrer les informations sur une cassette. La récupé- ration de cette information est assurée par une liaison du micro-ordinateur avec la sortie ECOUTSUR ou EAUT-PARTSUR de ce magnétophone, Ces liaisons et le décodage et codage des informations sont assurés par le matériel dont une partie est contrElée par des instructions binaires situées en mémoire morte. La sauvegarde des informations se fait par la détection de la touche SAVE par CARNOD qui fournit C=RD et B=42 ( ti- gure lia ). L'organigramme de la figure 15 montre le déroulement des opérations nécessaires à cette sauvegarde.Afin de ne pas être perturbé par les opérations d'affichage vidéo, la première opération consiste i inhiber les interruptions NMI grâce à une instruction OUT (OFD),A dont l'action sur le matériel a déjà été décrite lors de l'explication de la figure 4 Il a été également vu lors de ces explications que cette instruction sert également à sélectionner les signaux de synehro pilotés par logiciel, or le schéma de la figure 16, détail. du bloc 320 de la figure i, montre que le signal destiné à la cassette est issu de la sortie SYNCERO-IIGKE après passage dans un filtre passe-bande dont les fréquences de coupures sont de 1200 et 2400 Hz.Ce filtre est réalisé par les résistances R30 et R31 ainsi que les condensateurs Cd et C7 et est tel que l'impédance de sortie soit de 1000 Ohms et que le signal ait un niveau de 5 mV afin de pouvoir être connecté à 11 entrée MICRO d'un magnétophone. Le signal de nom SYNCERO-LIGNE n'a pas les mêmes caractéristiques que pour un affichage sur I'écran car il est constitué de trains d'impulsions de 1200 et 2400 HZ obtenus par un procédé expliqué par la suite. Le second bloc logique de l'organigramme de la figure 15 sert à supprimer les tampons éventuels afin qu'il n'y ait que l'ensemble des octets utiles à sauvegarder, c'est à dire les adresses définissant chaque zone et les quatre zones citées auparavant. L'absence du nom de programme qui doit normalement suivre l'instruction SAVE provoque un branchement à un programme indiquant une erreur. Si la taille du nom du programme est supérieure à 255 caractères, une erreur est également produite. L'envoi du signal représentant un bit "1" pendant cinq secondes afin de faciliter la relecture de la cassette précède l'envoi du nom du programme et de l'adresse de fin de zone à sauvegarder : FINDAT. Un pointeur est ensuite positionné afin de pointer l'adresse du premier octet à sauvegarder puis les octets sont envoyés un à un en incrémentant ce pointeur. Dès que celui-ci dépasse l'adresse de fin de zone sauvegardable, le mode principal d'affichage est restitué en autorisant éventuellement les interruptions MCI: et terminant ainsi la sauvegarde. Une temporisation est faite afin qu'il n'y ait aucun temps mort entre l'envoi de deux octets et que la synchronisation des signaux soit parfaite entre le dernier bit STOP d'un octet et le bit STARS de l'octet suivant. Cette synchronisation est assurée par le signal SYNCERO imposé au niveau bas pendant 683 périodes d'horloge 2. Un octet est envoyé vers la cassette en le faisant précéder d'un signal STARS, symbolisé par un bit 0, pour signaler sa venue et en-le faisant suivre d'un bit de parité, dont la cohérence sera vérifiée à la relecture, et de deux signaux STOP > symbolisés par des bits 1, afin de retrouver plus facilement le bit SIARI de l'octet suivant. Le bit O est caractèrisé par un groupe de 4 impulsions, figure 19, dont la durée au niveau haut, identique à la durée au niveau bas, est de 1366 T afin d'avoir une fréquence de tordre de 1200 Hz. Le bit 1 est caractérisé par un train de huit impulsions, figure 20, dont les niveaux haut et bas durent chacun 683 T afin de produire une fré- quence de l'ordre de 2400 Hz. Les organigrammes de ces sousprogrammes contrôlant ces durées et ces niveaux sont reproduits en figures 17 et 18. Avant l'entrée dans le programme de génération d'un bit 1, figure 18, le registre B doit trexialisé par une valeur permettant de synchroniser le nouveau bit par rapport au bit précédemment envoyé. Cette valeur est telle que l'on ait un retard de 1366 T avant le passage au niveau haut Si le bit précédent était un O et 683T si le bit précédent était un 4. Le registre C est initialisé par le nombre d'impulsions à envoyer, c'est à dire 8. Après la boucle d'attente à l'adresse 2079H permettant d'ajuster les temps, l'acoumula- teur A est chargé par la valeur 7RE afin d'adresser la ligne du clavier qui contient la touche 11ÂRRET" lorsque l'instruction IN A,(OFE) sera exécutée (se reporter à l'explica- tion de la figure 9). Cette instruction permet de lire le clavier afin de savoir Si la touche "ARRE" a été appuyée. dans l'affirmative, les instructions BRA et JP NC,ArtREi6 le vérifient et provoquent un branchement à une routine de traitement de l'arrêt. Cette instruction IN A,(OFE) s'accompagne toujours de RDkO, WR=1, AO=O et IORQ=O.L'état de ces signaux est vérifié par les portes 416, 428 et 429 et la figure 4 montre que cette configuration bloque la bascule RS, constituée de 430 et 431, de sorte que entrée CLR de CI20 soit à 0, forçant ainsi le signal SLL au niveau bas en permanence et par conséquent, puisque les signaux contrôlés par logiciel sont sélectionnés, le signal SYNCERO-LIGNE à 1. les trois instructions ADD A,ÇIYtO)s LD B,31 t DJNZ EUN3 ne servent qu'à ajuster précisemment le temps à 683 T avant de faire revenir le signal SYNCERO à 0 par l'instruction OUI (OFFH),A car, comme le montre la figure 4, les signaux simultanés IORQ=O, RD=l et WR=O accompagnant cette instruction provoquent la mise au niveau haut de l'entrée CLR de CI20. Ainsi, la sortie SLL repassera à 1 après que deux instructions soient recherchées pendant lesquelles les fronts descendants de M1 excitent les entrées CK de CI19 et CI20 afin de propager le niveau imposé par la sortie 4 de CI18 jusqu'à la sortie.Ce basculement de SIL provoque le passage au niveau bas de la sortie SYNCHR0 DIGNE. Le compteur C du nombre de créneaux envoyés est dderé- menté jusqutà 0 indiquant ainsi la fin de la routine. Tant que ce compteur n'atteint pas la valeur 0, un retard afin d'ajuster à 483 T est fait par l'ensemble des instructions qui suivent avant de reprendre la génération d'un signal SYNCERO-LIGNE = i. L'envoi d'un bit o est fait exactement selon le même principe La figure 17 indique que le registre C est chargé par la valeur 4, correspondant au nombre d'impulsions à envoyer puis la touche "ARRET" est testée en faisant passer SYCCHRO-lIGNE à 4. Après une temporisation à l'adresse 2062E pour ajuster à t3fS T, le signal SYNCHRO-LIGNE est imposé à 0 par OUT (OFF),A et, si le registre C ne prend pas la valeur O après décrémentation, un retard afin d'ajuster à 1366 T est provoqué avant de reprendre la génération d'un niveau 1. La durée du niveau bas des signaux de la dernière impulsion envoyée n'est pas contrôlée implicitement par le programme car celui-ci ne produit en fait que 734 T pour la création d'un bit O et 39 T pour un bit t. Ces durées seront prises en considération par le module qui envoi octet en entier afin de respécter entre deux bits les temps respéctifs de 1366 T ou 683 T avant de faire SYNCHRO-lIGNE = 1. On voit qu'on a décrit ci-dessus un micro-ordinateur offrant des possibilités d'affichage vidéo, de lecture de clavier comportant des touches multi-fonctions et de liaison avec un magnétophone pour utiliser celui-ci comme mémoire de masse. Le micro-ordinateur est fabriqué à partir d'articles disponibles dans le commerce mais peut aussi Justifier la fabrication d'un composant spécifique regroupant l'ensemble ou une partie des fonctions décrites en un seul circuit. l'utilisation de ressources déjà existantes dans un foyer et l'accès aisé des fonctions préprogrammées du langage BASIC ainsi que des fonctions d'aide au travail en langage machine en font un excellent outil d'enseignement et d'initiation à l'informatique. De plus les principes inventifs décrits dans le présent brevet permettent de fabriquer cet appareil à un faible coût,le rendant ainsi accessible pour la plupart des foyers. EEVENUDICATIONS i3 Micro-ordinateur caractèrisé en ce qu'il comporte tme unité centrale de traitement, une Mémoire vive (~ mémoire RAM ), une mémoire morte, une interface de liaison avec un clavier, une interface de sortie vers un magnétophone, une interface de génération de signaux de synchro et de vidéo destinés à un écran à tube cathodique et une logique de génération de signaux d'horloge destinés à ladite unité de traitement et auxdites interfaces; ladite unité centrale de traitement comprenant un bus de données connecté auxdites interfaces et, à travers des résistances, auxdites mémoires RAM et mortes ainsi qu'à un moyen de type registre pour mémoriser des signaux issus de ladite mémoire RAM; ladite mémoire morte contenant des instructions et des données codées sous forme binaire afin de contrôler lesdites interfaces et les fonctions qui en découlent; ladite mémoire morte étant connectée à des multiplexeurs de telle manière qu'elle puisse être adressée soit par un bus d'adresses provenant de l'unité centrale de traitement afin que celle-ci puisse lire les informations contenues dans cette mémoire, soit par un ensemble de signaux destinés à lire une information utilisée par l'interface vidéo; lesdits multiplexeurs étant commandés par un signal issu de ladite unité centrale de traitement; ledit signal vidéo étant produit par une information mémorisée dans un registre à décalage et dont le décalage est commandé par des impulsions. 2) Micro-ordinateur suivant la revendication 1 caractèrisé par le fait que la mémoire morte d'une capacité totale de 16 Kilo-octets implantée à partir de l'adresse 00G0 peut être constituée de un ou plusieurs circuits standards du commerce de telle sorte qu'un même emplacement réservé peut recevoir indifféreminent une mémoire morte de 16 Kilo-octets ou une mémoire morte de 8 Kilo-octets; la sélection du type de circuit choisi se faisant gråce à des liaisons à établir entre certains points. 3) Micro-ordinateur suivant la revendication 1 caractérisé par le fait que la ligne A13 du bus d'adresses issu de l'unité centrale de traitement est reliée à l'entrée d'une porte QU elle-même connectée à une entrée d'un multiplexeur dont la sortie excite une entrée de sélection de ladite mémoire morte si celle-ci est de capacité 8 Kilo-octets et caractérisé par le fait que ladite entrée de ladite porte OU est imposée à un niveau constamment bas Si ladite mémoire est de capacité 16 Kilo-octets. 4) Micro-ordinateur suivant la revendication 1 caractérisé par le fait que l'ensemble des signaux d'adressage de ladite mémoire morte, lorsque lesdits multiplexeurs ne sélectionnent pas ceux issus dudit bus d'adresses de l'unité centrale de traitement, sont constitués par trois bits d'un compteur par huit, par sept des huit bits dudit moyen de type registre contenant le code représentatif d'un caractère affichable, et par six bits prédéfinis afin d'adresser dans ladite mémoire une case comprise entre les adresses hexadécimales COOH et 1FFFH incluses. 5) Micro-ordinateur suivant la revendication i caractèrisé par le fait que tout octet peut représenter le code d'un caractère affichable sauf le code héxadécimal FFR. 6) Micro-ordinateur suivant la revendication 5 caractérisé par le fait que la détection de tout code représentatif d'un caractère affichable, pendant la recherche d'une instruction par l'unité centrale de traitement, impose à ladite unité centrale de traitement la lecture et l'exécution d'une instruction ne faisant aucune opération; cette détection permettant également de mémoriser dans un registre ledit code afin d'adresser ultérieurement la mémoire morte. 7) Micro-ordinateur suivant la revendication 1 caractérisé par le fait que lesdites impulsions sont issues de la sortie Q d'une bascule de type D dont l'entrée CIR active au niveau bas est reliée à la sortie Q et dont l'entrée D est imposée au niveau haut; une impulsion étant produite à chaque front montant imposé à l'entrée d'horloge CE de cette bascule. 8) Micro-ordinateur suivant la revendication i caractérisé par le fait que le signal vidéo est prédéfini par la sortie d'une bascule initialisée lors de la mise en fonctionnement dudit micro-ordinateur et est inversé par la détection de signaux prédéterminés issus de l'unité centrale de traitement. 9) Micro-ordinateur suivant la revendication i caractèrisé par le fait que le signal de synchro-ligne destiné à un écran provient soit de signaux produits uniquement par des circuits logiques, soit par des signaux produits par des circuits logiques contrôlés par des informations binaires contenues dans la mémoire morte. 10) Micro-ordinateur suivant la revendication 1 caractérisé par le fait que ledit signal de synchronisation est à un niveau logique défini pendant 45 périodes d'une horloge et à un niveau opposé pendant 193 périodes de la même horloge. il) Micro-ordinateur suivant la revendication i caractérisé par le fait que I'écran est divisé de manière telle qu'il comprend une partie constituée de 63 lignes pour lesquelles le signal de synchro#ligne est produit par les circuits logiques seuls, une partie constituée de 209 lignes pendant lesquelles le signal de synchro-ligne est contré par des informations contenues dans la mémoire morte, et pendant lesquelles un signal de vidéo est envoyé pendant les 208 premières lignes, et enfin une troisième partie composée de 38 lignes pendant lesquelles le signal de synchro-ligne est produit par les circuits logiques seuls. 12) Micro-ordinateur suivant la revendication 11 caracté- risé par le fait que les parties pendant lesquelles ledit signal de synchro-ligne.est produit par les circuits logiques seuls sont contrôlées par. un indicateur afin de savoir laquelle de ces deux parties est en cours et caractèrisé par le fait que le nombre de lignes composant chacune de ces parties est décompté par un compteur de type registre. 13) Micro-ordinateur suivant la revendication i caractèrisé par le fait que ladite mémoire RAM contient les codes de caractères affichables de telle manière que ceux-ci sont contigus et que le dernier code d'une ligne d'écran est toujours suivi du caractère spécial non reconnu comme le code d'un caractère affichable. 14) Micro-ordinateur suivant la revendication 5 caractèrisé par le fait que le code ne représentant pas un caractère affichable provoque l'exécution, à une adresse implicitement prédéfiniepar ledit code, d'une suite d'instructions destinées à gérer l'affichage sur un écran. 15) Micro-ordinateur suivant la revendication 14 caractèrisé par le fait que ladite suite d'instruction consiste à produire un signal de synchro-ligne contrôlé par la mémoire morte et à produire le signal de vidéo; l'ensemble de ces instructions étant construit de manière telle que ledit signal de synchro-ligne est identique à celui produit par des circuits logiques seuls et organisé de manière telle que les cumuls des temps drexécution desdites instructions sont identiques quelques soient les décisions prises lors de l'exéoution de l'ensemble des instructions avant de produire le signal vidéo. 16) Ilicro-ordinateur suivant la revendication L caractérisé par le fait que l'appui d'une touche dudit clavier produit la génération d'un code hexadécimal dans un moyen de memorisation de type registre; ledit code ayant pour valeur 00 lorsqu'aucune touche n'est appuyée ou lorsque la touche SHIFT seule est appuyée, iF pour la touche ENTER, 07 pour ESPACE, 17 pour le ".", OF pour 0, 14 por 1, OE pour 2, 06 pour 3, 14 pour 4, 0(:: : pour 5, 04 pour 6, 15 pour 7, OD pour 8, OS pour 9, 08 pour A pour un clavier QWERTY ou pour Q pour un clavier AZERTY, 21 pour B, 02 pour C, 09 pour D, Il pour E, 0A pour F, lA pour G, 23 pour R, Il pour I, 25 pour J, 24 pour K, 26 pour X, 27 pour M, 20 pour N, 1C pour 0, 1E pour P, 10 pour Q pour un clavier QWERTY ou pour A pour un clavier AZERTY, 12 pour R, OB pour S, 19 pour T, 18 pour U, 22 pour V, 13 pour W dans le cas d'un clavier QWERTY ou pour Z dans le cas d'un clavier AZERTY > 01 pour X, 1B pour Y, 03 pour Z dans le cas d'un clavier QWERTY ou pour W dans le cas d'un clavier AZERTY; lorsque la touche 5ZIST est appuyée simultanément avec une autre touche, ledit code ayant pour valeur 47 lorsque l'autre touche est ENTER, 2S pour ESPACE, 3F pour le ".", 37 pour 0, 3E pour i, 36 pour 2, 2E pour 3, 3C pour 4, 34 pour 5, 2C pour 6, 3D pour 7, 35 pour 8, 22 pour 9, 30 pour A dans le cas d'un clavier QWERTY ou pour Q dans le cas d'un clavier AZERTY, 49 pour B, 2A pour C, 31 pour D, 39 pour E, 32 pour F, 42 pour G, 4B pour R, 45 pour I, 4D pour J, 4C pour K, 4E pour F, 4F pour M, 48 pour N, 44 pour 0, 46 pour P, 38 pour Q dans le cas d'un clavier QWERTY ou pour dans le cas d'un clavier AZERTY, 3A pout R, 33 pour S, 41 pour , 40 pour U, 4A pour V, 33 pour W,dans le cas d'un clavier QWERTY ou pour Z dans le cas d'un clavier AZERTY, 29 pour g, 43 pour Y, 23 pour Z dans le cas d'un clavier QWERTY ou pour W dans le cas d'un clavier AZERTY. 17) #icro-ordinateur suivant la revendication 16 caractèrisé par le fait que ledit code produit est traduit selon la valeur d'une information mémorisée dans un moyen de type registre ou mémoire afin de fournir un nouveau code, dans un moyen de type registre ou mémoire, significatif du contenu de la touche appuyée quand ladite touche peut avoir plusieurs significations possibles; lorsque la valeur de l'information servant à la traduction est telle que ladite touche doit être traduite comme étant significative d'un type de fonctions, le code produit est un code conforme au standard ASCII pour les touches numériques, la touche ESPACE, la touche ENTER, et la touche ".", pour les autres touches, le code produit est composé de deux octets : le premier d'une valeur constante indiquant qu'il s'agit d'une fonction et le second conforme au code ASCII de la lettre qui se trouve sur la même touche de ladite fonction; quand la touche #IFT est appuyée simultanément avec une autre touche, le code produit est conforme au standard ASCII s'il existe un caractère sur ladite touche ou bien est constitué de deux octets pour indiquer la prise en compte d'une.fonction : la valeur constante précédemment citée suivie d'une valeur significative de la fonction sélectionnée.par ladite touche ; lorsque la valeur de l'information servant à la traduction est telle que la touche doit être traduite comme étant significative d'un caractère, le code produit est conforme au standard ASCII si la touche SHIFT n'est pas appuyée simultanément sinon il est identique au code produit lorsque la touche doit être traduite comme étant une fonction vue précédemment lorsque la touche SHIFT est appuyée ; lorsque la valeur de l'information servant à la traduction est telle que la touche doit être traduite comme étant significative d'une fonction d'un type différent de celui déjà vu précédemr.ent et que la touche SHIFT soit appuyée ou non, le code produit est toujours précédé de la valeur constante déJà citée significative d'une fonction suivie d'un code dont la valeur correspond au code ASCII du caractère également disposé sur ladite touche augmenté de la valeur 80E ; lorsque la valeur de l'#information servant à la traduction est telle que la touche doit être traduite comme étant significative d'un caractère graphique, le code produit a pour valeur le code correspondant au caractère ASCII disposé sur ladite touche augmenté de la valeur BOH. 18) Micro-ordinateur suivant la revendication 1 caractèrisé par le fait que le code significatif d'une touche du clavier est codé sur deux octets lorsque ladite touche ne représente pas un caractère alphanumérique.