Quelle: http://www.hpcalc.org/hp49/pc/programming/debug2help.zip (?)
Die hier verwendete Notation ist in einem gesonderten Beitrag zusammengestellt.
Die Entwicklungs-Bibliothek 256 ist im ROM des HP 49G enthalten. Sie ist nicht von Anfang an aktiviert, sondern sie muß also vor Gebrauch "angebunden" werden.
Dies geschieht mit der Befehlsfolge 256 ATTACH im RPN-Modus oder mit ATTACH(256) im algebraischen Modus. Bei jedem Warmstart wird sie wieder automatisch "abgehängt" und muß für den weiteren Gebrauch erneut angebunden werden.
Liste der Befehle (spezielle englische Begriffe werden nicht übersetzt):
Siehe auch Beitrag "Notation".
Die mit Fragezeichen versehenen Befehle kann der Autor nicht erläutern. Diese Befehle sind neu und nur in den neuen Flash-ROM-Versionen ab 1.19-5 vorhanden.
Befehle,
alphabetischEingabe -> Ausgabe Erläuterungen APEEK #adr -> #value gibt den 5-Nibble-Wert aus, der an der angegebenen Adresse gespeichert ist. ASM-> CODE/ #StartAdr #EndAdr -> string gibt den Assemblercode zwischen zwei Adressen als String aus. ASM ? ? A-> #adr -> object gibt den Objektnamen des an der angegebenen Adresse gespeicherten Objektes aus. ->A object -> #adr gibt die Adresse des angegebenen Objektes aus. A->H #adr -> string gibt die angegebene Adresse als String aus. H->A string -> #adr gibt die Adresse aus, die durch den angegebenen String repräsentiert wird. BetaTesting -> String gibt die Vornamen der Beta-Tester als String aus CD-> CODE -> string gibt den Assemblercode als String aus ->CD string -> CODE gibt den String als Assemblercode aus COMP-> Composit -> N objects INNERCOMP,
zerlegt ein zusammengesetztes Objekt in N EinzelobjekteCRC string -> #CRC gibt die CRC eines Strings (ohne die 4 letzten Nibbles) aus. CRLIB siehe Beitrag
"Bibliotheken"erzeugt eine Bibliothek ER ? ? ->H object -> string zeigt die Speicherdarstellung eines Objekts als String
(gives the memory representation of an object)H-> string -> object umgekehrte Operation von ->H S->H string -> string zeigt die Speicherdarstellung vom Inhalt des Strings
(gives the memory representation of the contents of a string)H->S string -> string umgekehrte Operation von S->H LC~C Long complex/complex -> complex/Long Complex konvertiert eine complexe Zahl in eine "Long complex" und umgekehrt LR~R real/long real -> long real/real konvertiert eine "long real"-Zahl in eine "real"-Zahl und umgekehrt MAKESTR zahl -> string gibt einen String mit angegebener Länge aus. PEEK #adr #size -> string gibt den Speicherinhalt der Adresse mit der angegebenen Anzahl von Nibbles aus
(gives the memory contents at the address on size nibbles)POKE #adr string -> schreibt n Nibbles in den Speicher bei der angegebenen Adresse beginnend
(write n nibbles in memory starting at the specified address)R~SB system binary/real -> real/system binary konvertiert eine "real"-Zahl in eine Systembinärzahl (system binary) und umgekehrt SB~B system binary/binary integer -> binary integer/system binary konvertiert eine Systembinärzahl (system binary) in eine Binärintegerzahl (binary integer) und umgekehrt SERIAL -> string gibt einen String aus, der die Seriennummer enthält. Diese stimmt nicht mit der auf der Rückseite des HP 49G eingravierten Nummer überein. SREV string -> string kehrt die Reihenfolge der Zeichen in einem String um; aus "12345abcd" wird "dcba54321" und umgekehrt S~N ID/name ->string/ID konvertiert einen Objektnamen in einen String und umgekehrt; aus 'Name' wird "Name" und umgekehrt. ->S2 ? ? ->ALG object -> object konvertiert ein zusammengesetztes Objekt (composit) in ein algebraisches ->LST object -> list konvertiert ein zusammengesetztes Objekt (composit) in eine Liste ->PRG object -> program konvertiert ein zusammengesetztes Objekt (composit) in ein Programm ->RAM ROMobject -> RAMobject kopiert ein Objekt in den RAM-Speicher, auch wenn es ein ROM-basiertes Objekt ist
(copy an object in ram even if it was a rom based object)XLIB~ ? ?
Falls die Bibliothek Nr 256 angebunden ist, sind die oben beschriebenen Befehle
- über den Katalog [CAT]
- über Tasten-Menüs (dazu vorher 256 MENU im RPN-Mode eingeben oder mit [APPS] 12 [OK] "Development" aus Anwendungsmenü auswählen) und
- per Programm (als Programmbefehle)
aufrufbar.
Achtung:
Für den Normalanwender, der sich noch nicht mit Assemblerprogrammierung beschäftigt hat, sind nur fünf Befehle interessant:
S~N aus 'Name' wird "Name" und umgekehrt SREV aus "12345abcd" wird "dcba54321" und umgekehrt CRLIB siehe eigenen Beitrag über Bibliotheken BetaTesting Namen der Tester SERIAL Seriennummer Die anderen Befehle dienen dem fortgeschrittenen Assembler-Programmierer dazu, die Speicheradressen umzurechnen und die interne Darstellung der Objekte zu bekommen. Als Anfänger sollte man diese Befehle nicht anwenden, wenn man nicht weiß, was sie bewirken oder was sie kaputtmachen können.
Wenn man Befehle aus dieser Bibliothek in einem normalen Benutzerprogramm verwenden will, sollte man am Programmanfang die Bibliothek anbinden und am Schluß wieder abhängen: « 256 ATTACH ...<Programmbefehle> .... 256 DETACH »
Zur Beitragsübersicht
Copyright © 2002 Otto Praxl
Alle Rechte vorbehalten!