DE19654766A1 - Different communication protocols network terminal - has processor responsive to first and at least second personalities for processing one of first and third sets of instructions - Google Patents

Different communication protocols network terminal - has processor responsive to first and at least second personalities for processing one of first and third sets of instructions

Info

Publication number
DE19654766A1
DE19654766A1 DE19654766A DE19654766A DE19654766A1 DE 19654766 A1 DE19654766 A1 DE 19654766A1 DE 19654766 A DE19654766 A DE 19654766A DE 19654766 A DE19654766 A DE 19654766A DE 19654766 A1 DE19654766 A1 DE 19654766A1
Authority
DE
Germany
Prior art keywords
terminal
host system
host
group
area
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
DE19654766A
Other languages
German (de)
Other versions
DE19654766B4 (en
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
Priority claimed from US08/581,168 external-priority patent/US5918039A/en
Application filed by Wyse Technology LLC filed Critical Wyse Technology LLC
Publication of DE19654766A1 publication Critical patent/DE19654766A1/en
Application granted granted Critical
Publication of DE19654766B4 publication Critical patent/DE19654766B4/en
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

Abstract

The terminal (12) includes a first personality for providing responses to first and second sets of instructions supplied by a first host (10) system in accordance with the communications protocol associated with that first host system. At least a second personality is used for providing responses to third and fourth sets of instructions supplied by a second host system (16) in accordance with the communications protocol associated with that second host system. At least one of the host systems provides windowing information. A processor is responsive to the first and at least the second personalities for processing one of the first and third sets of instructions. The processor also emulates one of the second and fourth sets of instructions, to provide to the associated host system responses compatible with the communications protocol associated with that host system. A switching device is used for identifying the host system to which the terminal is currently connected.

Description

Die vorliegende Erfindung bezieht sich allgemein auf ein Verfah­ ren und eine Vorrichtung zum Darstellen von Informationen auf einem Terminal oder an einer Arbeitsstation und insbesondere auf ein Verfahren und eine Vorrichtung zum Formatieren und Darstel­ len von Informationen auf einem Terminal, auf eine graphische Benutzerschnittstelle, wie beispielsweise der Microsoft Windows®- Benutzerumgebung, einschließlich der Anwenderprogramme in dieser Umgebung.The present invention relates generally to a method ren and a device for displaying information a terminal or at a workstation and in particular on a method and apparatus for formatting and displaying len information on a terminal, on a graphic User interface, such as the Microsoft Windows® User environment, including the user programs in it Surroundings.

Graphische Benutzerschnittstellen, wie die Microsoft Windows®- Bedienungsumgebung, stellen die meistverbreitete und weltweit am meisten verkaufte Anwendungs-Software dar. Solche Umgebungen werden deshalb besonders bevorzugt, weil sie leicht zu bedienen sind, einheitliche Benutzerschnittstellen bieten, eine hohe Darstellungsqualität haben und aus vielen weiteren Gründen.Graphical user interfaces, such as the Microsoft Windows® Operating environment, represent the most widespread and worldwide most sold application software. Such environments are particularly preferred because they are easy to use are, offer uniform user interfaces, a high Display quality and for many other reasons.

Jedoch bedingen diese Benutzerumgebungen ausgebaute Ar­ beitsplätze und Microcomputer, wie beispielsweise Personalcom­ puter (PC). Diese Arbeitsplätze und Microcomputer sind zwar flexibel, verursachen aber Schwierigkeiten hinsichtlich der Sicherheit, der Zuverlässigkeit, des Bedienungskomforts und sind aufwendig. Demgegenüber sind Datenterminals im Vergleich zu Microcomputern für ihre Vorteile der besseren Sicherheit bekannt und für ihren Bedienungskomfort sowie dafür, daß sie üblicher­ weise preiswerter sind; diese Terminals sind jedoch üblicher­ weise nicht mit den am meisten benutzten graphischen Benut­ zerschnittstellen kompatibel. Diejenigen Terminals, die in der X-Umgebung arbeiten, bieten im beschränkten Umfang graphische Benutzerschnittstellen-Möglichkeiten unter UNIX®, sind aber teuer und erfordern einen großen Speicherplatz und sind zu den verbreiteten Windows®-Umgebungen nicht kompatibel.However, these user environments require expanded Ar workstations and microcomputers such as Personalcom computer (PC). These workstations and microcomputers are though flexible, but cause difficulties in terms of Security, reliability, ease of use and are complex. In contrast, data terminals are compared to Microcomputers are known for their benefits of better security and for their ease of use and for making them more common wise are cheaper; however, these terminals are more common wise with the most used graphical user interfaces compatible. Those terminals that are in the X environment work, offer limited graphical User interface capabilities under UNIX®, however, are expensive and require a large amount of storage space and are among those common Windows® environments are not compatible.

Eine andere bekannte Option bietet das sogenannte plattenlose PC-System ("diskless PCS"). Das plattenlose PCS leidet jedoch unter einigen Unzulänglichkeiten. In den meisten Fällen zeigt das plattenlose PCS, das in einer "Client-Server"-Umgebung ar­ beitet, eine Anwendungsprogramm-Information an, indem die Anwen­ dung vom Server heruntergeladen wird, und diese Anwendung dann lokal ausgeführt wird. Dies erfordert vom plattenlosen PC zu­ mindest eine, wie auch immer geartete, Ausstattung, die für jede dieser Ausführungen dies auch ermöglicht. In der heute üblichen Umgebung kann dies einen Speicher von mehr als acht Megabyte, einen starken Prozessor usw. erfordern, wodurch der einzelne plattenlose PC wieder sehr teuer wird. Schließlich ist das plat­ tenlose PCS wenig sicher und kann eine umfängliche Verwaltung erforderlich machen.Another known option is the so-called plate-free PC system ("diskless PCS"). However, the diskless PCS suffers  among some shortcomings. In most cases it shows the diskless PCS that ar in a "client-server" environment is preparing application program information by the user downloaded from the server, and then this application running locally. This requires from the diskless PC too at least one, whatever kind of equipment, for each this version also makes this possible. In the usual way today Environment this can be a memory of more than eight megabytes, require a strong processor, etc., which makes the individual diskless PC again becomes very expensive. After all, that's plat tenless PCS little secure and can be extensive administration make necessary.

Das Windows® NT-Betriebssystem stellt eine robuste Netzwerk-Client/Server-Umgebung dar und bietet gleichzeitig Kom­ patibilität mit der Anwendungsprogrammebene der verbreiteten Windows® Umgebung. Jedoch wurde das NT-Betriebssystem für PC-Clienten und nicht für Terminals ausgelegt. Dies führt dazu, daß die NT-Clienten wiederum robust und deshalb teuer sein müssen. Außerdem ist Windows® NT für die "Client-Server"-Umgebung und nicht für eine "Multiuser"-Umgebung ausgelegt. Das kürzlich von Citrix Systems, Inc. vorgestellte WinFrame®-Betriebssystem modi­ fiziert das Windows® NT-Betriebssystem durch Ausweitung in eine Multiuser-Umgebung, während frühere Varianten von WinFrame® anstelle von Terminals PCS-Clienten benötigten.The Windows® NT operating system represents a robust one Network client / server environment and at the same time offers com compatibility with the application program level of the common Windows® environment. However, the NT operating system was designed for PC clients and not designed for terminals. This leads to the NT clients in turn have to be robust and therefore expensive. In addition, Windows® NT is for the "client-server" environment and not designed for a "multiuser" environment. That recently from Citrix Systems, Inc. featured WinFrame® operating modes the Windows® NT operating system by expanding into one Multi-user environment, while previous versions of WinFrame® needed PCS clients instead of terminals.

Es besteht daher nach wie vor die Aufgabe, ein preiswertes Ter­ minal verfügbar zu machen, das zuverlässig arbeitet, leicht zu bedienen sowie sicher ist und die Anwender-Programm-Infor­ mationen in einer Multiuser Windows®-Betriebsumgebung anzeigen kann.There is therefore still the task of an inexpensive ter making it available that works reliably, easily use and is safe and the user program information mations in a Multiuser Windows® operating environment can.

Die vorliegende Erfindung bietet eine elegante Lösung, um die Nachteile des Standes der Technik zu überwinden, indem ein preiswertes Terminal für die Darstellung der mit einer Fenster­ umgebung kompatiblen Anwender-Software verfügbar wird. The present invention offers an elegant solution to the To overcome disadvantages of the prior art by using a inexpensive terminal for displaying with a window environment compatible user software becomes available.  

Insbesondere bietet die Erfindung ein Display-Terminal, das in der Lage ist, in einem Multiuser-System mit einem Anwendungs-Ser­ ver zu kommunizieren. Dies schafft einen sicheren Zugriff zu den Windows®-Anwendungen am Arbeitsplatz. In einem Kon­ figurationsbeispiel kann ein Anwendungs-Server in Form eines beliebigen Computers bereitgestellt werden, auf dem das WinFra­ me®-Betriebssystem läuft. Das WinFrame®-Betriebssystem der Citrix Systems, Inc. schließt das Windows® NT-Betriebssystem und zu­ sätzliche Erweiterungen ein, die ein als ICA-3 bekanntes Anzei­ geprotokoll sowie Multiuser-Fähigkeiten implementieren.In particular, the invention provides a display terminal that in is able to run in a multiuser system with an application ser ver to communicate. This creates secure access too the Windows® applications in the workplace. In a con an application server in the form of a any computer on which the WinFra me® operating system is running. The WinFrame® operating system from Citrix Systems, Inc. closes the Windows® NT operating system and additional enhancements that include a display known as ICA-3 Implement protocol and multiuser capabilities.

Das Terminal baut in einem Ausführungsbeispiel auf eine Hardware-Architektur mit der INTEL® X86 Prozessor-Linie auf. Zusätzlich hat das Terminal nur einen begrenzten Hauptspeicher und ist grundsätzlich nicht dafür ausgelegt, lokal moderne An­ wendungsprogramme wie Textverarbeitungsprogramme, Graphikpro­ gramme oder Datenbankprogramme oder andere populäre Programme laufen zu lassen, nicht einmal das Windows®- oder DOS-Betriebs­ system selbst. Auf diese Weise unterscheidet sich ein Terminal gemäß der vorliegenden Erfindung grundsätzlich von dem bekannten X-Terminal oder dem plattenlosen PCS oder anderen PC-Systemen, die in einer Client-Server-Umgebung arbeiten.In one embodiment, the terminal builds on one Hardware architecture with the INTEL® X86 processor line. In addition, the terminal has only a limited main memory and is basically not designed to suit local modern needs application programs such as word processing programs, graphics pro programs or database programs or other popular programs running, not even Windows® or DOS operation system itself. This is how a terminal differs according to the present invention basically from the known X-Terminal or the diskless PCS or other PC systems, who work in a client-server environment.

Es ist wichtig, daß die neue Hardware-Architektur nicht auf den üblichen IBM PC/AT-Bus zurückgreift und die Firmware (die in einem ROM gespeicherte Software) innerhalb des Terminals greift weder auf den PC/AT BIOS-Standard noch auf PC-kompatible Plat­ ten-Betriebssysteme zurück. Die Terminal-Firmware implementiert Netzwerk-Zugriffserweiterungen, die mit dem Anwendungs-Server kompatibel sind, wiederum z. B. die von Citrix Systems verfüg­ baren ICA-3-Erweiterungen. Es wird sowohl ein hochauflösender Bildschirm zur Erleichterung der Benutzung bereitgestellt, der ein Schwarz-Weiß-Bild mit vielen Graustufen oder Farbe bietet, als auch die für eine Windows®-Umgebung typischen Eingabe- und Ausgabeeinrichtungen, wie Maus, Tastatur, Berührungsschirm und andere Ein- und Ausgabe-Einrichtungen. It is important that the new hardware architecture is not based on the usual IBM PC / AT bus and the firmware (which in software stored in a ROM) within the terminal neither on the PC / AT BIOS standard nor on PC-compatible plat operating systems. The terminal firmware implemented Network access extensions using the application server are compatible, again z. B. available from Citrix Systems ICA-3 extensions. It will be both a high resolution Screen provided for ease of use of the offers a black and white image with many grayscale or color, as well as the typing and typing for a Windows® environment Output devices such as mouse, keyboard, touch screen and other input and output facilities.  

Zusätzlich ist eine Netzwerkschnittstelle vorhanden, die mit dem Anwendungs-Server über konventionelle R5232-Verbindungen, Ether­ net-Anschlüsse, drahtlose Verbindungen, ISDN, Glasfaseroptik, Wechselstromanschlußmodems, Kabel oder sonstwie kommuniziert. Sobald die Verbindung zum Server hergestellt ist, zeigt das Terminal die Windows® NT oder Windows 95®-Umgebung an, ein­ schließlich beliebiger Anwendungsprogramme, die auf dem Server ausgeführt werden können und auf die der Benutzer am Terminal zugreifen kann. In einer beispielhaften Anordnung stellt das Terminal dem Benutzer im wesentlichen dasselbe dar wie ein we­ sentlich teurer, weniger sicherer und schwieriger zu handhaben­ der Personalcomputer. Im Ergebnis bietet die vorliegende Erfin­ dung zahlreiche Merkmale, die normalerweise mit einem Multiuser-System assoziiert werden, während gleichzeitig auch viele wün­ schenswerte Merkmale dargeboten werden, die für eine Client-Server-Umgebung typisch sind.In addition, there is a network interface that works with the Application server over conventional R5232 connections, ether net connections, wireless connections, ISDN, fiber optics, AC connection modems, cables, or otherwise communicates. As soon as the connection to the server is established, this shows Terminal the Windows® NT or Windows 95® environment finally any application programs running on the server can be executed and on which the user at the terminal can access. In an exemplary arrangement, this represents Terminal to the user essentially the same as a we considerably more expensive, less secure and more difficult to use the personal computer. As a result, the present Erfin numerous features normally found with a multiuser system be associated, while at the same time many noteworthy features are presented that for a Client-server environment are typical.

Ein Merkmal der vorliegenden Erfindung ist die Möglichkeit in­ nerhalb der Windows®-Umgebung clientenunabhängig zu arbeiten. Auf diese Weise definiert ein Benutzer mit einem System gemäß der vorliegenden Erfindung seine Betriebsumgebung und diese Umgebung folgt ihm oder ihr durch das ganze System. Ein Benutzer kann sich deshalb in ein Terminal einloggen, eine Umgebung defi­ nieren und dann sich in ein weiteres Terminal einloggen. Das zweite Terminal wird dann automatisch die Umgebung anzeigen, die der Benutzer auf dem ersten Terminal definiert hat.A feature of the present invention is the ability in work independently of clients within the Windows® environment. In this way, a user defines with a system according to and its operating environment of the present invention Environment follows him or her through the whole system. One user can therefore log into a terminal, define an environment kidney and then log into another terminal. The second terminal will then automatically display the environment that the user has defined on the first terminal.

Zusätzlich zu der Fähigkeit, die Anwendungsprogramm-Information anzuzeigen, verfügt das Terminal gemäß der vorliegenden Erfin­ dung über einen Einstellmodus, welcher es dem Benutzer er­ möglicht, eine Vielzahl von Betriebsarten des Terminals zu kon­ figurieren.In addition to the ability to view application program information display, the terminal has according to the present inven via a setting mode, which the user possible to configure a variety of operating modes of the terminal figure.

Um Terminals gemäß der vorliegenden Erfindung in die Lage zu versetzen, den von denjenigen Servern, die unter WinFrame® laufen, ausgesandten Befehlen zu folgen, ist ein besonderes Terminal-Betriebssystem entwickelt worden, das ein konventionel­ les PC-Betriebssystem entweder emuliert oder auf andere Weise die Anrufe beantwortet. Das Terminal-Betriebssystem schließt einen Boot-Block ein, um das System zu initialisieren und zu starten, worauf ein Kernel folgt, welcher zusätzliche Treiber und Befehls-Software lädt, und zwar einschließlich eines modifi­ ziertes WinFrame®-Clientencodes. Die Ausführung des modifizier­ ten WinFrame®-Clienten schließt die Herstellung einer Verbindung zu einem Anwendungs-Server ein.To be able to operate terminals according to the present invention from the servers running WinFrame® running to follow orders sent is special Terminal operating system has been developed using a conventional  les PC operating system either emulated or otherwise answered the calls. The terminal operating system closes a boot block to initialize and shutdown the system start, which is followed by a kernel, which additional driver and command software loads, including a modifi graced WinFrame® client codes. The execution of the modified The WinFrame® client closes the establishment of a connection to an application server.

Zusätzlich zu der Fähigkeit, eine Anwendungsinformation in einer Microsoft Windows®-Umgebung anzuzeigen, bietet die vorliegende Erfindung auch die Fähigkeit, mit anderen Servern oder Host-Rechnern, auf denen von Windows® abweichende Betriebssysteme laufen, dadurch zu kommunizieren, daß andere residente Terminal-Emula­ tionen oder Kenndaten eingeschlossen sind, mit der Möglich­ keit, durch einfachen Knopfdruck zwischen den verschiedenen Kenndaten hin- und herzuschalten.In addition to the ability to store application information in a This Microsoft Windows® environment offers Invention also the ability to work with other servers or Host computers on which operating systems other than Windows® run to communicate by other resident terminal emula tion or characteristics are included with the possible by simply pressing a button between the different Switch characteristic data back and forth.

Ein weiteres Merkmal der vorliegenden Erfindung besteht in der Implementierung einer graphischen Benutzerschnittstelle für die Konfiguration eines Terminals und anderer lokal zu lösender Tasks. Insbesondere stellt die graphische Schnittstelle eine Vielzahl von Fenstern zur Verfügung und jedes Fenster ermöglicht eine erneute Konfiguration von einem oder mehreren Terminal-Kenn­ zeichen oder anderer lokaler Tasks. In jedem Fenster sind die Auswahlmöglichkeiten in Gruppen angeordnet, die in diesem Fenster konfiguriert werden können. Dieses Auswählen oder diese Wahlmöglichkeiten, von denen der Benutzer Gebrauch machen kann, werden angezeigt oder sind durch ein sogenanntes "Pull down"- oder ein ähnliches Menü anzeigbar. Verschiedene Datenstrukturen gehören zu verschiedenen Arten von Gruppen oder Wahlmöglichkei­ ten.Another feature of the present invention is that Implementation of a graphical user interface for the Configuration of a terminal and others to be solved locally Tasks. In particular, the graphical interface provides a Plenty of windows available and every window allows a new configuration of one or more terminal IDs characters or other local tasks. Are in every window the choices arranged in groups in this Windows can be configured. This choosing or this Choices that the user can make use of are displayed or are indicated by a "pull down" - or a similar menu can be displayed. Different data structures belong to different types of groups or choices ten.

Ein anderes Merkmal der vorliegenden Erfindung ist der Einschluß des Terminal-Betriebssystems in einen Kurzzeitspeicher, einem "Flash-Speicher". Dieser Flash-Speicher kann auf verschiedene Weise aktualisiert werden, einschließlich einer Kommunikation durch eine geeignete Schnittstelle, wie einer parallelen oder seriellen Schnittstelle, oder einem Netzwerkadapter, sobald sich das Terminal in einem vorbestimmten Status befindet.Another feature of the present invention is inclusion of the terminal operating system in a short-term memory, one "Flash memory". This flash memory can be used in different ways Ways to be updated, including communication  through a suitable interface, such as a parallel or serial port, or a network adapter as soon as the terminal is in a predetermined status.

Es gehört deshalb zum Vorteil der vorliegenden Erfindung, ein Terminal verfügbar zu machen, das Information darstellen kann, die von einem Anwendungs-Server durch Ausführung eines populären Anwendungsprogramms unter der Microsoft Windows® NT-Betriebs­ system-Umgebung erzeugt wurde.It is therefore one of the advantages of the present invention To make available a terminal that can represent information by an application server by running a popular Application program operating under the Microsoft Windows® NT system environment was created.

Weiterhin gehört dazu, ein Terminal-Konfigurationssystem mit einer graphischen Benutzerschnittstelle für die Konfiguration der Terminal-Betriebsparameter zu schaffen.It also includes a terminal configuration system a graphical user interface for configuration to create the terminal operating parameters.

Außerdem gehört dazu, ein Terminal für die Darstellung von An­ wendungsprogramm- Information vorzusehen, welches einen Clienten-Per­ sonalcomputer in einer Client-Server-Netzwerk-Umgebung emu­ liert.It also includes a terminal for displaying An to provide application program information which a client per sonalcomputer in a client-server network environment emu liert.

Ferner wird ein Terminal verfügbar, welches wünschenswerte Merkmale, die normalerweise mit einer Multiuser-Computer-Umge­ bung einhergehen, mit den wünschenswerten Merkmalen kombiniert, die normalerweise mit einer Client-Server-Umgebung einhergehen.A terminal will also be available, which is desirable Features typically associated with a multiuser computer exercise, combined with the desirable features, that are usually associated with a client-server environment.

Es gehört zur Erfindung, über ein Terminal-Betriebssystem zu verfügen, welches Kommunikationen mit einer Fenster-Betriebs­ system-Umgebung ermöglicht, während gleichzeitig ein vom PC/AT BIOS und PC DOS abweichender Standard benutzt wird.It is part of the invention to use a terminal operating system have what communications with a window operating system environment while allowing a PC / AT BIOS and PC DOS different standard is used.

Zur Erfindung gehören aber auch eine Vorrichtung und ein Verfah­ ren für eine schnelle und geeignete Aktualisierung des Terminal-Betriebssystems.However, the invention also includes a device and a method for a quick and appropriate update of the Terminal operating system.

Schließlich sollen mehrere residente Kenndaten für ein Terminal verfügbar sein, und zwar durch schnelles Umschalten zwischen den verschiedenen Kenndaten, ohne daß Erweiterungskarten ausge­ tauscht werden oder das Terminal vom Stromnetz genommen werden muß.After all, there should be several resident characteristics for one terminal be available by quickly switching between the various characteristics, without expansion cards be replaced or the terminal disconnected from the mains  got to.

Weitere Einzelheiten, Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus der folgenden Beschreibung der Zeich­ nungen.Further details, features and advantages of the present Invention result from the following description of the drawing mentions.

Es zeigen:Show it:

Fig. 1 eine schematische Darstellung einer allgemeinen Anord­ nung eines Anwendungs-Servers und eines Terminals gemäß vorliegender Erfindung, Fig. 1 is a schematic illustration of a general voltage Anord an application server and a terminal according to the present invention,

Fig. 2 ein Blockschaltbild einer Architektur des neuen Sys­ tems, Fig. 2 is a block diagram of an architecture of the new sys tem,

Fig. 3 ein Blockschaltbild des Aufbaus des Steuer ASIC in Fig. 2, Fig. 3 is a block diagram showing the construction of the control ASIC in FIG. 2,

Fig. 4 ein Flußdiagramm zum Ablauf der Schritte in einem Terminal, Fig. 4 is a flowchart for the process of steps in a terminal,

Fig. 5 ein vereinfachtes Blockschaltbild der Setup-Schnitt­ stelle zwischen einer GUI-Maschine und dem Rest des Systems, Fig. 5 is a simplified block diagram of the setup GUI interface between a machine and the rest of the system,

Fig. 6 ein Blockschaltbild des Ablaufs eines Verbindungsauf­ baus zwischen Terminal und Anwendungs-Server, Fig. 6 is a block diagram of the flow of a connection establishment between the terminal assembly and application servers,

Fig. 7A einen Bildschirmaufbau gemäß vorliegender Erfindung und FIG. 7A is a screen layout according to the present invention, and

Fig. 7B1-7B3 Datenstrukturen. Fig. 7B1-7B3 data structures.

In Fig. 1 ist ein vereinfachtes System gemäß dem Prinzip der vorliegenden Erfindung dargestellt. Ein einzelner Anwendungs-Server 10 steht bidirektional mit einem oder mehreren Terminals 12 über ein geeignetes Netzwerk oder eine andere Kommunikations­ leitung 14 in Verbindung. Diese Kommunikationsleitung kann aus einer RS232-Leitung, einem Wechselstromleitungsmodem oder einer Ethernetverbindung, beispielsweise einem verdrillten Leitungs­ paar oder einem Koaxkabel oder einer anderen geeigneten Verbin­ dung, bestehen, beispielsweise einer Glasfaseroptik. In einer im Probebetrieb zufriedenstellenden, hier beispielhaft erwähnten Anordnung wird der Anwendungs-Server mit dem WINDOWS® NT-Be­ triebssystem mit geeigneten Erweiterungen, z. B. dem von CITRIX angebotenen Winframe® OS, betrieben. Das CITRIX Fern-WINDOWS-Pro­ tokoll oder Erweiterungen schließen sowohl das ICA 3.0-Proto­ koll als auch Verbesserungen ein, welche für eine echte Multiu­ ser-Fähigkeit innerhalb der WINDOWS® NT-Umgebung sorgen. Bei einer solchen Konfiguration kann es sich beim Anwendungs-Server 10 um einen auf einem INTEL Pentium® oder einem ′486-Prozessor oder andere ähnliche Prozessoren, wie etwa ein DEC Alpha oder MIPS Prozessor, oder einer Zusammenschaltung mehrerer Prozesso­ ren in Verbindung mit einer geeigneten RAM-Kapazität, basieren­ den Personalcomputer handeln. In einem Ausführungsbeispiel hat der Server 10 ein sechzehn Megabyte großes RAM für Winframe® OS, zuzüglich 1-8 Megabyte RAM pro gleichzeitig laufendem Benut­ zer, und zwar in Abhängigkeit davon, welche Anwendung für den einzelnen Benutzer abläuft.In Fig. 1 is a simplified system is shown according to the principle of the present invention. A single application server 10 is bidirectionally connected to one or more terminals 12 via a suitable network or other communication line 14 . This communication line can consist of an RS232 line, an AC line modem or an Ethernet connection, for example a twisted pair or a coaxial cable or another suitable connection, for example a fiber optic. In a satisfactory arrangement, which is mentioned here as an example in test operation, the application server with the WINDOWS® NT operating system is equipped with suitable extensions, e.g. B. operated by CITRIX offered Winframe® OS. The CITRIX remote WINDOWS protocol or extensions include both the ICA 3.0 protocol and improvements that ensure real multi-user capability within the WINDOWS® NT environment. In such a configuration, the application server 10 may be one on an INTEL Pentium® or a '486 processor or other similar processors, such as a DEC Alpha or MIPS processor, or an interconnection of multiple processors in conjunction with a suitable one RAM capacity, act based on the personal computer. In one embodiment, server 10 has sixteen megabytes of RAM for Winframe® OS, plus 1-8 megabytes of RAM per concurrent user, depending on which application is running for the individual user.

In anderen geeigneten Ausführungsbeispielen kann der Anwendungs-Server 10 auch mit anderen Servern kommunizieren, so mit einem NetWare Fileserver 16, einem UNIX®-Host 18, anderen Personalcom­ putern 20 oder auch einem Internet Gateway 22. Über andere Ver­ bindungen, wie einem Router oder anderen Kommunikations-Servern 24 kann der Anwendungs-Server 10 auch mit dahinter arbeitenden Rechnern 26 kommunizieren oder über andere Vorrichtungen auch mit anderen entfernten anwählbaren Benutzern 28.In other suitable exemplary embodiments, the application server 10 can also communicate with other servers, for example with a NetWare file server 16 , a UNIX® host 18 , other personal computers 20 or even an Internet gateway 22 . Via other connections, such as a router or other communication servers 24 , the application server 10 can also communicate with computers 26 working behind it or via other devices also with other remote selectable users 28 .

Nähere Einzelheiten der Hardware-Architektur eines Terminals er­ geben sich aus Fig. 2. Eine CPU 100, typischerweise ein Prozes­ sor der X86-Familie oder wie in einem Ausführungsbeispiel ein 80386CXSA oder ein ′486SXLC-Mikroprozessor, empfängt den Takt und Reset-Signale von einer logischen Takt-und-Reset-Schaltung 102. Die CPU 100 kommuniziert mit den anderen logischen Schal­ tungen über einen Adreßbus 105, einen Datenbus 106 und einen CTRL-Bus 108. Es ist wichtig, daß diese Bus-Verbindungen typi­ scherweise weder mit dem IBM PC/AT-Standard noch mit einem ande­ ren PC-Standard kompatibel sind, da mit der Erfindung beabsich­ tigt ist, viele, wenn nicht gar alle Mängel zu vermeiden, die sonst bei Personalcomputern dann auftreten, wenn sie in einer Netzwerkumgebung arbeiten.Further details of the hardware architecture of a terminal he follow from Fig. 2. A CPU 100, typically a Prozes sor of the X86 family or as in one embodiment, a 80386CXSA or a '486SXLC microprocessor receives the clock and reset signals from a logic clock and reset circuit 102 . The CPU 100 communicates with the other logic circuits via an address bus 105 , a data bus 106 and a CTRL bus 108 . It is important that these bus connections are typically not compatible with the IBM PC / AT standard or with another PC standard, since the invention is intended to avoid many, if not all, of the shortcomings that otherwise occur with personal computers when they work in a network environment.

Insbesondere verläuft der Adreßbus 105 von der CPU 100 sowohl zu einem Steuerungs-ASIC 110 (anwenderspezifischer IC 110) als auch zu einem Flash-Speicherbereich 112 und einem VGA-Kontroller 114. Der Datenbus 106 kommuniziert gleicherweise mit dem Steue­ rungs-ASIC 110, dem VGA-Kontroller 114 sowie einer Speicheran­ ordnung 116. Der CTRL-Bus 108 legt in ähnlicher Weise Steuer­ signale an den ASIC 110 und den VGA-Kontroller 114 an. Ver­ schiedene logische Schaltungen 118 legen CONFIG, IDCS und DIAGCS an den ASIC 110 an.In particular, the address bus 105 runs from the CPU 100 both to a control ASIC 110 (user-specific IC 110 ) and to a flash memory area 112 and a VGA controller 114 . The data bus 106 likewise communicates with the control ASIC 110 , the VGA controller 114 and a memory arrangement 116 . The CTRL bus 108 similarly applies control signals to the ASIC 110 and the VGA controller 114 . Various logic circuits 118 apply CONFIG, IDCS and DIAGCS to the ASIC 110 .

Der ASIC 110 kommuniziert mit der Speicheranordnung 116 über einen DMA Bus 120 und ferner mit dem Flash-Speicher 112 über einen PD-Bus 122. Der PD-Bus 122 sorgt außerdem für eine Kom­ munikation zwischen dem ASIC 110 und dem Flash-Speicher 112, einem seriellen I/O und einem parallelen Kontroller 124, einem Tastatur- und Maus-Kontroller 126 sowie einem LAN- (= Local Area Network) Kontroller 128. Zusätzlich legt der ASIC ein FCS-Signal (Prüfsignal) an den Flash-Speicher 112 an, sorgt für RAS-, CAS- und WE-Signale für die Speicheranordnung 116 und für COM1, COM2 und PPCS-Signale für den SIO-Kontroller 124. Weiterhin legt der ASIC 110 ein KBCS-Signal an den Tastatur/Maus-Kontroller 126 an und legt ein NETCS-Signal an den LAN-Kontroller 128. Schließlich gibt der ASIC 110 ein Lautsprecher-Freigabesignal SPEN an einen Lautsprecher 130.The ASIC 110 communicates with the memory arrangement 116 via a DMA bus 120 and also with the flash memory 112 via a PD bus 122 . The PD bus 122 also provides communication between the ASIC 110 and the flash memory 112 , a serial I / O and a parallel controller 124 , a keyboard and mouse controller 126 and a LAN (= Local Area Network) ) Controller 128 . In addition, the ASIC applies an FCS signal (test signal) to the flash memory 112 , provides RAS, CAS and WE signals for the memory arrangement 116 and for COM1, COM2 and PPCS signals for the SIO controller 124 . Furthermore, the ASIC 110 applies a KBCS signal to the keyboard / mouse controller 126 and applies a NETCS signal to the LAN controller 128 . Finally, the ASIC 110 outputs a speaker enable signal SPEN to a speaker 130 .

Die CPU 100 kommuniziert auch mit dem SIO-Kontroller 124, dem Tastatur/Maus-Kontroller 126 und dem LAN-Kontroller 128 über einen Teil des Busses 105. Zusätzlich stellt der ASIC 110 dem SIO-Kontroller 124 Hardware-Interrupts INTA, INTB, INTP und dem KB/MS-Kontroller 126 Hardware-Interrupts KBINT und MSINT zur Verfügung und dem LAN-Kontroller 128 einen Hardware-Interrupt NINT.The CPU 100 also communicates with the SIO controller 124 , the keyboard / mouse controller 126, and the LAN controller 128 over part of the bus 105 . In addition, the ASIC 110 provides the SIO controller 124 with hardware interrupts INTA, INTB, INTP and the KB / MS controller 126 with hardware interrupts KBINT and MSINT and the LAN controller 128 with a hardware interrupt NINT.

Der Speicherbereich 116 besteht typischerweise aus einem DRAM-Speicher, obwohl andere Speicherarten in abgewandelten Ausfüh­ rungsformen gleichfalls eingesetzt werden können. Jedoch liegt die Größe des DRAM im Bereich 116, der für den Betrieb des Ter­ minals erforderlich ist, im Unterschied zum modernen Personal­ computer typischerweise im Bereich von 512 Kilobyte bis vier Megabyte. In einer beispielhaften Ausführungsform werden nur 23 Adreßleitungen und eine Byte-Auswahlleitung benutzt, wodurch die Speicherkapazität auf 16 Megabyte begrenzt werden kann. In anderen Ausführungsformen können unterschiedliche Speichergrößen eingesetzt werden.The memory area 116 typically consists of a DRAM memory, although other types of memory in modified embodiments can also be used. However, the size of the DRAM in the range 116 , which is required for the operation of the terminal, in contrast to the modern personal computer, is typically in the range from 512 kilobytes to four megabytes. In an exemplary embodiment, only 23 address lines and one byte select line are used, which can limit the memory capacity to 16 megabytes. In other embodiments, different memory sizes can be used.

Der Steuerungs-ASIC 110 weist in einem Ausführungsbeispiel Funk­ tionsblöcke für die Bussteuerung, für die DRAM-Steuerung (hier typischerweise im Fast-Page-Modus mit gegenseitiger Versetzung), für einen Systemzeitgeber, für einen Lautsprecherzeitgeber und einen I/O-Kontroller. Der Steuerungs-ASIC kann außerdem als ein Gate-Array oder anderer hochintegrierter Schaltkreis implemen­ tiert sein, was näher im Detail in Verbindung mit Fig. 3 nach­ stehend beschrieben werden wird.In one embodiment, the control ASIC 110 has function blocks for bus control, for DRAM control (here typically in fast page mode with mutual offset), for a system timer, for a loudspeaker timer and an I / O controller. The control ASIC may also be implemented as a gate array or other highly integrated circuit, which will be described in more detail below in connection with FIG. 3.

In einem Anwendungsbeispiel hat es sich als ausreichend er­ wiesen, den Flash-Speicher 112 in der Größenordnung von 512 Kilobyte zu halten; jedoch andere Anwendungen könnten eine Größe bis hinauf zu fünf Megabyte oder mehr erfordern. In dem bevor­ zugten Ausführungsbeispiel ist zwar der Bereich 112 als Flash-Speicher dargestellt, in anderen Ausführungsbeispielen könnte, jedoch ohne die Funktionalität der vorliegenden Erfindung zu verlassen, dieser Bereich auch aus einem EPROM oder einem SRAM oder anderen vergleichbaren Speichereinheiten bestehen.In one application example, it has proven sufficient to keep the flash memory 112 in the order of 512 kilobytes; however, other applications could require sizes up to five megabytes or more. In the preferred embodiment, the area 112 is shown as flash memory, in other embodiments, but without leaving the functionality of the present invention, this area could also consist of an EPROM or an SRAM or other comparable memory units.

Der SIO-Kontroller 124 kommuniziert mit COM1-, COM2- und Drucker- (oder Parallel-) Ports 132, 134 bzw. 136. Der SIO/Parallel-Kon­ troller 124 kann ein handelsüblicher 16 552-Baustein sein, so wie er von der Firma Startech angeboten wird. Der Tastatur/Maus-Kon­ troller 126 kommuniziert in ähnlicher Weise mit einer Tasta­ tur 138 und einer Maus 140, während der LAN-Kontroller, welcher nicht in allen Ausführungsformen benötigt wird, mit einer LAN-Schnittstelle 142 kommuniziert. In einem Prototyp bestand der Tastatur/Maus-Kontroller 126 aus einem Standard-Tastatur-Kon­ troller, während die Tastatur und die Maus dem PS/2-Standard entsprechen, obwohl zumindest in einigen Ausführungsformen eine Modifizierung des Tastatur-Kontrollers möglich ist, um mit einer Vierdraht-Tastatur-Schnittstelle kompatibel zu sein, wie sie in der US-Patentschrift 4 706 068 beschrieben ist. Schließlich kann der LAN-Kontroller aus einem beliebigen geeigneten Netzwerk- Schnittstellen-Kontroller bestehen und jedem möglichen Netzwerk-Stan­ dard entsprechen, einschließlich 10BaseT, 10Base2 oder anderes. Die Netzwerkschnittstelle kann einen 512 Kilobyte-Spei­ cher oder einen größeren für eine zusätzliche Codespeicherung aufweisen.SIO controller 124 communicates with COM1, COM2, and printer (or parallel) ports 132 , 134, and 136 , respectively. The SIO / parallel controller 124 can be a commercially available 16 552 module, such as that offered by the Startech company. The keyboard / mouse controller 126 similarly communicates with a keyboard 138 and a mouse 140 , while the LAN controller, which is not required in all embodiments, communicates with a LAN interface 142 . In a prototype, the keyboard / mouse controller 126 consisted of a standard keyboard controller, while the keyboard and mouse conform to the PS / 2 standard, although at least in some embodiments, the keyboard controller can be modified to accommodate a four-wire keyboard interface as described in U.S. Patent 4,706,068. Finally, the LAN controller can consist of any suitable network interface controller and conform to any possible network standard, including 10BaseT, 10Base2 or others. The network interface may have a 512 kilobyte memory or larger for additional code storage.

Der Video- und Graphik-Kontroller 114 ist funktional mit einem zweiten Speicherbereich 144 verbunden, um Video- und graphische Informationen zu speichern, die an einen Monitor 146 über ein MPS 148 geleitet werden. Der Video-Kontroller 114 kann bei­ spielsweise ein Cirrus 5429-Baustein mit internem RAMDAC sein und kann einen Videospeicher in der Größenordnung von einem Megabyte haben, um hochauflösende Graphikdarstellungen zu er­ möglichen, wie sie zumindest dem Video Graphics Array-Standard entsprechen. Es wird jedem Fachmann deutlich werden, daß die gesamten Speicheranforderungen entscheidend kleiner sind, als sie für einen Personalcomputer mit vergleichbarer Kapazität nötig sind, um WINDOWS®-Anwendungsprogramme ablaufen zu lassen. Ein Ruhesignal 150 kann von dem ASIC 110 bereitgestellt werden. Verschiedene Methoden zur Implementierung eines Ruhesignals können benutzt werden. Beispielsweise kann in einer Schwarz- Weiß-Version der vorliegenden Erfindung ein Signal an die Strom­ einspeisung für den Monitor bereitgestellt werden, welches das Videosignal abschaltet und den Stromverbrauch, der für den Be­ trieb des Monitors notwendig ist, absenkt. In einer Farbversion kann das Synchronisationssignal in Übereinstimmung mit dem VESA-Standard manipuliert werden, um den Monitor leistungsmäßig her­ unterzuschalten. Es wird für den Fachmann deutlich, daß viele Funktionen, einschließlich der CPU, in einem oder mehreren inte­ grierten VLSI-Bauteilen, wie einem ASIC, Gate-Arrays oder ande­ ren Bauteilen, zusammengefaßt werden können.The video and graphics controller 114 is operatively connected to a second memory area 144 to store video and graphic information that is passed to a monitor 146 via an MPS 148 . The video controller 114 can be, for example, a Cirrus 5429 chip with internal RAMDAC and can have a video memory of the order of one megabyte in order to enable high-resolution graphics representations, which at least correspond to the video graphics array standard. It will be apparent to any person skilled in the art that the total memory requirements are significantly smaller than those required for a personal computer of comparable capacity to run WINDOWS® application programs. A silence signal 150 can be provided by the ASIC 110 . Various methods of implementing a quiescent signal can be used. For example, in a black and white version of the present invention, a signal to the power supply for the monitor can be provided, which switches off the video signal and reduces the power consumption which is necessary for the operation of the monitor. In a color version, the synchronization signal can be manipulated in accordance with the VESA standard in order to power down the monitor. It will be apparent to those skilled in the art that many functions, including the CPU, can be combined in one or more integrated VLSI components, such as an ASIC, gate arrays or other components.

Es ist ein besonderes Merkmal der Hardware gemäß der vorliegen­ den Erfindung, daß das Terminal-Betriebssystem, welches in dem Flash-Speicher 112 abgelegt ist, durch eine Vielzahl von Methoden aktualisiert werden kann, einschließlich der Kom­ munikation über eine geeignete Schnittstelle, wie die Parallel-Schnitt­ stelle 136 oder den seriellen Schnittstellen 132 oder 134 oder einen Netzwerkadapter, wie die LAN-Schnittstelle 142. In einer bevorzugten Ausführungsform kann der Flash-Speicher durch eine Kommunikation mit dem Host-System aktualisiert werden, wenn sich das Terminal in einem vorherbestimmten Zustand befindet, wie z. B. durch Einstecken eines Rückführungsschleifensteckers, einer geeigneten Schlüsselsequenz oder anderen geeigneten Mit­ teln. In einer derartigen Anordnung erfolgt das Herabladen in das Speichersystem des Terminals, während die Kommunikation mit dem Host-Rechner weiterhin erlaubt ist. Der Host-Rechner stellt dann über die Kommunikationsverbindung aktualisierte Betriebs­ merkmale entweder dem DRAM 116 des Terminals oder direkt dem Flash-Speicher 112 bereit. Danach wird, erforderlichenfalls, die aktualisierte Betriebssystem-Information im Flash-Speicher 112 gespeichert und das Terminal kehrt in den normalen Betriebszu­ stand zurück, in dem das Herunterladen abgeschaltet ist.It is a particular feature of the hardware according to the present invention that the terminal operating system, which is stored in the flash memory 112 , can be updated by a variety of methods, including communication via a suitable interface, such as the parallel Interface 136 or serial interfaces 132 or 134 or a network adapter, such as LAN interface 142 . In a preferred embodiment, the flash memory can be updated by communication with the host system when the terminal is in a predetermined state, such as e.g. B. by inserting a feedback loop connector, a suitable key sequence or other suitable means. In such an arrangement, the downloading into the terminal's storage system takes place while communication with the host computer is still permitted. The host computer then provides updated operating features via the communication link either to the DRAM 116 of the terminal or directly to the flash memory 112 . Thereafter, if necessary, the updated operating system information is stored in the flash memory 112 and the terminal returns to the normal operating state in which the download is turned off.

Unter normalen Umständen startet ein System gemäß Fig. 2 den Betrieb nach einem Reset durch Beginn der Ausführung des Boot-Codes, der im Flash-Speicherbereich 112 abgelegt ist. Der Flash-Speicherbereich 112 kann in zwei Speicherbereiche angeordnet sein, wobei auf beide an einer vorbestimmten Adresse des CPU-Speicherplatzes zugegriffen wird, beispielsweise C00000-DFFFFF und E00000-FFFFFF, während der Rest des Speicherplatzes dafür vorgesehen ist, viele der sich aus Tabelle 1 ergebenden normalen PC-Funktionen bereitzustellen. Es wird deutlich, daß in einer bevorzugten Ausführungsform die Video/Graphik-Speicheradressen um acht Megabyte über die normalen PC-Speicheradressen hinaus verschoben sind. In dieser Ausführungsform kann der VGA-Chip in einem "kompatiblen" Modus benutzt werden (d. h. der lineare Adressenmodus ist ausgeschaltet), so daß der VGA-Chip nur auf einen Datenübertragungsblock-Puffer bei A0000h-AFFFFh (im Graphikmodus) oder bei B0000h-B7FFFh (für den MGA-Modus) oder bei B8000h-B8FFFh (für den CGA-Modus) anspricht, und daß diese Adressen auf 8A0000h-8AFFFFh verschoben werden usw. Die Adres­ sen werden verschoben, um dem Speicherbereich 0 DRAM zu ermög­ lichen, zusammenhängend zu bleiben, während zur gleichen Zeit (und wie nachstehend näher erläutert wird) eine Emulation der normalen PC-Funktionen ermöglicht wird, die ausreicht, um eine WINDOWS®-Anwendungsprogramm-Information darzustellen.Under normal circumstances, a system according to FIG. 2 starts the operation after a reset by starting the execution of the boot code which is stored in the flash memory area 112 . The flash memory area 112 may be arranged in two memory areas, both of which are accessed at a predetermined address of the CPU memory space, for example C00000-DFFFFF and E00000-FFFFFF, while the rest of the memory space is intended for many of those shown in Table 1 resulting normal PC functions. It will be appreciated that in a preferred embodiment the video / graphics memory addresses are shifted eight megabytes beyond the normal PC memory addresses. In this embodiment, the VGA chip can be used in a "compatible" mode (ie, the linear address mode is off), so that the VGA chip only applies to a frame buffer at A0000h-AFFFFh (in graphics mode) or at B0000h-B7FFFh (for MGA mode) or at B8000h-B8FFFh (for CGA mode), and that these addresses are shifted to 8A0000h-8AFFFFh, etc. The addresses are shifted to allow memory area 0 DRAM to be contiguous remain, while at the same time (and as will be explained in more detail below) an emulation of the normal PC functions is enabled which is sufficient to display a WINDOWS® application program information.

Tabelle 1 Table 1

Speicherbereich 0 kann in einen 16 Kilobyte Boot Block im oberen Adressenbereich, beispielsweise bei FFC000H-FFFFFFH, angeord­ net sein, gefolgt von zwei 8 Kilobyte Parameter-Blocks und wei­ ter gefolgt von einer Vielzahl von Hauptblöcken bis hinunter zur Adresse F80000H (für eine 512 Kilobyte-Auslegung) oder hinunter bis zu F00000H (wenn eine 1 Megabyte-Auslegung vorliegt) oder bis E00000H (wenn eine 2 Megabyte-Auslegung vorliegt). Die Hauptblöcke des Speichers sind typischerweise als ein File Sys­ tem (Dateisystem) eingerichtet. Der Speicherbereich 1 des Flash-Speichers ist typischerweise einer File-System-Einrichtung zu­ geordnet und kann von den Adressen DFFFFFH bis hinab zu C00000H reichen.Memory area 0 can be arranged in a 16 kilobyte boot block in the upper address area, for example with FFC000H-FFFFFFH, followed by two 8 kilobyte parameter blocks and further followed by a large number of main blocks down to the address F80000H (for a 512 kilobyte -Design) or down to F00000H (if there is a 1 megabyte design) or to E00000H (if there is a 2 megabyte design). The main blocks of memory are typically set up as a file system. The memory area 1 of the flash memory is typically assigned to a file system device and can range from the addresses DFFFFFH down to C00000H.

Nachstehend wird anhand von Fig. 3 der ASIC 110 näher er­ läutert. Ein Taktpuffer 160 empfängt ein CLK50-Signal und legt Taktsignale an die logische RESET SYNC Schaltung 162 an, an die logische DRAM-Steuerschaltung 164 und an die logische Zeitsteu­ erschaltung 166. Ein (INT)-Puffer 168 empfängt INTP, INTA, INTB, MSINT, KBINT und NINT-Signale. Der INT-Puffer 168 legt eine Vielzahl von Signalen an die logische Interrupt-Steuerschaltung 170, welche ein Steuersignal vom CPU-Steuerungseingangspuffer 172 und ein Zeitgebersteuersignal von der logischen Zeitgeber­ steuerschaltung 166 empfängt und erzeugt ein INTR-Ausgangssi­ gnal, welches an die CPU angelegt wird. Der CPU-Steuerungsein­ gangspuffer 172 legt ferner ein Steuersignal an die logische Cycle-Steuerungsschaltung 174, die ihrerseits ein Steuersignal an die DRAM-Steuerung 164 anlegt. Die DRAM-Steuerschaltung 164 empfängt ein Aktualisiersignal von der Zeitgebersteuerungsschal­ tung 166; die Zeitgebersteuerungsschaltung 166 erzeugt außerdem das Freigabesignal SPEN für den Lautsprecher.The ASIC 110 is explained in more detail below with reference to FIG. 3. A clock buffer 160 receives a CLK50 signal and applies clock signals to the logic RESET SYNC circuit 162 , to the logic DRAM control circuit 164, and to the logic timing circuit 166 . An (INT) buffer 168 receives INTP, INTA, INTB, MSINT, KBINT and NINT signals. The INT buffer 168 applies a variety of signals to the logic interrupt control circuit 170 which receives a control signal from the CPU control input buffer 172 and a timer control signal from the logic timer control circuit 166 and generates an INTR output signal which is applied to the CPU . CPU control input buffer 172 also applies a control signal to logic cycle control circuit 174 , which in turn applies a control signal to DRAM controller 164 . The DRAM control circuit 164 receives an update signal from the timer control circuit 166 ; the timer control circuit 166 also generates the enable signal SPEN for the speaker.

In einer bevorzugten Ausführungsform ist die logische Interrupt-Steu­ erschaltung 170 nicht mit dem Baustein 8259 kompatibel; gleichermaßen ist der Systemzeitgeber oder die Zeitgebersteue­ rungsschaltung 166 nicht mit dem Baustein 8254 kompatibel und arbeitet mit einer höheren Frequenz als ein 8254-kompatibler Baustein. Als Ergebnis werden einige der von der logischen Zeit­ gebersteuerungsschaltung gesendeten Interrupts höherer Frequenz im Kernel maskiert, aber andere werden durchgelassen, um im Durchschnitt die normale Zeit zwischen Interrupts anzunähern. Die höhere Frequenz ermöglicht somit die Emulation von Standard-PC-Funktionalitäten, sogar, obwohl die Zeit zwischen auf niedri­ ger (Standard) -Frequenz emulierten Interrupts nicht gleichförmig sein kann.In a preferred embodiment, logic interrupt control circuit 170 is not compatible with device 8259; likewise, the system timer or timer control circuit 166 is not compatible with device 8254 and operates at a higher frequency than an 8254 compatible device. As a result, some of the higher frequency interrupts sent by the logic timer control circuit are masked in the kernel, but others are allowed through to approximate the normal time between interrupts on average. The higher frequency thus enables standard PC functionalities to be emulated, even though the time between interrupts emulated at lower (standard) frequency cannot be uniform.

Der ASIC 110 umfaßt auch einen CPU-Adreß-Eingangspuffer 176, welcher BE0, BE1 und A1-A23-Signale empfängt und legt ein Aus­ gangssignal an einen DRAM-Speicher-Adressen-Multiplexer "Mux 178" und zugleich an eine logische Mem/IO-Chip-Auswahl-Steuer­ schaltung 180. Die logische Mem/IO-Chip-Auswahl-Steuer­ schaltung 180 produziert eine Vielzahl von Ausgangssignalen einschließlich FLASHCSO (FCSO)- und FLASHCS1 (FCS1)-Signale, und andere, die sich aus der Zeichnung ergeben. Ferner empfängt der ASIC 110 Signale DO-15 vom Datenbus 106 und legt sie an den CPU-Dateneingangspuffer 182 an. Der Puffer 182 legt Daten an einen Bdata-Ausgangspuffer und Zwischenspeicher 184 an, welcher ein Ausgangssignal BDO-15 erzeugt. Der Puffer 182 legt außerdem Daten an eine Stromversorgungssteuerschaltung 186 an, welche SLEEP und PWRDWN-Signale erzeugt.The ASIC 110 also includes a CPU address input buffer 176 which receives BE0, BE1 and A1-A23 signals and applies an output signal to a DRAM memory address multiplexer "Mux 178 " and at the same time to a logical Mem / IO -Chip selection control circuit 180 . The logic Mem / IO chip selection control circuit 180 produces a variety of output signals including FLASHCSO (FCSO) and FLASHCS1 (FCS1) signals, and others that will be apparent from the drawing. The ASIC 110 also receives signals DO-15 from the data bus 106 and applies them to the CPU data input buffer 182 . Buffer 182 applies data to a Bdata output buffer and buffer 184 , which generates an output signal BDO-15. Buffer 182 also applies data to a power supply control circuit 186 which generates SLEEP and PWRDWN signals.

Die Signale BDO-15 können ebenso Daten an den Bdata-Eingangspuf­ fer 188 anlegen, der seinerseits diese Daten an den CPU-Daten­ ausgangspuffer 190 leitet. Die logische Interrupt-Steuerschal­ tung 170 legt auch Signale an den Puffer 190 an. Ein Kon­ figurationsregister 192 stellt ein Konfigurationssignal bereit (beispielsweise ein solches zur Hardware-Konfiguration z. B. wieviel Flash-Speicher und/oder DRAM-Speicher benötigt wird, oder eine Konfiguration von der Monitor-Stromversorgung oder von einer Steckkarte, z. B. einer Netzwerkkarte), welches an den CPU-Datenausgangspuffer angelegt wird, der Daten an den Bus 106 zur CPU anlegen kann.The signals BDO-15 can also apply data to the Bdata input buffer 188 , which in turn routes this data to the CPU data output buffer 190 . The logic interrupt control circuit 170 also applies signals to the buffer 190 . A configuration register 192 provides a configuration signal (for example one for hardware configuration, e.g. how much flash memory and / or DRAM memory is required, or a configuration from the monitor power supply or from a plug-in card, e.g. a network card), which is applied to the CPU data output buffer, which can create data on bus 106 to the CPU.

Unter Bezugnahme auf Fig. 4 können die Schlüsselelemente des Terminal-Betriebssystems besser verstanden werden. Aus dem Vor­ hergehenden geht hervor, daß die Hardware gemäß der vorliegenden Erfindung mit einer üblichen Standard AT-Bus-Auslegung nicht kompatibel ist. Statt dessen stützt sich die vorliegende Erfin­ dung auf Firmware ab, um die erforderlichen BIOS-Dienste für die oberen Software-Schichten vorzubereiten. In einer bevorzugten Ausführungsform ist die Firmware ausgelegt, um im virtuellen 8086-Modus abzulaufen, und zwar mit AT-kompatiblen Hardware-Kom­ ponenten, wie den Interrupt-Kontrollern und Zeitgebern, die in Software so dicht als möglich emuliert sind. Während in einer Ausführungsform ein Standard-Tastatur-Kontroller benutzt wird, würde in dem Fall, in dem ein Nichtstandard-Kontroller benutzt wird, die Schnittstelle zu einer solchen Einrichtung zusätzlich emuliert werden. Signale, z. B. Ein- und Ausgangssignale zu und an die Ports derartiger Hardware-Komponenten, werden abgefangen, um die Emulation zu ermöglichen. Des weiteren könnten die Spei­ chermanagementmerkmale des Prozessors unter der Steuerung eines emulierten A20-Gates freigegeben werden, um den Bildumlauf zu simulieren, welcher normalerweise in einer Hardware bei einem Megabyte auftritt.Referring to Fig. 4, the key elements may be the terminal operating system to be better understood. From the foregoing it appears that the hardware according to the present invention is not compatible with a standard AT bus standard design. Instead, the present invention relies on firmware to prepare the necessary BIOS services for the upper software layers. In a preferred embodiment, the firmware is designed to run in virtual 8086 mode, with AT-compatible hardware components, such as the interrupt controllers and timers, which are emulated as densely as possible in software. While in one embodiment a standard keyboard controller is used, in the case where a non-standard controller is used the interface to such a device would be additionally emulated. Signals, e.g. B. input and output signals to and at the ports of such hardware components are intercepted to enable the emulation. Furthermore, the memory management features of the processor could be released under the control of an emulated A20 gate to simulate the image rotation that normally occurs in hardware at one megabyte.

Gemäß Fig. 4 beginnt das Terminal-Betriebssystem mit der Abar­ beitung eines Boot Blocks 300, gefolgt vom Laden eines Kernels 305. Der Kernel 305 besorgt viele der Abfang- und Wiedereintei­ lungsfunktionen der vorliegenden Erfindung, wie sie nachstehend näher erläutert werden. Nach Beendigung des Kernels 305 wird der IO.SYS-Code 310 geladen. Als nächstes wird der COMMAND.COM-Code 315 geladen, gefolgt von in einem AUTOEXEC.BAT-File abgelegten Ausführungsbefehlen. Das AUTOEXEC.BAT-File kann beispielsweise Tastatur- und Maustreiber umfassen, obwohl diese beiden Treiber nicht in jedem Zustand benötigt werden, sowie einen VGA XMS-Trei­ ber. Es kann außerdem andere optionale Codes einschließen, wie das Auslösen einer Selbsttestsequenz, welche abläuft, wenn geeignete Bedingungen bestehen. In einem bevorzugten Ausfüh­ rungsbeispiel ist ein Rückführungsschleifenstecker in einem Kommunikationsport eingesteckt, der bewirkt, daß die Selbsttest­ sequenz abläuft. According to FIG. 4, the terminal operating system starts processing Abar a boot block 300, followed by loading a kernel 305th Kernel 305 provides many of the interception and redeployment functions of the present invention, as discussed in more detail below. After the kernel 305 has ended , the IO.SYS code 310 is loaded. The COMMAND.COM code 315 is loaded next, followed by execution commands stored in an AUTOEXEC.BAT file. The AUTOEXEC.BAT file can include, for example, keyboard and mouse drivers, although these two drivers are not required in every state, and a VGA XMS driver. It can also include other optional codes, such as triggering a self-test sequence that is in progress, if suitable conditions exist. In a preferred embodiment, a feedback loop connector is inserted into a communication port, which causes the self-test sequence to run.

Der EXEC.COM-Code 325 wird dann geladen. An diesem Punkt und in Abhängigkeit von der Implementation wird das System entweder in den Setup-Modus übergehen oder Befehle des Anwenders können entweder in einen Eintritt in den Setup-Modus oder das Laden eines Netzwerk-Verbindungscodes bewirken. In einem Ausführungs­ beispiel tritt das System in einen Setup-Modus ein, um aktuelle Konfigurationsdaten zu erhalten, und setzt mit dem Laden des Netzwerk-Verbindungscodes fort.EXEC.COM code 325 is then loaded. At this point, and depending on the implementation, the system will either enter setup mode, or user commands can either enter setup mode or load a network connection code. In one embodiment, the system enters a setup mode to obtain current configuration data and continues to load the network connection code.

Wenn die Implementation es dem Benutzer erlaubt auszuwählen, und wenn der Setup-Modus durch den Anwender gewählt worden ist, zweigt die EXEC.COM 325 ab, um den SETUP oder GUI 330 ablaufen zu lassen. Wenn der Setup-Modus nicht aktiviert worden ist, wirkt die EXEC.COM 325 mit, daß Netzwerk-Treiber bei 335 auf- und abgeladen werden, und beginnt mit der Abarbeitung des Netz­ werk-Verbindungscodes 340 (wiederum ICA, verdrillter Draht, com oder anderes Netzwerk). In einer bevorzugten Ausführungsform enthält der Netzwerk-Verbindungscode eine wesentlich modifizierte Version des WinFrame für DOS-Clienten, deren Stan­ dard-Version bei Citrix Systems, Inc. verfügbar ist.If the implementation allows the user to select and if the setup mode has been selected by the user, the EXEC.COM 325 branches to run the SETUP or GUI 330 . If the setup mode has not been activated, the EXEC.COM 325 helps to load and unload network drivers at 335 and starts processing the network connection code 340 (again ICA, twisted wire, com or other network). In a preferred embodiment, the network connection code contains a substantially modified version of the WinFrame for DOS clients, the standard version of which is available from Citrix Systems, Inc.

Unter Bezugnahme auf Fig. 5 läßt sich die Zusammenarbeit des Terminal-Betriebssystems und der Hardware-Architektur besser verstehen. Die in Fig. 5 dargestellte unterste Schicht ist das Eingangs/Ausgangssystem und die Hardware-Schicht 400. Die nächsthöhere Schicht ist die Schicht der Treiber 402, während die oberste Schicht die Anwendungsschicht 404 ist.Referring to Fig. 5, the cooperation of the terminal operating system and the hardware architecture can be better understood. The bottom layer shown in FIG. 5 is the input / output system and the hardware layer 400 . The next higher layer is the driver 402 layer, while the top layer is the application layer 404 .

Beim Einschalten werden die Power-Up- und Init-Tests 406 in der Hardware-Schicht als Teil des Boot Blocks 300 ausgeführt. Die Power-Up- und Init-Tests 406 werden teilweise vom Flash-Spei­ chersystem 112 heraus und zum Teil vom RAM 116 aus ausgeführt. Wenn die Einschalt-Selbsttests beendet sind, setzt das Terminal mit der Boot-Sequenz fort, die allgemein oben in Verbindung mit Fig. 4 beschrieben wurde, einschließlich des Rests im Boot Block 300, einer AUTOEXEC-Sequenz 408 und der COMMAND.COM-Se­ quenz, wie sie zuvor mit 315 bezeichnet wurde. Beides, die AUTOEXEC- und die COMMAND.COM-Datei, sind im Flash-Speicher abgelegt.When turned on, the power-up and init tests 406 are executed in the hardware layer as part of the boot block 300 . The power-up and init tests 406 are carried out partly by the flash memory system 112 and partly by the RAM 116 . When the power-on self-tests are complete, the terminal continues with the boot sequence generally described above in connection with Fig. 4, including the remainder in boot block 300 , an AUTOEXEC sequence 408, and the COMMAND.COM se quenz as previously referred to as 315 . Both the AUTOEXEC and COMMAND.COM files are stored in the flash memory.

Nachdem die COMMAND.COM-Sequenz des Terminals ausgeführt wird, bewirkt dies, daß die AUTOEXEC-Datei geladen wird. Die AUTOEXEC ihrerseits bewirkt, daß die EXEC.COM 325 geladen wird. Wie oben bereits bemerkt, kann die EXEC.COM-Sequenz 325 entweder in ein Setup-Modul 330 oder in ein Netzwerk-Verbindungsmodul 340 ver­ zweigen. Bei der anfänglichen Installation oder zu jeder Zeit danach, wenn Betriebsparameter des Terminals eine Variation oder Änderung verlangen, läßt man das Setup-Modul 330 ablaufen. Das Setup-Modul 330 empfängt Informationen von einem oder mehreren Setup-Datenfiles 418 und setzt die GUI-Maschine 420 in Gang. Die GUI-Maschine 420 ihrerseits kommuniziert mit einem Tastaturtrei­ ber 422, einem Maustreiber 424 und den Dateien- und Speichertreiber 426 des Terminal-Betriebssystems. Zusätzlich kommuniziert die GUI-Maschine 420 gleichfalls mit dem Videoein­ gangs- und -ausgangssystem 428, welches seinerseits Daten an den Video-Kontroller 430 anlegt, der beispielsweise auf einem Cirrus 5429 Graphik-Prozessor basieren kann, um eine Videoanzeige wäh­ rend der Setup-Sequenz zu erzeugen. Die Setup-Sequenz wird de­ taillierter unter Bezugnahme auf Fig. 5 beschrieben.After the COMMAND.COM sequence of the terminal is executed, this causes the AUTOEXEC file to be loaded. AUTOEXEC in turn causes EXEC.COM 325 to be loaded. As noted above, the EXEC.COM sequence 325 can branch into either a setup module 330 or a network connection module 340 . Setup module 330 is run at initial installation or at any time thereafter when terminal operating parameters require variation or change. The setup module 330 receives information from one or more setup data files 418 and starts the GUI engine 420 . The GUI machine 420 in turn communicates with a keyboard driver 422 , a mouse driver 424 and the file and memory driver 426 of the terminal operating system. In addition, the GUI machine 420 also communicates with the video input and output system 428 , which in turn applies data to the video controller 430 , which can be based, for example, on a Cirrus 5429 graphics processor, for a video display during the setup sequence to create. The setup sequence is described in more detail with reference to FIG. 5.

Der Tastaturtreiber 422 seinerseits kommuniziert mit der Tasta­ tur-Kontroller-Hardware 432, welche beispielsweise ein konven­ tionelles PS/2-Tastatur-Ein/Ausgabesystem, eine universelle se­ rielle Busschnittstelle und zumindest in einigen Ausführungen auch eine Vierdraht-Tastatur-Schnittstelle sein kann, wie sie in der zuvor schon erwähnten US-Patentschrift 4 706 068 beschrieben ist. In gleicher Weise kommuniziert der Maustreiber 424 typi­ scherweise auch zu geeigneten Zeiten mit einem Maus-Ein- und Ausgabesystem 434. Während all dieser Operationen werden das Flash-File und die Speicher-Dienst-Teile 426 des Terminal-Be­ triebssystems typischerweise aus dem Flash- und RAM-Speicher herausgeführt.The keyboard driver 422 in turn communicates with the keyboard controller hardware 432 , which can be, for example, a conventional PS / 2 keyboard input / output system, a universal serial bus interface and, at least in some versions, also a four-wire keyboard interface. as described in the aforementioned U.S. Patent 4,706,068. In the same way, mouse driver 424 typically also communicates with mouse input and output system 434 at appropriate times. During all of these operations, the flash file and memory service portions 426 of the terminal operating system are typically extracted from the flash and RAM memory.

Wie deutlicher in Verbindung mit Fig. 5 ausgeführt, ermöglicht es der Setup-Ablauf dem Benutzer, die Konfigurationsinformation auf dem Terminal zu spezifizieren, einschließlich solcher Para­ meter, wie die Netzwerk-Schnittstelle und verwandte Konfigura­ tionsdetails, die Sprache, Farbe oder andere Parameter. Wenn diese Parameter einmal spezifiziert sind, werden die Daten in den Verbindungsdatendateien 440 abgelegt.As stated clearly in connection with FIG. 5, allows the setup procedure to specify the configuration information on the terminal users, including those para meters such as the network interface and related Configurati details, language, color, or other parameters. Once these parameters are specified, the data is stored in the connection data files 440 .

An diesem Punkt ist der Benutzer so weit, das Terminal-Setup-Modul 414 zu verlassen und zur EXEC.COM zurückzukehren. Wenn ihm eine Fortsetzung erlaubt wird, kann der EXEC.COM-Vorgang 412 zu einer Abzweigung in das Netzwerk-Verbindungsmodul veranlaßt werden, 416. Das Netzwerk-Verbindungsmodul 340 beginnt durch Zurückholen der in der Verbindungsdatendatei 440 und der Be­ fehlsleitung des Verbindungsmoduls abgelegten Daten, wodurch dem Applikationsserver mitgeteilt wird, wie mit Rest von Treiber und Hardware-Schichten des Terminals in Verbindung zu treten ist. Insbesondere kommuniziert das Netzwerk-Verbindungsmodul mit dem Tasta­ turtreiber 422, dem Maustreiber 424, dem Video Ein/Aus­ gangssystem 428 und dem File und Speicher-Dienst-Teil 426 des Terminal-Betriebssystems. Zusätzlich verbindet das Netzwerk-Ver­ bindungsmodul auch eine in hardware ausgeführte serielle Schnittstelle 442 und in einigen Ausführungen gleichfalls eine Hardware-Netzwerk-Schnittstelle 444. Die Netzwerktreiber 444 werden in einer Ausführungsform aus dem RAM 116 heraus ausge­ führt, kann aber ebenso auch aus dem Flash-Speicher 112 heraus ausgeführt werden. Die serielle Schnittstelle 442 kann eine konventionelle RS232-Schnittstelle sein, aber auch eine andere Form einer seriellen Verbindung, wie beispielsweise der Univer­ sal Serial Bus oder USB.At this point, the user is ready to exit Terminal Setup Module 414 and return to EXEC.COM. If allowed to continue, EXEC.COM process 412 may be branched 416 into the network connection module. The network connection module 340 begins by retrieving the data stored in the connection data file 440 and the command line of the connection module, which tells the application server how to connect to the rest of the driver and hardware layers of the terminal. In particular, the network connection module communicates with the keyboard driver 422 , the mouse driver 424 , the video input / output system 428 and the file and storage service part 426 of the terminal operating system. In addition, the network connection module also connects a hardware-configured serial interface 442 and, in some versions, also a hardware-network interface 444 . Network drivers 444 , in one embodiment, are out of RAM 116 , but may also be out of flash memory 112 . The serial interface 442 can be a conventional RS232 interface, but also another form of a serial connection, such as the universal serial bus or USB.

Anhand der Fig. 6 wird die Arbeitsweise der GUI-Maschine 420, wie sie in Fig. 5 dargestellt ist und wie sie während des Setup-Moduls des Terminals 12 abläuft, näher beschrieben. Die GUI-Maschine arbeitet nur während des Setup-Modus und stellt eine rudimentäre, graphische Benutzer-Schnittstelle während der Konfigurationsoperation bereit. The operation of the GUI machine 420 , as shown in FIG. 5 and how it runs during the setup module of the terminal 12 , is described in more detail with reference to FIG. 6. The GUI machine only works during setup mode and provides a rudimentary, graphical user interface during the configuration operation.

Wie schon in Verbindung mit der Beschreibung von Fig. 5 erwähnt wurde, beginnt die Operation gemäß Fig. 6, wenn die Setup-Se­ quenz während der Boot-Phase des Terminals aufgerufen wird. Diese Setup-Sequenz kann durch eine Sequenz von Tastenanschlägen oder in anderer geeigneter Weise aufgerufen werden. Die Setup-Sequenz startet mit einem Aufruf des Setup-Codes 502, der sei­ nerseits Informationen von der Setup-Data-Datei 418 bezieht. Die Setup-Data-Datei 418 identifiziert die verschiedenen Konfigura­ tionsoptionen, die im Terminal verfügbar sind. Der Setup-Code 502 kommuniziert bidirektional mit einer RAM-Struktur 504 und bewirkt außerdem, daß bestehende Verbindungsinformationen von der Verbindungsdatendatei 440 in die RAM-Struktur 504 geschrie­ ben werden. Die GUI-Maschine 420 kommuniziert außerdem bidirek­ tional mit der RAM-Struktur, um aktuelle Informationen in einer nachstehend näher als Bereiche, Gruppen und Auswahlen be­ schriebenen Anordnung einzustellen und anzuzeigen. Zusätzlich stellt eine Hardware-Schnittstelle 506 Videoinformation an den Video-Kontroller 430 bereit, während sie auf die Informationen, die vom Benutzer über die Maus 260 oder die Tastatur 250 empfan­ gen werden, reagiert.As already mentioned in connection with the description of FIG. 5, the operation according to FIG. 6 starts when the setup sequence is called during the boot phase of the terminal. This setup sequence can be called up by a sequence of keystrokes or in any other suitable manner. The setup sequence starts with a call to the setup code 502 , which in turn obtains information from the setup data file 418 . The setup data file 418 identifies the various configuration options available in the terminal. The setup code 502 communicates bidirectionally with a RAM structure 504 and also causes existing connection information to be written from the connection data file 440 into the RAM structure 504 . The GUI engine 420 also communicates bidirectionally with the RAM structure to set and display current information in an arrangement described below as areas, groups, and selections. In addition, a hardware interface 506 provides video information to the video controller 430 while responding to the information received by the user via the mouse 260 or the keyboard 250 .

Der Setup-Code erlaubt es dem Benutzer, eine Mehrzahl von Kon­ figurationsmenüs für die Bedienungscharakteristiken des Termi­ nals zu durchlaufen, wie z. B. die auf dem Terminal anzuzeigende Sprache, die Art der Netzwerkverbindung usw. Fig. 7A zeigt eine Darstellung eines Setup-Bildschirms, wie er im Konfigurations­ modus des Terminals benutzt wird. In einer bevorzugten Ausfüh­ rungsform werden die Setup-Bildschirme graphisch dargestellt. Wenn der Benutzer diese Konfigurationsbildschirme durchläuft, können die Konfigurationsdaten selektiv durch den Anwender durch Benutzung der Tastatur und der Maus aktualisiert werden. Die aktualisierten Daten werden in der RAM-Struktur 504 beibehalten, bevor sie in die Verbindungsdatendateien 436 geschrieben werden. Jedoch können in einer gegenwärtig bevorzugten Ausführungsform gewisse Daten dynamisch aktualisiert werden, während andere Daten bis zur Beendigung der Setup-Sequenz nicht aktualisiert werden. Nach Beendigung der Setup-Sequenz einschließlich des Einschreibens von jeglichen verbleibenden Konfigurationsdaten in die Verbindungsdatendateien 436 endet die Setup-Sequenz und kehrt zur EXEC.COM 325 zur Einleitung des Netzverbindungsmoduls 340 zurück, der in Fig. 5 gezeigt ist.The setup code allows the user to go through a plurality of configuration menus for the operating characteristics of the terminal, such as. B. the language to be displayed on the terminal, the type of network connection, etc. FIG. 7A shows a representation of a setup screen as it is used in the configuration mode of the terminal. In a preferred embodiment, the setup screens are shown graphically. When the user cycles through these configuration screens, the configuration data can be selectively updated by the user using the keyboard and mouse. The updated data is retained in RAM structure 504 before it is written to connection data files 436 . However, in a currently preferred embodiment, certain data can be updated dynamically while other data is not updated until the setup sequence is complete. Upon completion of the setup sequence, including the writing of any remaining configuration data to the connection data files 436 , the setup sequence ends and returns to EXEC.COM 325 to initiate the network connection module 340 shown in FIG. 5.

Wieder zurück zur Fig. 7A; dort wird das ganze Fenster, in welchem die Dateien erscheinen, hier als Bereich 600 bezeichnet. Innerhalb eines jeden Bereichs 600 sind eine oder mehrere Grup­ pen 610, und jede Gruppe 610 weist eine oder mehrere Auswahlen 620 auf. So umfaßt im Beispiel von Fig. 7A die "Kommunika­ tions"-Gruppe die Wahlmöglichkeiten Serial Port, TCP/IP, SPX und IPX, von denen jede mit einer Region 630 verbunden ist, mit der angezeigt wird, daß diese Auswahl getroffen oder ausgewählt wurde.Back again to FIG. 7A; there the entire window in which the files appear is referred to here as area 600 . Within each area 600 are one or more groups 610 , and each group 610 has one or more selections 620 . Thus, in the example of FIG. 7A, the "communications" group includes the choices of Serial Port, TCP / IP, SPX and IPX, each associated with a region 630 that indicates that this selection has been made or selected .

Mit Bezug auf die Fig. 7B1-7B3 werden die mit der Kon­ figurations-Software verbundenen Datenstrukturen dargestellt. Insbesondere wird eine Liste von Bereichszeigern in der AREA_LIST 700 gefunden. Die Strukturen, auf die von der AREA_LIST gezeigt wird, umfassen Grenzen, Größe, Titel und Grup­ pen, wie sie für alle Bereiche zugeteilt sind, wie sie im Setup-Prozeß definiert wurden. Wie zuvor angemerkt, erscheint jeder Bereich als ein Fenster auf dem Schirm. Außerdem werden alle Bereiche, die gegenwärtig angezeigt werden, in der DISP_AREA_LIST 702 angezeigt. In einer beispielhaften Ausfüh­ rungsform ist der erste aufgelistete Bereich als der Bodenbe­ reich angezeigt und der letzte angezeigte Bereich ist der ober­ ste angezeigte Bereich. In einer beispielhaften Ausführungsform wird die Überlappung von Fenstern gestattet, obgleich ein Über­ lappen nicht notwendigerweise in allen Ausführungsformen erfor­ derlich ist.With reference to Fig. 7B1-7B3 associated with the con figurations software data structures are illustrated. In particular, a list of area pointers is found in AREA_LIST 700 . The structures pointed to by AREA_LIST include limits, size, titles and groups as they are assigned to all areas as defined in the setup process. As previously noted, each area appears as a window on the screen. In addition, all areas that are currently displayed are displayed in DISP_AREA_LIST 702 . In an exemplary embodiment, the first area listed is displayed as the floor area and the last area displayed is the top displayed area. In an exemplary embodiment, overlap of windows is permitted, although overlap is not necessarily required in all embodiments.

Mit 704 ist die Datenstruktur für GROUP_LIST bezeichnet, die alle Gruppen auflistet, die beim SETUP-Prozeß in allen Bereichen definiert wurden, die in der AREA_LIST 700 gefunden wurden. Wie zuvor erwähnt, enthält jeder Bereich eine oder mehrere Gruppen. Eine optionale Datenstruktur 706 für eine STRING_LIST kann eben­ so vorgesehen werden, und eine FILE_LIST 708 wird als ein Ver­ zeichnis für "bitmap"-Bilder bereitgestellt, welche in vielen Zuständen in den verschiedenen Bereichen, Gruppen und Auswahlen benutzt werden können. 704 denotes the data structure for GROUP_LIST, which lists all groups that were defined in the SETUP process in all areas that were found in AREA_LIST 700 . As previously mentioned, each area contains one or more groups. An optional data structure 706 for a STRING_LIST can also be provided, and a FILE_LIST 708 is provided as a directory for "bitmap" images that can be used in many states in the various areas, groups and selections.

Die Struktur der AREA_LIST ergibt sich aus 710. Sie schließt einen Block für einen Bereich ID 712, einen Zeiger zum nächsten Bereich 714, einen Zeiger zum vorhergehenden Bereich 716 und einen Strukturzeiger 718 ein. Der Strukturzeiger 718, der zu jedem Bereich ID 712 gehört, zeigt auf eine Bereichsstruktur 715, welche den Bereich ID 712 zusammen mit einem ABS_X Eintrag 720 und einem ABS_Y Eintrag 722 einschließt, um die Position dieses Bereichs in Bezug auf die obere linke Ecke des Bildschir­ mes anzugeben (in einer bevorzugten Ausführungsform der Erfin­ dung). Die Bereichstruktur 715 schließt ferner einen ROWS Ein­ trag 724 und einen COLUMNS Eintrag 726 ein, die zusammen die Größe des Bereichs spezifizieren. Ein FLAGS Eintrag 728 legt fest, ob sich eine Umrahmung um den Bereich erstreckt. Ein TITLE_POSITION Eintrag 730 und ein TITLE_BAR Eintrag 732 spezifi­ zieren den Text des Titels und dessen Anordnung innerhalb der Titelzeile des betreffenden Bereichs, während ein MAX_STR_LEN Eintrag 734 die maximale Anzahl von Zeichen für den Titel spezi­ fiziert.The structure of AREA_LIST results from 710 . It includes a block for an area ID 712 , a pointer to the next area 714 , a pointer to the previous area 716 and a structure pointer 718 . The structure pointer 718 associated with each area ID 712 points to an area structure 715 , which includes area ID 712 along with an ABS_X entry 720 and an ABS_Y entry 722 , by the position of that area with respect to the upper left corner of the screen mes specify (in a preferred embodiment of the inven tion). The area structure 715 further includes a ROWS entry 724 and a COLUMNS entry 726 , which together specify the size of the area. A FLAGS entry 728 specifies whether a border extends around the area. A TITLE_POSITION entry 730 and a TITLE_BAR entry 732 specify the text of the title and its arrangement within the title line of the area concerned, while a MAX_STR_LEN entry 734 specifies the maximum number of characters for the title.

Zusätzlich enthält die Bereichsstruktur 715 einen Eintrag 736 für die Anzahl von Gruppen innerhalb eines bestimmten Bereichs. Ein AREA_MPTR Eintrag 738 spezifiziert den "Hot Spot" des Maus-Zeigers innerhalb des Bereichs, während ein Eintrag DEF_BUTTON 740 festlegt, welcher Knopf innerhalb des Bereichs den Standard (Default) vorgibt. Der Standard-Knopf wird aktiviert, wenn die "Enter"-Taste gedrückt wird. Ein CAN_BUTTON Eintrag 742 spezifi­ ziert den "Cancel"-Knopf, der aktiviert wird, wenn die "ESC"-Ta­ ste gedrückt wird. Schließlich ist eine Liste von Zeigern bei 744A-744N spezifiziert, einer für jede Gruppe, die zu dem Be­ reich gehört. Jeder Gruppenzeiger 744 zeigt zu einem zugehörigen Gruppen-Strukturblock 764, wie nachstehend ausgeführt. Eine "Hot Key"-Liste kann ebenfalls für den Bereich definiert werden. In addition, the area structure 715 contains an entry 736 for the number of groups within a certain area. An AREA_MPTR entry 738 specifies the "hot spot" of the mouse pointer within the area, while an entry DEF_BUTTON 740 specifies which button within the area specifies the default. The standard button is activated when the "Enter" key is pressed. A CAN_BUTTON entry 742 specifies the "Cancel" button, which is activated when the "ESC" key is pressed. Finally, a list of pointers is specified at 744 A- 744 N, one for each group belonging to the area. Each group pointer 744 points to an associated group structure block 764 , as set forth below. A "hot key" list can also be defined for the area.

Die bei 748 gezeigte Struktur von DISP_AREA_LIST ist im wesent­ lichen mit der Struktur von AREA_LIST 700 identisch und enthält Blöcke für den Bereich ID, den nächsten Bereich, den vorherge­ henden Bereich und Strukturzeiger. Wie bei AREA_LIST 700 zeigt auch die DISP_AREA_LIST 748 auf die Bereichsstruktur 715. Eine ähnliche Struktur ist für die GROUP_LIST 704 bei 750 gezeigt und sie enthält eine Gruppe ID 752, einen Zeiger auf die nächste Gruppe 754, einen Zeiger auf eine vorhergehende Gruppe 756 und einen Gruppenstrukturzeiger 758. Eine ähnliche Struktur kann auch für die optionale STRING_LIST 706 vorgesehen werden und sie kann eine Zeichenfolge (String) ID 760, einen Zeiger auf die nächste Zeichenfolge 762, einen Zeiger auf die vorhergehende Zeichenfolge 764 und einen Zeichenfolge-Strukturzeiger 766 auf­ weisen.The structure of DISP_AREA_LIST shown at 748 is essentially identical to the structure of AREA_LIST 700 and contains blocks for the area ID, the next area, the previous area and structure pointer. As with AREA_LIST 700 , DISP_AREA_LIST 748 also points to area structure 715 . A similar structure is shown for GROUP_LIST 704 at 750 and includes a group ID 752 , a pointer to the next group 754 , a pointer to a previous group 756, and a group structure pointer 758 . A similar structure can also be provided for the optional STRING_LIST 706 , and it can have a string (string) ID 760 , a pointer to the next string 762 , a pointer to the previous string 764 and a string structure pointer 766 .

Es wird noch einmal auf den Gruppen-Strukturzeiger 758 zurückge­ kommen. Dieser zeigt auf den Gruppen-Struktur Block 746 und enthält die Gruppen ID 752, einen PARENT_SELECT_ID Eintrag 780, um die Auswahl zu identifizieren, die, sobald sie aktiviert wird, automatisch diese Gruppe aufrollt, einen HOTSPOT_COUNT Eintrag 782, um die Anzahl von Maus-"Hot Spots" innerhalb der Gruppe zu identifizieren und ferner GSTART_X 784 und GSTARTY 786 Einträge, um die relative Lage der Gruppe innerhalb des Bereichs zu bestimmen. In einer bevorzugten Ausführungsform werden beide, die Lage der Gruppe und der Auswahl, in Bezug auf die obere linke Ecke des sie enthaltenden Bereichs spezifiziert; aber auch andere Beziehungen, die akzeptabel erscheinen, können definiert werden, z. B. die Spezifizierung der Lage einer Auswahl relativ zur Lage ihrer Gruppe. Das wichtigste ist, daß sichergestellt ist, daß alle Merkmale eines Bereichs ihre Position innerhalb des Bereichs beibehalten, wenn der Bereich bewegt wird.It will come back to the group structure pointer 758 again. This points to the group structure block 746 and contains the group ID 752 , a PARENT_SELECT_ID entry 780 in order to identify the selection which, as soon as it is activated, automatically rolls up this group, a HOTSPOT_COUNT entry 782 in order to determine the number of mouse Identify "hot spots" within the group and also GSTART_X 784 and GSTARTY 786 entries to determine the relative location of the group within the area. In a preferred embodiment, both the location of the group and the selection are specified with respect to the upper left corner of the area containing them; but other relationships that appear acceptable can also be defined, e.g. B. specifying the location of a selection relative to the location of its group. The most important thing is to ensure that all features of an area maintain their position within the area when the area is moved.

Der Gruppen-Struktur Block 746 umfaßt auch ROWS und COLUMNS Einträge 788 bzw. 790, um die Größe der Gruppe festzulegen, ebenso wie einen GFLAGS Eintrag 792, um die Umrandung der Gruppe festzulegen. Zusätzlich kann ein QUICK_KEY_POSITION Eintrag 794 und ein QUICK_KEY_STROKES Eintrag 796 für "Hot Key"-Kombinatio­ nen, die der Gruppe zugeordnet sind, spezifiziert werden.The group structure block 746 also includes ROWS and COLUMNS entries 788 and 790 , respectively, to determine the size of the group, as well as a GFLAGS entry 792 , to define the outline of the group. In addition, a QUICK_KEY_POSITION entry 794 and a QUICK_KEY_STROKES entry 796 can be specified for "hot key" combinations that are assigned to the group.

Weiterhin und ähnlich wie für die Bereichsstruktur, können Ein­ träge für Titelposition 798, Gruppen-Label 800 und MAX_STR_LEN 802 vorgesehen werden. Zusätzlich ist ein NUM_OF_SELECTS Eintrag 804 zur Identifizierung der Anzahl der Auswahlen vorgesehen, die in einer Gruppe enthalten sind. Als nächstes ist ein Eintrag 806 für AID_ATTACH als Rückreferenz zum Bereich ID 712 vorgesehen, zu dem die spezielle Gruppe gehört. Der AID_ATTACH Eintrag 806 ist nicht in allen Fällen erforderlich, aber verbessert zumin­ dest in einigen Zuständen die Ausführung. Schließlich zeigt eine Liste von Zeiger-Einträgen 808A bis 808N jeweils auf eine ausge­ wählte Struktur, die mit der speziellen Gruppe verbunden ist. Wie nachstehend näher erläutert wird, kann eine Vielzahl von Auswahl-Strukturen mit jeder Gruppe verbunden werden, jedoch sind einige Elemente den verschiedenen Typen gemeinsam. Deshalb zeigt der erste Zeiger 808A auf einen SELECT_COMMON-Struktur-Block 810. Wiederum zurückkommend auf den Bereichs-Struktur Block 715 zeigen der Standard-Knopf Eintrag 740 und der "CANCEL"-Knopf Eintrag 742 ebenfalls auf den gemeinsamen Auswahl-Strukturblock 810.Furthermore and similar to the area structure, entries for title position 798 , group label 800 and MAX_STR_LEN 802 can be provided. In addition, a NUM_OF_SELECTS entry 804 is provided to identify the number of selections contained in a group. Next, an entry 806 for AID_ATTACH is provided as a back reference to area ID 712 to which the special group belongs. The AID_ATTACH entry 806 is not required in all cases, but at least improves the execution in some states. Finally, a list of pointer entries 808 A through 808 N each point to a selected structure that is associated with the particular group. As explained in more detail below, a variety of selection structures can be associated with each group, but some elements are common to the different types. Therefore, the first pointer 808 A points to a SELECT_COMMON structure block 810 . Returning to the area structure block 715 , the standard button entry 740 and the "CANCEL" button entry 742 also point to the common selection structure block 810 .

Der SELECT_COMMON Struktur-Block 810 enthält einen Auswahl ID Eintrag 812, einen Eintrag 814, der eine Rückreferenz zur Grup­ pen ID ergibt, einen REL_X und REL_Y Eintrag 816 bzw. 818 zu­ sammen mit ROWS und COLS Einträgen 820 bzw. 822, um die Lage und die Größe der Auswahl zu spezifizieren, einen QUICK_KEY_POS und einen QUICK_KEY_CHR Eintrag 824 bzw. 826, um die "Hot Key"-Kom­ binationen zu spezifizieren, die zu der Auswahl gehören, einen MAX_STR_LEN Eintrag 828 und eine Auswahl-Zeichenfolge 830, um die maximale Größe und den Titel der Auswahl zu spezifizieren, und einen SFLAGS Eintrag 832, um die Eigenschaften der Auswahl zu spezifizieren.The SELECT_COMMON structure block 810 contains a selection ID entry 812 , an entry 814 which gives a back reference to the group ID, a REL_X and REL_Y entry 816 or 818 together with ROWS and COLS entries 820 or 822 to determine the location and to specify the size of the selection, a QUICK_KEY_POS and a QUICK_KEY_CHR entry 824 and 826 , respectively, to specify the "hot key" combinations associated with the selection, a MAX_STR_LEN entry 828, and a selection string 830 around the to specify the maximum size and title of the selection, and an SFLAGS entry 832 to specify the properties of the selection.

Zusätzlich wird auch ein SELECT_TYPE Eintrag 834 bereitgestellt. Wie zuvor erläutert, sind verschiedene Arten von Auswahlen ver­ fügbar und insoweit wird auf Fig. 7A Bezug genommen. Die ver­ schiedenen Arten von Auswahlen, die innerhalb einer Gruppe zur Verfügung stehen, hängen vom Datentyp ab, der für diesen Schritt der Konfiguration des Terminals erforderlich ist. In einigen Beispielen besteht die Auswahl lediglich im Drücken eines Knop­ fes (Knöpfe 640); in anderen Beispielen besteht die Auswahl in der Aktivierung und Deaktivierung eines Merkmals, wie eines Prüfblocks (siehe 650 in Fig. 7A); in anderen Beispielen muß eine von verschiedenen Auswahlen getroffen werden, wie es mit den Gruppen "Communication" 660 und "Serial Port" 670 in Fig. 7A dargestellt ist. Gemäß weiteren Beispielen kann ein Bild ausge­ wählt werden, während bei anderen spezieller Text ausgewählt werden muß. In einigen Beispielen müssen Felder ausgefüllt wer­ den (680 in Fig. 7A), während in anderen eines von mehreren Feldern ausgefüllt werden muß. Obwohl diese Arten von Auswahlen in einer beispielhaften Ausführungsform implementiert wurden, ist die Aufzählung keinesfalls als vollständig anzusehen und selbstverständlich können andere Auswahlen aus der hier gegebe­ nen technischen Lehre leicht ebenfalls implementiert werden.A SELECT_TYPE entry 834 is also provided. As previously discussed, various types of selections are available, and reference is made to FIG. 7A. The different types of selections that are available within a group depend on the type of data required for this step of configuring the terminal. In some examples, the selection is just pressing a button (buttons 640 ); in other examples, the selection is to enable and disable a feature, such as a test block (see 650 in Figure 7A); in other examples, one of several selections must be made, as illustrated by the "Communication" 660 and "Serial Port" 670 groups in FIG. 7A. According to further examples, an image can be selected, while for other special text must be selected. In some examples, fields must be completed ( 680 in Figure 7A), while in others one of several fields must be completed. Although these types of selections have been implemented in an exemplary embodiment, the list is by no means to be considered complete and, of course, other selections from the technical teaching given here can also be easily implemented.

Für eine Auswahl "Ausfüllen" sind Cursor-Start und Cursor-Ende Einträge 836 bzw. 838 bereitgestellt, zusammen mit einem "First Displayed" Eintrag 840 zum Identifizieren, von welchem Zeichen an die Zeichenfolge angezeigt werden soll. Zusätzlich ist sowohl ein LABEL_REL_X Eintrag 842 als auch ein LABEL_REL_Y Eintrag 844 und ein LABEL_STR Eintrag 846 vorgesehen.For a selection "Fill", cursor start and cursor end entries 836 and 838 are provided, together with a "First Displayed" entry 840 for identifying the character from which the character string is to be displayed. In addition, both a LABEL_REL_X entry 842 and a LABEL_REL_Y entry 844 and a LABEL_STR entry 846 are provided.

Für einen Auswahltyp "einer von vielen" sind Einträge von NUM_OF_SEL_ROWS 848 und NUM_OF_SEL_COLS 850 vorgesehen. Einträge sind auch für die Anzahl von Optionen 852 und die "default" Option 854 vorgesehen, ebenso ein Quick-Key-Pointer 856 und ein Flag-Pointer 858, um die Anzahl der Optionen zu identifizieren, die aktiv sind. Schließlich gibt es eine SEL_STR_SIZE 860.Entries of NUM_OF_SEL_ROWS 848 and NUM_OF_SEL_COLS 850 are provided for a selection type "one of many". Entries are also provided for the number of options 852 and the "default" option 854 , as well as a quick key pointer 856 and a flag pointer 858 to identify the number of options that are active. Finally, there is a SEL_STR_SIZE 860 .

Für einen "Bild"-Typ der Auswahl ist nur ein Eintrag für die Datei ID 708 nötig und ein Bildzeiger 862 muß spezifiziert wer­ den. For an "image" type of selection, only one entry is required for file ID 708 and an image pointer 862 must be specified.

Für einen "Felder"-Typ der Auswahl gibt es eine "Child-Group" ID Eintrag 864 zusammen mit einem Child-Group- (= Ablegergruppen) Zeiger, welcher auf eine Gruppenstruktur derjenigen Art zeigt, wie sie mit dem Gruppenstrukturblock 746 dargestellt ist. Die Ablegergruppe wird automatisch aufgerufen, sobald die Elternaus­ wahl aktiviert ist und eine aus einer Gruppe von Feldern ausge­ wählt ist.For a "field" type of selection there is a "child group" ID entry 864 together with a child group (= offshoot group) pointer which points to a group structure of the type shown with the group structure block 746 . The branch group is called up automatically as soon as the parent selection is activated and one of a group of fields is selected.

Für eine "List of Strings"- (= "Liste von Zeichenfolgen") Auswahl sind Einträge für die Anzahl der Optionen 868, die maximale Länge des Optionstitels (oder MAX_OP_LEN) 870, ein Eintrag 872 für den horizontalen Darstellungsversatz, ein Eintrag 874 für den vertikalen Darstellungsversatz, zusammen mit einer X-Label Position 878 und einer Y-Label Position 880 vorgesehen. Schließ­ lich ist eine Label-Zeichenfolge 882 und ein Eintrag 884 für die Größe der Zeichenfolge der Auswahl vorgesehen.For a "List of Strings" selection, entries for the number of options 868 , the maximum length of the option title (or MAX_OP_LEN) 870 , an entry 872 for the horizontal display offset, an entry 874 for the vertical display offset, together with an X-label position 878 and a Y-label position 880 . Finally, a label string 882 and an entry 884 are provided for the size of the string of the selection.

Nochmals auf den AREA_MPTR Eintrag 738 zurückkommend, wird der Maus-Zeiger-"Hot Spot" durch eine Struktur spezifiziert, die einen Bereichs-ID-Eintrag 900, einen Gruppen-ID-Eintrag 902 und eine Auswahl-ID 904 umfaßt. Zusätzlich ist ein Options-Auswahl-Typ 906 vorgesehen, der den Typ der Auswahl spezifiziert, mit der ein spezieller "Hot Spot" assoziiert ist. Ferner gibt es Rückreferenzen Einträge 908 und 910 für die Gruppen ID innerhalb des Bereichs und die Auswahl ID innerhalb der Gruppe. Weiterhin spezifizieren vier Einträge 912A-D sowohl die oberen linken X und Y Positionen, wie auch die unteren rechten X und Y Positio­ nen für den Maus-Darstellungspunkt ("Hot Spot"), und zwar zusam­ men mit einem Eintrag 914 für ein Maus-Kennzeichen ("flag"), der bewirkt, daß der Mausdarstellungspunkt aktiviert wird, sobald das richtige Menü angezeigt wird. Zusätzlich zu den soeben be­ schriebenen Darstellungspunkten sind zusätzliche Darstellungspunkte am Anfang und am Ende jeder Anzeigenliste bereitgestellt, um ein Rollen zu ermöglichen, und ähnliches be­ findet sich in dem Titelleistenbereich eines Bereichs, damit das Bereichsfenster bewegt werden kann. Returning to AREA_MPTR entry 738 , the mouse pointer "hot spot" is specified by a structure that includes an area ID entry 900 , a group ID entry 902 and a selection ID 904 . In addition, an option selection type 906 is provided which specifies the type of selection with which a special "hot spot" is associated. There are also back references entries 908 and 910 for the group ID within the range and the selection ID within the group. Furthermore, four entries 912 A-D specify both the upper left X and Y positions and the lower right X and Y positions for the mouse display point ("hot spot"), together with an entry 914 for a mouse identifier ("flag"), which causes the mouse display point to be activated as soon as the correct menu is displayed. In addition to the viewpoints just described, additional viewpoints are provided at the beginning and end of each display list to allow scrolling, and the like are found in the title bar area of an area so that the area window can be moved.

Zusätzlich zu den vorgenannten Strukturen wird auch eine Daten­ struktur bereitgestellt, um die aktuell ausgewählten Einträge aus den verschiedenen Auswahlmöglichkeiten beizubehalten. Der aktuelle Daten-Struktur-Block ist bei 950 dargestellt und ent­ hält einen Eintrag 952 für die Anzahl von Bereichen, die momen­ tan vom SETUP definiert sind; ein Eintrag 954 gibt an, wieviele Bild-Dateien definiert sind; Einträge 956 bzw. 958 geben an, wieviele Gruppen und Auswahlen definiert wurden, ein Eintrag 960 dient der Zuordnung einer vorbestimmten Maximalanzahl von Aus­ wahlen. In einer beispielhaften Ausführungsform ist die Maximal­ anzahl von Auswahlen in Zehnerblöcken zugeordnet.In addition to the aforementioned structures, a data structure is also provided in order to retain the currently selected entries from the various selection options. The current data structure block is shown at 950 and contains an entry 952 for the number of areas currently defined by the SETUP; entry 954 indicates how many image files are defined; Entries 956 and 958 indicate how many groups and selections have been defined, an entry 960 is used to assign a predetermined maximum number of selections. In an exemplary embodiment, the maximum number of selections is assigned in blocks of ten.

Zusätzliche Einträge 962 und 964 sind für die Anzahl von Pixel pro Spalte bzw. Reihe vorgesehen, ebenso wie ein Eintrag für den Font 966, ein Bereichs-Focus-Eintrag 968, ein Gruppen-Focus-Ein­ trag 970 und ein Zeichenfolge-Focus-Eintrag 972. Weiterhin gibt es einen Maus-Focus-Eintrag 974 zur Spezifizierung des Darstellungspunktes. Weiterhin können OFOCUS und TFOCUS Einträge 976 bzw. 978 vorgesehen werden, um die ausgewählten Auswahl-Op­ tionen und Auswahl-Typen mit einem Tastatur Fokus zu spezifi­ zieren. Noch weiter gibt es IFOCUS und JFOCUS Einträge 980 bzw. 982 für die "Hot Spot"-Einträge 908 und 910 vom oben be­ schriebenen Maus-Struktur-Block. Schließlich spezifiziert ein Menü-Eintrag 986 die Identifizierung des aktuellen Menü-Focus, zusammen mit den Einträgen 988 und 990 zur Definition der Be­ reichs- und Gruppenumrahmungen, zusammen mit einem OFLAGS Ein­ trag zur Spezifizierung der Mausmodi.Additional entries 962 and 964 are provided for the number of pixels per column or row, as well as an entry for the font 966 , an area focus entry 968 , a group focus entry 970 and a string focus entry 972 . There is also a mouse focus entry 974 for specifying the display point. OFOCUS and TFOCUS entries 976 and 978 can also be provided in order to specify the selected selection options and selection types with a keyboard focus. Still further there are IFOCUS and JFOCUS entries 980 and 982 for the "hot spot" entries 908 and 910 from the mouse structure block described above. Finally, a menu entry 986 specifies the identification of the current menu focus, together with entries 988 and 990 for defining the area and group frames, together with an OFLAGS entry for specifying the mouse modes.

Die den laufenden Zustand der Auswahlen spezifizierende Infor­ mation befindet sich in einer ACTIVE-SELECT-Struktur 1000. Jede Struktur umfaßt einen Knopf-Eintrag 1002, einen STFLAGS- oder Auswahl-gemeinsame-FLAGS Eintrag 1004 und einen Aktiveintrag, welcher den aktuellen Status aller Auswahlen speichert, aus dem diese Daten für den SETUP Code verfügbar gemacht werden können.The information specifying the current status of the selections is located in an ACTIVE SELECT structure 1000 . Each structure includes a button entry 1002 , an STFLAGS or selection common FLAGS entry 1004, and an active entry that stores the current status of all selections from which this data can be made available for the SETUP code.

In einer bevorzugten Ausführungsform kann auch eine Ereignis- Queue- (= Warteschlange) Struktur 1010 eingespeist werden, um Tastaturanschläge oder Mausbewegungen in einer Ereignis-War­ teschlange aufzuzeichnen.In a preferred embodiment, an event queue structure 1010 can also be fed in to record keystrokes or mouse movements in an event queue.

Wie zuvor ausgeführt, ist es ein Schlüsselmerkmal der vorliegen­ den Erfindung, daß das Betriebssystem des Terminals der vorlie­ genden Erfindung nicht mit einem Standard PC/AT BIOS oder DOS kompatibel ist. Dennoch ist es erforderlich, daß das Terminal-Be­ triebssystem gewisse Funktionen unterstützt, um die Fähigkeit, Anwendungsdateien in einer Multiuserumgebung anzuzeigen, beizu­ behalten, wie beim Kommunizieren mit einem CITRIX-Clienten oder anderen unterstützten Emulationen. Es läßt sich eine Liste mit Standard IO.SYS und BIOS.SYS Funktionen aufstellen, welche von der vorliegenden Erfindung unterstützt werden; für den Fachmann ist deutlich, daß nicht alle Standard BIOS oder DOS Funktionen eingeschlossen werden müssen. Manche Funktionen werden nicht unterstützt. Andere Merkmale werden nur teilweise unterstützt. So wird die Funktion 36h (Get Disk Free Space) (= Ermittle frei­ en Speicherplatz der Platte) deshalb nur teilweise unterstützt, weil ein Flashspeicher anstelle einer Harddisk (= Festplatte) benutzt wird. Ähnlich wird die Funktion 33h (Get/Set System Va­ lue) (= Ermittle/Setze Systemwert) insoweit in Abhängigkeit von der Funktion und dem Flag unterstützt, jedoch die "Control-Bre­ ak" Funktion wird nicht unterstützt. In gleicher Weise werden die Funktionen 2Ah bis 2Dh (die Get/Set Date/Time-, d. h. Ermitt­ le/Setze Datum/Zeit, Funktionen) nur teilweise unterstützt, da keine Echtzeit-Hardware im Terminal der vorliegenden Erfindung vorhanden ist. Lediglich die "Get Time"- (= Ermittle Zeit) Funk­ tion wird unterstützt, so daß sie zur Messung der Dauer von Ereignissen herangezogen werden kann, ohne die absolute Zeit wiederzugeben.As stated earlier, it is a key feature of the present the invention that the operating system of the terminal Invention not with a standard PC / AT BIOS or DOS is compatible. Nevertheless, it is necessary that the terminal loading drive system supports certain functions to the ability Display application files in a multi-user environment keep, like when communicating with a CITRIX client or other supported emulations. You can have a list with Set up standard IO.SYS and BIOS.SYS functions, which of the present invention are supported; for the specialist it is clear that not all standard BIOS or DOS functions must be included. Some functions won't supported. Other features are only partially supported. This is how the function 36h (Get Disk Free Space) becomes disk space) is therefore only partially supported, because a flash memory instead of a hard disk (= hard disk) is used. Function 33h (Get / Set System Va lue) (= determine / set system value) in this respect depending on supports the function and the flag, but the "Control-Bre ak "function is not supported. In the same way the functions 2Ah to 2Dh (the Get / Set Date / Time, i.e. le / set date / time, functions) only partially supported, because no real-time hardware in the terminal of the present invention is available. Only the "Get Time" radio tion is supported so that it can be used to measure the duration of Events can be used without the absolute time to play.

Zusätzlich ist das Flashfile-System in einer bevorzugten Ausfüh­ rungsform der Erfindung in mehrere Einzelverzeichnis-Laufwerke partitioniert. Jedoch weist das Flashfile-System in Gegensatz zu konventionellen Diskfile-Systemen keine Einteilung in Cluster oder Sektoren auf. Dateien in jedem Laufwerk oder in jeder Par­ tition wachsen von unten nach oben in der Partition, während die Directory-Einträge von oben nach unten wachsen. Daten werden fortlaufend ohne Fragmentierung gespeichert. Die Verzeich­ niseinträge, die in einer bevorzugten Ausführungsform sechzehn Bytes lang sind, entsprechen allgemein einem DOS-Verzeichnisein­ trag; jedoch werden Elemente, die normalerweise reserviert sein würden, definiert, um es zu ermöglichen, daß eine Datei aus dem Flash anstatt aus dem DRAM ausgeführt wird. Dies schließt die Startadresse der Datei im Flash ebenso ein, wie das Rückabbil­ dungssegment der Datei im DOS Adressenraum.In addition, the flash file system is in a preferred embodiment Form of the invention in several single directory drives partitioned. However, the flash file system is in contrast to conventional disk file systems no division into clusters or sectors. Files in any drive or par tition grow from bottom to top in the partition, while the  Directory entries grow from top to bottom. Data will saved continuously without fragmentation. The directory nis entries that are sixteen in a preferred embodiment Bytes long generally correspond to a DOS directory wear; however, items that are normally reserved would be defined to allow a file from the Flash instead of running from the DRAM. This excludes the Start address of the file in Flash as well as the return image segment of the file in the DOS address space.

Die Dateilöschung ist zwar der Löschung konventioneller DOS-Dateien weitgehend ähnlich, unterscheidet sich aber in wichtigen Details. Wenn eine Datei in der vorliegenden Erfindung gelöscht werden soll, wird das erste Byte im Verzeichnis-Eintrag auf 0 statt auf E5h gesetzt. Dieser Schritt erfolgt ohne Löschung eines Flashblocks. Nachfolgende Dateien werden dann in den näch­ sten verfügbaren Platz eingeschrieben. Falls jedoch für eine nachfolgende Datei nicht genügend Platz zur Verfügung steht, wird der Flashblock für die gelöschte Datei gelöscht und unge­ löschte Dateien werden in den Flashblock dahin zurückgeschrie­ ben, wo die gelöschte Datei beibehalten worden war. Wie schon zuvor erwähnt, ist eine Dateifragmentierung zumindest in einigen Ausführungsbeispielen nicht erlaubt.File deletion is more conventional than deletion DOS files are largely similar, but differ in important ones Details. When a file is deleted in the present invention the first byte in the directory entry is set to 0 instead of E5h. This step is done without deletion a flash block. Subsequent files are then in the next registered available space. However, if for one the following file does not have enough space, the flash block for the deleted file is deleted and unused deleted files are written back into the flash block where the deleted file was kept. How nice previously mentioned, file fragmentation is at least in some Embodiments are not allowed.

Das Flashfile-System unterstützt konventionelle DIR, TYPE und DEL Befehle, unterstützt einen neuen "DEBUGMSG" Befehl zur Er­ zeugung einer DEBUG Mitteilung und unterstützt auch Programmaus­ führungen durch Batchfiles. Das Dateisystem unterstützt auch die AUTOEXEC.BAT Datei und auch das Laden und Ausführen von *.EXE und *.COM Dateien und Int 21h und Int 27h. Jedoch unterstützt das Dateisystem in zumindest einigen Ausführungsformen nicht die CONFIG.SYS Datei oder .SYS-Gerätetreiber. Desgleichen unter­ stützt das Dateisystem nicht die Batchfile-Befehle (außer Pro­ grammausführung), I/O-Umleitungen, Pipes oder Interrupts 20h (Programm beenden), 22h (Adresse beenden), 23h (Ctrl-Break Adresse verlassen), 24h (Kritische Fehler Abwicklungs-Vektor), 25 h (Absolute Disk Read), 26h (Absolute Disk Write) und 2Fh (Multiplex Interrupt).The flash file system supports conventional DIR, TYPE and DEL commands, supports a new "DEBUGMSG" command for Er generation of a DEBUG message and also supports program execution guided tours through batch files. The file system also supports the AUTOEXEC.BAT file and also loading and executing * .EXE and * .COM files and Int 21h and Int 27h. However supports the file system in at least some embodiments, not the CONFIG.SYS file or .SYS device driver. Likewise under the file system does not support the batch file commands (except Pro program execution), I / O redirections, pipes or interrupts 20h (End program), 22h (end address), 23h (Ctrl-Break Leave address), 24h (critical errors settlement vector), 25 h (Absolute Disk Read), 26h (Absolute Disk Write) and 2Fh  (Multiplex interrupt).

Aus dem Vorhergehenden wird deutlich, daß, während eine ausge­ wählte Gruppe der Standard BIOS und DOS Funktionen emuliert oder anderweitig vom Terminal-Betriebssystem der vorliegenden Erfin­ dung unterstützt werden, eine sehr bedeutende Anzahl der Stan­ dard-BIOS- und DOS-Funktionen nicht unterstützt werden. Zusätz­ lich lassen sich sogar jene BIOS- und DOS-Funktionen, die unter­ stützt werden, nicht unter Standard AT kompatibler Hardware ausführen. Statt dessen richtet der Teil des Terminal-Betriebs­ systems, der in Fig. 4 als der "Bootblock" 300 und als "Kernel" 305 bezeichnet werden, die Fähigkeit zum Emulieren dieser Funk­ tionen ein.From the foregoing it is clear that while a selected group of the standard BIOS and DOS functions are emulated or otherwise supported by the terminal operating system of the present invention, a very significant number of the standard BIOS and DOS functions are not supported . In addition, even those BIOS and DOS functions that are supported cannot be carried out under standard AT compatible hardware. Instead, the portion of the terminal operating system, referred to in FIG. 4 as "boot block" 300 and "kernel" 305 , establishes the ability to emulate these functions.

Die vom Bootblock 300 unterstützten Dienstfunktionen schließen ein: GET FLASH DRIVE SIZE, welcher den Flashspeicher 438 nach der Laufwerksgröße abfragt; READ FLASH DRIVE zum Lesen von Daten aus dem Flashspeicher 438; WRITE FLASH DRIVE zum Schreiben von Daten in den Flashspeicher 438; GET FLASH DRIVE BLOCK SIZE zum Abfragen der Blockgröße des Speichers 438; ERASE FLASH DRIVE BLOCK zum Löschen von Daten aus dem Speicher 438; WARM REBOOT wird beim Herstellertest benutzt, um wiederholt durch die Ein­ schaltdiagnose zu schleifen, aber nicht in normalen Betrieb benutzt; GET BOOT BLOCK DATE zur Abfrage der Daten des Boot­ blocks; CLEAR KEYBOARD CONTROLLER I/O BIT wird zur Steuerung von Komponenten benutzt, die mit dem Tastaturkontroller verbunden sind; und schließlich SET KEYBOARD CONTROLLER I/O BIT zum Ein­ stellen des Tastatur-Kontrollers.The service functions supported by boot block 300 include: GET FLASH DRIVE SIZE, which queries flash memory 438 for the drive size; READ FLASH DRIVE for reading data from flash memory 438 ; WRITE FLASH DRIVE for writing data into flash memory 438 ; GET FLASH DRIVE BLOCK SIZE to query the block size of the memory 438 ; ERASE FLASH DRIVE BLOCK to erase data from memory 438 ; WARM REBOOT is used in the manufacturer test to repeatedly loop through the switch-on diagnosis, but is not used in normal operation; GET BOOT BLOCK DATE to query the data of the boot block; CLEAR KEYBOARD CONTROLLER I / O BIT is used to control components that are connected to the keyboard controller; and finally SET KEYBOARD CONTROLLER I / O BIT to set the keyboard controller.

Die Betriebsweise des Kernel 305 wird nun im Detail beschrieben. Der Kernel umfaßt im wesentlichen drei Dienstfunktionen. Die erste ist eine "ACTIVE VIDEO INT 10h" Funktion, welche die nor­ malen int 10h Funktionen für Videodienste aktiviert. Der Inter­ rupt int 10h wird anfänglich vom Kernel 305 abgefangen, um die Darstellung von Text-Modus-Mitteilungen von den verschiedenen Gerätetreibern zu unterdrücken, während diese geladen werden. Nachdem die Treiber alle geladen sind und das Terminal in den Graphikmodus gelangt, wird die ACTIVE VIDEO INT 10h Funktion aufgerufen, um die normale int 10h Operation zurückzusetzen. Zusätzlich schließt der Kernel 305 eine zweite Funktion ein, die "SET POWER DOWN TIME", welche verschiedene Stromsparfunktionen (wie "ENERGY STAR compliance") und eine Zeitverzögerung zum Aktivieren dieser Funktionen einstellen kann. Schließlich umfaßt der Kernel 305 eine "PROCESS DOS INTERRUPTS" Funktion, welche jedesmal vom Bootblock oder anderen Teilen des Kernels 305 auf­ gerufen werden kann, wenn es nötig ist, anstehende DOS Inter­ rupts auszuführen, welche eine Echtzeit-Verarbeitung in einer DOS-Umgebung erfordern. Die am meisten auszuführenden Interrupts in dieser Funktion sind Maus- und Tastatur-Interrupts, obwohl auch Zeitgeber-, Seriell-, Parallel- und Netzwerk-Interrupts vorkommen. Das Einfangen durch diese Funktion verhindert bei­ spielsweise, daß Maus- und Tastatur-Interrupts für eine längere Periode abgeschaltet bleiben - wobei lang genug für einen Be­ nutzer schon beispielsweise eine Verzögerung von einer Sekunde zwischen der Bewegung der Maus und der Folgebewegung des Cursors sein kann - oder um den Ausgang des Tastatur-Kontrollers freizu­ machen, wenn es nötig wird, einen Befehl zum Tastatur Kontroller zu senden.The operation of the kernel 305 will now be described in detail. The kernel essentially comprises three service functions. The first is an "ACTIVE VIDEO INT 10h" function, which activates the normal int 10h functions for video services. Interrupt int 10h is initially intercepted by kernel 305 to suppress the display of text mode messages from the various device drivers as they are loaded. After the drivers are all loaded and the terminal goes into graphics mode, the ACTIVE VIDEO INT 10h function is called to reset the normal int 10h operation. In addition, the kernel 305 includes a second function, the "SET POWER DOWN TIME", which can set various power saving functions (such as "ENERGY STAR compliance") and a time delay to activate these functions. Finally, kernel 305 includes a "PROCESS DOS INTERRUPTS" function which can be called from the boot block or other parts of kernel 305 whenever it is necessary to execute pending DOS interrupts which require real time processing in a DOS environment . The most frequently executed interrupts in this function are mouse and keyboard interrupts, although timer, serial, parallel and network interrupts also occur. The capture by this function prevents, for example, that mouse and keyboard interrupts remain switched off for a longer period - whereby long enough for a user, for example, there may be a delay of one second between the movement of the mouse and the subsequent movement of the cursor - or to clear the keyboard controller output when it is necessary to send a command to the keyboard controller.

Da die Hardware der vorliegenden Erfindung nicht dem PC/AT Stan­ dard entspricht und die Firmware weder dem konventionellen PC/AT BIOS noch dem DOS entspricht, aber das ganze System dazu aus­ gelegt ist, dem Benutzer zu erlauben, eine konventionelle WINDOWS®-Darstellung vor sich zu sehen und mit ihr zu interagieren, müssen einige konventionelle Hardware- Interrupts und verwandte Aufrufe durch die vorliegende Erfindung gemanaged werden. In einer bevorzugten Ausführungsform werden solche Interrupts und Aufrufe mit der Terminal-Firmware behandelt, entweder durch Emulierung oder durch Modifizierung der geeigneten Antwort auf das eingehende Signal. Diese Antworten werden nachstehend de­ tailliert anhand des Kernels beschrieben.Because the hardware of the present invention is not PC / AT Stan dard corresponds and the firmware neither the conventional PC / AT BIOS still corresponds to DOS, but the whole system does so is laid to allow the user a conventional Seeing WINDOWS® display in front of you and interacting with it, need some conventional hardware interrupts and related Calls are managed by the present invention. In In a preferred embodiment, such interrupts and Calls with the terminal firmware are handled, either by Emulation or by modifying the appropriate response the incoming signal. These responses are de below Waisted described using the kernel.

Der Kernel bringt den Prozessor in einen virtuellen 8086 Modus und stellt verschiedene Tabellen ein, wie sie zum Einfangen von I/O′s an den verschiedenen Ports nötig sind. Nachdem ein Zugriff auf einen ausgewählten Port eine Ablaufunterbrechung erzeugt, wird diese Instruktion, die diese Ablaufunterbrechung erzeugt hat, zerlegt, so daß der Kernel sie korrekt verarbeiten kann, um eine PC-Kompatibilität zu emulieren, was die Übertragung ver­ schiedener Merkmalsgruppen (sog. "Personalities") erleichtert. Weil eine ganze Subroutine für jede eingefangene I/O-Instruktion abgearbeitet werden muß, wird die I/O-Instruktion nicht so schnell ausgeführt, so daß das Abfangen von I/O′s auf sowenig Ports wie möglich begrenzt wird. In einigen Beispielen werden alle oder nur ein Teil eines I/O-Ports nur soweit (mit Inter­ rupts) unterbrochen, wie es für eine AT-Kompatibilität nötig ist. Ausgehend von der Tatsache, daß beabsichtigt ist, daß die bevorzugteste Ausführungsform der vorliegenden Erfindung eine CITRIX WinFrame-Merkmalsgruppe bereitstellt, ist hervorzuheben, daß auch andere Merkmalsgruppen für die Benutzung des Terminals der vorliegenden Erfindung implementiert werden können. In eini­ gen Beispielen kann das Terminal der vorliegenden Erfindung im Speicher vielfältige Merkmalsgruppen aufweisen, wobei das Termi­ nal zu vielen Hosts verbunden werden kann, die unter verschiede­ nen Betriebssystemen laufen, und deshalb solch unterschiedliche Merkmalsgruppen erwarten. Der Benutzer oder andere können dann in der Lage sein, unter diesen Merkmalsgruppen zu wählen und zwar durch einen "Hot Key" oder eine Tastatursequenz, wobei der Kernel der vorliegenden Erfindung dann die entsprechenden Kenn­ daten aus dem Speicher aufruft und eine Kommunikation mit dem entsprechenden Host ermöglicht.The kernel puts the processor in a virtual 8086 mode and sets up various tables as they are used to capture  I / O's on the various ports are necessary. After an access generates a process interruption on a selected port, becomes this instruction that creates this interrupt has broken it down so that the kernel can process it correctly to to emulate a PC compatibility, which ver the transmission various groups of characteristics (so-called "personalities"). Because a whole subroutine for every I / O instruction captured must be processed, the I / O instruction is not so executed quickly, so that the interception of I / O's on little Ports is limited as possible. In some examples all or only part of an I / O port only as far (with inter rupts) interrupted as required for AT compatibility is. Based on the fact that it is intended that the most preferred embodiment of the present invention CITRIX WinFrame feature group is to be emphasized that other feature groups for the use of the terminal of the present invention can be implemented. In some For examples, the terminal of the present invention can be found in Stores have diverse groups of features, the term nal can be connected to many hosts under different operating systems, and therefore such different ones Characteristic groups expect. The user or others can then be able to choose from among these feature groups and by a "hot key" or a keyboard sequence, the Kernel of the present invention then the corresponding characteristics calls data from the memory and a communication with the appropriate host.

Die I/O-Ports, die vom Kernel für die Herstellung einer AT-Kom­ patibilität abgefangen werden, sind:The I / O ports used by the kernel to create an AT com compatibility are:

20h (Der Befehlsport eines AT-kompatiblen Interruptkontrollers) - Nur der "Ende des Interrupts"-Befehl wird emuliert, der am Ende jedes Interrupt-Ausführungsprogramms ausgegeben wird, damit mehr Interrupts derselben oder geringerer Priorität auftreten können. Der Kernel emuliert auch die normale Betriebsweise eines PC-kompatiblen Interrupt-Kontrollers, soweit dieser Interrupts von gleicher oder geringerer Priorität blockiert, bis der "Ende des Interrupts"-Befehl empfangen wird.20h (the command port of an AT-compatible interrupt controller) - Only the "end of interrupt" command is emulated, which on End of each interrupt execution program is issued so more interrupts of the same or lower priority occur can. The kernel also emulates the normal operation of a PC compatible interrupt controller, as far as these interrupts  blocked of equal or lower priority until the "end of the interrupt "command is received.

21h (Das Maskierregister des AT-kopatiblen Interrupt-Kontrol­ lers) - Wird emuliert.21h (The mask register of the AT-compatible interrupt control lers) - Is emulated.

40h-43h (Zugriff zu einem AT-kompatiblen 8354 System Zeitgeber) - Die Ports werden nicht emuliert, aber abgefangen, weil einige auf AT-basierende Treiber in diese Ports schreiben. Da das In­ terrupt-Maskierregister nach einer bevorzugten Ausführungsform der vorliegenden Erfindung auf Port 40h gesetzt ist, würden nicht eingefangene Einschreibungen mit dem Interruptmaskier­ register der vorliegenden Erfindung kollidieren.40h-43h (access to an AT-compatible 8354 system timer) - The ports are not emulated, but intercepted because of some write to AT-based drivers in these ports. Since the In terrupt mask register according to a preferred embodiment of the present invention is set to port 40h not captured enrollments with the interrupt mask registers of the present invention collide.

61h (Ein Steuerport für verschieden Anwendungen in einer AT-Architektur) - Ein Lautsprecher Steuerbit wird emuliert, um es zu ermöglichen, den Lautsprecher ein- und auszuschalten.61h (One control port for different applications in one AT architecture) - A speaker control bit is emulated to it to enable the speaker to be turned on and off.

A0h (Der Befehlsport eines zweiten Interrupt-Kontrollers eines AT-kompatiblen Rechners) - wie bei Port 20h wird der "Ende des Interrupts"-Befehl emuliert.A0h (The command port of a second interrupt controller one AT-compatible computer) - As with port 20h, the "end of the Interrupts "command emulated.

A1h (Das Maskierregister für den zweiten Interrupt-Kontroller (ähnlich dem Port 21h)) - Wird emuliert.A1h (The mask register for the second interrupt controller (similar to port 21h)) - Is emulated.

2F8h bis 2FFh (Eine Standardadresse für einen zweiten AT-kom­ patiblen seriellen Port) - Diese Ports werden auf 5F0h bis 5FEh versetzt, die Portadressen für den zweiten seriellen Port einer bevorzugten Ausführungsform der Erfindung. Der neue Portbereich (5F0 bis 5FE) umfaßt nur "geradzahlige" Adressen. In einer bei­ spielhaften Ausführungsform ist ein "Byte Swapping" nicht im­ plementiert worden und deshalb kann nur auf "geradzahlige" Bytes einer des acht-Bit SIO-Bauteils zugegriffen werden. Allerdings kann erforderlichenfalls auch ein "BYTE Swapping" implementiert werden.2F8h to 2FFh (A standard address for a second AT com patible serial port) - These ports are on 5F0h to 5FEh offset, the port addresses for the second serial port one preferred embodiment of the invention. The new port range (5F0 to 5FE) includes only "even" addresses. In one at playful embodiment, "byte swapping" is not in the has been implemented and therefore can only be "even" bytes one of the eight-bit SIO component can be accessed. Indeed can also implement "BYTE swapping" if necessary will.

378h bis 37Fh (Eine Standard Adresse für einen AT-kompatiblen parallelen Port) - Wird umgesetzt zu 6F0h bis 6FEh, welches die Portadressen für den parallelen Port einer beispielhaften Aus­ führungsform der Erfindung sind.378h to 37Fh (A standard address for an AT compatible  parallel port) - Is converted to 6F0h to 6FEh, which the Port addresses for the parallel port of an example off are leadership form of the invention.

3F8h bis 3FFh (Eine Standard-Adresse für einen ersten AT-kom­ patiblen seriellen Port) - Werden umgesetzt zu 7F0h bis 7FEh, die die Portadressen für den ersten seriellen Port einer bei­ spielhaften Ausführungsform der Erfindung sind.3F8h to 3FFh (a standard address for a first AT-com patible serial port) - Are implemented at 7F0h to 7FEh, which includes the port addresses for the first serial port playful embodiment of the invention.

Soweit hiermit die bevorzugten Ausführungsformen der Erfindung beschrieben sind, gibt es doch zahlreiche Abwandlungen und gleichartige Lösungen, die nicht aus dem Offenbarungsgehalt der Erfindung hinausführen. Die Erfindung ist deshalb keineswegs auf die beschriebenen Ausführungsformen beschränkt.So far the preferred embodiments of the invention there are numerous modifications and similar solutions that are not based on the revelation content of the Lead invention out. The invention is therefore in no way up the described embodiments are limited.

Claims (5)

1. Terminal für die Anzeige von Anwendungsprogramminformation von in einer Fenster-Umgebung, gekennzeichnet durch
Verarbeitungsschritte, die mit einem Personal-Computer BIOS oder Platten-Betriebssystemen (DOS = Disk Operating System) nicht voll kompatibel, jedoch für den Empfang von Fenster-Informationen angepaßt sind, welche von Programmen gelie­ fert werden, die auf einem entfernt gelegenen Anwendungs-Server ausgeführt werden, sowie
durch eine Anzeigevorrichtung für die Anzeige der Fenster-Informationen.
1. Terminal for displaying application program information in a window environment, characterized by
Processing steps that are not fully compatible with a personal computer BIOS or disk operating system (DOS = Disk Operating System), but are adapted for receiving window information supplied by programs that are on a remote application server run as well
by a display device for displaying the window information.
2. Terminal, das für eine Kommunikation mit einem aus einer Mehrzahl von Hostsystemen ausgewählten Host angepaßt ist, wobei jedes der Host-Systeme ein unterschiedliches Kommuni­ kationsprotokoll benutzt, umfassend:
eine erste Merkmalsgruppe zur Bereitstellung von Antworten auf einen ersten und einen zweiten Satz von Anweisungen, die von einem ersten Hostsystem gemäß dem Kommunikations­ protokoll geliefert werden, welches zu dem ersten Hostsy­ stem gehört, zumindest eine zweite Merkmalsgruppe zur Be­ reitstellung von Antworten auf einen dritten und einen vierten Satz von Anweisungen, die von einem zweiten Hostsy­ stem gemäß dem Kommunikationsprotokoll geliefert werden, welches zu dem zweiten Hostsystem gehört, wobei zumindest eines der Hostsysteme Fenster-Informationen bereitstellt, wobei weiterhin Prozessorvorrichtungen vorhanden sind, die auf die erste und zumindest auf die zweite Merkmalsgruppe zum Verarbeiten eines des ersten und dritten Satzes von Anweisungen und zum Emulieren eines des zweiten und vierten Satzes von Anweisungen ansprechen, zum Bereitstellen von Antworten an das zugehörige Hostsystem, die mit dem Kom­ munikationsprotokoll, das zu jenem Hostsystem gehört, kom­ patibel sind, und
Schaltvorrichtungen zur Identifizierung des Hostsystems, mit welchem das Terminal gegenwärtig verbunden ist, und zur Auswahl des geeigneten der ersten und zumindest der zweiten Merkmalsgruppe für Kommunikationen mit dem identifizierten Hostsystem.
2. A terminal adapted for communication with a host selected from a plurality of host systems, each of the host systems using a different communication protocol, comprising:
a first feature group for providing responses to a first and a second set of instructions, which are provided by a first host system according to the communication protocol belonging to the first host system, at least a second feature group for providing responses to a third and a fourth set of instructions provided by a second host system in accordance with the communication protocol associated with the second host system, at least one of the host systems providing window information, further comprising processor devices that point to the first and at least the second Feature group for processing one of the first and third set of instructions and for emulating one of the second and fourth set of instructions, for providing responses to the associated host system that are compatible with the communication protocol associated with that host system, and
Switching devices for identifying the host system to which the terminal is currently connected and for selecting the appropriate one of the first and at least the second group of features for communications with the identified host system.
3. Verfahren zum Aktualisieren von Betriebscharakteristiken eines Terminals, folgende Schritte umfassend:
Verfügbarmachen eines Flashspeichers zur Speicherung von Betriebseigenschaften,
Bereitstellen einer Kommunikationsverbindung zu einem Host für den Empfang von aktualisierten Betriebscharakteristi­ ken,
Herstellen eines ersten Betriebszustandes, während dem zu­ mindest in einen vorbestimmten Teil des Flashspeichers eingeschrieben werden kann, während die Kommunikation mit dem Host aufrechterhalten bleibt,
Herunterladen der aktualisierten Betriebscharakteristiken vom Host auf das Terminal, während sich das Terminal im ersten Betriebszustand befindet,
Einschreiben der aktualisierten Betriebscharakteristiken in den Flashspeicher, während sich das Terminal im ersten Betriebszustand befindet, und
Herstellen eines zweiten Betriebszustandes, während dem Daten nicht in den vorbestimmten Teil des Flashspeichers geschrieben werden.
3. A method of updating operational characteristics of a terminal, comprising the following steps:
Making a flash memory available for storing operating characteristics,
Providing a communication link to a host for receiving updated operational characteristics,
Establishing a first operating state during which at least a predetermined part of the flash memory can be written while the communication with the host is maintained,
Downloading the updated operating characteristics from the host to the terminal while the terminal is in the first operating state,
Writing the updated operating characteristics into the flash memory while the terminal is in the first operating state, and
Establishing a second operating state during which data is not written to the predetermined part of the flash memory.
4. Terminal zur Anzeige - in der Microsoft WINDOWS®-Betriebs­ umgebung - von Anwendungsprogramminformationen, welche von einem Hostsystem, auf welchem ein Microsoft WINDOWS®-Be­ triebssystem läuft, bereitgestellt werden, mit
einer Schnittstellenvorrichtung zum Empfang von Anzeigein­ formation vom Anwendungs-Server für ein Anwendungsprogramm, das auf dem Anwendungs-Server abläuft,
Verarbeitungsvorrichtungen, die nicht voll mit den Perso­ nalcomputer-BIOS oder Platten-Betriebssystemen kompatibel sind und zur örtlichen Durchführung des Anwendungsprogramms unfähig sind, und auf die Schnittstellenvorrichtungen an­ sprechen, entweder zum Emulieren oder zum Verarbeiten von Anweisungen, die von Programmen zugeführt werden, die auf einem entfernten Anwendungs-Server ausgeführt werden, um dem Hostsystem Antworten bereitzustellen, die mit denen kompatibel sind, die vom Hostsystem erwartet werden, und
Anzeigevorrichtungen, die auf die Verarbeitungsvorrichtun­ gen ansprechen, um die Fenster-Informationen anzuzeigen.
4. Terminal for displaying - in the Microsoft WINDOWS® operating environment - application program information provided by a host system on which a Microsoft WINDOWS® operating system is running
an interface device for receiving display information from the application server for an application program running on the application server,
Processing devices that are not fully compatible with the personal computer BIOS or disk operating systems and are incapable of executing the application program locally and are responsive to the interface devices, either for emulating or processing instructions provided by programs that run on a remote application server to provide responses to the host system that are compatible with those expected from the host system, and
Display devices responsive to the processing devices to display the window information.
5. Verfahren zum Konfigurieren eines Terminals mit einer An­ zeige für die Kommunikation mit einem Hostsystem, mit fol­ genden Verfahrensschritten:
Herstellen zumindest eines Punktraster- (bit-mapped) Be­ reichs innerhalb eines Bereichs der Anzeige,
Herstellen zumindest einer Punktraster- (bit-mapped) Gruppe innerhalb des Bereichs, und
Herstellen zumindest einer Punktraster- (bit-mapped) Aus­ wahl innerhalb der Gruppe, wobei mit jeder Auswahl eine oder mehrere Wahlmöglichkeiten einhergehen.
5. Procedure for configuring a terminal with a display for communication with a host system, with the following procedure steps:
Producing at least one bitmap area within a region of the display,
Establish at least one bit-mapped group within the area, and
Establish at least one bitmapped selection within the group, with each selection being accompanied by one or more choices.
DE19654766A 1995-12-29 1996-12-30 Terminal for displaying application information in a window environment Expired - Lifetime DE19654766B4 (en)

Applications Claiming Priority (3)

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
US08/581168 1995-12-29
DE19655235.4A DE19655235B4 (en) 1995-12-29 1996-12-30 A method of updating a terminal operating system of a terminal and displaying window information of a windowing application program

Publications (2)

Publication Number Publication Date
DE19654766A1 true DE19654766A1 (en) 1997-07-03
DE19654766B4 DE19654766B4 (en) 2004-11-18

Family

ID=33311791

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19655400A Expired - Lifetime DE19655400B4 (en) 1995-12-29 1996-12-30 Terminal for communicating with a server
DE19654766A Expired - Lifetime DE19654766B4 (en) 1995-12-29 1996-12-30 Terminal for displaying application information in a window environment

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19655400A Expired - Lifetime DE19655400B4 (en) 1995-12-29 1996-12-30 Terminal for communicating with a server

Country Status (1)

Country Link
DE (2) DE19655400B4 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19903631A1 (en) * 1999-01-29 2000-08-03 Siemens Ag System and method for pre-parameterizing components
DE10018327A1 (en) * 2000-04-13 2001-10-25 Sep Elektronik Gmbh Multiprocess data processor for control, communication applications, has configuration module for setting a standard for communicating between GUIs and monitor, keyboard
US7206829B1 (en) 1998-09-30 2007-04-17 Siemens Aktiengesellschaft Method for operating a network computer

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH083698B2 (en) * 1986-12-11 1996-01-17 ヤマハ株式会社 Image processing device
US4961133A (en) * 1987-11-06 1990-10-02 Visystems, Inc. Method for providing a virtual execution environment on a target computer using a virtual software machine
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
JPH0778782B2 (en) * 1989-07-19 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン Interactive computer system and apparatus and method for adapting use environment thereof
CA2039027C (en) * 1990-05-22 1998-07-07 Stephen Troy Eagen Method and apparatus for assisting in the presentation and removal of windows
EP0475581A3 (en) * 1990-08-30 1993-06-23 Hewlett-Packard Company Method and apparatus for window sharing between computer displays
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
US5241625A (en) * 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
AU634431B2 (en) * 1990-11-27 1993-02-18 Kabushiki Kaisha Toshiba Japanese emulator
DE69132209T2 (en) * 1991-07-24 2000-09-28 Texas Instruments Inc Display adapter
EP0525986B1 (en) * 1991-07-26 1996-11-13 Sun Microsystems, Inc. Apparatus for fast copying between frame buffers in a double buffered output display system
AU3777593A (en) * 1992-02-26 1993-09-13 Paul C. Clark System for protecting computers via intelligent tokens or smart cards
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
WO1995015524A1 (en) * 1993-12-02 1995-06-08 Taligent, Inc. Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US5831609A (en) * 1994-06-17 1998-11-03 Exodus Technologies, Inc. Method and system for dynamic translation between different graphical user interface systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206829B1 (en) 1998-09-30 2007-04-17 Siemens Aktiengesellschaft Method for operating a network computer
DE19903631A1 (en) * 1999-01-29 2000-08-03 Siemens Ag System and method for pre-parameterizing components
DE10018327A1 (en) * 2000-04-13 2001-10-25 Sep Elektronik Gmbh Multiprocess data processor for control, communication applications, has configuration module for setting a standard for communicating between GUIs and monitor, keyboard

Also Published As

Publication number Publication date
DE19655400B4 (en) 2011-03-17
DE19654766B4 (en) 2004-11-18

Similar Documents

Publication Publication Date Title
DE19655235B4 (en) A method of updating a terminal operating system of a terminal and displaying window information of a windowing application program
DE60030278T2 (en) KEYBOARD / VIDEO / MOUSE DISTRIBUTORS FOR MULTIPLE USERS
DE10047266B4 (en) Method and apparatus for booting a workstation from a server
US8079021B2 (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
DE69626474T2 (en) Method and device for setting, calling and executing application programs in a foreign environment
JPH04318618A (en) Apparatus and method for displaying and processing action bar and pull-down menu at workstation
DE112009004075T5 (en) SELECTIVELY COMMUNICATING DATA OF A PERIPHERAL DEVICE TO MULTIPLE SENDING COMPUTERS
DE112016000218T5 (en) System and method for displaying driver installation files when activating a USB device
DE19654766B4 (en) Terminal for displaying application information in a window environment
EP2000908A1 (en) Data transmission method between operating system instances running on a server and network enabled peripheral devices
DE69833817T2 (en) Emulation and emulated screen history
JPH096655A (en) System management device
EP2345966B1 (en) Displaying windowing application programs on a terminal
DE10007511A1 (en) Remote maintenance of computers particularly personal computers involves accessing PCI host system by PCI insertion card without using software resources of PCI host system
DE10085323B4 (en) Apparatus and method for dynamically visualizing the capabilities and configuring hardware devices of a computer system
DE69835496T2 (en) Programmable controller
AU750333B2 (en) Method and apparatus for display windowing application programs on a terminal
AU766791B2 (en) A method for updating operating characteristics of a terminal
US6366262B1 (en) Method and apparatus for supporting multiple NPT display sessions on a single address
WO2000017729A2 (en) Improved method and apparatus for display of windowing application programs on a terminal
CA2440825C (en) Method for display of terminal configuration menu
GB2352374A (en) Windowing application programs on a terminal
DE102006023174A1 (en) Text output representation method for computer system, involves generating graphical representation of text output, and transmitting graphical representation to refresh memory for graphic output

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8172 Supplementary division/partition in:

Ref document number: 19655235

Country of ref document: DE

Q171 Divided out to:

Ref document number: 19655235

Country of ref document: DE

8364 No opposition during term of opposition
R081 Change of applicant/patentee

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

Free format text: FORMER OWNER: WYSE TECHNOLOGY, INC., SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: HOFSTETTER, SCHURACK & PARTNER PATENT- UND REC, DE

R071 Expiry of right