FR 2507799 A1 19821217 FR 8210537 A 19820616 i " Micro-ordinateur ". La présente invention concerne un micro- ordinateur et notamment un micro-ordinateur qui comporte un affichage à tube cathodique. Récemment, les micro-ordinateurs de table se sont développés dans une très large mesure De tels micro- ordinateurs utilisent généralement une unité centrale de traitement (CPU) à 8 bits, avec des adresses à 16 bits de façon que l'unité CPU puisse accéder directement à une zone mémoire à 64 K positions c'est-à-dire entre les adresses hexadécimales OOOOH jusqu'à FFFFH, chaque position contenant une donnée à 8 bits (c'est-a-dire un octet) Ainsi dans un ordinateur domestique du type ci-dessus qui utilise un microprocesseur à 8 bits, on peut avoir 32 K de positions dans la zone-mémoire, par exemple comme zone de mémoire morte (ROM) pour enregistrer un programme de commande et/ou un interpréteur BASIC, les autres parties d'adresses ou de mémoire parmi les 32 K positions pouvant servir de zones de mémoire vive (RAM) Toutefois lorsqu'on utilise un micro-ordinateur avec un dispositif d'affichage ou de contr 8 le à tube catho- dique (CRT), il faut avoirune zone de mémoire vive RAM vidéo Par exemple pour un affichage vidéo ou graphique de 640 x 400 points, un bit étant attribué à un pointe il faut une mémoire vive RAM, vidéo de 32 K octets ou moins Il en résulte qu'il y a peu ou pas de zones de mémoire vive RAM pour la programmation par l'utilisateur Pour étendre la zone de mémoire et éviter de tels inconvénients, on a pro- posé de prévoir plusieurs ensembles de mémoires qui sont reliés sélectivement au microprocesseur CPU sous la commande du programme du système Toutefois comme la commutation des différents ensembles de mémoires doit se faire en fonction du programme, cette commutation est complexe et la vitesse de traitement du programme est réduite De plus, l'établis- sement d'un tel programme est une opération relativement complexe puisqu'il faut faire le travail avec une attention et un soin extrêmes pour éviter les erreurs. La présente invention a pour but de créer un micro-ordinateur remédiant aux inconvénients des solutions de l'art antérieur, notamment un microordinateur de table destiné à être combiné à un affichage sur tube cathodique, et ayant une zone de mémoire-tampon vidéo pour l'affichage cathodique qui est intégré dans une zone d'adresses entrée/ sortie du micro-ordinateur. L'invention a également pour but de créer un micro-ordinateur dans lequel la zone des adresses directe- ment accessibles par l'utilisateur pour la programmation ne soit pas diminuée, en attribuant une zone de mémoire- tampon vidéo à une zone d'adresses entrée/sortie du micro- ordinateur ou une zone de mémoire-tampon vidéo pour l'affi- chage cathodique commandé par les instructions entrée/sortie du microprocesseur CPU. A cet effet, l'invention concerne un micro- ordinateur qui comporte un moyen de traitement central fonc- tionnant avec des données de N bits et des informations d'adresses de m bits, un bus, une mémoire morte pour enre- gistrer un programme de commande et qui est reliée à l'unité centrale de traitement par le bus, une première mémoire vive comme zone de travail reliée au moyen de traitement central par le bus, une seconde mémoire vive, distincte pour l'affi- chage vidéo reliée au moyen de traitement central par le bus et destinée à etre accédée par des instructions entrée/sor- tie du moyen de traitement central. La présente invention sera décrite plus en détail à l'aide des dessins annexés, dans lesquels: les figures l A et 1 B sont des schémas servant à expliquer le fonctionnement de l'unité centrale de traite- ment du micro-ordinateur selon l'invention. la figure 2 est un schéma-bloc d'un micro- ordinateur correspondant à un mode de réalisation de l'in- vention. les figures 3 A et 3 B sont des schémas servant à expliquer les attributions des adresses de mémoire du micro-ordinateur selon la figure 2. les figures 4 A-4 D sont des schémas servant à expliquer le branchement entre l'unité centrale de traite- ment et la mémoire-tampon vidéo selon l'invention. DESCRIPTION DETAILLEE D'UN MODE DE REALISATION PREFERENTIEL: Selon les dessins et notamment la figure 2, un micro-ordinateur selon un mode de réalisation de l'invention comprend une unité centrale de traitement (CPU) 1 qui peut par exemple être le microprocesseur Z 8 OA de Zilog (marque) ou les microprocesseurs NSC-800 de National Semiconductor (marque) Ci-après le microprocesseur CPU 1 sera le micro- processeur Z 8 QA qui servira à l'illustration de l'invention. Le micro-ordinateur selon l'invention comporte également une mémoire morte ROM 2 qui enregistre un programme de commande et un programme interpréteur BASIC, et qui contient par exemple 32 K positions d'adresses à 8 bits allant de l'adresse OOOOH jusqu'à l'adresse 7 FFFH comme représenté à la figure 3 A Le micro-ordinateur comporte également une mémoire vive RAM 3 qui permet d'inscription du programme de l'utilisateur et qui constitue également une zone de travail pour le mi- croprocesseur CPU 1 Comme représenté à la figure 3 B, la mémoire vive RAM 3 contient également 32 K positions d'adres- ses à 8 bits allant de l'adresse 8000 H jusqu'à l'adresse FFFFH Il est à remarquer que les numéros des positions d'adresses à 8 bits sont uniquement donnés à titre d'exem- ple et l'invention n'est pas limitée à ces cas particuliers. Un bus de données 4 à 8 bits, un bus d'adresses inférieures à 8 bits, SL et un bus d'adresses supérieures à 8 bits 5 H sont reliés aux bornes de données D 0-D 7, aux bornes d'adres- ses A 0-A 7 et aux bornes d'adresses A 8-A 15 respectives du microprocesseur CPU 1 de la mémoire morte ROM 2 et de la mémoire vive RAM 3 pour l'échange des informations. Pour commander la lecture de l'information de la mémoire morte ROM 2 et de la mémoire vive RAM 3, le micro- processeur CPU 1 fournit un signal de demande de mémoire MREQ et/ou un signal de lecture RD aux entrées respectives de la porte OU 6 pour dériver un signal de mémoire MEMR qui est fourni aux bornes de lecture respectives R de chacune des mémoires ROM 2 et RAM 3 De la même manière, pour effec- tuer une opération d'inscription dans la mémoire RAM 3, un signal WR est généré par le microprocesseur CPU 1 et un signal d'inscription WR et/ou le signal de demande de mé- moire MREQ sont fournis aux entrées respectives de la porte OU 7 Ce dernier circuit donne un signal d'inscription de mémoire MEMW qui est fourni à la borne d'inscription W de la mémoire RAM 3. Dans l'ordinateur selon l'invention comme re- présenté à la figure 2, on a un maximum de 256 ports I/O (entrée/sortie) externes 11 qui peuvent être reliés au microprocesseur CPU 1, chaque port étant repéré par un numéro de port N compris entre OOH et FFH On peut toutefois avoir un nombre de ports I/O, 11 inférieur à 256 Par exem- ple, on peut avoir les ports numérotés de 80 H jusqu'à FFH. Un ensemble de dispositifs I/O (entrée/sortie) externes tels qu'un clavier 21 et une cassette à bande magnétique 22 peu- vent être reliés à chaque port I/O 11 avec un maximum de 256 dispositifs externes I/O pour chaque port Pour facili- ter la compréhension de l'invention, un seul port I/O il représenté à la figure 2 sera décrit ci-après Le port I/O 11 se compose des bornes de données DO-D 7 reliées au bus de données 4 et les bornes d'adresses A -A 7 reliées au bus d'adresses inférieures 5 L De la même manière, comme indi- qué précédemment pour les mémoires ROM 2 et RAM 3, le micro- processeur CPU 1 commande la lecture et l'inscription d'une information par le port I/O 11 Ainsi, le microprocesseur CPU 11 génère un signal de demande I/O (entrée/sortie) IORQ et le signal de demande I/o et/ou le signal de lecture RD sont fournis aux entrées respectives de la porte OU 8 qui fournit à son tour un signal de lecture I/O (entrée/sortie) IOR à la borne de lecture R du port I/o 11 De la même ma- nière, le signal de demande I/O IORQ et/ou le signal d'ins- cription WR sont fournis par le microprocesseur CPU 1 aux entrées respectives d'une porte OU 9 qui à son tour fournit un signal d'inscription I/o, IOW à une borne d'inscription W du port I/O 11 La lecture et l'inscription d'une informa- tion entre le port I/o il et le microprocesseur 1 se font de cette façon. Uniquement à titre d'exemple, on décrira ci- après les instructions de travail d'un microprocesseur Z 80 A pour l'échange des données entre un port I/o, 11 externe et le microprocesseur CPU 1 (et par conséquence, la mémoire RAM 3) On remarque d'abord que le microprocesseur Z 80 A comporte au moins A, B, C, D, E, H et L registres généraux et le transfert des données à 8 bits entre un port I/O 11 externe et un ou plusieurs de ces registres se fait par le bus de données 4 L'information d'adresse correspondante est transférée par le bus d'adresses à 16 bits formé du bus d'adresses supérieures à 8 bits, 5 H et du bus d'adresses inférieures à 8 bits, 5 L On peut en particulier utiliser les instructions I/O suivantes: I-1 IN A, n Cette instruction transfère la donnée à 8 bits d'un port d'entrée portant la référence N (n compris entre O et 255) jusqu'au registre A du microprocesseur CPU. I-A OUT n, A Cette instruction transfère la donnée à 8 bits du registre A du microprocesseur à un port de sortie désigné par le numéro de port n Il est à remarquer qu'avec ses instructions la donnée à 8 bits du registre A apparatt à la fois sur les bornes de données DO-D 7 et sur les bornes d'adresses A 8-A 15. Dans ces conditions, les bornes d'adresses inférieures à 8 bits A 0-A 7 reçoivent 1 ' information d'adresses et indique le numéro de port N comme représenté à la figure 1 A. II-1 IN r, (C) Cette instruction transfère la donnée sur un port (identifié par le numéro de port n) désigné par la paire de registres BC à un registre r, le registre r étant l'un des registres A, B, C, D, E, H, L. II-A OUT (C), r Cette instruction transfère les données du re- gistre r au port (identifié par le numéro de port n) désigné par la paire de registres BC A la figure 1 B, la donnée correspondant au registre r apparait sur les bornes de don- nées D -D; le registre C contient l'information des bornes d'adresses AOA 7 correspondant au numéro de port N et le registre B contient l'information des bornes d'adresses A 8- A 15 correspondant au dispositif I/O (entrée/sortie) relié au port désigné Comme on a 8 bits d'informations dans le registre C, on peut brancher un maximum de 256 dispositifs I/o (c'est-à-dire entre O et 255 dispositifs) sur chaque port comme cela a été indiqué. Il découle clairement de l'exposé ci-dessus que les instructions de transfert de bloc suivantes sont également utilisées dans le microprocesseur CPU 1: III-1 INIR, INDR Pour ces instructions, un ensemble d'octets de données c'est-à-dire des blocs de données peut 9 tre transféré d'un port N à la mémoire principale Dans ce cas, la paire de registres BC est utilisée pour déterminer le numéro de port (registre C) et le nombre d'octets à transférer (registre B). Le bloc de données est transféré à une position de mémoire dont l'adresse est déterminée par la paire de registres HL. Par exemple, la position de la dernière adresse à laquelle la donnée doit 9 tre transférée est stockée dans la paire de registres HL. Le registre B est alors utilisé comme compteur; ce registre décompte jusqu'à zéro En particulier, la valeur contenue dans le registre B est décrémentée en permanence d'une unité et au cours de chaque décrément d'une unité, il y a transfert d'un octet du bloc Lorsque la grandeur enre- gistrée dans le registre B est égale àzéro, tous les octets du bloc de données ont été transférés vers le port I/O res- pectif désigné par le registre C. III-2 OTIR, OTDR Pour ces instructions, on peut transférer un bloc de données de la mémoire principale à un port I/o désigné par le registre C La paire de registres HL et le registre B sont utilisés de la m 9 me manière que celle décri- te ci-dessus. A titre d'exemple des instructions ci-dessus, on peut utiliser le programme suivant pour effectuer ce transfert: LD HL, 08 FFH LD BC, FF 03 H OTDR A l'aide de ce programme, la dernière adresse de la mémoire principale à laquelle est enregistrée la donnée est chargée dans la paire de registres HL par l'ins- truction de chargement LD c'est-à-dire la dernière adresse O 8 FFH Le numéro de port N est chargé dans le registre C c'est-à-dire 03 H et le nombre d'octets qu'il faut transférer est chargé dans le registre B c'està-dire FFH La valeur chargée dans le registre B est alors décrémentée en continu jusqu'à ce que cette valeur soit égale à zéro; pendant cha- que décrément d'une unité, un octet du bloc de données situé aux adresses 0800 H 08 FFH de la mémoire principale est transféré au port désigné par le numéro de port 03 H Lors- que la grandeur enregistrée dans le registre B est égale à zéro, tous les octets du bloc de données sont transférés. Selon une caractéristique de l'invention, il est prévu une mémoire vive vidéo RAM 12, distincte comme mémoire-tampon utilisée dans l'affichage des résultats trai- tés et, comme représenté à la figure 3 B, il lui est attribué 32 K adresses de mémoire correspondant aux adresses OOOOH jusqu'à 7 FFFH (exemple) Pour faciliter le transfert des données entre la mémoire vive vidéo RAM 12 et le micropro- cesseur Z 80 A (figure 2), les bornes d'adresses inférieures à 8 bits A 0A 7 de la mémoire vidéo RAM 12 sont reliées au bus d'adresses supérieures 5 H correspondant aux bornes d'adresses supérieures à 8 bits A 8-A du microprocesseur CPU 1 de la mémoire mort ROM 2 et de la mémoire vive RAM 3. De la même manière, les bornes d'adresses supérieurs à 8 bits A 8-A 15 de la mémoire vidéo RAM 12 sont reliées au bus d'adresses inférieures SL correspondant aux bornes d'adres- ses inférieures, à 8 bits A 0-A 7 du microprocesseur CPU 1 de la mémoire morte ROM 2 et de la mémoire vive RAM 3 En outre, un signal de lecture I/o, IOR et un signal d'inscription I/0 IOW provenant des portes OU 8 et 9 respectives sont fournis à une borne de lecture R et à une borne d'inscrip- tion W respectives de la mémoire vidéo RAM 12 pour commander les opérations de lecture et d'inscription Les bornes de données D -D 7 de la mémoire vidéo RAM 12 sont également reliées au bus de données 4 Pour afficher le contenu de la mémoire vive vidéo RAM 12, il est prévu un écran cathodique de contr 8 le 13 relié à la mémoire vive vidéo RAM 12 pour lire séquentiellement les données de la mémoire-vidéo RAM 12 et fourni ces données au dispositif d'affichage à tube cathodique 23. Dans le micro-ordinateur selon l'invention, représenté à la figure 2, les mémoires morte ROM 2 et vive RAM 3 sont associées aux zones de commande de mémoire res- pectives du microprocesseur CPU 1 alors que la mémoire vive vidéo RAM 12 est associée à une zone I/0 (entrée/sortie) du microprocesseur De cette façon, la mémoire vive vidéo RAM 12 peut être adressée par la paire de registres BC du micro- processeur CPU 1 en réponse aux instructions I/0 comme exa- miné précédemment, par exemple pour les instructions II-1 et II-2 Ainsi, par suite de cette attribution pour les mé- moires ROM 2 et RAM 3 et RAM 12, la zone de travail ou zone programmable utilisable dans la mémoire RAM 3 n'est pas ré- duite par la zone de mémoire vive vidéo RAM, ce qui permet à l'utilisateur de disposer d'une plus grande zone de pro- gramme De plus comme la zone de la mémoire vive vidéo RAM 12 peut avoir jusqu'à 32 K octets, on peut réaliser une fonc- tion graphique ayant une résolution élevée correspondant par exemple à 640 x 400 points Il est à remarquer que les instructions ou ordres fournis par le micro-ordinateur CPU 1 aux mémoires ROM 2 et RAM 3 peuvent être analogues à ceux utilisés dans un micro-ordinateur classique et les instruc- tions I/0 ou ordres 1-1, I-2, II-1, II-2, III-1 et III-2 peuvent facilement être utilisés dans la mémoire vive vidéo RAM 12 En d'autres termes, il est important d'avoir une mémoire vidéo RAM 12, distincte qui est accédée par les instructions I/Odu microprocesseur CPU 1 En conséquence, la mémoire vive vidéo RAM 12 peut être considérée comme un autre port I/0 ou un autre dispositif I/0. Il est également à remarquer que comme précé- demment examiné, les connexions entre les bornes d'adresses inférieures à 8 bits A -A et les bornes d'adresses supé- rieures à 8 bits A 8-A 15 de la mémoire vive vidéo RAM 12 sont inversées ou sont échangées par rapport à celles du microprocesseur CPU 1 et des mémoires ROM 2 et RAM 3 comme représenté aux figures 4 A-4 C au moins lorsque le micropro- cesseur CPU 1 est un microprocesseur Z 8 QA En conséquence, le transfert des blocs d'une unité de 256 octets peut se faire entre la mémoire vive RAM 3 et la mémoire vidéo RAM 12 en réponse aux instructions I/o, III-1 et III-2 Par exemple, le programme OTDR ci-dessus peut servir à réaliser ce transfert Dans ces conditions, la valeur enregistrée dans le registre C désigne la mémoire vive vidéo RAM 12. Avec un tel programme, on peut facilement transférer directe- ment les données de la mémoire vive RAM 3 à la mémoire vive vidéo RAM 12 sans aucune mémoire-tampon ou dispositif ana- logue Comme représenté à la figure 4 D, les adresses infé- rieures à 8 bits A 0-A 7 du microprocesseur CPU 1 enregistrées dans le registre C correspondent aux positions d'adresses respectives du port I/0 11 ou de la mémoire vidéo RAM 12 alors que les instructions I/O I-1, I-2, II-1, II-2, III-1, III-2 peuvent servir dans la mémoire vive vidéo 12 de façon analogue à un micro-ordinateur classique. Il est à remarquer que dans la présente inven- tion, il est inutile de d'abord choisir un ensemble de mé- moires puis accéder à cet ensemble La vitesse d'exécution du programme n'est pas diminuée et il n'est pas nécessaire que le programmeur prépare un programme complexe. R E V E N D I C A T I O N S ) Micro-ordinateur comportant une unité cen- trale de traitement CPU ( 1) avec des données à N bits et des adresses à m bits, un bus ( 4), une mémoire mort ROM ( 2), pour enregistrer un programme de commande, cette mémoire étant également reliée à l'unité central de traitement CPU ( 1) par le bus ( 4), une première mémoire vive RAM ( 3) comme zone de travail reliée à l'unité centrale de traitement CPU ( 1) par le bus ( 4) et une seconde mémoire vive distincte RAM ( 12) pour l'affichage vidéo ( 13, 23), cette mémoire étant reliée à l'unité centrale de traitement CPU ( 1) par le bus, et cette mémoire étant destinée à être accédée par les instructions I/o (entrée/sortie) de l'unité centrale de traitement. 20) Micro-ordinateur selon la revendication 1, caractérisé en ce que N est égal à huit et m est égal à seize. ) Micro-ordinateur selon la revendication 2, caractérisé en ce que l'unité centrale de traitement CPU ( 1) est le microprocesseur Z 80 A. ) Micro-ordinateur selon la revendication 3, caractérisé en ce que le bus comporte un bus d'adresses et l'unité centrale de traitement CPU ( 1) comporte des bornes, d'adresses supérieures à 8 bits (A 8-A 15) et des bornes d'adresses inférieures à 8 bits (A -A 7) et la seconde mé- moire vive RAM ( 12) comporte des bornes d'adresses supé- rieures à 8 bits reliées aux bornes d'adresses inférieures à 8 bits de l'unité centrale de traitement CPU ( 1) par l'in- termédiaire du bus et les bornes d'adresses inférieures à 8 bits sont reliées aux bornes d'adresses supérieures à 8 bits de l'unité centrale de traitement ( 1) par le bus d'adresses. ) Micro-ordinateur selon la revendication 4, caractérisé en ce que le bus d'adresses comporte un bus d'adresses supérieures à 8 bits ( 5 H) pour relier les bornes d'adresses supérieures à 8 bits de l'unité centrale de trai- tement CPU ( 1) aux bornes d'adresses inférieures à 8 bits de la seconde mémoire vive RAM ( 12) et un bus d'adresses inférieures ( 5 L) à 8 bits pour relier les bornes d'adresses inférieures à 8 bits (Ao-A 7) de l'unité centrale de traite- ment ( 1) aux bornes d'adresses supérieures à 8 bits de la seconde mémoire vive RAM 12. 6 ) Micro-ordinateur selon la revendication 1, caractérisé en ce que le bus comporte un bus de données et l'unité centrale de traitement ( 1) comporte des bornes de données et la seconde mémoire vive RAM ( 12) comporte des bornes de données reliées aux bornes de données de l'unité centrale de traitement CPU ( 1) par le bus de données. ) Micro-ordinateur selon la revendication 1, caractérisé en ce qu'il comporte un moyen d'affichage pour afficher une image vidéo en réponse aux données vidéo enre- gistrées dans la seconde mémoire vive RAM ( 12).