Es
besteht daher nach wie vor die Aufgabe, ein preiswertes Terminal
für die
Anzeige von Anwendungsinformationen verfügbar zu machen, das zuverlässig arbeitet,
leicht zu bedienen sowie sicher ist und die Anwender-Programm-Informationen
in einer Multiuser Windows®-Betriebsumgebung anzeigen
kann. Insbesondere soll das Terminal bezüglich des benötigten Speicherplatzes
limitiert sein, aber dennoch die Anzeige von Anwendungsinformation
in einer Fensterumgebung ermöglichen.It is therefore still the task to provide an inexpensive terminal for displaying application information, which is reliable, easy to use and safe and can display the user program information in a Multiuser Windows ® operating environment. In particular, the terminal should be limited in terms of the storage space required, but should nevertheless enable the display of application information in a window environment.
Diese
Aufgabe wird gelöst
durch die Merkmale des Patentanspruchs 1. 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 Fensterumgebung kompatiblen Anwender-Software
verfügbar
wird.This
Task is solved
by the features of claim 1. The present invention
offers an elegant solution
to overcome the disadvantages of the prior art by using an inexpensive terminal
for the
Representation of the user software compatible with a window environment
available
becomes.
Insbesondere
bietet die Erfindung ein Display-Terminal, das in der Lage ist,
in einem Multiuser-System mit einem Anwendungs-Server zu kommunizieren.
Dies schafft einen sicheren Zugriff zu den Windows®-Anwendungen
am Arbeitsplatz. In einem Konfigurationsbeispiel kann ein Anwendungs-Server
in Form eines beliebigen Computers bereitgestellt werden, auf dem
das WinFrame®-Betriebssystem
läuft.
Das WinFrame®-Betriebssystem
der Citrix Systems, Inc. schließt
das Windows® NT-Betriebssystem und
zusätzliche
Erweiterungen ein, die ein als ICA-3 bekanntes Anzeigeprotokoll
sowie Multiuser-Fähigkeiten
implementieren.In particular, the invention provides a display terminal that is able to communicate with an application server in a multi-user system. This creates secure access to the Windows ® applications in the workplace. In a configuration example, an application server in the form of a be any computer on which the WinFrame ® operating system is running. Citrix Systems, Inc.'s WinFrame ® operating system includes the Windows ® NT operating system and additional enhancements that implement a display protocol known as ICA-3 and multi-user 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 erfindungsgemäß grundsätzlich nicht
dafür ausgefegt,
lokal moderne Anwendungsprogramme wie Textverarbeitungsprogramme,
Graphikprogramme oder Datenbankprogramme oder andere populäre Programme
laufen zu lassen, nicht einmal das Windows®- oder
DOS-Betriebssystem 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.The terminal builds in one embodiment, a hardware architecture with the INTEL ® x86 line on. In addition, the terminal has only a limited main memory and, according to the invention, is fundamentally not designed to run locally modern application programs such as word processing programs, graphics programs or database programs or other popular programs, not even the Windows® or DOS operating system itself. In this way, it differs a terminal according to the present invention fundamentally from the known X terminal or the diskless PCS or other PC systems that 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 Platten-Betriebssysteme
zurück.
Die Terminal-Firmware implementiert Netzwerk-Zugriffserweiterungen,
die mit dem Anwendungs-Server kompatibel sind, wiederum z.B. die
von Citrix Systems verfügbaren
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 does not use the usual IBM PC / AT bus and the firmware (the software stored in a ROM) within the terminal does not use the PC / AT BIOS standard or PC-compatible Disk operating systems back. The terminal firmware implements network access extensions that are compatible with the application server, such as the ICA-3 extensions available from Citrix Systems. Both a high-resolution screen for ease of use is provided, which provides a black-and-white image with many grayscale or color, as well as the input and output devices typical of a Windows® environment, such as a mouse, keyboard, touchscreen and other inputs and output facilities.
Zusätzlich ist
eine Netzwerkschnittstelle vorhanden, die mit dem Anwendungs-Server über konventionelle
RS232-Verbindungen, Ethernet-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, einschließ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 wesentlich teurer, weniger sicherer und schwieriger
zu handhabender Personalcomputer. Im Ergebnis bietet die vorliegende
Erfindung zahlreiche Merkmale, die normalerweise mit einem Multiuser-System
assoziiert werden, während
gleichzeitig auch viele wünschenswerte
Merkmale dargeboten werden, die für eine Client-Server-Umgebung
typisch sind.In addition, there is a network interface that communicates with the application server via conventional RS232 connections, Ethernet connections, wireless connections, ISDN, fiber optics, AC connection modems, cables or otherwise. Once the connection to the server is established, the terminal displays the Windows ® NT or Windows 95 ® environment, including any application programs that can be executed on the server and which the user can access at the terminal. In an exemplary arrangement, the terminal presents the user with essentially the same as a much more expensive, less secure, and more difficult to use personal computer. As a result, the present invention provides numerous features that are normally associated with a multi-user system, while also offering many desirable features that are typical of a client-server environment.
Vorteil
der vorliegenden Erfindung ist die Möglichkeit innerhalb 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 definieren 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.The advantage of the present invention is the possibility of working independently of the client within the Windows ® environment. In this way, a user with a system according to the present invention defines his operating environment and this environment follows him or her through the whole system. A user can therefore log in to a terminal, define an environment and then log in to 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
Erfindung über
einen Einstellmodus, welcher es dem Benutzer ermöglicht, eine Vielzahl von Betriebsarten
des Terminals zu konfigurieren.In addition to
the ability
According to the present, the terminal has to display the application program information
Invention over
a setting mode that enables the user to use a variety of modes
to configure the terminal.
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 konventionelles 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 modifiziertes WinFrame®-Clientencodes. Die Ausführung des
modifizierten WinFrame®-Clienten schließt die Herstellung
einer Verbindung zu einem Anwendungs-Server ein.In order to enable terminals according to the present invention to follow the commands sent by those servers running WinFrame ® , a special terminal operating system has been developed that either emulates or otherwise emulates a conventional PC operating system Calls answered. The terminal operating system includes a boot block to initialize and start the system, followed by a kernel that loads additional drivers and command software, including a modified WinFrame ® client code. The execution of the modified WinFrame ® client includes 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-Emulationen
oder Kenndaten eingeschlossen sind, mit der Möglichkeit, durch einfachen
Knopfdruck zwischen den verschiedenen Kenndaten hin- und herzuschalten.In addition to the ability to display application information in a Microsoft Windows® environment, the present invention also provides the ability to communicate with other servers or hosts running non- Windows® operating systems by other resident terminal Emulations or characteristic data are included, with the possibility to switch back and forth between the different characteristic data by simply pressing a button.
Eine
weitere Ausbildung 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-Kennzeichen
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öglichkeiten.A further development of the present invention consists in the implementation of a graphical user interface for the configuration of a terminal and other tasks to be solved locally. In particular, the graphical interface provides a large number of windows and each window enables one reconfiguration of one or more terminal labels or other local tasks. In each window, the selection options are arranged in groups that can be configured in this window. This selection or these selection options, which the user can make use of, are displayed or can be indicated by a so-called “pull-down” or a similar menu. Different data structures belong to different types of groups or choices.
Eine
andere Ausbildung 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.A
Another embodiment of the present invention is the inclusion of the terminal operating system in
a short-term memory, a "flash memory". This flash memory can be on
updated in several ways, including one
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-Betriebssystem-Umgebung
erzeugt wurde.It is therefore an advantage of the present invention to make a terminal available. that can represent information generated by an application server by executing a popular application program in the Microsoft Windows ® NT operating system environment.
Weiterhin
gehört
dazu, ein Terminal-Konfigurationssystem mit einer graphischen Benutzerschnittstelle für die Konfiguration
der Terminal-Betriebsparameter zu schaffen.Farther
heard
a terminal configuration system with a graphical user interface for configuration
to create the terminal operating parameters.
Außerdem gehört dazu,
ein Terminal für
die Darstellung von Anwendungsprogramm-Information vorzusehen, welches einen
Clienten-Personalcomputer in einer Client-Server-Netzwerk-Umgebung emuliert.It also includes
a terminal for
to provide the representation of application program information which one
Client personal computers emulated in a client-server network environment.
Ferner
wird ein Terminal verfügbar,
welches wünschenswerte
Merkmale, die normalerweise mit einer Multiuser-Computer-Umgebung
einhergehen, mit den wünschenswerten
Merkmalen kombiniert, die normalerweise mit einer Client-Server-Umgebung
einhergehen.Further
a terminal becomes available
which is desirable
Features typically found in a multiuser computer environment
go along with the desirable
Characteristics that are normally combined with a client-server environment
accompanied.
Es
gehört
zur Erfindung, über
ein Terminal-Betriebssystem zu verfügen, welches Kommunikationen mit
einer Fenster-Betriebssystem-Umgebung ermöglicht, während gleichzeitig ein vom
PC/AT BIOS und PC DOS abweichender Standard benutzt wird.It
heard
to the invention, about
to have a terminal operating system that communicates with
a window operating system environment, while at the same time
PC / AT BIOS and PC DOS different standard is used.
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
ausgetauscht werden oder das Terminal vom Stromnetz genommen werden
muß.After all, should
several resident characteristics for
a terminal available
by quickly switching between the different ones
Specifications 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 Zeichnungen.Further
Details, features and advantages of the present invention will be apparent
itself from the following description of the drawings.
Es
zeigen:It
demonstrate:
1 eine schematische Darstellung
einer allgemeinen Anordnung eines Anwendungs-Servers und eines Terminals
gemäß vorliegender
Erfindung, 1 1 shows a schematic representation of a general arrangement of an application server and a terminal according to the present invention,
2 ein Blockschaltbild einer
Architektur des neuen Systems, 2 a block diagram of an architecture of the new system,
3 ein Blockschaltbild des
Aufbaus des Steuer ASIC in 2, 3 a block diagram of the structure of the control ASIC in 2 .
4 ein Flußdiagramm
zum Ablauf der Schritte in einem Terminal, 4 a flowchart for the sequence of steps in a terminal,
5 ein vereinfachtes Blockschaltbild
der Setup-Schnittstelle zwischen einer GUI-Maschine und dem Rest des Systems, 5 a simplified block diagram of the setup interface between a GUI machine and the rest of the system,
6 ein Blockschaltbild des
Ablaufs eines Verbindungsaufbaus zwischen Terminal und Anwendungs-Server, 6 a block diagram of the process of establishing a connection between the terminal and the application server,
7A einen Bildschirmaufbau
gemäß vorliegender
Erfindung und 7A a screen structure according to the present invention and
7B1–7B3 Datenstrukturen. 7B1 - 7B3 Data structures.
In 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 Kommunikationsleitung 14 in
Verbindung. Diese Kommunikationsleitung kann aus einer RS232-Leitung, einem Wechselstromleitungsmodem
oder einer Ethernetverbindung, beispielsweise einem verdrillten
Leitungspaar oder einem Koaxkabel oder einer anderen geeigneten
Verbindung, bestehen, beispielsweise einer Glasfaseroptik. In einer
im Probebetrieb zufriedenstellenden, hier beispielhaft erwähnten Anordnung
wird der Anwendungs-Server mit dem WINDOWS® NT-Betriebssystem
mit geeigneten Erweiterungen, z.B. dem von CITRIX angebotenen Winframe® OS,
betrieben. Das CITRIX Fern-WINDOWS-Protokoll oder Erweiterungen
schließen
sowohl das ICA 3.0-Protokoll als auch Verbesserungen ein, welche
für eine
echte Multiuser-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 Prozessoren in Verbindung mit einer geeigneten
RAM-Kapazität,
basierenden 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 Benutzer, und zwar in Abhängigkeit
davon, welche Anwendung für
den einzelnen Benutzer abläuft.In 1 shows a simplified system according to the principle of the present invention. A single application server 10 is bidirectional with one or more terminals 12 about a suitable network or another communication line 14 in connection. 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. The application server is operated with the WINDOWS ® NT operating system with suitable extensions, for example the Winframe ® OS offered by CITRIX, in a satisfactory arrangement, which is mentioned here by way of example in test operation. The CITRIX remote WINDOWS protocol or extensions include both the ICA 3.0 protocol and improvements that ensure true multi-user capability within the WINDOWS ® NT environment. Such a configuration can affect the application server 10 around one 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 RAM capacity to act on an Intel Pentium ® based personal computer. In one embodiment, the server 10 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 Personalcomputern 20 oder auch einem Internet Gateway 22. Über andere
Verbindungen, 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 embodiments, the application server 10 also communicate with other servers, such as a NetWare file server 16 , a UNIX ® host 18 , other personal computers 20 or an Internet gateway 22 , Via other connections, such as a router or other communication servers 24 can the application server 10 also with computers working behind it 26 communicate or through other devices with other remote dialable users 28 ,
Nähere Einzelheiten
der Hardware-Architektur eines Terminals ergeben sich aus 2. Eine CPU 100,
typischerweise ein Prozessor 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 Schaltungen über einen
Adressbus 105, einen Datenbus 106 und einen CTRL-Bus 108.
Es ist wichtig, daß diese
Bus-Verbindungen
typischerweise weder mit dem IBM PC/AT-Standard noch mit einem anderen
PC-Standard kompatibel sind, da mit der Erfindung beabsichtigt 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 result from 2 , A CPU 100 , typically an X86 family processor or, as in one embodiment, an 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 either the IBM PC / AT standard or any other PC standard, as the invention is intended to avoid many, if not all, of the shortcomings that otherwise exist in personal computers occur when you work in a network environment.
Insbesondere
verläuft
der Adressbus 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 Steuerungs-ASIC 110, dem VGA-Kontroller 114 sowie einer
Speicheranordnung 116. Der CTRL-Bus 108 legt in ähnlicher
Weise Steuersignale an den ASIC 110 und den VGA-Kontroller 114 an.
Verschiedene logische Schaltungen 118 legen CONFIG, IDCS
und DIAGCS an den ASIC 110 an.In particular, the address bus runs 105 from the CPU 100 both to a control ASIC 110 (user-specific IC 110 ) as well as a flash memory area 112 and a VGA controller 114 , The data bus 106 also communicates with the control ASIC 110 , the VGA controller 114 and a storage arrangement 116 , The CTRL bus 108 similarly applies control signals to the ASIC 110 and the VGA controller 114 on. Different logic circuits 118 put CONFIG, IDCS and DIAGCS at the ASIC 110 on.
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 Kommunikation 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 array 116 via a DMA bus 120 and also with the flash memory 112 via a PD bus 122 , The PD bus 122 also ensures 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 sends 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 a KBCS signal to the keyboard / mouse controller 126 and applies a NETCS signal to the LAN controller 128 , Finally, the ASIC 110 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 the SIO controller 124 Hardware interrupts INTA, INTB, INTP and the KB / MS controller 126 Hardware interrupts KBINT and MSINT are available and the LAN controller 128 a hardware interrupt NINT.
Der
Speicherbereich 116 besteht typischerweise aus einem DRAM-Speicher,
obwohl andere Speicherarten in abgewandelten Ausführungsformen
gleichfalls eingesetzt werden können.
Jedoch liegt die Größe des DRAM
im Bereich 116, der für
den Betrieb des Terminals erforderlich ist, im Unterschied zum modernen Personalcomputer
typischerweise im Bereich von 512 Kilobyte bis vier Megabyte. In
einer beispielhaften Ausführungsform
werden nur 23 Adressleitungen 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 storage area 116 typically consists of a DRAM memory, although other types of memory can also be used in modified embodiments. However, the size of the DRAM is in the range 116 , which is required for the operation of the terminal, in contrast to the modern personal computer, 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 Funktionsblö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 implementiert
sein, was näher
im Detail in Verbindung mit 3 nachstehend
beschrieben werden wird.The control ASIC 110 In one embodiment, 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 can also be implemented as a gate array or other highly integrated circuit, which is discussed in more detail below 3 will be described below.
In
einem Anwendungsbeispiel hat es sich als ausreichend erwiesen, 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 bevorzugten 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, the flash memory has proven to be sufficient 112 hold in the order of 512 kilobytes; however, other applications could require sizes up to five megabytes or more. In the preferred embodiment, though, is the range 112 Shown as flash memory, in other exemplary 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 Druker-
(oder Parallel-) Ports 132, 134 bzw. 136.
Der SIO/Parallel-Kontroller 124 kann ein handelsüblicher
16552-Baustein sein, so wie er von der Firma Startech angeboten
wird. Der Tastatur/Maus-Kontroller 126 kommuniziert in ähnlicher
Weise mit einer Tastatur 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-Kontroller, 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-Standard entsprechen, einschließlich 10BaseT, 10Base2 oder
anderes. Die Netzwerkschnittstelle kann einen 512 Kilobyte-Speicher
oder einen größeren für eine zusätzliche
Codespeicherung aufweisen.The SIO controller 124 communicates with COM1, COM2 and Druker (or parallel) ports 132 . 134 respectively. 136 , The SIO / parallel controller 124 can be a commercially available 16552 module, such as that offered by the Startech company. The keyboard / mouse controller 126 communicates in a similar way with a keyboard 138 and a mouse 140 , while the LAN controller, which is not required in all embodiments, with a LAN interface 142 communicated. The keyboard / mouse controller was a prototype 126 from a standard keyboard controller, while the keyboard and mouse conform to the PS / 2 standard, although at least in some embodiments, the keyboard controller may be modified to be compatible with a four-wire keyboard interface, such as them 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 512 kilobytes of 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
beispielsweise 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 ermö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 Stromeinspeisung für den Monitor
bereitgestellt werden, welches das Videosignal abschaltet und den
Stromverbrauch, der für
den Betrieb des Monitors notwendig ist, absenkt. In einer Farbversion
kann das Synchronisationssignal in Übereinstimmung mit dem VESA-Standard
manipuliert werden, um den Monitor leistungsmäßig herunterzuschalten. Es
wird für
den Fachmann deut lich, daß viele
Funktionen, einschließlich
der CPU, in einem oder mehreren integrierten VLSI-Bauteilen, wie
einem ASIC, Gate-Arrays oder anderen Bauteilen, zusammengefaßt werden
können.The video and graphics controller 114 is functional with a second memory area 144 connected to store video and graphic information sent to a monitor 146 via an MPS 148 be directed. The video controller 114 can be, for example, a Cirrus 5429 chip with internal RAMDAC and can have a video memory in the order of one megabyte to enable high-resolution graphics representations, which at least correspond to the video graphics array standard. It will be clear 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 in order to run WINDOWS ® application programs. A silence signal 150 can from the ASIC 110 to be provided. Various methods of implementing a sleep signal can be used. For example, in a black and white version of the present invention, a signal can be provided to the power supply for the monitor, which signal shuts 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 devices, such as an ASIC, gate arrays, or other devices.
Es
ist ein besonderes Merkmal der Hardware gemäß der vorliegenden Erfindung,
daß das
Terminal-Betriebssystem, welches in dem Flash-Speicher 112 abgelegt
ist, durch eine Vielzahl von Methoden aktualisiert werden kann,
einschließlich
der Kommunikation über
eine geeignete Schnittstelle, wie die Parallel-Schnittstelle 136 oder
den seriellen Schnittstellen 132 oder 134 oder
einen Netzwerkadapter, wie die LAN-Schnittstelle 142. Es ist auch
möglich,
dass der Flash-Speicher durch eine Kommunikation mit dem Host-System
aktualisiert wird, 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 Mitteln.It is a special feature of the hardware according to the present invention that the terminal operating system, which is in the flash memory 112 filed, can be updated through a variety of methods, including communication through an appropriate interface, such as the parallel interface 136 or the serial interfaces 132 or 134 or a network adapter, such as the LAN interface 142 , It is also possible for the flash memory to be updated by communication with the host system when the terminal is in a predetermined state, such as by inserting a feedback loop connector, a suitable key sequence or other suitable means.
Unter
normalen Umständen
startet ein System gemäß 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 Adressen werden verschoben, um dem Speicherbereich
0 DRAM zu ermöglichen,
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 starts up according to 2 operation after a reset by starting the execution of the boot code in the flash memory area 112 is filed. The flash memory area 112 can 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 the normal PC functions resulting from Table 1 provide. 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 one frame buffer A0000h-AFFFFh (in graphics mode) or with B0000h-B7FFFh (for MGA mode) or with B8000h-B8FFFh (for CGA mode) and that these addresses are shifted to 8A0000h-8AFFFFh etc. The addresses are shifted, to allow the memory area 0 DRAM to stay connected, while at the same time (and as will be explained in greater detail below) an emulation of normal PC functions is made possible that sufficient to provide a WINDOWS ® application program might represent information.
Tabelle
1 Table 1
Speicherbereich
0 kann in einen 16 Kilobyte Boot Block im oberen Adressenbereich,
beispielsweise bei FFC000H-FFFFFFH, angeordnet sein, gefolgt von
zwei 8 Kilobyte Parameter-Blocks und weiter 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 System (Dateisystem)
eingerichtet. Der Speicherbereich 1 des Flash-Speichers
ist typischerweise einer File-System-Einrichtung zugeordnet 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 storage 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 3 der
ASIC 110 näher
erlä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 Zeitsteuerschaltung 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 Zeitgebersteuerschaltung 166 empfängt und
erzeugt ein INTR-Ausgangssignal, welches an die CPU angelegt wird.
Der CPU-Steuerungseingangspuffer 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 Zeitgebersteuerungsschaltung 166; die Zeitgebersteuerungsschaltung 166 erzeugt
außerdem
das Freigabesignal SPEN für
den Lautsprecher.The following is based on 3 the ASIC 110 explained in more detail. A clock buffer 160 receives a CLK50 signal and applies clock signals to the logical RESET SYNC circuit 162 to the DRAM logic 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 have a control signal from the CPU control input buffer 172 and a timer control signal from the logic timer control circuit 166 receives and generates an INTR output signal which is applied to the CPU. The CPU control input buffer 172 also applies a control signal to the logic cycle control circuit 174 which in turn sends a control signal to the DRAM controller 164 invests. The DRAM control circuit 164 receives an update signal from the timer control circuit 166 ; the timer control circuit 166 also generates the SPEN enable signal for the speaker.
In
einer bevorzugten Ausführungsform
ist die logische Interrupt-Steuerschaltung 170 nicht mit
dem Baustein 8259 kompatibel; gleichermaßen ist
der Systemzeitgeber oder die Zeitgebersteuerungsschaltung 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 Zeitgebersteuerungsschaltung 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 niedriger (Standard)-Frequenz emulierten Interrupts
nicht gleichförmig
sein kann.In a preferred embodiment, the logic interrupt control circuit is 170 not with the block 8259 compatible; equally is the system timer or the timer control circuit 166 not with the block 8254 compatible and works at a higher frequency than an 8254-compatible device. As a result, some of the Inter sent by the logic timer control circuit Higher frequency interrupts are masked in the kernel, but others are passed to approximate the normal time between interrupts on average. The higher frequency thus enables standard PC functionality 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-Adress-Eingangspuffer 176, welcher BEO, BE1
und A1-A23-Signale empfängt
und legt ein Ausgangssignal an einen DRAM-Speicher-Adressen-Multiplexer "Mux 178" und zugleich an
eine logische Mem/IO-Chip-Auswahl-Steuerschaltung 180.
Die logische Mem/IO-Chip-Auswahl-Steuerschaltung 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 Ausgangssignale 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 BEO, 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 logical Mem / IO chip selection control circuit 180 produces a variety of output signals including FLASHCSO (FCSO) and FLASHCS1 (FCS1) signals, and others that result from the drawing. The ASIC also receives 110 DO-15 signals from the data bus 106 and puts them on the CPU data input buffer 182 on. The buffer 182 places data in a Bdata output buffer and buffer 184 which produces an output signal BDO-15. The 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-Eingangspuffer 188 anlegen, der
seinerseits diese Daten an den CPU-Datenausgangspuffer 190 leitet.
Die logische Interrupt-Steuerschaltung 170 legt auch Signale
an den Puffer 190 an. Ein Konfigurationsregister 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 BDO-15 signals can also send data to the Bdata input buffer 188 create the data in turn to the CPU data output buffer 190 passes. The logic interrupt control circuit 170 also sends signals to the buffer 190 on. A configuration register 192 provides a configuration signal (e.g. 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 sent to the CPU data output buffer is created, the data on the bus 106 to the CPU.
Unter
Bezugnahme auf 4 können die
Schlüsselelemente
des Terminal-Betriebssystems
besser verstanden werden. Aus dem Vorhergehenden geht hervor, daß die Hardware
gemäß der vorliegenden
Erfindung mit einer üblichen
Standard AT-Bus-Auslegung
nicht kompatibel ist. Stattdessen stützt sich die vorliegende Erfindung
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-Komponenten, 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 Speichermanagementmerkmale 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.With reference to 4 the key elements of the terminal operating system can be better understood. From the foregoing it can be seen that the hardware according to the present invention is not compatible with a standard AT bus 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, such as 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 one megabyte of hardware.
Gemäß 4 beginnt das Terminal-Betriebssystem
mit der Abarbeitung eines Boot Blocks 300, gefolgt vom
Laden eines Kernels 305. Der Kernel 305 besorgt
viele der Abfang- und Wiedereinteilungsfunktionen 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-Treiber. 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ührungsbeispiel
ist ein Rückführungsschleifenstecker
in einem Kommunikationsport eingesteckt, der bewirkt, daß die Selbsttestsequenz
abläuft.According to 4 the terminal operating system starts processing a boot block 300 followed by loading a kernel 305 , The kernel 305 provides many of the interception and redistribution functions of the present invention, as discussed in more detail below. After the kernel ends 305 becomes the IO.SYS code 310 loaded. Next is the COMMAND.COM code 315 loaded, 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 expires when appropriate conditions exist. In a preferred embodiment, a feedback loop connector is plugged into a communication port that 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ührungsbeispiel
tritt das System in einen Setup-Modus ein, um aktuelle Konfigurationsdaten
zu erhalten, und setzt mit dem Laden des Netzwerk-Verbindungscodes
fort.The 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 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 Netzwerk-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 Standard-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, EXEC.COM branches 325 off to the SETUP or GUI 330 to expire. If the setup mode has not been activated, EXEC.COM takes effect 325 with that network driver at 335 be loaded and unloaded, 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 significantly modified version of the WinFrame for DOS clients, whose Standard version is available from Citrix Systems, Inc.
Unter
Bezugnahme auf 5 läßt sich
die Zusammenarbeit des Terminal-Betriebssystems
und der Hardware-Architektur besser verstehen. Die in 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.With reference to 5 the cooperation of the terminal operating system and the hardware architecture can be better understood. In the 5 The bottom layer shown is the input / output system and the hardware layer 400 , The next higher layer is the driver layer 402 while the top layer is the application layer 404 is.
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-Speichersystem 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 4 beschrieben
wurde, einschließlich
des Rests im Boot Block 300, einer AUTOEXEC-Sequenz 408 und
der COMMAND.COM-Sequenz, wie sie zuvor mit 315 bezeichnet
wurde. Beides, die AUTOEXEC- und die COMMAND.COM-Datei, sind im Flash-Speicher
abgelegt.When you turn on the power-up and init tests 406 in the hardware layer as part of the boot block 300 executed. The power-up and init tests 406 are partially from the flash memory system 112 out and partly from RAM 116 executed from. When the power-on self-tests are finished, the terminal continues with the boot sequence generally related to above 4 including the rest in the boot block 300 , an AUTOEXEC sequence 408 and the COMMAND.COM sequence as previously mentioned 315 was designated. 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 verzweigen.
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 Tastaturtreiber 422, einem Maustreiber 424 und
den Dateien- und Speichertreiber 426 des Terminal-Betriebssystems.
Zusätzlich
kommuniziert die GUI-Maschine 420 gleichfalls mit dem Videoeingangs-
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ährend
der Setup-Sequenz zu erzeugen. Die Setup-Sequenz wird detaillierter
unter Bezugnahme auf 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 is loaded. As noted above, the EXEC.COM sequence 325 either in a setup module 330 or in a network connection module 340 branch. During the initial installation or at any time afterwards, when the operating parameters of the terminal require a variation or change, the setup module is left 330 expire. The setup module 330 receives information from one or more setup data files 418 and sets the GUI machine 420 in progress. The GUI machine 420 in turn communicates with a keyboard driver 422 , a mouse driver 424 and the file and storage driver 426 of the terminal operating system. The GUI machine also communicates 420 also with the video input and output system 428 which in turn sends data to the video controller 430 creates, for example, on a cirrus 5429 Graphics processor can be based to generate a video display during the setup sequence. The setup sequence will be described in more detail with reference to FIG 5 described.
Der
Tastaturtreiber 422 seinerseits kommuniziert mit der Tastatur-Kontroller-Hardware 432,
welche beispielsweise ein konventionelles PS/2-Tastatur Ein/Ausgabesystem,
eine universelle serielle 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 typischerweise 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-Betriebssystems 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 previously mentioned US Pat. No. 4,706,068. The mouse driver communicates in the same way 424 typically also at suitable times with a mouse input and output system 434 , During all of these operations, the flash file and the memory service parts 426 of the terminal operating system typically led out of the flash and RAM memory.
Wie
deutlicher in Verbindung mit 5 ausgeführt, ermöglicht es
der Setup-Ablauf dem Benutzer, die Konfigurationsinformation auf
dem Terminal zu spezifizieren, einschließlich solcher Parameter, wie
die Netzwerk-Schnittstelle und verwandte Konfigurationsdetails,
die Sprache, Farbe oder andere Parameter. Wenn diese Parameter einmal
spezifiziert sind, werden die Daten in den Verbindungsdatendateien 440 abgelegt.How more clearly in connection with 5 , the setup flow allows the user to specify the configuration information on the terminal, including such parameters as the network interface and related configuration details, language, color, or other parameters. Once these parameters are specified, the data in the connection data files 440 stored.
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 Befehlsleitung
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 Tastaturtreiber 422,
dem Maustreiber 424, dem Video Ein/Ausgangssystem 428 und dem
File und Speicher-Dienst-Teil 426 des Terminal-Betriebssystems.
Zusätzlich
verbindet das Netzwerk-Verbindungsmodul 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 ausgefü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 Universal Serial Bus oder USB.At this point the user is ready, the terminal setup module 414 to leave and return to EXEC.COM. If it is allowed to continue, the EXEC.COM process can 412 are caused to branch off into the network connection module, 416 , The network connection module 340 starts by retrieving the 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 serial interface implemented in hardware 442 and in some versions also a hardware network interface 444 , The network drivers 444 are in one embodiment from RAM 116 executed out, but can also from the flash memory 112 run out. The serial interface 442 can be a conventional RS232 interface, but also another form of serial connection, such as the Universal Serial Bus or USB.
Anhand
der 6 wird die Arbeitsweise
der GUI-Maschine 420, wie sie in 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.Based on 6 becomes the way the GUI machine works 420 as in 5 is shown and how it is during the setup module of the terminal 12 expires, described in more detail. 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 5 erwähnt
wurde, beginnt die Operation gemäß 6, wenn die Setup-Sequenz
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 seinerseits Informationen von der
Setup-Data-Datei 418 bezieht. Die Setup-Data-Datei 418 identifiziert
die ver schiedenen Konfigurationsoptionen, 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 geschrieben
werden. Die GUI-Maschine 420 kommuniziert außerdem bidirektional
mit der RAM-Struktur, um aktuelle Informationen in einer nachstehend
näher als
Bereiche, Gruppen und Auswahlen beschriebenen 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 empfangen werden,
reagiert.As already in connection with the description of 5 the operation begins according to 6 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 by calling up the setup code 502 which in turn contains information from the setup data file 418 refers. 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 from the connection data file 440 into the RAM structure 504 to be written. The GUI machine 420 also communicates bidirectionally with the RAM structure to set and display current information in an arrangement described in more detail below as areas, groups, and selections. It also provides a hardware interface 506 Video information to the video controller 430 ready while pointing at the information provided by the user using the mouse 260 or the keyboard 250 received, responded.
Der
Setup-Code erlaubt es dem Benutzer, eine Mehrzahl von Konfigurationsmenüs für die Bedienungscharakteristiken
des Terminals zu durchlaufen, wie z.B. die auf dem Terminal anzuzeigende
Sprache, die Art der Netzwerkverbindung usw. 7A zeigt eine Darstellung eines Setup-Bildschirms,
wie er im Konfigurationsmodus des Terminals benutzt wird. Die Setup-Bildschirme
können
graphisch dargestellt werden. 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
gewisse Daten auch dynamisch aktualisiert werden, während andere
Daten bis zu 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 5 gezeigt ist.The setup code allows the user to go through a variety of configuration menus for the operating characteristics of the terminal, such as the language to be displayed on the terminal, the type of network connection, etc. 7A shows a representation of a setup screen as it is used in the configuration mode of the terminal. The setup screens can be displayed 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 in the RAM structure 504 retained before going into the connection data files 436 to be written. However, certain data can also be updated dynamically, while other data are not updated until the setup sequence has ended. After completion of the setup sequence including the writing of any remaining configuration data into the connection data files 436 the setup sequence ends and returns to EXEC.COM 325 to initiate the network connection module 340 back who in 5 is shown.
Wieder
zurück
zur 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
Gruppen 610, und jede Gruppe 610 weist eine oder
mehrere Auswahlen 620 auf. So umfaßt im Beispiel von 7A die "Kommunikations"-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 to the 7A ; there the whole window in which the files appear appears here as an area 600 designated. Within each area 600 are one or more groups 610 , and every group 610 assigns one or more selections 620 on. In the example of 7A The "Communications" group has the choices of Serial Port, TCP / IP, SPX and IPX, each with a region 630 which indicates that this selection has been made or selected.
Mit
Bezug auf die 7B1–7B3 werden die mit der Konfigurations-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 Gruppen, 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.With respect to the 7B1 - 7B3 the data structures associated with the configuration software are displayed. In particular, a list of area pointers is in the AREA_LIST 700 found. The structures pointed to by AREA_LIST include boundaries, size, titles and groups as allocated for all areas as defined in the setup process. As noted earlier, each area appears as a window on the screen. In addition, all areas that are currently displayed are in the DISP_AREA_LIST 702 displayed.
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 ebenso vorgesehen werden, und eine FILE_LIST 708 wird
als ein Verzeichnis für "bitmap"-Bilder bereitgestellt,
welche in vielen Zuständen
in den verschiedenen Bereichen, Gruppen und Auswahlen benutzt werden
können.With 704 is the data structure for GROUP_LIST, which lists all groups that were defined in the SETUP process in all areas that are in AREA_LIST 700 were found. As previously mentioned, each area contains one or more groups. An optional data structure 706 a STRING_LIST can also be provided, and a FILE_LIST 708 is provided as a directory for "bitmap" images, which 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 Bildschirmes
anzugeben (in einer bevorzugten Ausführungsform der Erfindung).
Die Bereichstruktur 715 schließt ferner einen ROWS Eintrag 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 spezifizieren 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 spezifiziert.The structure of the AREA_LIST results from 710 , It closes 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 on. The structure pointer 718 that ID to each area 712 heard, points to an area structure 715 which the area ID 712 together with an ABS_X entry 720 and an ABS_Y entry 722 includes to indicate the position of this area with respect to the top left corner of the screen (in a preferred embodiment of the invention). The area structure 715 also closes 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 in question, during a MAX_STR_LEN entry 734 specified 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 spezifiziert den "Cancel"-Knopf, der aktiviert
wird, wenn die "ESC"-Taste gedrückt wird.
Schließlich
ist eine Liste von Zeigern bei 744A–744N spezifiziert,
einer für
jede Gruppe, die zu dem Bereich gehört. Jeder Grupenzeiger 744 zeigt
zu einem zugehörigen
Gruppen-Strukturblock 764, wie nachste hend ausgeführt. Eine "Hot Key"-Liste kann ebenfalls
für den
Bereich definiert werden.The area structure also contains 715 An entry 736 for the number of groups within a certain range. An AREA_MPTR entry 738 specifies the "hot spot" of the mouse pointer inside half of the range 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 at 744A - 744N specified, one for each group belonging to the area. Every group pointer 744 points to an associated group structure block 764 as detailed below. A "hot key" list can also be defined for the area.
Die
bei 748 gezeigte Struktur von DISP_AREA_LIST ist im wesentlichen
mit der Struktur von AREA_LIST 700 identisch und enthält Blöcke für den Bereich
ID, den nächsten
Bereich, den vorhergehenden 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 aufweisen.The at 748 structure of DISP_AREA_LIST shown is essentially the same as the structure of AREA_LIST 700 identical and contains blocks for the area ID, the next area, the previous area and structure pointer. As with AREA_LIST 700 also shows the DISP_AREA_LIST 748 on the area structure 715 , A similar structure is for the GROUP_LIST 704 at 750 shown and it contains 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 used for the optional STRING_LIST 706 can be provided and it can be a string ID 760 , a pointer to the next string 762 , a pointer to the previous string 764 and a string structure pointer 766 exhibit.
Es
wird noch einmal auf den Gruppen-Strukturzeiger 758 zurückgekommen.
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 is again on the group structure pointer 758 returned. This points to the group structure block 746 and contains the group ID 752 , a PARENT_SELECT_ID entry 780 to identify the selection that, when activated, automatically rolls up this group, a HOTSPOT_COUNT entry 782 to identify the number of mouse "hot spots" within the group and also GSTART_X 784 and GSTARTY 786 Entries to determine the relative position 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, such as 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"-Kombinationen, die
der Gruppe zugeordnet sind, spezifiziert werden.The group structure block 746 also includes ROWS and COLUMNS entries 788 respectively. 790 to set the size of the group, as well as a GFLAGS entry 792 to set the outline of the group. In addition, a QUICK_KEY_POSITION entry 794 and a QUICK_KEY_STROKES entry 796 for "hot key" combinations assigned to the group.
Weiterhin
und ähnlich
wie für
die Bereichsstruktur, können
Einträ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 zumindest in einigen Zuständen die Ausführung. Schließlich zeigt
eine Liste von Zeiger-Einträgen 808A bis 808N jeweils
auf eine ausgewä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 be provided. There is also a NUM_OF_SELECTS entry 804 to identify the number of selections included in a group. Next is an entry 806 for AID_ATTACH as a back reference to the area ID 712 to which the special group belongs. The AID_ATTACH entry 806 is not required in all cases, but at least in some conditions improves execution. Finally shows a list of pointer entries 808A to 808N each on a selected structure associated with the particular group. As discussed 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 shows 808A to a SELECT_COMMON structure block 810 , Coming back to the area structure block 715 show the standard button entry 740 and the "CANCEL" button entry 742 also on 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 Gruppen ID ergibt,
einen REL_X und REL_Y Eintrag 816 bzw. 818 zusammen
mit ROWS und COLS Einträgen 820 bzw. 822,
um die Lage und die Größe der Auswahl
zu spezifieren, einen QUICK_KEY_POS und einen QUICK_KEY_CHR Eintrag 824 bzw. 826,
um die "Hot Key"-Kombinationen 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 respectively. 818 together with ROWS and COLS entries 820 respectively. 822 to specify the location and size of the selection, a QUICK_KEY_POS and a QUICK_KEY_CHR entry 824 respectively. 826 to specify the "hot key" combinations that belong to the selection, a MAX_STR_LEN entry 828 and a selection string 830 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 verfügbar und insoweit wird auf 7A Bezug genommen. Die verschiedenen
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
Knopfes (Knöpfe 640);
in anderen Beispielen besteht die Auswahl in der Aktivierung und
Deaktivierung eines Merkmals, wie eines Prüfblocks (siehe 650 in 7A); in anderen Beispielen
muß eine
von verschiedenen Auswahlen getroffen werden, wie es mit den Gruppen "Communication" 660 und "Serial Port" 670 in 7A dargestellt ist. Gemäß weiteren
Beispielen kann ein Bild ausgewählt
werden, während
bei anderen spezieller Text ausgewählt werden muß. In einigen
Beispielen müssen
Felder ausgefüllt
werden (680 in 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 gegebenen technischen Lehre leicht
ebenfalls implementiert werden.In addition, there is also a SELECT_TYPE entry 834 provided. As previously explained, various types of selections are available and so far is based on 7A Referred. The different types of selections available within a group depend on the type of data required for this step of configuring the terminal. In some examples, the selection consists only of pressing a button (buttons 640 ); in other examples, the selection consists in the activation and deactivation of a feature, such as a test block (see 650 in 7A ); in other examples one of different selections has to be made, as with the groups "Communication" 660 and "serial port" 670 in 7A is shown. According to further examples, an image can be selected, while for other special text must be selected. In some examples, fields are required ( 680 in 7A ), while in others one of several fields has to be filled in. 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 in", cursor start and cursor end are entries 836 or 838, together with a "First Displayed" entry 840 to identify from which character the string should be displayed. Additionally there is both a LABEL_REL_X entry 842 as well as a LABEL_REL_Y entry 844 and a LABEL_STR entry 846 intended.
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.For a selection type "one of many" are entries from NUM_OF_SEL_ROWS 848 and NUM_OF_SEL_COLS 850 intended. Entries are also for the number of options 852 and the "default" option 854 provided, 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 werden.For an "image" type of selection, only one entry for the file ID 708 and an image pointer are necessary 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 Elternauswahl
aktiviert ist und eine aus einer Gruppe von Feldern ausgewählt ist.There is a "Child-Group" ID entry for a "Field" type of selection 864 together with a child group pointer, which points to a group structure of the type shown in the group structure block 746 is shown. 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" - (= "List of strings") selection are 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, one entry 874 for the vertical display offset, together with an X-label position 878 and a Y-label position 880 intended. After all, is a label string 882 and an entry 884 intended 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-AuswahlTyp 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
Positionen für
den Maus-Darstellungspunkt
("Hot Spot"), und zwar zusammen
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 beschriebenen Darstellungspunkten sind zusätzliche
Darstellungspunkte am Anfang und am Ende jeder Anzeigenliste bereitgestellt,
um ein Rollen zu ermöglichen,
und ähnliches
befindet sich in der Titelleistenbereich eines Bereichs, damit das
Bereichsfenster bewegt werden kann.Again on the AREA_MPTR entry 738 Coming back, the mouse pointer "hot spot" is specified by a structure that has an area ID entry 900 , a group ID entry 902 and a selection ID 904 includes. There is also an option selection type 906 provided that specifies the type of selection with which a particular "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 912A-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 flag that causes the mouse viewpoint 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 is located in an area's title bar area so that the area window can be moved.
Zusätzlich zu
den vorgenannten Strukturen wird auch eine Datenstruktur bereitgestellt,
um die aktuell ausgewählten
Einträge
aus den verschiedenen Auswahlmöglichkeiten
beizubehalten. Der aktuelle Daten-Struktur-Block ist bei 950 dargestellt
und enthält
einen Eintrag 952 für
die Anzahl von Bereichen, die momentan 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 Auswahlen. In
einer beispielhaften Ausführungsform
ist die Maximalanzahl von Auswahlen in Zehnerblöcken zugeordnet.In addition to the aforementioned structures, a data structure is also provided to keep the currently selected entries from the various selection options. The current data structure block is at 950 shown and contains an entry 952 for the number of areas currently defined by SETUP; An entry 954 indicates how many image files are defined; Posts 956 respectively. 958 indicate how many groups and selections have been defined, one 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-Eintrag 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-Optionen und Auswahl-Typen mit einem Tastatur Fokus zu spezifizieren.
Noch weiter gibt es IFOCUS und JFOCUS Einträge 980 bzw. 982 für die "Hot Spot"-Einträge 908 und 910 vom
oben beschriebenen 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 Bereichs- und Gruppenumrahmungen, zusammen mit einem
OFLAGS Eintrag zur Spezifizierung der Mausmodi.Additional entries 962 and 964 are intended 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 to specify the representation point. OFOCUS and TFOCUS entries can also be used 976 respectively. 978 be provided to specify the selected selection options and selection types with a keyboard focus. There are even more IFOCUS and JFOCUS entries 980 respectively. 982 for the "hot spot" entries 908 and 910 from the mouse structure block described above. Finally specifies a menu entry 986 the identification of the current menu focus, together with the entries 988 and 990 to define the area and group order framing, together with an OFLAGS entry to specify the mouse modes.
Die
den laufenden Zustand der Auswahlen spezifizierende Information
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 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, which 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-Warteschlange aufzuzeichnen.In a preferred embodiment, an event queue (= queue) structure can also 1010 can be fed in to record keystrokes or mouse movements in an event queue.
Wie
zuvor ausgeführt,
ist es ein Schlüsselmerkmal
der vorliegenden Erfindung, daß das
Betriebssystem des Terminals der vorliegenden Erfindung nicht mit
einem Standard PC/AT BIOS oder DOS kompatibel ist. Dennoch ist es
erforderlich, daß das
Terminal-Betriebssystem gewisse Funktionen unterstützt, um
die Fähigkeit,
Anwendungsdateien in einer Multiuserumgebung anzuzeigen, beizubehalten,
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 freien 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 Value) (= Ermittle/Setze
Systemwert) insoweit in Abhängigkeit
von der Funktion und dem Flag unterstützt, jedoch die "Control-Break" Funktion wird nicht
unterstützt.
In gleicher Weise werden die Funktionen 2Ah bis 2Dh (die
Get/Set Date/Time-, d.h. Ermittle/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)
Funktion wird unterstützt,
so daß sie
zur Messung der Dauer von Ereignissen herangezogen werden kann,
ohne die absolute Zeit wiederzugeben.As previously stated, it is a key feature of the present invention that the operating system of the terminal of the present invention is not compatible with a standard PC / AT BIOS or DOS. However, the terminal operating system is required to support certain functions to maintain the ability to display application files in a multi-user environment, such as when communicating with a CITRIX client or other supported emulations. A list of standard IO.SYS and BIOS.SYS functions can be drawn up which are supported by the present invention; it is clear to the person skilled in the art that not all standard BIOS or DOS functions have to be included. Some functions are not supported. Other features are only partially supported. This is how it works 36h (Get Disk Free Space) is only partially supported because a flash memory is used instead of a hard disk. The function becomes similar 33h (Get / Set System Value) insofar supported depending on the function and the flag, but the "Control-Break" function is not supported. The functions are the same 2Ah to 2dh (which Get / Set Date / Time-, ie determine / set date / time, functions) only partially supported, since no real-time hardware is present in the terminal of the present invention. Only the "Get Time" function is supported so that it can be used to measure the duration of events without displaying the absolute time.
Zusätzlich ist
das Flashfile-System in einer bevorzugten Ausführungsform der Erfindung in
mehrerer 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 Partition 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 Verzeichniseinträge, die in einer bevorzugten
Ausführungsform
sechzehn Bytes lang sind, entsprechen allgemein einem DOS-Verzeichniseintrag;
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ückabbildungssegment der Datei
im DOS Adressenraum.In addition is
the flash file system in a preferred embodiment of the invention in
partitioned multiple single directory drives. However, points
the flash file system
in contrast to conventional disk file systems, no division
in clusters or sectors. Files in any drive or in
each partition grow from the bottom up in the partition, while the
Directory entries
grow from top to bottom. Data is continuously without fragmentation
saved. The directory entries in a preferred
embodiment
sixteen bytes long generally corresponds to a DOS directory entry;
however, elements that would normally be reserved are defined
to make it possible
that a
File is executed from the flash instead of from the DRAM. This closes the start address
of the file in Flash as well as the re-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ächsten
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 ungelöschte
Dateien werden in den Flashblock dahin zurückgeschrieben, wo die gelöschte Datei
beibehalten worden war. Wie schon zuvor erwähnt, ist eine Dateifragmentierung
zumindest in einigen Ausführungsbeispielen
nicht erlaubt.The
file deletion
is the deletion
Largely similar to conventional DOS files, differs
but in important details. If a file in the present invention
deleted
the first byte in the directory entry is set to 0 instead
set to E5h. This step is done without deleting a flash block. subsequent
Files will then appear in the next
available
Registered place. If not, however, for a subsequent file
enough
Space available
stands, the flash block for
the deleted
File deleted
and undeleted
Files are written back to the flash block where the deleted file
had been maintained. As mentioned before, is file fragmentation
at least in some embodiments
not allowed.
Das
Flashfile-System unterstützt
konventionelle DIR, TYPE und DEL Befehle, unterstützt einen
neuen "DEBUGMSG" Befehl zur Erzeugung
einer DEBUG Mitteilung und unterstützt auch Programmausfü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 unterstützt
das Dateisystem nicht die Batchfile-Befehle (außer Programmausführung),
I/O-Umleitungen, Pipes oder Interrupts 20h (Programm beenden), 22h (Adresse
beenden), 23h (Ctrl-Break Adresse verlassen), 24h (Kritische
Fehler Abwicklungs-Vektor), 25h (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 generating a DEBUG message and also supports program execution using batch files. The file system also supports the AUTOEXEC.BAT file and also the loading and execution of * .EXE and * .COM files and int 21h and int 27h , However, in at least some embodiments, the file system does not support the CONFIG.SYS file or .SYS device drivers. Likewise, the file system does not support batch file commands (other than program execution), I / O redirection, pipes, or interrupts 20h (Exit program), 22h (End address), 23h (Leave Ctrl-Break address), 24 hours (Critical errors settlement vector), 25h (Absolute Disk Read), 26h (Absolute Disk Write) and 2fh (Multiplex interrupt).
Aus
dem Vorhergehenden wird deutlich, daß, während eine ausgewählte Gruppe
der Standard BIOS und DOS Funktionen emuliert oder anderweitig vom
Terminal-Betriebssystem
der vorliegenden Erfindung unterstützt werden, eine sehr bedeutende
Anzahl der Standard-BIOS- und DOS-Funktionen nicht unterstützt werden.
Zusätzlich
lassen sich sogar jene BIOS- und DOS-Funktionen, die unterstützt werden,
nicht unter Standard AT kompatibler Hardware ausführen. Stattdessen
richtet der Teil des Terminal-Betriebssystems, der in 4 als der "Bootblock" 300 und
als "Kernel" 305 bezeichnet
werden, die Fähigkeit
zum Emulieren dieser Funktionen ein.From the foregoing, it will be appreciated 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 the. In addition, even those BIOS and DOS functions that are supported cannot be executed under standard AT compatible hardware. Instead, the part of the terminal operating system that is set up in 4 than the "boat block" 300 and as a "kernel" 305 are referred to, 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 Einschaltdiagnose zu schleifen,
aber nicht in normalen Betrieb benutzt; GET BOOT BLOCK DATE zur
Abfrage der Daten des Bootblocks; CLEAR KEYBORD 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 Einstellen des Tastatur-Kontrollers.The boat block 300 Supported service functions include: GET FLASH DRIVE SIZE, which is the flash memory 438 asks for the drive size; READ FLASH DRIVE for reading data from the flash memory 438 ; WRITE FLASH DRIVE for writing data to the 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 KEYBORD CONTROLLER I / O BIT is used to control components that are connected to the keyboard controller; and finally SET KEYBOARD CONTROLLER I / O BIT for setting 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 normalen int 10h Funktionen für Videodienste aktiviert. Der
Interrupt 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 aufgerufen
werden kann, wenn es nötig ist,
anstehende DOS Interrupts 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 beispielsweise,
daß Maus-
und Tastatur-Interrupts für
eine längere
Periode abgeschaltet bleiben – wobei
lang genug für
einen Benutzer 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 freizumachen, wenn es nötig wird,
einen Befehl zum Tastatur Kontroller zu senden.How the kernel works 305 will now be described in detail. The kernel essentially comprises three service functions. The first is an "ACTIVE VIDEO INT 10h "Function that the normal int 10h Video service features enabled. The interrupt int 10h is initially handled by the kernel 305 intercepted to suppress the display of text mode messages from the various device drivers while they are loading. After the drivers are all loaded and the terminal goes into graphics mode, the ACTIVE VIDEO INT 10h Function called to reset the normal int 10h operation. The kernel also closes 305 a second function, the "SET POWER DOWN TIME", which can set various energy saving functions (such as "ENERGY STAR compliance") and a time delay to activate these functions. Finally, the kernel includes 305 a "PROCESS DOS INTERRUPTS" function, which is executed each time by the boot block or other parts of the kernel 305 can be called when it is necessary to execute pending DOS interrupts that require real-time processing in a DOS environment. The most common interrupts to perform in this function are mouse and keyboard interrupts, although timer, serial, parallel, and network interrupts also occur. Catching through this function prevents, for example, mouse and keyboard interrupts from being switched off for a longer period - whereby a delay of one second between the movement of the mouse and the subsequent movement of the cursor can be long enough for a user, for example, or by Clear the keyboard controller output when it becomes necessary to send a command to the keyboard controller.
Da
die Hardware der vorliegenden Erfindung nicht dem PC/AT Standard
entspricht und die Firmware weder dem konventionellen PC/AT BIOS
noch dem DOS entspricht, aber das ganze System dazu ausgelegt 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 detailliert
anhand des Kernels beschrieben.Because the hardware of the present invention does not conform to the PC / AT standard and the firmware does not conform to the conventional PC / AT BIOS or DOS, but the entire system is designed to allow the user to have a conventional WINDOWS ® representation in front of them To see and interact with it, some conventional hardware interrupts and related calls must be managed by the present invention. In a preferred embodiment, such interrupts and calls are handled with the terminal firmware, either by emulation or by modifying the appropriate response to the incoming signal. These responses are described in detail below 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
verschiedener 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 Interrupts) 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 einigen Beispielen kann das Terminal der vorliegenden Erfindung
im Speicher vielfältige
Merkmalsgruppen aufweisen, wobei das Terminal zu vielen Hosts verbunden
werden kann, die unter verschiedenen 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
Kenndaten 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
different tables as they are used to capture I / O's on the different
Ports needed
are. After an access to a selected port an expiry
generated, this instruction that generated this interrupt is generated;
disassembled so that the
Kernel can process them correctly to emulate PC compatibility,
what the transfer
various characteristic groups (so-called "personalities"). Because a whole subroutine
for every
captured I / O instruction must be processed
the I / O instruction is not executed as quickly, so that the interception of I / O's on few ports
as possible
is limited. In some examples, all or only a part
of an I / O port is only interrupted as far (with interrupts) as it is
for one
AT compatibility
is necessary.
Based on the fact that intends
is that the
most preferred embodiment
the present invention provides a CITRIX WinFrame feature set,
it should be emphasized that also
other feature groups for
implemented the use of the terminal of the present invention
can be.
In some examples, the terminal of the present invention
diverse in memory
Feature groups, with the terminal connected to many hosts
that run under different operating systems, and
therefore expect such different groups of features. The user
or others can
then be able to choose from among these feature groups and
through a "Hot
Key "or a keyboard sequence,
the kernel of the present invention then the corresponding
Calls up characteristic data from the memory and a communication with the
appropriate host.
Die
I/O-Ports, die vom Kernel für
die Herstellung einer AT-Kompatibilität abgefangen werden, sind:
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.
21h (Das Maskierregister des AT-kopatiblen
Interrupt-Kontrollers) – Wird
emuliert.
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 Interrupt-Maskierregister nach einer bevorzugten
Ausführungsform
der vorliegenden Erfindung auf Port 40h gesetzt ist, würden nicht eingefangene
Einschreibungen mit dem Interruptmaskierregister der vorliegenden
Erfindung kollidieren.
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.
A0h (Der Befehlsport
eines zweiten Interrupt-Kontrollers eines AT-kompatiblen Rechners) – wie bei
Port 20h wird der "Ende
des Interrupts"-Befehl
emuliert.
A1h (Das Maskierregister für den zweiten Interrupt-Kontroller
(ähnlich
dem Port 21h)) – Wird
emuliert.
2F8h bis 2FFh (Eine Standardadresse
für einen
zweiten AT-kompatiblen 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
beispielhaften Ausführungsform
ist ein "Byte Swapping" nicht implementiert
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.
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 Ausführungsform der Erfindung sind.
3F8h bis 3FFh (Eine
Standard-Adresse für
einen ersten AT-kompatiblen seriellen Port) – Werden umgesetzt zu 7F0h bis 7FEh,
die die Portadressen für
den ersten seriellen Port einer beispielhaften Ausführungsform
der Erfindung sind.The I / O ports that the kernel intercepts for AT compatibility are:
20h (The command port of an AT-compatible interrupt controller) - Only the "end of interrupt" command is emulated, which is issued at the end of each interrupt execution program so that more interrupts of the same or lower priority can occur. The kernel also emulates the normal operation of a PC compatible interrupt controller, as long as it blocks interrupts of equal or lower priority until the "end of interrupt" command is received. 21h (The mask register of the AT-compatible interrupt controller) - Is emulated.
40h - 43h (Access to an AT-compatible 8354 system timer) - The ports are not emulated, but are intercepted because some AT-based drivers write to these ports. Since the interrupt masking register is on port according to a preferred embodiment of the present invention 40h non-captured enrollments would collide with the interrupt mask register of the present invention. 61h (One control port for different applications in an AT architecture) - A speaker control bit is emulated to allow the speaker to be turned on and off.
A0h (the command port of a second interrupt controller of an AT-compatible computer) - as with port 20h the "end of interrupt" command is emulated.
A1h (The mask register for the second interrupt controller (similar to the port 21h )) - Is emulated. 2F8h to 2FFh (A default address for a second AT-compatible serial port) - These ports are open 5F0h to 5FEh offset, the port addresses for the second serial port of a preferred embodiment of the invention. The new port range ( 5F0 to 5FE ) includes only "even" addresses. In an exemplary embodiment, "byte swapping" has not been implemented and therefore only "even" bytes of one of the eight-bit SIO component can be accessed. However, "BYTE swapping" can also be implemented if necessary. 378h to 37Fh (A standard address for an AT-compatible parallel port) - is converted to 6F0h to 6FEh which are the port addresses for the parallel port of an exemplary embodiment of the invention. 3F8h to 3FFh (A standard address for a first AT-compatible serial port) - To be implemented 7F0h to 7FEh which are the port addresses for the first serial port of an exemplary 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
hereby the preferred embodiments
described the invention, there are numerous modifications
and similar solutions,
that do not go beyond the disclosure of the invention. The
The invention is therefore in no way related to the described embodiments
limited.