★ APPLICATIONS ★ DIVERS ★ SUPERMON ★ |
Supermon (CPC Amstrad International) | Applications Divers |
Manche CPC-Besitzer, die Erfahrung mit Maschinensprache sammeln möchten, wünschen sich ein Programm, mit dem sie fremde oder eigene Maschinenprogramme auflisten, bearbeiten und analysieren können, um sie vielleicht zu verbessern. Ihnen kann mit vorliegendem Programm geholfen werden. Das Programm ist vollständig in Maschinensprache geschrieben und wird durch fünf RSX-Befehle angesprochen. Das Programm ist nur 2863 Bytes kurz und beinhaltet einen DISASSEMBLER, HEXMONITOR mit Bildschirmeditor, ASCII-Darstellung als HEXTABELLE, DATA WANDLER und ein BRKPUNKT mit Registeranzeige kann gesetzt werden. Als erstes ist es notwendig, das Listing 1 einzugeben. Anschließend sollte es auf Kassette gesichert werden. Nach dem Starten mit RUN werden die Werte in den Datazeilen, als Maschinencode in den Speicher geladen. Durch eine Summenbildung werden Fehler in den Datazei-lcn erkannt. Sollte kein Fehler vorliegen, wird das Ladeprogramm gelöscht und die fünf neuen Befehle stehen in folgender Form zur Verfügung:
Jetzt geben Sie das Listing 2 ein und starten es mit RUN 50. Dadurch wird das Basicprogramm und Maschinenprogramm auf Kassette gesaved. Das Programm wird jetzt rascher geladen und startet sofort, unangenehme Wartezeiten werden dadurch so kurz wie möglich gehalten. Zu 1. |DISASS, Anfangsadresse, Länge, 0-3 : Die Spcicherinhalte werden ab Anfangsadresse in mnemoni-scher Form ausgegeben. Wenn der Bildschirm voll ist, muß eine beliebige Taste zum Weitermachen gedrückt werden. Durch Drücken auf ESC, wird die Disassemblierung unterbrochen. Das gleiche gilt für den Drucker. Beim Ausdrucken werden zwei Zeilen nebeneinander gedruckt. Dieser Vorgang hilft Papier sparen. Wir haben einen Brother M-1009 Drucker verwendet. Bei anderen Druckern dürfte es aber auch keine Probleme geben. Zu 2. |MONITOR, Anfangsadresse : Ab Anfangsadresse wird eine Bildschirmseite mit Adressen und Speicherinhalten in HEX-Form angezeigt. Jetzt ist es möglich, mit den Cursorpfeilen auf und ab um eine ganze Bildschirmseite umzublättern. Durch Drücken auf die Taste COPY, erscheint ein Cursorsymbol, das sich durch die Cursortasten neben jeden beliebigen Speicherinhalt, der am Bildschirm angezeigt wird, gesteuert werden kann. Nachdem der zu ändernde Speicher erreicht ist, kann durch Drücken auf DEL ein neuer HEX-Wert eingegeben werden. Der Speicherinhalt wird sofort verändert und nach dem Umblättern in Großbuchstaben verwandelt. Den Umblättermodus erreichen Sie durch Drücken auf R (retour). Von da aus kann durch Drücken auf E (Ende) ins Basic gesprungen werden. Zu 3. |TABELLE, Anfangsadresse, Länge, 0-3 : Dieser Befehl ermöglicht die Speicherinhalte in hexadezimaler Form und in ASCII-Code darzustellen. Dadurch ist es möglich, Texte aus Maschinenprogrammen herauszufinden. Um die Übersichtlichkeit so groß wie möglich zu halten, werden nur numerische und alphabetische Zeichen angezeigt. Zu 4. |DATA, Anfangsadresse, Länge : Mit diesem Befehl können Maschinenprogramme sehr schnell in Datazeilen verwandelt werden. Unser Programm wurde z.B. in weniger als einer Sekunde umgewandelt. Die Zeilennummer der Datazeilen haben den gleichen Wert der Speicheradressen. Es ist nur darauf zu achten, daß sich kein Basicprogramm im Speicher befindet. Nach dem Umwandeln müssen die Datazeilen durch SAVE"Programmnamc", A sofort auf Kassette gespeichert werden. Danach können die Datazeilen wieder von Kassette in den Speicher geladen werden. Jetzt können die Datazeilen als normale Basiczeilen verwendet werden. Dieser Save- und Ladevorgang ist notwendig, da durch den Befehl DATA das Basicsystem durcheinander gebracht wird. Zu 5. |BRK, Adresse : Zum Testen eines Programmes ist es wichtig, über den Zustand der Register Auskunft zu bekommen. Dies ist mit diesem Befehl möglich. Auf die hinter BRK angegebene Adresse wird ein Unterbrechungspunkt gesetzt. Wenn Sie das zu testende Programm starten, wird es an dieser Adresse unterbrochen und alle Registerinhalte werden angezeigt. Jetzt kann das zu testende Programm ohne Unterbrechung weiterverwendet werden. Da der BRK-Punkt durch den dort befindlichen Befehl gelöscht wird.
|