Monitor
Maschinensprache-Monitor
Maschinensprache-Monitor

Der TSB.MON ist zwar nicht direkt ein mit TSB entstandenes Tool, noch ist es überhaupt in Basic programmiert, aber es handelt sich doch immerhin um ein sehr nützliches und damit wertvolles Tool, mit dem man sowohl die Innereien von TSB als auch natürlich jedes andere Programm begutachten und analysieren und womöglich verändern/verbessern kann. Es ist ein Maschinensprache-Monitor, mit ihm kann man alles, was im Speicher des C64 zu finden ist, eben auf dieser Speicherebene betrachten und manipulieren, auch TSB selber.

TSB.MON beruht auf einem sehr weit verbreiteten Tool, das im 64'er Magazin das Licht der Welt erblickt hat (während mehrerer Ausgaben in 1985): dem Maschinensprache-Monitor SMON. Er wird ans Ende des freien Basic-Speichers nach $7000 geladen und verringert daher den für Basic zugänglichen Bereich um 4 KB. Im C64-Wiki kann man Hinweise auf die Bedienung des Programms nachschlagen. Die Besonderheiten der TSB-Version beschreiben wir hier.

TSB.MON wird gestartet mit einem Basic-Launcher (LOAD "smon"). Dabei belegt er die Funktionstaste F9 (C=-F1) mit dem Aufruf-Kommando für SMON: "SYS$7000:⇐" (Zeile 130).

100 cls:print"Installing SMON..."
110 scrld def $70,16,0,3:scrld1,dr,3,"tsb.mon":scrld restore
120 error:if(peek(display+41)and15)>0thenprintat(0,3)"SMON not found.":end
130 key9,"sys$7000:←"
140 sys $7000

Wenn man andere Farben als die vorgegebenen bevorzugt, kann man hier im Launcher per POKE entsprechend mit einer zusätzlichen Zeile 135 eingreifen:

135 poke$7221,farbe:poke$7219,farbe

Der erste POKE steuert die Cursor-Farbe (enthält normalerweise den Wert 3 für die Farbe cyan). Der zweite POKE ändert zugleich Rahmen und Hintergrundfarbe, die beide in der Vorgabe auf dem Wert 6 (für blau) stehen.

Beim Start übernimmt der Monitor die TSB-Einstellung für das aktuelle Diskettenlaufwerk (das mit USE eingestellt wird und das ansonsten dem Laufwerk entspricht, von dem TSB gebootet wurde). Innerhalb des TSB.MON kann man jedoch jederzeit mit dem I-Kommando auf andere Laufwerke umstellen, wobei diese Einstellung keine Auswirkungen auf TSB hat (die USE-Einstellung bleibt erhalten). Anders als beim Original-SMON gilt I auch für den in TSB.MON integrierten Disketten-Monitor.

Wenn man TSB.MON beendet, stellt es automatisch die Speicherstetlle $01 auf die Grundeinstellung zurück ($37, Basic an) und setzt den Bildschirm auf die Standard-TSB-Farben. Wenn man hier während der Arbeit $36 einstellt (mit M 0000, den zweiten Byte-Wert mit 36 überschreiben), ist der ganze Code von TSB erreichbar und editierbar.

Gegenüber dem SMON sind vor allem die Ausgabe-Kommandos M (Memory Dump), D (Disassemble) und K (Kontrollanzeige) anders und intuitiver: Hat man einmal die Ausgabe mit der STOP-Taste abgebrochen, kann man sie nun einfach per Kommando-Buchstaben ohne Parameter wieder aufnehmen und fortsetzen.

Hinweis für Nutzer des VICE-Emulators: Adressen müssen in TSB.MON grundsätzliche vierstellig eingegeben werden. Die Endadresse ist in SMON exklusive (m 0400 0800 listet von 0400 bis 07FF).

Download: TSB.MON befindet sich auf der TSB-Diskette

<nach oben>