FR 2867638 A1 20050916 FR 0502726 A 20050318 La présente invention concerne de façon générale des procédés et des dispositifs pour visualiser de l'information sur un terminal, et elle concerne plus particulièrement des procédés et des dispositifs pour adapter et visualiser, sur un terminal, des interfaces graphiques d'utilisateur telles que l'environnement d'exploitation Microsoft Windows , et des programmes d'application dans de tels envi- ronnements. Des interfaces graphiques d'utilisateur, comme l'environnement d'exploitation Microsoft Windows constituent l'environnement d'exploitation le plus répandu pour les logiciels d'applications les plus vendus dans le monde. De tels environnements sont préférés de façon caractéristique à cause de la facilité d'utilisation, de l'uniformité de l'inter-face d'utilisateur, de la visualisation de haute qualité, ainsi que pour d'autres raisons. Cependant, de tels environnements d'utilisateur ont été conçus pour l'utilisation avec des stations de travail et des micro-ordinateurs tels que des ordinateurs personnels. Bien qu'ils aient une grande souplesse, de tels micro-ordinateurs et sta- tions de travail présentent des difficultés concernant la sécurité, la fiabilité, la commodité de gestion et le coût. Bien que l'on sache que des terminaux de données offrent les avantages d'une meilleure sécurité et d'une plus grande facilité de gestion, par rapport à des micro- ordinateurs, et habituellement à un moindre coût, des terminaux ont de façon générale été incapables d'assurer la compatibilité avec les interfaces graphiques d'utilisateur les plus répandues. Des terminaux fonctionnant dans l'environnement X peuvent offrir certaines possibilités d'interface graphique fonctionnant sous Unix , mais, de façon caractéristique, ils sont coûteux, ils exigent une grande capacité de mémoire et ils sont peu compatibles avec les environnements Windows les plus répandus. Une autre option connue dans l'art antérieur est l'ordinateur personnel sans disque. Cependant, les ordinateurs personnels sans disque présentent plusieurs défauts. Dans la plupart des cas, des ordinateurs personnels sans disque fonctionnant dans un environnement client/serveur visualisent de l'in-formation de programme d'application en téléchargeant l'application à partir du serveur et en exécutant l'application de façon locale. Ceci exige que l'ordinateur personnel sans disque ait la puissance de traitement quelconque qui est exigée pour chaque application qu'il tente d'exécuter. Dans l'environnement actuel, ceci peut exiger huit mégaoctets de mémoire, ou plus, un processeur puissant, et ainsi de suite, ce qui fait qu'un ordinateur personnel sans disque est un appareil coûteux. De plus, les ordinateurs personnels sans disque offrent une sécurité limitée et ils peuvent exiger l'accomplissement de tâches de gestion considérables. Le système d'exploitation Windows NT procure un environnement de réseau client/serveur robuste, tout en offrant simultanément la compatibilité au niveau des programmes d'applications avec l'environ- nement Windows très répandu. Cependant, le système d'exploitation NT a été écrit pour des clients con- sistant en ordinateurs personnels, et non pour des terminaux. Il en résulte que des clients du système NT doivent généralement être robustes et, de ce fait, coûteux. De plus, le système Windows NT a été écrit pour l'environnement client/serveur, et non pour l'environnement multi-utilisateur. Le système d'exploitation WinFrame, proposé récemment par Ci- trix Systems, Inc., modifie le système d'exploitation Windows NT en l'étendant de façon à le faire fonctionner dans un environnement multiutilisateur, bien que l'application prévue dans l'art antérieur pour le système WinFrame portait sur des clients consistant en ordinateurs personnels, par opposition à des terminaux. Il existe donc un besoin portant sur un terminal qui soit relativement peu coûteux, fiable, d'une gestion aisée, offrant une bonne sécurité et capable de visualiser de l'information de programmes d'applications dans un environnement d'exploitation Windows multi-utilisateur. La présente invention offre une solution élé- gante aux inconvénients de l'art antérieur, dans la mesure où elle procure un terminal peu coûteux, capable de visualiser des logiciels d'applications compatibles avec un environnement à fenêtres. La présente invention procure en particulier un terminal de visualisation capable de communiquer avec un serveur d'applications exécutant un système d'exploitation multi-utilisateur. Ceci permet d'accéder à des applications Windows, dans de bonnes conditions de sécurité, à partir d'un appareil se trouvant sur le bureau de l'utilisateur. Dans un exemple de configuration, un serveur d'applications est établi sous la forme d'un ordinateur approprié quelconque exécutant le système d'exploitation WinFrameTM proposé par Citrix Systems, Inc. Le sys- tème d'exploitation WinFrameTM contient le système d'exploitation Windows NT, plus des extensions met-tant en oeuvre un protocole de visualisation connu sous l'appellation ICA-3, ainsi que des possibilités multi- utilisateurs. Dans un mode de réalisation envisagé à titre d'exemple, le terminal comprend une architecture ma- térielle basée sur la famille de processeurs Intel X86. De plus, le terminal n'offre qu'une mémoire centrale limitée, et il est généralement incapable d 'exécuter de façon locale des programmes d'applica- Lions modernes, tels que des programmes de traite-ment de texte, de travaux graphiques, de travail sur des hases de données, ou d'autre programmes très répandus, ou même le système d'exploitation Windows ou DOS lui-même. De cette manière, le terminal de la présente invention est nettement différent de terminaux X de l'art antérieur ou d'ordinateurs personnels sans disque, ou d'autres ordinateurs personnels auxquels on a donné une configuration correspondant à un environnement client/serveur. Il est important de noter que l'architecture de matériel ne met pas en oeuvre le bus IBM PC/AT classique, et que le microprogramme dans le terminal ne met en oeuvre ni le système d'entrée-sortie de base, ou BIOS, PC/AT standard, ni un système d'ex- ploitation à disques compatible PC standard. Le microprogramme du terminal met en oeuvre des extensions d'accès de réseau compatibles avec le serveur d 'applications, ici encore, par exemple, les extensions ICA-3 commercialisées par Citrix Systems. Une visualisation graphique à haute résolution est incorporée pour la commodité d'utilisation, et elle peut être monochrome (ceci comprenant le cas d'une gamme de gris) ou en couleurs, et il existe égale-ment des dispositifs d'entrée-sortie caractéristi- ques de l'environnement Windows, tels qu'une souris, un clavier, un écran tactile et d'autres ressources d 'entrée-sortie. De plus, le terminal comprend une interface de réseau capable de communiquer avec le serveur d'applications par l'intermédiaire de lignes RS232 classiques, de connexions Ethernet, de liaisons hertziennes, du réseau numérique à intégration de services (RNIS), de liaisons à fibre optique, de modems couplés au secteur, de câbles ou d'autres connexions. Lorsque le terminal est connecté au serveur d'applications, il visualise l'environnement d'exploitation Windows NT ou Windows 95, ceci englobant n'importe quels programmes d'applications exécutés par le serveur et auxquels l'utilisateur du terminal peut accéder. Dans la configuration envisagée à ti- tre d'exemple, le terminal apparaît à l'utilisateur comme étant fondamentalement identique à un ordinateur personnel beaucoup plus coûteux, moins sûr et plus difficile à gérer. Il en résulte que pendant le fonctionnement, le terminal de la présente invention offre de nombreuses fonctions qui sont normalement associées à un système multi- utilisateur, tout en offrant simultanément un grand nombre des fonctions souhaitables qui sont caractéristiques d'un environnement client/ serveur. Une caractéristique de la présente invention consiste dans la possibilité d'accomplir des tâches de calcul de façon indépendante du client, dans un environnement Windows. Ainsi, avec un système con-forme à la présente invention, un utilisateur défi- nit son environnement d'exploitation et cet environnement le suit dans tout le système. Un utilisateur pourrait donc ouvrir une session sur un terminal, définir un environnement, et ensuite ouvrir une session sur un autre terminal. Ce second terminal visualiserait automatiquement l'environnement défini par l'utilisateur au premier terminal. En plus de l'aptitude à visualiser de l'in- formation de programmes d'applications, le terminal de la présente invention comprend un mode d'établis- sement de configuration qui permet à l'utilisateur de définir la configuration d'une variété d'aspects fonctionnels du terminal. Pour permettre à des terminaux de la présente invention d'obéir à des ordres émis par des serveurs tels que ceux qui exécutent le système d'exploita- tion WinFrame, on a développé un système d'exploitation de terminal spécialisé qui émule un système d'exploitation d'ordinateur personnel classique, ou réagit par ailleurs aux appels dirigés vers un tel système d'exploitation. Le système d'exploitation de terminal comprend un bloc d'amorce pour initialiser et faire démarrer le système, suivi par un noyau qui charge des pilotes supplémentaires et un logiciel de commande, ceci comprenant le chargement d'un code client WinFrame modifié. L'exécution du code client WinFrame modifié comprend l'établissement d'une connexion à un serveur d'applications. En plus de l'aptitude à visualiser de l'in-formation de visualisation d'applications dans un environnement Microsoft Windows, la présente invention comprend également l'aptitude à communiquer avec d'autres serveurs ou ordinateurs hôtes exécutant des systèmes d'exploitation "non-Windows", par l'inclusion d'autres émulations ou personnalités de terminal résidentes, avec la possibilité de commuta- tion entre les diverses personnalités, au moyen d'une "touche spéciale". Une autre caractéristique de la présente in- vention consiste dans la réalisation d'une interface graphique d'utilisateur pour définir la configura- tion d'un terminal et d'autres tâches qui sont gé- rées de façon locale. En particulier, l'interface graphique utilise un ensemble de fenêtres et chaque fenêtre permet de reconfigurer une ou plusieurs caractéristiques du terminal ou d'autres tâches loca- les. Chaque fenêtre contient, arrangées en groupes, les sélections dont on peut définir la configuration dans cette fenêtre. Ces sélections, ou choix, entre lesquels l'utilisateur peut choisir, sont visualisés, ou peuvent être visualisés, par l'intermédiaire d'un menu déroulant ou d'un type similaire. Diverses structures de données sont associées à différents types de groupes et de sélections. Une caractéristique supplémentaire de la pré-sente invention consiste dans l'inclusion du système d'exploitation de terminal dans une mémoire non volatile rapide, dite "mémoire flash". La mémoire flash peut être actualisée par divers procédés, comprenant une communication par l'intermédiaire d'une interface appropriée, telle qu'un port parallèle, un port série ou un adaptateur de réseau, lorsque le terminal est placé dans un état prédéterminé. Un but de la présente invention est donc de procurer un terminal capable de visualiser de l'in-formation qui est générée par un serveur d'applications exécutant des programmes d'applications très répandus, qui fonctionne dans le cadre de l'environnement d'exploitation Microsoft Windows NT. Un but supplémentaire de la présente invention est de procurer un système d'établissement de configuration de terminal ayant une interface graphique d'utilisateur, pour définir les paramètres de fonctionnement d'un terminal. Un autre but supplémentaire de la présente invention est de procurer un terminal pour la visualisation d'une information de programmes d'applications qui émule un ordinateur personnel client, dans un environnement de réseau client/serveur. Encore un autre but supplémentaire de la pré- sente invention est de procurer un terminal ayant une combinaison de fonctions souhaitables, normale- ment associées à un environnement informatique multi-utilisateur, et de fonctions souhaitables norma- lement associées à un environnement client/serveur. Un but supplémentaire de la présente invention est de procurer un système d'exploitation de terminal qui permette la communication avec un environnement d'exploitation à fenêtres, tout en exécutant simultanément un système d'entrée-sortie de base, ou BIOS, PC/AT non standard, et un système d'exploitation à disques PC DOS non standard. Un but supplémentaire de la présente inven- tion est de procurer un dispositif et un procédé pour la mise à jour rapide et commode du système d'exploitation de terminal. Un autre but encore de la présente invention est de procurer de multiples personnalités résiden- tes pour un terminal, avec une commutation rapide entre les diverses personnalités, sans la nécessité de changer des cartes d'extension ou de couper l'alimentation du terminal. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre d'un mode de réalisation, donné à titre d'exemple non limitatif. La suite de la description se réfère aux dessins annexés, dans lesquels: La figure 1 montre une configuration généralisée d'un serveur d'applications et d'un terminal conforme à la présente invention. La figure 2 montre sous forme de schéma synoptique fonctionnel l'architecture de la présente 30 invention. La figure 3 montre sous forme de schéma synoptique l'architecture du circuit intégré spécifique de commande de la figure 2. La figure 4 montre une configuration générale 35 de l'architecture de logiciel d'un terminal conforme à la présente invention. La figure 5 montre sous forme de schéma synoptique simplifié l'interface d'établissement de configuration entre le Moteur d'Interface Graphique d'Utilisateur et le reste du système. La figure 6 montre sous forme d'organigramme une représentation, au niveau supérieur, du processus par lequel le terminal de la présente invention se connecte à un serveur d'applications. La figure 7A montre un écran d'établissement 10 de configuration, associé au logiciel de configuration de la présente invention. Les figures 7B1 - 7B3 montrent les structures de données qui sont associées au logiciel de configuration de la présente invention. En se référant maintenant à la figure 1, on voit un système simplifié conforme à la présente invention. En particulier, un seul serveur d'applications 10 communique de façon bidirectionnelle avec un ou plusieurs terminaux 12 par l'intermédiaire d'un réseau ou d'une autre liaison de communication 14 de type approprié. La liaison de réseau peut être une ligne RS232, un modem couplé au secteur, ou une connexion Ethernet, telle qu'une paire torsadée ou un câble coaxial, ou une autre liaison appropriée telle qu'une liaison à fibres optiques. Dans une configuration envisagée à titre d'exemple, dont on a déterminé qu'elle fonctionnait de façon satisfaisante, le serveur d'applications exécute un système d'exploitation tel que le système Windows NT , avec des extensions appropriées, comme celles proposées par Citrix sous la forme du système d'exploitation Winframe. Le protocole de fenêtres exploité à dis-tance de Citrix, ou ses extensions, comprennent le protocole ICA 3,0, ainsi que des améliorations qui offrent une véritable capacité de fonctionnement multi-utilisateur dans le cadre de l'environnement Windows NT. Pour une telle configuration, le serveur d'applications peut être par exemple un ordinateur personnel basé sur un processeur Intel Pentium ou '486, ou d'autres processeurs similaires, comme un processeur DEC Alpha ou un. processeur MIPS, ou de multiples processeurs, accompagnés d'un volume approprié de mémoire vive (ou RAM). Dans une configuration envisagée à titre d'exemple, le serveur peut avoir seize mégaoctets de mémoire vive pour le sys- tème d'exploitation Winframe, plus 1,8 mégaoctets de mémoire vive par utilisateur simultané, cette valeur dépendant de l'application particulière qu'exécute l'utilisateur. Dans des configurations appropriées, le ser- veur d'applications 10 peut également communiquer avec d'autres serveurs, comprenant un serveur de fichiers NetWare 16, un ordinateur hôte Unix 18, d'autres ordinateurs personnels 20, ou une passerelle Internet 22. De plus, par d'autres connexions telles qu'un routeur ou un autre serveur de communications 24, le serveur d'applications 10 peut également communiquer avec des terminaux éloignés 26, ou, par d 'autres moyens, avec des utilisateurs éloignés 28, connectés par des lignes téléphoniques commutées. En se référant ensuite à la figure 2, on pourra mieux apprécier l'architecture de matériel d 'un terminal conforme à la présente invention. En particulier, une unité centrale (UC) 100, de façon caractéristique un microprocesseur de la famille X86 et, dans un mode de réalisation envisagé à titre d'exemple, un microprocesseur 80386CXSA ou 486SXLC, reçoit des signaux d'horloge et de restauration pro-venant d'une logique d'horloge et de restauration 102. L'unité centrale communique avec la logique restante par l'intermédiaire d'un bus d'adresse 105, d 'un bus de données 106 et d'un bus de commande ou 1 1 CTRL, 108. Il est important de noter que, de façon caractéristique, les bus 105, 106 et 108 ne sont compatibles ni avec le standard IBM PC/AT, ni avec un autre standard quelconque d'ordinateur personnel, du tait que la présente invention est destinée à éviter un grand nombre, au moins, des pièges associés à des ordinateurs personnels fonctionnant dans un environnement de réseau. En particulier, le bus d'adresse 105 s'étend à partir de l'unité centrale 100 vers un circuit intégré spécifique (ou ASIC) 110, ainsi que vers un réseau de mémoire flash 112 et un contrôleur VGA 114. Le bus de données 106 communique de façon similaire avec le circuit intégré spécifique de commande 110, le contrôleur VGA 114 et un réseau de mémoire 116. Le bus de commande, ou CTRL, 108, fournit de façon similaire des signaux de commande au circuit intégré spécifique 110 et au contrôleur VGA 114. Une logique diverse 118 fournit au circuit intégré spé- cifique 110 des signaux CONFIG, IDC et DIAGCS. Le circuit intégré spécifique 110 communique avec le réseau de mémoire 116 par l'intermédiaire d'un bus d'accès direct en mémoire, ou DMA, 120, et il communique également avec la mémoire flash 112 par l'intermédiaire d'un bus PD 122. Le bus PD 122 assure également la communication entre le circuit intégré spécifique 110 et la mémoire flash 112, un contrôleur d'entrée/sortie série et parallèle 124, un contrôleur de clavier et de souris 126, ainsi qu'un contrôleur de réseau local, ou LAN, 128. De plus, le circuit intégré spécifique applique un signal FCS à la mémoire flash 112, il applique des signaux RAS, CAS et WE au réseau de mémoire 116 et il applique des signaux COM1, COM2 et PPCS au contrô- leur d'entrée/sortie série, ou SIO, 124. En outre, le circuit intégré spécifique 110 applique un signal KBCS au contrôleur de clavier/souris 126, et il applique un signal NETCS au contrôleur de réseau local 128. Enfin, le circuit intégré spécifique applique un signal de validation de haut-parleur SPEN à un haut-parleur 130. L'unité centrale 100 communique également avec le contrôleur d'entrée/sortie série, SIO, 124, le contrôleur de clavier/souris 126 et le contrôleur de réseau local, LAN, 128, par l'intermédiaire d'une partie du bus 105. De plus, le circuit intégré spécifique 110 applique des interruptions de matériel INTA, INTB et INTP au contrôleur d'entrée/sortie série, il applique des interruptions de matériel KBINT et MSINT au contrôleur de clavier/souris, ou KB/MS, 126, et il applique une interruption de matériel NINT au contrôleur de réseau local, ou LAN, 128. Le réseau de mémoire 116 est constitué de façon caractéristique par une mémoire vive dynamique, ou DRAM, bien que d'autres types de mémoire puissent être acceptables dans certains modes de réalisation. Cependant, contrairement aux ordinateurs personnels modernes, la capacité de mémoire vive dynamique dans le réseau 116 qui est nécessaire pour le fonctionnement du terminal sera comprise de façon caractéris- tique dans la plage de 512 kilooctets (Ko) à 4 mégaoctets (Mo). Dans un mode de réalisation envisagé à titre d'exemple, on utilise seulement 23 lignes d'adresse de mémoire et une ligne de sélection d'octet, ce qui limite l'espace de mémoire à 16 Mo. Dans d'autres modes de réalisation, des tailles d'espace de mémoire différentes peuvent être préférables. Dans un mode de réalisation envisagé à titre d'exemple, le circuit intégré spécifique (ou ASIC) de commande, 110, contient des blocs fonctionnels pour la commande de bus, la commande de mémoire vive dynamique (de façon caractéristique en mode de page rapide avec entrelacement), un temporisateur de système et un temporisateur de haut- parleur, et un contrôleur d'entrée/sortie. Le circuit intégré spécifique de commande peut également être réalisé sous la forme d'un réseau de portes ou d'un autre dispositif fortement intégré, et il est décrit de façon plus détaillée en relation avec la figure 3. Dans un exemple fonctionnel, on a montré qu'il était suffisant de donner à la mémoire flash 112 une taille de l'ordre de 512 Ko; cependant, dans d'autres applications, une taille s'élevant jusqu'à cinq mégaoctets, ou plus, peut être préférable. Bien que dans un mode de réalisation préféré, le réseau 112 consiste en une mémoire flash, dans certains mo- des de réalisation, une partie notable de la fonctionnalité de la présente invention serait conservée même si le réseau était constitué par une mémoire morte programmable de façon électrique (ou EPROM) et une mémoire vive statique (ou SRAM), ou par d'autres dispositifs de mémoire comparables. Le contrôleur d'entrée/sortie série, ou SIO, 124, communique avec les ports COM1, COM2 et d'im- primante (ou parallèle), portant respectivement les références 132, 134 et 136. Le contrôleur d'entrée/ sortie série et parallèle 124 peut être un disposi- tif du type 16552, comme celui commercialisé par Startech. Le contrôleur de clavier/souris 126 communique de façon similaire avec un clavier 138 et une souris 140, tandis que le contrôleur de réseau lo- cal, ou LAN, qui ne doit pas nécessairement être in- corporé dans tous les modes de réalisation, communi- que avec une interface de réseau local, 142. Dans un prototype envisagé à titre d'exemple, le contrôleur de clavier/souris 126 peut être un contrôleur de clavier standard, tandis que le clavier et la souris seront tous deux conformes au standard PS/2, mais dans au moins certains modes de réalisation, le contrôleur de clavier sera modifié pour être compatible avec l'interface de clavier à quatre fils qui est décrite dans le brevet des E.U.A. n 4 706 068. En- fin, le contrôleur de réseau local peut être n'importe quel contrôleur d'interface de réseau approprié, et il peut être conforme à n'importe quel standard de réseau admis, parmi lesquels lOBaseT, lOBase2, et autres. L'interface de réseau peut avoir une mémoire de 512 Ko, ou plus, pour une fonction d'enregistrement de code supplémentaire. Le contrôleur vidéo et graphique 114 est fonctionnellement associé à un second réseau de mémoire 144 pour enregistrer de l'information vidéo et graphique, qui est fournie à un moniteur 146 par l'intermédiaire d'un adaptateur MPS 148. Le contrôleur vidéo 114 peut être par exemple un dispositif Cirrus 5429, avec un convertisseur numérique/analogique à mémoire vive interne, et il peut avoir une mémoire vidéo de l'ordre de 1 mégaoctet, pour offrir des visualisations graphiques à haute résolution compatibles avec, par exemple, au moins le standard Video Graphics Array. Il apparaîtra à l'homme de l'art que les exigences de mémoire tota- les sont nettement inférieures à celles d'un ordinateur personnel ayant des capacités similaires, pour visualiser des programmes d'applications Windows. Un signal de mise en veille 150 peut être fourni par le circuit intégré spécifique 110. On peut utiliser divers procédés pour produire un signal de mise en veille. Par exemple, dans une version monochrome de la présente invention, un signal est appliqué à l'alimentation du moniteur, de façon à désactiver le signal vidéo et à diminuer la puissance exigée par l'alimentation du moniteur. Dans une version en cou-leurs, les signaux de synchronisation sont manipulés conformément au standard VESA pour couper l'alimentation du moniteur. Il apparaîtra à l'homme de l'art que, dans le futur, un grand nombre de ces fonctions, comprenant l'unité centrale, pourront être b incorporées dans un ou plusieurs dispositifs à très haut niveau d'intégration (ou VLSI), tels que des circuits intégrés spécifiques (ou ASIC), des réseaux de portes, ou d'autres dispositifs. Selon une caractéristique spéciale du maté- riel de la présente invention, le système d'exploitation de terminal qui est enregistré dans la mémoire flash 112 peut être mis à jour par divers pro-cédés, comprenant la communication par l'intermédiaire d'une interface appropriée, telle que le port parallèle 136, un port série 132 ou 134, ou un adaptateur de réseau tel que l'interface de réseau local, ou LAN, 142. Dans un mode de réalisation envisagé à titre d'exemple, on peut mettre à jour la mémoire flash par communication avec un système hôte lorsque le terminal est placé dans un état prédéterminé, comme par exemple par la connexion d'une fiche de bouclage, une séquence de touches appropriée ou d'autres moyens appropriés. Dans une telle configuration, le téléchargement vers le système de mémoire du terminal est validé, tandis que la communication avec l'hôte est toujours permise. L'hôte fournit alors, par l'intermédiaire de la liaison de communication, des caractéristiques d'exploitation mises à jour, qui sont dirigées soit vers la mémoire vive dynamique 116 du terminal, soit directement vers la mémoire flash 112. Ensuite, l'information de système d'exploitation mise à jour est enregistrée dans la mémoire flash 112, si nécessaire, et le terminal est ramené dans un état de fonctionnement normal dans lequel le téléchargement est invalidé. Dans les conditions normales, le système de la figure 2 commence à fonctionner à la suite d'une restauration, en commençant l'exécution du code d'amorce qui est contenu dans le réseau de mémoire flash 112. Le réseau de mémoire flash 112 peut être organisé en deux banques, l'accès à chacune d'elles se faisant à une adresse prédéterminée de l'espace de mémoire de l'unité centrale, par exemple C00000 - DFFFFF et E00000 FFFFFF, tandis que le reste de l'espace de mémoire est alloué pour réaliser un grand nombre des fonctions normales d'un ordinateur personnel, comme indiqué dans le Tableau 1 ci-dessous. Il apparaîtra à l'homme de l'art que, dans un mode de réalisation envisagé à titre d'exemple, les adresses de mémoire vidéo/graphique sont déca- lées de huit mégaoctets au-delà des adresses de mémoire d'ordinateur personnel classiques. Dans un tel mode de réalisation, la puce VGA peut être utilisée dans un mode "compatible" (c'est-à-dire avec le mode d'adressage linéaire hors fonction), de façon que la puce VGA réagisse seulement à un tampon d'image à A0000h - AFFFFh (en mode graphique) ou B0000h - B7FFFh (pour le modeMGA) ou B80000h - B8FFFh (pour le mode CGA) et ces adresses seront décalées vers 8A0000h - 8AFFFFh, et ainsi de suite. Les adresses ont été décalées pour permettre à la Banque 0 de la mémoire vive dynamique d'être dans une situation contiguë, tout en permettant simultanément (comme on l'envisagera ci-après) l'émulation de fonctions normales d'ordinateur personnel, d'une manière suffi- sante pour permettre la visualisation de l'information de programmes d'applications Windows. MEMOIRE FLASH, BANQUE 0 Mémoire Flash, Bloc d'Amorce MEMOIRE FLASH, BANQUE 1 Fichiers Mémoire Flash, Système de Carte réseau Mémoire Flash Supplémentaire Contrôleur Vidéo/Graphique DRAM, BANQUE 1 DRAM, BANQUE 0 TABLEAU 1 La Banque 0 peut être organisée en un bloc d'amorce de 16 Ko dans la plage d'adresses supérieure, par exemple FFC000H - FFFFFFH, suivi par deux blocs de paramètres de huit Ko, et encore suivi par un ensemble de blocs principaux descendant jus-qu'à l'adresse F80000H (pour une allocation de 512 Ko), ou descendant jusqu'à F00000H (si une allocation de 1 Mo est effectuée), ou jusqu'à E00000H (si une allocation de 2 Mo est effectuée). Les blocs principaux de mémoire sont organisés de façon caractéristique à la manière d'un système de fichiers. La Banque 1 de la mémoire flash est allouée de façon caractéristique à un dispositif de système de fi- chiers, et elle peut s'étendre à partir de l'adresse DFFFFFH en descendant jusqu'à 000000H. En se référant ensuite à la figure 3, on peut mieux apprécier le circuit intégré spécifique 110. Un tampon d'horloge 160 reçoit un signal CLK50 et il applique des signaux d'horloge à une logique de res- tauration et de synchronisation 162, une logique de FFFFFF E00000 DFFFFF C00000 BFFFFF B80000 B7FFFF B00000 AFFFFF 800000 7FFFFF 400000 3FFFFF 000000 commande de mémoire vive dynamique 164 et une logique de commande de temporisateur 166. Un tampon d'interruptions (INT) 168 reçoit des signaux INTP, INTA, INTB, MSINT, KBINT et NINT, comme indiqué dans le Tableau 2. Le tampon INT applique un ensemble de signaux à une logique de commande d'interruptions 170, qui reçoit un signal de commande provenant du tampon d'entrée de commande d'unité centrale, 172, et un signal de commande de temporisateur provenant de la logique de commande de temporisateur 166, et qui génère un signal de sortie INTR, qui est appliqué à l'unité centrale. Le tampon d'entrée de commande d'unité centrale 172 applique également un signal de commande à une logique de commande de cycle 174, qui applique à son tour un signal de commande à la logique de commande de mémoire vive dynamique 164. La logique de commande de mémoire vive dynamique 164 reçoit également un signal de régénération provenant de la logique de commande de temporisa- teurs 166; la logique de commande de temporisateurs 166 génère également un signal de validation de haut-parleur, SPEN. Dans le mode de réalisation envisagé à titre d'exemple, la logique de commande d'interruptions 170 n'est pas compatible avec un circuit standard 8259; de façon similaire, le temporisateur de sys- tème, ou logique de commande de temporisateur 166, n'est pas compatible avec un circuit standard 8254, et il fonctionne à une fréquence supérieure à celle d'un dispositif compatible avec un circuit standard 8254. Le résultat consiste en ce que certaines des interruptions de fréquence supérieure qui sont émi- ses par la logique de commande de temporisateur sont masquées dans le noyau, mais d'autres sont transmi- ses pour donner approximativement, en moyenne, le temps normal entre des interruptions. La fréquence supérieure permet ainsi l'émulation de la fonction- nalité standard d'un ordinateur personnel, bien que l'intervalle de temps entre des interruptions émulées de fréquence inférieure (standard) puisse ne pas être uniforme. Le circuiL i.nLégré spécifique 110 comprend également un tampon d'entrée d'adresse d'unité centrale 176, qui reçoit des signaux BEO, BEl et Al-A23, comme indiqué dans le Tableau 2, et qui applique un signal de sortie à un multiplexeur d'adresse de mémoire vive dynamique 178, ainsi qu'à une logique de commande de sélection de puce de mémoire/entrée-sortie, 180. La logique de commande de sélection de puce de mémoire/entrée-sortie 180 four-nit une variété de signaux de sortie, comprenant des signaux FLASHCSO (FCSO) et FLASHCS1 (FCS1), et autres, comme indiqué dans le Tableau 2. En outre, le circuit intégré spécifique 110 reçoit des signaux DO-15 provenant du bus de données 106 et il les fournit au tampon d'entrée de données d'unité cen- traie 182. Le tampon 182 fournit des données à un tampon/circuit de bascules de sortie de données 184, qui fournit des signaux de sortie BDO- 15. Le tampon 182 fournit également des données à une logique de commande d'alimentation 186, qui fournit des signaux SLEEP et PWRDWN. Les signaux BDO-15 peuvent également fournir des données à un tampon d'entrée de données 188, qui fournit à son tour ces données à un tampon de sortie de données d'unité centrale 190. La logique de com- mande d'interruptions 170 fournit également des si- gnaux au tampon 190. Un registre de configuration 192 fournit également au tampon de sortie de données d'unité centrale un signal de configuration (comme une configuration de matériel, par exemple le nombre de mémoires flash et/ou de mémoires vives dynami- ques, ou un signal provenant de l'alimentation du moniteur ou d'une carte enfichable, par exemple une carte de réseau), et le tampon de sortie de données d'unité centrale peut fournir des données à l'unité centrale sur le bus 106. En se référant ensuiLe à la figure 4, on pourra mieux comprendre les éléments clés du système d'exploitation de terminal de la présente invention. On notera d'après ce qui précède que le matériel de la présente invention n'est pas compatible avec une structure de bus AT standard. A la place, la pré-sente invention repose sur l'utilisation d'un micro-programme pour fournir aux couches supérieures de logiciel les services de système d'entrée/sortie de base (ou BIOS) qui sont exigés. Dans un mode de réa- lisation envisagé à titre d'exemple, le microprogramme est conçu pour être exécuté dans un mode 8086 virtuel, dans lequel des composants de matériel compatibles AT, tels que les contrôleurs d'interruptions et les temporisateurs, sont émulés par logi- ciel, de la façon la plus exacte possible. De plus, bien qu'un contrôleur de clavier standard soit utilisé dans un mode de réalisation envisagé à titre d'exemple, dans le cas où un contrôleur non standard est utilisé, l'interface avec un tel dispositif se- rait également émulée. Des signaux tels que des signaux d'entrée/sortie provenant des ports de tels composants de matériel et dirigés vers ceux- ci, sont interceptés pour faciliter l'émulation. De plus, sous la commande d'une porte A20 émulée, les fonc- tions de gestion de mémoire du processeur pourraient être activées pour simuler le bouclage qui se pro-duit à 1 Mo dans un matériel normal. En continuant à se référer à la figure 4, on note que le système d'exploitation de terminal corn- mence l'exécution par un bloc d'amorce 300, après quoi un noyau 305 est chargé. Le noyau 305 procure un grand nombre des fonctions d'interception et de réimplantation en mémoire de la présente invention, comme on l'expliquera plus particulièrement ci-après. A l'achèvement de l'exécution du noyau 305, le code IO.SYS 310 est chargé. Ensuite, le code COMMAND.COM 315 est chargé, et ceci est suivi par l'exécution de commandes qui sont fournies par un fichier AUTOEXEC.BAT. Le fichier AUTOEXEC.BAT peut contenir par exemple des pilotes de clavier et de souris, bien que ces deux pilotes puissent ne pas être utilisés dans toutes les occasions, ainsi qu'un pilote VGA XMS. Il peut également comprendre un autre code facultatif, comprenant le démarrage d'une séquence d'auto-test, qui est exécutée si des condi- tions appropriées existent. Dans un mode de réalisation envisagé à titre d'exemple, une fiche de bouclage installée sur un port de communication provo-que l'exécution de la séquence d'auto-test. Le code EXEC.COM 325 est ensuite chargé. A ce point, en fonction de la forme de réalisation, soit le système entre dans le mode d'établissement de configuration, soit des commandes d'utilisateur peu-vent provoquer une entrée dans le mode d'établissement de configuration, ou bien le chargement du code de connexion à un réseau. Dans un mode de réalisation qui est actuellement mis en oeuvre, le système entre dans le mode d'établissement de configuration pour obtenir des données de configuration présentes, et il passe ensuite au chargement du code de con- nexion à un réseau. Si la forme de réalisation permet à l'utilisateur d'effectuer une sélection, et si le mode d'établissement de configuration est sélectionné par l'utilisateur, le code EXEC.COM 325 effectue un branchement pour exécuter le code SETUP (Etablissement de Configuration), ou GUI (Interface Graphique d'Utilisateur), 330. Si le mode d'établissement de configuration n'a pas été sélectionné, le code EXEC.COM 325 coopère au chargement et au dé-chargement de pilotes de réseau en 335, et il com- menue à exécuter le code de connexion à un réseau (ici encore, un réseau ICA, "Thinwire", Com, ou autre), en 340. Dans un mode de réalisation actuelle-ment préféré, le code de connexion à un réseau comprend une version notablement modifiée du système Winframe pour un client DOS, dont la version stan- dard est commercialisée par Citrix Systems, Inc. En se référant maintenant à la figure 5, on peut mieux apprécier la coopération du système d'exploitation de terminal et de l'architecture de maté- riel de la présente invention. En particulier, la couche la plus basse qui est représentée sur la figure 5 est la couche Matériel et Système d'Entrée/ Sortie 400. La couche immédiatement supérieure est la couche Pilotes 402, tandis que la couche supé- rieure est la couche Applications 404. A la mise sous tension, les tests de mise sous tension et d'initialisation, 406, dans la couche Matériel, sont exécutés dans le cadre du bloc d'amorce 300. Les tests de mise sous tension et d'initialisation 406 sont exécutés partiellement à partir du système de mémoire flash 112 et partielle-ment à partir de la mémoire vive 116. Une fois que les auto-tests à la mise sous tension sont achevés, le terminal passe à la séquence d'amorce décrite de façon générale ci-dessus en relation avec la figure 4, comprenant le reste du bloc d'amorce 300, une séquence AUTOEXEC 408 et la séquence COMMAND.COM, indiquée en 315. Les fichiers AUTOEXEC et COMMAND.COM sont conservés dans la mémoire flash. L'achèvement de l'exécution de la séquence COMMAND.COM entraîne le chargement du fichier 2867638 23 AUTOEXEC. Le fichier AUTOEXEC provoque à son tour le chargement de la séquence EXEC.COM 325. Comme indiqué ci-dessus, la séquence EXEC.COM 325 peut se brancher soit vers le Module d'Etablissement de Con- figuration 330, soit vers le Module de Connexion à un Réseau 340. A l'installation initiale, ou à n'importe quel moment par la suite auquel des paramètres de fonctionnement du terminal doivent être vérifiés ou changés, le Module d'Etablissement de Configura- tion 330 est exécuté. Le Module d'Etablissement de Configuration 330 reçoit de l'information à partir d'un ou de plusieurs fichiers de données d'établissement de configuration 418, et il lance le moteur de GUI (ou Interface Graphique d'Utilisateur) 420. Le moteur de GUI 420 communique à son tour avec un pilote de clavier 422, un pilote de souris 424 et le pilote de services de fichiers et de mémoire 426 du système d'exploitation de terminal. De plus, le moteur de GUI 420 communique également avec le système d'entrée/sortie vidéo 428, qui fournit à son tour des données au contrôleur vidéo 430, qui peut par exemple être basé sur un processeur graphique Cirrus 5429, pour générer une visualisation vidéo pendant la séquence d'établissement de configuration. On dé- crira la séquence d'établissement de configuration de façon plus détaillée en relation avec la figure 5. Le pilote de clavier 422 communique à son tour avec le matériel de contrôleur de clavier 432, qui peut par exemple être un système d'entrée/sortie de clavier PS/2 classique, ou une interface de bus série universelle (USB), et qui peut également com- prendre dans certains modes de réalisation une in- terface de clavier à quatre fils, comme celle qui est décrite dans le brevet des E.U.A. n 4 706 068 mentionné précédemment. De façon similaire, le pi- lote de souris 424 communique également de façon caractéristique à des moments appropriés avec un système d'entrée/sortie de souris 434. Par de telles opérations, les parties de services de mémoire et de fichiers en mémoire flash, 426, du système d'exploitation de terminal, seront exécutées de façon caractéristique à partir de la mémoire flash et de la mémoire vive. Comme il est envisagé de façon plus détaillée en relation avec la figure 5, le processus d'établissement de configuration permet à l'utilisateur de spécifier l'information de configuration du terminal, comprenant des paramètres tels que l'inter- face de réseau et des détails de configuration asso- ciés, la langue, les couleurs et d'autres paramètres. Une fois que ces paramètres sont spécifiés, les données sont enregistrées dans les fichiers de données de connexion 440. A ce point, l'utilisateur est prêt à quitter le Module d'Etablissement de Configuration de Termi- nal 330 et de retourner à la séquence EXEC.COM. Lorsqu'il est autorisé à continuer, le processus EXEC.COM 325 peut être commandé de façon à se bran- cher vers le Module de Connexion à un Réseau 340. Le Module de Connexion à un Réseau 340 commence son exécution en prélevant les données enregistrées dans les fichiers de données de connexion 440 et dans la ligne de commande du module de connexion, ce qui a pour effet de communiquer au serveur d'applications la manière de communiquer avec le reste des couches de pilotes et de matériel du terminal. En particu- lier, le module de connexion à un réseau communique avec le pilote de clavier 422, le pilote de souris 424, le système d'entrée/sortie vidéo 428 et la par- tie de services de mémoire et de fichier 426 du sys- tème d'exploitation de terminal. De plus, le module de connexion à un réseau est également connecté à une interface série de matériel 442 ainsi que, dans certains modes de réalisation, à une interface de réseau 444, réalisée par matériel. Les pilotes de réseau 444 sont exécutés à partir de la mémoire vive 116 dans un mode de réalisation envisagé à titre d'exemple, mais ils peuvent être exécutés à partir de la mémoire flash 112. L'interface série 442 peut être une interface RS232 classique, mais elle peut également être une autre forme de connexion série, comme le Bus Série Universel, ou USB. En se référent ensuite à la figure 6, on peut mieux apprécier le fonctionnement du moteur de GUI 420 qui est représenté sur la figure 5, pendant l'exécution du module d'établissement de configuration du terminal 12. Le moteur de GUI fonctionne seulement pendant le mode d'établissement de configuration, et il procure une interface graphique d'utilisateur rudimentaire pendant l'opération d'établissement de configuration. Comme indiqué en relation avec la figure 5, ci-dessus, le fonctionnement correspondant à la fi- gure 6 commence lorsque la séquence d'établissement: de configuration est appelée au cours de l'amorçage du terminal. La séquence d'établissement de configu- ration peut être appelée à partir d'une séquence d'appuis sur des touches, ou par n'importe quels au- tres moyens commodes et appropriés. La séquence d'établissement de configuration commence par appe- ler le code d'établissement de configuration 502, qui extrait à son tour de l'information à partir de fichiers de données d'établissement de configuration 418. Les fichiers de données d'établissement de con- figuration 418 identifient les options disponibles dans la configuration du terminal. Le code d'éta- blissement de configuration 502 communique de façon bidirectionnelle avec une structure de mémoire vive 504, et il commande également l'écriture dans la structure de mémoire vive 504 d'une information de connexion existante, provenant des fichiers de don- nées de connexion 440. Le moteur de GUI 42U communique également de façon bidirectionnelle avec la structure de mémoire vive, pour établir et visualiser l'information présente, dans une disposition que l'on décrit ci-après par les termes de zones, grau- pes et sélections. De plus, une interface de maté-riel 506 fournit de l'information vidéo au contrôleur vidéo 430, tout en réagissant à l'information qui est reçue à partir de l'utilisateur par l'intermédiaire de la souris 260 et du clavier 250. Le code d'établissement de configuration per-met à l'utilisateur de passer de façon cyclique par un ensemble de menus de configuration pour les caractéristiques fonctionnelles du terminal, comme la langue qui est visualisée sur le terminal, le procé- dé de connexion à un réseau, et autres. La figure 7A montre une illustration d'un écran d'établissement de configuration qui est utilisé dans le mode de configuration du terminal. Dans un mode de réalisation préféré, les écrans d'établissement de configu- ration sont visualisés de manière graphique. Au fur et à mesure que l'utilisateur passe de façon cyclique par les écrans de configuration, les données de configuration peuvent être mises à jour sélective-ment par l'utilisateur, en utilisant le clavier et la souris. Les données mises à jour sont conservées dans la structure de mémoire vive 504, avant d'être écrites dans les fichiers de données de connexion 436. Cependant, dans un mode de réalisation qui est actuellement préféré, certaines des données peuvent être mises à jour de façon dynamique, tandis que d'autres données ne sont pas mises à jour avant que la séquence d'établissement de configuration ne soit achevée. A l'achèvement de la séquence d'établissement de configuration, comprenant l'écriture de don-nées de configuration restantes quelconques dans les fichiers de données de connexion 436, la séquence d'établissement de configuration se clôture et retourne au code EXEC.COM 325, pour le lancement du module de connexion à un réseau 340 qui est représenté sur la figure 5. En se référant toujours à la figure 7A, on note que la fenêtre globale dans laquelle les don--nées apparaissent sera appelée ici une zone 600. A l'intérieur de chaque zone 600 se trouvent un ou plusieurs groupes 610, et chaque groupe 610 comprend une ou plusieurs sélections 620. Ainsi, dans l'exemple de la figure 7A, le groupe "Communication" comprend les sélections Port Série, TCP/IP, SPX et IPX, et à chacune d'elles est associée une région 630 indiquant que cette sélection a été choisie, ou sélec- tionnée. En se référant ensuite aux figures 7B1-7B3, on voit les structures de données qui sont associées au logiciel de configuration. En particulier, on trouve une liste de pointeurs de zone dans une structure LISTE ZONES 700. Les structures qui sont. pointées par la liste de zones comprennent des limi- tes, une taille, un titre et des groupes associés pour toutes les zones qui sont définies par le pro- cessus SETUP (Etablissement de Configuration). Comme indiqué précédemment, chaque zone apparaît sous la forme d'une fenêtre sur l'écran. De plus, toutes les zones qui sont visualisées au moment présent sont listées dans la structure LISTE ZONES VISU 702. Dans un mode de réalisation envisagé à titre d'exemple, la première zone listée est visualisée sous la forme de la zone située au fond, et la dernière zone lis- tée est la zone qui est visualisée dans la position supérieure. Dans le mode de réalisation envisagé à titre d'exemple, le chevauchement de fenêtres est permis, bien que le chevauchement ne soit pas nécessairement exigé dans tous les modes de réalisation. La référence 704 désigne la structure de don-nées LISTE GROUPES, qui liste tous les groupes définis dans le processus SETUP (Etablissement de Configuration), dans toutes les zones se trouvant dans la structure LISTE_ZONES 700. Comme indiqué précédemment, chaque zone comprend de façon caractéristique ou plusieurs groupes. Une structure de données facultative LISTECHAINES, 706, peut également être incorporée, et une structure LISTE FICHIERS 708 est incorporée à titre de répertoire pour des images en format de grille de bits, ou "bitmap", qui peuvent être utilisées dans de multiples cas dans les diverses zones, groupes et sélections. On peut voir en 710 que la structure LISTE_ZONES 700 comprend un bloc pour un identifica- teur de zone, ID, 712, un pointeur désignant la zone suivante, SUIV, 714, un pointeur désignant la zone précédente, PRECED, 716, et un pointeur de structure 718. Le pointeur de structure 718 associé à chaque identificateur de zone, ID, 712, désigne une struc- ture de zone 715 qui comprend l'identificateur de zone, ID, 712, ainsi qu'un article ABS _X 720 et un article ABS Y 722, pour donner la position de cette zone par rapport au coin supérieur gauche de la vi- sualisation (dans un mode de réalisation envisagé à titre d'exemple). La structure de zone 714 comprend également un article RANGEES 724 et un article COLONNES 726 qui spécifient conjointement la taille de la zone. Un article INDICATEURS 728 spécifie si une bordure s'étend autour de la zone. Un article POSITION TITRE 730 et un article BARRE TITRE 732 spécifient le texte du titre et sa position dans la barre de titre de la zone particulière, tandis qu'un article LONG CHAINE MAX 734 spécifie le nombre maxi-mal de caractères que l'on peut utiliser pour le ti- tre. De plus, la structure de zone 714 peut égale-ment comprendre un article 736 pour le nombre de groupes qui sont contenus dans la zone particulière. Un article PTR SOU ZONE 738 spécifie le point sensi- ble du pointeur de souris dans la zone, tandis qu'un article BOUTON DEFAUT 740 spécifie le bouton dans la zone qui sera le bouton d'opération par défaut. Le bouton d'opération par défaut sera activé sous l'effet de l'appui sur la touche "Entrée". Un article BOUTON ANNUL 742 spécifie le bouton d'annulation, qui sera activé sous l'effet de l'appui sur la touche "Echappement". Enfin, une liste de pointeurs, à raison d'un pour chaque groupe associé à la zone, est spécifiée en 744A-744N. Chaque pointeur de groupe 744 désigne un bloc de structure de groupe 746 associé, que l'on envisagera ultérieurement. On peut également définir pour la zone une liste de touches spéciales. La structure de la LISTE ZONES VISU, repré- sentée en 748, est fondamentalement identique à la structure de la LISTE ZONES 700 et elle comprend des blocs pour un identificateur de zone (ID), et des pointeurs de zone suivante, de zone précédente et de structure. Comme avec la LISTE ZONES 700, la LISTE ZONES VISU 748 désigne également la structure de zone 714. Une structure similaire pour la LISTE GROUPES 704 est représentée en 750, et elle comprend un identificateur de groupe (ID) 752, un pointeur de groupe suivant (SUIV) 754, un pointeur de groupe précédent (PRECED) 756 et un pointeur de structure de groupe 758. Une structure similaire pour la LISTECHAINES 706, qui est facultative, peut également être incorporée, et elle peut comprendre un identificateur de chaîne (ID) 760, un pointeur de chaîne suivante (SUIV) 762, un pointeur de chaîne précédente (PRECED) 764 et un pointeur de structure de chaîne 766. En se référant à nouveau au pointeur de structure de groupe 758, on note qu'il désigne le bloc de structure de groupe 746 et qu'il comprend l'identificateur de groupe (ID) 752, un article IDSELECT PARENT 780 pour identifier la sélection qui, lorsqu'elle sera activée, fera monter automatiquement ce groupe, un article COMPTE POINTS SENS 782 pour identifier le nombre de points sensibles de souris dans le groupe, et des articles DEBUTG X et DEBUTGY, respectivement 784 et 786, pour spécifier la position relative du groupe dans la zone. Dans un mode de réalisation envisagé à titre d'exemple, les positions du groupe et de la sélection sont spéci- fiées par rapport au coin supérieur gauche de la zone qui les contient; on peut cependant définir d'autres relations qui sont également acceptables; on peut par exemple spécifier la position d'une sélection par rapport à la position de son groupe. Le point le plus important est de garantir que tous les éléments d'une zone conservent leur position à l'intérieur de la zone si la zone est déplacée. Le bloc de structure de groupe 746 comprend également des articles RANGEES et COLONNES, respec- tivement 788 et 790, pour spécifier la taille du groupe, ainsi qu'un article INDICATEURSG 792 pour spécifier la frontière du groupe. De plus, un article POSITION TOUCHE RAPIDE 794 et un article APPUIS TOUCHE RAPIDE 796 peuvent également être spécifiés pour des combinaisons d'appuis sur des touches spéciales qui sont associées au groupe. En outre, et de façon similaire à la structure de zone, il peut exister des articles pour la position du titre, 798, l'étiquette du groupe, 800 et la longueur de chaîne maximale, LONG CHAINE MA{ 802. De plus, un article NOMBRE SELECTIONS 804 est incorporé pour identifier le nombre de sélections qui sont contenues dans un groupe. Ensuite, un article 806 appelé LIEN_ID_ZONE est incorporé à titre de référence en retour à l'identificateur de zone, ID, 712, auquel le groupe particulier est associé. L'article LIEN ID ZONE 806 n'est pas exigé dans tous les cas, mais il contribue à améliorer les performances, au moins dans certains cas. Enfin, chacun des articles d'une liste d'articles de pointeurs 808A à 808N désigne une structure de sélection qui est associée au groupe particulier. Comme on l'envisagera ci-après, diverses structures de sélection peuvent être associées à chaque groupe, mais certains éléments sont communs parmi les divers types. Par conséquent, le premier pointeur 808A désigne un bloc de structure COMMUN SELECT 810. En se référant à nouveau au bloc de structure de zone 714, on note que l'article de bouton de défaut 740 et l'article de bouton d'annulation 742 désignent également le bloc de structure COMMUN SELECT 810. Le bloc de structure COMMUN SELECT 810 com- prend un article d'identificateur de sélection (ID) 812, un article 814 fournissant une référence en re- tour à l'identificateur de groupe, des articles RELX et REL_Y, 816 et 818, ainsi que des articles RANGEES et COLONNES 820 et 822, pour spécifier la position et la taille de la sélection, des articles POS TOUCHE RAPIDE et CARACTERE TOUCHE RAPIDE 824 et 826 pour spécifier les combinaisons de touches spé- ciales qui sont associées à la sélection, un article LONG CHAINE MAX 828 et un article CHAINE SELECT 830 pour spécifier la taille maximale et le titre pour la sélection, et un article SINDICATEURS 832 pour spécifier les caractéristiques de la sélection. De plus, il existe également un article TYPE SELECT 834. Comme indiqué précédemment., différents types de sélections sont disponibles, et on se référera à nouveau à la figure 7A. Les différents types de sélections qui peuvent être fournis dans un groupe dépendent du type de données exigées à cette étape pour définir la configuration du terminal. Dans certains cas, les choix font intervenir seule-ment l'appui sur un bouton (voir les boutons 640); dans d'autres, une sélection fait intervenir l'activation ou la désactivation d'une fonction, comme une case à cocher (voir 650 sur la figure 7A); dans d'autres, on doit faire un choix parmi plusieurspossibilités, comme indiqué dans les groupes "Communication" et "Port Série" 660 et 670 de la figure 7A. Dans d'autres encore, on peut sélectionner une image, tandis que dans d'autres, il est nécessaire de sélectionner un texte spécifique. Dans certains cas, une opération de saisie est exigée (680 sur la figure 7A), tandis que dans d'autres, on doit remplir un champ parmi un grand nombre de ceux-ci. Bien que ces types de sélections soient ceux qui ont été mis en oeuvre dans un mode de réalisation envisagé à titre d'exemple, la liste n'est pas exhaustive et d'autres sélections peuvent aisément être mises en oeuvre, sur la base de ce qui est indiqué ici. Pour une sélection du type "champ à remplir", il existe des articles de position initiale de cur- seur et de position finale de curseur, 836 et 838, ainsi qu'un article "premier visualisé" 840 pour identifier à partir de quel caractère de la chaîne la visualisation doit être effectuée. De plus, un article RELXETIQUETTE 842 est prévu, ainsi qu'un article REL Y ETIQUETTE 844 et un article CHAINE ETIQUETTE 846. Pour un type de sélection "un parmi plu- sieurs", il existe des articles NOMBRE LIGNES DE SEL et NOMBRE COLONNES DE SEL, respectivement 848 et 850. Il existe également des articles pour le nombre d'options 852 et pour l'option prise par défaut 854, ainsi qu'un pointeur de touche rapide 856 et un pointeur d'indicateur 858, pour indiquer le nombre d'options qui sont actives. Enfin, il existe égale- ment un article de taille de sélection 860. Pour un type de sélection "image", on doit spécifier seulement un article pour l'identificateur de fichier (ID) 708 et un pointeur d'image 862. Pour un type de sélection "champs", il existe un article d'identificateur de "groupe enfant" (ID) 864, ainsi qu'un pointeur de groupe enfant, qui dé--signe une structure de groupe du type représenté dans le bloc de structure de groupe 746. Le groupe enfant sera remonté automatiquement lorsque la sélection parente sera activée et un champ d'un groupe de champs sera sélectionné. Pour une sélection du type "liste de chai- nes", des articles sont incorporés pour le nombre d'options, 868, la longueur maximale du titre de l'option (ou LONG OP MAX) 870, un article de décalage de visualisation en direction horizontale, 872, et un article de décalage de visualisation en direc- tion verticale, 874, ainsi qu'une position d'étiquette X 878 et une position d'étiquette Y 880. En-fin, il existe un article de chaîne d'étiquette 882 et un article de taille de chaîne de sélection 884. En se référant à nouveau à l'article ZONE POINTEUR SOU 738, on note que le point sensible du pointeur de souris est spécifié par une structure qui comprend un article d'identificateur de zone (ID) 900, un article d'identificateur de groupe (ID) 902 et un identificateur de sélection (ID) 904. De plus, il existe un article de type de sélection d'option 906 pour spécifier le type de sélection au--quel un point sensible particulier est associé. En outre, des articles de référence en retour 908 et 910 sont incorporés pour l'identificateur de groupe (ID) dans la zone, et pour l'identificateur de sé- lection (ID) dans le groupe. De plus, quatre articles 912A-D spécifient les positions supérieures gauches en X et Y, ainsi que les positions inférieures droites en X et Y pour le point sensible de la souris, conjointement à un article 914 pour des indicateurs de souris qui provoquent l'activation du point sensible de la souris lorsque le menu approprié est visualisé. En plus des points sensibles dans ce qui précède, des points sensibles supplémentaires sont placés en haut et en bas d'une visuali- sation de liste, pour permettre le défilement, et dans la partie de barre de titre d'une zone, pour permettre de déplacer la fenêtre de zone. En plus des structures précédentes, une structure de données est également incorporée pour maintenir les articles sélectionnés au moment pré-sent, parmi les divers choix. Le bloc de structure de données courantes est représenté en 950, et il comprend un article 952 pour le nombre de zones qui sont définies au moment présent par le processus SETUP (Etablissement de Configuration); un article 954 pour le nombre de fichiers d'image qui sont dé-finis; des articles 956 et 958 pour indiquer respectivement le nombre de groupes et le nombre de sélections qui ont été définis, et un article 960 pour allouer un nombre de sélections maximal prédéterminé. Dans un mode de réalisation envisagé à titre d'exemple, le nombre maximal de sélections qui est alloué dans des blocs est de dix. Des articles supplémentaires 962 et 964 sont prévus respectivement pour le nombre de pixels par colonne et par ligne, et il existe également un article de police de caractères 966, un article d'attention de zone 968, un article d'attention de groupe 970 et un article d'attention de chaîne 972. De plus, un article d'attention de souris 974 est prévu pour spécifier le point sensible. En outre, des articles OATTENTION et TATTENTION, 976 et 978, peuvent être incorporés pour spécifier des options de sélection et des types de sélection avec l'attention de clavier. De plus, des articles IATTENTION et JATTENTION, 980 et 982, sont prévus pour les articles de point sensible 908 et 910 provenant du bloc de structure de souris décrit ci-dessus. Enfin, un article de menu 986 est spécifié pour identifier l'attention de menu courante, conjointement à des articles 988 et 990 pour définir des bordures de zone et des bordures de groupe, et conjointement à un article OINDICATEURS pour spécifier des modes de souris. L'information spécifiant l'état courant des sélections est spécifiée dans une structure SELECTION ACTIVE 1000. Chaque structure comprend un article de bouton 1002, un article d'indicateurs communs de sélection, ou STINDICATEURS, 1004, un article ACTIF, qui enregistre l'état courant de toutes les sélections, à partir duquel ces données peuvent être fournies au code SETUP (Etablissement de Configuration). Dans un mode de réalisation envisagé à titre d'exemple, il peut également exister une structure de file d'attente d'événements 1010, pour enregistrer dans une file d'attente d'événements des appuis sur des touches du clavier et des mouvements de la souris. Comme indiqué précédemment, une caractéristique clé de la présente invention consiste en ce que le système d'exploitation de terminal de la présente invention n'est pas compatible avec un système d'entrée/sortie de base (ou BIOS) PC/AT ou un système d'exploitation DOS de type standard. Cependant, le système d'exploitation de terminal est dans l'obli- gation de supporter certaines de ces fonctions pour conserver l'aptitude à visualiser des données d'applications dans un environnement multiutilisateur, par exemple en étant associé à un client Citrix ou à d'autres émulations supportées. Les Tableaux 3A-3C annexés sont une liste des fonctions IO.SYS et BIOS.SYS de type standard que supporte la présente invention; il apparaîtra à l'homme de l'art que la liste ne contient pas de nombreuses fonctions BIOS et DOS standards. D'autres fonctions ne sont pas supportées. De plus, certaines des fonctions qui sont listées ne sont que partiellement supportées dans un mode de réalisation actuellement préféré. Ainsi, la Fonction 36h ["Get Disk Free Space", c'est-à-dire "Obtention d'espace libre sur le dis-- que"] n'est que partiellement supportée, du fait de l'utilisation d'une mémoire flash à la place d'un disque dur. De façon similaire, la Fonction 33h ["Get/Set System Value", c'est-à-dire "Obtenir/fixer une valeur de système"] est supportée en termes de fonction et d'indicateur, mais la Fonction ["Control-Break"], c'est-à-dire "Commande-interruption", n'est pas supportée. De façon similaire, la Fonction 2Ah à 2Dh [fonctions "Get/Set Date/Time", c'est-à-dire "Obtenir/fixer la date et. l'heure"] n'est que partiellement supportée, du fait qu'aucun matériel pour remplir des fonctions en temps réel n'est incorporé dans le terminal de la présente invention. La fonction "Get Time" ("Obtenir l'heure") est supportée, de façon à pouvoir être utilisée pour mesurer la durée d'événements, sans représenter un temps absolu. De plus, dans la configuration qui est actuellement préférée, le système de fichiers à mémoire flash de la présente invention est segmenté en de multiples "lecteurs" à un seul répertoire. Cepen- dant, contrairement à des fichiers sur disque classiques, le système de fichiers à mémoire flash ne comprend pas de groupements ou de secteurs. Des fichiers dans chaque "lecteur" ou partition se développent de façon ascendante à partir du bas de la partition, tandis que des articles de répertoire se développent en direction descendante à partir du haut. Des fichiers sont enregistrés de façon contiguë, sans fragmentation. Des articles de répertoire, qui ont une longueur de seize octets dans un mode de réalisation préféré, sont de façon générale similaires à un article de répertoire DOS; cependant, des éléments qui seraient normalement réservés sont dé-finis de façon à permettre au fichier d'être exécuté à partir d'une mémoire flash, au lieu d'une mémoire vive dynamique. Ces éléments comprennent l'adresse de départ du fichier dans la mémoire flash, ainsi que le segment de réimplantation du fichier dans l'espace d'adresse du système DOS. Bien qu'étant similaire à la suppression de fichiers DOS classiques, la suppression de fichiers diffère également par certains détails importants. Lorsqu'un fichier est supprimé dans la présente in- vention, le premier octet de l'article de répertoire est changé en 0, au lieu d'être fixé à E5h. Cette étape est effectuée sans effacer un bloc de mémoire flash. Des fichiers suivants seront ensuite écrits dans l'espace disponible suivant. Cependant, s'il n'y a pas assez d'espace disponible pour les fichiers suivants, le bloc de mémoire flash pour le fichier supprimé est effacé, et des fichiers non supprimés sont réécrits dans le bloc de mémoire flash dans lequel le fichier supprimé avait été maintenu. Comme indiqué précédemment, la fragmentation de fichiers n'est pas permise, au moins dans certains modes de réalisation. Le système de fichiers à mémoire flash supporte des commandes DIR, TYPE et DEL classiques, il supporte une nouvelle commande "DEBUGMSG" pour générer un message MISE AU POINT, et il supporte égale-ment l'exécution de programme par l'intermédiaire de fichiers groupés. Le système de fichiers supporte également le fichier AUTOEXEC.BAT, ainsi que le chargement et l'exécution des fichiers.EXE et.COM, ainsi que des fichiers Int 21h et Int 27h. Cependant, le système de fichiers ne supporte pas, au moins dans certains modes de réalisation, le fichier CONFIG.SYS ou les pilotes de dispositifs.SYS. De façon similaire, le système de fichiers ne supporte pas des commandes concernant des fichiers groupés (à l'exception de l'exécution de programme), des chan- gements de direction d'entrée/sortie, des instructions en chevauchement ou des interruptions 20h ["Program Terminate", c'est--à-dire "Terminaison de programme"], 22h ["Terminate Address", c'est-à-dire "Adresse de terminaison"], 23h ["Ctrl-Break Exit Ad- dress", c'est-à-dire "Adresse de sortie de commande-interruption"], 24h ["Critical Error Handler Vector", c'est-à-dire "Vecteur de gestionnaire d'erreur critique"], 25h ["Absolute Disk Read", c'est-à-dire "Lecture de disque absolue"], 26h ["Absolute Disk Write", c'est-à-dire "Ecriture de disque absolue"], et 2Fh ["Multiplex Interrupt", c'est-à-dire "Interruption en multiplex"]. D'après ce qui précède, il apparaîtra que, bien qu'un groupe sélectionné des fonctions de BIOS et de DOS standards soient émulées ou supportées de toute autre manière par le système d'exploitation de terminal de la présente invention, un nombre considérable de fonctions de BIOS et de DOS standards ne sont pas supportées. De plus, même les fonctions de BIOS et de DOS qui sont supportées ne sont pas exé- cutées par un matériel compatible AT standard. A la place, la partie du système d'exploitation de terminal qui est appelée sur la figure 4 le "bloc d'amorce" 300 et le "noyau" 305 assure l'aptitude à émuler ces fonctions. Les fonctions de service que supporte le bloc d'amorce 305 comprennent: OBTENIR LA TAILLE DE LA MEMOIRE FLASH, qui interroge la mémoire flash 438 pour déterminer la taille de "lecteur"; LIRE DANS LA MEMOIRE FLASH, pour lire des données dans la mémoire flash 438; ECRIRE DANS LA MEMOIRE FLASH; OBTENIR LA TAILLE DE BLOC DE MEMOIRE FLASH, pour déterminer la taille de bloc de la mémoire 438; EFFACER UN BLOC DE MEMOIRE FLASH, pour effacer des données dans la mémoire 438; REAMORCAGE A CHAUD, qui est une fonction utilisée par le test en fabrication pour exécuter une boucle passant de façon répétée par les diagnostics à la mise sous tension, mais qui n'est pas utilisée en fonctionnement normal; OBTENIR LA DATE DU BLOC D'AMORCE; RESTAURER LE BIT D'E/S DU CONTROLEUR DE CLAVIER, qui est une fonction utilisée pour commander des composants connectés au contrôleur de clavier; et INSTAURER LE BIT D'E/S DU CONTROLEUR DE CLAVIER. On va examiner de façon plus détaillée le fonctionnement du noyau 305. En particulier, le noyau 305 comprend trois fonctions de service. La première est une fonction "ACTIVER L'INTERRUPTION VIDEO 10h", qui active les fonctions INT 10h normales pour des services vidéo. L'interruption INT 10h est initialement interceptée par le noyau 305 pour supprimer la visualisation de messages en mode de texte qui proviennent de divers pilotes de dispositifs, pendant que ces pilotes sont chargés. Une fois que les pilotes sont chargés et que le terminal entre dans un mode graphique, la fonction ACTIVER L'INTERRUPTION VIDEO 10h est appelée pour rétablir le fonctionnement normal de l'interruption INT 10h. De plus, le noyau 305 comprend une seconde fonction, "FIXER LES CONDITIONS TEMPORELLES POUR LA COUPURE D'ALIMENTATION", qui peut fixer diverses fonctions d'économie d'énergie (comme le respect de la norme Energy Star), et le temporisateur pour activer de telles fonctions. Enfin, le noyau 305 comprend une fonction "TRAITER DES INTERRUPTIONS DOS", qui peut être appelée par le bloc d'amorce ou d'autres par-- ties du noyau 305, chaque fois qu'il est nécessaire de traiter des interruptions DOS en instance qui exigent un traitement en temps réel dans un environnement DOS. Les interruptions les plus fréquemment traitées par cette fonction sont des interruptions de souris et de clavier, mais elles peuvent comprendre des interruptions de temporisateur, de port série, de port parallèle et de réseau. L'interception par cette fonction évite par exemple que des interruptions de souris et de clavier ne soient désacti- vées pendant une période excessive -- c'est-à-dire une durée suffisamment longue pour représenter une gène pour un utilisateur, par exemple un retard d'environ une seconde entre un mouvement de la sou-ris et un mouvement du curseur en réponse -et d'éliminer l'information de sortie du contrôleur de clavier lorsqu'il devient nécessaire d'émettre un ordre vers le contrôleur de clavier. Du fait que le matériel de la présente invention n'est pas conforme au standard PC/AT, et que le microprogramme n'est pas conforme au BIOS ou au DOS PC/AT classique, mais que le système global est destiné à permettre à l'utilisateur d'observer une visualisation Windows classique et d'interagir avec celle-ci, la présente invention doit prendre en charge certaines interruptions de matériel classi- ques et des appels associés. Dans un mode de réalisation préféré, ces interruptions et ces appels sont pris en charge dans le microprogramme du terminal, soit par émulation, soit par modification de la réponse appropriée au signal entrant. De telles répon- ses seront traitées de façon plus détaillée en relation avec le noyau de logiciel qui est décrit ci--après. Le noyau place le processeur dans un mode 8086 virtuel et il établit diverses tables qui sont nécessaires pour intercepter des instructions d'entrée/sortie qui sont dirigées vers divers ports. Après qu'un accès à un port sélectionné a généré une exception, l'instruction qui a généré l'exception est désassemblée de façon que le noyau puisse la traiter correctement pour émuler la compatibilité PC, ce qui a pour effet de simplifier l'établisse-ment de diverses personnalités. Du fait qu'un sousprogramme entier est exécuté pour chaque instruction d'entrée/ sortie interceptée, l'instruction d'entrée/sortie ne sera pas exécutée aussi rapidement, ce qui fait que les instructions d'entrée/sortie interceptées sont limitées au plus petit nombre de ports possible. Dans certains cas, la totalité ou une partie seule- ment d'un port d'entrée/sortie fait l'objet d'un traitement d'interruption, de la manière nécessaire pour assurer la compatibilité AT. On notera que bien que le mode de réalisation principal qui est décrit ici soit destiné à établir une personnalité Citrix Winframe, d'autres personnalités pourraient également être mises en oeuvre pour l'utilisation par le terminal de la présente invention. Dans certains cas, le terminal de la présente invention peut comprendre des personnalités multiples en mémoire, dans une configuration dans laquelle le terminal est con- necté à de multiples hôtes travaillant avec des systèmes d'exploitation différents qui attendent de telles personnalités différentes. L'utilisateur ou d'autres pourraient alors être capables d'effectuer une sélection parmi de telles personnalités, au moyen d'une touche spéciale ou d'une autre séquence, le noyau de la présente invention exécutant alors la personnalité appropriée, à partir de la mémoire, et permettant la communication avec l'hôte approprié. Les ports d'entrée/sortie qui sont intercep- tés par le noyau pour procurer la compatibilité AT sont les suivants. 20h [Le port de commande d'un contrôleur d'interruptions compatible AT] -Seule la commande "fin d'interruption" est émulée, cette commande étant émise à la fin de chaque module de traitement d'interruption pour permettre l'apparition d'interruptions supplémentaires de même priorité ou de priorité inférieure. Le noyau émule également le fonctionnement normal d'un contrôleur d'interrup- tions compatible PC, en ce qui concerne le blocage d'interruptions de priorité égale ou inférieur, jus-qu'à ce que la commande "fin d'interruption" soit reçue. 21h [Le registre de masque du contrôleur 35 d'interruptions compatible AT] -- Emulé. 40h-43h [Accès à un temporisateur de système 8254 compatible AT] -- Les ports ne sont pas émulés mais sont interceptés, du fait que certains pilotes basés sur le standard AT écrivent dans ces ports. Du fait que le registre de masque d'interruption d'un mode de réalisation de la présente invention considéré à titre d'exemple est placé au port 40h, des opérations d'écriture non interceptées perturbe- raient le fonctionnement du registre de masque d'interruption de la présente invention. 61h [Un port de commande de fonctions diverses dans une architecte AT] -Un bit de commande de haut-parleur est émulé pour permettre de mettre le haut-parleur en fonction et hors fonction. AOh [Le port de commande d'un second contrô- leur d'interruption d'un ordinateur compatible AT] -- Comme avec le port 20h, la commande "fin d'interruption" est émulée. Alh [Le registre de masque pour le second contrôleur d'interruptions (similaire au port 21h)] 20 -- Emulé. 2F8h à 2FFh [Une adresse standard pour un second port série AT] -- Les ports sont réimplantés aux adresses 5FOh à 5FEh, qui sont les adresses de port pour le second port série d'un mode de réalisa- tion de la présente invention envisagé à titre d'exemple. La nouvelle plage de ports (5F0-5FE) comprend seulement des adresses paires. Dans un mode de réalisation envisagé à titre d'exemple, l'échange d'octets n'a pas été mis en oeuvre, et par consé- quent on peut accéder seulement à des octets pairs du dispositif d'entrée/sortie série à huit bits. Ce-pendant, l'échange d'octets peut être mis en oeuvre si on le désire. 378h à 37Fh [Une adresse standard pour un port parallèle AT] -Réimplantés aux adresses 6FOh à 6FEh, qui sont les adresses de port pour le port parallèle d'un mode de réalisation de la présente invention envisagé à titre d'exemple. 3F8h à 3FFh [Une adresse standard pour un premier port série AT] -Réimplantés aux adresses 7FOh à 7FEh, qui sont les adresses de port pour le premier port série d'un mode de réalisation envisagé à titre d'exemple. 2867638 45 TABLEAU 2 Nom de Description Direction De/Vers signal A _Bus d'adresse d'UC E UC D Bus de données d'UC E/S UC ADS# Activation d'adresse d'UC E UC D/C# Données/Commande E UC M/IO# Mémoire/Entrée,sortie E UC W/R# Ecriture/Lecture E UC BHE# Validation Bus Haut E UC BLE# Validation Bus Bas E' UC DMA Bus d'adresse de mémoire DRAM S DRAM RAS Activation d'adresse de ligne S DRAM UCAS Activation CAS supérieure S DRAM LCAS Activation CAS inférieure S DRAM WE# Validation d'écriture S DRAM BD Bus de données de périphériques E/S FLASH,SIO,LAN... FLASHCS # Multiplexage de mémoire FLASH S FLASH COMICS# Multiplexage de port COM 1 S SIO COM2CS# Multiplexage de port COM 2 S SIO PRINTERCS# Multiplexage de port d'imprimante S SIO IOWR# Ecriture en entrée/sortie S SIO,KBCTRL,LAN IORD# Lecture en entrée/sortie S SIO, KBCTRL,LAN MEMWR# Ecriture en mémoire S FLASH,LAN MEMRD# Lecture en mémoire S FLASH,LAN 8042CS# Multiplexage de contrôleur de clavier S KBCTRL SPEN Sortie de haut-parleur S HAUT-PARLEUR READY# Etat prêt S UC RESETI Entrée de restauration E RESTAURATION RESET# Sortie de restauration (inversée) S SIO,KBCTRL RESET Sortie de restauration S UC,VGA,LAN INTA Interruption COM1 E SIO INTB Interruption COM2 E SIO INTP Interruption de port d'imprimante E SIO KBINT Interruption de clavier E KBCTRL MSINT Interruption de souris E KBCTRL NINT Interruption de réseau E LAN INTR Sortie d'interruption S UC CLK2 Horloge de système E OSC KBCLK Horloge de contrôleur de clavier S KBCTRL TCLK Horloge de temporisateur E OSC CONFIG Entrée de configuration E EXT SLEEP Validation d'économiseur d'écran S MPS PWDOWN Mise hors tension S LOGIQUE IDCS# Multiplexage de port S LOGIQUE d'identification DIAGCS# Multiplexage de port de diagnostic S LOGIQUE 2867638 46 TABLEAU 3A SUPPORT DES FONCTIONS DOS DANS LE MODULE IO.SYS: Fonction 2 (Sortie de Visualisation) : Supportée. Fonction 6 (E/S de Console Directe) : Supportée. Fonction 7 (Entrée de Console Directe Sans Echo) : Supportée. Fonction 8 (Entrée de Console Sans Echo) : Supportée. Fonction 9 (Chaîne de Visualisation) : Supportée. Fonction OAh (Entrée de Clavier Avec Tampon) : Supportée. Fonction OBh (Contrôle d'Etat d'Entrée Standard) : Supportée. Fonction OCh (Effacement du Contenu du Tampon de Clavier et Appel d'une Fonction de Clavier) : Supportée. Fonction OEh (Sélection de Disque) : Supportée. Fonction 19h (Disque Courant) : Supportée. Fonction lAh (Fixation d'Adresse de Transfert de Disque) : Supportée. Fonction 25h (Fixation de Vecteur d'Interruption) : Supportée. Fonction 26h (Création d'un Nouveau Segment de Programme) : Supportée. Fonction 2Ah (Obtenir la Date) Partiellement Supportée. Fonction 2Ch (Obtenir l'Heure) Partiellement Supportée. Fonction 2Dh (Fixer l'heure) : Partiellement Supportée. Fonction 2Fh (Obtenir l'Adresse de Transfert de Disque (DTA)) Supportée. Fonction 30h (Obtenir le Numéro de Version de DOS) : Supportée. Fonction 31h (Terminaison de Processus et Maintien à l'Etat Résident): Supportée. Fonction 33h (Obtenir/Fixer une Valeur de Système):Fonction et indicateur: Supportés; opération "Ctrl-Break" (Commande-Interruption) : non supportée. Fonction 35h (Obtenir un Vecteur d'Interruption) : Supportée. Fonction 36h (Obtenir l'Espace Libre sur le Disque) : Supportée, mais les paramètres d'allocation retournés sont quelque peu arbitrai- res, du fait que l'unité de mémoire flash n'est pas composée de secteurs et de groupes. Fonction 3Ch (Créer un Ficher) Supportée. Fonction 3Dh (Ouvrir un Fichier) : Supportée, mais tous les modes ne sont pas distingués. Fonction 3Eh (Fermer un Gestionnaire de fichier) : Supportée. 2867638 47 Tableau 3A (suite) Fonction 3Fh (Lire dans un Fichier ou un Dispositif) : Supportée pour des fichiers mais non pour des dispositifs. Fonction 40h (Ecriture dans un Fichier ou un Dispositif) : Supportée pour des fichiers et un dispositif STDOUT. Le système de fichiers à mémoire flash impose des restrictions sur des opérations d'écriture dans un fichier. Fonction 41h (Supprimer un Fichier) : Supportée. ' Fonction 42h (Déplacer un Pointeur de Lecture/Ecriture en Fichier) . Supportée, mais le système de fichiers en mémoire flash impose des restrictions sur cette fonction pour des fichiers qui sont ouverts en mode d'écriture. Fonction 43h (Changer le Mode de Fichier) : Non Supportée (retourne une erreur). Fonction 44h (Commande d'Entrée/Sortie pour des Dispositifs) : Cette fonction contient de nombreuses sous-fonctions dont la plupart ne sont pas supportées. La plupart des sous-fonctions qui sont supportées retournent des paramètres arbitraires ou "codés de façon fixe". Fonction 47h (Obtenir le Répertoire Courant) : Supportée. Fonction 48h (Allouer la Mémoire) : Supportée. Fonction 49h (Libérer la Mémoire Allouée) : Supportée. Fonction 4Ah (Modifier les Blocs de Mémoire Alloués) : Supportée. Fonction 4Bh (Charger ou Exécuter un Programme) : Supportée, mais l'environnement et les paramètres FCB ne sont pas traités. Fonction 4Ch (Terminer un Processus) : Supportée. Fonction 4Dh (Obtenir le Code de Retour d'un Sous-Processus) . Supportée. Fonction 4Eh (Trouver le Premier Fichier Concordant) : Supportée. Fonction 4Fh (Trouver le Fichier Concordant Suivant) : Supportée. Fonction 52h (Non Documentée: Retourner une Liste de Listes DOS) . Partiellement supportée. Fonction 56h (Renommer un Fichier) : Supportée. 2867638 48 TABLEAU 3A (suite) Fonction 57h (Obtenir/Fixer la Date et l'Heure d'un Fichier) . Supportée pour "obtenir la date et l'heure d'un fichier", mais non pour "fixer la date et l'heure d'un fichier". Fonction 58h (Non Documentée: Obtenir/Fixer la Stratégie d'Allocation de Mémoire) : Retourne normalement, mais la fonction n'est pas supportée. Fonction 5Dh (Non Documentée) : Non supportée, mais retourne normale-ment si AL = 9. Fonction 62h (Obtenir une Adresse de Préfixe de Segment de Programme): Supportée. FONCTIONS DOS (IO.SYS) PARTIELLEMENT SUPPORTEES: Fonction 44h (Commande d'Entrée/Sortie pour des Dispositifs) . Sous-fonction 0 (Obtenir de l'Information pour un Dispositif) . Supportée, mais seuls les bits 0, 1, 7 et 14 sont supportés dans le mot d'information. Sous-fonction 8 (Contrôler la Possibilité de Suppression) : Supportée. Sous-fonction 9 (Contrôler le Réseau) : Supportée (retourne toujours 0) Sous-fonction Eh (Contrôler des lecteurs en double) . Supportée (retourne toujours 0). Fonction 52h (Non Documentée: Retourne une Liste de Listes DOS) . Retourne un pointeur vers la "Liste de Listes". La plupart de ces structures de données ne sont pas initialisées, mais le second mot de la "Liste de Listes" désigne certaines données de table de fichiers de système, et le troisième mot de cette région est fixé à trente pour éviter une défaillance de notre client Citrix. (Cette position est celle à laquelle le DOS enregistre sa valeur pour "FILES =".) Les fonctions non listées ne sont pas supportées. 2867638 49TABLEAU 3B COMMAND.COM supporte les fonctions suivantes - Commande DIR - Commande TYPE - Commande DEL - Commande DEBUGMSG pour mettre en fonction et hors fonction les messages de débogage DOS - Exécution de programme au moyen de fichiers groupés - Fichier AUTOEXEC.BAT DOS ne supporte pas les fonctions suivantes - Chargement et exécution des fichiers.EXE et.COM [DOS et Int 21h] - Int 21h (comme défini par les fonctions ci-dessus) - Int 27h (Terminaison mais Maintien à l'Etat Résident) Les fonctions suivantes ne sont PAS supportées: - Fichier CONFIG.SYS et pilotes de dispositifs.SYS Commandes de fichiers groupés autres qu'une exécution de programme Changement de direction d'entrée/sortie - Instructions en chevauchement La plupart des commandes internes et externes - Int 20h (Terminaison de Programme) - Int 22h (Adresse de Terminaison) - Int 23h (Adresse de Sortie de Commande-Interruption) - Int 24h (Vecteur de Gestionnaire d'Erreur Critique) - Int 25h (Lecture de Disque Absolue) - Int 26h (Ecriture de Disque Absolue) - Int 2Fh (Interruption en Multiplex) TABLEAU 3C FONCTIONS DE BIOS SUPPORTEES DANS IO.SYS: Interruption 5 (Impression d'Ecran) : Supportée. Interruption 8 (Interruption de Temporisateur) : Supportée. Interruption 9 (Interruption de Matériel de Clavier) : Supportée. Interruption 10h (Services Vidéo) : Supportée avec le BIOS Cirrus Logic. 2867638 50 TABLEAU 3C (suite) Interruption 11h (Compte-Rendu d'Equipement) : Supportée. Interruption 12h (Compte-Rendu de Taille de Mémoire) : Supportée. Interruption 14h (Services de Port Série) : Supportée Interruption 15h (Services Divers) : Partiellement supportée Interruption 15h/C2h (Services de Souris):Supportée en majeure partie. Interruption 16h (Services de Clavier) : Partiellement supportée. Interruption 1Ah (Services de Temporisateur/RTC) Les fonctions de temporisateur sont supportées; les fonctions RTC ne sont pas supportées. Interruption lCh (Temporisateur d'Utilisateur) : Supportée. Le segment 40h est réservé pour la zone de données de BIOS, mais certaines positions seulement sont utilisées. FONCTIONS DE BIOS PARTIELLEMENT SUPPORTEES DANS IO.SYS: Interruption 5 (Impression d'Ecran) : Non supportée Interruption 15h (Services Divers) . Sous-fonction COh (Retourner les Paramètres de Configuration de Système) . Retourne un pointeur vers une table de configuration. Sous-fonction C2h (Services de Souris) . Sous-fonction 0 (Valider/Invalider le Dispositif de Pointage): Supportée Sous-fonction 1 (Restaurer le Dispositif de Pointage): Supportée. Sous-fonction 2 (Fixer la Cadence d'Echantillonnage): Supportée Sousfonction 3 (Fixer la Résolution) : Supportée. Sous-fonction 4 (Lire le Type de Dispositif) : Non supportée Sousfonction 5 (Initialisation de l'Interface de Dispositif de Pointage) : Non supportée. Sous-fonction 6 (Retourner l'Etat; Fixer le Cadrage): Supportée Sousfonction 7 (Pilote de Dispositif pour l'Initialisation d'Appel) : Supportée. [Aucune autre sous-fonction de l'interruption 15h n'est supportée.] Interruption 16h (Services de Clavier) : Sous-fonction 0 (Lecture de Clavier) : Supportée. Sous-fonction 1 (Etat d'Appui sur les Touches) : Supportée. 2867638 51 TABLEAU 3C (suite) Sous-fonction 2 (Etat de Changement de Clavier) : Supportée. Sousfonction 3 (Fixer la Cadence de Frappe Automatique) . Non supportée. Sous-fonction 4 (Réglage du "Clic" au Clavier) : Non supportée Sousfonction 5 (Ecriture de Clavier) : Supportée. Sous-fonction 10h (Lecture de Clavier Etendue) : Supportée Sous-fonction 11h (Etat d'Appui sur les Touches Etendu): Supportée Sous-fonction 12h (Etat de Changement de Clavier Etendu) : Supportée. On rappelera que la présente invention pro-pose notamment un terminal adapté pour la communication avec un système sélectionné parmi un ensemble de systèmes hôtes, chacun de ces systèmes hôtes uti- lisant un protocole de communication différent, caractérisé en ce qu'il comprend: une première personnalité pour réagir à un premier ensemble et un second ensemble d'instructions qui sont fournies par un premier système hôte, conformément au protocole de communication qui est associé à ce premier système hôte; au moins une seconde personnalité pour réagir à un troisième et un quatrième ensemble d'instructions qui sont fournies par un second système hôte, conformément au protocole de communica- tion qui est associé à ce second système hôte; l'un au moins de ces systèmes hôtes fournissant de l'in-formation en mode de fenêtres; des moyens de traite-ment réagissant à la première et au moins à la seconde personnalités de façon à traiter l'un des pre- mier et troisième ensembles d'instructions, et à émuler l'un des second et quatrième ensembles d'instructions, pour fournir au système hôte associé des réactions compatibles avec le protocole de communication qui est associé à ce système hôte; et des moyens de commutation pour identifier le système hôte auquel le terminal est connecté au moment présent, et pour sélectionner la personnalité appropriée parmi la première personnalité et au moins la seconde personnalité, pour la communication avec le système hôte identifié. Elle propose également un procédé pour mettre à jour des caractéristiques de fonctionnement d'un terminal, caractérisé en ce qu'il comprend les étapes suivantes on fournit une mémoire flash pour enregistrer des caractéristiques de fonctionnement; on établit une liaison de communication vers un sys- tème hôte, pour recevoir des caractéristiques de fonctionnement mises à jour; on établit une première condition de fonctionnement pendant laquelle au moins une partie prédéterminée de la mémoire flash peut faire l'objet d'une opération d'écriture, tout en maintenant la communication avec le système hôte; on télécharge des caractéristiques de fonctionnement mises à jour du système hôte vers le terminal, pendant que le terminal est dans la première condition de fonctionnement; on écrit dans la mémoire flash les caractéristiques de fonctionnement mises à jour, pendant que le terminal est dans la première condition de fonctionnement; et on établit une seconde condition de fonctionnement pendant laquelle des données ne sont pas écrites dans la partie prédéterminée de la mémoire flash. Elle propose encore un terminal pour visualiser, dans l'environnement d'exploitation Microsoft Windows (marque déposée), de l'information de pro- grammes d'applications qui est fournie par un système hôte fonctionnant sous un système d'exploitation Microsoft Windows , caractérisé en ce qu'il comprend des moyens d'interface pour recevoir à partir du serveur d'applications de l'information de visualisation pour un programme d'applications qui est exécuté sur le serveur d'applications; des moyens de traitement, non entièrement compatibles avec des systèmes d'entrée/sortie de base ou des systèmes d'exploitation à disques d'ordinateur per- sonnel, et incapables d'exécuter le programme d'applications de façon locale, fonctionnant sous la dépendance des moyens d'interface de façon à émuler ou à traiter des instructions qui sont fournies par des programmes exécutés sur un serveur d'applications situé à distance, pour fournir au système hôte des réactions compatibles avec celles attendues par le système hôte; et des moyens de visualisation qui fonctionnent sous la dépendance des moyens de traitement de façon à visualiser l'information en mode de fenêtres. Il va de soi que de nombreuses modifications peuvent être apportées au dispositif et au procédé décrits et représentés, sans sortir du cadre de l'invention. REVENDICATIONS 1. Terminal adapté pour la communication avec un système sélectionné parmi un ensemble de systèmes hôtes, chacun de ces systèmes hôtes utilisant un protocole de communication différent, caractérisé en ce qu'il comprend: une première personnalité pour réagir à un premier ensemble et un second ensemble d'instructions qui sont fournies par un premier système hôte, conformément au protocole de communication qui est associé à ce premier système hôte; au moins une seconde personnalité pour réagir à un troisième et un quatrième ensemble d'instructions qui sont fournies par un second système hôte, conformément au protocole de communication qui est associé à ce second système hôte; l'un au moins de ces systèmes hôtes fournissant de l'information en mode de fenêtres; des moyens de traitement (100) réagissant à la première et au moins à la seconde personnalité de façon à traiter l'un des premier et troisième ensembles d'instructions, et à émuler l'un des second et quatrième ensembles d'instructions, pour fournir au système hôte associé des réactions compatibles avec le protocole de communication qui est associé à ce système hôte; et des moyens de commutation pour identifier le système hôte auquel le terminal est connecté au moment présent, et pour sélectionner la personnalité appropriée parmi la première personnalité et au moins la seconde personnalité, pour la communication avec le système hôte identifié. 2. Procédé pour mettre à jour des caractéristiques de fonctionnement d'un terminal (12), caractérisé en qu'il comprend les étapes suivantes: on fournit une mémoire flash (112) pour enregistrer des caractéristiques de fonctionnement; on établit une liaison de communication (14) vers un système hôte (10), pour recevoir des caractéristiques de fonctionnement mises à jour; on établit une première condition de fonctionnement pendant laquelle au moins une partie prédéterminée de la mémoire flash (112) peut faire l'objet d'une opération d'écriture, tout en maintenant la communication avec le système hôte; on télécharge des caractéristiques de fonctionnement mises à jour du système hôte (10) vers le terminal (12), pendant que le terminal est dans la première condition de fonctionnement; on écrit dans la mémoire flash (112) les caractéristiques de fonctionnement mises à jour, pendant que le terminal (12) est dans la première condition de fonctionnement; et on établit une seconde condition de fonctionnement pendant laquelle des données ne sont pas écrites dans la partie prédéterminée de la mémoire flash (112). 3. Procédé pour établir la configuration d'un terminal (12) ayant une visualisation, pour la communication avec un système hôte, caractérisé en ce qu'il comprend les étapes suivantes; on établit au moins une zone (600) en une configuration de grille de bits, dans une partie de la visualisation; on établit au moins un groupe (610) en une configuration de grille de bits dans la zone (600) ; et on établit au moins une sélection (620) en configuration de grille de bits dans le groupe (610), avec un ou plusieurs choix associés à chaque sélection (620).