C128 NetLex

Commodore 128 Bedienungshandbuch
Commodore 128 System Guide



C. Maschinensprache-Monitor

Für Anwender, die den Speicher des C128 direkt verwalten wollen oder mit Maschinensprache-Programmen arbeiten, enthält das Betriebssystem des C128 einen Monitor, durch den der Benutzer im C128-Modus jederzeit wichtige Informationen über den inneren Zustand des Computers erhalten kann.

Im allgemeinen handelt es sich dabei um Inhalte von Registern und Speicherstellen. Dabei werden zur besseren Übersicht alle Adressen und Speicherinhalte in hexadezimaler Schreibweise (hex) angegeben. Damit werden alle Registerinhalte als zweistellige und alle Adressen als vier- oder fünfstellige Hex-Zahlen angegeben. Die höchstwertige Hex-Ziffer einer fünfstelligen Adreßangabe bezeichnet die Speicherkonfiguration, bei der der vorangestellte Monitorbefehl wirken soll. Es gibt folgende 16 Speicherkonfigurationen:

0RAM-Bank 0
1RAM-Bank 1
2RAM-Bank 2 (zukünft. Erweiterung; spiegelt derzeit RAM 0)
3RAM-Bank 3 (zukünft. Erweiterung; spiegelt derzeit RAM 1)
4Internes ROM (INT ROM), RAM 0, I/O
5Internes ROM (INT ROM), RAM 1, I/O
6Internes ROM (INT ROM), RAM 2, I/O
7Internes ROM (INT ROM), RAM 3, I/O
8Externes ROM (EXT ROM), RAM 0, I/O
9Externes ROM (EXT ROM), RAM 1, I/O
AExternes ROM (EXT ROM), RAM 2, I/O
BExternes ROM (EXT ROM), RAM 3, I/O
CBetr.-System (KERNAL) + INT (lo), RAM 0, I/O
DBetr.-System (KERNAL) + EXT (lo), RAM 0, I/O
EBetr.-System (KERNAL) + BASIC, RAM 0, Zeichengenerator (CHARROM)
FBetr.-System (KERNAL) + BASIC, RAM 0, I/O

Der Monitor wird durch den Befehl MONITOR des BASIC 7.0 im C128-Modus aufgerufen. Er wird ebenfalls aktiviert, wenn ein Maschinenspracheprogramm ausgeführt wird, das den Befehl BRK mit dem Befehlscode 0 enthält. Dabei wird folgende Bildschirmanzeige sichtbar:

MONITOR
    PC  SR AC XR YR SP
; FB000 00 00 00 00 F8


Die Abkürzungen in der oberen Reihe der Anzeige haben folgende Bedeutung:

PC:Der Programmzähler (program counter), der die Adresse des nächsten auszuführenden Befehls enthält.
SR:Der Inhalt des Statusregisters des Mikroprozessors 8502.
AC:Der Inhalt des Akkumulator-Registers des Mikroprozessors 8502.
XR:Der Inhalt des Indexregisters X des Mikroprozessors 8502.
YR:Der Inhalt des Indexregisters Y des Mikroprozessors 8502.
SP:Der Inhalt des Stapelzeigers (stack pointer) des Mikroprozessors 8502.

Der Maschinensprache-Monitor kennt eine ganze Reihe komfortabler Befehle, mit denen der Speicher des C128 bearbeitet werden kann, Speicherbereiche von/auf Kassette oder Diskette geladen/gespeichert und Maschinensprache-Programme assembliert, disassembliert, ausgeführt und getestet werden können. Nach einer Zusammenstellung aller möglichen Befehle wird jeder Befehl ausführlich und anhand von Beispielen beschrieben.

Befehl

Bedeutung
A(assemble)Assembliert eine Zeile in 6502-Befehlscode.
C(compare)Vergleicht zwei Speicherbereiche byteweise und zeigt Unterschiede an.
D(disassemble)Disassembliert einen Speicherbereich mit Maschinensprache-Code.
F(fill)Füllt einen Speicherbereich mit einem angegebenen Byte.
G(go)Startet ein Maschinensprache-Programm bei einer angegebenen Adresse.
H(hunt)          Durchsucht einen Speicherbereich nach einer angegebenen Bytefolge.
J(jump)Startet ein Maschinensprache-(Unter)Programm bei einer angegebenen Adresse.
L(load)Lädt eine Programmdatei von Kassette oder Diskette.
M(memory)Zeigt den Inhalt eines angegebenen Speicherbereiches hexadezimal an.
R(register)Zeigt den Inhalt der Prozessorregister an.
S(save)Speichert den angegebenen Speicherbereich auf Kassette oder Diskette.
T(transfer)Verschiebt den Inhalt eines angegebenen Speicherbereiches.
V(verify)Vergleicht einen Speicherbereich mit einer Programmdatei auf Kassette oder Diskette.
X(exit)Beendet den Monitor und kehrt in den BASIC-Direktmodus zurück.
>[edit memory]Modifiziert ein bis acht (bzw. sechzehn) Speicherzellen ab der angegebenen Adresse.
.[assemble]Identisch mit dem A-Befehl: Assembliert eine Zeile in 6502-Befehlscode.
;[edit register]Modifiziert die Prozessorregister.
@[floppy]Zeigt den Floppy-Disk-Status an oder überträgt einen Floppy-Disk-Befehl.

Für die Syntax der Beschreibungen der einzelnen Befehle gelten dieselben Regeln, die in Kapitel 4.5 für die BASIC-Befehle zusammengestellt wurden.

Adressen können grundsätzlich in jedem Zahlensystem angegeben werden (s.u.). Sind sie hexadezimal 1- bis 4-stellig, so beziehen sie sich auf die Speicherbank 0, sind sie hexadezimal 5-stellig, so gibt die höchstwertige Hexadezimalziffer die gewünschte Speicherbank an.

Der Monitor zeigt Adressen grundsätzlich 5-stellig hexadezimal an.

Je nach eingestellter Bildschirmbreite werden beim M-Befehl 8 bzw. 16 Byteinhalte je Bildschirmzeile sowohl hexadezimal als auch als Zeichen in ASCII-Codierung dargestellt.

Numerische Werte können beim Monitor durch Voranstellen von speziellen Symbolen in jedem Zahlensystem definiert werden:

kein Symbol
$
+
&
%
hexadezimale Werte (Voreinstellung)
hexadezimale Werte
dezimale Werte
oktale Werte
binäre Werte

Beispiel:M +14500 +14550

Der Speicherbereich zwischen 14500 und 14550 dezimal (das entspricht: $38A4 bis $38D6) in der Bank 0 wird angezeigt.

Hinweis: Die vier oben angeführten Symbole für die Zahlensysteme stellen gleichzeitig Befehle zur Anzeige eines Wertes in allen vier Zahlensystemen dar.


Auszug aus dem Commodore C128 (D) Bedienungshandbuch: Seite C-1 bis C-3
Ergänzt und überarbeitet von WTE
Zusätzliche Informationsquelle: Onlineversion des C128 System Guide


[Seitenanfang] [Infos] [Links] [Lexikon] [Home]
Erstellt von WTE, am 22. Februar 2009; überarbeitet am 07. März 2009