Brevet FR2743169A1 — publié le 19970704

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 disposi- tifs 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 Win- dows 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'utilisa- teur ont été conçus pour l'utilisation avec des sta- tions 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 concer- nant la sécurité, la fiabilité, la commodité de ges- tion et le coût. Bien que l'on sache que des termi- naux 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 ha- bituellement à un moindre coût, des terminaux ont de façon générale été incapables d'assurer la compati- bilité avec les interfaces graphiques d'utilisateur les plus répandues. Des terminaux fonctionnant dans l'environnement X peuvent offrir certaines possibi- lité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 or- dinateurs personnels sans disque fonctionnant dans un environnement client/serveur visualisent de l'in- formation de programme d'application en téléchar- geant l'application à partir du serveur et en exécu- tant 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'environ- nement 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écu- rité 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 multiutilisateur. Le système d'exploitation WinFrame, proposé récemment par Ci- trix Systems, Inc., modifie le système d'exploita- tion Windows NT en l'étendant de façon à le faire fonctionner dans un environnement multi-utilisateur, 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 ter- minal 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, ca- pable 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'ac- cé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- tions modernes, tels que des programmes de traite- ment de texte, de travaux graphiques, de travail sur des bases 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 termi- naux X de l'art antérieur ou d'ordinateurs person- nels 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 mi- croprogramme du terminal met en oeuvre des exten- sions d'accès de réseau compatibles avec le serveur d'applications, ici encore, par exemple, les exten- sions ICA-3 commercialisées par Citrix Systems. Une visualisation graphique à haute résolution est in- corporé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 mo- dems couplés au secteur, de câbles ou d'autres con- nexions. Lorsque le terminal est connecté au serveur d'applications, il visualise l'environnement d'ex- ploitation 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 ordina- teur 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 environ- nement 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 environ- nement 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 ses- sion sur un autre terminal. Ce second terminal vi- sualiserait 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'exploita- tion 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 con- nexion à 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 inven- tion comprend également l'aptitude à communiquer avec d'autres serveurs ou ordinateurs hôtes exécu- tant 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 ca- racté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 visuali- sé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 vo- latile rapide, dite "mémoire flash". La mémoire flash peut être actualisée par divers procédés, com- prenant 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'applica- tions exécutant des programmes d'applications très répandus, qui fonctionne dans le cadre de l'environ- nement d'exploitation Microsoft Windows NT. Un but supplémentaire de la présente inven- tion est de procurer un système d'établissement de configuration de terminal ayant une interface gra- phique 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 visua- lisation d'une information de programmes d'applica- tions 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 mul- ti-utilisateur, et de fonctions souhaitables norma- lement associées à un environnement client/serveur. Un but supplémentaire de la présente inven- tion est de procurer un système d'exploitation de terminal qui permette la communication avec un envi- ronnement d'exploitation à fenêtres, tout en exécu- tant 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éra- lisée d'un serveur d'applications et d'un terminal conforme à la présente invention. La figure 2 montre sous forme de schéma sy- noptique fonctionnel l'architecture de la présente invention. La figure 3 montre sous forme de schéma sy- noptique l'architecture du circuit intégré spécifi- que de commande de la figure 2. La figure 4 montre une configuration générale de l'architecture de logiciel d'un terminal conforme à la présente invention. La figure 5 montre sous forme de schéma sy- noptique 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 proces- sus par lequel le terminal de la présente invention se connecte à un serveur d'applications. La figure 7A montre un écran d'établissement de configuration, associé au logiciel de configura- tion de la présente invention. Les figures 7B1 - 7B3 montrent les structures de données qui sont associées au logiciel de confi- guration de la présente invention. En se référant maintenant à la figure 1, on voit un système simplifié conforme à la présente in- vention. En particulier, un seul serveur d'applica- tions 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 satisfai- sante, 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 ap- proprié de mémoire vive (ou RAM). Dans une configu- ration 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 fi- chiers NetWare 16, un ordinateur hôte Unix 18, d'au- tres 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 com- muniquer 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 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 fait que la présente invention est destinée à éviter un grand nombre, au moins, des pièges asso- cié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 in- té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 simi- laire 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 si- gnal FCS à la mémoire flash 112, il applique des si- gnaux 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 ap- plique un signal NETCS au contrôleur de réseau local 128. Enfin, le circuit intégré spécifique applique un signal de validation de hautparleur 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 fonctionne- ment 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'oc- tet, 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 sys- tème et un temporisateur de haut-parleur, et un con- trôleur d'entrée/sortie. Le circuit intégré spécifi- que 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 fonc- tionnalité 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 commu- nique 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 con- trô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. n0 4 706 068. En- fin, le contrôleur de réseau local peut être n'im- porte quel contrôleur d'interface de réseau appro- prié, et il peut être conforme à n'importe quel standard de réseau admis, parmi lesquels 10BaseT, Base2, 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éri- que/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 ordina- teur 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'alimen- tation du moniteur. Il apparaîtra à l'homme de l'art que, dans le futur, un grand nombre de ces fonc- tions, comprenant l'unité centrale, pourront être 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'exploi- tation 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 adap- tateur de réseau tel que l'interface de réseau lo- cal, ou LAN, 142. Dans un mode de réalisation envi- sagé à 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éter- miné, 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 configu- ration, 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 communi- cation, 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 COOOOO - DFFFFF et EOOOOO - 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 mode MGA) ou B80000h - B8FFFh (pour le mode CGA) et ces adresses seront décalées vers 8AOOOOh - 8AFFFFh, et ainsi de suite. Les adresses ont été décalées pour permettre à la Banque O 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 nor- males d'ordinateur personnel, d'une manière suffi- sante pour permettre la visualisation de l'informa- tion de programmes d'applications Windows. MEMOIRE FLASH, BANQUE O FFFFFF Mémoire Flash, Bloc d'Amorce EOOOOO MEMOIRE FLASH, BANQUE 1 DFFFFF Mémoire Flash, Système de Fichiers COOOOO Carte réseau BFFFFF B80000 Mémoire Flash Supplémentaire B7FFFF BOOOOO Contrôleur Vidéo/Graphique AFFFFF DRAM, BANQUE 1 7FFFFF DRAM, BANQUE O 3FFFFF TABLEAU 1 La Banque O peut être organisée en un bloc d'amorce de 16 Ko dans la plage d'adresses su- périeure, par exemple FFCOOOH - 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'à FOOOOOH (si une allo- cation de 1 Mo est effectuée), ou jusqu'à EOOOOOH (si une allocation de 2 Mo est effectuée). Les blocs principaux de mémoire sont organisés de façon carac- té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'à COOOOOH. 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 commande de mémoire vive dynamique 164 et une logi- que 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 , 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 appli- qué à l'unité centrale. Le tampon d'entrée de com- mande d'unité centrale 172 applique également un si- gnal 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 dynami- que 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 le 8259; de façon si- milaire, le temporisateur de système, ou logique de commande de temporisateur 166, n'est pas compatible avec le 8254, et il fonctionne à une fréquence supé- rieure à celle d'un dispositif compatible avec le 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 ému- lées de fréquence inférieure (standard) puisse ne pas être uniforme. Le circuit intégré spécifique 110 comprend également un tampon d'entrée d'adresse d'unité cen- trale 176, qui reçoit des signaux BE0, BE1 et A1- A23, comme indiqué dans le Tableau 2, et qui appli- que un signal de sortie à un multiplexeur d'adresse de mémoire vive dynamique 178, ainsi qu'à une logi- que 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 FLASHCS0 (FCS0) et FLASHCS1 (FCS1), et au- tres, comme indiqué dans le Tableau 2. En outre, le circuit intégré spécifique 110 reçoit des signaux D0-15 provenant du bus de données 106 et il les fournit au tampon d'entrée de données d'unité cen- trale 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 BD015. Le tampon 182 fournit également des données à une logique de commande d'alimentation 186, qui fournit des signaux SLEEP et PWRDWN. Les signaux BD0-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 ensuite à 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 micropro- gramme est conçu pour être exécuté dans un mode 8086 virtuel, dans lequel des composants de matériel com- patibles AT, tels que les contrôleurs d'interrup- tions 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 uti- lisé 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 si- gnaux 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 com- 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 au- tre 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éalisa- tion envisagé à titre d'exemple, une fiche de bou- clage 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'établisse- ment de configuration, ou bien le chargement du code de connexion à un réseau. Dans un mode de réalisa- tion 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'utili- sateur 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'établis- sement 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- mence à exécuter le code de connexion à un réseau (ici encore, un réseau ICA, "Thinwire", Com, ou au- tre), en 340. Dans un mode de réalisation actuelle- ment préféré, le code de connexion à un réseau com- prend 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'ex- ploitation 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 fi- gure 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 cou- che 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, in- diqué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 AUTOEXEC. Le fichier AUTOEXEC provoque à son tour le chargement de la séquence EXEC.COM 325. Comme indi- qué 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'im- porte 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'établis- sement 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 mo- teur 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 ca- ractéristique à des moments appropriés avec un sys- tè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'exploi- tation de terminal, seront exécutées de façon carac- té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'éta- blissement de configuration permet à l'utilisateur de spécifier l'information de configuration du ter- minal, 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 parame- 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 configura- tion du terminal 12. Le moteur de GUI fonctionne seulement pendant le mode d'établissement de confi- guration, 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 420 communi- que également de façon bidirectionnelle avec la structure de mémoire vive, pour établir et visuali- ser l'information présente, dans une disposition que l'on décrit ci-après par les termes de zones, grou- 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'inter- mé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 ca- racté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éalisa- tion 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 cycli- que 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'établisse- ment 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 re- tourne 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'exem- ple de la figure 7A, le groupe "Communication" com- prend les sélections Port Série, TCP/IP, SPX et IPX, et à chacune d'elles est associée une région 630 in- diquant 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 LISTEZONES 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 LISTEZONESVISU 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éces- sairement 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éfi- nis dans le processus SETUP (Etablissement de Confi- guration), dans toutes les zones se trouvant dans la structure LISTE ZONES 700. Comme indiqué précédem- ment, chaque zone comprend de façon caractéristique ou plusieurs groupes. Une structure de données fa- cultative LISTECHAINES, 706, peut également être incorporée, et une structure LISTEFICHIERS 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 diver- ses 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 ABSX 720 et un article ABSY 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 LONGCHAINEMAX 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 PTRSOUZONE 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'ef- fet de l'appui sur la touche "Entrée". Un article BOUTONANNUL 742 spécifie le bouton d'annulation, qui sera activé sous l'effet de l'appui sur la tou- che "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 LISTEZONESVISU, 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 LISTEZONES 700, la LISTEZONESVISU 748 désigne également la structure de zone 714. Une structure similaire pour la LISTEGROUPES 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 pouridentifier la sélection qui, lorsqu'elle sera activée, fera monter automati- quement ce groupe, un article COMPTEPOINTSSENS 782 pour identifier le nombre de points sensibles de souris dans le groupe, et des articles DEBUTGX 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'in- té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 arti- cle POSITIONTOUCHERAPIDE 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 struc- ture 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, LONGCHAINEMAX 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 arti- cle 806 appelé LIENIDZONE est incorporé à titre de référence en retour à l'identificateur de zone, ID, 712, auquel le groupe particulier est associé. L'ar- ticle LIENID_ ZONE 806 n'est pas exigé dans tous les cas, mais il contribue à améliorer les perfor- mances, 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'envi- sagera ci-après, diverses structures de sélection peuvent être associées à chaque groupe, mais cer- tains éléments sont communs parmi les divers types. Par conséquent, le premier pointeur 808A désigne un bloc de structure COMMUNSELECT 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 COMMUNSELECT 810. Le bloc de structure COMMUNSELECT 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 POSTOUCHE_ RAPIDE et CARACTERETOUCHERAPIDE 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'acti- vation 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 plusieurs possibilités, comme indiqué dans les groupes "Communication" et "Port Série" 660 et 670 de la fi- gure 7A. Dans d'autres encore, on peut sélectionner une image, tandis que dans d'autres, il est néces- saire de sélectionner un texte spécifique. Dans cer- tains 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 envi- sagé à titre d'exemple, la liste n'est pas exhaus- tive 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 RELYETIQUETTE 844 et un article CHAINE ETIQUETTE 846. Pour un type de sélection "un parmi plu- sieurs", il existe des articles NOMBRE_LIGNES_DESEL et NOMBRECOLONNESDESEL, 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 chaî- 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éca- lage de visualisation en direction horizontale, 872, et un article de décalage de visualisation en direc- tion verticale, 874, ainsi qu'une position d'éti- quette 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 POINTEURSOU 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 arti- cles 912A-D spécifient les positions supérieures gauches en X et Y, ainsi que les positions inférieu- res droites en X et Y pour le point sensible de la souris, conjointement à un article 914 pour des in- dicateurs de souris qui provoquent l'activation du point sensible de la souris lorsque le menu appro- prié est visualisé. En plus des points sensibles dans ce qui précède, des points sensibles supplémen- taires 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 respec- tivement le nombre de groupes et le nombre de sélec- tions qui ont été définis, et un article 960 pour allouer un nombre de sélections maximal prédétermi- né. 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 ar- ticle de police de caractères 966, un article d'at- tention 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'atten- tion de clavier. De plus, des articles IATTENTION et JATTENTION, 980 et 982, sont prévus pour les arti- cles 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 ar- ticle ACTIF, qui enregistre l'état courant de toutes les sélections, à partir duquel ces données peuvent être fournies au code SETUP (Etablissement de Confi- guration). 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 enregis- trer 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éristi- que 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'en- tré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'ap- plications dans un environnement multi-utilisateur, 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 simi- laire, 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 ac- tuellement 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 clas- siques, le système de fichiers à mémoire flash ne comprend pas de groupements ou de secteurs. Des fi- chiers dans chaque "lecteur" ou partition se déve- loppent 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 conti- guë, 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 similai- res à 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 fi- chiers 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 fragmenta- tion de fichiers n'est pas permise, au moins dans certains modes de réalisation. Le système de fichiers à mémoire flash sup- porte 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. Cepen- dant, 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 instruc- tions 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 Vec- tor", 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 consi- dé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 termi- nal 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 diagnos- tics à la mise sous tension, mais qui n'est pas uti- lisé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 com- mander 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 norma- les 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 disposi- tifs, pendant que ces pilotes sont chargés. Une fois que les pilotes sont chargés et que le terminal en- tre 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 environ- nement DOS. Les interruptions les plus fréquemment traitées par cette fonction sont des interruptions de souris et de clavier, mais elles peuvent compren- dre 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 inter- ruptions 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 inven- tion 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 des- tiné à permettre à l'utilisateur d'observer une vi- sualisation 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éali- sation 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 rela- tion avec le noyau de logiciel qui est décrit ci- apres. Le noyau place le processeur dans un mode 8086 virtuel et il établit diverses tables qui sont nécessaires pour intercepter des instructions d'en- tré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 sous- programme 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 égale- ment ê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 com- prendre des personnalités multiples en mémoire, dans une configuration dans laquelle le terminal est con- necté à de multiples hôtes travaillant avec des sys- tè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: h [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'inter- ruptions 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 d'interruptions compatible AT] -- Emulé. h-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 consi- dé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'in- terruption de la présente invention. 61h [Un port de commande de fonctions diver- ses 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'inter- ruption" est émulée. Alh [Le registre de masque pour le second contrôleur d'interruptions (similaire au port 21h)] -- Emulé. 2F8h à 2FFh [Une adresse standard pour un se- cond 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) com- prend 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. 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 0 Mémoire/Entrée sortie E UC W/R9 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 WE9 Validation d'écriture S DRAH BD Bus de données de périphériques E/S FLASH, SIO,LAN... FLASHCS J Multiplexage de mémoire FLASH S FLASH COMICSI Multiplexage de port COM 1 S SIO COM2CS# Multiplexage de port COM 2 SSIO PRINTERCS# Multiplexage de port d'imprimante S SIO IOWR# Ecriture en entrée/sortie S SIO, KBCTRL,LAN IORD9 Lecture en entrée/sortie S SIO,KBCTRL,LAN MEMWR# Ecriture en mémoire S FLASH, LAN MEHRD# Lecture en mémoire S FLASH,LAN 8042CS# Multiplexage de contrôleur de clavier S KBCTRL SPEN Sortie de haut-parleur S HAUT- PARLEUR READY9 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 CON2 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 decontrôl61eur 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 dlagnostic S LOGIQUE 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 indica- teur: 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. 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'écri- ture 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 sup- porté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. 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): Sousfonction 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): Sup- portée. Sous-fonction 9 (Contrôler le Réseau): Supportée (retourne tou- jours 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 fi- chiers 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. TABLEAU 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. 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 lAh (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 cer- taines 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): Suppor- tée. Sous-fonction 2 (Fixer la Cadence d'Echantillonnage): Supportée Sous-fonction 3 (Fixer la Résolution): Supportée. Sous-fonction 4 (Lire le Type de Dispositif): Non supportée Sous- fonction 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. TABLEAU 3C (suite) Sous-fonction 2 (Etat de Changement de Clavier): Supportée. Sous-fonction 3 (Fixer la Cadence de Frappe Automatique): Non supportée. Sous-fonction 4 (Réglage du "Clic" au Clavier): Non supportée Sous-fonction 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. 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 pour visualiser de l'information de programmes d'applications dans un environnement à fenêtres, caractérisé en ce qu'il comprend: des moyens de traitement (100), non entièrement compati- bles avec des systèmes d'entrée/sortie de base ou des systèmes d'exploitation à disques d'ordinateur personnel, adaptés pour recevoir de l'information en mode de fenêtres qui est fournie par des programmes qui sont exécutés dans un serveur d'applications (10) situé à distance; et des moyens de visualisa- tion (146) pour visualiser l'information en mode de fenêtres. 2. 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 sys- tème hôte, conformément au protocole de communica- tion 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, con- formément au protocole de communication qui est as- socié à 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éagis- sant à la première et au moins à la seconde person- nalités de façon à traiter l'un des premier et troi- siè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 compa- tibles avec le protocole de communication qui est associé à ce système hôte; et des moyens de commuta- tion pour identifier le système hôte auquel le ter- minal est connecté au moment présent, et pour sélec- tionner la personnalité appropriée parmi la première personnalité et au moins la seconde personnalité, pour la communication avec le système hôte identi- fié. 3. Procédé pour mettre à jour des caractéris- tiques de fonctionnement d'un terminal (12), carac- térisé en ce 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 fonc- tionnement 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 fonc- tionnement mises à jour, pendant que le terminal (12) est dans la première condition de fonctionne- ment; et on établit une seconde condition de fonc- tionnement pendant laquelle des données ne sont pas écrites dans la partie prédéterminée de la mémoire flash (112). 4. Terminal (12) pour visualiser, dans l'en- vironnement d'exploitation Microsoft Windows (marque déposée), de l'information de programmes d'applications qui est fournie par un système hôte fonctionnant sous un système d'exploitation Microsoft Windows R, caractérisé en ce qu'il com- prend: des moyens d'interface (124, 128) pour rece- voir à partir du serveur d'applications (10) de l'information de visualisation pour un programme d'applications qui est exécuté sur le serveur d'ap- plications; des moyens de traitement (100), non en- tièrement compatibles avec des systèmes d'en- trée/sortie de base ou des systèmes d'exploitation à disques d'ordinateur personnel, et incapables d'exé- cuter le programme d'applications de façon locale, fonctionnant sous la dépendance des moyens d'inter- face de façon à émuler ou à traiter des instructions qui sont fournies par des programmes exécutés sur un serveur d'applications (10) 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 (146) qui fonctionnent sous la dépendance des moyens de traitement (100) de fa- çon à visualiser l'information en mode de fenêtres. 5. Procédé pour établir la configuration d'un terminal (12) ayant une visualisation, pour la com- munication 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 (620) en une configura- tion de grille de bits dans la zone (600); et on établit au moins une sélection (620) en configura- tion de grille de bits dans le groupe (610), avec un ou plusieurs choix associés à chaque sélection (620).