DE69105997T2 - Rechner mit tabletteingabe in standardprogramme. - Google Patents

Rechner mit tabletteingabe in standardprogramme.

Info

Publication number
DE69105997T2
DE69105997T2 DE69105997T DE69105997T DE69105997T2 DE 69105997 T2 DE69105997 T2 DE 69105997T2 DE 69105997 T DE69105997 T DE 69105997T DE 69105997 T DE69105997 T DE 69105997T DE 69105997 T2 DE69105997 T2 DE 69105997T2
Authority
DE
Germany
Prior art keywords
data
mouse
icon
display
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69105997T
Other languages
English (en)
Other versions
DE69105997D1 (de
Inventor
David Barrett
Jonathan Huntington
Patricia Martin
J Mcnally
Jean Ward
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
3M Innovative Properties Co
Original Assignee
Wang Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of DE69105997D1 publication Critical patent/DE69105997D1/de
Application granted granted Critical
Publication of DE69105997T2 publication Critical patent/DE69105997T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Digital Computer Display Output (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Description

  • VERWEISE AUF EINSCHLÄGIGE PATENTANMELDUNGEN ... 4
  • GEBIET DER ERFINDUNG ... 4
  • STAND DER TECHNIK ... 4
  • KURZE DARSTELLUNG DER ERFINDUNG ... 9
  • KURZBESCHREIBUNG DER ZEICHNUNG ... 10
  • DETAILLIERTE BESCHREIBUNG EINES AUSFÜHRUNGSBEISPIELS ... 11
  • 1. Plattform ... 11
  • 1.1 Rechnerumgebung ... 11
  • 1.2 Systemhauptkomponenten ... 12
  • 1.2.1 Hauptprozessor ... 13
  • 1.2.2 Anzeigebildschirm ... 13
  • 1.2.3 Haupt-Anzeige-Pufferspeicher und Steuerung ... 14
  • 1.2.4 Schnittstellen-Prozessor ... 14
  • 1.2.5 Firmware zum Schnittstellen-Prozessor ... 15
  • 1.2.5.1 Emulation der Tastatursteuerung ... 15
  • 1.2.5.2 Dienste für simulierte Geräte 16
  • 1.2.5.3 Datenübertragungssteuerung ... 18
  • 1.2.6 Zeigegerät ... 18
  • 1.2.7 Tinte/Maske-Anzeige-Pufferspeicher und Steuerung ... 21
  • 1.2.8 Videomultiplexer ... 22
  • 1.2.9 Untersystem für Signalverarbeitung ... 22
  • 1.2.10 Verschiedene Übertragungsanschlüsse ... 22
  • 1.2.11 Massenspeicher ... 23
  • 1.3 VLSI-Implementierung ... 23
  • 1.3.1 Optimierungsprogramm ... 24
  • 1.3.2 Basisgrafikzugriff ... 26
  • 1.3.2.1 Speicherbereichszuordnung ... 28
  • 1.3.2.2 Anzeigezeitsteuerung ... 29
  • 1.3.2.3 Mehrfachnutzung von VGA- und Tintendaten ... 30
  • 1.3.2.4 Anzeigebetriebsarten ... 30
  • 1.3.2.5 Schnittstellen-Prozessor und Basisgrafikzugriff ... 31
  • 1.3.2.6 Basisgrafikzugriff und Optimierungsprogramm ... 31
  • 1.3.2.7 Kontraststeuerung ... 31
  • 1.4 Übertragungen zwischen Haupt- und Schnittstellenprozessoren ... 32
  • 1.4.1 Register der Datenübertragungsleitung ... 32
  • 1.4.2 Protokoll der Datenübertragungsleitung ... 33
  • 1.4.3 Tablettdaten über die Datenübertragungseinrichtung ... 35
  • 2 Simulierte Geräte ... 36
  • 2.1 Gemeinsame Merkmale der Benutzerschnittstellen-Ikone ... 40
  • 2.1.1 Rückkopplung der Griffelposition zum Benutzer ... 42
  • 2.1.2 In Anlage halten des Griffels ... 42
  • 2.1.3 Regeln auf der Benutzerschnittstelle für die Behandlung von Zielwertfehlern ... 43
  • 2.1.3.1 Regel "Berührungspunkt" ... 43
  • 2.1.3.2 Regel "In das Ikon hineinziehen" ... 44
  • 2.1.3.3 Regel "Ikon verlassen" ... 44
  • 2.1.4 Ziehen ... 45
  • 2.1.5 Dimensionieren ... 45
  • 2.1.6 Stapeln ... 47
  • 2.1.7 Senden eines Zeichens ... 47
  • 2.2 Gerät zur Erkennung von Handschriftzeichen ... 48
  • 2.2.1 Zeichen schreiben ... 49
  • 2.2.1.1 Strichparsing und Zeichenerkennung ... 50
  • 2.2.1.2 Tintenlöschung und Anzeige des Erkennungsergebnisses ... 53
  • 2.2.2 Aufbereitung ... 55
  • 2.2.3 Funktionsschaltflächen ... 55
  • 2.2.3.1 Einfügen ... 55
  • 2.2.3.2 Entfernen ... 56
  • 2.2.3.3 Löschen ... 56
  • 2.2.3.4 Rollen ... 57
  • 2.2.3.5 Zeichen senden zur Anwendung ... 57
  • 2.2.3.6 Verschieben und Dimensionieren ... 58
  • 2.2.4 Behandlung von Mehrfachzeilen ... 59
  • 2.2.5 Automatische Wahl von Zeige- und Schreib-Betriebsarten ... 60
  • 2.3 Tastatur ... 62
  • 2.3.1 Tippen ... 63
  • 2.3.1.1 Betätigen der Umschaltschaltflächen ... 63
  • 2.3.2 Funktionsschaltflächen ... 65
  • 2.3.2.1 Konfiguration der Tastatur ... 65
  • 2.4 Mausgerät ... 66
  • 2.4.1 Mausbewegung ... 66
  • 2.4.2 Funktionsschaltflächen ... 67
  • 2.4.2.1 Skalieren der Bewegung ... 67
  • 2.4.2.2 Betätigung der Mausschaltflächen ... 68
  • 2.4.2.3 Bewegen und Dimensionieren ... 69
  • 2.5 Informationsgerät ... 70
  • 2.6 Weitere simulierte Geräte ... 71
  • 2.7 Direkte Tabletteingabe in Anwendungsprogramme ... 72
  • 2.8 Aufruf der Benutzerschnittstelle durch eine Anwendung ... 72
  • 2.9 Beispiel einer Wechselwirkung zwischen Hauptprozessor und Schnittstellen-Prozessor ... 73
  • 2.10 Implementierung von simulierten Geräten ... 74
  • Die vorliegende Anmeldung bezieht sich auf folgende Anmeldungen: WO-A-92 090 38: "COMPUTER WITH SEPARATE DISPLAY PLANE AND USER INTERFACE PROCESSOR" (Rechner mit getrennter Anzeigeebene und Benutzerschnittstellen-Prozessor)- Barrett et al. WO-A-92 099 44: "USER INTERFACE HAVING SIMULATED DEVICES" (Benutzerschnittstelle mit simulierten Geräten) - Ward et al. Diese Anmeldungen basieren auf derselben Offenbarung wie die vorliegende Anmeldung.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die Betätigung und Unterstützung von Einrichtungen für Benutzerschnittstellen für Rechneranlagen. Die Erfindung ist insbesondere nützlich bei Anlagen, in denen ein Griffel das Haupteingabegerät für den Benutzer ist.
  • STAND DER TECHNIK
  • Angetrieben sowohl von den Bedürfnissen der Benutzer und den Möglichkeiten verschiedener Implementierungstechniken erfahren Rechner und die Art und Weise, wie Benutzer mit ihnen in Wechselwirkung treten, immer wieder neue Auslegungen.
  • Dabei ist es wünschenswert, die Auslegung jeder Anlage entsprechend der laufenden Technologie und dem aktuellen Verständnis der menschlichen Faktoren zu optimieren. Jedoch ist eine andere, häufig entgegenwirkende, die Auslegung von Rechneranlagen beeinflussende Kraft die Notwendigkeit, daß neue Systeme vorbestehende Komponenten, sowohl in der Software als auch in der Hardware, benutzen können sollen. Diese Einflüsse kommen aus verschiedenen Quellen, einschließlich des Wunsches, in vorbestehende Auslegungen vorgenommene große Investitionen auszunutzen und neue Systeme in Umgebungen einzusetzen, die in großem Maße vorbestehende Systeme weiterbenutzen.
  • Es ist für ein neues System besonders vorteilhaft, wenn es in der Lage ist, vorbestehende Softwarekomponenten, sowohl Anwendungsprogamme (das sind Programme, die einem System die Fähigkeit verleihen, reale Aufgaben zu bearbeiten, häufig einfach als "Anwendungen" bezeichnet) als auch Systemprogramme zu benutzen (die Systemverwaltungsfunktionen und Dienste bereitstellen, die von Anwendungsprogrammen genutzt werden). Weil einige vorbestehende Anwendungen de facto zu Standards innerhalb bestimmter Benutzerkreise geworden sind, ist es von besonderer Wichtigkeit, daß neue Systeme diese Standardanwendungen verarbeiten können.
  • Die meiste Software, die Dialogverkehr mit dem Benutzer ermöglicht, ist für eine hauptsächliche Benutzereingabe in Form von Tastendruckdaten ausgelegt. In zunehmendem Umfang steht Software zur Verfügung, insbesondere solche für Tischanlagen, die zusätzlich zu Tastaturdaten Eingabedaten von einer Maus akzeptieren. Im allgemeinen erfordern diese Anlagen dennoch Tastendruckdaten für bestimmte Funktionen.
  • Um die Anwendung von Rechneranlagen für den Benutzer einfacher zu machen, weisen verschiedene Systeme Griffel-Typ Eingabegeräte auf (die üblicherweise mit einem Digitalisiertablett benutzt werden). Wegen ihrer Ähnlichkeit zu herkömmlichen Schreibgeräten, sind Griffel-Typ Geräte unter den Zeigegeräten besonders gut für die Benutzung zur Zeicheneingabe geeignet, zusätzlich zur Funktion als Zeigegerät. Im Falle ihrer Benutzung wurden Griffel-Eingabegeräte im allgemeinen zusätzlich zu einer Tastatur vorgesehen. In einigen Fällen wurden Systeme mit einem Griffel-Typ-Gerät als hauptsächlichem Benutzereingabegerät ausgelegt.
  • Ein Beispiel für eine Anlage mit Tastatur ist im IBM Technical Disclosure Bulletin, Bd. 19, Nr. 7, S. 2816-7 vom Dezember 1986 unter dem Titel "ELECTRONIC CALCULATOR BASED ON CHARACTER RECOGNITION OF INPUT FROM STYLUS ACCELERATION DYNAMICS" (Elektronischer Rechner mit Zeichenerkennung der Eingabe von Griffelbeschleunigungsdynamik) beschrieben. Gemäß dieser Beschreibung ist ein elektronischer Rechner mit Tastatur und Sichtgerät über eine Erkennungslogikschaltung mit einem Griffel verbunden, der mit einem Beschleunigungsmesser ausgestattet ist. Im Betrieb kann ein Benutzer den Griffel zum Schreiben von Zahlen auf einer Schreibunterlage benutzen, und die Erkennungslogik wandelt die Griffelbwegung in Zahlen um, die sie dem Rechner zuleitet.
  • Ein Beispiel eines Systems, in dem der Griffel das Haupteingabegerät des Benutzers ist, ist in der am 11. April 1990 veröffentlichten Europäischen Patentanmeldung 0 395 469 beschrieben. Gemäß dieser Veröffentlichung wird ein tragbares Rechnersystem mit einem Flüssigkristall-Sichtgerät (LCD) beschrieben, an dem eine durchsichtige berührungempfindliche Fläche befestigt ist. Ein Benutzer gibt Eingabedaten in das Rechnersystem ein, indem er mit einem Griffel oder einem Finger eine gewünschte Stelle auf dem Anzeigeschirm berührt.
  • Eine Tastatur weist Merkmale auf, die sich grundlegend von denen eines Griffels und eines Digitalisiertabletts unterscheiden. Bei einer Tastatur ist die exakte Zeichenidentifizierung unkompliziert: ein Benutzer erzeugt alphabetische Zeichen darstellende Daten einfach durch Niederdrücken entsprechender Tasten. Weil eine Tastatur benutzt werden kann, um ein Zeichen durch ein einzelnes Ereignis zu erzeugen (d.h. durch Drücken eines binären Schalters), ist die ganze erforderliche Rückkopplung an den Benutzer die Anzeige des Zeichens und möglicherweise mit einem begleitenden hörbaren Klick. Dagegen ist bei der Benutzung eines Griffels für die Zeicheneingabe eine sehr unterschiedliche Rückkopplung zum Benutzer erforderlich. Handschriftzeichen werden durch einen Prozeß generiert, der (wenngleich einem Benutzer vertraut) sehr viel komplexer ist, sowohl für den Benutzer als auch für die Rechneranlage.
  • Für die Auswahl von Funktionen mit einer Tastatur werden viele alternative Lösungen angewandt. Unter diesen ist das Zeigen auf eine sichtbare Darstellung einer Funktion oder eines zu handhabenden Objekts umständlich, weil eine Tastatur ein sehr schlechtes Zeigegerät ist.
  • Häufig wird eine Maus in Systemen benutzt, die es einem Benutzer ermöglichen, die Maus zum Ziehen von Objekten auf dem Schirm zu verwenden. Dies geschieht dadurch, daß ein besonderer Typ Mauscursor oder -zeiger angezeigt wird. Dieser Cursor hat einen dem System bekannten absoluten Ort, und das System stellt den Cursorort nach den relativen Bewegungen der Maus ein. Dieser Cursor arbeitet als ein absolutes Zwischenglied zwischen den relativen Bewegungen einer Maus und den Objektziehoperationen.
  • Wenn Programme, die für die Benutzung eines Mauscursors ausgelegt sind, mit einem Griffel benutzt werden, der direkt auf den Anzeigeschirm wirkt, kann der Benutzer erwarten, daß es ihm möglich ist, den Cursor mit dem Griffel direkt zu manipulieren, d.h. durch Setzen des Griffels auf den Cursor und durch Ziehen desselben. Üblicherweise funktioniert dies in einer Weise, die von Benutzern als frustierend betrachtet wird: die Beziehung zwischen dem Betrag einer Mausbewegung und der vom Cursor zurückgelegten Strecke ist nicht festgelegt. Dies kann von Anwendung zu Anwendung variieren oder sogar innerhalb einer einzigen Anwendung unterschiedlich sein (z.B. von der Schnelle abhängen). Wenngleich der Griffel am Objekt beginnt, wird folglich das Objekt der Position des Griffels nicht synchron folgen.
  • Eine Lösung dieser Schwierigkeit ist in der Japanischen Patentveröffentlichung 02 127 720 vom 16. Mai 1990 offenbart. In dieser Veröffentlichung wird ein Rechnersystem beschrieben, bei dem zum Simulieren der Bewegung einer Maus ein Griffel benutzt wird. Zur Vermeidung der weiter oben beschriebenen Schwierigkeiten sind zwei getrennte Anzeigeschirme vorgesehen. Das Hauptbild wird auf dem ersten Anzeigeschirm dargestellt. Auf dem zweiten Schirm wird ein Bild einer Maus angezeigt. Auf dem zweiten Anzeigeschirm ist ein berührungsempfindliches Tablett angebracht. Der Benutzer bewegt das Bild der Maus auf dem zweiten Schirm mittels eines Griffels oder eines Fingers und die Bewegungen werden dem Rechner zugeleitet, der das Hauptbild anzeigt. Der absolute Ort des Bildes der Maus auf dem zweiten Anzeigeschirm entspricht dem absoluten Ort des Griffel- oder Fingerdrucks, der vom berührungsempfindlichen Tablett auf dem zweiten Anzeigeschirm erfaßt wird.
  • In einem System, in dem ein Griffel benutzt wird, ist es jedoch von besonderem Vorteil für den Benutzer, wenn er den Griffel direkt mit dem Sichtgerät benutzen kann. Z.B. sollte es möglich sein, auf den Anzeigeschirm direkt zu schreiben und, wenn zweckdienlich, sollte auf der Anzeige in der Bewegungsbahn des Griffels eine "Tinten"spur erscheinen, ein Benutzer somit den Eindruck wie beim Schreiben auf Papier haben.
  • Ein an einem Bildschirm direkt zu benutzendes Zeiger-Typ Eingabegerät sollte seine absolute Position darstellen können (so daß die Tinte auf dem Schirm am Ort des Griffels erscheint). Dies unterscheidet sich von der Eingabe mit einer Maus, die eine relative Position erzeugt. Mit einer Maus kann der Benutzer Mausdaten generieren, die nur eine Reihe nach rechts gerichteter Bewegungen angeben, und dennoch die Maus an ihrer Ausgangsstellung anhalten (z.B. die Maus nach rechts bewegen, Maus aufnehmen und sie links von ihrer Ausgangsposition aufsetzen, und die Maus nach rechts zurück in ihre Ausgangsposition bewegen). Wenngleich sowohl eine Maus als auch ein Griffel "Zeiger-Typ"-Geräte (Zeiger) sind, unterscheiden sie sich in ihren Merkmalen.
  • Die Eingabe von Zeichencodes ist eine weitere Behinderung des Abarbeitens vorbestehender (griffelfreier) Programme mittels eines Griffels. Die Eingabe von Handschriftzeichen ist so komplex, daß sie eine Rückkopplung zum Benutzer verlangt. Ein Programm, für das keine Eingabe von Handschrift vorgesehen ist, weist eine Benutzerschnittstelle auf, die ohne solche Rückkopplung definiert ist.
  • Diese Unterschiede in den Merkmalen der Eingabegeräte behindern in größerem Umfang eine wirkungsvolle Ausnutzung vieler bestehender Software in einem Rechnersystem auf Griffel-Basis. Folglich war es Praxis, daß in den meisten Fällen, in denen Griffel- Eingaben benutzt wurden, auf Anwendungsprogramme zurückgegriffen wurde, die speziell für ein System mit Griffel geschrieben waren.
  • Ein erfindungsgemäßes System kann vorbestehende Software abarbeiten und ermöglicht es einem Benutzer des Systems, für den Dialogverkehr mit dieser Software einen Griffel zu benutzen.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Ein erfindungsgemäßes System arbeitet vorbestehende Programme auf einem Hauptprozessor ab. Die Bilder darstellenden Daten, die von den vorbestehenden, auf dem Hauptprozessor abgearbeiteten Programmen generiert werden, werden in einem Hauptanzeige-Pufferspeicher gespeichert. Das System sieht ferner die Ausführung von vorbestehenden Programmen durch den Benutzer mit einem Zeiger-Typ Eingabegerät vor, auf welches die vorbestehenden Programme von ihrer Auslegung her nicht eingestellt sind. Dies geschieht durch Bereitstellen einer Benutzerschnittstelle, welche die Operation des vorbestehenden Programms logisch überlagert, ohne sie zu stören. Diese Benutzerschnittstelle liefert dem Benutzer eine Rückkopplung hinsichtlich der Operation des Zeigegerätes.
  • Diese getrennte Benutzerschnittstelle stellt einem Benutzer wenigstens ein simuliertes Gerät bereit, das vom Benutzer als separates Eingabegerät betätigt wird, auf ähnliche Weise, wie der Benutzer die verschiedenen Eingabegeräte behandeln kann, mit denen er bereits vertraut sein mag, wenngleich diese Geräte außerhalb der Rechneranlage, auf der sie erscheinen, keine reale Existenz besitzen. Beispielsweise ist ein simuliertes Mausgerät für einen Benutzer verfügbar; der Benutzer sieht Mausfeld und Schaltflächen in der Anzeige und betätigt das simulierte Mausgerät mit dem Zeiger-Typ Gerät des Systems (z.B. mit dem Griffel).
  • Um diese Überlagerungsschnittstelle ohne störenden Eingriff in die Ausführung des vorbestehenden Programms durchzuführen, ist ein Schnittstellenprozessor vorgesehen, der bei der Implementierung dieser Schnittstelle benutzte Software ausführt. Ferner ist ein getrennter Überlagerungs-Pufferspeicher zum Speichern von Daten vorgesehen, die ein das simulierte Gerät darstellendes Bild darstellen, wobei das simulierte Gerät mit der Anzeige vom vorbestehenden Programm visuell kombiniert ist, ohne daß der Hauptanzeige-Pufferspeicher, der vom vorbestehenden Programm benutzt wird, modifiziert wird. Die Datenkombination wird von einem Multiplexer durchgeführt.
  • Die Erfindung ist in Patentanspruch 1 definiert.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Die vorstehend genannten und weitere Vorteile der Erfindung werden durch Bezugnahme auf die nachstehende detaillierte Beschreibung in Verbindung mit der Zeichnung besser verstanden werden, in der zeigt:
  • Fig. 1 eine Schrägansicht einer Rechneranlage, in der die vorliegende Erfindung in vorteilhafter Weise verwendet wird,
  • Fig. 2 ein Blockschaltbild mit Hervorhebung der logischen Organisation einer Schaltungsanordnung einer erfindungsgemäßen Rechneranlage,
  • Fig. 3 ein Blockschaltbild mit Hervorhebung der physikalischen Implementierung einer Schaltungsanordnung einer erfindungsgemäßen Rechneranlage,
  • Fig. 4 ein Blockschaltbild einer Schaltungsanordnung, die bei Übertragungen zwischen dem Hauptprozessor und dem Schnittstellenprozessor benutzt wird,
  • Fig. 5 ein Blockschaltbild einer Schaltungsanordnung im Anzeige-Untersystem,
  • Fig. 6 eine Darstellung der Anzeigedaten-Multiplexerschaltung des Anzeige-Untersystems,
  • Fig. 7, 8 und 9 Darstellungen der Entsprechung zwischen Pixelpositionen der Anzeigeschirms und der Speicherung von Tinten- und Maskendaten, wobei Fig. 7 einige der Pixelpositionen auf einem Anzeigeschirm zeigt, Fig. 8 anhand von vier Speicherbelegungsplänen zeigt, wie die Tinten- und Maskendaten in vier VRAM-Chips gespeichert sind, und Fig. 9 zeigt, wie die Tinten- und Maskendaten im Adressenraum des Schnittstellenprozessors erscheinen;
  • Fig. 10 eine Bildschirmanzeige mit Ikons für drei simulierte Geräte: Tastatur, Handschrift und Maus,
  • Fig. 11 Beziehungen zwischen dem Tablett, dem Sichtgerät und bestimmten Softwarekomponenten.
  • DETAILLIERTE BESCHREIBUNG EINES AUSFÜHRUNGSBEISPIELS 1 PLATTFORM 1.1 DIE RECHNERUMGEBUNG
  • Die Erfindung wird mit Vorteil in einer Rechneranlage verwendet, mit welcher der Benutzer durch die Benutzung eines Schreibgriffels oder eines anderen Zeigegerätes im Dialogverkehr steht. Wenn der Benutzer am Sichtgerät schreiben kann, ist die Tastatur entfernt (oder wenigstens als Option angeboten), und die Rechneranlage ist kompakt. Das sich daraus ergebende System wird gelegentlich als "Notizbuch"-Rechner bezeichnet. Die vorliegende Erfindung wird im Zusammenhang mit einem solchen Notizbuch-Rechner beschrieben werden. Ausgehend von dieser Beschreibung ergeben sich weitere Ausführungsformen der Erfindung.
  • Fig. 1 zeigt eine Schrägansicht eines Notizbuch-Rechners 10. Er umfaßt eine Kombination 12 aus einem Digitalisiertablett und einer Anzeigevorrichtung. In Verbindung mit dem Digitalisiertablett arbeitet ein Griffel 14 und gibt in das System X-Y-Koordinaten ein. Die Anzeigevorrichtung ist in Flüssigkristalltechnik ausgeführt und hintergrundbeleuchtet. Entlang einem Rand der Tablettfläche ist eine Reihe bezeichneter Bereiche 16a, 16b, 16c und 16d vorgesehen. Das System spricht auf Berührung dieser Bereiche mit dem Griffel an und löst bestimmte Systemfunktionen aus. Bei bestimmten Betriebsarten arbeitet das System so, daß elektronische Tinte bereitgestellt wird; in diesem Fall hinterläßt die Bewegung des Griffels auf dem Tablett eine auf dem Sichtgerät sichtbare Spur, wie wenn der Benutzer auf einem Stück Papier schreiben würde.
  • Zu weiteren Merkmalen dieses Beispiels eines Notizbuch-Rechners gehören: Sprachdigitalisierung und -wiedergabe (Einsteckmöglichkeit eines Kopfhörer/Mikrofonsatzes), Datenübertragung (einschließlich Fax), interner Festplattenantrieb, Standard-Serien- und -Parallelanschlüsse, ein SCSI-Anschluß (für den Anschluß u.a. eines externen Diskettenlaufwerks). Anstelle des SCSI-Anschlusses kann ein Verbinder vorgesehen sein zu einem Bus, der mit dem Mikrokanal vieler IBM-PS/2-Rechner kompatibel ist.
  • Der Hauptprozessor ist ein Intel 80386SX. Der Systemkern ist im allgemeinen mit dem IBM-PS/2-Modell 80, Typ 1 kompatibel.
  • Diejenigen Merkmale der Schaltungsanordnung, welche mit der vorliegenden Erfindung engste Beziehungen haben, werden nachstehend beschrieben, einschließlich des Schnittstellen-Prozessors, dem Tinte/Maske-Ebenen-Teil der Anzeigesteuerung und einer ASIC (die nachstehend als Optimierungsprogramm bezeichnet wird), die verschiedene Unterstützungslogiken zur Verfügung stellt.
  • 1.2 Systemhauptkomponenten
  • Die hauptsächlichen Hardware-Bauelemente der Rechneranlage sind in Fig. 2 dargestellt:
  • - ein Hauptprozessor 20,
  • - ein Schnittstellen-Prozessor 32,
  • - ein Zeigegerät (Tablett/Griffel 34 und Schnittstelle 36),
  • - ein Hauptanzeige-Pufferspeicher und Steuerung 38,
  • - eine Anzeigeregelschaltung 40, einschließlich Tintenebene- Pufferspeicher 42, Maskenebene-Pufferspeicher 44 und Videomultiplexer 46,
  • - ein Anzeigebildschirm 48,
  • - eine Schnittstelle 50 zwischen Prozessoren und
  • - eine optionale Tastatur 52, die über eine Schnittstellenschaltung 54 mit dem Schnittstellen-Prozessor 32 verbunden ist.
  • Fig. 3 zeigt ein Blockschaltbild des Rechnersystems, das die physikalische Implementierung der Schaltungsanordnung hervorhebt, von der ein großer Umfang in spezieller großintegrierter Schaltkreischip-Technik ausgeführt ist.
  • 1.2.1 Hauptprozessor
  • Der Hauptprozessor 30 ist unter Benutzung eines Mikroprozessors 80386 SX der Intel Corporation implementiert. Dieser Prozessor führt die Betriebssystem- und Anwendungsprogramme aus. Diesem Prozessor steht ein Grundhauptspeicher 30a von 1 oder 4 MByte zur Verfügung, der um zwei 1- oder 4-MByte-Module (bis auf somit 12 MByte) erweiterbar ist. Unter Berücksichtigung der tragbaren Ausführung des Notizbuch-Rechners benutzt der Hauptspeicher pseudostatische Speicherchips, die auf eine Weise gesteuert werden, die der im US-Patent 4,710,903 beschriebenen ähnlich ist. Für bestimmte Systemdienstsoftware, die als Grund-Eingabe/Ausgabesystem (BIOS) bekannt ist, stehen im Speicher 30b (ROM) 128 KByte zur Verfügung.
  • 1.2.2 Anzeigebildschirm
  • Einen visuellen Ausgang liefert ein Anzeigebildschirm 48. Bei der bevorzugten Ausführungsform ist dieser ein flacher Bildschirm, der mit einem (nachstehend beschriebenen) Digitalisiertablett 34 physikalisch integriert ist. Es handelt sich insbesondere um eine Flüssigkristallanzeigevorrichtung mit 640 mal 480 Pixel und einer Schaltzeit von 250 Millisekunden oder besser.
  • 1.2.3 Hauptanzeige-Pufferspeicher und Steuerung
  • Die Hauptanzeige-Pufferspeicher- und Anzeigesteuerung 38 (VGA- Steuerung 82C455 von Chips & Technologies) wird durch den Hauptprozessor 30 gesteuert. Dies erscheint den auf dem Hauptprozessor ablaufenden Anwendungen als eine herkömmliche Videoanzeige, wie sie gewöhnlich als VGA bekannt ist. Dies ermöglicht eine Steuerung von 640 mal 480 Pixel, die in vier pseudostatischen Speichern mit einer Kapazität von 128 K mal 8 Bit gespeichert sind. Dieser Speicher ist groß genug, um mit für 256 Farben geschriebenen Anwendungen zu arbeiten. Wenngleich die Pixel des Anzeigebildschirms binär sind, simuliert die VGA-Steuerung daraus im Zeitmultiplexbetrieb 16 Graustufen.
  • 1.2.4 Schnittstellen-Prozessor
  • Der Schnittstellen-Prozessor 32 ist ein Mikroprozessor V25 von NEC Electronics, Inc. Der V25 ist dem Intel 80188 ähnlich. Dieser Prozessor führt nachstehend genannte Funktionen aus:
  • - Er verbindet mit dem Hauptprozessor und simuliert (bis auf Hardware-Ebene) eine Tastatursteuerung des Typs, der in einem PS/2-Typ-Rechner verwendet wird. Dieses Protokoll stellt Daten von einem Hilfsgerät, üblicherweise einer Maus bereit. Zusätzlich zum Tastaturanschluß wird ein weiterer Übertragungskanal zum Hauptprozessor für andere Übertragungen benutzt.
  • - Er verbindet mit der bedarfsweise vorhandenen realen Tastatur und stellt diese Tastaturdaten dem Hauptprozessor zur Verfügung (ähnlich einer 8042-Steuerung in einem PS/2-Typ- Rechner).
  • - Er verbindet mit den Tinten- und Maskenebenen und liefert Daten an sie.
  • - Er betreibt eine Benutzerschnittstelle zu simulierten Geräten, welche den Tabletteingang, den Ausgang des simulierten Tastaturanschlusses benutzt, und schreibt in Tinten- und Maskenebenen.
  • - Er arbeitet einen Handschrift-Erkennungsalgorithmus ab (einem Teil der Schnittstelle zu simulierten Geräten).
  • 1.2.5 Firmware zum Schnittstellen-Prozessor
  • Im V25 befindet sich ein ROM von 16 KByte. Dieser ROM enthält Programmcodes für Initialisierung, Diagnostik, Unterstützung von Datenübertragung vom Hauptprozessor zum Hauptspeicher des Schnittstellen-Prozessors (der Hauptspeicher umfaßt die Pufferspeicher für die Tinten- und Maskenebenen) und eine Tastatursteuerungs-Emulation (ermöglicht die Benutzung der realen Tastatur vor der Übertragung irgendwelcher Software in den Hauptspeicher des Schnittstellen-Prozessors).
  • Die Diagnostik überprüft den Speicher des Schnittstellen-Prozessors, den den Schnittstellen-Prozessor mit dem Optimierungsprogramm verbindenden Datenbus und den seriellen Anschluß (einschließlich der Abfrage des Zustands vom Tablett, das an den seriellen Anschluß angeschlossen ist).
  • 1.2.5.1 Emulation der Tastatursteuerung
  • Die Firmware stellt die Funktionen bereit, die üblicherweise von einer 8042-Tastatursteuerung bereitgestellt werden. Zusätzlich zur Weiterleitung von Tastendruck- und Mausdaten an den Hauptprozessor umfassen diese Funktionen die Paßwörter für Installation und Überprüfung, das Lesen aus und das Schreiben in einen "8042-RAM" und die Freigabe, Abschaltung und Überprüfung der Schnittstelle zur realen Tastatur.
  • Die Firmwaredienste, die über den Tastaturanschluß Daten an den Hauptprozessor senden, können Daten behandeln, die auf dreifache Art übersandt wurden: umgesetzte Daten, nicht umgesetzte Daten, Hilfsdaten.
  • Umgesetzte Daten werden so behandelt, als kämen sie von einer realen Tastatur. Diese Daten werden auf Änderungen überwacht, die den Verschiebezustand des Systems, wie vom Schnittstellen- Prozessor wahrgenommen, beeinflussen. Diese Daten können von einem Abtastcode auf einen anderen umgesetzt werden, abhängig vom Zustand des Rechnerkompatibilitätsbits vom 8042-Befehlsbyte.
  • Nicht umgesetzte Daten werden dem System ohne Änderung zugeleitet. Nicht umgesetzte Daten werden nicht auf Änderungen im Verschiebezustand überwacht. Der Schnittstellen-Prozessor nimmt an, daß Änderungen im Verschiebezustand, die auf die nicht umgesetzten Daten zurückgehen, durch das Ende vom Strom nicht umgesetzter Daten aufgehoben werden.
  • Hilfsdaten werden dem Hauptprozessor ohne Umsetzung zugeleitet. Beim Senden von Hilfsdaten wird ein Bit des Tastaturzustandsregisters gesetzt, was dem Hauptprozessor anzeigt, daß es sich bei den Daten um Hilfsdaten handelt, nicht um Tastaturdaten. Hilfsdaten sind üblicherweise Mausdaten.
  • 1.2.5.2 Dienste für simulierte Geräte
  • Zur Unterstützung der Benutzung des Tastaturanschlusses durch simulierte Geräte stellt die Firmware verschiedene Dienste bereit.
  • Es gibt Dienste zur Freigabe und Abschaltung des Datenflusses von einer realen Tastatur. Bei Anforderung einer Abschaltung wartet der Dienst, bis der Strom unterbrochen werden kann, ohne daß Mehrbyte-Tastencodes aufgespalten werden, und springt dann mit einer Angabe des aktuellen Verschiebezustands zurück.
  • Der Dienst Sendeübergabe-Pufferspeicher sorgt für die Sendeübergabe eines zu sendenden Blöcken "Tastatur"daten. Die Daten werden als umgesetzt, nicht umgesetzt oder als Hilfsdaten identifiziert und entsprechend behandelt. Es ist ein Zeiger zu einer "Ausführungs"-Routine zusammen mit dem Datenblock vorgesehen. Der Dienst führt diese Routine aus, wenn die Daten im Pufferspeicher gesendet worden sind. Ein Fehler wird angezeigt, wenn ein anderer Pufferspeicher aktuell gesendet wird. Ist die reale Tastatur freigegeben, führt der Sendeübergabe-Pufferspeicher vor der Übertragung des Pufferspeichers eine Abschaltung der realen Tastatur und nach der Datenübertragung eine Freigabe der realen Tastatur aus.
  • Es ist ein Dienst Pufferspeicher-Abbruch vorgesehen, der die Aufhebung einer laufenden Pufferspeicherübertragung ermöglicht.
  • Es ist ein Dienst Eingestellte Pufferspeicher-Übertragungsgeschwindigkeit vorgesehen, der die Geschwindigkeit regelt, mit der Tastendruckdaten-Pufferspeicher zum Hauptprozessor gesandt werden. Anlaß hierfür ist es, gegen Überlauf des Tastatur-Pufferspeichers im Hauptprozessor zu schützen. Diese Verzögerung gilt nicht für Pufferspeicher von 8 Byte oder weniger; dies ermöglicht es, die Bytekette für einen einzelnen Tastendruck verzögerungsfrei zu senden.
  • Es ist ein Dienst zum Regeln der Taktfrequenz des Schnittstellen-Prozessors vorgesehen. Dieser Takt kann auf 2, 4 oder 8 MHz eingestellt werden. Die diese Frequenzregelung unterstützende Hardware ist in den V25-Chip integriert.
  • Es ist ein Dienst vorgesehen, der auf ein Ereignis vom (an das Tablett angeschlossenen) seriellen Anschluß des Schnittstellen- Prozessors, auf ein Ereignis von der Datenübertragung oder auf eine Zeitspanne (die vom Abrufer in Millisekunden vorschreibbar ist) wartet. Der Dienst kann auf eine beliebige Kombination dieser drei Ereignisse warten. Während des Wartezustandes setzt der Dienst den Schnittstellen-Prozessor auf dessen niedrigste Geschwindigkeit. Bei Eintreten des Ereignisses schaltet der Dienst die Geschwindigkeit des Schnittstellen-Prozessors auf den Anfangswert zurück und der Dienst kehrt zum Abrufer zurück.
  • Ferner ist ein Dienst vorgesehen, der es ermöglicht, Unterbrechungsvektoren zu verketten, derart, daß Übertragungen vom System zur Tastatur oder zum Hilfsgerät gelernt werden.
  • Die Firmware sieht ebenfalls einen ungesteuerten 32-Bit-Zähler vor, der jede Millisekunde weitergeschaltet wird. Es ist auch möglich, mit diesen 1-Millisekunde-Unterbrechungen zu verketten.
  • 1.2.5.3 Datenübertragungssteuerung
  • Die Firmware stellt auch einige Unterstützung für die Übertragung über die Datenübertragungsleitung bereit. Diese Übertragung wird nachstehend beschrieben.
  • 1.2.6 Zeigegerät
  • Vorzugsweise ist das Zeigegerät von einem Typ, der absolute Positionen angibt (z.B. Digitalisiertablett, Lichtgriffel). Eine Maus gibt üblicherweise relative Positionen an (d.h. Bewegung, nicht Position); die Verwendung einer Maus ist möglich, aber mit geringerem Vorteil.
  • Das Zeigegerät der bevorzugten Ausführungsform ist ein durchsichtiges Digitalisiertablett und ein mit ihm verbundener Griffel (Tablett und Griffel sind in Fig. 2 bei 34 angegeben), wie von der Scriptel Corporation erhältlich.
  • Ein zweckdienliches Tablett sollte Merkmale wie die nachstehenden aufweisen:
  • - Seine absolute Genauigkeit sollte das Zeigen auf ein einzelnes Pixel in der darunterliegenden Anzeige ermöglichen. Bei einer darunterliegenden Anzeige mit 100 Pixel je engl. Zoll (etwa 40 Pixel je cm) bedeutet dies, daß Gesamtfehler aus allen Ursachen geringer als ±0,005 engl. Zoll (etwa 0,13 mm) sein müssen.
  • - Weil das Tablett auf der Anzeige liegt, muß sie durchsichtig sein, die Lichtstreuung muß so klein wie möglich sein und die Höhe der Schreibfläche über der Anzeige sollte so klein wie möglich sein, um die visuelle Parallaxe zu verringern.
  • - Das Tablett sollte abriebfest sein, damit es den Gebrauch des Griffels sowie Stöße und Abrieb von anderen Gegenständen aushält.
  • - Das Tablett muß genügend rauschunempfindlich sein, derart, daß es in großer Nähe zum Sichtgerät und zu anderen Funkstörungsquellen innerhalb des Rechners exakt arbeitet.
  • - Die kleinen Abmessungen eines Notizblock-Rechners machen es als tragbares Gerät besonders nützlich. Somit ist geringe Leistungsaufnahme ebenfalls ein nützliches Merkmal.
  • - Das Tablett sollte in der Lage sein, wenigstens 120 Punkte je Sekunde zu digitalisieren.
  • - Es sollte vorgesehen sein, die Nähe des Griffels am Tablett zu erfassen, derart, damit das System einen mitlaufenden Cursor darstellen kann, wenn der Benutzer nicht schreibt oder nicht zieht, der Griffel sich aber nahe an oder auf der Fläche befindet. Das "Berühren" des Tabletts sollte erfaßt werden, und dies kann mit einem im vorderen Endstück angeordneten Schalter verwirklicht werden. Die Schalterkraft sollte so sein, daß ein Benutzer bei minimalen Aussetzungen bequem schreiben kann.
  • Die Digitalisiergeräte-Technologie wird in einem Artikel mit dem Titel "Digitizer Technology: Performance Characteristics and the Effects on the User Interface" (Digitalisiergeräte-Technologie: Leistungsmerkmale und Auswirkungen auf die Benutzerschnittstelle) (IEEE Computer Graphics and Applications, April 1987, S. 31 bis 44) beschrieben.
  • Eine Tablett-Schnittstelle 36 überträgt X-Y-Koordinatendaten vom Tablett an den Schnittstellen-Prozessor. Diese Schnittstelle umfaßt ein analoges Eingangsteil, einen Digital-Analog-Umsetzer, eine Mikrosteuerung 68HC11 (von Motorola Corporation) mit zugehöriger Logik, und einen PROM. Der PROM enthält Informationen, welche die Mikrosteuerung zum Korrigieren der unverarbeiteten Tablettdaten benutzt. Die Mikrosteuerung umfaßt eine Übertragungsleitung mit serieller Betriebsweise zum Schnittstellen-Prozessor 32.
  • Die Verbindung zwischen der Tablett-Schnittstelle 36 und dem Schnittstellen-Prozessor 32 ist eine bidirektionale, asynchrone Übertragungsleitung mit serieller Betriebsweise, die mit 19,2 KBit/Sekunde arbeitet. Nachstehend sind die wichtigsten Befehle angegeben, die der Schnittstellen-Prozessor an die Tablettsteuerung senden kann:
  • Rücksetzen
  • Das Tablett wird neu initialisiert und überprüft; Erfolgs- oder Fehlercodes werden an den Schnittstellen-Prozessor zurückgegeben.
  • Verlassen
  • Die Tablettsteuerung schaltet von der Tablettelektronik so viel wie möglich ab und wartet auf eine neuen Befehl.
  • Bereitschaft
  • Die Tablettsteuerung unterbricht das Senden von Daten, bis ein Benutzerereignis eintritt (z.B. Annäherung des Griffels oder, wenn bereits angenähert, Bewegung des Griffels); zu diesem Zeitpunkt startet die Tablettsteuerung das Senden von Daten.
  • Für Diagnostikzwecke können weitere Befehle benutzt werden.
  • Für jeden digitalisierten Punkt sendet die Tablettsteuerung fünf Datenbyte, in denen die Bitstellen folgendes bedeuten: SPITZE SEITE NÄHE
  • NÄHE gibt an, ob der Griffel sich innerhalb des Erfassungsbereiches des Tabletts befindet. SPITZE gibt an, ob der Schalter im vorderen Endstück betätigt ist. SEITE gibt an, ob der Schalter seitlich am Griffel betätigt ist. X und Y stellen die X-Y-Koordinatendaten dar.
  • Die von der Tablettsteuerung an den Schnittstellen-Prozessor gesandten Daten haben für die X- und die Y-Achse die Werte 0 bis 4095. Diese Werte entsprechen einer Fläche etwas größer als die Anzeige (damit am Anzeigenrand "Schaltflächen" vorgesehen werden können).
  • Für jede Einheit wird als Teil des Herstellungsprozesses eine 3- Punkt-Eichung durchgeführt (um fehlerhafte Justierung zwischen dem Digitalisiergerät und dem Sichtgerät zu korrigieren) und in einem stabilen Speicher gespeichert (z.B. Diskette, batteriegepuffertem CMOS RAM, EEROM). Die Eichparameter werden vom Schnittstellen-Prozessor zum Umwandeln der 12-Bit-Tablettdaten in Anzeigekoordinaten benutzt.
  • 1.2.7 Tinten/Masken-Anzeige-Pufferspeicher und -Steuerung
  • Die Maskenebene hat ein Bit je Pixel. Es wird benutzt, um (je Pixel) zu bestimmen, ob auf dem Anzeigeschirm die Daten vom normalen Anzeige-Pufferspeicher oder Daten von der Tintenebene dargestellt sind. Die Maskenebene kann auf mehr als ein Bit je Pixel erweitert werden. Dies würde beispielsweise die Wahl innerhalb einer Reihe von Bildkombinieranordnungen ermöglichen, z.B. AND (UND), OR (ODER) XOR (Exclusives ODER), NOR (NICHT- ODER) und NAND (NICHT-UND), zusätzlich zu der einfachen Wahl zwischen VGA und Tintendaten.
  • Beim System des gezeigten Beispiels hat die Tintenebene ein Bit je Pixel. Jedoch könnte diese Ebene mehr Bit je Pixel aufweisen, derart, daß die Tintenebene Graustufen oder Farbanzeige ermöglicht.
  • 1.2.8 Videomultiplexer
  • Der Videomultiplexer steuert den zum Sichtgerät geleiteten Strom Wiederauffrischdaten. Er wählt Pixelwerte aus dem Datenstrom der Anwendungsebene (VGA) oder dem Datenstrom der Tintenebene aus, abhängig von der Größe der Pixelwerte im Datenstrom der Maskenebene. Zum Kombinieren der Daten aus den beiden Ebenen können komplexere Operationen, z.B. XOR, benutzt werden. Solche Operationen können für das Sichtgerät als Ganzes oder (wenn die Maskenebene mehr als ein Bit je Pixel aufweist) je Pixel gewählt werden.
  • 1.2.9 Untersystem für Signalverarbeitung
  • Das System umfaßt ein Untersystem für die Signalverarbeitung. Dieses Untersystem sorgt für Audioaufzeichnung und -wiedergabe, arbeitet als Fax-Modem und bei Datenübertragungen als V22-Modem mit 2400 Bit je Sekunde. Dieses Untersystem umfaßt einen Digitalsignal-Prozessor 60 (320C25 von Texas Instruments) (mit eigenem Speicher 66), eine Analogschaltung 62 als Schnittstelle zur Außenwelt, und eine (anwendungsspezifische integrierte Schaltung) ASIC 64 mit Digitalschaltung zum Zusamemnschalten derselben untereinander und mit dem übrigen Teil des Systems (über einen Mikrokanal 70).
  • Für ein externes Mikrofon und einen Kopfhörer sind Verbinder vorgesehen. Ein internes Mikrofon ist ebenfalls vorgesehen.
  • 1.2.10 Verschiedene Übertragungsanschlüsse
  • Als zusätzliche Übertragungsanschlüsse sind vorgesehen:
  • - 2 serielle Anschlüsse (davon einer mit Standardverbinder, einer über den Modemanschlußverbinder zugänglich zur Benutzung bei nicht benötigtem Modem),
  • - ein SCSI-Anschluß 74,
  • - ein paralleler Anschluß nach Industriestandard.
  • Der parallele Anschluß und der standardmäßige serielle Anschluß sind unter Benutzung einer VL16C451B 72 (aus der VLSI-Logik) verwirklicht. Der zweite serielle Anschluß ist durch die ASIC 64 implementiert, die Teil des Untersystems zur Digitalsignalverarbeitung ist.
  • 1.2.11 Massenspeicher
  • Als Massenspeicher für Programme und Daten ist ein Festplattenspeicher 76 vorgesehen. Ein externer Diskettenspeicher kann über eine SCSI-Schnittstelle angeschlossen werden.
  • 1.3 VLSI-Implementierung
  • Die nachstehend genannten, bei Western Digital erhältlichen Chips implementieren eine Kernlogik 80:
  • - WD6000, periphere E/A-Steuerung
  • - WD6010, Steuerung und Prioritätsentscheidungseinheit für direkte Speicherzugriffe DMA,
  • - WD6036LP, Mikrokanalbus-Steuereinheit und Speicher-Steuereinheit, und
  • - WD5020, Adressen/Daten-Pufferspeicher.
  • Weitere Bauelemente sind:
  • - System-ROM 30b für 128K mal 8 Bit, enthält Software für den Einschalttest und das BIOS sowie einige Systemdaten. Es werden zwei Speicherchip 27C512 benutzt. Dieser ROM ist an den lokalen Kanalbus angeschlossen, der einen 8 Bit breiten Datenbus aufweist. Nach dem Starten des Systems kann das BIOS in den Systemspeicher kopiert werden, um schnelleren Zugriff zu erzielen und das Umschalten des System-ROM in Bereitschaftsbetrieb zwecks Stromersparnis zu ermöglichen.
  • - Ein Echtzeittaktgenerator 82 ist durch ein MC146818A implementiert. Dieses Bauelement enthält auch einen RAM mit 64 Byte, der von einer integrierten Batterie gespeist wird.
  • - Ein nicht flüchtiger CMOS-RAM 84 bietet einen batteriegepufferten 8-KByte-Speicher zum Speichern von Systemkonfigurationsdaten.
  • 1.3.1 Optimierungsprogramm
  • Das "Optimierungsprogramm" 88 ist ein VLSI-Chip, der eine Vielzahl von Funktionen kombiniert, darunter:
  • - Taktgenerierung, einschließlich einer programmgesteuerten Frequenzumschaltung (im Notizblock-Rechner werden Änderungen der Systemtaktfrequenz benutzt, um die Leistungsstärke zu verbessern),
  • - Erzeugung von Steuersignalen und der Decodierung von E/A- Registeradressen für den SCSI-Anschluß und den Festplattenspeicher aus Mikrokanalsignalen,
  • - verschiedene E/A-Register, einschließlich programmierbaren Optionswählregistern (die vom Optimierungsprogramm unterstützten Geräte erscheinen dem Hauptprozessor als ein einzelnes Mikrokanalgerät; die Merkmale solcher Geräte sind anderweitig beschrieben, z.B. in "IBM Personal System/2 Hardware Interface Technical Reference" (Technische Unterlage für Hardware-Schnittstelle zu IBM Personal Computer/2) und Register für Systemenergiekontrolle und zur Steuerung der Hauptprozessor-Taktfrequenz,
  • - Schnittstelle zwischen der optionalen Tastatur und dem Schnittstellen-Prozessor,
  • - Schnittstelle zwischen dem Hauptprozessor und dem Schnittstellen-Prozessor.
  • Die zuletzt genannten zwei Funktionen sind für die vorliegende Erfindung von größtem Belang.
  • Die Schaltung im Optimierungsprogramm zur Implementierung der Interprozessor-Schnittstelle 50 und der Tastatur-Schnittstelle 54 ist in Fig. 4 näher dargestellt.
  • Für die Übertragungsleitung zwischen dem Hauptprozessor und dem Schnittstellen-Prozessor, die als "Datenübertragungsleitung" bekannt ist, stellt das Optimierungsprogramm vier Register bereit: ein Datenregister und ein Zustandsregister für jede Übertragungsrichtung (110, 112, 114 und 166 entsprechend Fig. 4).
  • Um bereitzustellen, was dem Hauptprozessor als Standard-Tastaturanschluß erscheint (ein de-facto-Standard, vertreten durch Rechner wie die IBM-Reihe PS/2), implementiert das Optimierungsprogramm weitere vier Register: ein Datenregister und ein Zustandsregister für jede Übertragungsrichtung (120, 122, 124 und 126 entsprechend Fig. 4).
  • Ferner implementiert das Optimierungsprogramm ein Unterbrechungs-Identifikationsregister und ein Unterbrechungs-Maskenregister für den Schnittstellen-Prozessor.
  • Wenngleich der Schnittstellen-Prozessor die Übertragung von Tastenanschlägen zum Hauptprozessor bearbeitet, stellt das Optimierungsprogramm die bidirektionale serielle Schnittstelle zur (optionalen) realen Tastatur bereit. Dies entlastet den Schnittstellen-Prozessor von der Überwachung des Tastatur-Takt- und Tastatur-Datenleitungen und ermöglicht es dem Schnittstellen- Prozessor, ganze Byte zu verarbeiten. Zur Unterstützung des Anschlusses einer realen Tastatur stellt das Optimierungsprogramm ein (bidirektionales) Datenregister 130 und ein Zustandsregister 132 bereit, auf das der Schnittstellen-Prozessor zugreift.
  • Der Schnittstellen-Prozessor sendet Tastenanschläge (sowohl von der optionalen realen Tastatur als auch von der simulierten Tastatur) im Dialogverkehr mit dem Hauptprozessor, als wäre der Schnittstellen-Prozessor eine 8042er Tastatursteuerung. Da eine Standard-Tastatursteuerung auch Daten von einem Hilfsgerät (üblicherweise einer Maus) liefert, ebenso wie von einer Tastatur, steht diese Möglichkeit ebenfalls zur Verfügung.
  • Das Optimierungsprogramm stellt ebenfalls eine "Datenübertragungs"verbindung zwischen dem Schnittstellen-Prozessor und dem Hauptprozessor her, die für verschiedene Übertragungen zwischen den Prozessoren genutzt wird, einschließlich der Programmübertragung zum Zeitpunkt der Ureingabe und sonst nach Bedarf.
  • 1.3.2 BGA (Basisgrafikzugriff)
  • Die BGA 86 (Basisgrafikzugriffseinrichtung) (Fig. 5) enthält den größten Teil der Schaltung, welche die Anzeige der Benutzerschnittstelle für simulierte Geräte ermöglicht, ohne daß die Anzeigedaten der aktuellen Anwendung verfälscht werden. Die BGA ist insbesondere ein VLSI-Chip, der den größten Teil der Tinten/Masken-Schaltung implementiert und Daten- und Steuersignale für die Anzeige bereitstellt. Fig. 6 zeigt nähere Einzelheiten des Multiplexers 46 (gemäß Fig. 2), der in dem in Fig. 5 mit "Videodaten-Austausch" bezeichneten Block enthalten ist.
  • Die BGA empfängt Daten von der VGA-Steuerung, liefert dem Schnittstellen-Prozessor Lese/Schreib-Zugriffe zum Tinten/Masken-Speicher und sendet Daten an das Sichtgerät. Die BGA überwacht VGA-Signale (Horizontalsynchronsignal, Vertikalsynchronsignal und Pixeltakt, der je 8-Pixel-Byte einmal auftritt - 4 Pixel aus der oberen Hälfte der Anzeige und 4 Pixel von der unteren Hälfte der Anzeige), damit sie in der Lage ist, die Daten aus den Tinten/Masken-Daten und die von der VGA-Steuerung generierten Daten zu koordinieren. Die BGA benutzt auch ein Punkttaktsignal (das Achtfache des Pixeltaktes) aus der VGA- Steuerung, um ihre Operation in eine Schrittfolge zu bringen.
  • Die VGA-Steuerung ist für die Verwendung mit DRAM-Vorrichtungen (dynamischen RAM-Speichern) ausgelegt, die einen im Mehrfachbetrieb arbeitenden Speicheradressenbus aufweisen. Der VGA-Anzeige-Pufferspeicher ist jedoch mit PSRAM (pseudo-statischen RAM- Speichern) implementiert, die einen multiplex betriebenen Adressenbus nicht benutzen; folglich werden Adressen-Zwischenspeicher benutzt. Ferner umfaßt die BGA Schaltungen zur Ableitung der Steuersignale für die PSRAM von den durch die VGA-Steuerung generierten Signalen.
  • Mit der BGA ist ein 512-KByte-Speicherarray als Hauptspeicher für den Schnittstellen-Prozessor verbunden. Davon werden 76800 Byte für den Tinten/Masken-Anzeige-Pufferspeicher benutzt. Dieser Anzeige-Pufferspeicher erscheint dem Schnittstellen-Prozessor als zwei 38400-Byte-Blöcke (sh. Fig. 9): die Tintenebene beginnt bei 30000H, die Maskenebene bei 70000H. In Verbindung mit der Zuweisung von Adressen an einzelne Speichervorrichtungen ergibt sich aus diesen Speicherstellen, daß die Tintenebenen- und Maskenebenendaten für jedes Pixel in einem getrennten Speicher gespeichert sind (sh. Fig. 8). Es ist somit möglich, beim Wiederauffrischen der Anzeige beide zur gleichen Zeit wiederzugewinnen. Der übrige Teil dieses Speichers (etwa 400 KByte) stehen dem Schnittstellen-Prozessor zum Speichern von Programmen und Daten zur Verfügung.
  • Dieses Array ist mit vier Video-RAM(VRAM)-Speichern mit einer Kapazität von 256K mal 4 Bit (524.256 Chip) implementiert. Es sind dies Vorrichtungen mit zwei Anschlüssen: jeder Chip hat einen 4-Bit-Lese/Schreib-Anschluß, der über eine Schaltungsanordnung in der BGA mit dem Schnittstellen-Prozessor verbunden ist. Ferner weist jeder Chip einen Nur-Lese-Anschluß mit seriellem Zugriff auf, der zum Bereitstellen von Daten an das Sichtgerät benutzt wird. Jeder Chip hat vier 512-Bit-Schieberegister, die zum Ansteuern des Anschlusses mit seriellem Zugriff benutzt werden. Nachdem die Schieberegister geladen worden sind, kann ein Zugriff über den anderen Anschluß stattfinden, während die seriellen Daten über den seriellen Anschluß ausgegeben werden.
  • 1.3.2.1 Speicherbereichszuordnung
  • Es ist wünschenswert, daß der Schnittstellen-Prozessor ein Byte der Tintendaten (Tintendaten für 8 Pixel) in einem Speicherzyklus und ein Byte der Maskendaten (Maskendaten für 8 Pixel) in einem Speicherzyklus lesen kann. Es ist ebenfalls wünschenswert, daß Tinten- und Maskendaten bei der Anzeigenwiederauffrischung beide für 8 Pixel zugleich verfügbar sind.
  • Fig. 7 kennzeichnet die ersten 16 Pixel der oberen Anzeigehälfte mit T1 bis T16 und die ersten 16 Pixel der unteren Anzeigehälfte mit B1 bis B16. Dem LCD-Sichtgerät werden Daten mit jeweils 8 Bit gleichzeitig zugeleitet; diese 8 Bit entsprechen 4 Pixel in der oberen und 4 Pixel in der unteren Anzeigehälfte. Fig. 8 zeigt, auf welche Weise die Tinten- und Maskendaten in den vier VRAM-Chip gespeichert werden; z.B. ist IT1 das Tintenbit für das Pixel T1; MT1 das Maskenbit für das Pixel T1; IB1 das Tintenbit für das Pixel B1, MB1 das Maskenbit für das Pixel B1. Im VRAM0 und VRAM1 sind Tinten- und Maskendaten an den Adressen 30000H bis 395FFH gespeichert. Im VRAM2 und VRAM3 sind Tinten- und Maskendaten an den Adressen ab 39600H gespeichert. Nach der Adresse 3FFFFH geht die Adressierung in zyklischer Folge weiter, so daß die Tinten- und Maskendaten mit den Adressen 30000H bis 32BFFH weitergehen.
  • Für die Anzeigenwiederauffrischung werden Daten gemäß Fig. 8 aus den VRAM als 16 Signale SD0 bis SD 15 gelesen. Fig. 6 zeigt die Art und Weise, in der diese Signale in zwei Multiplexern 150 und 152 (von denen jeder von zwei Satz zu acht Signalen einen abruft) verarbeitet und mit den Daten aus der VGA-Steuerung in einer Gruppe von acht 1-Bit-Multiplexern 160 kombiniert.
  • Für die Anzeigenwiederauffrischung werden Daten aus den VRAM- Speichern in der in Fig. 8 dargestellten Schrittfolge gelesen.
  • Beispielsweise überträgt das serielle Datenbit 0 (SD0) ein Titenbit, sodann ein Maskenbit, dann ein Tintenbit usw. Zu dem Zeitpunkt, in dem SD0 ein Tintenbit überträgt, überträgt SD4 ein Maskenbit. Die Multiplexer 150 und 152 werden benutzt, um 4-Bit- Halbbyte aus jedem VRAM bei jedem zweiten 16-Bit-Wort auszulagern.
  • Beim Zugriff des Schnittstellen-Prozessors auf den Speicher steuert die BGA das Adressieren der VRAM so, daß ein Byte der Tintendaten aus einer ungeradzahligen Adresse in einem VRAM und einer geradzahligen Adresse in einem anderen VRAM zusammengesetzt ist. Wenngleich auf die Tintendaten an sequentiellen Adressenplätzen des Schnittstellen-Prozessors zugegriffen wird (beginnend mit 30000H), werden sie in jedem weiteren Speicherplatz in jedem der VRAM-Chip gespeichert (in den VRAM-Chip wechseln sie sich mit Maskendaten ab, die dem Schnittstellen-Prozessor als bei 70000H in einem höheren Adressenbereich beginnend erscheinen). Somit erscheinen die Tintendaten im Adressenraum des Schnittstellen-Prozessors als ein durchgehender Datenblock (30000H bis 395FFH) und die Maskendaten erscheinen im Adressenraum des Schnittstellen-Prozessors als ein weiterer durchgehender Datenblock (70000H bis 795FFH). Dies ist in Fig. 9 dargestellt, wobei die Bitkennzeichnungen denen der Fig. 8 und den Pixeln gemäß Fig. 7 entsprechen.
  • 1.3.2.2 Anzeigezeitsteuerung
  • Die VGA-Steuerung 38 generiert Anzeigedaten, die einem Bit je Pixel entsprechen. Diese Daten werden jeweils mit 8 Pixel gleichzeitig bereitgestellt: für 4 Pixel in der oberen und 4 Pixel in der unteren Anzeigehälfte. Die VGA-Steuerung generiert ferner 3 Steuersignale, welche diese Anzeigedaten begleiten: ein Pixeltakt, einmal je 8 Pixel (Byte) Daten, ein Horizontalsynchronsignal und ein Vertikalsynchronsignal. Die VGA-Steuerung liefert ebenfalls einen "Punkttakt", der das Achtfache der Pixeltaktfrequenz beträgt.
  • 1.3.2.3 Mehrfachnutzung von VGA- und Tintendaten
  • Der in Fig. 5 mit Videodatenaustausch bezeichnete (in Fig. 6 mit näheren Einzelheiten dargestellte) Block enthält acht Einbit- Multiplexer 160. Jeder Multiplexer benutzt ein Maskenbit zum Ansteuern entweder eines VGA-Datenbits oder eines Tintenbits. Bei jedem Pixeltakt werden 4 sequentielle Pixel für die obere Anzeigehälfte und 4 sequentielle Pixel für die untere Anzeigenhälfte zur gleichen Zeit von der Multiplexer-Gruppe verarbeitet. Die Steuersignale von der VGA-Steuerung (Pixeltakt, Horizontal- und Vertikalsynchronsignale) werden so verzögert, daß sie mit den Videodaten von der BGA synchronisiert sind.
  • 1.3.2.4 Anzeigebetriebsarten
  • Normalerweise liefert die BGA Anzeigedaten, die eine Kombination der Daten aus der VGA, Tinten- und Maskenebenen sind. Für jedes Pixel liefert die BGA VGA-Daten oder Tintendaten, je nach dem Wert der Daten der Maskenebene.
  • Die BGA sorgt für das Unterdrücken von Daten von einer oder von beiden Datenquellen (VGA und Tinte/Maske). Dies ermöglicht die Entfernung aus der Anzeige von Anwendungs- oder Schnittstellendaten, ohne daß der entsprechende Anzeige-Pufferspeicher gelöscht werden muß.
  • Die BGA kann auch in einen "Bereitschafts"modus geschaltet werden, um den Stromverbrauch zu senken. In dieser Betriebsart kann der Schnittstellen-Prozessor auf alle VRAM-Speicherplätze zugreifen. Die VGA-Daten werden zum Sichtgerät geleitet, ohne daß die VGA-Zeitsteuerungssignale überwacht werden. Der Bereitschaftszustand der BGA kann durch Setzen eines Bits im BGA-Steuerregister aktiviert werden und kann durch das VGA-Bereitschaftssignal aktiviert werden (das an einem externen Stift vom Optimierungsprogramm empfangen wird). Bei Aktivierung durch das BGA-Bereitschaftssignal werden die Anzeigeausgangstreiber gesperrt, so daß der Strom zum Sichtgerät abgeschaltet werden kann, ohne es zu beschädigen.
  • 1.3.2.5 Schnittstellen-Prozessor und Basisgrafikzugriff
  • Die BGA ermöglicht dem Schnittstellen-Prozessor Zugriff auf den VRAM, als wäre er ein 120-ns-DRAM mit zwei Wartezuständen.
  • Die BGA steuert die Bereitschaftsleitung des Schnittstellen-Prozessors während der Zeit, in der das Videoschieberegister geladen wird, so daß die Anzeige wiederaufgefrischt werden kann, indem der VRAM in einer Weise benutzt wird, daß er für den Schnittstellen-Prozessor transparent ist.
  • Das BGA-Steuerregister enthält die nachstehend genannten Bit: BGA-Bereitschaft, Austastung VGA, Austastung Tinte. Es ist auch ein Nur-Lese-Register vorhanden, das die Nummer der aktuellen Abtastzeile angibt.
  • 1.3.2.6 BGA und Optimierungsprogramm
  • Die BGA ist an alle Adressenleitungen des Schnittstellen-Prozessors angeschlossen, wogegen das Optimierungsprogramm mit einer Teilmenge dieser Leitungen verbunden ist. Somit ist die BGA zur Generierung eines Chipabrufsignals für das Optimierungsprogramm ausgelegt. Dieser Chipabruf ist für jede E/A-Adresse im Bereich 10H bis 17H aktiv, das sind Adressen, die den acht abgebildeten E/A-Registern des Optimierungsprogramms entsprechen.
  • 1.3.2.7 Kontraststeuerung
  • Der Anzeigekontrast wird durch den Ausgang eines 8-Bit-D/A-Umsetzers gesteuert. Das Datenregister dieses Umsetzers ist in einen Speicherplatz abgebildet. Das Einschreiben in diesen Speicherplatz hat die doppelte Wirkung, daß sowohl in den VRAM geschrieben wird als auch ein neuer Wert in einem externen D/A- Umsetzer zwischengespeichert wird. Somit kann der laufende Wert des Umsetzers durch Lesen dieser VRAM-Adresse ermittelt werden.
  • 1.4 Übertragungen zwischen Haupt- und Schnittstellen-Prozessoren
  • Der Hauptprozessor und der Schnittstellen-Prozessor kommunizieren miteinander über zwei getrennte Mechanismen. Der Schnittstellen-Prozessor überträgt Tastendruck- und Mausdaten über die E/A-Anschlüsse und ein normalerweise einer Tastatursteuerung zugeordnetes Protokoll. Ebenfalls vorgesehen ist ein getrennter Übertragungsmechanismus für allgemeinere Zwecke (der als die "Datenübertragungsleitung" bezeichnet ist).
  • 1.4.1 Register der Datenübertragungsleitung
  • Die Datenübertragungsleitung zwischen dem Hauptprozessor und dem Schnittstellen-Prozessor benutzt für jeden Prozessor ein Empfangsdatenregister (8 Bit), ein Sendedatenregister (8 Bit), ein Zustandsregister (von dem zwei Bit benutzt werden) und ein Steuerbit (das in einem Register mit Steuerbit für andere Zwecke lokalisiert ist). Das Senderegister des einen Prozessors ist das Empfangsregister des anderen Prozessors.
  • Der Schnittstellen-Prozessor greift auf diese Informationen über E/A-Anschlüsse mit festen Adressen zu.
  • Die Register der Datenübertragungsleitung gehören zu denen, welche vom Optimierungsprogramm unterstützt werden. Ein POS- Register 103 des Optimierungsprogramms stellt vier Bit bereit zum Steuern der Adressenabbildung von Registern der Datenübertragungsleitung und von Zustandsregistern sowie von einigen anderen vom Optimierungsprogramm unterstützten Registern.
  • Ein Zustandsbit zeigt an, ob im Empfangsregister dieses Prozessors Daten vorhanden sind. Das andere Zustandsbit zeigt an, ob das Senderegister dieses Prozessors leer ist.
  • Das Steuerbit ermöglicht es dem entsprechenden Prozessor festzustellen, ob eine Unterbrechung generiert wird, wenn der andere Prozessor Daten sendet.
  • 1.4.2 Protokoll der Datenübertragungsleitung
  • Es sind Protokolle für Übertragungen auf niedriger Ebene definiert, durch die der Hauptprozessor Diagnostikdaten vom Schnittstellen-Prozessor erhalten, Daten (einschließlich Software) in den Hauptspeicher des Schnittstellen-Prozessors übertragen, stromsparende Strukturen steuern und einen grundlegenden Mechanismus bereitstellen kann, durch den im Hauptprozessor ablaufende Anwendungen mit dem Schnittstellen-Prozessor kommunizieren können.
  • Für allgemeine Übertragungen zwischen dem Hauptprozessor und dem Schnittstellen-Prozessor kann ein BIOS-Aufruf im Hauptprozessor einen Datenblock an den Schnittstellen-Prozessor senden.
  • Für allgemeine Übertragungen vom Schnittstellen-Prozessor zum Hauptprozessor werden durch die Anwendung bereitgestellte Datenverarbeitungseinrichtungen der Datenübertragungsleitung benutzt. BIOS-Aufrufe sind vorgesehen, um eine Datenverarbeitungseinrichtung der Datenübertragungsleitung zu installieren, den aktuellen Treiberzustand der Datenübertragungsleitung zu sichern (ein anderer BIOS-Aufruf ist vorgesehen, der den Speicherplatz angibt, der zum Sichern des aktuellen Treiberzustands der Datenübertragungsleitung benötigt wird), und einen zuvor gesicherten Treiberzustand der Datenübertragungsleitung wiederherzustellen. Durch die Benutzung von Datenverarbeitungseinrichtungen der Datenübertragugnsleitung haben mehrere Anwendungen gemeinsam Zugriff auf die Datenübertragungsleitung. Das BIOS zählt die Anzahl der Sicherungen, abzüglich der Wiederherstellungen, und in jeder Sicherung des Treiberzustands der Datenübertragungsleitung ist der einschlägige Zählstand (d.h. die Verschachtelungsebene) enthalten. Bei der Wiederherstellung eines Treiberzustandes der Datenübertragungsleitung wird dieser Zählstand überprüft und ein Fehler angezeigt, wenn die Verschachtelungsebene nicht übereinstimmt.
  • Um Daten vom Schnittstellen-Prozessor zu erhalten, muß eine Anwendung eine Routine bereitstellen, die auf zurufen ist, wenn Daten vom Schnittstellen-Prozessor empfangen werden. Die Anwendung meldet die Datenverarbeitungsroutine bei dem Treiber der Datenübertragungsleitung durch den obengenannten "Installations"-BIOS-Abruf an.
  • Weil in dem Sicherungsbereich für den Treiberzustand ein Zeiger zur aktuellen Datenverarbeitungseinrichtung der Datenübertragungsleitung gespeichert ist, können die Datenverarbeitungseinrichtungen bequem verkettet werden. Stellt eine Verarbeitungseinrichtung fest, daß die Daten nicht für sie sind, kann die Verarbeitungseinrichtung auf die Verarbeitungseinrichtung verschieben, auf die im Zustandsicherungsbereich verwiesen wird, der bei der Installation der Verarbeitungseinrichtung geschaffen wurde.
  • Diese BIOS-Aufrufe geben ein Zustandsbyte für die Datenübertragungsleitung zurück, dessen Bit die nachstehend genannten Fehlerbedingungen anzeigt: Übertragung läuft, Empfang läuft, unzulässige Rückstellung des Treiberzustands von der Datenübertragungsleitung, Zeitsperre, Belegt und ungültige Funktionsanforderung.
  • Ferner sind BIOS-Aufrufe vorgesehen für die Ausführung spezifischer, sich auf den Schnittstelle-Prozessor beziehender Aktionen, z.B. Rücksetzung des Schnittstellen-Prozessors, Echodaten (zum Überprüfen der Datenübertragungsleitung), Diagnostikergebnisse holen (gibt die Diagnostikergebnisse für die Firmware des Schnittstellen-Prozessors an), Übertragungsanfangscode und -daten (und Sprung auf eine spezifizierte Adresse), Aktivieren und Deaktivieren der F1-Tasten-Generierung, Höhe der Batteriespannung anfordern, Änderungszustand der Firmware des Schnittstellen-Prozessors anfordern.
  • Bei der Ureingabe des Systems kommt es zu bestimmten Situationen (z.B. Konfigurationsfehler, auf die der Benutzer aufmerksam zu machen ist), in denen der Benutzer aufgefordert wird, die Taste F1 zu drücken oder das Tablett zu berühren (um anzuzeigen, daß der Benutzer die Fehlermeldung gesehen hat). Nachdem der Hauptprozessor an den Schnittstellen-Prozessor einen Befehl zum Aktivieren der F1-Tasten-Generierung gesandt hat, sendet der Schnittstellen-Prozessor einen F1-Tastendruck, wenn der Benutzer zum ersten Mal das Tablett berührt. Es gibt einen Befehl, mit dem der Hauptprozessor dann die Generierung der F1-Taste deaktivieren kann (z.B. damit nicht ein zweiter F1-Tastendruck generiert wird, wenn der Benutzer nach dem Drücken der F1-Taste auf der optionalen Tastatur das Tablett berührt).
  • Der Hauptprozessor unterstützt auch bestimmte Befehle, die vom Schnittstellen-Prozessor ausgelöst werden, z.B. Ein- und Ausschalten der Hintergrundbeleuchtung im Sichtgerät, Setzen der Zeitsperre für die Festplatte, Einstellen der maximalen Systemtaktfrequenz, Einstellen der minimalen Systemtaktfrequenz, Auslösen der Systemabschaltung, Auslösen der Systemwiederanschaltung.
  • Treiber für Übertragungen mit dem Schnittstellen-Prozessor über die Datenübertragungsleitung können nach zwei Methoden implementiert werden. Wie vorstehend beschrieben, kann im BIOS eine Datenverarbeitungseinrichtung für die Datenübertragungsleitung vorgesehen werden. Alternativ kann ein Treiber die Unterbrechung der Datenübertragungsleitung übernehmen; voraussichtlich würde dieser Treiber dann auf den normalen Treiber im BIOS für die Datenübertragungsleitung verweisen, wenn zweckdienlich.
  • 1.4.3 Tablettdaten über die Datenübertragungsleitung
  • Der Hauptprozessor kann anfordern, daß ihm Tablettdaten zugesandt werden. Nach einer solchen Aufforderung sendet der Schnittstellen-Prozessor dem Hauptprozessor Tablettdaten in 5- Byte-Blöcken, sobald sie verfügbar werden und nicht durch die Schnittstelle der simulierten Geräte benutzt werden. Außerdem kann der Hauptprozessor das Tablett dadurch steuern, daß er Befehle an den Schnittstellen-Prozessor sendet, die diesen anweisen, Befehle an das Tablett zu senden. Der Hauptprozessor kann dem Schnittstellen-Prozessor einen Befehl zusenden, der die Eichparameter vorschreibt, die vom Schnittstellen-Prozessor zu benutzen sind. Der Hauptprozessor kann einen Befehl senden, der den Schnittstellen-Prozessor anweist, Tablettdaten zu verwerfen, die auf ihre Absendung zum Hauptprozessor warten.
  • Das BIOS für den Hauptprozessor sieht einen Mechanismus vor, mit dem eine im Hauptprozessor ablaufende Anwendung sich für den Empfang von Tablettdaten anmelden kann.
  • Es können mehr als eine Anwendung gleichzeitig angemeldet werden; in diesem Fall kann eine Kette gebildet werden, derart, daß Tablettdaten, die nicht von einer Anwendung benutzt werden, anderen Anwendungen bereitgestellt werden können, die in der Kette weiter hinten liegen.
  • 2 simulierte Geräte
  • Dem Benutzer steht eine Reihe simulierter Geräte zur Verfügung: Tastatur, Maus, Handschrifteingabegerät.
  • Einige der "simulierten Geräte" simulieren tatsächlich sowohl gegenüber den Anwendungsprpogrammen als auch gegenüber dem Benutzer Geräte, für die viele bestehende Anwendungsprpogramme zum Zusammenwirken ausgelegt sind. Andere sehen für den Benutzern den Geräten, für welche die Anwendung ausgelegt ist, nicht ähnlich aus. Beispielsweise hat das Handschrifteingabegerät eine weniger enge Beziehung zu einem Standardgerät. In einem Sinne simuliert das Handschrifteingabegerät (dem Benutzer gegenüber) ein Handschrifteingabegerät, wie es zuvor nur bei Anwendungen verfügbar war, die speziell für die Eingabe von Handschrift entwickelt waren. Aus der Sicht der Anwendung simuliert dieses Gerät eine Tastatur; wenngleich (reale oder simulierte) Tasten nicht betreoffen sein brauchen, stellt das Handschrifteingabegerät der Anwendung Tastendruckdaten bereit.
  • Diese Eingabeeinrichtungen sind "Geräte" in dem Sinne, daß sie dem Benutzer erscheinen, als existierten sie unabhängig von jedem speziellen Anwendungsprogramm und weitgehend unabhängig voneinander. Vom Optischen her hat die Geräteanzeige keinen ständigen störenden Einfluß auf die Anwendungsanzeige. Dies kann erreicht werden, indem für jedes getrennte Anzeigeflächen vorgesehen werden, z.B. getrennte Fenster in einer großen Anzeigefläche. Jedoch benutzt die bevorzugte Ausführungsform eine Schirmfläche sowohl für die Anwendungsanzeige als auch für die Anzeige der Schnittstellengeräte. Dem Benutzer erscheinen die Geräte auf der Anwendungsanzeige aufzuliegen.
  • Ferner sind die Geräte bei der Implementierung von den verschiedenen Anwendungsprogrammen, mit denen sie benutzt werden können, unabhängig. Bei der bevorzugten Ausführungsform werden sie sogar zum Teil unter Benutzung eines Prozessors implementiert, der von dem Prozessor getrennt ist, auf dem die Anwendung läuft.
  • Um zwischen der Gerätesimulation und der Anwendung eine größtmögliche Unabhängigkeit zu schaffen (und die gemeinsam genutzte Anzeigeleistung zu verbessern), ist, wie weiter oben beschrieben, Hardwareunterstützung für die Anzeige des simulierten Gerätes vorgesehen. Es ist eine Anzeigeebene des Typs vorgesehen, für den viele vorbestehende Anwendungen ausgelegt sind. Auch sind zwei zusätzliche Ebenen vorgesehen: eine Tintenebene und eine Maskenebene. Der für ein Pixel angezeigte Wert wird durch die Werte für dieses Pixel aus jeder der drei Ebenen folgendermaßen bestimmt; wenn das Pixel der Maskenebene einen Wert hat, wird der Pixelwert der Anwendungsebene angezeigt; wenn das Pixel der Maskenebene einen anderen Wert hat, wird der Pixelwert der Tintenebene angezeigt.
  • Die Tintenebene wird so bezeichnet, weil eine ihrer Funktionen die Darstellung "elektronischer Tinte" ist, so daß gelegentlich der Griffel, das Tablett und das Sichtgerät so arbeiten, wie wenn der Benutzer mit einer Feder auf Papier schreibt. Berührt der Griffel das Tablett, wird, wenn der Griffel über das Tablett bewegt wird, eine Tinten"spur" angezeigt. Bei vielen Operationen wird keine Tinte benutzt; beispielsweise braucht die Anzeige nicht mit Tinte übersät werden, wenn mit dem Griffel ein Ikon gezogen wird. Andererseits braucht elektronische Tinte nicht auf die Tintenebene beschränkt sein. Während die simulierten Geräte nur die Tintenebene nutzen, kann eine spezielle Anwendung Tinte in die Anzeigeebene bringen, die für die Benutzung durch diese Anwendungen vorgesehen ist. Beispielsweise kann eine Anwendung "Zeichnen" elektronische Tinte abhängig von Bewegungen eines Zeigegerätes darstellen.
  • Ferner ist eine Reihe Funktionsschaltflächen vorgesehen. Die in Fig. 1 dargestellten sind GERÄTE, KONTRAST, FREESTYLE, INFO (16a, 16b, 16c bzw. 16d). Diese sind an einem Abschnitt des Tabletts angeordnet, der sich über die normale Bildschirmanzeige hinauserstreckt. Es sind dauerhafte Bezeichnungen aufgedruckt, welche die Teile des Tabletts bezeichnen, die je als eine dieser Schaltflächen funktionieren. Alternativ können die Bezeichnungen für die Funktionsschaltflächen in der Anzeige enthalten sein und/oder die Funktionsschaltflächen können durch einen Mechanismus implementiert sein, der vom Tablett getrennt ist. In jedem Fall sollte eine (von der Anzeige getrennte) Möglichkeit bestehen, die Kontrast- Schaltfläche zu identifizieren, wenn der Kontrast so schlecht eingestellt ist, daß die Anzeige leer aussieht.
  • Die Funktionsschaltflächen werden u.a. bei der Steuerung der simulierten Geräte benutzt.
  • Die GERÄTE-Schaltfläche 16a wird zum Aktivieren und Deaktivieren einer "Geräteschale" benutzt. Beim erstmaligen Drücken der GERÄTE-Schaltfläche durch den Benutzer (durch Berühren des der Geräte-Schaltfläche entsprechenden Tablettabschnitts), wird eine Schale mit den verfügbaren simulierten Geräten angezeigt. Der Benutzer kann dann aus dieser Schale die Geräte herausziehen, die er zu aktivieren wünscht, und kann in die Schale jene Geräte hineinziehen, die zuvor aktiv waren, aber gegenwärtig vom Benutzer nicht benötigt werden. Der Benutzer drückt dann die GERÄTE-Schaltfläche erneut, wodurch die Schale und die Geräte darin (aus der Anzeige) entfernt werden. Zweckmäßigerweise erscheinen die Geräte in der Schale als kleine Ikone (die als Stempel bezeichnet werden). Wenn die Schale angezeigt wird, werden Geräte, die auf dem Schirm vorhanden sind, weil sie zuvor aus der Schale herausgenommen wurden, ebenfalls in Stempelform angezeigt. Bei Entfernung der Schale wird die visuelle Darstellung jedes der verbleibenden Geräte (d.h. der nicht in der Schale angeordneten Geräte) durch die größeren, üblicherweise komplexeren Ikone ersetzt, welche die visuellen Formen der simulierten Geräte haben, die der Benutzer "betätigt".
  • Die INFO-Schaltfläche 16d wird zum Aktivieren und Deaktivieren eines Informationsgerätes benutzt. Der Benutzer berührt zuerst die INFO-Schaltfläche und verursacht dadurch die Anzeige eines INFO-Ikons. Zuerst zeigt das INFO-Ikon Informationen über die Art und Weise seiner Benutzung an. Der Benutzer berührt dann eine Funktionsschaltfläche oder ein Ikon, über die oder das der Benutzer informiert werden möchte. Dies verursacht das Erscheinen von sich auf das berührte Objekt beziehenden Informationen im Textbereich des INFO-Ikons.
  • Die KONTRAST-Funktionsschaltfläche 16b steuert ein Aussehensmerkmal der Anzeige: ihr Kontrast. Diese Schaltfläche hat zwei Abschnitte: einen zum Verstärken des Kontrastes, eine zum Schwächen des Kontrastes. Diese Schaltflächen wiederholen ihre Betätigung selbsttätig jede halbe Sekunde, wobei die anfänglichen Kontrastinkremente klein und später größer sind (wenn der Griffel während relativ langer Zeit angepreßt gehalten wird).
  • Funktionsschaltflächen können zum Aktivieren spezieller Anwendungen vorgesehen sein. Z.B. ist eine FREESTYLE-Schaltfläche 16c vorgesehen (FREESTYLE ist eine Handelsmarke der Wang Laboratories, Inc.), die eine Annotations- und Schreibtisch- Management-Anwendung aktiviert. Insbesondere führt diese Schaltfläche dazu, daß Daten vom Schnittstellen-Prozessor zu einem residenten Freestyle-Treiber im Hauptprozessor gesandt werden, der zusätzliche Freestyle-Komponenten lädt. Der Schnittstellen-Prozessor macht für den Hauptprozessor Tablettdaten verfügbar, die nicht von der vom Schnittstellen- Prozessor bereitgestellten Benutzerschnittstelle benutzt werden. Diese Tablettdaten werden von der Freestyle-Anwendung gelesen.
  • Diese Funktionsschaltflächen können auf verschiedene Weise organisiert sein. Beispielsweise können Freestyle und Info aus der Geräteschale heraus verfügbar sein; für einige oder alle Geräte können getrennte Funktionsschaltflächen vorhanden sein, im Extremfalle unter Ausschaltung einer Geräteschale. Es können Schaltflächen für zusätzliche Funktionen vorgesehen sein, z.B. eine LICHT-Schaltfläche zum Steuern der Hintergrundbeleuchtung des Sichtgerätes.
  • 2.1 Gemeinsame Merkmale der Benutzerschnittstellen-Ikone
  • Die Ikone sind rechteckig (oder eine Kombination von Rechtekken). Alternativ können die Ikone von anderer Gestalt sein.
  • Jedoch ist das Ziehen von Ikonen und die Feststellung, ob der Griffel sich in einem Ikon befindet, bei Rechtecken wirkungsvoller auszuführen.
  • Die meisten Ikone enthalten "Subikone", die üblicherweise speziellen Funktionen entsprechen und häufig als Schaltflächenbereiche funktionieren, die der Benutzer mit dem Griffel berührt.
  • Fig. 10 ist eine Bildschirmanzeige mit Ikonen für drei simulierte Geräte. Hinter diesen Ikonen befindet sich die Anzeige für eine Textaufbereitungs-Anwendung, die Eingaben in Form von Tastendruck- und Mausdaten zu empfangen vermag und nicht zum Empfang von Tablettdaten ausgelegt ist.
  • Das gezeigte Tastatur-Gerät hat vier Tastengruppen (eine Gruppe Funktionstasten, eine Haupttastatur nach dem QUERTY- System, ein Tastenblock für die Cursorsteuerung und ein Zahlenblock) sowie Zieh- und Konfigurations-Schaltflächen.
  • Das gezeigte Handschrift-Gerät weist oben Schaltflächen zum Dimensionieren, Einstellen der Kästchenbreite, Einfügen, Entfernen und Ziehen auf. Ebenso sind dargestellt Schaltflächen zum Rollen der angezeigten Zeichenkästchen nach links und rechts, zum Senden einer Zeichenzeile und zum Ein- und Abschalten von drei Zeichengruppen (damit der Zeichenerkennungsalgorithmus richtig angewiesen wird). Im Hauptteil des Ikons sind eine Reihe von Kästchen dargestellt, in welche der Benutzer Zeichen einschreiben kann. Bei dem in dieser Figur gezeigten Beispiel ist das Erkennungsergebnis über dem Kästchen angegeben, in das Zeichen eingeschrieben sind.
  • Das dargestellte Maus-Gerät weist Schaltflächen zum Dimensionieren, Setzen des Skalierungsfaktors und zum Ziehen sowie drei "Maustasten"-Steuerschaltflächen auf (eine entsprechend der linken Taste einer Maus, eine entsprechend der rechten Taste einer Maus und eine zum wirkungsvollen gleichzeitigen Drücken sowohl der linken als auch der rechten Taste). Unter den Schaltflächenbereichen ist eine Mausbewegungsfläche dargestellt, die der Mausunterlage entspricht, welche mit einer realen Maus benutzt werden kann.
  • In Fig. 10 sind die Schaltflächen GERÄTE, KONTRAST, FREESTYLE und INFO an der rechten Seite der Anzeige angeordnet. Dies stellt eine Alternative zu dem in Fig. 1 gezeigten Beispiel dar, in der diese Schaltflächen entlang dem oberen Abschnitt angeordnet sind.
  • 2.1.1 Rückkopplung der Griffelposition zum Benutzer
  • Wenn sich der Griffel in Erfassungsnähe zum Tablett befindet (was bedeutet, daß das Tablett den Griffel hinreichend erfassen kann, um Daten der X-Y-Position zu liefern), kann die Griffelposition dem Benutzer angezeigt werden. Dies ist besonders hilfreich, wenn das Tablett nicht auf der Anzeige angeordnet ist. In jedem Fall vereinfacht es die Aufgabe des Benutzers, kleine Ziele zu treffen und unterstützt den Benutzer bei der Überwindung kleiner Abweichungen zwischen der Stelle, an welcher der Griffel für den Benutzer auf der Anzeige erscheint und der Stelle auf der Anzeige, an der das System den Griffel lokalisiert. Wenn sich der Griffel in der Nähe befindet ist, wird sein Ort im allgemeinen von einem Cursor angezeigt. In einigen Fällen ist das Aussehen dieses Cursors positionsabhängig, liefert daher eine weitere Rückkopplung. In anderen Fällen erscheint die Positionsrückkopplung in Form der Helldarstellung spezieller Bereiche der Anzeige abhängig von der Griffelposition (z.B. Tasten auf der simulierten Tastatur).
  • 2.1.2 In Anlage halten des Griffels
  • In vielen Fällen ist die Zeit, in welcher der Griffel in Anlage gehalten wird, von keiner besonderen Bedeutung. In anderen Fällen kann das Halten des Griffels in Anlage zur automatischen Wiederholung einer Funktion führen. Beispielsweise führt das Halten des Griffels in Anlage an einer simulierten Tastaturtaste zu einer automatische Wiederholung ähnlich dem Gedrückthalten einer Taste einer realen Tastatur. In noch anderen Fällen verursacht das in Anlage Halten des Griffels, daß eine Funktionsschaltfläche "blockiert" wird. Beispielsweise simuliert eine simulierte Maustaste ein Drücken und Loslassen, wenn der Griffel nur kurze Zeit in Anlage gehalten wird, wogegen eine simulierte Maustaste auch nach Abheben des Griffels "gedrückt" bleibt, wenn der Griffel lang genug in Anlage gehalten war.
  • 2.1.3 Regeln auf der Benutzer-Schnittstelle für die Behandlung von Zielwertfehlern durch den Benutzer
  • Für die Bestimmung der Arbeitsweise der Benutzer-Schnittstelle werden verschiedene Regeln angewandt, die das Verständnis des Benutzers der Interpretierung der Griffelaktionen vereinfacht.
  • 2.1.3.1 Regel "Berührungspunkt"
  • In den meisten Fällen ist eine Regel "Berührungspunkt" nützlicher als die Kombination der nachstehend beschriebenen Regeln für das Verlassen eines Ikons und das Hineinziehen in ein Ikon.
  • Die Berührungspunkt-Regel besagt, daß die durchzuführende Funktion durch den ersten Punkt bestimmt wird, den der Griffel berührt. Ähnlich der Regel des "in ein Ikon Hineinziehens" wird eine Funktion nicht aktiviert, wenn beim Hineinbewegen in ein Ikon eine Grenzlinie überschritten wird. Jedoch ermöglicht es diese Regel, daß eine Funktion auch dann weiterdurchgeführt wird, wenn der Griffel ein Ikon verläßt.
  • Die Berührungspunkt-Regel ist insbesondere für das simulierte Mausgerät nützlich. Dies Regel erlaubt es dem Benutzer, ein kleines Maus-Ikon auf dem Schirm zu halten, während die Benutzung großer Griffelbewegungshübe möglich ist, um Mausdaten zu generieren, solange der Strich in der Mausbewegungsfläche beginnt.
  • 2.1.3.2 Regel "In das Ikon Hineinziehen"
  • Entsprechend der Regel "In das Ikon Hineinziehen" wird die Funktion eines Ikons nicht durch das Hineinziehen des Griffels in das Ikon ausgelöst. Wird eine Funktion entsprechend der Berührpunkt-Regel ausgeführt, setzt sich diese Funktion fort, auch wenn der Griffel in ein anderes Ikon bewegt wird. Es ist notwendig, innerhalb eines Ikons (oder Subikons) zu berühren, um die Funktion des Ikons zu aktivieren.
  • 2.1.3.3 Regel "Ikon Verlassen"
  • Zum Ziehen und Maßändern wird eine Alternative zur Berührungspunkt-Regel angewandt. Befindet sich der Griffel in einem Zieh- oder Maßändern-Subikon und verläßt das Subikon,
  • - wird die Ikonfunktion unterbrochen,
  • - ignoriert die Benutzerschnittstelle alle Tablettdaten, bis der Griffel vom Tablett abgehoben wird.
  • Es ist gleichgültig, ob der Griffel sich von einem anderen Ikon oder von einem leeren Bereich her in das Ikon hineinbewegt hat.
  • Diese Regel bleibt während des Ziehens und des Maßänderns erhalten, weil sich während dieser Operationen das Ikon so verstellt, daß der Griffel das Ikon nicht verläßt. Wenn jedoch das größte Maß erreicht ist, oder der Benutzer versucht, das Ikon über eine Grenzlinie zu ziehen, kann der Griffel das Maß- oder Zieh-Subikon verlassen, wodurch die Operation beendet wird.
  • Alternativ kann diese Regel anstelle der Berührpunkt-Regel als Grundregel angewandt werden.
  • 2.1.4 Ziehen
  • Alle Geräte haben ein Subikon "Ziehen". Dieses ermöglicht es dem Benutzer, das Gerät in der Anzeige zu verschieben, damit beispielsweise ein Überdecken eines besonders wichtigen Teils der Anwendungsanzeige vermieden wird. Dieses "Subikon" braucht in keiner besonderen Weise optisch angegeben werden. Statt dessen kann es die gesamte Ikonfläche einnehmen, die von anderen Subikons nicht beansprucht wird.
  • Das Subikon Ziehen ist in der rechten oberen Ecke des Geräte- Ikons angeordnet.
  • Berührt der Griffel ein Subikon Ziehen, wird das Geräte-Ikon durch eine XOR-"Umrandung" ersetzt, die dem Benutzer anzeigt, daß die Zieh-Funktion aktiviert worden ist.
  • Bis der Griffel abgehoben wird (oder sich aus dem Subikon Ziehen herausbewegt, wie nachstehend erläutert wird), verschiebt sich diese Umrandung auf dem Bildschirm, um der Bewegung des Griffels zu folgen; mit anderen Worten, der Benutzer kann das Ikon "ziehen".
  • Kein Teil des Ikons wird einen Rand der Tintenebene-Anzeige überschreiten. Wenn somit das Ikon gegen einen Rand geschoben wird, verfolgt das Ikon den Griffel nicht weiter und der Griffel kann aus dem Subikon Ziehen herausbewegt werden. In diesem Fall endet die Zieh-Operation, und es wird keine weitere Aktion ausgeführt, bis der Griffel abgehoben wird.
  • 2.1.5 Dimensionieren
  • Alle größenveränderlichen Geräte weisen ein Subikon "Größe".
  • Das Subikon Größe ist in der linken oberen Ecke des Geräteikons angeordnet. Andere mögliche Positionen des Subikons Größe liegen auf dem gesamten Außenumfang des Ikons oder in allen Ecken des Ikons.
  • Berührt der Griffel ein Subikon Größe, wird das Geräteikon durch eine schwarzweiße Umrandung ersetzt (zur Verringerung der Verarbeitungsbelastung kann eine durch eine XOR-Funktion erzeugte Umrandung verwendet werden). Dadurch wird dem Benutzer angezeigt, daß die Größenfunktion aktiviert worden ist.
  • Bis der Griffel abgehoben wird (oder sich aus dem Subikon Größe herausbewegt, wie nachstehend erläutert wird), ändert sich die Größe dieser Umrandung, um der Bewegung des Griffels zu folgen. Der Ort der rechten unteren Ecke des Ikons bleibt fest. Mit anderen Worten, der Benutzer zieht die linke obere Ecke des Ikons.
  • Kein Teil des Ikons wird einen Rand der Tintenebene-Anzeige überschreiten. Für ein Ikon können Größenbeschränkungen gelten (für waagerechte und/oder senkrechte Abmessungen und/oder für den Flächeninhalt eines Ikons). Diese Faktoren können zu Größenänderungen führen, welche die Verfolgung des Griffels beenden, und folglich kann sich der Griffel aus dem Subikon Größe herausbewegen.
  • Üblicherweise verändern Funktionskästchen (Subikons) ihre Größe entsprechend der Gesamtgröße eines Ikons. Beim Handschrift-Ikon verändern die Buchstabenkästchen ihre Größe nicht. Es ändert sich die Anzahl der sichtbaren Kästchen.
  • Der Benutzer kann die Teile der Tastatur anwählen, die aktiv werden sollen (siehe die nachstehende Beschreibung der Schaltfläche für die Konfiguration des Tastaturgerätes), statt die Größe des Tastaturgeräte-Ikons zu ändern.
  • Andere Anordnungen für die Dimensionierung können benutzt werden, z.B. Größenänderung von Subikons in jeder Ecke oder durch Ziehen einer Grenzlinie (z.B. wie bei Windows von Microsoft Corporation).
  • 2.1.6 Stapeln
  • Die Ikone in der Anzeige sind danach sortiert, wie kurz die Zeit seit dem letzten Zugriff auf sie ist (berührt oder aktiviert über eine Funktionsschaltfläche, wie das INFO-Ikon). Ikone können sich überlappende Bereiche in der Anzeige bedekken. Wenn sich Ikone überlappen, ist das Ikon, das zuletzt adressiert wurde, im überlappenden Bereich angezeigt.
  • Wenn somit Ikone in Gruppen zusammengefaßt werden, sieht sie der Benutzer als ein sich überlappender Ikonenstapel, in dem die zuletzt benutzten Ikone höher im Stapel angeordnet sind. Die Berührung irgendeines Teils eines Ikons macht das Ikon zum obersten Ikon. Ein Ikon, das von anderen Ikonen vollständig bedeckt ist, kann nicht berührt werden, bis die Ikone über ihm genügend verschoben sind und einen Teil des bedeckten Ikons freilegen.
  • 2.1.7 Senden eines Zeichens
  • Das Senden eines Zeichens zur Anwendung geschieht (vorzugsweise über Hardware) in der Weise, daß es für die Anwendung wie ein von der Tastatur kommendes Zeichen ist. Das Senden eines Zeichens macht es somit notwendig, die E/A-Operationen auf unterer Ebene durchzuführen, die eine Tastatur ausführen würde. Eine der Folgen davon ist, daß statt Codes für ASCII- Zeichen Tastencode-Daten (Informationen über das Drücken und Loslassen von Tasten) gesendet werden.
  • Die Firmware des Benutzer-Schnittstellen-Untersystems verfolgt den Umschalt- und Umschaltfeststell-Zustand (einschließlich Änderungen auf Grund von Tastenbetätigungen der optionalen realen Tastatur), so daß, wenn z.B. Benutzer im umgeschalteten Zustand einen Kleinbuchstaben schreiben, ein simuliertes Gerät an die Firmware eine Schrittfolge senden kann, die Informationen über Nicht Umgeschaltet/Zeichen/Umgeschaltet enthalten. Die Firmware wandelt dann diese Codes nach Bedarf um und sendet sie über den Tastaturanschluß an den Hauptprozessor.
  • Die Übertragung auf niedriger Ebene zwischen dem Schnittstellen-Prozessor und dem Hauptprozessor, durch die simulierte Tastendruckdaten an den Hauptprozessor gesandt werden, ist die gleiche, die zum Senden tatsächlicher Tastendruckdaten benutzt wird, wenn eine reale Tastatur angeschlossen ist.
  • Die Niederpegel-Software, welche die Übertragung mit dem Hauptprozessor steuert, ist Teil der Firmware des Schnittstellen-Prozessors. Sie empfängt Daten von der Benutzer- Schnittstelle der simulierten Geräte und sendet sie als Tastendruckdaten, Mausdaten oder Tablettdaten, je nach Identifizierung der Daten.
  • Diese Software auf unterer Ebene kann sicherstellen, daß eine Mehrcode-Schrittfolge, die für ein Gerät (z.B. eine simulierte Tastatur) gesendet wird, durch das Senden von Daten für ein anderes Gerät (z.B. eine reale Tastatur) nicht unangemessen unterbrochen wird.
  • Diese Software auf unterer Ebene verfolgt den Umschaltzustand. Die Benutzer-Schnittstelle der simulierten Geräte ist zuständig für die zweckdienliche Benutzung der Informationen über den Umschaltzustand (wie weiter oben beschrieben).
  • 2.2 Gerät zur Erkennung von Handschriftzeichen
  • Das Handschrifterkennungs-Eingabegerät stellt einen Mechanismus bereit, durch den handschriftliche Zeichen einer Anwendung so präsentiert werden, als kämen sie von einer Tastatur. Das Hauptteil des Ikons für das Handschrifterkennungs-Eingabegerät enthält Kästchen, in welche der Benutzer Zeichen einschreiben kann. (Andere Wege zur genauen Begrenzung der Zeichenpositionen können benutzt werden, z.B. Vermerkzeichen, #- Zeichen, schraffierte Bereiche. Ferner können Zeichenerkennungstechniken angewandt werden, die nicht auf solchen expliziten Zeichenabstand zurückgreifen.) Nach dem Schreiben von Zeichen unterstützen die Kästchen die Aufbereitung der Zeichenkette. Es ist auch möglich, andere Algorithmen für das Parsing von Strichen in Zeichen zu verwenden (Strichsegmentierung) und Anzeigekästchen entbehrlich zu machen.
  • Die Strichdaten werden von einem Erkennungsalgorithmus verarbeitet, der alle druckbaren Zeichen erkennt, wenn sie leserlich als diskrete Zeichen geschrieben sind. Die dem Erkennungsalgorithmus zugeleiteten Daten enthalten Beschreibungen der Striche, ihre Lage innerhalb des Zeichenkästchens und eine Angabe zum Zeichensatz (z.B. alphanumerisch, nur alphabetisch usw.). Es kann auch ein komplexerer Algorithmus für zusammenhängende Zeichen benutzt werden.
  • Ein vorgelernter Algorithmus ist nützlich, weil der Benutzer es nie nötig hat, den Algorithmus zu schulen; dennoch hat der Benutzer die Option zur Schulung des Algorithmus, derart, daß er einige besonders charakteristische Zeichen verarbeiten kann. Algorithmen, die lernen müssen, und solche, die nicht lernfähig sind, sind ebenfalls verwendbar.
  • Nach dem Erkennen von Zeichen kann der Benutzer die Kette erkannter Zeichen aufbereiten und die Kette zur Anwendung senden.
  • 2.2.1 Zeichen schreiben
  • Jedes Zeichen wird in ein getrenntes Kästchen eingeschrieben. Zeichen können in die Kästchen in beliebiger Reihenfolge geschrieben werden; es ist nicht notwendig, die Zeichen von links nach rechts zu schreiben. Beim Schreiben in die Kästchen wird elektronische Tinte angezeigt, wodurch das Schreiben mit herkömmlicher Feder simuliert wird.
  • 2.2.1.1 Strichparsing und Zeichenerkennung
  • Ein handschriftliches Zeichen besteht aus einem oder mehreren handschriftlichen Strichen. Damit ein Strich als handgeschrieben betrachtet werden kann, muß der Griffel in der Schreibfläche des Ikons starten. Dieser Bereich erstreckt sich etwas (z.B. um etwa 1/8 engl. Zoll (etwa 3 mm)) über die Zeichenkästchen hinaus. Der Strich endet, wenn der Benutzer den Griffel abhebt oder wenn der Griffel den Zeichenschreibbereich verläßt. Handgeschriebene Striche werden mit elektronischer Tinte angezeigt; dies gibt dem Benutzer exakt an, als was die Zeichenstriche vom System verstanden werden (und hilft dem Benutzer beim Schreiben).
  • Der Strich-Pufferspeicher ist zweiteilig: ein Teil enthält Daten mit der Tablettauflösung (diese höhere Auflösung ist für Zeichenerkennung besser geeignet), der andere Teil enthält Daten mit der Anzeigeauflösung (Pixelauflösung) (zur Verwendung beim Steuern der Anzeige mit elektronischer Tinte).
  • Die "mittlere" Position eines Striches bestimmt das Kästchen, "in" dem er ist. Bei einer einzelnen Reihe von Zeichenkästchen wird der Mittelwert der X-Koordinaten der digitalisierten Punkte im Strich zur Bestimmung des Kästchens benutzt, dem ein Strich zuzuordnen ist.
  • Strichparsing - Algorithmus A
  • Im Folgenden wird ein Versuch zur Lösung der strichweisen Verarbeitung dargestellt:
  • Ist kein vorhergehender Strich vorhanden,
  • - wird der Erkennungsalgorithmus auf diesen Strich angewandt,
  • - wird das Ergebnis in dem Kästchen angezeigt, "in" dem sich der Strich befindet, und
  • - wird dieser Strich gesichert.
  • Sind ein oder mehrere vorhergehende Striche vorhanden und befinden sie sich im gleichen Kästchen,
  • - wird dieser Strich zur Gruppe hinzugefügt,
  • - wird der Erkennungsalgorithmus auf die Strichgruppe angewandt,
  • - wird das neue Ergebnis im entsprechenden Kästchen angezeigt, und
  • - werden die Striche in der Gruppe gesichert.
  • Sind ein oder mehrere vorhergehende Striche vorhanden und befinden sie sich in einem anderen Kästchen,
  • - wird die Tinte im anderen Kästchen gelöscht (wogegen das Erkennungsergebnis für dieses Kästchen weiter angezeigt wird),
  • - werden die vorhergehenden Striche beseitigt,
  • - wird der Erkennungsalgorithmus auf diesen Strich angewandt,
  • - wird das Ergebnis in dem Kästchen angezeigt, "in" dem sich der Strich befindet, und
  • - wird dieser Strich gesichert.
  • Berührt der Griffel außerhalb des Schreibbereiches oder gibt es während einer bestimmten Zeitdauer (z.B. etwa 1 Sekunde) keine neuen Striche,
  • - wird die verbleibende Tinte gelöscht (wogegen die Erkennungsergebnisse weiter angezeigt werden), und
  • - werden die vorhergehenden Striche beseitigt.
  • Strichparsing - Algorithmus B
  • Im Nachstehenden wird ein etwas unterschiedlicher Lösungsversuch zur Strichverarbeitung beschrieben.
  • . Hole den nächsten Strich (wird ein Strich zurückgegeben, befindet er sich im Handschriftbereich) und füge ihn dem (möglicherweise leeren) Strich-Pufferspeicher hinzu.
  • . Ermittle das Zeichenkästchen, dem der Strich zugeordnet ist, durch Berechnen der "mittleren" X-Position des Striches (bei einer einzelnen Kästchenreihe). Ignoriere den Strich, wenn seine mittlere Position im linken oder rechten Rand des Handschriftbereiches (statt in einem der Kästchen) liegt.
  • . Zeigt der Strich an, daß der Benutzer vier oder mehr Zeichen durchstreichen wollte, entferne die Zeichen (und ihre Kästchen), die durchgestrichen sind (jene Kästchen, in denen die Linie mehr als die Hälfte durchstreicht).
  • . Befindet sich der Strich nicht im laufenden Kästchen,
  • - mache aus diesem das laufende Kästchen,
  • - lösche die den vorhergehenden Strichen entsprechende Tinte,
  • - zeige das Erkennungsergebnis für das vorhergehende Kästchen an,
  • - verschiebe den neuen Strich zum Beginn des Strich-Pufferspeichers (unter Beseitigung der anderen Striche),
  • - lösche jedes Erkennungsergebnis, das sich im Kästchen befinden kann,
  • - zeichne den neuen Strich neu.
  • . Hole ein Erkennungsergebnis für die Striche im Strich- Pufferspeicher.
  • . Warte die nächste Griffelberührung ab. Dauert es zu lange, oder berührt der Griffel als nächstes außerhalb des Handschriftbereiches,
  • - zeige das Erkennungsergebnis im laufenden Kästchen an,
  • - lösche die Tinte für die vorhergehenden Striche, und
  • - lösche den Strich-Pufferspeicher.
  • 2.2.1.2 Tintenlöschung und Anzeige des Erkennungsergebnisses
  • In herkömmlichen Systemen wurden verschiedene Algorithmen für die zeitliche Steuerung der Tintenlöschung und der Anzeige der Erkennungsergebnisse benutzt. Es ist wünschenswert, dies bei minimaler Ablenkung vom Schreibprozeß und so zu tun, daß der Benutzer über den Erkennungsprozeß hilfreiche Rückkopplung erhält.
  • Das Erkennugnsergebnis kann in einem Bereich angezeigt werden, der von dem getrennt ist, in dem der Benutzer schreibt. Dies zeigt Fig. 10, in dem Platz für die Erkennungsergebnisse über den Räumen dargestellt ist, in denen Zeichen handgeschrieben werden. In diesem Falle kann ein Erkennungsergebnis angezeigt werden, während die Tinte angezeigt bleibt.
  • Alternativ kann das Erkennungsergebnis in dem Bereich angezeigt werden, in dem der Benutzer Zeichen schreibt. Wenn jedoch in diesem Fall ein Erkennungsergebnis ohne Löschen der entsprechenden Tinte angezeigt wird, führt die Überdeckung zwischen dem Ergebnis und der Handschrift des Benutzers häufig zu einem unleserlichen Durcheinander, das den Benutzer ablenkt.
  • Ein bei einigen älteren Systemen benutzter Lösungsvorschlag besteht im Abwarten, bis der Benutzer eine ausreichend lange Pause eingelegt hat, und dann im sofortigen Löschen der Tinte für alle bis dahin geschriebenen Zeichen. Dieses abrupte Löschen lenkt an sich ab und hilft beim sofortigen Löschen vieler Zeichen dem Benutzer nicht dabei, Erkennungsfehler zu verstehen, die auf Segmentierungsfehler statt auf fehlerhafte Erkennung zurückgehen.
  • Die nachstehend angegebene Methode ist besser:
  • 1. Alle Koordinaten, die für das Markieren jedes geschriebenen Striches mit Tinte benutzt wurden, Strich für Strich in einem Pufferspeicher halten.
  • 2. Beim Gruppieren der Striche zu Zeichen durch die Segmentierungseinrichtung (vorzugsweise, aber nicht notwendigerweise in Echtzeit), benutzt das System die gepufferte Aufzeichnung der Koordinaten für diese Striche, um nur die Tinte für dieses segmentierte Zeichen zu löschen. Der Speicherplatz für die gepufferten Koordinaten, die der gelöschten Tinte entsprechen, kann dann wiederverwendet werden.
  • 3. Das System kann dann für diese Striche unmittelbar oder mit Verzögerung das/die Zeichen entsprechend dem erkannten Ergebnis frei von übriggebliebener Tinte anzeigen.
  • Bei diesem Verfahren können Ergebnisse Zeichen für Zeichen ohne abdeckende Tinte angezeigt werden. Weil die Umwandlung der segmentierten Striche in ein erkanntes Zeichen in eindeutiger Weise erfolgt, weiß der Benutzer ohne weiteres, wenn Segmentierungsfehler Ursache für Fehlerkennungen sind. Weil nur die Koordinaten für eine kleine Anzahl unverarbeiteter Striche gepuffert werden brauchen, kann der Speicherraum für Tintenkoordinaten verkleinert werden.
  • Dieses Verfahren ließe sich variieren für die Anzeige vorübergehender Erkennungsergebnisse am Ende des Striches statt nach vollständig segmentierten Zeichen. Außerdem kann das Verfahren so erweitert werden, daß als Teil eines Aufbereitungsprozesses statt der Erkennungsergebnisse die Tinte abgerufen und erneut angezeigt wird.
  • Das Ersetzen der vom Benutzer handgeschriebenen Zeichen durch Zeichen dramatisch unterschiedlichen Aussehens kann eine Ablenkung für den Benutzer darstellen. Beispielsweise erscheinen handgeschriebene Zeichen üblicherweise als eine Ansammlung relativ dünner Linien, und die Zeichenform ist üblicherweise einfach. Dagegen wäre ein leichter lesbares Zeichen im Bild stärker und könnte Serifen aufweisen.
  • Somit umfaßt das System gemäß dem gegenwärtigen Beispiel eine "handgeschriebene" Schrift für die Benutzung durch das Handschrift-Gerät. Die Zeichen dieser Schrift bestehen aus dünnen Linien. Statt daß die Linien aus absolut geraden oder gleichmäßig gekrümmten Segmenten bestehen, sind sie ferner etwas ungleichmäßig, wie es für ein handgeschriebenes Zeichen üblich ist.
  • Soll das Ergebnis einer Zeichenerkennung in dem Bereich angezeigt werden, in den der Benutzer geschrieben hat, wird das Zeichen in der handgeschriebenen Schrift angezeigt.
  • 2.2.2 Aufbereitung 2.2.3 Funktionsschaltflächen
  • Das Ikon für das Handschrifterkennungs-Eingabegerät hat mehrere Subikone:
  • - Ziehen,
  • - Dimensionieren,
  • - Kästchengröße,
  • - Rollen links.
  • - Rollen rechts,
  • - Einfügen,
  • - Entfernen, und
  • - Senden.
  • 2.2.3.1 Einfügen
  • Der Benutzer kann ein Leerkästchen einfügen, das für einen Zwischenraum leer gelassen werden kann oder in das der Benutzer ein Zeichen schreiben kann. Das Einfügen eines Kästchens geschieht durch Berühren der Funktionsschaltfläche Einfügen, die dunkelgeschaltet wird, um ihren aktiven Zustand anzuzeigen. Der Benutzer berührt dann in der Textzeile eine Stelle um anzuzeigen, daß da ein Leerkästchen eingefügt werden soll und zieht den Griffel über die Kästchenreihe. Das Einfügen von Leerkästchen beginnt an der Kästchengrenze, die der Stelle am nächsten liegt, die der Benutzer zuerst berührt hat (d.h. Berührung irgendwo zwischen der Mitte eines Kästchens und der Mitte des nächsten Kästchens führt zur Einfügung des Leerkästchens zwischen diese beiden Kästchen) und endet an der Kästchengrenze, die der Stelle am nächsten liegt, an welcher der Benutzer den Strich beendet hat.
  • 2.2.3.2 Entfernen
  • Der Benutzer kann Kästchen durch Benutzen der Funktionsschaltfläche Entfernen in ähnlicher Weise entfernen, wie Kästchen mit der Funktionsschaltfläche Einfügen eingefügt werden. Der Benutzer berührt die Funktionsschaltfläche Entfernen, die dunkelgeschaltet wird, um ihren aktiven Zustand anzuzeigen. Der Benutzer berührt dann ein zu entfernendes Kästchen und zieht den Griffel über die Kästchenreihe. Wenn der Benutzer den Griffel abhebt, werden die Kästchen ab dem Kästchen, an dem der Strich beginnt, bis zu dem Kästchen, an dem der Strich endet, entfernt.
  • 2.2.3.3 Löschen
  • Der Benutzer kann Zeichen in Kästchen löschen (leere Kästchen zurücklassend statt die Kästchen zu entfernen). Der Benutzer berührt die Funktionschaltfläche Löschen, die dunkelgeschaltet wird, um ihren aktiven Zustand anzuzeigen. Der Benutzer berührt dann ein zu löschendes Kästchen und zieht den Griffel über die Kästchenreihe. Wenn der Benutzer den Griffel abhebt sind die Zeichen ab dem Kästchen, in dem der Strich begonnen hat, bis zu dem Kästchen, in dem der Strich beendet wurde, gelöscht. Dies ist verschieden zur Operation "Entfernen", insoweit als bei "Löschen" die Kästchen bleiben.
  • 2.2.3.4 Rollen
  • Um eine zu große Abdeckung der Anwendungsanzeige zu vermeiden, kann der Benutzer wünschen, das Handschrift-Ikon klein zu halten.
  • Durch Berühren der Funktionsschaltfläche Rollen links werden alle Zeichen in den Textkästchen um ein Zeichen nach links verschoben. Wird der Griffel weiter in Anlage gehalten, wiederholt sich die Funktion automatisch. Die Funktionsschaltfläche Rollen rechts arbeitet in ähnlicher Weise.
  • Weil Tinte in den Kästchen gelöscht wird, wenn der Griffel außerhalb der Kästchen berührt (z.B. eine der Schaltflächen Rollen), wird keine Tinte verschoben, sondern nur erkannte Zeichen.
  • 2.2.3.5 Zeichen senden zur Anwendung
  • Bei der bevorzugten Ausführungsform arbeitet das Handschrifterkennungs-Eingabegerät im Pufferbetrieb, bei dem Zeichen erst dann gesendet werden, wenn der Benutzer die Funktionsschaltfläche Senden berührt. Alternativ kann eine zusätzliche Betriebsart vorgesehen werden (die mittels einer Funktionsschaltfläche des Handschrifterkennungs-Eingabegerätes anwählbar ist), bei der jedes Zeichen gesendet wird, sobald es fertiggeschrieben ist. Die ungepufferte Betriebsart umfaßt zwei anwählbare Unterbetriebsarten: Verarbeitung mit und ohne Rückschritt. Wenn bei eingeschalteter Verarbeitung mit Rückschritt der Benutzer ein Zeichen in eines der Kästchen der laufenden Zeile schreibt, das einem schon gesendeten Zeichen entspricht, wird eine Reihe von Rückschritten gesendet (die über die letzten Zeichen in der Zeile zurückführen), gefolgt von dem neu geschriebenen Zeichen, dem die Zeichen folgen, die auf der Zeile rechts von ihm erscheinen. Die Verarbeitung mit Rückschritt ist bei Anwendungen nützlich, bei denen der Benutzer (wenn er eine Tastatur benutzt) zurückgehen und neu tippen kann, um in der laufenden Zeile Korrekturen vorzunehmen.
  • Wenn der Benutzer in der gepufferten Betriebsart die Funktionsschaltfläche "Senden" berührt, werden alle Zeichen, die seit dem Zeitpunkt geschrieben wurden, in dem das Handschrift-Gerät gelöscht wurde, zur Anwendung gesendet und das Handschrift-Gerät wird gelöscht (z.B. werden die Angaben erkannter Zeichen aus der Anzeige entfernt). Sind keine Zeichen zu senden, wird ein Wagenrücklaufzeichen gesandt.
  • Wenn der Benutzer in der ungepufferten Betriebsart die Funktionsschaltfläche "Senden" berührt, wird ein Wagenrücklaufzeichen gesandt. Ist die Verarbeitung mit Rückschritt aktiviert, wird der Zeilenpufferspeicher ebenfalls gelöscht.
  • Wenn in der ungepufferten Betriebsart das Schreiben in einem Kästchen rechts von einem leeren Kästchen beginnt, wird für jedes leere Kästchen ein Zwischenraumzeichen gesandt. Werden Zeichen in der gepufferten Betriebsart gesendet, werden Zwischenraumzeichen für jedes leere Kästchen gesendet (mit der Ausnahme, daß keine Leerfelder nach einer Zahl gesendet werden).
  • 2.2.3.6 Verschieben und Dimensionieren
  • Die Subikone Ziehen und Dimensionieren arbeiten wie weiter oben für Ikone allgemein dargestellt wurde, wenngleich die Behandlung der Schreibkästchen besondere Aufmerksamkeit verdient. Wird die Höhe des Ikons geändert, wird die Höhe der Schreibkästchen proportional geändert. Wird jedoch die Breite des Ikons geändert, ändert sich die Breite der Kästchen, in die Zeichen geschrieben werden, nicht; statt dessen ändert sich die Anzahl der angezeigten Kästchen.
  • Zum Ändern der Breite der Kästchen berührt der Benutzer das Subikon Kästchengröße, zieht den Griffel um den Betrag, um den die Kästchengröße geändert werden soll, und hebt den Griffel ab. Sobald der Griffel das Subikon Kästchengröße berührt, ändert sich die Farbe des Subikons (z.B. in die Komplementärfarbe), um anzuzeigen, daß seine Funktion aktiviert wurde. Bis zum Abheben des Griffels verschiebt sich die rechte untere Ecke des rechten unteren Kästchens (wenn mehr als eine Kästchenreihe vorhanden ist) in derselben Weise, wie sich der Griffel verschiebt. Die linke obere Ecke des linken oberen Kästchens bleibt stationär. Weil die Größenänderung die gesamte Reihe der angezeigten Kästchen betrifft, kann es bei einer großen Änderung der Kästchengröße erforderlich sein, mehrere Striche im Subikon Kästchengröße auszuführen.
  • Beim Vergrößern der Abmessungen des Gesamtikons oder beim Verkleinern der Kästchen kann die Änderung so groß sein, daß ein oder mehrere zusätzliche Kästchen (oder eine oder mehrere zusätzliche Kästchenreihen) angezeigt werden. Diese sollten vorzugsweise an das rechte Ende der Zeile (oder bei zusätzlichen Zeilen unten) angesetzt werden, weil es wahrscheinlich ist, daß Benutzer erwarten, daß zusätzlichen Raum rechts und/oder unter ihrer laufenden Schreibposition entsteht.
  • 2.2.4 Behandlung von Mehrfachzeilen
  • Das Handschrifterkennungs-Eingabegerät kann auf die Behandlung von Mehrfachzeilen erweitert werden.
  • Werden mehrere Zeilen benutzt, muß die tatsächliche Begrenzung des laufenden Kästchens auf Kästchen darüber oder darunter ausgedehnt werden, um die zuvor gezogenen Striche einzuschließen. Dies ermöglicht es, einen Strich, z.B. das Oberteil des Buchstabens "T", einwandfrei mit anderen Strichen einzubeziehen, wenngleich er vollständig außerhalb der Begrenzung des gegenwärtigen Kästchens fällt.
  • Ist das Handschrift-Ikon so ausgebildet, daß mehr als eine Kästchenzeile behandelt werden kann, kann jeder der nachstehenden Lösungsversuche angewandt werden, um zu ermitteln, wenn Zeichen in der gepufferten Betriebsart zu senden sind:
  • 1. Wie bei einer einzelnen Zeile, keine Sendung, bis der Benutzer die Schaltfläche Senden berührt. Dann nach jeder Zeile einen Wagenrücklauf senden.
  • 2. Schreibt der Benutzer in einer neuen Zeile, Senden der Zeile, in welcher der Benutzer zuvor geschrieben hat, gefolgt von einem Wagenrücklauf.
  • 3. Schreibt der Benutzer in einer neuen Zeile, Senden von Wagenrückläufen und/oder Cursorbewegungscodes, in dem Versuch, (der Anwendung, an welche die Zeichen gesandt werden,) die Position der neuen Zeile in bezug auf die Zeile anzugeben, in welcher der Benutzer zuvor geschrieben hat.
  • Die zweite und die dritte Möglichkeit sind dieselben für den Fall, daß der Benutzer von oben her in aufeinanderfolgenden Zeilen schreibt und jeweils um eine Zeile nach unten geht.
  • 2.2.5 Automatische Wahl von Zeige- und Schreib- Betriebsarten
  • Es sind viele Systeme entwickelt worden, die einen Griffel benutzen und die Benutzung des Griffels als Zeigegerät (in der Funktion ähnlich einer Maus) oder zum Schreiben (z.B. für Handschrifterkennung oder für Annotationen) ermöglichen. Üblicherweise ist ein Mechanismus vorgesehen, mit dem der Benutzer explizit das Umschalten zwischen Zeige- und Schreibbetriebsarten auslöst. Zu Beispielen hierfür gehören: der Benutzer wählt vor dem Schreiben mit dem Griffel ein Menüpunkt aus; der Benutzer wählt vor dem Schreiben mit dem Griffel ein "Schreib"feld in diesem Feld aus (abhängig hiervon durch das System Anzeige eines Bereiches, in dem der Benutzer schreiben soll); der Benutzer doppelklickt mit dem Griffel vor dem Schreiben; der Benutzer drückt und hält einen Walzenschalter auf der Seite des Griffels vor dem Schreiben (vergleichbare Mechanismen sind vorgesehen zum Umschalten von Schreiben auf Zeigen). Das Erfordernis einer expliziten Aktion unterbricht den Tätigkeitsfluß des Benutzers vor und nach dem Schreiben.
  • Abwandlungen der vom Handschrifterkennungs-Gerät benutzten Technik bei der Ermittlung der Betriebsart, in welcher der Griffel arbeiten soll, sind auch außerhalb des Zusammenhangs mit dem Handschrifterkennungs-Gerät nützlich. Dies könnte beispielsweise bei "Formularausfüll"-Operationen benutzt werden, wenn vom Benutzer erwartet wird, daß er handschriftlich Informationen in bestimmte Bereiche eines angezeigten Formulars schreibt.
  • Diese Technik setzt voraus, daß das Schreiben in Bereichen der Anzeige stattfinden soll, die dem Benutzer als Schreibbereiche erscheinen. Angezeigte Bilder von herkömmlichen Papierformularen mit vom Benutzer zu beschreibenden Räumen sind Beispiele.
  • Die Technik ist folgende:
  • 1. Der Griffel arbeitet normalerweise im Zeigebetrieb,
  • 2. Berührt der Benutzer mit dem Griffel den Bereich eines Schreibfeldes (wie innerhalb einer rechteckigen Umrandung), ignoriert das System die Griffeldaten als Zeigeeingang und schaltet auf Schreibbetrieb um.
  • 3. Der Schreibbetrieb bleibt erhalten, unabhängig von der Griffelposition, bis der Griffel abgehoben wird.
  • Alternativ zur zweiten Regel kann das System als Zeigeereignis den anfänglichen Berührungspunkt und/oder den Abhebepunkt am Ende des Schreibbetriebs akzeptieren. Dies würde es ermöglichen, den Schreibbeginn auch zu benutzen, ein Eingabefeld "anzusteuern".
  • Alternativ zur dritten Regel könnte das System im Schreibbetrieb bleiben, bis der Benutzer (nach einem oder mehreren Schreibhüben) abhebt und an einer Stelle außerhalb des Schreibfeldes, einschließlich eines anderen Schreibfeldes, berührt (wenn in einem anderen Schreibfeld, würde das System unmittelbar wieder in den Schreibbetrieb umschalten).
  • Die Grundtechnik sieht für den Benutzer sichtbare Angaben zur Anordnung von Schreibfeldern vor und ermöglicht das direkte Umschalten zwischen Schreib- und Zeigebetrieb abhängig von der Berührungsstelle des Griffels.
  • 2.3 Tastatur
  • Das simulierte Tastaturgerät ermöglicht es Benutzern, Tastaturdaten durch "Tippen" mit dem Griffel auf einer Ikon-Tastatur einzugeben.
  • Die Merkmale des simulierten Tastaturgerätes, die sich auf Einzelheiten der Tastenbelegung beziehen, können bei der Systemeinstellung geändert werden (z.B. Nationalität des Zeichensatzes, QWERTY oder Dvorak, Anzahl der Funktionstasten).
  • Andere Merkmale der Tastatur können jederzeit durch Benutzen der Funktionsschaltfläche Konfiguration im Tastatur-Ikon geändert werden. Die Tastatur ist in Sektionen unterteilt, die zur Benutzung einzeln angewählt und auf mehrere Weisen physikalisch zueinander angeordnet werden können. Durch Entfernen von Sektionen der Tastatur, die nicht benötigt werden, kann die Sichtbarkeit der darunterliegenden Anwendungsanzeige in größtmöglichem Maße verbessert werden.
  • 2.3.1 Tippen
  • Der Code für eine Taste wird gesendet, wenn der Benutzer mit dem Griffel die Anzeige der entsprechenden Taste berührt. Die Berührung verursacht auch eine schattierte Darstellung der Taste, die eine Rückmeldung zum Benutzer darstellt. Bleibt der Griffel mit der "Taste" länger als etwa 1/2 Sekunde in Berührung, wiederholt sich die Taste automatisch mit einer Geschwindigkeit von etwa 5mal je Sekunde so lange, wie der Griffel in der Taste bleibt (Simulation einer Tastaturfunktion, die gelegentlich als Typematic-Wirkung bezeichnet wird). Die Wiederholverzögerung und - geschwindigkeit kann in einer Anwendung durch BIOS-Abrufe eingestellt werden.
  • Eine andere Lösung besteht darin, das Tastaturgerät als eine Ausnahme zu den Regeln "Ikon verlassen" und "In Ikon hineinziehen" zu betrachten und den Tastencode nicht bei Berührung, sondern beim Abheben zu senden. Es wäre dann nicht mehr so nötig, daß der Benutzer eine Taste mit dem Griffel exakt berührt; der Benutzer könnte eine beliebige Taste berühren, mit dem Griffel umherfahren (wobei durch Hellschaltung die Taste angezeigt wird, in der sich der Griffel jeweils befindet) und den Griffel in der gewünschten Taste abheben. Bei dieser Lösung kann jedoch die Typematic-Wirkung durch Halten des Griffels in Anlage nicht mehr genutzt werden.
  • 2.3.1.1 Betätigen der Umschaltschaltflächen
  • Bei einer herkömmlichen Tastatur werden Umschalttasten (z.B. Steuerung, Umschaltung, Alt-Umschaltung) benutzt, indem die Umschalttaste gedrückt gehalten wird, während eine andere Taste betätigt wird. Diese Wirkung ist bei einem einzelnen Griffel nicht möglich.
  • Somit arbeiten die Umschalttasten beim simulierten Tastaturgerät anders als ihre Gegenstücke auf einer herkömmlichen Tastatur. Eine Umschalttaste wird bei ihrer Berührung hervorgehoben um zu zeigen, daß sie betätigt wurde, und es werden Tastencodedaten gesandt, die anzeigen, daß die Taste gedrückt worden ist. Diese Hervorhebung bleibt so lange bestehen, wie die Umschalttaste "gedrückt" bleibt. (Dies unterscheidet sich von der Behandlung einer Taste, die keine Umschalttaste ist, bei der die Codes "Drücken" und "Loslassen" bei jeder Berührung der Taste gesendet werden.) Findet die nächste Berührung an einer Taste statt, die keine Umschalttaste ist, bleibt die Umschalttaste "gedrückt", bis der Griffel von dieser Taste abgehoben wird; zu diesem Zeitpunkt wird die Hervorhebung der Umschalttaste aufgehoben und es werden Tastencodedaten gesendet, die anzeigen, daß die Umschalttaste freigegeben wurde. Ist die nächste berührte Taste eine andere Umschalttaste, bleibt die erste weiterhin aktiv. Wenn der Griffel im aktiven Zustand einer Umschalttaste eine andere als eine normale Taste berührt, wird die Umschalttaste deaktiviert (Löschen der Hervorhebung und Senden zweckdienlicher Tastenfreigabedaten). Somit ist der übliche Weg des Sendens eines umgeschalteten Zeichens der, die Umschalttaste und danach die Taste des zu sendenden Zeichens zu berühren. Hält der Benutzer den Griffel auf der Taste des zu sendenden Zeichens lang genug, so daß sie sich wiederholt, wird das wiederholte Zeichen ebenfalls umgeschaltet. Sind bei der Berührung einer normalen Taste zwei Umschalttasten aktiv, senden beide Freigabedaten, sobald der Griffel von der normalen Taste abgehoben wird.
  • Es gibt auch Feststelltasten, z.B. für Großbuchstaben, Zahlenblock. Bei Berührung einer solchen Taste werden Tastencodes gesandt, die anzeigen, daß sie gedrückt und losgelassen wurde. Die "Feststell"wirkung dieser Tasten liegt nicht im simulierten Tastaturgerät, sondern in der Interpretation der Tasten, wie es bei vielen herkömmlichen Rechnertastaturen der Fall ist. Diese Tasten bleiben hervorgehoben, bis sie wieder berührt werden und zeigen dadurch ihren blockierten Zustand an.
  • 2.3.2 Funktionsschaltflächen
  • Das Tastaturikon enthält Subikone für
  • - Ziehen und
  • - Konfigurieren.
  • Man kann auch ein Subikon "Dimensionieren" vorsehen. Wie bei den anderen Geräteikons weist das Tastaturikon ein Subikon Ziehen auf, mit dem der Benutzer das Tastaturikon in der Anzeige verschieben kann. Die Tastatur kann umkonfiguriert werden.
  • 2.3.2.1 Konfigurieren der Tastatur
  • Nach Berühren der Schaltfläche Konfigurieren erscheint des Subikon Konfigurationseditor. Dieses Ikon ist dreiteilig: Speicherraum, Zusammenstellraum, und Steuerraum.
  • Für die vier Tastatursektionen sind 65 Konfigurationen möglich. Der Benutzer wählt effektiv eine dieser Konfigurationen aus, indem er Tastatursektionen so verschiebt, daß sie in einer Anordnung zusammengebracht werden, die einer der möglichen Konfigurationen nahekommt.
  • Ikone, welche die verfügbaren Tastatursektionen darstellen, sind im Speicherraum angezeigt. Der Benutzer zieht die gewünschten Sektionen in den Zusammenstellraum und positioniert sie in etwa entsprechend der gewünschten relativen Anordnung. Wird eine Sektion der Tastatur nicht gewünscht, wird sie aus dem Zusammenstellraum in den Speicherraum zurückgezogen.
  • Wird der Griffel abgehoben, werden Tastatursektionen, die sich im Zusammenstellraum befinden und so angeordnet wurden, daß sie einer der möglichen Konfigurationen nahekommen, automatisch neu positioniert, um die Tastatur in dieser Konfiguration darzustellen. Die übrigen Tastatursektionen werden automatisch in ihre Anfangsstellung im Speicherraum zurückgeführt.
  • Wenn der Benutzer die Konfigurations-Schaltfläche erneut berührt, wird das Subikon Konfigurationseditor zusammen mit den Tastatursektionen, die nicht im Zusammenstellraum konfiguriert wurden, entfernt. Die Tastatursektionen, die konfiguriert wurden, sind nun zu einer Tastatur verbunden und können als Einheit gezogen werden.
  • 2.4 Mausgerät
  • Das simulierte Mausgerät ermöglicht es einem Benutzer, Mausdaten an eine Anwendung zu senden. Das System des gezeigten Beispiels simuliert die Doppeltasten-Maus, wie sie üblicherweise bei PS/2-Rechnern der International Business Machines Corporation benutzt wird.
  • Das simulierte Mausgerät umfaßt mehrere Teile:
  • - ein Subikon Ziehen,
  • - ein Subikon Dimensionieren,
  • - ein Subikon Bewegung Skalieren,
  • - einen Bereich "Mausschaltfläche" mit drei Subikons (links, rechts und beide), und
  • - ein Subikon Bewegungsbereich.
  • 2.4.1 Mausbewegung
  • Bewegung des Griffels mit Berührung des Tabletts innerhalb des Bewegungsbereiches des Mausikons erzeugt Mausbewegungsdaten. Das Digitalisiertablett liefert Daten mit absoluten X- und Y-Koordinaten. Jedoch wird zum Erzeugen von Mausdaten nur Bewegung genutzt. Das Berühren des Tabletts mit dem Griffel und das Abheben (ohne eine Bewegung auf der Oberfläche des Tabletts) erzeugt keine Mausbewegungdaten. Insbesondere sind die Mausbewegungdaten die Strecken in X- und Y-Richtung (gemessen in "Mausimpulsen"), die der Griffel seit Berührung oder der letzten Mausdatensendung, je nachdem, welches dieser Ereignisse das jüngere ist, zurückgelegt hat. Z.B. wird eine waagerechte Bewegung des Griffels auf dem Tablett um einen engl. Zoll (etwa 25 mm) in dieselbe Anzahl Mausimpulse umgewandelt unabhängig davon, wo diese Bewegung um einen engl. Zoll (etwa 25 mm) begonnen hat. Ferner führt eine Bewegung um einen viertel engl. Zoll (etwa 6,25 mm), die viermal wiederholt wird (d.h. vier Wiederholungen einer waagerechten Bewegung, Abhebung und Rückführung zur gleichen Startposition) zu denselben kumulativen Daten von waagerechter Mausbewegung wie eine einzige Bewegung um einen engl. Zoll (etwa 25 mm).
  • Eine alternative Ausführung einer simulierten Maus weist keinen Bewegungsbereich auf. Statt dessen wirkt die gesamte Tablettfläche (die nicht von anderen Funktionen benutzt wird) als Mausbewegungsbereich.
  • Eine noch andere Ausführungsform einer simulierten Maus kann mit Anwendungen benutzt werden, die spezielle Maustreiber ermöglichen. In diesem Falle werden Mausdaten gesandt, die den Mauscursor zu der Stelle verschieben, auf welche der Griffel zeigt, somit unter Nutzung der durch das Tablett gelieferten Informationen über die absolute Position.
  • 2.4.2 Funktionsschaltflächen 2.4.2.1 Skalierung der Bewegung
  • Durch Betätigen der Schaltfläche Skalierung der Bewegung im simulierten Mausgerät kann der Benutzer den Betrag der Mausbewegung einstellen, die bei einem bestimmten Betrag der Griffelbewegung erzeugt wird. Das Subikon Skalierung der Bewegung stellt den laufenden Skalierfaktor mittels eines Balkens dar, wie im Mausgeräte-Ikon der Fig. 10 dargestellt ist. Zum Ändern des Skalierfaktors berührt der Benutzer eine beliebige Stelle im Skalierbalken und zieht den Griffel nach rechts oder nach links zum Vergrößern bzw. Verkleinern des Skalierfaktors.
  • 2.4.2.2 Betätigung der Mausschaltflächen
  • Das simulierte Mausgerät weist Schaltflächen auf, welche die Tasten an einer herkömmlichen Maus simulieren. Die Betätigung der simulierten Tasten ist auf mehrere Weisen speziell darauf ausgelegt, mit einem einzelnen Zeigegerät betätigt zu werden statt mit einer Mehrzahl von Fingern.
  • Der Mausschaltflächenbereich ist in drei Teile geteilt. Der linke und der rechte Teil werden zum Simulieren der linken bzw. der rechten Maustaste benutzt. Der mittlere Teil wird zum gleichzeitigen Drücken beider Schaltflächen benutzt. Diese Möglichkeit ist vorgesehen, weil der Benutzer des simulierten Mausgerätes nur einen einzelnen Griffel hat, mit dem er die Schaltflächen drücken kann, wogegen ein Benutzer einer realen Maus in der Lage sein sollte, beide Tasten gleichzeitig zu drücken.
  • Das Berühren einer der Schaltflächenbereiche bewirkt das Senden von Daten zur Anwendung, die anzeigen, daß die entsprechende(n) Schaltfläche(n) gedrückt wurde(n). Wird der Griffel innerhalb etwa 1/2 Sekunde abgehoben, werden Daten an die Anwendung gesandt, die anzeigen, daß die Schaltfläche(n) freigegeben wurde(n).
  • Viele Anwendungen verlangen, daß der Benutzer eine Maustaste gedrückt hält, während er gleichzeitig die Maus bewegt. Um es einem Benutzer des simulierten Mausgerätes zu ermöglichen, solche gleichzeitige Betätigungen auszuführen, weist jede der Schaltflächenbereiche das Merkmal auf, daß sie, wenn beim Aktivieren einer Schaltfläche der Griffel länger als eine 1/2 Sekunde in Anlage gehalten wird, "unten" gehalten wird (d.h. daß sie die gedrückte Position nach Abheben des Griffels weiter simuliert). Berührt der Benutzer anschließend einen festgestellten Schaltflächenbereich, wird die Blockierung aufgehoben, die simulierte Taste in die "obere" Stellung zurückgebracht (d.h. es werden Daten an die Anwendung gesandt, die ein Ereignis Taste oben anzeigen).
  • Wenn eine simulierte Taste "unten" ist, ist die entsprechende Fläche auf dem Ikon des simulierten Mausgerätes hervorgehoben. Wird der Bereich BEIDE berührt, wird die Hervorhebung der LINKEN und RECHTEN Schaltflächenbereiche entsprechend eingestellt, statt einer Hervorhebung des BEIDE-Bereiches. Wird der Griffel im BEIDE-Bereich lang genug in Anlage gehalten, werden die LINKE und die RECHTE Schaltfläche blockiert. Sie können einzeln oder durch nochmaliges Berühren des BEIDE- Bereichs freigegeben werden.
  • 2.4.2.3 Bewegen und Dimensionieren
  • Die Subikone Ziehen und Dimensionieren arbeiten in der weiter oben allgemein für Ikone angegebenen Weise.
  • Eine Änderung der Größe des Ikons des simulierten Mausgerätes ändert nicht den Skalierfaktor, der zum Umsetzen von Tablettdaten in Mausbewegungsdaten benutzt wird. Wie weiter oben angegeben, ist dieser Skalierfaktor durch den Benutzer getrennt einstellbar. Der Benutzer kann das simulierte Mausgerät nach eigenem Belieben auf die Bedürfnisse des Augenblicks einstellen. Beispielsweise kann der Benutzer das Ikon sehr klein machen (damit es die darunterliegende Anwendung sehr wenig verdeckt) und den Skalierfaktor groß machen, damit er den Cursor auf dem Bildschirm auch mit dem kleinen Bewegungsbereich bequem verschieben kann. Wenn andererseits eine genaue Steuerung wichtig ist, kann der Skalierfaktor klein gemacht werden, so daß große Griffelverschiebungen kleine Beträge der Mausbewegung ergeben.
  • Bei einer alternativen Ausführungsform kann das simulierte Mausgerät so ausgelegt sein, daß bei einer Änderung seiner Größe der Skalierfaktor automatisch so eingestellt wird, daß eine Bewegung über den Bewegungsbereich denselben Betrag Mausbewegung ergibt, unabhängig von der Größe des Mausgeräte- Ikons.
  • 2.5 Informationsgerät
  • Das Informationsgerät wird aktiviert durch Berühren der Info- Schaltfläche an der Seite der Anzeige. Dadurch erscheint in der Anzeige das Infogeräte-Ikon. Die Info-Schaltfläche ist eine Schaltfläche mit "Wechselwirkung": durch die zweite Berührung der Schaltfläche wird das Info-Ikon entfernt.
  • Das Info-Gerät weist sechs Subikone auf, von denen fünf aktiv sind:
  • - Textbereich für die Anzeige von Informationstext,
  • - Ziehen,
  • - Größe,
  • - letztes Bild,
  • - nächstes Bild, und
  • - Anfangsbild.
  • Wenn das Subikon Fertig berührt wird, wird das Info-Ikon aus der Anzeige entfernt und die Hervorhebung der Info-Schaltfläche aufgehoben.
  • Das Info-Ikon kann in der Anzeige durch Benutzung des Subikons Ziehen verschoben werden, in derselben Weise wie andere Ikone.
  • Wenn das Info-Gerät aktiviert ist, wird im Textbereich erläuternder Text zur Benutzung des Info-Gerätes angezeigt. Einige Stellen im Text sind hervorgehoben, um anzuzeigen, daß ihnen ein Zeiger zu einer anderen Stelle im Hilfetext zugeordnet ist. Das Anwählen einer dieser hervorgehobenen Teile des Textes mit dem Griffel führt zum Sprung auf den durch den zugeordneten Zeiger identifizierten Text. Die Sprungfolge durch den Text wird aufgezeichnet, so daß der Benutzer "zurückspringen" kann.
  • Die Schaltflächen Nächstes Bild und Letztes Bild ermöglichen es dem Benutzer, sich innerhalb des laufenden Gesamttextes zu bewegen und über zuvor angezeigten Text zurückzuspringen. Die Schaltfläche Bildanfang ermöglicht es dem Benutzer, auf das erste Bild direkt zurückzugehen.
  • Auf Plattendateien für Text wird durch den Schnittstellen- Prozessor mittels der Datenübertragungsleitung zum Hauptprozessor zugegriffen.
  • 2.6 Weitere simulierte Geräte
  • Unter Berücksichtigung der vorstehend beschriebenen Beispiele leuchtet dem Fachmann die Nützlichkeit simulierter Geräte ein. In einer ähnlichen Weise zu der vorstehend beschriebenen können zusätzliche simulierte Geräte implementiert werden, z.B. eine simulierte Rollkugel, ein simulierter 3D-Zeiger oder ein simulierter Steuerknüppel.
  • Ein simuliertes Tablettgerät hat sogar Vorteile. Bei Anwendung der vorliegenden Erfindung mit einem Tablett, das über einem Anzeigeschirm angeordnet ist, ergibt sich aus einer speziellen Entsprechung zwischen Tablettdaten und Schirmdaten ein Gleichlauf zwischen Schirmposition und Ort des Griffels (d.h. ein Satz Skalierfaktoren in X- und Y-Richtung und Verschiebewerte). Diese Entsprechung wird im allgemeinen nicht die sein, welche von einer bestimmten Anwendung benutzt wird; in diesem Falle können Griffel- und Schirmpositionen nicht miteinander gleichlaufen, was für den Benutzer eine Störung darstellt, die nicht auftritt, wenn das Tablett nicht auf dem Anzeigeschirm liegt. Selbst wenn das Zeigen von einem tatsächlichen Tablett generiert wird, kann es somit vorteilhaft sein, eine Anwendung mit dem simulierten Tablettgerät abzuarbeiten statt durch direktes Benutzen des realen Tabletts.
  • Ein solches simuliertes Tablettgerät ist dem simulierten Mausgerät ähnlich, außer daß statt relativer Bewegung absolute Positionen innerhalb des Tablettbereichs gesendet werden. Ein anderer Unterschied zwischen dem simulierten Mausgerät und dein Tablettgerät ist, daß es bei dem Tablett nützlich ist, zusätzlich zum Skalieren Verschiebungskorrekturen in X- und Y-Richtung einzuschließen (d.h. zu bestimmen, welcher Abschnitt eines gesamten Tabletts durch den Tablettbereich simuliert wird).
  • 2.7 Direkte Tabletteingabe in Anwendungsprogramme
  • Es sind Vorkehrungen getroffen, Tablettdaten einem Anwendungsprogramm direkt verfügbar zu machen (nicht vom simulierten Tablettgerät, sondern vom realen Tablett her). Tablettdaten, die sich im Schirmbereich befinden, nicht in einem simulierten Gerät, sind an im Hauptprozessor ablaufende Anwendungsprogramme über das weiter oben beschriebenen Datenübertragungsprotokoll sendbar.
  • An das Anwendungsprogramm gesandte Tablettdaten werden so skaliert, daß eine Anwendung eine Beziehung zwischen Tablettkoordinaten und Schirmpositionen ohne weiteres herstellen kann. Tablettpunkte im Schaltflächenbereich werden erkannt, bevor die Daten an die Anwendung gesandt werden. Funktionsschaltflächen können somit weiter aktiv bleiben.
  • 2.8 Aufruf der Benutzer-Schnittstelle durch eine Anwendung
  • Wenngleich das Untersystem Benutzer-Schnittstelle so ausgelegt ist, daß es für Anwendungen unsichtbar ist, können sich Anwendungen, die auf Kenntnis der Benutzer-Schnittstelle ausgelegt sind, zusätzliche Vorteile verschaffen. Es können Vorkehrungen getroffen werden, daß eine Anwendung Benutzerdienste aufruft, die vom Untersystem Benutzer-Schnittstelle bereitgestellt werden. Eine im Hauptprozessor ablaufende Anwendung kann einen speziellen Aufruf machen, der bewirkt, daß der Hauptprozessor an den Schnittstellen-Prozessor einen den auszuführenden Dienst identifizierenden Code schickt. Es ist beispielsweise bei bestimmen Anwendungen wünschenswert, das Erscheinen und Verschwinden bestimmter simulierter Geräte zu zweckdienlichen Zeitpunkten erzwingen zu können.
  • Ferner kann über Sicherungsprotokolle, durch die der Hauptprozessor den laufenden Zustand der simulierten Geräte bestimmen und den Zustand der simulierten Geräte setzen kann, ein Programm für den Hauptprozessor Konfigurationen des simulierten Gerätes, die der Benutzer besonders nützlich betrachtet, sicherstellen und wiederherstellen. Diese Zustandsinformationen enthalten: Kontrasteinstellung, Lage und Größe jedes Geräte-Ikons, Ein/Aus-Zustand jedes Geräte-Ikons und verschiedene Ikon-Zustandswerte (z. B. Zahlenblockverriegelung, Maus-Skalierwert, Größe des Handschrift-Ikonkästchens, Tastaturkonfiguration).
  • Die Möglichkeit, den Zustand der Benutzer-Schnittstelle sicherzustellen, ermöglicht es dem Benutzer, das System so zu setzen, daß bei seinem Start bestimmte Geräte dimensioniert und in der Anzeige an Stellen plaziert werden, die der Benutzer bevorzugt. Dies ermöglicht es dem Benutzer auch, bestimmte, häufig benutzte Konfigurationen rasch zu installieren.
  • 2.9 Beispiel einer Wechselwirkung zwischen Kauptprozessor und Schnittstellen-Prozessor
  • In einem System, in dem die Freestyle-Anwendung die einzige Anwendung ist, die Tablettdaten benutzt, kann Freestyle durch den Benutzer aufgerufen werden, indem er das Tablett mit dem Griffel berührt. Wenn sie jedoch mit der Schnittstelle für simulierte Geräte benutzt wird, wie weiter oben angegeben, kann die Freestyle-Anwendung durch Berühren einer bestimmten Schaltfläche des Tabletts gestartet werden. Dies kann durch den folgenden Mechanismus geschehen. Beim Urladen des Systems wird ein residenter Teil von Freestyle in den Hauptprozessor geladen. Mittels eines BIOS-Aufrufs trägt sich Freestyle zu diesem Zeitpunkt in das Hauptprozessor-BIOS mit der Maßgabe ein, daß es Tablettdaten vom Schnittstellen-Prozessor zu empfangen wünscht. Ferner kommuniziert Freestyle mit der Schnittstelle für simulierte Geräte (mittels BIOS-Aufrufen, welche die Datenübertragungsleitung zum Schnittstellen-Prozessor benutzen), um anzuzeigen, daß Tablettdaten gesendet werden sollen, nachdem das Freestyle-Ikon berührt worden ist. Wenn somit die Schnittstelle für simulierte Geräte feststellt, daß die Freestyle-Schaltfläche berührt worden ist, wird sie Tablettdaten senden, die dann bewirken, daß der residente Teil der Freestyle-Anwendung Freestyle aufruft. Die Schnittstelle für simulierte Geräte kann Freestyle auch aufrufen, indem sie geeignete Tastencodes an den Hauptprozessor sendet, z.B. das gleichzeitige Drücken beider Umschalttasten (eine Tastenkombination, die im allgemeinen zum Aufrufen von Freestyle benutzt wird) simuliert. Nachdem die Freestyle-Anwendung abgearbeitet ist, kommuniziert sie mit der Schnittstelle für simulierte Geräte mit der Angabe, daß an Freestyle keine Tablettdaten mehr gesendet werden sollen, bis die Schaltfläche erneut berührt wird.
  • 2.10 Implementierung von simulierten Geräten
  • In Fig. 11 sind Beziehungen dargestellt zwischen dem Tablett 12b, der Anzeige 12a und bestimmten Softwarekomponenten.
  • Ein Benutzer tritt in Wechselwirkung mit einem im Hauptprozessor 30 (fig. 2) ablaufenden Anwendungsprogramm 200 durch Benutzen des Tabletts 12b und des Sichtgerätes 12a (die bei der bevorzugten Ausführungsform bei 12 in Fig. 1 übereinandergelegt sind). Wenngleich der Block 200 als "Anwendungsprogramm" gekennzeichnet ist, stellt er ein beliebiges Programm dar (einschließlich Systemprogrammen), mit dem der Benutzer über das Tablett und das Sichtgerät in Wechselwirkung treten möchte.
  • Die vorstehend beschriebenen simulierten Geräte werden durch ein Softwarepaket 220 ausgeführt, das im Schnittstellen-Prozessor abläuft und in Fig. 11 als "Programm Simulierte Geräte" angegeben ist. Zum Programm Simulierte Geräte gehören Komponenten 222, 224, 226 und 228, die den verschiedenen simulierten Geräten entsprechen. Dieses Softwarepaket 220 benutzt das Sichtgerät 12a für die visuelle Rückkopplung zum Benutzer, indem Daten in die Tinten- und Maskenebenen 42 und 44 eingeschrieben werden (sh. Fig. 2).
  • Daten vom Tablett 12b werden vom Programm Simulierte Geräte 220 verarbeitet, das in Abhängigkeit davon Daten generiert, üblicherweise in Form von Tastendruck- oder Mausdaten. Diese Daten werden dem Anwendungsprogramm 200 über Übertragungsdienste 210 zugeleitet, die Dienste umfassen, die vom BIOS 212 des Hauptprozessors und von der Firmware 214 des Schnittstellen-Prozessors bereitgestellt werden. Wenngleich in Fig. 11 nicht angegeben, werden Wechselwirkungen auf niedriger Ebene mit dem Tablett durch Routinen in der Firmware des Schnittstellen-Prozessors verarbeitet. Jedoch wird die hauptsächliche Tablettsteuerung durch das Programm Simulierte Geräte ausgeführt.
  • Die nachstehende Übersicht stellt die Beziehung zwischen C- Funktionen bei einem Ausführungsbeispiel der simulierten Geräte dar. Die in der Übersicht auf einer Ebene angeführten Funktionen werden zum Implementieren der Funktion benutzt, die ihnen auf der nächsten äußeren Ebene der Übersicht vorausgehen. In die Übersicht sind auch einige Informationen bezüglich der Ablaufsteuerung aufgenommen. Die weiteren Einzelheiten der Implementierung von Softwarekomponenten eines Systems des hier beschriebenen Typs sind für den Fachmann offensichtlich und für ihn erkennbar. Die Organisation der in der Übersicht beschriebenen Software ist nur ein Beispiel, und es ist für den Fachmann deutlich, daß viele Abwandlungen möglich sind, bedingt durch die gegebenen Merkmale spezieller Systeme und durch Gestaltungsunterschiede zwischen den Softwareentwicklern.
  • Der Begriff "Stift" wird häufig austauschbar mit "Griffel" verwendet; dies trifft auf die nachstehende Übersicht ebenfalls zu.
  • Die jedem Punkt in der Übersicht vorangestellte Ziffer gibt die Übersichtsebene des Punktes an.
  • 1 user_interface() (Benutzer-Schnittstelle)
  • Dies ist die Benutzer-Schnittstelle für simulierte Geräte. Führe immer aus:
  • Warten auf nächsten Punkt vom Tablett.
  • Überspringe, wenn nicht Stiftberührpunkt.
  • Wenn in Funktionsschaltflächen, dann verarbeite Funktionsschaltfläche und warte auf Stiftabhebung.
  • Wenn in einem Ikon für simuliertes Gerät, dann ausführe Ikonfunktion (z.B. start_mouse_icon); Ikone werden von oben nach unten überprüft, ob Punkt innerhalb der Ikongrenzen liegt.
  • Wenn Berührung, aber nicht in einem Ikon, dann warten auf Stiftabhebung (um Bewegung in ein Ikon zu vermeiden).
  • Wenn abgehoben oder wenn in Berührung und nicht in einem Ikon für simuliertes Gerät, den Punkt optional an den Hauptprozessor senden.
  • 2 ttrpoint() - Hole Punkt von Tablett.
  • Die Tablettposition wird in zwei Formen angezeigt, eine in Pixel und die andere mit (der höheren) Tablettauflösung. Der Zeitpunkt der Tablettdaten wird ebenfalls angegeben. Während die Koordinaten mit höherer Auflösung für Operationen wie Handschrifterkennung geeigneter sind, sind die Pixel-Koordinaten für viele bildschirinbezogene Operationen geeigneter. Statt auf einen Punkt vom Tablett zu warten, gibt diese Funktion an, daß Daten nicht verfügbar sind.
  • 2 check_button_boxes() - (Überprüfe Schaltflächenkästchen)
  • Ausführe die Funktionsschaltflächen (z.B. Herausziehen der Geräteschale):
  • Prüfen, ob Cursor im Funktionsstreifen; wenn nein, zurückspringen.
  • Wenn im Bereich der "Geräte"-Schaltfläche, dann select_devices() (Wähle Geräte).
  • Wenn "Kontrast"-Schaltfläche, dann Bildschirmkontrast einstellen.
  • Wenn "Freestyle"-Schaltfläche, dann sende Freestyle-Anwendung.
  • Wenn "Info"-Schaltfläche, dann Info-Ikon aktivieren, wenn nicht bereits aktiviert, sonst deaktivieren (d.h. am Bildschirm löschen und aus Ikonstapel entfernen).
  • 3 wenn in "Geräteschale-Schaltfläche":
  • 4 select_devices() - (Geräte wählen)
  • Verarbeitung für die "Geräte"-Schaltfläche.
  • Wechselt zwischen zwei Zuständen: erste Berührung dieser Schaltfläche aktiviert die Geräteschale; zweite Berührung der Schaltfläche deaktiviert die Geräteschale.
  • 5 wenn Umschaltung von Stempeln auf Ikone (Geräteschale wegräumen)
  • 6 selection_done - (Auswahl fertig)
  • Dies geschieht, wenn der Benutzer die Geräteauswahl aus der Schale beendet hat. Dies entfernt die Geräteschale aus der Anzeige.
  • 7 erase_icons() - (Lösche Ikone)
  • Lösche alle Stempel und jedes Ikon aus der Anzeige.
  • 7 erase_device_tray() - (Lösche Geräteschale)
  • Entferne den visuellen Behälter für die Stempel.
  • 7 remove_icon() - (Entferne Ikon)
  • Entferne jeden Stempel aus dem Ikonstapel, der in der Geräteschale lokalisiert ist.
  • 7 swap_icons_and_stamps() - (Ikone und Stempel austauschen)
  • Die auf dem Stapel verbliebenen Stempel werden gegen Ikone (auf dem Ikonstapel) ausgetauscht.
  • 7 draw_icons() - (Ziehe Ikone)
  • Ziehe alle Ikone und Stempel auf dem Ikonstapel (d.h. die aktiv sind). Leistung kann erfordern, daß nur die Ikone neu gezeichnet werden, die sich überlappen, nicht alle Ikone, die logisch unter einem verschobenen Ikon liegen.
  • 5 wenn Umschaltung von Ikonen auf Stempel (Herausziehen der Geräteschale):
  • 6 erase_icons() - (Ikone löschen)
  • Beseitigen der in ganzer Größe dargestellten Ikone.
  • 6 swap_icons_and_stamps() - (Ikone und Stempel austauschen).
  • Umstellen des Ikonstapels auf Stempel statt Ikonen.
  • 6 draw_device_tray - (Zeichne Geräteschale)
  • Zeichne die Schale für verfügbare Geräte (in Stempelform).
  • 6 display_current_stamps() - (Laufende Stempel zeichnen)
  • Die Stempel zeichnen (MAUSSTEMPEL, TASTATURSTEMPEL, HANDSCHRIFTSTEMPEL).
  • 7 compute_stamp_ position() - (Stempelposition berechnen)
  • Stempelposition ist in Geräteschale für inaktive Ikone und an der Ikonposition, wenn das Ikon aktiv war.
  • 3 suck_touch_points - (Berührungspunkte aufnehmen)
  • Wenn der Stift das Tablett berührt, Tablettdaten weglegen, bis Stift angehoben wird (nach Wahl: Punkte an Hauptprozessor senden).
  • 3 wenn in "Kontrast"-Schaltfläche:
  • Kontrast des Flüssigkristall-Bildschirms verstärken oder schwächen, je nachdem, welcher Teil der Kontrast-Schaltfläche mit dem Griffel berührt wird.
  • 3 wenn in "Freestyle"-Schaltfläche:
  • Freestyle-Anwendung im Hauptprozessor wiederanschalten.
  • 3 wenn in "Info"-Schaltfläche:
  • 4 wenn Info nicht aktiv: Einschalten:
  • 5 add_icon() - (Ikon hinzufügen)
  • 5 draw_info_icon() - Info-Ikon zeichnen
  • 4 wenn Info bereits aktiv: Wegräumen:
  • 5 move_icon_to_top() - (Ikon nach oben verschieben)
  • 5 erase_info_icon - (Info-Ikon löschen)
  • 5 remove_icon() - (Ikon entfernen)
  • 2 is_in_handw_icon() - (Ist in Handschrift-Ikon)
  • 3 point_in_rectangle() - (Punkt in Rechteck)
  • 2 start_handw_icon() - (Handschrift-Ikon starten) Handschrift-Ikon ausführen.
  • 3 move_icon_to_top - (Ikon nach oben verschieben)
  • Rückmeldet, ob das Ikon bereits oben gezeichnet ist; wird benutzt, um bei einer Zieh- oder Größenänderungsoperation (oder im Falle einer Tastatur bei einer Konfigurationsänderungsstatt einer Maßänderungsoperation) Neuzeichnen zu vermeiden, weil diese Operationen einen Schatten anzeigen, der an Stelle des ganzen Ikons in Größe oder Position verändert wird.
  • 3 is_in_writehandw() - (Ist in Handschrift schreiben)
  • 3 write_handw() - (Handschrift schreiben)
  • Handschrift und Zeichenerkennung. Handschrift schreiben und Zeichen erkennen. Wird beim ersten Punkt eines Strichs im Handschriftbereich aufgerufen.
  • 4 capture_one_stroke() - (Einen Strich erfassen)
  • Punkte aus dem Tablett lesen, bis Griffel angehoben wird. Alle diese Punkte einem Strich-Pufferspeicher hinzufügen.
  • 4 compute_stroke_box() - (Berechne Strichkästchen)
  • Bestimme das "Kästchen" für den zuletzt hinzugefügten Strich im Strich-Pufferspeicher.
  • 4 flush_handw_strokes() - (Handschriftstriche wegspülen)
  • Wird der neue Strich als tatsächlich nicht zum Schreibbereich gehörend ermittelt (z.B. der Schreiber berührt im Schreibbereich, bewegt sich aber aus dem Schreibbereich hinaus), dann Erkennung an den früheren Strichen im Pufferspeicher durchführen, diesen neuen Strich wegwerfen, und zurückspringen.
  • 4 compute_stroke_box_extents() - (Berechne Strichkästchenabmessungen)
  • Ist der neue Strich sehr groß (z.B. mehr als die Breite von 3 Zeichenkästchen), ist er als Löschmarke zu betrachten. Lösche seine Tinte. Wandle die von ihm bedeckten ASCII-Zeichen in Leerstellen um. Werfe den Strich weg. Springe zurück.
  • 4 dump_previous_strokes() - (Vorherige Striche abwerfen)
  • Ist dieser Strich in einem anderen "Kästchen" als die vorherigen Striche im Strich-Pufferspeicher, Erkennung an diesen früheren Strichen durchführen, diese wegwerfen und diesen neuen Strich zum einzig gepufferten Strich machen. Hinweis: Strichsegmentierung ist nicht auf tatsächliche Kästchen angewiesen; Verfahren zur "kästchenlosen" Segmentierung sind verfügbar.
  • 4 check_timeout() - (Prüfe Zeitsperre)
  • Warten, bis eine der nachstehenden Bedingungen eintritt:
  • Benutzer hat während einer Zeitüberwachungsperiode nicht berührt.
  • Benutzer hat erneut berührt, aber nicht im Schreibbereich.
  • In diesen beiden Fällen Erkennung an allen gepufferten Strichen durchführen, sie wegwerfen und zurückspringen.
  • Benutzer hat im Schreibbereich berührt.
  • In diesem Fall zurückspringen (die nächste Iteration in Schleife höherer Ebene ruft write_handw() erneut auf).
  • 3 is_in_draghandw() - (Ist in Handschrift ziehen)
  • 3 drag_handw() - (Handschrift ziehen)
  • 4 drag_icon() - (Ikon ziehen)
  • Ikon wird bis zum Abheben des Stiftes gezogen.
  • 5 draw_handw_icon() - (Handschrift- Ikon ziehen)
  • 3 is_in_sizehandw() - (Ist in Dimensionierung Handschrift)
  • Ist Stift im Dimensionierungsbereich?
  • 3 resize_handw() - (Handschrift neu dimensionieren)
  • 4 resize_icon() - (Ikon neu dimensionieren)
  • 5 draw_handw_icon() - (Handschrift- Ikon zeichnen)
  • 3 is_in_inserthandw() - (Ist in Handschrift einfügen)
  • Ist Stift im Einfügebereich?
  • 3 insert_handw() - (Handschrift Einfügen)
  • Leerstellen in die Reihe handgeschriebener Zeichen einfügen.
  • 4 flush_handw() - (Handschrift wegspülen)
  • Erkennung an noch schwebenden gepufferten Strichen durchführen und sie dann wegwerfen.
  • 4 Setze den Cursor auf einen "Werkzeug bestimmenden" Cursor,
  • um dem Benutzer zu zeigen, daß der Einfüge-Modus aktiv ist.
  • 4 suck_touch_points() - (Berührungspunkte annehmen)
  • Warten, bis der Benutzer den Griffel abhebt.
  • 4 suck_prox_points() - (Nahe Punkte annehmen)
  • Warten, bis der Benutzer erneut berührt.
  • 4 is_in_writehandw0 - (Ist in Handschrift schreiben)
  • Berührt der Benutzer außerhalb des Schreibbereichs, Cursor zurücksetzen und zurückspringen.
  • 4 während der Griffel berührt,
  • 5 wenn sich der Benutzer aus der Anfangsposition nach rechts bewegt, die Zeichen/Kästchen vom Griffelpunkt nach rechts bis zum rechten Ende des Schreibbereichs verschieben und geöffneten Raum mit Leerstellen füllen;
  • 5 wenn sich der Benutzer aus der Anfangsposition nach links bewegt, die Zeichen/Kästchen vom Griffelpunkt nach links bis zum linken Ende des Schreibbereichs verschieben und den geöffneten Raum mit Leerstellen füllen.
  • 4 nachdem der Benutzer den Griffel abhebt, springe zurück (Benutzer hat offenen Raum geschaffen, in den geschrieben werden kann).
  • 3 is_in_deletehandw() - (Ist in Handschrift entfernen)
  • Ist der Stift im Entfernungsbereich?
  • 3 delete_handw() - (Handschrift entfernen)
  • Aus den handgeschriebenen Zeichen entfernen.
  • 4 flush_handw() - (Handschrift wegspülen)
  • Erkennung an schwebenden gepufferten Strichen durchführen und sie wegwerfen.
  • 4 den Cursor auf einen "Werkzeug bestimmenden" Cursor setzen, um dem Benutzer zu zeigen, daß der Entfernungs-Modus aktiv ist.
  • 4 suck_touch_points() - (Berührungspunkte annehmen)
  • Warten, bis der Benutzer den Griffel abhebt.
  • 4 suck_prox_points() - (Nahe Punkte annehmen)
  • Warten, bis der Benutzer erneut berührt.
  • 4 is_in_writehandw() - (ist in Handschrift schreiben)
  • Berührt der Benutzer außerhalb des Schreibbereiches, Cursor zurücksetzen und zurückspringen.
  • 4 während der Griffel berührt, alle Kästchen/Zeichen hervorheben, durch die der Benutzer den Griffel hindurchführt.
  • 4 nachdem der Benutzer den Griffel abhebt, alle durch den Benutzer hervorgehobenen Kästchen/Zeichen entfernen; Zeichen/Kästchen vom rechten Ende des Schreibbereiches aus nach Bedarf rollen, um die entfernten Kästchen zu ersetzen.
  • 3 is_in_scrollleft() - (Ist in Rollen links)
  • Ist Stift im Rollbereich?
  • 3 is_in_scrollright() - (Ist in Rollen rechts) Ist Stift im Rollbereich?
  • 3 scroll_handw() - (Rollen Handschrift) Zeichen im Handschriftbereich rollen.
  • 4 erase_handw_ink() - (Tinte Handschrift löschen)
  • Tinte löschen, gepufferte Strichpunkte eliminieren.
  • 4 display_handw_prompt() - (Anforderungszeichen Handschrift anzeigen)
  • Anforderungszeichen Rollen anzeigen.
  • 4 initialize_repeat() - (Wiederholung initialisieren)
  • 4 erase_writing_area() - (Schreibereich löschen)
  • 4 draw_writing_area() - (Schreibbereich zeichnen)
  • 4 clear_handw_prompt() - (Anforderungszeichen Handschrift löschen)
  • 4 wait_for_repeat() - (Wiederholung abwarten)
  • Vor automatischer Wiederholung das entsprechende Zeitintervall abwarten.
  • 4 is_prox() - (ist im Nahbereich)
  • Wenn Stift abgehoben ist, ist alles fertig.
  • 4 Höhere Wiederholgeschwindigkeit vervenden Verfolgen, wie häufig wiederholt wurde; nach 4 Versuchen das Rollen schneller wiederholen.
  • 5 initialize_repeat() - (Wiederholung initialisieren)
  • 3 is_in_adjusthandw() - (Ist in Handschrift einstellen)
  • Ist Stift im Einstellbereich?
  • 3 adjust_handw - (Handschrift einstellen)
  • Breite der Kästchen einstellen, in die Zeichen geschrieben werden.
  • 4 erase_handw_ink() - (Tinte Handschrift löschen)
  • Tinte löschen, gepufferte Strichpunkte eliminieren.
  • 4 Highlight_Box() - (Kästchen hervorheben)
  • Einstellkästchen hervorheben.
  • 4 display_handw_prompt() - (Anforderungszeichen Handschrift anzeigen)
  • Anforderungszeichen einsetzen.
  • 4 Outline_Rectangle() - (Umrandung Rechteck)
  • Äußerstes rechtes Kästchen als Referenzmarke hervorheben.
  • 4 Punkte lesen, solange Stift berührt:
  • 5 skip_to_current_tablet_data - (zu laufenden Tablettdaten springen)
  • Tablett einholen.
  • 5 ttrpoint() - (Tablettpunkt)
  • 5 is_prox() - (ist im Nahbereich)
  • Wenn Stift abgehoben, ist alles fertig.
  • 5 neue Kästchenbreite berechnen:
  • Stiftbewegung X ist Änderung der Gesamtbreite der angezeigten Kästchen; Breite eines Kästchens ist Gesamtbreite/Kästchenanzahl. Minimumgröße nicht unterschreiten, Maximumgröße nicht überschreiten.
  • 5 Outline_Rectangle() - (Umrandung Rechteck)
  • Hervorhebung des äußersten rechten Kästchens aufheben.
  • 5 erase_writing_area)) - (Schreibbereich löschen)
  • 5 compute_handw_location() - (Berechne Platz Handschrift)
  • 5 draw_writing_boxes() - Schreibkästchen zeichnen)
  • Kästchen neu zeichnen.
  • 5 Outline_Rectangle() - (Umrandung Rechteck)
  • Neues äußerstes rechtes Kästchen hervorheben.
  • 4 clear_handw_prompt() - (Anforderungszeichen Handschrift löschen)
  • 4 Highlight_Box() - (Kästchen hervorheben)
  • 4 Outline_Rectangle() - (Umrandung Rechteck)
  • 4 erase_handw_icon() - (Handschrift-Ikon löschen)
  • 4 draw_handw_icon() - (Handschrift-Ikon zeichnen)
  • 3 is_in_sendhandw() - (ist in Handschrift senden)
  • Ist Stift im Sendebereich?
  • 3 send_handw() - (Handschrift senden)
  • 4 display_handw_prompt() - (Anforderungszeichen Handschrift anzeigen)
  • 4 erase_handw_ink() - (Tinte Handschrift löschen)
  • Tinte löschen, gepufferte Strichpunkte eliminieren.
  • 4 Send all characters - (Alle Zeichen senden)
  • Nur die Zeichen zwischen dem voreilenden und dem nacheilenden leeren Kästchen senden; war Zeile leer, Wagenrücklauf senden.
  • 5 ascii_to_scan() - (ASCII abtasten)
  • 5 send_keycode() - (Tastencode senden)
  • 6 Reale Tastatur deaktivieren
  • 6 Tastencodes senden
  • 6 Reale Tastatur aktivieren
  • 4 Neu anzeigen:
  • Verschiebung des Rollfensters zurücksetzen, so daß das nullte Kästchen als erstes Kästchen angezeigt wird.
  • 5 draw_writing_area() - (Schreibbereich zeichnen)
  • 3 is_in_upperhandw() - (Ist in Handschrift Großbuchstaben)
  • Ist Stift im Bereich Großbuchstaben?
  • 3 upper_handw() - (Handschrift Großbuchstaben) Zeichensatz festlegen, nach dem die Erkennungseinrichtung auswählt (Großbuchstaben-Alphabet).
  • 4 set_recognition_subset() - Erkennungs- Teilmenge setzen)
  • 3 is_in_lowerhandw() - (Ist in Handschrift Kleinbuchstaben)
  • Ist Stift im Bereich Kleinbuchstaben?
  • 3 lower_handw - (Handschrift Kleinbuchstaben) Zeichensatz festlegen, nach dem die Erkennungseinrichtung auswählt (Kleinbuchstaben-Alphabet).
  • 4 set_recognition_subset() - Erkennungs- Teilmenge setzen)
  • 3 is_in_numerhandw() - (Ist in Handschrift Ziffern)
  • Ist Stift im Zifferntasten-Bereich?
  • 3 numer_handw() - (Handschrift Ziffern)
  • Zeichensatz festlegen, nach dem die Erkennungseinrichtung auswählt (Ziffern und Satzzeichen).
  • 4 set_recognition_subset() - (Erkennungs- Teilmenge setzen)
  • 3 suck_touch_points() - (Berührungspunkte annehmen)
  • Überspringe alles, bis Stift abgehoben ist.
  • 2 is_in_mouse_icon() - (Ist im Maus-Ikon)
  • 3 point_in_rectangle - (Punkt im Rechteck)
  • 2 start_mouse_icon() - (Start Maus-Ikon) Maus-Ikon bearbeiten:
  • Oben neu zeichnen, außer wenn in Zieh- oder Dimensionierungsbereich.
  • Funktion entsprechend Bereich ausführen (z.B. Ziehen, Größe, Schaltflächen, Bewegung).
  • Warten, bis Stift abgehoben ist.
  • 3 move_icon_to_top - (Ikon nach oben verschieben)
  • Zusätzlich zum Verschieben des Ikons nach Stapeloberseite (aber kein Neuzeichnen des Ikons), Rückmeldung, ob das Ikon bereits oben gezeichnet ist; wird benutzt, um bei einer Zieh- oder Maßänderungsoperation (oder im Falle einer Tastatur bei einer Umkonfigurationsoperation statt einer Maßänderungsoperation) ein Neuzeichnen zu vermeiden, weil diese Operationen einen Schatten anzeigen, der statt des ganzen Ikons in Größe oder Ort verändert wird.
  • 3 is_in_dragmouse() - (Ist in Maus Ziehen)
  • 3 drag_mouse() - (Maus ziehen)
  • 4 drag_icon() - (Ikon ziehen)
  • Zieht das Ikon, bis der Stift abgehoben wird.
  • 5 draw_mouse_icon() - (Maus-Ikon zeichnen)
  • 3 is_in_sizemouse() - (Ist in Maus Größe)
  • 3 resize_mouse() - (Maus neu dimensionieren)
  • 4 resize_icon() - (Ikon neu dimensionieren)
  • 5 draw_mouse_icon() - (Maus-Ikon zeichnen)
  • 3 is_in_scalebar() - (Ist im Skalierbalken)
  • 3 scale_mouse() - (Maus skalieren)
  • Stiftbewegung in X-Richtung verändert den Skalierungsfaktor Tablett/Maus: Maßstablänge wird durch den Betrag der Stiftbewegung in der X- Richtung verändert (und dann innerhalb der min./max. Grenzwerte erzwungen); Berechnung von Pixel-je-Impuls nach max. Pixel-je-Impuls * (max. Länge - aktuelle Länge)/max. Länge (wird ebenfalls innerhalb eines Min./Max.-Bereichs erzwungen).
  • 4 Anzeige Anforderungszeichen für Maus-Skalierung
  • 4 Ausführe für alle Stiftberührungspunkte:
  • 5 skip_to_current_tablet_data() - (Springe zu laufenden Tablettdaten)
  • 5 ttrpoint() - (Hole Berührungspunkt)
  • 5 is_prox() - (Ist im Nahbereich)
  • Diese Schleife verlassen, wenn Stift abgehoben wird.
  • 5 Berechne neue Werte
  • Maßstablänge und Pixel je Impuls werden je ausgehend von X-Bewegung berechnet.
  • 5 complement_scale_bar() - (Bilde Komplement zum Skalierbalken)
  • Lösche den aktuellen Skalierbalken.
  • 5 compute_mouse_location() - (Berechne Mausposition)
  • Parameter der Mausposition aktualisieren, einschließlich Berechnen einer Maßstablänge ausgehend von der Pixelzahl je Impuls.
  • 5 complement_scale_bar() - (Bilde Komplement zum Skalierbalken)
  • Zeichne neuen Skalierbalken; Skalierbalken vergrößert sich nach rechts (d.h. ist innerhalb des ihm zugewiesenen Platzes linksbündig).
  • 4 clear_mouse_prompt() - (Lösche Anforderungszeichen für Maus)
  • 3 is_in_leftbutton() - (Ist in linker Schaltfläche)
  • 3 is_in_rightbutton() - (Ist in rechter Schaltfläche)
  • 3 is_in_bothbutton() - (ist in Schaltfläche Beide)
  • 3 button_mouse() - (Schaltfläche Maus)
  • Bearbeite Stiftberührung in jedem der 3 Schaltflächenbereiche:
  • Betätigung einer Schaltfläche im EIN-Zustand schaltet diese Schaltfläche AUS und springt zurück.
  • Betätigung einer Schaltfläche im AUS-Zustand schaltet die Schaltfläche ein und überprüft auf Klick durch Aufruf timed_button_click() (zeitgesteuerter Schaltflächen-Klick), der blockiert, bis festgestellt ist, daß der Stift so lange berührt hat, daß dies kein Klick sein kann.
  • Hinweis auf Unterschiede zwischen Stiftaktion und vergleichbarer Schaltflächenaktion:
  • - Ein kurzer Druck auf die Schaltfläche ist ein Klick. Ein langes Drücken einer Schaltfläche ist ein langes Drücken der Schaltfläche, das stets endet, wenn die Schaltfläche freigegeben wird.
  • - Eine kurze Stiftberührung ist ein Klick. Eine lange Stiftberührung stellt die simulierte Taste fest; eine spätere Berührung von beliebiger Länge gibt die simulierte Taste frei.
  • 4 complement_leftbutton() - (Bilde Komplement zur linken Schaltfläche)
  • 4 complement_rightbutton() - (Bilde Komplement zur rechten Schaltfläche)
  • 4 timed_button_click() - (Zeitgesteuerter Schaltflächen-Klick)
  • Wenn Schaltfläche nicht im Ein-Zustand, warten, ob Zeit bis Stiftabhebung kurz genug ist, um als Klick-Anforderung betrachtet zu werden.
  • 3 is_in_mouse_mouse() - (Ist in Maus Maus)
  • 3 mouse_mouse() - (Maus Maus) Maus-Bewegungsbereich des Mausikons bearbeiten. Strecke wird (jedesmal) in Tablettpunkten berechnet (genauer als Mausimpulse).
  • Maus-Anforderungszeichen anzeigen.
  • Bei Bedarf Kopie des Mausikons sichern.
  • Rücksetze gesendete alte X- und Y-Impulse.
  • Führe aus bis Stiftabhebung:
  • - Alte Tablettdaten überspringen und dann nächsten Punkt holen.
  • - Vom anfänglichen Berührungspunkt bis laufende Position messen in Mausimpulsen.
  • - Berechne Impulse, um die seit Berührung oder seit letzter gesendeter Bewegung verschoben wurde (alte X und Y abziehen).
  • - Mausbewegungsdaten senden, als kämen sie von Maus.
  • - Alte X und Y auf aktuelle Position setzen.
  • 4 Anforderungszeichen für Mausbevegung anzeigen
  • 4 BitBlt_Pix_to_Mem() - (Bit-Pixel an Speicher)
  • Kopie des Mausikons sichern. Diese Funktion ist nur bei einer Implementierung notwendig, die keine Hardware-Tintenebene benutzt; in diesem Fall bietet diese Funktion eine Leistungsverbesserung.
  • 4 Bearbeite für alle Stiftberührungspunkte:
  • 5 skip_to_current_tablet_data()--
  • - (Springe auflaufende Tablettdaten)
  • 5 ttrpoint() - (Hole Tablettpunkt)
  • 5 is_prox() - (Ist im Nahbereich)
  • Diese Schleife verlassen, wenn Stift abgehoben wird.
  • 5 pen -to-mouse-tick algorithm - (Algorithmus Stift-Mausimpuls)
  • Wandle um von Tablettstrecke in Mausimpulse. Um sicherzustellen, daß jeder bei einer Griffelposition beginnende und zu ihr zurückgehende Weg zur Mausgesamtbewegung ab Null hinzugefügt wird, geschieht Skalierung an Tablettkoordinaten, bevor von absoluter (Tablett) auf relative (Maus) Bewegung umgewandelt wird.
  • 5 Sende Mausdaten zum Hauptprozessor
  • 4 clear_mouse_prompt() - (Lösche Maus- Anforderungszeichen)
  • 3 suck_touch_points() - (Berührungspunkte annehmen)
  • 2 is_in_kbd_icon() - (Ist in Tastatur-Ikon)
  • 3 point_in_rectangle() - (Punkt im Rechteck)
  • 2 start_kbd_icon() - (Tastatur-Ikon starten) Tastatur-Ikon bearbeiten:
  • 3 move_icon_to_top() - (Icon nach oben verschieben)
  • Mit Rückmeldung, ob Ikon bereits oben gezeichnet ist. Wird benutzt, um bei einer Zieh- oder Maßänderungsoperation (oder im Falle der Tastatur bei einer Umkonfigurationsoperation statt einer Maßänderungsoperation) ein Neuzeichnen zu vermeiden, weil diese Operationen einen Schatten anzeigen, der statt des ganzen Ikons in Größe oder Ort verändert wird.
  • 3 erase_kbd_icon() - (Tastatur-Ikon löschen)
  • 3 draw_kbd_icon() - (Tastatur-Ikon zeichnen)
  • 3 is_in_drag_section() - (Ist im Abschnitt Ziehen)
  • 3 drag_kbd() - (Tastatur ziehen)
  • 3 is_in_config_section() - (Ist im Abschnitt Konfigurieren)
  • 3 config_kbd_icon() - (Tastatur-Ikon konfigurieren)
  • Tastatur konfigurieren.
  • 4 Position des Tastatur-Ikons sichern, so daß der Benutzer die Konfiguration modifizieren kann und nach ausgeführter Modifikation die Tastatur nicht neu positionieren braucht.
  • 4 save_oldxys() - (Alte X und Y sichern)
  • Positionen der einzelnen Tastaturabschnitte sichern.
  • 4 remove_icon() - (Ikon entfernen)
  • 4 init_kfig_editor() - (Editor für Tastaturkonfiguration initiieren)
  • 4 configure_kbd() - (Tastatur konfigurieren)
  • 4 X- & Y-Positionswerte Tastatur wiederherstellen.
  • 4 kbd_config_done() - (Tastaturkonfiguration fertig)
  • Tastaturumrandung neu dimensionieren.
  • 3 is_in_vpfsection() - (Ist in Abschnitt vpf)
  • 3 is_in_hpfsection() - (Ist in Abschnitt hpf)
  • 3 is_in_kbdsection() - (Ist in Tastaturabschnitt)
  • Bestimme, ob der Punkt im Haupttastaturabschnitt des Tastatur-Ikons liegt.
  • 4 point_in_rectangle() - (Punkt im Rechteck)
  • 3 is_in_aksection() - (Ist im Abschnitt Buchstabentasten)
  • 3 is_in_numsection() - (Ist im Abschnitt Zifferntasten)
  • 3 is_in_edtsection() - (Ist im Abschnitt Editor)
  • 3 find_key() - (Suche Taste)
  • Tastencode bestimmen ausgehend von Stiftposition in einschlägigem Abschnitt des Tastatur- Ikons. Ist Punkt gegeben, Tastennummer rückmelden:
  • In welchem größeren Teil der Tastatur ist der Punkt gelegen (z.B. Funktionstasten, Buchstabentasten, Zifferntasten, Cursorsteuerung)?
  • Innerhalb des identifizierten Tastaturteils wird ein binäres Suchen durchgeführt, um die Reihe zu bestimmen, in welcher der Punkt gelegen ist.
  • Innerhalb der identifizierten Reihe wird ein binäres Suchen durchgeführt, um die bestimmte Taste zu identifizieren.
  • Die Tastennummer wird dann als Index benutzt, der zu einer Tabelle führt, die Tastencodes und Tastenumrandungen enthält.
  • 3 Anzeige Taste
  • 4 fill_rectangle() - (Rechteck füllen) XOR-Umrandung der Taste, daß Taste angesprochen ist.
  • 4 switch_to_scan() - (Auf Abtasten schalten)
  • Wählt eine Tasten-Umschaltnummer und wandelt sie um in ein Ein/Aus-Codepaar aus dem Abtastcode-Satz Nr. 2.
  • 5 scan2_to_scan1() - (Abtast2 nach Abtast1)
  • 6 convert_221() - (221 umwandeln)
  • 4 Für einzelne Umschalttasten
  • Einschalt- oder Ausschaltcode senden, je nach zugehörigem Umschaltzustand.
  • 5 send_a_code() - (Sende einen Code)
  • 4 Typematic() - (Typematic)
  • Tastencodes für nicht umschaltende Tasten bearbeiten, dadurch raschere Typematic- Aktion implementierend.
  • 5 send_a_code() - (Sende einen Code)
  • 4 Fill_Rectangle() - (Rechteck ausfüllen)
  • Außer wenn Taste eine Umschalttaste ist, erneut Komplement der Tastenanzeige bilden.
  • 3 suck_touch_points() - (Berührungspunkte annehmen)
  • 2 is_in_info_icon() - (Ist im Info-Ikon)
  • 3 point_in_rectangle() - (Punkt im Rechteck)
  • 2 Start_info_icon() - (Info-Ikon starten)
  • Info-Ikon bearbeiten
  • 3 Ikon neu zeichnen (ausgenommen bei Ziehen und Neudimensionieren)
  • 4 move_icon_to_top() - (Ikon nach oben verschieben)
  • 4 erase_info_icon() - (Info-Ikon löschen)
  • 4 draw_info_icon() - (Info-Ikon zeichnen)
  • 3 is_in_draginfo() - (Ist in Ziehen Info)
  • Ist es im Bereich Ziehen?
  • 3 drag_info() - (Info ziehen)
  • 3 is_in_sizeinfo() - (Ist in Dimensionieren Info)
  • Ist es im Bereich Dimensionieren?
  • 3 resize_info() - (Info neu dimensionieren)
  • 3 is_in_previous_info() - (Ist in vorausgehender Info)
  • Ist es im vorhergehenden Hilfe-Bereich?
  • 3 previous_info() - (Vorhergehende Info)
  • Im Dateistapel eine Ebene nach unten zurückgehen und diese Info-Datei heraufbringen.
  • 4 draw_info_text() - (Zeichne Info-Text)
  • 3 is_in_scroll_up() - (Ist in Aufwärtsrollen)
  • Ist es im Bereich Aufwärtsrollen?
  • 3 scroll_up_info() - (Info aufwärtsrollen)
  • Info-Text um 1 Zeile rollen.
  • 4 wait_for_repaet() - (Wiederholung abwarten)
  • Zeitgesteuerte automatische Wiederholung implementieren.
  • 3 is_in_scroll_down() - (Ist in Abwärtsrollen)
  • Ist es im Bereich Abwärtsrollen?
  • 3 scroll_down_info() - (Info abwärtsrollen)
  • Info-Text um 1 Zeile abwärtsrollen.
  • 4 wait_for_repeat() - (Wiederholung abwarten)
  • Zeitgesteuerte automatische Wiederholung implementieren.
  • 3 is_in_home_info() - (Ist in Ausgangsinfo)
  • Ist es im Bereich Ausgangsinfo?
  • 3 home_info() - (Ausgangsinfo)
  • Gehe zur Basis des Infodateistapels.
  • 4 draw_info_text() - (Info-Text zeichnen)
  • Diese Info-Datei anzeigen.
  • 3 is_in_info_info() - (Ist in Info Info)
  • Ist es im Bereich Info-Menü?
  • 3 info_info() - (Info Info)
  • Verbindung zum referenzierten Info-Text. Wenn Stift nicht in laufendem Referenzobjekt ist, überspringen.
  • 4 für jedes laufende Referenzobjekt:
  • 5 point_in_rectangle() - (Punkt im Rechteck)
  • Ist der Stift im Referenzobjekt?
  • 4 Wenn Referenz auf Ausgangsdatei verweist, alles entstapeln.
  • 3 suck_touch_points() - (Berührungspunkte annehmen)
  • 2 is in_mouse_stamp() - (Ist in Maus-Stempel)
  • 3 point_in_rectangle() (Punkt im Rechteck)
  • 2 is_in_kbd_stamp() - (Ist in Tastatur-Stempel)
  • 3 point_in_rectangle() - (Punkt im Rechteck)
  • 2 is_in_handw_stamp() - (Ist in Handschrift-Stempel)
  • 3 point_in_rectangle() - (Punkt im Rechteck)
  • 2 dev_drag_part() - (Zieh-Teil dev)
  • Stempel ziehen.
  • 1 suck_touch_points() - (Berührungspunkte annehmen)
  • Im Vorstehenden wurde eine spezielle Ausführungsform der Erfindung beschrieben. Für den Fachmann ergeben sich zusätzliche Abwandlungen. Beispielsweise ist die beschriebene spezielle Ausführungsform ein tragbarer Rechner mit einem auf das Sichtgerät aufgelegten Tablett und einer Einrichtung für "elektronische Tinte". Dem Fachmann leuchtet jedoch ein, daß die vorliegende Erfindung auch in Systemen nützlich ist, in denen das Tablett (oder ein anderes Zeigegerät) nicht am Sichtgerät benutzt wird, in denen ein anderes Lokalisiergerät als ein Tablett benutzt wird, und in Systemen, die nicht als tragbare Systeme ausgelegt sind.

Claims (23)

1. Rechnersystem, mit
einem Hauptprozessor (30) zum Ausführen vorbestehender mausgesteuerter Programme, die auf Daten relativer Mausbewegungen ansprechen und ein Hauptanzeigebild darstellende Anzeigedaten erzeugen, umfassend:
- einen Mauscursor, der auf dem Hauptanzeigebild an einer absoluten Stelle angezeigt wird, die nach Maßgabe der Daten der relativen Mausbewegung veränderlich ist,
- einen Anzeigeschirm (48),
- einen mit dem Hauptprozessor (30) Verbundenen Hauptanzeige-Pufferspeicher (38), zum Empfangen der Anzeigedaten,
- ein in den Anzeigeschirm (48) körperlich integriertes Zeiger-Typ-Eingabegerät (34), das eine absolute Stelle auf dem Zeiger-Typ-Eingabegerät (34) darstellende Zeigedaten generiert, wenn ein Systembenutzer das Zeiger-Typ-Eingabegerät (34) handhabt,
- einen Überlagerungsanzeige-Pufferspeicher (42, 44) zum Empfangen von Daten für ein Überlagerungsanzeigebild;
- einen Anzeige-Multiplexer (46) zum Empfangen von Daten vom Hauptanzeige-Pufferspeicher (38) und vom Überlagerungsanzeige-Pufferspeicher (42, 44) und zur Lieferung von Daten an den Anzeigeschirm (48), derart, daß eine Anzeige erzeugt wird, die eine Kombination des Hauptanzeigebildes und des Überlagerungsanzeigebildes ist, und
- einen für die Lieferung von Anwender-Eingabedaten an den Hauptprozessor (30) angeschlossenen Schnittstellen-Prozessor (32, 36, 50), der Zeigedaten vom Zeiger-Typ-Eingabegerät (34) empfängt und Anzeigedaten an den Überlagerungsanzeige-Pufferspeicher (42, 44) liefert, um eine simulierte Mauseinrichtung (Fig. 10) zu implementieren mit Eingabe durch den Anwender mittels des Zeiger-Typ-Eingabegerätes (34) und Rückkopplung zum Anwender mittels des Überlagerungsanzeige-Pufferspeichers (42, 44),
gekennzeichnet durch
- eine Einrichtung (32, 36, 50) zum Definieren eines Mausbewegungsbereiches ((Maus)) auf dem Zeiger-Typ-Eingabegerät (34), der keine stellungsmäßige Beziehung zum Mauscursor hat, und
- dadurch, daß der Schnittstellen-Prozessor (32, 36, 50) auf Veränderungen bei auf eine absolute Stelle zeigenden Daten im Mausbewegungsbereich ((Maus)) anspricht, derart, daß er Daten relativer Mausbewegung an den Hauptprozessor (30) sendet.
2. System nach Anspruch 1, dadurch gekennzeichnet, daß
- Mausbewegungsdaten in Mausimpulsen gemessen werden, wobei jeder Mausimpuls einer gleichbleibenden absoluten Strecke auf dem Zeiger-Typ-Eingabegerät (34) entspricht, und
- der Schnittstellen-Prozessor die Daten relativer Mausbewegung an den Hauptprozessor (30) sendet, wobei diese Daten der in Mausimpulsen gemessenen Veränderung der auf eine absolute Stelle zeigenden Daten gleich ist.
3. System nach Anspruch 2, dadurch gekennzeichnet, daß
- die Einrichtung zum Definieren der Mausbewegung (32, 36, 50) ferner ein Maus-Ikon (Fig. 10) mit einem Bewegungsskalierungsbereich (Maßstab) anzeigt, und
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im Bewegungsskalierungsbereich anspricht, derart, daß er die jedem Mausimpuls entsprechende gleichbleibende absolute Strecke auf dem Zeiger-Typ-Anzeigegerät einstellt.
4. System nach Anspruch 1, dadurch gekennzeichnet, daß die den Mausbewegungsbereich definierende Einrichtung (32, 36, 50) ferner ein Maus-Ikon (Fig. 10) mit einem Maustastenbereich ((L)) anzeigt, der wenigstens einer Maustaste entspricht.
5. System nach Anspruch 4, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) Daten an den Überlagerungsanzeige-Pufferspeicher (42, 44) für die Veränderung des Aussehens des Maustastenbereichs ((L)) auf dem Anzeigeschirm (48) liefert, während eine Betätigung der Maustaste anzeigende Daten an den Hauptprozessor (30) gesandt werden.
6. System nach Anspruch 4, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im Maustastenbereich ((L)) während einer kürzeren als einer vorbestimmten Zeitspanne anspricht, derart, daß er Daten an den Hauptprozessor (30) sendet, die angeben, daß die Maustaste gedrückt und dann losgelassen worden ist, und auf Zeigedaten im Maustastenbereich ((L)) während einer längeren als der vorbestimmten Zeitspanne anspricht, derart, daß er Daten an den Hauptprozessor (30) sendet, die angeben, daß die Maustaste gedrückt und gedrückt gehalten worden ist.
7. System nach Anspruch 6, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) beim Senden von Daten an den Hauptprozessor (30), die angeben, daß die Maustaste gedrückt und gedrückt gehalten wird, auf Zeigedaten im Maustastenbereich ((L)) anspricht, derart, daß er an den Hauptprozessor Daten sendet, die angeben, daß die Maustaste losgelassen worden ist.
8. System nach Anspruch 4, dadurch gekennzeichnet, daß
- die Ikon-Anzeigeeinrichtung (32, 36, 50) ferner im Maus- Ikon (Fig. 10) einen einer zweiten Maustaste entsprechenden zweiten Maustastenbereich ((R)) anzeigt, und
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im zweiten Maustastenbereich ((R)) anspricht, derart, daß er an den Hauptprozessor (30) Daten sendet, die eine Betätigung der zweiten Maustaste angeben.
9. System nach Anspruch 8, dadurch gekennzeichnet, daß
der Schnittstellen-Prozessor (32, 36, 50) Daten an den Überlagerungsanzeige-Pufferspeicher (42, 44) für die Veränderung des Aussehens des zweiten Maustastenbereichs ((R)) auf dem Anzeigeschirm (48) liefert, während eine Betätigung der zweiten Maustaste angebende Daten an den Hauptprozessor (30) gesandt werden.
10. System nach Anspruch 8, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im zweiten Maustastenbereich ((R)) während einer kürzeren als einer vorbestimmten Zeitspanne anspricht, derart, daß er Daten an den Hauptprozessor (30) sendet, die angeben, daß die zweite Maustaste gedrückt und dann losgelassen worden ist, und auf Zeigedaten im zweiten Maustastenbereich ((R)) während einer längeren als der vorbestimmten Zeitspanne anspricht, derart, daß er Daten an den Hauptprozessor (30)sendet, die angeben, daß die zweite Maustaste gedrückt und gedrückt gehalten worden ist.
11. System nach Anspruch 10, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) beim Senden von Daten an den Hauptprozessor (30), die angeben, daß die zweite Maustaste gedrückt und gedrückt gehalten wird, auf Zeigedaten im Maustastenbereich ((R)) anspricht, derart, daß er an den Hauptprozessor Daten sendet, die angeben, daß die zweite Maustaste losgelassen worden ist.
12. System nach Anspruch 8, dadurch gekennzeichnet, daß
- die Ikon-Anzeigeeinrichtung (32, 36, 50) ferner im Maus- Ikon (Fig. 10) einen dritten Maustastenbereich (Beide) anzeigt, und
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im dritten Maustastenbereich (Beide) anspricht, derart, daß er an den Hauptprozessor (30) Daten sendet, die eine im wesentlichen gleichzeitige Betätigung beider Maustasten angeben.
13. System nach Anspruch 12, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) Daten an den Überlagerungsanzeige-Pufferspeicher (42, 44) für die Veränderung des Aussehens beider Maustastenbereiche ((L), (R)) auf dem Anzeigeschirm (48) liefert, während eine Betätigung beider Maustasten angebende Daten an den Hauptprozessor (30) gesandt werden.
14. System nach Anspruch 8, dadurch gekennzeichnet, daß
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im dritten Maustastenbereich (Beide) während einer kürzeren als einer vorbestimmten Zeitspanne anspricht, derart, daß er Daten an den Hauptprozessor (30) sendet, die angeben, daß beide Maustasten im wesentlichen gleichzeitig gedrückt und dann losgelassen worden sind, und auf Zeigedaten im dritten Maustastenbereich (Beide) während einer längeren als der vorbestimmten Zeitspanne anspricht, derart, daß er an den Hauptprozessor (30) Daten sendet, die angeben, daß beide Maustasten im wesentlichen gleichzeitig gedrückt und gedrückt gehalten worden sind.
15. System nach Anspruch 14, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) beim Senden von Daten an den Hauptprozessor (30), die angeben, daß die zuerst genannte Maustaste gedrückt und gedrückt gehalten wird, auf Zeigedaten im zuerst genannten Maustastenbereich ((L)) anspricht, derart, daß er an den Hauptprozessor (30) Daten sendet, die angeben, daß die zuerst genannte Maustaste losgelassen worden ist.
16. System nach Anspruch 14, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50) beim Senden von Daten an den Hauptprozessor (30), die angeben, daß die zweite Maustaste gedrückt und gedrückt gehalten wird, auf Zeigedaten im zweiten Maustastenbereich ((R)) anspricht, derart, daß er an den Hauptprozessor Daten sendet, die angeben, daß die zweite Maustaste losgelassen worden ist.
17. System nach Anspruch 14, dadurch gekennzeichnet, daß der Schnittstellen-Prozessor (32, 36, 50), der angibt, daß beide Maustasten gedrückt und gedrückt gehalten werden, auf Zeigedaten im dritten Maustastenbereich (Beide) anspricht, derart, daß er an den Hauptprozessor (30) Daten sendet, die angeben, daß beide Maustasten im wesentlichen gleichzeitig losgelassen worden sind.
18. System nach Anspruch 4, dadurch gekennzeichnet, daß
- die Ikon-Anzeigeeinrichtung (32, 36, 50) ferner im Maus- Ikon (Fig. 10) einen Versetzungsbereich (Ziehen) anzeigt, und
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im Versetzungsbereich anspricht, derart, daß er das Maus-Ikon (Fig. 10) auf dem Anzeigeschirm (48) bewegt.
19. System nach Anspruch 4, dadurch gekennzeichnet, daß
- die Ikon-Anzeigeeinrichtung (32, 36, 50) ferner im Maus- Ikon (Fig. 10) einen Dimensionierungsbereich (Größe) anzeigt, und
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten im Dimensionierungsbereich (Größe) anspricht, derart, daß er die Größe des Maus-Ikons (Fig. 10) auf dem Anzeigeschirm (48) ändert.
20. System nach Anspruch 4, dadurch gekennzeichnet, daß
die Ikon-Anzeigeeinrichtung (32, 36, 50) den Mausbewegungsbereich ((Maus)) als Teil des Maus-Ikons definiert.
21. System nach Anspruch 4, dadurch gekennzeichnet, daß die Ikon-Anzeigeeinrichtung (32, 36, 50) den Mausbewegungsbereich auf dein Zeiger-Typ-Eingabegerät (34) an einer beliebigen Stelle definiert, die vom Rechnersystem für andere Funktionen nicht benutzt wird.
22. System nach Anspruch 4, dadurch gekennzeichnet, daß
- die Ikon-Anzeigeeinrichtung (32, 36, 50) den Mausbewegungsbereich auf dem Zeiger-Typ-Eingabegerät (34) an einer beliebigen Stelle definiert, und
- der Schnittstellen-Prozessor (32, 36, 50) auf Zeigedaten anspricht, um einen Mauscursor zu einer Stelle auf dem Anzeigeschirm zu bewegen, die einer von einem Benutzer angegebenen Stelle auf dem Zeiger-Typ-Eingabegerät entspricht.
23. System nach Anspruch 4, dadurch gekennzeichnet, daß
- zumindest ein Abschnitt des auf dem Schirm angezeigten Maus-Ikons eine simulierte Mausfläche darstellt, und
- Einrichtungen vorgesehen sind, um in Mausbewegungsdaten nur solche Bewegungen der Zeigevorrichtung umzuwandeln, die innerhalb des simulierten Flächenabschnitts des Maus-Ikons beginnen.
DE69105997T 1990-11-13 1991-06-20 Rechner mit tabletteingabe in standardprogramme. Expired - Fee Related DE69105997T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/613,324 US5148155A (en) 1990-11-13 1990-11-13 Computer with tablet input to standard programs
PCT/US1991/004460 WO1992009037A1 (en) 1990-11-13 1991-06-20 Computer with tablet input to standard programs

Publications (2)

Publication Number Publication Date
DE69105997D1 DE69105997D1 (de) 1995-01-26
DE69105997T2 true DE69105997T2 (de) 1995-07-13

Family

ID=24456849

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69105997T Expired - Fee Related DE69105997T2 (de) 1990-11-13 1991-06-20 Rechner mit tabletteingabe in standardprogramme.

Country Status (7)

Country Link
US (1) US5148155A (de)
EP (1) EP0557282B1 (de)
JP (1) JPH06501798A (de)
AU (1) AU652767B2 (de)
CA (1) CA2092904A1 (de)
DE (1) DE69105997T2 (de)
WO (1) WO1992009037A1 (de)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361310A (en) * 1990-01-19 1994-11-01 Fujitsu Limited Handwriting entry processing system using keyboard and mouse interfaces requiring no modification of an application program
US6941481B2 (en) * 1990-03-23 2005-09-06 Matsushita Electric Industrial Co., Ltd. Data processing apparatus
JPH07117868B2 (ja) * 1991-04-30 1995-12-18 インターナショナル・ビジネス・マシーンズ・コーポレイション タツチ型作動キーボード定義方法及び装置
US5946406A (en) * 1991-06-17 1999-08-31 Microsoft Corporation Method and system for data entry of handwritten symbols
JPH0520274A (ja) * 1991-07-10 1993-01-29 Canon Inc 電子情報機器
US5450596A (en) * 1991-07-18 1995-09-12 Redwear Interactive Inc. CD-ROM data retrieval system using a hands-free command controller and headwear monitor
FR2680420B1 (fr) * 1991-08-14 1994-06-17 Truchet Philippe Dispositif electronique pour transformer un systeme informatique standard en ordinateur dit sans clavier afin d'en simplifier l'utilisation.
JPH07104766B2 (ja) * 1991-10-28 1995-11-13 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのメニューから複数のオブジェクトを表示する方法及び装置
JPH07504997A (ja) * 1992-03-20 1995-06-01 ブイ エル エス アイ テクノロジー,インコーポレイテッド 2重スキャンlcdパネル駆動用のアドレス変換を用いたvga制御器と駆動方法
US5329625A (en) * 1992-04-15 1994-07-12 International Business Machines Corp. System to service processor interface for a tablet computer
CA2089784C (en) * 1992-04-15 1996-12-24 William Joseph Anderson Apparatus and method for disambiguating an input stream generated by a stylus-based user interface
US5583542A (en) * 1992-05-26 1996-12-10 Apple Computer, Incorporated Method for deleting objects on a computer display
JPH064277A (ja) * 1992-06-23 1994-01-14 Hitachi Ltd Gui制御プログラム自動生成方法および装置
JP3227218B2 (ja) * 1992-09-11 2001-11-12 キヤノン株式会社 情報処理装置
US5404442A (en) * 1992-11-30 1995-04-04 Apple Computer, Inc. Visible clipboard for graphical computer environments
US5550562A (en) * 1993-01-12 1996-08-27 Fujitsu Limited Data processing device that enables mouse-operated application programs to be operated from an operation pad, and an operation pad for use with the same
CA2164588A1 (en) * 1993-06-07 1994-12-22 Lee Felsenstein Hands-free cd-rom data retrieval and recording system
US6366697B1 (en) 1993-10-06 2002-04-02 Xerox Corporation Rotationally desensitized unistroke handwriting recognition
US5422656A (en) * 1993-11-01 1995-06-06 International Business Machines Corp. Personal communicator having improved contrast control for a liquid crystal, touch sensitive display
US6243071B1 (en) * 1993-11-03 2001-06-05 Apple Computer, Inc. Tool set for navigating through an electronic book
US5511135A (en) * 1993-11-29 1996-04-23 International Business Machines Corporation Stylus-input recognition correction manager
JP3546337B2 (ja) * 1993-12-21 2004-07-28 ゼロックス コーポレイション 計算システム用ユーザ・インタフェース装置及びグラフィック・キーボード使用方法
US5504589A (en) * 1993-12-27 1996-04-02 Montague; Charles E. System and apparatus for transmitting food orders to a central station
US5508720A (en) * 1994-02-02 1996-04-16 Copytele, Inc. Portable telecommunication device with removable electrophoretic display
WO1995025326A1 (en) * 1994-03-17 1995-09-21 Voice Powered Technology International, Inc. Voice/pointer operated system
DE69533479T2 (de) 1994-07-01 2005-09-22 Palm Computing, Inc., Los Altos Zeichensatz mit zeichen aus mehreren strichen und handschrifterkennungssystem
JPH0816313A (ja) * 1994-07-04 1996-01-19 Sanyo Electric Co Ltd 手書き入力方法及び装置
US6262719B1 (en) * 1994-09-02 2001-07-17 Packard Bell Nec, Inc. Mouse emulation with a passive pen
US6292181B1 (en) 1994-09-02 2001-09-18 Nec Corporation Structure and method for controlling a host computer using a remote hand-held interface device
US6092117A (en) * 1994-09-02 2000-07-18 Packard Bell Nec System and method for automatically reconnecting a wireless interface device to a host computer
US6209034B1 (en) 1994-09-02 2001-03-27 Nec Corporation Remote keyboard macros activated by hot icons
US5867106A (en) * 1994-09-02 1999-02-02 Packard Bell Nec Password switch to override remote control
US5974558A (en) * 1994-09-02 1999-10-26 Packard Bell Nec Resume on pen contact
US6137473A (en) * 1994-09-02 2000-10-24 Nec Corporation System and method for switching control between a host computer and a remote interface device
US5694123A (en) * 1994-09-15 1997-12-02 International Business Machines Corporation Keyboard with integrated pointing device and click buttons with lock down for drag operation in a computer system with a graphical user interface
DE4438768A1 (de) * 1994-10-24 1996-04-25 Aristo Graphic Systeme Verwendung eines Mittels, welches ein Tastatureingaben-Datenformat für einen Computer erzeugt
US5606674A (en) * 1995-01-03 1997-02-25 Intel Corporation Graphical user interface for transferring data between applications that support different metaphors
US5802388A (en) * 1995-05-04 1998-09-01 Ibm Corporation System and method for correction and confirmation dialog for hand printed character input to a data processing system
US20090322499A1 (en) * 1995-06-29 2009-12-31 Pryor Timothy R Programmable tactile touch screen displays and man-machine interfaces for improved vehicle instrumentation and telematics
JPH0981320A (ja) * 1995-09-20 1997-03-28 Matsushita Electric Ind Co Ltd ペン入力式選択入力装置及びその方法
US6279153B1 (en) 1995-10-16 2001-08-21 Nec Corporation Multi-user flash ROM update
US6108727A (en) * 1995-10-16 2000-08-22 Packard Bell Nec System having wireless interface device for storing compressed predetermined program files received from a remote host and communicating with the remote host via wireless link
US6148344A (en) * 1995-10-16 2000-11-14 Nec Corporation System and method for enabling an IPX driver to accommodate multiple LAN adapters
US6664982B1 (en) 1995-10-16 2003-12-16 Nec Corporation Multi-user on-screen keyboard
US5996082A (en) * 1995-10-16 1999-11-30 Packard Bell Nec System and method for delaying a wake-up signal
US7512671B1 (en) * 1995-10-16 2009-03-31 Nec Corporation Computer system for enabling a wireless interface device to selectively establish a communication link with a user selectable remote computer
US6126327A (en) * 1995-10-16 2000-10-03 Packard Bell Nec Radio flash update
US6018806A (en) * 1995-10-16 2000-01-25 Packard Bell Nec Method and system for rebooting a computer having corrupted memory using an external jumper
US5990875A (en) * 1995-10-16 1999-11-23 Packard Bell Nec Double pen up event
US7113173B1 (en) 1995-10-16 2006-09-26 Nec Corporation Local handwriting recognition in a wireless interface tablet device
US5923866A (en) * 1996-04-26 1999-07-13 Acer Incorporated Method and apparatus for realizing a keyboard key function on a remote control
US6417844B1 (en) * 1996-06-25 2002-07-09 Seiko Epson Corporation Data processing apparatus and data processing method
US6128007A (en) * 1996-07-29 2000-10-03 Motorola, Inc. Method and apparatus for multi-mode handwritten input and hand directed control of a computing device
US5784060A (en) * 1996-08-22 1998-07-21 International Business Machines Corp. Mobile client computer programmed to display lists and hexagonal keyboard
JP2000517445A (ja) * 1996-08-28 2000-12-26 ヴィーア・インコーポレイテッド タッチ画面装置及び方法
US5905486A (en) * 1997-03-03 1999-05-18 International Business Machines Corporation Mobile client computer programmed to combine cursor, control and input functions
US9292111B2 (en) 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
US9239673B2 (en) 1998-01-26 2016-01-19 Apple Inc. Gesturing with a multipoint sensing device
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US6326952B1 (en) * 1998-04-24 2001-12-04 International Business Machines Corporation Method and apparatus for displaying and retrieving input on visual displays
US6911969B1 (en) 1998-05-01 2005-06-28 Honeywell International Inc. Handheld computer apparatus
US7158871B1 (en) 1998-05-07 2007-01-02 Art - Advanced Recognition Technologies Ltd. Handwritten and voice control of vehicle components
US6160539A (en) * 1998-06-08 2000-12-12 Wacom Co., Ltd. Digitizer system with cursor shape changing as a function of pointer location on menu strip
US6982702B1 (en) * 1998-06-12 2006-01-03 Hewlett-Packard Development Company, L.P. Portable computer system
US6597346B1 (en) 1998-10-02 2003-07-22 Honeywell Inc. Hand held computer with see-through display
US6650305B1 (en) 1998-10-02 2003-11-18 Honeywell Inc. Wireless electronic display
US6690357B1 (en) * 1998-10-07 2004-02-10 Intel Corporation Input device using scanning sensors
JP4371466B2 (ja) * 1999-04-15 2009-11-25 株式会社東芝 コンピュータシステム及びそのi/o装置の制御方法
US7106888B1 (en) * 1999-05-25 2006-09-12 Silverbrook Research Pty Ltd Signature capture via interface surface
US6741235B1 (en) * 2000-06-13 2004-05-25 Michael Goren Rapid entry of data and information on a reduced size input area
US7006711B2 (en) * 2000-06-21 2006-02-28 Microsoft Corporation Transform table for ink sizing and compression
US7397949B2 (en) * 2000-06-21 2008-07-08 Microsoft Corporation Serial storage of ink and its properties
US6707473B2 (en) * 2001-08-01 2004-03-16 Microsoft Corporation Dynamic rendering of ink strokes with transparency
US7346229B2 (en) * 2001-06-27 2008-03-18 Microsoft Corporation Transform table for ink sizing and compression
US6909430B2 (en) * 2001-08-01 2005-06-21 Microsoft Corporation Rendering ink strokes of variable width and angle
US7168038B2 (en) * 2001-08-01 2007-01-23 Microsoft Corporation System and method for scaling and repositioning drawings
US7849301B2 (en) * 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US6930670B2 (en) * 2001-12-31 2005-08-16 Aiptek International Inc. Computer peripheral input system with two input types and method of data communication for the same
US6882337B2 (en) * 2002-04-18 2005-04-19 Microsoft Corporation Virtual keyboard for touch-typing using audio feedback
US20030197690A1 (en) * 2002-04-19 2003-10-23 Zimenkov Oleg N. Computer input system
US7190351B1 (en) 2002-05-10 2007-03-13 Michael Goren System and method for data input
US6910911B2 (en) 2002-06-27 2005-06-28 Vocollect, Inc. Break-away electrical connector
US20040130525A1 (en) * 2002-11-19 2004-07-08 Suchocki Edward J. Dynamic touch screen amusement game controller
US7685538B2 (en) * 2003-01-31 2010-03-23 Wacom Co., Ltd. Method of triggering functions in a computer application using a digitizer having a stylus and a digitizer system
US20040228532A1 (en) * 2003-05-14 2004-11-18 Microsoft Corporation Instant messaging ink and formats
US8281241B2 (en) 2004-06-28 2012-10-02 Nokia Corporation Electronic device and method for providing extended user interface
US8381135B2 (en) 2004-07-30 2013-02-19 Apple Inc. Proximity detector in handheld device
CN100429608C (zh) * 2005-03-30 2008-10-29 汉王科技股份有限公司 一种具有手写输入和鼠标功能的装置
US20070080930A1 (en) * 2005-10-11 2007-04-12 Logan James R Terminal device for voice-directed work and information exchange
US20080052389A1 (en) * 2006-08-24 2008-02-28 George David A Method and apparatus for inferring the busy state of an instant messaging user
WO2009029048A1 (en) * 2007-08-30 2009-03-05 Razer (Asia-Pacific) Pte Ltd Keys deactivation system and method
USD626949S1 (en) 2008-02-20 2010-11-09 Vocollect Healthcare Systems, Inc. Body-worn mobile device
US8296670B2 (en) * 2008-05-19 2012-10-23 Microsoft Corporation Accessing a menu utilizing a drag-operation
US8386261B2 (en) 2008-11-14 2013-02-26 Vocollect Healthcare Systems, Inc. Training/coaching system for a voice-enabled work environment
US20100283740A1 (en) * 2009-05-05 2010-11-11 Ching-Hung Chao Method for Protecting Resistive Touch Panel and Computer-Readable Storage Medium and Electronic Device thereof
US8355007B2 (en) 2009-05-11 2013-01-15 Adobe Systems Incorporated Methods for use with multi-touch displays for determining when a touch is processed as a mouse event
US8659397B2 (en) 2010-07-22 2014-02-25 Vocollect, Inc. Method and system for correctly identifying specific RFID tags
USD643400S1 (en) 2010-08-19 2011-08-16 Vocollect Healthcare Systems, Inc. Body-worn mobile device
USD643013S1 (en) 2010-08-20 2011-08-09 Vocollect Healthcare Systems, Inc. Body-worn mobile device
US9632604B2 (en) * 2012-03-27 2017-04-25 Hewlett-Packard Development Company, L.P. Input components of a device
EP2884721A4 (de) * 2012-08-09 2015-08-12 Yonggui Li Tastatur und maus eines mobiltelefons
CN107526494B (zh) * 2017-09-06 2021-02-09 北京小米移动软件有限公司 键盘显示方法、装置、终端及存储介质
KR20210014397A (ko) * 2019-07-30 2021-02-09 삼성전자주식회사 스타일러스 펜에 의한 제스처를 확인하는 전자 장치 및 그 동작 방법
CN112905092B (zh) * 2021-02-22 2023-07-07 深圳市康冠商用科技有限公司 擦除控件的调节方法、装置、电子设备及存储介质
CN114998632B (zh) * 2022-05-17 2023-10-24 海南大学 一种基于像素聚类的rvin检测和去除的方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4639720A (en) * 1981-01-12 1987-01-27 Harris Corporation Electronic sketch pad
US4602286A (en) * 1982-01-15 1986-07-22 Quantel Limited Video processing for composite images
US4587633A (en) * 1982-11-10 1986-05-06 Wang Laboratories, Inc. Management communication terminal system
JPS60205686A (ja) * 1984-03-30 1985-10-17 Hitachi Ltd 手書き文字・図形認識システム
DE3586927T2 (de) * 1984-04-20 1993-06-03 Hitachi Ltd Flaches bildschirmanzeigesystem mit integriertem eingabegeraet.
US4562304A (en) * 1984-05-23 1985-12-31 Pencept, Inc. Apparatus and method for emulating computer keyboard input with a handprint terminal
JPS61120231A (ja) * 1984-11-16 1986-06-07 Sharp Corp 手書き入力装置
JPS61275990A (ja) * 1985-05-31 1986-12-06 Canon Inc 手書パタ−ン認識機能付電子機器
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US4899136A (en) * 1986-04-28 1990-02-06 Xerox Corporation Data processor having a user interface display with metaphoric objects
US4972496A (en) * 1986-07-25 1990-11-20 Grid Systems Corporation Handwritten keyboardless entry computer system
US4839634A (en) * 1986-12-01 1989-06-13 More Edward S Electro-optic slate for input/output of hand-entered textual and graphic information
JPS63220334A (ja) * 1987-03-10 1988-09-13 Sharp Corp デ−タ処理装置
US4953225A (en) * 1987-10-16 1990-08-28 Sharp Kabushiki Kaisha Handwritten character-recognizing apparatus for automatically generating and displaying character frames
DE68929051T2 (de) * 1988-05-27 2000-03-09 Kodak Ltd Verkleinerte Bilderzeugung
JPH02127720A (ja) * 1988-11-08 1990-05-16 Mitsubishi Electric Corp 情報処理装置の入力用デバイス・シミュレート方式
FR2645990A1 (fr) * 1989-04-14 1990-10-19 Telematique Videotex Francaise Micro-ordinateur p ortatif a ecran-clavier tactile

Also Published As

Publication number Publication date
US5148155A (en) 1992-09-15
EP0557282B1 (de) 1994-12-14
DE69105997D1 (de) 1995-01-26
EP0557282A1 (de) 1993-09-01
WO1992009037A1 (en) 1992-05-29
CA2092904A1 (en) 1992-05-14
AU8204691A (en) 1992-06-11
JPH06501798A (ja) 1994-02-24
AU652767B2 (en) 1994-09-08

Similar Documents

Publication Publication Date Title
DE69105997T2 (de) Rechner mit tabletteingabe in standardprogramme.
DE69113478T2 (de) Rechner mit getrennter anzeigeebene und benutzerschnittstellenrechner.
DE69119432T2 (de) Benutzerschnittstelle mit simulierten vorrichtungen
DE69026417T2 (de) Hochentwickelte Anwenderschnittstelle
DE69023761T2 (de) Interaktives Datenverarbeitungsgerät mit Griffel.
DE60314563T2 (de) Überlagerung mit elektronischer Tinte
DE69026647T2 (de) Zoommodusbetriebsarten in einem Anzeigegerät
DE68928276T2 (de) Dokumentenaufzeichnung und -bearbeitung in einem datenverarbeitungssystem
DE3586927T2 (de) Flaches bildschirmanzeigesystem mit integriertem eingabegeraet.
CN101404152B (zh) 信息显示装置
EP0422577A2 (de) Verfahren und Vorrichtung zum Anzeigen von simulierten Tastaturen auf berührungsempfindlichen Anzeigen
DE69221204T2 (de) Datenverarbeitungsgerät zur Fensterpositionensteuerung
CA2067689A1 (en) Apparatus and method for inputting data
DE102019122932A1 (de) Techniken zum verbinden einer eingabeauflageeinrichtung mit einer touchscreen-recheneinrichtung
DE68927327T2 (de) Vorrichtung für belegkommentierung und manipulierung unter verwendung von bildern einer fensterquelle
DE69535004T2 (de) Eine mensch/maschinenschnittstelle für rechnervorrichtungen
EP0100798A1 (de) Rechnergestütztes Entwurfssystem
US5319385A (en) Quadrant-based binding of pointer device buttons
EP0878754A2 (de) Verfahren zur Interaktion mit einem Rechner, Benutzungsoberfläche und Benutzungsschnittstelle
JPS6355097B2 (de)
DE19932671B4 (de) Verfahren zur Steuerung eines Verarbeitungssystems für Text, Tabellenfelder und Graphik und dafür geeignetes Verarbeitungssystem
JP2763836B2 (ja) 文章処理装置および文章処理装置の書式変更方法
JP2000222101A (ja) 応用プログラム処理信号入力装置
JPH073629B2 (ja) デイスプレイ装置
JPS58192133A (ja) 入力装置

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: WANG LABORATORIES, INC., BILLERICA, MASS., US

8327 Change in the person/name/address of the patent owner

Owner name: 3M INNOVATIVE PROPERTIES CO., ST. PAUL, MINN., US

8339 Ceased/non-payment of the annual fee