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:
0 | RAM-Bank
0 |
1 | RAM-Bank
1 |
2 | RAM-Bank
2 (zukünft. Erweiterung; spiegelt derzeit RAM 0) |
3 | RAM-Bank
3 (zukünft. Erweiterung; spiegelt derzeit RAM 1) |
4 | Internes
ROM (INT ROM), RAM 0, I/O |
5 | Internes
ROM (INT ROM), RAM 1, I/O |
6 | Internes
ROM (INT ROM), RAM 2, I/O |
7 | Internes
ROM (INT ROM), RAM 3, I/O |
8 | Externes
ROM (EXT ROM), RAM 0, I/O |
9 | Externes
ROM (EXT ROM), RAM 1, I/O |
A | Externes
ROM (EXT ROM), RAM 2, I/O |
B | Externes
ROM (EXT ROM), RAM 3, I/O |
C | Betr.-System
(KERNAL) + INT (lo), RAM 0, I/O |
D | Betr.-System
(KERNAL) + EXT (lo), RAM 0, I/O |
E | Betr.-System
(KERNAL) + BASIC, RAM 0, Zeichengenerator (CHARROM) |
F | Betr.-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