TIM
Der im PET der CBM-Serie 20xx/30xx/40xx/80xx und im CBM 500/600/700-PCs integrierte Maschinensprachemonitor TIM (englische Abkürzung für Terminal Interface Monitor) wird wie folgt aufgerufen:
SYS 4
(Ursprünglicher Aufruf bei PETs)SYS 1024
SYS 64785
Nur bei CBM-Serie 20xx/30xxSYS 54386
Nur bei CBM-Serie 40xx/80xxSYS 60950
Nur bei CBM-II-Modellen (CBM500/600/700-Serien)- Reset Nur beim KIM-1
Für die erste Generation der PETs existiert TIM als Software und kann in den Speicher geladen werden.
Ebenso wird der Monitor mit dem BRK-Opcode über den BREAK-Vektor aufgerufen, was bei der Registeranzeige mit einem vorangehenden BREAK oder in älteren Versionen B* angezeigt wird. Dies kann zum einen als Einstieg von BASIC aus via SYS-Befehl (auf eine beliebige Adresse die 0 enthält) oder zum anderen für Debugging-Zwecke verwendet werden. Der Monitor sieht keine besonderen Befehle für Haltepunkte oder schrittweise Befehlsabarbeitung vor. Dies muss gegebenenfalls mit dem temporären Setzen eines BRK-Opcodes (0-Byte) manuell erfolgen.
Registerzeile[Bearbeiten | Quelltext bearbeiten]
Nach dem Aufruf meldet er sich z.B. mit folgender Meldung:
PC IRQ SR AC XR YR SP .; 0401 e455 32 04 5e 00 f0 |
Die Anzeigen, auch hier Registerzeile genannt, bedeuten dabei folgendes:
- PC: Programmzähler (engl. program counter) mit der Speicheradresse des nächsten auszuführenden Befehls
- IRQ: Interruptvektor
- SR: Inhalt des Statusregisters
- AC: Inhalt des Akkumulatorregisters (engl. accumulator)
- XR: Inhalt des X-Indexregisters
- YR: Inhalt des Y-Indexregisters
- SP: Inhalt des Stapelzeigers (engl. stack pointer)
Alle Zahlen werden in hexadezimaler Form angezeigt.
Maschinensprachemonitor-Befehle[Bearbeiten | Quelltext bearbeiten]
Folgende Befehle stehen bei dem eingebauten Maschinensprachemonitor zur Verfügung:
- G : Programm ausführen durch Sprung (engl. Go) zur angegebenen Speicheradresse
- G <Speicheradresse>
- L : Lädt (engl. Load) ein Programm oder Daten in den Speicher (RAM)
- L "Dateiname",<Geräteadresse (00-1F)>
- M : Anzeigen eines Speicherinhalts (engl. Memory display)
- M <Anfangsadresse>,[<Endadresse>]
- Mit den Cursor-Tasten können die die Ausgabezeilen geändert werden, wobei das am Zeilenanfang befindliche ":"-Zeichen dem Schreiben in den Speicher entspricht.
- R : Anzeigen der Registerzeile (engl. Register display)
- S : Speichert (engl. Save) einen Speicherbereich auf Datasette oder Diskette ab
- S "Dateiname",<Geräteadresse (00-1F)>,<Anfangsadresse>,<Endadresse+1>
- X : Beendet (engl. eXit) TIM und man gelangt wieder in den BASIC-Direktmodus
- : : Schreibt an die angegebene Adresse die folgenden Bytes
- : <Anfangsadresse>,<Wert>,<Wert>,...
- ;: Schreibt die folgenden Werte (so wie vom R-Befehl angezeigt) in die entsprechenden Register.
- @ : Floppystatus abfragen (eventuell nicht in allen Versionen verfügbar, vorhanden, wie etwa bei PET oder CBM-II-Modellen)
Alle Zahlen und Adressen sind in hexadezimaler Form anzugeben.
Es wird als Prompt das Zeichen "." angezeigt.
Bei einer falschen Eingabe (unbekannter Befehl) wird ein Fragezeichen ? ausgegeben. Ein-/Ausgabefehler werden mit I/O ERROR #Nummer angezeigt.
Mit der Taste RUN/STOP können Operationen abgebrochen werden!
Adressangaben bei Rechnern mit Bankswitching der CBM-II-Modelle beziehen sich auf Bank 15 (System-Bank) und können über die direkte Manipulation von Port $01 (=Banknummer für Datenzugriffe) in die gewünschte Bank gelenkt werden. Die Ausführung von Maschinencode ist aber immer nur in Bank 15 möglich, da sonst der Monitor ausgeblendet wird und das System abstürzen würde.