Die Menüs des HP 49G

Nachfolgende Ausführungen gelten für den RPN-Modus.

Die hier verwendete Notation ist in einem gesonderten Beitrag zusammengestellt.

Inhalt

Globale und temporäre benutzerdefinierte Menüs
Eingebaute Menüs
Bibiliotheksmenüs
Kennzeichnung des Menüs und Bibliotheken
Menünummer
Bibliotheksnummer als Menünummer
Menü auswählen und anzeigen
Woher weiß ich diese Nummern?
Nummernermittlung
Was steht in den Handbüchern über Menüs?
Hinweis für temporäre Menüs
Nicht über Tastatur auswählbare Menüs
Nummernlose Menüs
Menüs im Schnellzugriff per Tastatur
Menüverwendung in Programmen

Zur Übersicht


Globale und temporäre benutzerdefinierte Menüs

In den Beiträgen "Der persönliche HP 49G" und "Einheiten" werden globale und temporäre Menüs definiert und erzeugt. Auf diese dort gezeigte Weise kann man eigene Menüs erzeugen und an den persönlichen Bedarf anpassen.

Eingebaute Menüs

Der HP 49G hat viele eingebaute Menüs und eingebaute Bibliotheken, die meist als Tastenmenüs oder gelegentlich auch als Auswahlmenüs zur Verfügung stehen. Die einzelnen Befehle dieser Menüs können auch als Befehle oder (allgemeiner gesagt) als Objekte innerhalb eines Programms verwendet werden.

Bibliotheksmenüs

Die Menüs der angebundenen Bibliotheken, ob eingebaut oder selbst erzeugt, können allgemein über die library ID (LIB ID) der Bibliothek ausgewählt werden. Wie das geht, wird weiter unten beschrieben.

Kennzeichnung der Menüs und Bibliotheken

Menünummer

Da die Menüs systemintern genau definiert und bekannt sein müssen, ist jedes Menü intern mit einer eindeutigen Nummer bezeichnet.

Beispiel:

Das Directory-Menü wählt man mit der Tastenfolge [leftshift][PRG][MEM][DIR] aus. Das Programm « 71 MENU » oder die Befehlsfolge 71 MENU hat die gleiche Wirkung wie die obige Tastenfolge. Das Directory-Menü hat also die Nummer 71.

Weitere Beispiele:

Menü-Name Tastenfolge für Auswahl Befehlsfolge
TIME-Menu [rightshift]&[9] = [rightshift]&[TIME]
("&" bedeutet [rightshift] gedrückt halten, während man die Taste [9] drückt)
94 MENU oder
167 MENU
Alarm-Menü [rightshift]&[TIME][ALRM] 95 MENU
Programmausgabemenü [leftshift][PRG][NXT][OUT] 40 MENU
Arithmetikmenü [leftshift][1] = [leftshift][ARITH] 125 MENU

Bibliotheksnummer als Menünummer

Für die Menüs der Bibliotheken gilt die library ID, also die Bibliotheksnummer, als Menünummer.

Menünummern darf es nur einmal geben

Im HP49G muß die Nummer eines Menüs oder einer Bibliothek einmalig sein.

Kurz gesagt: Wenn man Bibliotheken austauschen will, dann dürfen verschiedene auf dem HP 49G vorhandene Bibliotheken nicht dieselbe Nummer haben. Man muß sich also vorher auf bestimmte Nummern einigen bzw. darf schon belegte Nummern nicht für neue Bibliotheken verwenden.

Nummernkonvention:
Wenn eine Nummer einmal vergeben ist, wird sie zur festen Nummer. Weil eingebaute Bibliotheken und eingebaute Menüs schon feste Nummern haben, muß man bei der Wahl der Bibliotheksnummern für eigene Bibliotheken vorsichtig sein, damit man nicht eine Menünummer oder die Nummer einer eingebauten Bibliothek oder einer fremden Bibliothek erwischt, die auf demselben Rechner schon vorhanden ist.

Menü auswählen und anzeigen

Auswählen und anzeigen kann man ein bestimmtes Menü durch nn MENU oder nn TMENU, wobei nn die ein- oder mehrstellige Menünummer ist.

Das Menü einer Bibliothek wird auf die gleiche Weise ausgewählt, für nn wird dann die drei- oder vierstellige Bibliotheksnummer (library ID) angegeben. Angezeigt wird in diesem Fall die Hauptseite (1. Seite) eines Menüs.

Manche Menüs haben mehrere Seiten, die man über Tastatur mit der Taste [NXT] auswählen kann. Zum Anzeigen einer bestimmten Menüseite gibt man die Nummer des Menüs in der Form nn.pp an. Dabei bedeutet nn die Nummer des Menüs und pp die zweistellige (!) Zahl für die entsprechende Menüseite (pp = page), die angezeigt werden soll.
Die Auswahl und Anzeige erfolgt durch nn.pp MENU oder nn.pp TMENU.

Beispiel:

Das Menü der eingebauten Bibliothek 256 (siehe auch "Befehle der Entwicklungs-Bibliothek 256") wählt man mit der Befehlsfolge 256 MENU aus. Es wird als Menü mit Menüfeldern auf dem Bildschirm angezeigt.

Woher weiß ich diese Nummern?

Nummernermittlung

Um die Menünummern herauszufinden gibt es drei Möglichkeiten:

1. Im Programmierhandbuch des HP 48G ist bei der Beschreibung des Befehls MENU eine Tabelle mit den Menünummern 0 bis 117 abgedruckt. Diese Nummern gelten auch (mit Einschränkungen) für den HP 49G.
2. bei www.hpcalc.org werden aktualisierte Listen (z.B. Datei menulibs.zip mit Liste menulibs.txt) veröffentlicht. Dort sind alle bis dahin bekannten Menü- und Bibliotheksnummern enthalten.
Die von Anwenderbibliotheken belegten Nummern sind dort nicht zu finden.
3. Die HP-Entwickler geben den Anwendern ein Hilfsmittel in die Hand, nämlich den Befehl RCLMENU, mit dem die Menünummern ausgegeben werden können. Aber alle Nummern lassen sich nicht durch RCLMENU ermitteln, siehe unten.

Vorgang der Nummernermittlung:
Man wählt per Tastenfolge das gewünschte Menü aus. Dann ruft man (während das Menü angezeigt wird) RCLMENU auf (über [CAT] oder über direkte Eingabe). Die gesuchte Nummer des Menüs wird im Stack angezeigt in der Form nn.pp. Dabei bedeutet nn die Nummer des Menüs und pp die zweistellige (!) Zahl für die entsprechende Menüseite (pp = page), die gerade angezeigt wird. Die Hauptseite (1. Seite) eines Menüs wird immer mit pp = 01 angezeigt.

Beispiel: Wenn man sich die zweite Seite des TIME-Menüs mit [rightshift]&[TIME][NXT] anzeigen läßt und dann RCLMENU aufruft, erhält man die Stackanzeige 94.02. Dabei ist 94 die Menünummer, 02 ist die zweistellige Seitenangabe. Umgekehrt kann man mit der Befehlsfolge 94.02 MENU (anstelle der obigen Tastenfolge) dieses Menü direkt auswählen.

Was steht in den HP49G-Handbüchern über Menüs?

In den Handbüchern zum HP 49G gibt es nur spärliche Angaben über Menüs.

Die "HP 49G Kurzanleitung", die mit dem Rechner mitgeliefert wurde, zeigt auf den Seiten 10, 12, 14, 28 und 31 einige Menüs und die Menünummern dazu.

Das "HP 49G Benutzerhandbuch für Fortgeschrittene" (deutsche Ausgabe, Teilenummer F1633-90408) enthält im Kapitel 1 auf den Seiten 1-1 bis 1-3 allgemeine Angaben über "Themenspezifische Menüs".

Dort sind folgende Menüs (ohne Nummern) angegeben:

Menü Tastenfolge Menünummer,
über RCLMENU
ermittelt
Mathematik [leftshift][MTH] 3
Symbolische Lösungen [leftshift][S.SLV] 120
Exponential- und
Logarithmusfunktionen
[leftshift][EXP&LN] 121
Trigonometrie [rightshift][TRIG] 122
Inifinitesimalrechnung [leftshift][CALC] 123
Algebra [rightshift][ALG] 124
Matrizen [leftshift][MATRICES] 129
Statistik [rightshift][STAT] Auswahlmenüs mit
INFORM-Eingaben
Konvertieren [leftshift][CONVERT] 131
Einheiten [rightshift][UNITS] 42
Arithmetik [leftshift][ARITH] 125
Komplexe Zahlen [rightshift][CMPLX] 130
Basis [rightshift][BASE] 15

Viele dieser Menüs haben Untermenüs. Die Nummern stehen nicht im Handbuch.

Hinweis für temporäre Menüs

Temporäre Menüs können nicht auf diese Weise (über eine Menünummer) aufgerufen werden, weil sie nur temporär (für die Zeit ihrer Verwendung) existieren und keine Menünummer haben. Sie sind meist in Variablen gespeichert.

Man wählt diese tempörären Menüs aus, indem man diese Variable aktiviert (siehe Erläuterungen).

Nicht über Tastatur auswählbare Menüs

Nicht alle Menüs sind über Tastatur auswählbar. Die meisten alten Menüs des HP 48G (Menünummern: 30, 74 bis 93, 96 bis 118, 132, 133, 134 bis 138, 140 bis 142, 144, 145, 147, 149,150, 167) sind zwar auch auf dem HP 49G verfügbar, aber nur über den MENU-Befehl zugänglich. Einige davon sind nicht mehr aktiv.

Menü Tastenfolge Menünummer
Alte Solver-Menüs keine 30, 74 bis 80
Alte PLOT-Menüs keine 81 bis 92
Altes SYMBOLIC-Menü Einzelbefehle über
[CAT][...] aufrufbar
93
Library-Menü:
[PVARS],[LIBS],[DETACH],[ATTACH],[PINIT]
Einzelbefehle über
[CAT][...] aufrufbar
110
Ports und angebundene Libraries [rightshift][LIB] 111, 112
Gleichungsbibliothek
[EQLIB], [COLIB], [MES], [UTILS]
keine 113
Gleichungsbibliothek COLIB [APPS][3][OK] 115, Auswahlmenü
[MSOLVR],[MINIT],[MITM],
[MUSER],[MCALC],[MROOT]
keine 116
Alte I/O-Menüs [APPS][2][OK] Auswahlmenü,
Menünummern 104 bis 109

Nummernlose Menüs

Manche Menüs geben über RCLMENU keine definierte Nummer aus. RCLMENU ist auf Auswahlmenüs nicht anwendbar. Diese Menüs sind in der nachfolgenden Tabelle zusammengestellt.
Die Tabelle enthält Menünummern, die auf Tastenmenüs gleichen (??) Inhalts hinweisen.

Menü Tastenfolge Bemerkungen
Portspeicher-Menüs,
x ist die Portnummer
[rightshift][LIB][:x:] Für die Inhalte der Portspeicher sind keine Menünummern verfügbar, weil die Portspeicher gegenüber den Verzeichnissen (in denen sich die Menüs befinden) anders organisiert sind. Auswahl der Inhalte über Tastenfolge oder Filemanager [leftshift][FILES]
TIME-Menü [rightshift][TIME] Auswahlmenü,
Menünummern 94 oder 167 ??
Solve-Menü [rightshift][NUM.SLV] Auswahlmenü,
Menünummer 74 bis 79 ??
Statistik-Menüs [rightshift][STAT] Auswahlmenü,
Menünummern 96 bis 103 ??
Tool-Menü [TOOL] erschließt die Auswahlmenüs CASCMD und HELP,
keine Menünummern ??

Die Fragezeichen in der Tabelle sollen darauf hinweisen, daß die Tastenmenüs von den Auswahlmenüs im Inhalt abweichen können. Will man einen bestimmten Befehl, dann ist es besser, ihn direkt einzugeben oder über [CAT] auszuwählen.

Menünummern, die nicht belegt sind, erzeugen beim Aufruf von MENU eine Fehlermeldung "MENU-Error" und liefern Angaben über evtl. fehlende Argumente.

Menüs im Schnellzugriff per Tastatur

Manche Menüs sind wirklich sehr gut versteckt. Selbst wenn man weiß, wo sich ein bestimmtes Menü befindet, muß man sich durch mehrere Menüebenen hindurchklicken, bis man das Menü zur Verfügung hat. Merken kann man sich den Pfad sowieso nicht.

Oder das Menü ist auf der Tastaturbeschriftung überhaupt nicht zu finden, dann hilft vielleicht noch die Taste [APPS], die verschiedene Menüs erschließt. Und manche Menüs lassen sich (wie oben gezeigt) über die Tastatur gar nicht aufrufen.

Häufig gebrauchte Menüs legt man sich deshalb als Variablen in sein persönliches Arbeitsverzeichnis. Die Variablen enthalten ein kurzes Programm mit Menünummer und einem der Befehle TMENU oder MENU.

Beispiele:

Für Menü anstatt der Tastenfolge das Programm in die Variable
Programmausgabemenü: [leftshift][PRG][NXT][OUT] « 40 MENU » P-OUT
Logische Funktionen: [rightshift][BASE][NXT][LOGIC] « 16 MENU » AND-OR
Zeitfunktionen: [rightshift]&[TIME] « 94 MENU » ZEIT

Die Menüs [OUT], [LOGIC] und [TIME] lassen sich dann direkt über diese Variablen aufrufen und werden dann angezeigt. Man kann die Menüaufrufe auch auf benutzerdefinierte Tasten (siehe Beschreibung von ASN im Handbuch) legen, dann muß man sich aber dauernd merken, auf welche Taste man sie gelegt hat.

Menüverwendung in Programmen

Wenn die Befehle INPUT und INFORM die gewünschten Eingaben nicht zulassen, kann es erforderlich sein,das Programm per Befehl PROMPT oder HALT anzuhalten, um Eingaben in den Stack oder Zwischenrechnungen auf Stackebene zu ermöglichen.

Nach der Eingabe muß dann das Programm per Tastaturbefehl [leftshift][CONT] (= Continue = Weitermachen) zur Fortsetzung des Programmlaufs veranlaßt werden.

Die Benutzerfreundlichkeit gebietet es in solchen Fällen, daß das Programm nach dem HALT die richtigen Menüs anzeigt, damit der Benutzer sofort damit arbeiten kann.

Zu diesem Zweck wird per Programm vor dem HALT das gewünschte Menü ausgewählt:

« ...... nn MENU HALT .... », wobei anstelle von nn die gewünschte Menünummer gesetzt wird.

Folgende 2 Beispiele
sollen dies verdeutlichen, wobei jetzt ausnahmsweise ignoriert werden soll, daß DATE im Programm selbst auch ausgeführt werden könnte.

« RCLMENU "Datum: " 6 FIX 94 MENU HALT + CLLCD MSGBOX MENU »

Erläuterung:
Das Programm merkt sich mit RCLMENU das ursprüngliche Menü im Stack, erzeugt den String "Datum: " im Stack, wählt dann mit 94 MENU das TIME-Menü aus und hält an. Der Benutzer sieht den Stackinhalt und dieses Menü. Nun drückt er [DATE] (oder er ignoriert das angebotene Menü und gibt das Datum per Tastatur in " " ein). Dann startet er das Programm wieder mit [leftshift][CONT]. Eine Messagebox wird dann bei gelöschtem Bildschirm angezeigt, in der nun der vervollständigte String zu sehen ist. Nach dem [OK] der Messagebox schaltet das Programm wieder in das ursprüngliche Menü und beendet seinen Lauf.

Beim zweiten Programm ersetzt der PROMPT-Text das HALT-Kommando, ansonsten wie oben:

« RCLMENU "Datum: " 6 FIX 94 MENU "Eingabe des Datums:" PROMPT +
CLLCD MSGBOX MENU »

Unterbrechungsanzeige:
Während der Eingabe erscheint rechts oben der Indikator HLT, damit der Benutzer weiß, daß er ein wartendes Programm vor sich hat. Dieser Indikator verschwindet, wenn das Programm vollständig ausgeführt und beendet wird. Für den Fall, daß HLT stehen bleibt, muß man das evtl. noch wartende Programm entweder mit [leftshift][CONT] fortsetzen oder den Befehl KILL ausführen, damit das wartende Programm "abgewürgt" wird.

Interrupt-Tiefe:
Während der Programmunterbrechung kann ein weiteres Programm ausgeführt (und auch unterbrochen) werden, um z. B. die gewünschte Eingabe zu erzeugen und im Stack abzulegen. Danach wird das unterbrochene Programm fortgesetzt. Wie weit die Verschachtelung von Unterbrechungen ("interrupts") möglich ist, mag der Leser selber erkunden.


Zum Beginn dieses Beitrags
Zur Beitragsübersicht
Copyright © 2002 Otto Praxl
Alle Rechte vorbehalten!