★ APPLICATIONS ★ DIVERS ★ RSXINFO weiß Bescheid ★ |
Rsxinfo (CPC Magazin) | Applications Divers |
Hat man verschiedene Befehlserweiterungen, gibt dieses Programm zu jeder die nötigen Informationen aus. Befehlserweiterungen sind eine feine Sache. Nur gibt es inzwischen so viele davon, daß es für die Anwendung schon wieder problematisch wird. Darf man eine Befehlserweiterung noch zuladen, wenn sich schon eine andere im Speicher befindet? Wenn erst der Rechner abstürzt oder hängenbleibt, ist es zu spät, darüber nachzudenken. Das Programm RSXINFO gibt alle nötigen Informationen über Befehlserweiterungen. Man muß dazu die in der eigenen Programmbibliothek vorhandenen Erweiterungen zunächst einzeln (später in den beabsichtigten Kombinationen) wie gewohnt laden und initialisieren. Anschließend wird RSXINFO geladen und mit RUN gestartet. Wird in Zeile 5 x=0 durch x=8 ersetzt, dann werden die Daten nicht auf dem Bildschirm, sondern auf dem Drucker ausgegeben. Die Grundinformationen stehen in einem 4 Byte langen RSX-Block, der 2 Speicheradressen enthält. Dieser Block wird bei der Initialisierung angelegt. Die eine Adresse (die ersten beiden Bytes) dient der Verkettung der RSX-Blöcke. Sie zeigt auf den jeweils nächsten Block, der zu einer vorher initialisierten RSX gehört, oder zu einem ROM). Der Anfang der kette steht bei der Systemadresse &B1A6 (B8D3 für CPC 664 und 6128).Die zweite Adresse zeigt auf die eigentliche RSX-Tabelle. Die ersten beiden Bytes davon zeigen wiederum auf die Liste der Befehlsnamen, danach folgen jeweils drei Bytes lange Sprungvektoren. RSXINFO gibt von links nach rechts aus: Die Adresse des Befehlsnamens, den Befehlsnamen, die Adresse des Sprungvektors, die drei Bytes, die dort eingetragen sind, und falls möglich, die Adresse der Befehlsroutine. Alle Werte sind hexadezimal. Die letzte bezieht sich in der Regel auf ein Erweiterungs-ROM. In den RSX-Block wird dazu für die RSX-Tabelle ein Wert kleiner als 256 eingetragen, was dann nicht mehr als Speicheradresse, sondern als ROM-Nummer interpretiert wird. Für das Betriebssystem geht die RSX-Kette dann in den ROMs weiter. Für RSXINFO ist an dieser Stelle Schluß, denn die ROM-Tabellen können in Basic nicht ausgelesen werden. Der zuletzt unter RSXBLOCK erscheinende Wert ist jedoch für eine bestimmte Anwendung sehr wichtig. Sollen Befehlserweiterungen gelöscht werden, ohne den ganzen Rechner zurückzusetzen, dann kann dieser Wert an die Anfangsadresse der Kette (&B1A6) gepoked werden, und der Speicher ist wieder frei. Eine einzelne Befehlserweiterung wird gelöscht durch Poken der RSXBLOCK-Adresse an die RSXKETTE-Adresse (zuerst das Low-Byte, dann das High-Byte, näheres in den Maschinensprachekursen). RSXINFO zeigt zunächst an, in welchen Adressbereichen Befehlserweiterungen arbeiten, so daß es möglich ist, Überschneidungen, durch die Störungen auftreten können, vorher zu erkennen. Für diejenigen, die Maschinensprachekenntnisse haben, gehen die Anwendungen noch weiter: Aus jeder Befehlserweiterung die besten Routinen 'raussuchen und zu einer Supererweiterung zusammensetzen. Von dieser RSX-Baustelle demnächst mehr im CPC Magazin. Gerhard Knapienski, CPC Magazin
|