APPLICATIONSDIVERS ★ HEXPEEKER (COMPUTER SCHAU) ★

Hexpeeker (Computer Schau)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Leider hat auch der CPC 464 der Firma Schneider, so wie viele seiner Konkurrenten, keinen eingebauten Maschinensprache- oder Hexmonitor. Will man aber mehr über diesen Computer wissen, dann sind Hilfsmittel dieser Art unbedingt erforderlich. Dazu soll das - von uns „Hexpeeker” genannte -Programm dienen.

In kurzer Zeit gewann der von der englischen Firma Amstrad stammende „Schneider CPC 464“ viele Freunde. Trotz der inzwischen schon erhältlichen Literatur, ist bei den Besitzern das Wissen über diesen Rechner noch sehr gering; auch „Futter“ in Form von Programmen ist bisher nur in geringem Maße erhältlich. Mit diesem Artikel und mit dem abgedruckten Programmlisting wollen wir den Besitzern dieses preiswerten Computers etwas Hilfestellung geben.

Zweck des Programmes

Der ComputerSchau-Hexpeeker ermöglicht es, die RAM-Speicherzellen dieses Rechners auf komfortable Weise näher zu betrachten. Unter anderem ist es beispielsweise auch möglich, das Programm selbst damit zu analysieren, um festzustellen, wie Programme und Variablen im Speicher abgelegt werden.

Für derartige Untersuchungen ist es meist sehr sinnvoll, die in den Speicherstellen enthaltenen Werte in hexadezimaler Form darzustellen, da diese Form - nach relativ geringer Gewöhnungszeit - am übersichtlichsten ist.

Das Programm erfüllt diese Forderung.

Bei dezimaler Darstellung müßten z. B. immer wieder Multiplikationen von zwei zusammengehörigen Speicherzellen erfolgen. Die hexadezimale (= sedezimale) Darstellungsweise beschränkt diesen Vorgang auf ein Aneinanderfügen von zwei Byteinhalten. Darauf kommen wir aber später (im Abschnitt „So ist ein Basicprogramm abgelegt“) noch mal kurz zurück.

Basicstart

Die Speicheradresse für den Basic-programmbeginn (auch Basicstart oder Programmbeginn genannt) ist beim CPC die dezimale Adresse 368 und dies entspricht hexadezimal $0170.

Will man also wissen, wie ein Ba-sicprogramm im Computer abgelegt wird, beginnt man sinnvollerweise ab dieser Adresse mit der Analyse. Vom Programm „Hexpeeker“ wird dies insofern berücksichtigt, daß bei der Aufforderung zur Eingabe der Startadresse lediglich die ENTER-Taste betätigt werden muß. Will man aber bei einer anderen Adresse beginnen, dann ist - vor dem Drük-ken der ENTER-Taste - der entsprechende Wert einzugeben.
Ähnlich ist dies auch für die Endadresse gelöst. Wird nämlich vor Betätigung der ENTER-Taste kein Wert eingegeben, so wird die Endadresse automatisch auf den höchsten Wert, nämlich auf 65535, gesetzt.

Diese Art der Programmierung wirkt sich vor allem bei derartigen Analysen sehr positiv aus, da viele Eingaben (die Adreßwerte) entfallen können.

Der Hexpeeker

Wurde das Programm fehlerfrei abgetippt, dann zeigt es nach dem Programmstart und der zweimaligen Betätigung der ENTER-Taste bereits die ersten Informationen über das Programm selbst. Zunächst erfahren Sie, welche hexadezimale Zahl der gewählten Anfangsadresse entspricht. Danach folgen dann - in der gleichen Zeile - die Inhalte von jeweils acht Bytes. In der hexadezimalen Darstellung geschieht dies immer in Form von zwei Zeichen, nämlich den Ziffern „0“ bis „9“ und den Buchstaben „A“ bis „F“. Kurz zur Wissens-Auffrischung erwähnt: Durch acht Bit (entspricht einem Byte) können 256 Zustände repräsentiert werden; nämlich die Werte 0 bis 255, und dies entspricht den hexadezimalen Werten 00 bis FF.

In den nächsten Bildschirmzeilen wiederholen sich dann diese Informationen immer wieder, wobei sich die Adreßangaben immer um den Wert acht erhöhen.

Die Aufforderung, zur Fortsetzung des Programmes, eine Taste zu drücken, bzw. die Mitteilung, wie Sie den Programmlauf abbrechen können, sehen Sie in der untersten Bildschirmzeile. Betätigen Sie eine der normalen Eingabetasten, so werden Sie (durch Farbwechsel der
Ausgaben) erkennen können, wo und wie die Veränderungen ablaufen. Außerdem wird bei Fertigstellung einer „Bildschirmseite“ akustisch mitgeteilt, daß diese Seite komplett ist.

Doch nun wieder zurück zur Analyse selbst.

So ist ein Basicprogramm abgelegt

Die ersten beiden Bytes (ab der hexadezimalen Adresse $170) teilen mit, wieviele Zeichen die erste Ba-siczeile enthält. Für unser Programm sind dies die Werte $37 und $00 bzw. die dezimalen Werte 55 und 0.

Das heißt, die erste Basiczeile ist 55 Zeichen lang. Zu berücksichtigen ist, daß die Peekwerte in sogenannter Low-/Highbyte-Konfiguration vorliegen. Das bedeutet aber, daß für Betrachtungen die beiden Hexwerte nur in umgekehrter Reihenfolge „zusammengebaut“ werden müssen. Ganz deutlich wird dies bei den nächsten beiden Bytes verständlich.
iese repräsentieren nämlich die Basic-Zeilen-nummer. In unserem Falle erhalten wir die Werte $64, $00 und dies ergibt richtig „zusammengebaut“ $0064 bzw. 100 als Zeilennummer. Wäre die Folge $e8 mit nachfolgend $03 gewesen, so wäre die Zeilennummer 1000, denn $03e8 = 1000 dezimal.

Die weiteren Bytes stellen den Inhalt der Basiczeile dar, wobei Befehlsworte durch sogenannte „Token“, also durch Einbytewerte, repräsentiert werden.

Der Basicbefehl REM (=REMark) bedeutet für den CPC, daß es sich nur um eine Bemerkung handelt. Der Code hierfür ist $c5. Space, also ein Leerzeichen, ist $20. Damit wissen wir bereits, wie der erste Teil der ersten Basiczeile abgelegt wurde. Der nachfolgende Text wird durch die ASCII-Zeichencodes (ASCII = American Standard Code for Information Interchange) dargestellt.

Am Zeilenende finden Sie dann den Wert „00“ und dann beginnt das gleiche wieder mit der nächsten Basiczeile und so weiter bis zum Programmende.

Wie nun Variablen abgelegt werden, können Sie durch Voranstellen von anderen Basiczeilen (z. B. 10 a = 5 oder 10 a$ = „Schneider“) selbst feststellen. Dies betrifft aber nur die Codierung im Programm selbst. Im nächsten Heft unserer Computer-Schau werden wir dieses Thema noch eingehender „beleuchten“.

Nun zum Programm selbst

Durch die entsprechenden REMs ist es größtenteils bereits erklärt, aber ein paar Bemerkungen sollen noch angefügt werden. In der Zeile 160 wird ein String (Zeichenkette) mit der Länge 40 (also 40 Zeichen) erzeugt, welcher auf dem Bildschirm einen Trennungsstrich darstellt. In etwas abgewandelter Form trifft dies auch für die Programmzeile 170 zu. (Wir wollen Ihnen ja auch zeigen, wie man's macht bzw. wie man's machen kann.)

Die Zeile 250 dient dazu, festzustellen, ob eine Zahleneingabe erfolgte oder, ob lediglich die ENTER-Taste gedrückt wurde. Falls keine Zahl eingegeben wurde, dann wird die Startadresse (Zeile 260) auf den in Zeile 180 gewählten Wert gesetzt. Ähnlich haben wir auch die Eingabe der Endadresse programmiert, wie Sie aber leicht feststellen können, doch auf andere Art und Weise.

Vielleicht ist für Sie auch interessant, wie die Hexadressen (Zeile 420), die Dezimaladressen (Zeile 440) und die Speicherinhalte (Zeile 470) gewonnen und auch gleich ins richtige Format gebracht wurden! Sehen Sie sich dies ruhig etwas näher an. Die Variable Z in Zeile 490 stellt den Zähler für die Anzahl der pro Zeile ausgegebenen Bytes dar. Die Variable ZZ in Zeile 510 den Zeilenzähler. Nach Veränderung dieser Werte erkennen Sie beim Programmablauf sehr schnell, wofür diese Variablen zuständig sind.
Der Befehl CALL &BB06 wartet auf einen Tastendruck.

Um nun fit zu werden, sollten Sie das Programm neu durchnumerieren: z. B. durch RENUM 1000,,10 (ENTER)

tarten Sie das Programm dann wieder neu und sehen Sie sich die Veränderungen an. Stellen Sie den bisherigen Programmzeilen zusätzliche andere Zeilen voraus. Versuchen Sie doch, die Codes für die verschiedenen Basicbefehle herauszufinden. Ändern Sie dann -nach dem „Ansehen“ - durch Po-ken einfach einmal den Inhalt von Basiczeilen. (Anfangs sollten Sie sich auf Bereiche beschränken, die als Remarks gekennzeichnet sind.) All dies dürfte aufgrund der vorangegangenen Ausführungen nicht allzu schwierig sein.

„Spielereien“ mit diesem Programm sind für Schneider-Besitzer bestimmt lehrreicher als Abschußspiele und zeigen dem ernsthaft Interessierten - relativ schnell - Möglichkeiten zur trickreichen Programmierung auf.

Viel Spaß bei den Analysen. Beim nächsten Mal zeigen wir dann, wie schon versprochen, was es mit den Variablen so auf sich hat.

L. Miedel, ComputerSchau

Kurz und bündig

Das Programm „ComputerSchau-Hexpeeker für Schneider CPC 464“ dient vor allem dazu, zu erfahren, wie ein Basicprogramm im Speicher dieses Computers abgelegt wird. Des weiteren sind natürlich auch darüber hinausgehende Untersuchungen im Speicherbereich möglich. So z. B. die Analyse, wie Variablen abgelegt werden, Feststellung, welche Werte den Basic-befehlen zugeordnet sind usw. Durch „Arbeiten“ mit diesem Programm lernt der Anwender in sehr kurzer Zeit einiges über seinen „Schneider“ kennen.

★ PUBLISHER: COMPUTER SCHAU
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: L. Miedel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Hexpeeker    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-28
DL: 48
TYPE: PDF
SiZE: 252Ko
NOTE: Supplied by www.acpc.me ; 1 page/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Hexmon (CPC Magazin)
» Applications » Hex-Bin-Dez-Wandler (Schneider Aktiv)
» Applications » Hexmonitor (Schneider Aktiv)
» Applications » Protection U.N.C Copieur Pistes HEXAGON
» Applications » Toolhex1
» Applications » XFormat, Hexamon, RAM/ROM-Überblick (CPC Magazin)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 304 millisecondes et consultée 250 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.