APPLICATIONSPROGRAMMATION ★ MICRO-MONITOR für CPC 464 ★

Micro-Monitor (Computer Schau)Applications Programmation
★ 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 ★ 

Wer mit dem Schneider CPC 464 Speicherbereiche unabhängig von BASIC analysieren oder auf unterster Ebene, also direkt in Z80-Maschinencode, programmieren wollte, der hatte bislang so seine Schwierigkeiten.

Aber das hat sich nun geändert, denn mit dem Micro-Monitor steht Ihnen jetzt ein schnelles und handliches Hilfsmittel zur Verfügung, mit dem der Inhalt eines Speicherausschnittes in hexadezimaler Darstellung und als ASCII-Zeichen klar zu überschauen ist und mit dem die Hexcodes, mit Hilfe vielfältiger Cursorsteuerungsmöglichkeiten, direkt in die Speicherzellen eingegeben werden können.

Wo zur Analyse eine ASCII-Darstellung nützlich ist, ist bei der Maschinencode-Programmierung eine Zeilen-Prüfsumme sehr hilfreich, da sich so beim Abtippen von Listings eventuelle Fehleingaben sehr schnell finden lassen. Der Micro-Monitor bietet beide Betriebsarten und vereinigt somit eigentlich zwei Programme in einem.

Neben der bloßen Ein- und Ausgabe von Hexcodes gibt es aber noch andere Funktionen, wie z. B. Verschieben eines Speicherbereichs, Füllen eines Speicherbereichs mit einem bestimmten Wert, Aufruf von Maschinencode-Programmen, Drucker-Ausgabe usw.

All diese Funktionen sind, nach Eingabe der nötigen Adressen bzw. Werte, in die dafür vorgesehenen Speicherzellen, über einen Tastendruck ausführbar.

Bild 1 >

Funktionsbeschreibung

1. Auswahl einer Anfangsadresse für einen Hexdump: Zuerst einmal muß die Anfangsadresse, also die Adresse, die beim Hexdump links oben angezeigt werden soll, in einen sogenannten „Anwenderspeicher“ (ASP1, ASP2, ASP3) eingegeben werden.

1.1 Direktes Eingeben in einen ASP:

Nach dem Start von BASIC aus bzw. nach „JS“ oder „SEE“ (siehe unten) werden die Speicherzellen angezeigt, aus denen die funktionsführenden Routinen ihre Parameter beziehen. Die Adresse (16 Bit) oder der Wert (8 Bit) wird nun, wie in irgendeine andere Speicherzelle hexadezimal (LOW-Byte zuerst) eingegeben (vgl. Bild 1).

1.2 Indirektes Eingeben in einen ASP:

(„S1“, „S2“, „S2“) Mit Hilfe der Funktionen „S1“, „S2“ und „S3“ (vgl. Bild 2) wird dem jeweiligen ASP die „momentane Adresse“ zugewiesen, also die Adresse der Speicherzelle, auf deren Inhalt gerade der Cursor zeigt. Diese Art der Eingabe ist besonders für das Begrenzen eines Speicherbereiches (Blockanfang und -ende bei den Funktionen „FILL“ und „MOVE“) wichtig.

Nachdem sich nun die Anfangsadresse in einem ASP befindet, wird der Cursor auf das LOW-Byte der Anfangsadresse gesetzt (Cursor-Steuerung siehe unten) und Funktion „JP“ ausgeführt.

Bild 2 >

2. Erzeugen eines Hexdumps, der die ASP's zeigt:

2.1 Ohne Rekonstruktion des momentanen Hexdumps: („JS“)

Die Funktion „JS“ erzeugt einen Hexdump mit der Anfangsadresse A902H und entspricht dem von Bild 1.

2.2 Mit Rekonstruktion des momentanen Hexdumps: („SEE“)

Die Funktion „SEE“ arbeitet genau wie „JS“, aber wird dann später die Funktion „RET“ ausgeführt, gelangt man zurück in den Hexdump, von dem aus man „SEE“ ausgeführt hat.

3. Füllen eines Speicherbereiches mit einem bestimmten Wert: („FILL“)

3.1 Begrenzen eines Speicherbereiches:

Zum Begrenzen eines Speicherbereiches, auch Block genannt, muß die Blockanfangsadresse in ASP1 und die Blockendadresse in ASP2 eingegeben werden (siehe 1.1 und 1.2).

3.2 Eingabe des Füll-Wertes:

Der Füll-Wert (8 Bit) wird direkt (siehe 1.1) in das LOW-Byte von ASP3 eingegeben. Diese Funktion eignet sich vor allem zum Löschen eines Blocks (Füll-Wert = 00).

4. Verschieben eines Speicherbereiches: („MOVE“)

Zum Verschieben, oder besser Kopieren muß zuerst der Block begrenzt (siehe 3.1) und dann die Zieladresse, also die Adresse, bei der der Block nach dem Verschieben beginnen soll, in ASP3 eingegeben werden (siehe 1.1 und 1.2).

5. Simulation eines absoluten Sprungs: („JP“)

Faßt man den Inhalt der Speicherzelle, auf die der Cursor zeigt, als die untere 8-Bit-Hälfte und den Inhalt rechts daneben als die obere 8-Bit-Hälfte einer Adresse (16 Bit) auf, so erhält man eine Anfangsadresse für ein neues Hexdump.

Diese Funktion ist vergleichbar mit der Ausführung des Z80-Befehls JP NN.

6. Simulation eines relativen Sprungs: („JR“)

Diese Funktion arbeitet ähnlich wie „JP“, doch wird hier der Inhalt der Speicherzelle, auf die der Cursor zeigt, als Relativadresse interpretiert, so ergibt sich durch Addition (Inhalt < 128) bzw. Subtraktion (Inhalt > 127) des Inhalts von der momentanen Adresse eine Anfangsadresse für einen neuen Hexdump. („JR“ ist vergleichbar mit dem Z80-Befehl JR E.)

7. Aufruf eines Maschinen-code-Programms: („CALL“)

Die Anfangsadresse des Maschinen-code-Programms muß zuerst in ASP3 eingegeben werden (siehe 1.1 und 1.2), dann sind die entsprechenden Werte für die Z80-Register direkt in die Speicherzellen A908H bis A913H (vgl. Bild 1) einzugeben (siehe 1.1).

Diese Eingaben sind für solche Programme gedacht, die, um sinnvoll zu funktionieren, bestimmte Werte in bestimmten Registern benötigen. Dies ist der Fall bei dem Programm zur Ausgabe eines Zeichens auf dem Bildschirm (Anfangsadresse:' BB5AH; Vorsicht bei der Eingabe: LOW-Byte zuerst!). Hierbei muß sich der ASCII-Code des Zeichens im Register A befinden.

Sind nun Adresse und Zeichencode richtig eingegeben, so wird die Funktion „CALL“ durch die Tastenkombination CTRL und 0 (siehe Bild 2) ausgeführt, wobei der Bildschirm gelöscht wird.

Wurde alles richtig gemacht, so müßte sich das Zeichen jetzt in der linken oberen Ecke des Bildschirms befinden, und zwar so lange, bis eine Taste gedrückt wird, erst dann erscheint wieder der Hexdump.

8. Rückkehr ins BASIC:

(„RET“)

9. Ausdruck eines Speicherbereiches:

Zum Ausdrucken des Speicherbereiches muß dieser erst einmal begrenzt werden (siehe 3.1). Dann wird die Anfangsadresse des Ausdruck-Programms (A4F3H; Vorsicht: LOW-Byte zuerst!) in ASP3 eingegeben (siehe 1.1). Nachdem der Drucker betriebsbereit gemacht worden ist, wird nun die Funktion „CALL“ ausgeführt.

Vom Listing zum Aufruf des Monitors

Hinweise zur Tastaturbenutzung:

  1. Der Ziffernblock ist nicht aktiv, d. h. Ziffern können nur über die obere Tastenreihe eingegeben werden. Gleiches gilt für die Funktionen, wobei die untere Bildschirmzeile des Hexdumps die Belegung der oberen Tastenreihe in Verbindung mit CTRL zeigt.
  2. Zur Eingabe der Hexziffern A bis F können nur Großbuchstaben verwendet werden, deshalb muß zu Anfang >CAPS LOCK< gedrückt werden.

Sind noch folgende Schritte nötig:

1. Abtippen des BASIC-Programms

1.1 Sicherheitshalber abspeichern des BASIC-Programms mit SAVE „MONITOR.BASIC“

2. HIMEM heruntersetzen mit:

MEMORY 42000

3. Starten des BASIC-Programms mit: RUN

Der Micro-Monitor befindet sich jetzt im geschützten Bereich ab 42000.

4. Abspeichern des Maschinencode-Programms mit:

SAVE „MICRO-MONITOR“, B, 42000,1600

Um mit dem Micro-Monitor zu arbeiten, ist folgendes zu tun:

5. Laden des Micro-Monitors (auch wenn sich schon ein Basic-Programm im Speicher befindet) mit:

MODE 1 : MEMORY 42000 :LOAD "MICRO-MONITOR”,42000

6. Starten des Micro-Monitors von Basic aus:

6.1 Hexdump mit Prüfsumme:

CALL 43580

6.2 Hexdump mit ASCII-Darstellung:

CALL 43583

ComputerSchau

Kurz und bündig

Der Micro-Monitor ist als 1,5 KByte kleines Maschinencode-Programm ein sehr hilfreiches Werkzeug sowohl zur Analyse von Speicherbereichen als auch zur Eingabe von Maschinencode-Programmen in hexadezimaler Form.

★ PUBLISHER: COMPUTER SCHAU
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Micro-Monitor    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-29
DL: 66
TYPE: PDF
SiZE: 1290Ko
NOTE: Supplied by www.acpc.me ; 2 pages/PDFlib v1.6

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

Lien(s):
» Applications » Lister2 (CPC Amstrad International)
» Applications » Programmlister (Schneider Aktiv Special)
» Applications » Listeur de sprites
» Applications » Function Key Lister (Computing With the Amstrad)
» Applications » Sortierte CAT-Liste (Happy Computer)
» Applications » Ascii - Filelister (CPC Amstrad International)
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 239 millisecondes et consultée 229 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.