FR2743169A1 - Procede et terminal pour visualiser de l'information de programmes d'applications - Google Patents

Procede et terminal pour visualiser de l'information de programmes d'applications Download PDF

Info

Publication number
FR2743169A1
FR2743169A1 FR9615970A FR9615970A FR2743169A1 FR 2743169 A1 FR2743169 A1 FR 2743169A1 FR 9615970 A FR9615970 A FR 9615970A FR 9615970 A FR9615970 A FR 9615970A FR 2743169 A1 FR2743169 A1 FR 2743169A1
Authority
FR
France
Prior art keywords
terminal
host system
supported
function
operating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9615970A
Other languages
English (en)
Other versions
FR2743169B1 (fr
Inventor
Randy Buswell
Carol A Fox
Bill Gay
Sui M Lam
Curtis Schwebke
Yih Shyan Wey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wyse Technology LLC
Original Assignee
Wyse Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wyse Technology LLC filed Critical Wyse Technology LLC
Publication of FR2743169A1 publication Critical patent/FR2743169A1/fr
Priority to FR0502726A priority Critical patent/FR2867638B1/fr
Application granted granted Critical
Publication of FR2743169B1 publication Critical patent/FR2743169B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • G06F13/107Terminal emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un terminal de visualisation vidéo (12) capable de fonctionner avec une interface graphique d'utilisateur, telle que Windows , permet d'utiliser des programmes d'applications très répandus qui résident dans un serveur (10), sans exiger plus que la transmission de données d'applications du serveur vers le terminal, et la transmission d'informations de clavier et de souris du terminal vers le serveur. L'invention procure également un procédé pour mettre à jour des caractéristiques de fonctionnement d'un terminal par l'intermédiaire d'une liaison de communication (14) avec un système hôte. L'invention permet enfin d'établir de multiples personnalités dans un terminal et de commuter entre ces personnalités.

Description

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<23: 1> Bus d'adresse d'UC E UC D<15:0> 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<9:0> Bus d'adresse de mémoire DRAM S DRAM RAS<l:O 0> Activation d'adresse de ligne S DRAM UCAS<l: 0> Activation CAS supérieure S DRAM LCAS<1: 0> Activation CAS inférieure S DRAM WE9 Validation d'écriture S DRAH
BD<15:0> Bus de données de périphériques E/S FLASH, SIO,LAN...
FLASHCS<l:O>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<3:0> 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.

Claims (5)

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).
FR9615970A 1995-12-29 1996-12-24 Procede et terminal pour visualiser de l'information de programmes d'applications Expired - Lifetime FR2743169B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0502726A FR2867638B1 (fr) 1995-12-29 2005-03-18 Procede et terminal pour visualiser de l'information de programmes d'applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/581,168 US5918039A (en) 1995-12-29 1995-12-29 Method and apparatus for display of windowing application programs on a terminal

Publications (2)

Publication Number Publication Date
FR2743169A1 true FR2743169A1 (fr) 1997-07-04
FR2743169B1 FR2743169B1 (fr) 2005-10-07

Family

ID=24324162

Family Applications (2)

Application Number Title Priority Date Filing Date
FR9615970A Expired - Lifetime FR2743169B1 (fr) 1995-12-29 1996-12-24 Procede et terminal pour visualiser de l'information de programmes d'applications
FR0502726A Active FR2867638B1 (fr) 1995-12-29 2005-03-18 Procede et terminal pour visualiser de l'information de programmes d'applications

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR0502726A Active FR2867638B1 (fr) 1995-12-29 2005-03-18 Procede et terminal pour visualiser de l'information de programmes d'applications

Country Status (13)

Country Link
US (1) US5918039A (fr)
JP (2) JPH1021173A (fr)
CN (4) CN103207780A (fr)
AU (1) AU734150B2 (fr)
CA (1) CA2194112C (fr)
DE (1) DE19655235B4 (fr)
ES (1) ES2128251B1 (fr)
FR (2) FR2743169B1 (fr)
GB (1) GB2308793B (fr)
HK (1) HK1120627A1 (fr)
IT (1) IT1286910B1 (fr)
MX (1) MX9700193A (fr)
SG (2) SG97751A1 (fr)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720672B1 (en) 1995-12-29 2010-05-18 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US7100069B1 (en) * 1996-02-16 2006-08-29 G&H Nevada-Tek Method and apparatus for controlling a computer over a wide area network
US7080127B1 (en) * 1996-03-06 2006-07-18 Hickman Paul L Method and apparatus for computing within a wide area network
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6256785B1 (en) * 1996-12-23 2001-07-03 Corporate Media Patners Method and system for providing interactive look-and-feel in a digital broadcast via an X-Y protocol
AU6260398A (en) * 1997-02-03 1998-08-25 Curt A. Schmidt A computer system using a plurality of remote workstations and centralized computer modules
US6836885B1 (en) * 1998-09-21 2004-12-28 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US6356943B2 (en) * 1998-12-14 2002-03-12 Emc Corporation Distance learning implementation
US6470457B1 (en) * 1998-12-14 2002-10-22 International Business Machines Corporation Local permanent storage in network computer
US6732067B1 (en) * 1999-05-12 2004-05-04 Unisys Corporation System and adapter card for remote console emulation
US6373498B1 (en) * 1999-06-18 2002-04-16 Phoenix Technologies Ltd. Displaying images during boot-up and shutdown
US6298068B1 (en) * 1999-08-31 2001-10-02 Telco Systems, Inc. Methods and apparatus for ISDN communications with dual mode access to interface apparatus on-board memory
EP1956492B1 (fr) * 1999-09-21 2018-09-05 Wyse Technology L.L.C. Affichage de programmes d'application en fenêtres sur un terminal
US6895499B1 (en) 1999-12-27 2005-05-17 Dell Usa, L.P. System and method for device configuration and management using a universal serial bus port
US6724402B1 (en) 2000-01-27 2004-04-20 David R. Baquero Method of launching computer programs within a graphical user interface
US7699699B2 (en) 2000-06-23 2010-04-20 Igt Gaming device having multiple selectable display interfaces based on player's wagers
US7695363B2 (en) 2000-06-23 2010-04-13 Igt Gaming device having multiple display interfaces
US6682423B2 (en) * 2001-04-19 2004-01-27 Igt Open architecture communications in a gaming network
US7353252B1 (en) 2001-05-16 2008-04-01 Sigma Design System for electronic file collaboration among multiple users using peer-to-peer network topology
US7065531B2 (en) * 2002-03-12 2006-06-20 Hewlett-Packard Development Company, L.P. Combining computer programs
US20040053694A1 (en) * 2002-09-13 2004-03-18 Rick Rowe Casino open network system architecture
US7703078B2 (en) * 2003-09-03 2010-04-20 Cybersoft, Inc. Apparatus, methods and articles of manufacture for software demonstration
KR100586309B1 (ko) * 2004-02-23 2006-06-07 엔컴퓨팅 주식회사 다운로드 방식의 운영체제로 구동되는 네트워크 단말장치및 그 동작 방법
US7484247B2 (en) 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
US8021230B2 (en) 2004-08-19 2011-09-20 Igt Gaming system having multiple gaming machines which provide bonus awards
US8251791B2 (en) 2004-08-19 2012-08-28 Igt Gaming system having multiple gaming machines which provide bonus awards
US7963847B2 (en) 2004-08-19 2011-06-21 Igt Gaming system having multiple gaming machines which provide bonus awards
KR100711093B1 (ko) * 2005-01-11 2007-04-27 삼성전기주식회사 모바일 기기와 디스플레이상의 어플리케이션 간의 직접통신을 위한 방법 및 시스템
US7753773B2 (en) 2005-08-26 2010-07-13 Igt Gaming device having physical concentric symbol generators which are operable to provide a plurality of different games to a player
US8137188B2 (en) 2005-09-09 2012-03-20 Igt Server based gaming system having multiple progressive awards
US8128491B2 (en) 2005-09-09 2012-03-06 Igt Server based gaming system having multiple progressive awards
US7841939B2 (en) 2005-09-09 2010-11-30 Igt Server based gaming system having multiple progressive awards
EP1865410A1 (fr) * 2006-06-09 2007-12-12 Delta Electronics, Inc. Système Interface Homme-Machine avec un appareil de connexion et méthode pour concevoir et exploiter cet appareil
US8512130B2 (en) 2006-07-27 2013-08-20 Igt Gaming system with linked gaming machines that are configurable to have a same probability of winning a designated award
US8616959B2 (en) 2006-09-27 2013-12-31 Igt Server based gaming system having system triggered loyalty award sequences
US7674180B2 (en) 2006-09-27 2010-03-09 Igt Server based gaming system having system triggered loyalty award sequences
US7862430B2 (en) 2006-09-27 2011-01-04 Igt Server based gaming system having system triggered loyalty award sequences
US7921139B2 (en) * 2006-12-01 2011-04-05 Whitserve Llc System for sequentially opening and displaying files in a directory
US7985133B2 (en) 2007-07-30 2011-07-26 Igt Gaming system and method for providing an additional gaming currency
US8900053B2 (en) 2007-08-10 2014-12-02 Igt Gaming system and method for providing different bonus awards based on different types of triggered events
US9142097B2 (en) 2007-10-26 2015-09-22 Igt Gaming system and method for providing play of local first game and remote second game
US9489209B2 (en) * 2008-01-23 2016-11-08 Hewlett-Packard Development Company, L.P. Bios graphical setup engine
US20120023598A1 (en) * 2009-03-31 2012-01-26 Hewlett-Packard Development Company, L.P. Bios usb write prevent
US9578113B2 (en) 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9189124B2 (en) * 2009-04-15 2015-11-17 Wyse Technology L.L.C. Custom pointer features for touch-screen on remote client devices
US20100268762A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application
US10244056B2 (en) * 2009-04-15 2019-03-26 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9448815B2 (en) * 2009-04-15 2016-09-20 Wyse Technology L.L.C. Server-side computing from a remote client device
US9553953B2 (en) 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US8676926B2 (en) * 2009-04-15 2014-03-18 Wyse Technology L.L.C. System and method for handling remote drawing commands
US9039516B2 (en) 2009-07-30 2015-05-26 Igt Concurrent play on multiple gaming machines
EP2460347A4 (fr) * 2009-10-25 2014-03-12 Lg Electronics Inc Procédé pour traiter des informations de programme de diffusion et récepteur de diffusion
US8407662B2 (en) * 2010-06-25 2013-03-26 Wyse Technology Inc. Apparatus and method for network driver injection into target image
US9880712B2 (en) * 2013-09-06 2018-01-30 Microsoft Technology Licensing, Llc In-application customization
US9875618B2 (en) 2014-07-24 2018-01-23 Igt Gaming system and method employing multi-directional interaction between multiple concurrently played games
US9972171B2 (en) 2015-09-24 2018-05-15 Igt Gaming system and method for providing a triggering event based on a collection of units from different games
CN105204811B (zh) * 2015-10-27 2020-09-29 威海元程信息科技有限公司 一种多路控制系统及方法
CN107592348A (zh) * 2017-09-01 2018-01-16 西安万像电子科技有限公司 数据传输方法、装置及系统
CN107911353A (zh) * 2017-11-06 2018-04-13 西安万像电子科技有限公司 数据传输方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289574A (en) * 1990-09-17 1994-02-22 Hewlett-Packard Company Multiple virtual screens on an "X windows" terminal
US5408602A (en) * 1990-07-31 1995-04-18 Giokas; Dennis G. System and method for emulating a window management environment having a uniform windowing interface
US5408600A (en) * 1990-08-30 1995-04-18 Hewlett-Packard Company System for dynamic sharing of local and remote displays by maintaining a list of best-match resources
DE19522185A1 (de) * 1994-06-17 1996-02-01 Spacelabs Medical Inc Ein Verfahren und System zur dynamischen Übersetzung zwischen verschiedenen grafischen Benutzeroberflächen-Systemen

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4281315A (en) * 1979-08-27 1981-07-28 Bell Telephone Laboratories, Incorporated Collection of messages from data terminals using different protocols and formats
US4496943A (en) * 1982-11-18 1985-01-29 Portable Terminal Corp. Portable information display
CA1278386C (fr) * 1985-10-29 1990-12-27 Aurel Kleinerman Methode et appareil pour controler l'execution par un second ordinateur des programmes d'application d'un ordinateur central
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
JPS6414678A (en) * 1987-02-27 1989-01-18 Kiyapuran Saibaneteitsukusu Co Cpmputer graphic system
US4942540A (en) * 1987-03-02 1990-07-17 Wang Laboratories, Inc. Method an apparatus for specification of communication parameters
US5065343A (en) * 1988-03-31 1991-11-12 Yokogawa Electric Corporation Graphic display system for process control using a plurality of displays connected to a common processor and using an fifo buffer
US5321840A (en) * 1988-05-05 1994-06-14 Transaction Technology, Inc. Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal
US5063494A (en) * 1989-04-12 1991-11-05 Unisys Corporation Programmable data communications controller
US5175813A (en) * 1989-08-14 1992-12-29 International Business Machines Corporation Window display system and method for creating multiple scrollable and non-scrollable display regions on a non-programmable computer terminal
US5128995A (en) * 1990-07-23 1992-07-07 International Business Machines Corp. Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
US5230052A (en) * 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
AU634431B2 (en) * 1990-11-27 1993-02-18 Kabushiki Kaisha Toshiba Japanese emulator
JPH04196850A (ja) * 1990-11-28 1992-07-16 Ricoh Co Ltd マルチプロトコルシステム
TW198107B (fr) * 1991-02-28 1993-01-11 Ibm
EP0524362B1 (fr) * 1991-07-24 2000-05-17 Texas Instruments France Adapteur d'affichage
US5404445A (en) * 1991-10-31 1995-04-04 Toshiba America Information Systems, Inc. External interface for a high performance graphics adapter allowing for graphics compatibility
GB2269032B (en) * 1992-07-21 1996-03-20 Orbitel Mobile Communications Reprogramming methods and apparatus
US5673403A (en) * 1992-11-13 1997-09-30 International Business Machines Corporation Method and system for displaying applications of different operating systems on a single system using the user interface of the different operating systems
DE4332063A1 (de) * 1993-09-21 1995-03-23 Teltron Elektronik Gmbh Verfahren zur Programmierung einer Mikrocomputerschaltung sowie eine hierfür ausgelegte Mikrocomputerschaltung
US5526503A (en) * 1993-10-06 1996-06-11 Ast Research, Inc. Virtual addressing buffer circuit
JP3187624B2 (ja) * 1993-11-19 2001-07-11 京セラミタ株式会社 通信機能を備えた機器の内蔵プログラム更新方法
IL114316A0 (en) * 1994-07-08 1995-10-31 Grumman Aerospace Corp A method for updating the firmware of a microprocessor system
US5680530A (en) * 1994-09-19 1997-10-21 Lucent Technologies Inc. Graphical environment for interactively specifying a target system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408602A (en) * 1990-07-31 1995-04-18 Giokas; Dennis G. System and method for emulating a window management environment having a uniform windowing interface
US5408600A (en) * 1990-08-30 1995-04-18 Hewlett-Packard Company System for dynamic sharing of local and remote displays by maintaining a list of best-match resources
US5289574A (en) * 1990-09-17 1994-02-22 Hewlett-Packard Company Multiple virtual screens on an "X windows" terminal
DE19522185A1 (de) * 1994-06-17 1996-02-01 Spacelabs Medical Inc Ein Verfahren und System zur dynamischen Übersetzung zwischen verschiedenen grafischen Benutzeroberflächen-Systemen

Also Published As

Publication number Publication date
ES2128251B1 (es) 1999-12-16
CA2194112A1 (fr) 1997-06-30
CN103207780A (zh) 2013-07-17
FR2867638B1 (fr) 2017-01-06
JP2004185633A (ja) 2004-07-02
JPH1021173A (ja) 1998-01-23
FR2743169B1 (fr) 2005-10-07
ITFI960309A1 (it) 1998-06-30
CN101231578A (zh) 2008-07-30
SG81965A1 (en) 2001-07-24
IT1286910B1 (it) 1998-07-17
CN1257448C (zh) 2006-05-24
FR2867638A1 (fr) 2005-09-16
HK1120627A1 (en) 2009-04-03
CA2194112C (fr) 2003-11-18
MX9700193A (es) 1997-11-29
SG97751A1 (en) 2003-08-20
GB2308793A (en) 1997-07-02
GB2308793B (en) 2001-02-28
ES2128251A1 (es) 1999-05-01
GB9626821D0 (en) 1997-02-12
CN1177135A (zh) 1998-03-25
AU7642696A (en) 1997-07-03
CN101231578B (zh) 2013-03-27
US5918039A (en) 1999-06-29
DE19655235B4 (de) 2015-07-30
AU734150B2 (en) 2001-06-07
CN1550974A (zh) 2004-12-01

Similar Documents

Publication Publication Date Title
FR2743169A1 (fr) Procede et terminal pour visualiser de l&#39;information de programmes d&#39;applications
US8904362B2 (en) Method and apparatus for display of windowing application programs on a terminal
US6836885B1 (en) Method and apparatus for display of windowing application programs on a terminal
Membrey et al. Learn Raspberry Pi with Linux
WO2021185302A1 (fr) Procédé de diffusion en continu en direct et de configuration basé sur des téléphones en nuage, et appareil et système associés
US20060005187A1 (en) Systems and methods for integrating application windows in a virtual machine environment
TW200834421A (en) Instant-on platform
CN101438266A (zh) 按照离散的级引导操作系统
US20040225876A1 (en) Application software configured to work with two operating systems
FR2699702A1 (fr) Systèmes de commande de micro-ordinateurs pour des communications interprogrammes et des méthodes de planification.
US9471357B2 (en) Monitoring virtual machine interface and local graphical user interface on a thin client and alternating therebetween
US7941659B2 (en) External memory enabling a user to select an application program to be launched before launching an operating system
EP1873636A2 (fr) Procédés et appareil pour fournir des services de messagerie dynamiques
Hess et al. Practical virtualization solutions: virtualization from the trenches
EP2345966B1 (fr) Affichage de programmes d&#39;application en fenêtres sur un terminal
JP2000023150A (ja) プロジェクタにおける画像データの再生方法及びプロジェクタ
CN114860401B (zh) 异构云桌面调度系统、方法、服务系统、装置及介质
AU750333B2 (en) Method and apparatus for display windowing application programs on a terminal
AU766791B2 (en) A method for updating operating characteristics of a terminal
CA2440840C (fr) Methode pour la mise a jour des caracteristiques operationnelles d&#39;affichage de programmes d&#39;application de fenetrage sur un terminal
WO2000017729A2 (fr) Procede et appareil ameliores d&#39;affichage de programmes d&#39;application de fenetrage sur un terminal
JP3534359B2 (ja) 複数のディスプレイ・セッションをサポートする装置、方法およびコンピュータ・システム
GB2352374A (en) Windowing application programs on a terminal
CN116009997A (zh) 云桌面管理方法、装置、电子设备及存储介质
TW475120B (en) Improved method and apparatus for display of windowing application programs on a terminal

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 20

CD Change of name or company name

Owner name: WYSE TECHNOLOGY L.L.C, US

Effective date: 20160720

CJ Change in legal form

Effective date: 20160720