Die hier verwendete Notation ist in einem gesonderten Beitrag zusammengestellt.
Die Portspeicher :0:, :1: und :2: des HP 49G sind eigene Speicherbereiche.
Im "HP49 Benutzerhandbuch für Fortgechrittene" ist das Kapitel 11 dem Speicher gewidmet. Auf den Seiten 11-7 und 11-8 ist der Portspeicher beschrieben.
In allen Portspeichern können nur Objekte von höchstens 128 kB Größe gespeichert werden. Selbst wenn noch genügend Speicherplatz vorhanden ist, kann beim Versuch, Objekte > 128 kB zu speichern, eine Fehlermeldung kommen. Dann muß man eben größere Objekte in Stücke von < 128 kB teilen.
Der Portspeicher wird über die Tastenfolge [rightshift][LIB][:x:] (= [rightshift][2][:x:]) aufgerufen, wobei für [:x:] eines der Menüfelder [:0:], [:1:] oder [:2:] zu wählen ist. Dahinter verbergen sich die entsprechenden Menüs mit den gespeicherten Objekten.
Auch über den File-Manager [leftshift][FILES] kann man den Portspeicher ansehen und verändern, wenn man 0: IRAM, 1:ERAM oder 2:FLASH auswählt und mit [OK] aktiviert. Dort sind sogar die einzelnen gespeicherten Objekte gekennzeichnet als DIR, LIST, PROG, GROB (= Grafik-Objekt), ALG, STRNG oder Lxxxx ( = Bibliothek mit der Nummer xxxx).
Während man im Benutzerspeicher (das ist dort, wo man normalerweise arbeitet) Verzeichnisse und Unterverzeichnisse anlegen kann, ist das im Portspeicher nicht möglich, dort kann man nur benannte Objekte als Sicherungs-Objekte anlegen und verwalten und dort funktioniert auch der Befehl ORDER zum Umordnen der Namen nicht. Im File-Manager läßt sich mit [SORT] lediglich die Anzeige sortieren.
Die Portspeicher :0: und :1: sind RAMs (engl.: random acces memory = Benutzerspeicher), die bei Batterieausfall und bei Memory-RESET ihre Inhalte verlieren (flüchtige Speicher). Dagegen bleibt im Portspeicher :2: in diesen Fällen alles erhalten, weil er ein Flash-ROM-Speicher ist (= nicht-flüchtiger Speicher).
Achtung: Wenn man den Portspeicher aufruft, dann arbeitet man immer noch im aktuellen Verzeichnis von vorher, das Menü des Portspeichers wird nur drübergeblendet. Links oben auf dem Bildschirm in der Statusanzeige wird nach wie vor das aktuelle Verzeichnis {HOME ........} angezeigt.
Vom Portspeicher kehrt man mit [VAR] ins aktuelle Verzeichnis zurück, oder besser gesagt: Mit [VAR] schaltet man die Überblendung wieder aus und zeigt die Variablen des aktuellen Verzeichnisses.
Begriff: Das aktuelle Verzeichnis ist das, worin man momentan (vor Aufruf des Portspeichers) arbeitet (Arbeitsverzeichnis).
Den Portspeicher kann man auf 4 verschiedene Arten benutzen:
- als Sicherung für Einzeldateien (Daten, Text, allgemein: Objekte).
Man bringt das zu speichernde Objekt in den Stack, dann wählt man den Portspeicher und den Namen und dann speichert man.
Beispiel: Die Inhalt der Variablen ABC soll im Portspeicher :2: abgespeichert werden.
Vorgang:
- Inhalt von ABC mit [rightshift][ABC] in den Stack bringen,
- dann den Namen :2: ABC mit [leftshift][::][2][>][ABC][ENTER] in den Stack stellen, dort wird dann 2:ABC angezeigt,
- dann [STO] drücken.
- Im Port :2: findet man dann die Datei ABC.
- Im Port :2: erscheint bei Tastendruck [ABC] der Dateiinhalt im Stack.
- als Sicherung für Programme
Sind die Objekte ausführbar (= Programme), dann werden diese im Portspeicher nach Tastendruck auf die zugeordnete F-Taste ausgeführt. Man kann natürlich (umständlicher) auch den Inhalt der Programmvariable (mit [rightshift][Programmname]) in den Stack stellen und dann mit der Taste [EVAL] das Programm starten.
Brauchen die Programme Variablenwerte als Eingaben, dann müssen diese im aktuellen Pfad vorhanden sein (MERKE: Portmenü ist nur über das aktuelle Verzeichnis drübergeblendet!), und auch der Output des Programms wird im aktuellen Verzeichnis gespeichert. Daß man nach wie vor im aktuellen Verzeichnis arbeitet, ist der große Vorteil, wenn man nur Daten im aktuellen Verzeichnis haben will und die Programme dort nur stören würden. Ohne Verwendung des Portspeichers müßte man in diesem Fall im aktuellen Verzeichnis bei Programmaufruf den Pfad zum Verzeichnis angeben, in dem sich das Programm befindet.
- als Sicherung für Verzeichnisse und Benutzerspeicher
Man kann auch ganze Verzeichnisse mit allen Unterverzeichnissen im Portspeicher sichern. Der Verzeichnisname wird wie ein normaler Variablenname behandelt. Der Inhalt wird dann wie normaler Variableninhalt behandelt. Das gespeicherte Verzeichnis ist im Portspeicher eine normale Variable, deren Inhalt durch Tastendruck angeschaut werden kann.
Will man das Verzeichnis wieder voll funktionsfähig haben, muß man es in den Benutzerspeicher zurückspeichern, indem man
--> den Inhalt aus dem betreffenden Port in den Stack stellt und
--> ins aktuelle Verzeichnis schaltet und dort den Verzeichnisnamen (z.B. 'AAAA') in den Stack stellt und
--> dann [STO] drückt.
Das Verzeichnis AAAA wird dann als Unterverzeichnis des aktuellen Verzeichnisses angelegt.
Den Inhalt des gesamten Benutzerspeichers (HOME-Verzeichnis mit allen Unterverzeichnissen) kann man mit dem Befehl ARCHIVE speichern. Vorher sollten die aktuellen Flags in Variablen gespeichert werden. Mit RESTORE kann man den gesicherten Benutzerspeicher wieder zurückspeichern, wobei der aktuelle (vielleicht neuere) Inhalt überschrieben wird.
Dazu hat der Autor im Beitrag Tools zwei Sicherungsprogramm ARCH1 und ARCH2 zur Verfügung gestellt und beschrieben.
- als Heimatort für Bibliotheken
Man kann eine Bibliothek als normale Datei in einem beliebigen Verzeichnis unter einem beliebigen Namen oder im Portspeicher speichern, wo dann die sogenannte library ID (LIB ID = Bibliotheksnummer) als Dateiname erscheint. Wenn die Bibliothek aktiviert (angebunden) werden soll, MUSS sie in einem Portspeicher gespeichert sein.
So speichert eine Bibliothek in den Portspeicher:
- Die Bibliothek wird in den Stack stellt, dort wird dann ein library object angezeigt, z.B. Library 1720: MUSIK, wobei die Zahl die library ID und der Text der Bibliotheksname ist.
- Dann gibt man die Nummer des Portspeichers ein, in den man die Bibliothek speichern möchte, z.B. die Zahl 1 für den Port :1: .
- Der Speichervorgang wird mit dem Tastendruck [STO] aktiviert.
Näheres über Bibliotheken in den Beiträgen
- "Bibliotheken" und
- "Der persönliche HP 49G".
Die Inhalte der Portspeicher werden beim Sichern des gesamten Benutzerspeichers mit ARCHIVE nicht mitgespeichert. Das ist auch gut so, weil man nämlich die Sicherung des Benutzerspeichers in jedem Portspeicher ablegen und mit RESTORE wieder zurückholen kann.
Würde der Portspeicher mitgesichert, enthielte er die Sicherung seiner selbst und würde sich rekursiv aufblähen.Auf dem PC über das Connectivity Kit ist der Portspeicherinhalt nicht zu sehen und folglich auch nicht auf den PC übertragbar.
Wie sichert man nun den Inhalt eines Portspeichers?
Die mitzusichernden Dateien des Portspeichers müssen in ein Verzeichnis des Benutzerspeichers übertragen (kopiert oder verschoben) werden, wenn sie mit ARCHIVE mitgesichert werden sollen. Das gibt nur einen Sinn, wenn man dann mit ARCHIVE über das Connectivity Kit in eine PC-Datei sichert. Zum Verschieben der Dateien ist der Filemanager von Vorteil, weil dort alle Inhalte sichtbar und bearbeitbar sind.
Zum Beginn des Beitrags
Zur Beitragsübersicht
Copyright © 2002 Otto Praxl
Alle Rechte vorbehalten!