Keyboard |
Beschreibung |
0 mve |
MOVE - Verschieben von Speicherbereichen |
|
Verschiebt einen Datenbereich von einer Speicheradresse an eine andere Adresse. Der Befehl arbeitet in jedem Fall so, dass der zu verschiebende Bereich auch bei überlappenden Speicherbereichen komplett an der Zieladresse erscheint. |
|
Zunächst wird die Eingabe der Startadresse des zu verschiebenden Bereichs VON, dann die Endadresse des zu verschiebenden Bereichs BIS und als Letztes die Startadresse des Ziels NAC eingegeben. Die Endadresse des Ziels wird automatisch berechnet. Nach dem Verschieben von Programmbereichen müssen absolute Adressen und Sprungbefehle entsprechend der Verschiebung angepasst werden. |
1 brk |
BREAK - Angeben von Unterbrechnungspunkten |
|
Es lassen sich nacheinander bis zu drei Adressen angeben, an denen die Ausführung eines Programms unterbrochen wird. Die Adresse 0000 bedeutet, dass der betreffende Breakpunkt nicht verwendet wird. |
|
Die Adressen der Breakpoints werden im RAM gespeichert und können durch diesen Befehl jederzeit bearbeitet werden. Bei der Ausführung eines Programmes über den Befehl START werden die Befehle, die an den Adressen der Haltepunkte stehen, gegen RST-Befehle ausgetauscht. In der RST-Behandlungsroutine können Register und Speicherinhalte angesehen werden, nachdem der ursprüngliche Befehle ausgeführt wurde. Danach wird die Ausführung des Programms normal fortgesetzt, bis wieder ein RST-Befehl auftritt. |
2 ful |
FILL - Füllen eines Speicherbereiches |
|
Dient zum Füllen eines Speicherbereiches mit einem konstanten Wert. Falls beim Füllen einer der Werte nicht geschrieben werden konnte - z.B. weil dort kein RAM vorhanden ist - wird die Adresse der Fehlerstelle ausgegeben. |
|
Zunächst wird die Eingabe der Startadresse des zu füllenden Bereichs VON, dann die Endadresse des zu füllenden Bereichs BIS und als Letztes der Datenwert DTA eingegeben. Nach jedem Schreiben eines Füllbytes testet die Funktion, ob der eben geschribene Wert wieder eingelesen werden kann. Falls dies nicht der Fall ist wird ERR mit der Adresse der fehlerhaften Stelle angegeben. Dies zeigt an, dass versucht wurde in einen Speicherbereich zu schreiben der nicht oder von ROM-Speicher belegt ist oder dass die zu beschreibende Speicherstelle defekt ist. |
3 vgl |
COMPARE - Vergleichen von Speicherbereichen |
|
Vergleicht zwei Speicherbereiche miteinander. Wenn der Inhalt nicht übereinstimmt, wird die Adresse der ersten nicht übereinstimmenden Stelle ausgegeben. |
|
Zunächst wird die Eingabe der Startadresse des zu prüfenden Bereichs VON, dann die Endadresse des zu prüfenden Bereichs BIS und als Letztes die Adresse des Zielbereiches NAC eingegeben. Die Endadresse des Zielbereiches wird automatisch berechnet. Tritt ein Unterschied in den Speicherbereichen auf, wird die Meldung PRF mit der Adresse der unterschiedlichen Stelle ausgegeben. |
4 reg |
REGISTER - Ändern von Registerinhalten |
|
Dient zum interaktiven Ändern der Inhalte der Z80 Prozessorregister. Der Befehl kann auch im Einzelschrittmodus verwendet werden. |
|
Die Inhalte aller Prozessorregister werden aus einem speziellen RAM-Bereich geladen, wenn ein Programm gestartet wird oder ein Einzelschritt ausgeführt wird. Bei Erreichen eines RST6-Befehls oder nach Ausführung eines Einzelschritts werden die Registerinhalte wieder im RAM gerettet. Nach Betätigen der REG-Taste wird der Inhalt der Register AF, durch CR, + oder - wird in der Reihenfolge zwischen AF BC DE HL SP IX IY AF' BC' DE' HL' und RI gewechselt. Falls vor der Eingabe von CR eine Zahl eingegeben wird, so wird dier Zahlenwert im RAM gespeichert und beim nächsten Einzelschritt oder Start des Programms in das betreffende Register geladen. |
5 prf |
VERIFY - Prüfen einer Aufzeichnung auf Cassette |
|
Daten werden vom Cassettenrekorder gelesen und mit dem Inhalt des Speicherbereiches verglichen, von dem zuvor aufgezeichnet wurde. |
|
Im Fehlerfall wird entweder die Meldung PRF gefolgt von der Adresse der fehlerhaften Stelle oder die Meldung CHE ausgegeben, wenn die Prüfsumme nicht mit der aufgezeichneten Prüfsumme übereinstimmt. Wenn kein beim Prüflesen aufgetreten ist, wird mit der Meldung ST die Startadresse des aufgezeichneten Programms ausgegeben. |
6 spe |
SAVE - Speichern auf Cassette |
|
Die Daten eines anzugebenden Speicherbereiches werden auf Cassette gespeichert. |
|
Nacheinander wird die Startadresse VON und die Endadresse BIS des zu sichernden Bereichs abgefragt. Vor Bestätigen der Endadresse mit CR muss der Rekorder gestartet werden, do sofort mit der Aufzeichnung begonnen wird. Nach Ende der Speicherung wird BEF angezeigt. Zu Beginn wird ein Vospann aufgezeichnet, der beim Lesen zur Synchronisation verwendet wird. Danach werden die Startadresse und Endadresse gefolgt von den Daten des angegebenen Speicherbereiches aufgezeichnet. Den Abschluss bildet eine 16 Bit umfassende Prüfsumme über alle aufgezeichneten Daten. |
7 lad |
LOAD - Laden von Cassette |
|
Dient zum Laden eines Speicherbereiches von Cassette. Während des Ladens wird die Prüfsumme aller gelesenen Daten gebildet und abschließend mit der zuvor aufgezeichneten Prüfsumme verglichen. So werden Aufzeichnungs- oder Lesefehler erkannt. |
|
Falls beim Lesen der Daten ein Fehler auftritt, wird die Meldung PRF und die Adresse der als fehlerhaft erkannten Stelle ausgegeben. Dies sit zum Beispiel der Fall, wenn Daten in einen Nicht-RAM-Bereich zurückgelesen wird. Falls nach dem Einlesen die Prüfsumme nicht mit der aufgezeichneten übereinstimmt, wird die Meldung CHE ausgegeben. |
8 ios |
IOSET - Setzen eines I/O Ports |
|
Dient zum interaktiven Setzen von Ausgabeports. Damit lassen sich eigene Schaltungen oder nicht direkt unterstützte Hardware des Computers steuern. |
|
Zunächst muss die Portadresse angegeben und mit CR bestätigt werden, danach kann die Eingabe des Wertes zur Ausgabe eingegeben werden. CR übernimmt den Wert an den Ausgabeport. Eine neue Datenausgabe an den gleichen Port kann direkt durch die Eingabe eines neuen Wertes und CR erfolgen. Mit BEF gelangt man zurück zur Befehlseingabe. |
9 iol |
IOREAD - Lesen eines I/O Ports |
|
Dient zum interaktiven Lesen von Daten eines Eingabeports. Mit der OPT Taste kann dabi zwischen Binärdarstellung oder Hexadezimaldarstellung gewechselt werden. |
|
Nach der Eingabe einer Portadresse und CR wird ein Byte vom angegebenen Port gelesen und auf dem Display dargestellt. Durch die START- Taste ist ein dauerhaftes Einlesen der Werte vom Eingabeport im Abstand von 1 ms möglich. Durch BEF gelangt man zurück in den Befehlsmodus. Mit der Taste OPT wird zwischen hexadezimaler und binärer Anzeige des Wertes gewechselt. |
A prp |
PROMPROG - EPROM programmieren |
|
Dient zum Brennen eines EPROMS mit der Baugruppe PROMER. |
|
Zunächst ist die Eingabe der Startadresse VON und der Endadresse BIS des zu brennenden Speicherbereiches notwendig. Die Zieladresse NAC bestimmt die Startadresse im EPROM. Danach erscheint auf dem Display die Anzeige CR. In diesem Zusatnd ist die PROMER Baugruppe startbereit und das zu programmierende EPROM kann eingesetzt werden. Der Brennvorgang beginnt mit einem Druck auf die Taste CR. Während des Programmiervorgangs werden die aktuelle Adresse und die programmierten Daten auf dem Display angezeigt. Nach jedem Byte wird getestet, ob der Programmiervorgang erfolgreich war. Bei erfolgreicher Programmierung wird BURNED auf dem Display angezeigt. |
B prl |
PROMREAD - EPROM einlesen |
|
Dient zum Übertragen der Daten eines EPROM aus der Baugruppe PROMER in einen beliebigen Speicherbereich. |
|
Zuerst wird die Startadresse VON und die Endadresse BIS der zu übertragenden Daten im EPROM eingegeben. Danach erfolgt die Eingabe der Zieladresse NAC im RAM. Nach jedem gelesenen Byte wird getestet, ob dieses korrekt ins RAM übertragen werden konnte. Bei einem Fehler wird die Meldung PRF mit der Adresse der Fehlerstelle ausgegeben. |
C prm |
PROMMER - Abgleich der Baugruppe PROMER |
|
Auf der Anzeige erscheint ein Zahlenwert, der der Dauer des Programmierimpulse in Millisekunden entspricht. Das Monoflop der PROMER Baugruppe kann hiermit auf die geforderten 50 ms abgeglichen werden. Für korrekten Abgleich reicht das einfache Einstecken der Baugruppe ohne zu programmierendes EPROM aus. |
D per |
PERIOD - Periodendauer messen |
|
Dient zum Abgleich der Baugruppe CAS. Misst die Periodendauer des an Bit 7 einer IOE-Baugruppe anliegenden Signals. Zum Abgleich der Baugruppe CAS muss eine Verbindung zwischen dem Aufzeichnungssignal der CAS und Bit 7 der IOE erstellt werden. Der Abgleich erfolgt auf 833 µs. |
E pul |
PULSE - Pulsdauer messen |
|
Dient zum Abgleich der Baugruppe CAS. Misst die 0-Signal-Dauer des an Bit 7 einer IOE-Baugruppe anliegenden Signals. Zum Abgleich der Baugruppe CAS muss eine Verbindung zwischen dem Aufzeichnungssignal der CAS und Bit 7 der IOE erstellt werden. Der Abgleich erfolgt auf 624 µs. |
F umw |
CONVERT - Hexadezimal / Dezimal Wandlung |
|
Dient zum Umrechnen von Zahlen aus dem Deziamlsystem in das Hexadezimalsystem und umgekehrt. |
|
Hexadezimale Zahlen werden als Zweierkomplement-Zahlen betrachtet, Dezimalzahlen können mit einem Vorzeichen (-) eingegeben werden. Nach Start der Funktion ist die Eingabe von Hexadezimalen Zahlen möglich, die durch CR in eine Dezimalzahl umgerechnet werden. Durch die Taste OPT kann auf Eingabe von Dezimalen Zahlen umgeschaltet werden. Diese werden durch CR in Hexadezimale Zahlen umgerechnet. Nach der Umrechnung wird das Zahlensystem D (dezimal) oder S (sedezimal) vor dem Ergebnis angezeigt. Mit der Taste BEF gelangt man zurück zur Befehlseingabe. |
bef |
COMMAND - Befehlseingabe |
|
Mit dieser Taste kann man wieder zur Befehlseingabe zurückgelangen. Zum Beispiel kann man hiermit das Dauerlesen von Eingabeports beenden. |
cr |
CARRIAGE RETURN - Eingabebestätigung |
|
Dient zum Beenden einer Zahleneingabe oder zum Abschließen des aktuellen Befehls. |
opt |
OPTION - Kein eigener Befehl |
|
Dient zum Umschalten von Zahlenbereichen oder Darstellungsarten, wenn dies von einem zuvor ausgeführten Befehl unterstützt wird. |
speich |
EDIT - Speicherinhalt ansehen und bearbeiten |
|
Dient zum Ansehen und modifizieren des aktuellen Speicherinhaltes ab einer beliebigen Adresse. Als Option kann CR, + und - verwendet werden. |
start |
START - Starten eines Programms ab Adresse |
|
Dient zum Starten des an der angegebenen Adresse abgelegten Programms. Falls Breakpunkte definiert sind, werden diese beachtet und die Ausführung unterbricht an den betreffenden Adressen mit der Meldung BRE xxxx, wobei xxxx die Adresse der Unterbrechnungsstelle angibt. |
step |
STEP - Einzelschritt |
|
Dient zum Ausführen einer einzelnen Z80 Anweisung. Nach jedem Schritt lassen sich die Inhalte der Prozessorregister oder Speicherinhalte ansehen. |
- |
MINUS - Kein eigener Befehl |
|
Dient zum Aufrufen der vorhergehenden Eingabe innerhalb von Befehlen, die dies unterstützen. |
+ |
PLUS - Kein eigener Befehl |
|
Dient zum Aufrufen der nächsten Eingabe innerhalb von Befehlen, die dies unterstützen. |
Befehl |
Adresse |
Beschreibung / Beispiel |
RI |
0003 |
Das Unterprogramm wartet auf die Eingabe eines Zeichens von der Baugruppe CAS. Wenn das Zeichen gelesen wurde, wird es im Register A des Z80 gespeichert. |
CD 03 00 ANF: CALL RI ; Warten bis 00
FE 00 CP 0
20 F9 JR NZ,ANF ; dauerhaft |
POO |
0006 |
Überträgt ein Zeichen aus dem Register C des Z80 an die Baugruppe CAS. Zur Aufzeichnung muss das Band vorher manuell gestartet werden. |
0E 41 SVE: LD C,41H ; Wert ausgeben
CD 06 00 CALL POO |
ANZEIGE |
0009 |
Gibt die Segmentcodes aus dem RAM-Bereich 8000 bis 8007 für 1 ms auf dem Display aus. Für eine fortlaufende Anzeige muss die Routine mehrfach aufgerufen werden. Im Register A wird der Tastencode einer eventuell gedrückten Taste zurückgegeben, sonst FF. |
CD 09 00 LP: CALL ANZEIGE ; Ausgabe
18 FB JR LP ; Endlos |
HOLETASTE |
000C |
Das Unterprogramm wartet solange, bis eine Taste gedrückt wird. Gleichzeitig werden die Segmentcodes des Anzeigefeldes zyklisch ausgegeben. Der Tastencode erscheint im Register A. |
CD 0C 00 LP: CALL HOLETASTE ; warten
FE 47 CP 47H ; bis BEF
20 F9 JR NZ,LP ; gedrückt |
TONUM |
000F |
Das Unterprogramm übernimmt einen Tastencode im Register A. Wenn der Tastencode von einer der Tasten 0-F stammt, enthält der Accu nachher den Wert 0-F, bei den Befehlstasten bleibt der Tastencode erhalten und das Carry-Flag wird gesetzt. |
CD 0C 00 LP: CALL HOLETASTE ; Tastencode
CD 0F 00 CALL TONUM ; umrechnen |
TOSEG |
0012 |
Das Unterprogramm berechnet aus einem Datenwort 0-F den entsprechenden 7 Segment Code, der direkt in das Anzeigenfeld geladen werden kann. |
3E 0F LD A,0FH ; Code 0F
CD 12 00 CALL TOSEG ; umrechnen
32 00 80 LD (ANZFELD),A ; Adresse
CD 09 00 LP: CALL ANZEIGE ; Ausgabe
18 FB JR LP ; dauerhaft |
PRINT |
0015 |
Im Registerpaar HL wird eine Adresse angegeben. Die suf diese Adresse folgenden 8 Bytes werden in das Anzeigenfeld übertragen. Das Unterprogramm wird benötigt, um Texte in das Anzeigenfeld zu bringen. |
21 0B 81 LD HL,TABELLE ; Tabelle
CD 15 00 CALL PRINT ; ausgeben
CD 09 00 LP: CALL ANZEIGE ; anzeigen
18 FB JZ LP ; endlos
87 86 92 87 ; TEST
FF FF FF FF ; Leerfeld |
PRTAC |
0018 |
Das Registerpaar IX enthält die Adresse im Anzeigenfeld, ab der der hexadezimale Zahlenwert des Akkuinhaltes abgelegt werden soll. Die Ausgabe belegt immer zwei Ziffern. Nach dem Aufruf zeigt das Registerpaar hinter das letzte ausgegebene Zeichen. Der Rest der Anzeige bleibt undefiniert. |
CD 33 80 CALL CLEAR ; Löschen
3E 5A LD A,5AH ; Wert
DD 21 00 80 LD IX,8000H ; laden
CD 18 00 CALL PRTAC ; Ausgabe
CD 09 00 LP: CALL ANZEIGE
18 FB JR LP |
PRTHL |
001B |
Das Registerpaar IX zeigt auf die letzte Adresse im Anzeigenfeld, ab der der hexadezimale Zahlenwert des Registerpaares HL abgelegt werden soll. Die Ausgabe belegt genau vier Stellen. |
CD 33 80 CALL CLEAR ; Löschen
21 5A 12 LD HL,125AH ; Wert
DD 21 00 80 LD IX,8000H ; laden
CD 1B 00 CALL PRTHL ; Ausgabe
CD 09 00 LP: CALL ANZEIGE
18 FB JR LP |
PRTBIN |
001E |
Das Registerpaar IX enthält die Adresse im Anzeigenfeld, ab der der binäre Zahlenwert des Akkuinhaltes abgelegt werden soll. Die Ausgabe belegt immer acht Ziffern. |
CD 33 80 CALL CLEAR ; Löschen
3E 5A LD A,5AH ; Wert
DD 21 00 80 LD IX,8000H ; laden
CD 1E 00 CALL PRTBIN ; Ausgabe
CD 09 00 LP: CALL ANZEIGE ;
18 FB JR LP |
PRTDEZ |
0021 |
Das Registerpaar IX zeigt auf die letzte Adresse im Anzeigenfeld, ab der der dezimale Zahlenwert des Registerpaares HL nach links abgelegt werden soll. Die Ausgabe belegt maximal sechs Stellen. (-32768). |
CD 33 80 CALL CLEAR ; Löschen
21 D2 04 LD HL,04D2H ; Wert
DD 21 07 80 LD IX,8007H ; laden
CD 21 00 CALL PRTDEZ ; Ausgabe
CD 09 00 LP: CALL ANZEIGE
18 FB JR LP |
GETC |
0024 |
Es wird eine hexadezimalzahl von 2 Ziffern eingelesen. IX enthält die Adresse des Anzeigenfeldes, C enthält den Vorgabewert, der schon vor der Eingabe auf der Anzeige ausgegeben wird. Nach der Eingabe steht in C der neue Wert, in A der Wert der gedrückten nichtnumerischen Taste, die zum Beenden der Funktion führte. |
CD 33 80 CALL CLEAR ; Löschen
0E 12 LD C,12H ; Vorgabe
DD 21 00 80 LD IX,8000H ; Anzeige
CD 24 00 CALL GETC ; Eingabe |
GETHL |
0027 |
Es wird eine hexadezimalzahl von 4 Ziffern eingelesen. IX enthält die Adresse des Anzeigenfeldes, HL enthält den Vorgabewert, der schon vor der Eingabe auf der Anzeige ausgegeben wird. Nach der Eingabe steht in HL der neue Wert, in A der Wert der gedrückten nichtnumerischen Taste, die zum Beenden der Funktion führte. |
CD 33 80 CALL CLEAR ; Löschen
21 00 00 LD HL,0 ; Vorgabe
DD 21 00 80 LD IX,8000H ; Anzeige
CD 27 00 CALL GETHL ; Eingabe |
GETDEZ |
002A |
Es wird eine dezimalzahl von 5 Ziffern eingelesen. IX enthält die Adresse des Anzeigenfeldes, HL enthält den Vorgabewert, der schon vor der Eingabe auf der Anzeige ausgegeben wird. Nach der Eingabe steht in HL der neue Wert, in A der Wert der gedrückten nichtnumerischen Taste, die zum Beenden der Funktion führte. Zum Eingeben einer negativen Zahl kann diese mit der Taste - abgeschlossen werden. |
CD 33 80 CALL CLEAR ; Löschen
21 00 00 LD HL,0 ; Vorgabe
DD 21 00 80 LD IX,8000H ; Anzeige
CD 2A 00 CALL GETDEZ ; Eingabe |
STEP |
002D |
Dient zum Ausführen eines Z80 Befehls. HL zeigt auf den auszuführenden Befehl. Vor der Ausführung wird der Inhalt aller Register aus den Speicherstellen 801Dh folgende wiederhergestellt, nach der Ausführung gesichert. HL zeigt nachher auf den nächsten Befehl. |
21 0B 0E LD HL,0E0BH ; Adresse
31 00 83 LD SP,8300H ; Stack
CD 2D 00 LP: CALL STEP ; Ausführen
18 FB JR LP ; dauerhaft |
BREAK |
0030 |
Ein Sprung auf diese Adresse führt zurück zum HEXMON. Es werden alle Register gerettet und die Breakpoints entfernt. Auf der Anzeige erscheint BRE und die Unterbrechungsadresse. |
F7 RST 6 ; Aufruf BREAK |
CLEAR |
0033 |
Belegt den internen Speicher für das Anzeigefeld mit FF so dass beim nächsten Aufruf von Anzeige das Display komplett gelöscht wird. |
CD 33 00 CALL CLEAR ; Feld löschen
CD 09 00 LP: CALL ANZEIGE ; ausgeben
18 FB JR LP ; endlos |
INTLOC |
0038 |
Adresse, die bei einem Interrupt im Modus IM1 angesprungen wird. Dort steht ein Sprung ins RAM, wo eigene Routinen eingebunden werden können. |
|
LENGTH |
003B |
HL enthält die Adresse eines Z80-Befehls, nach dem Aufruf enthält das B-Register die Länge des bei HL hinterlegten Befehls. |
21 00 00 LD HL,0 ; Adresse laden
CD 3B 00 CALL LENGTH ; Länge holen
F7 RST6 ; Ende |
LASTMEM |
003E |
Nach dem Aufruf enthält HL die letzte Adresse des ersten zusammenhängenden Speicherbereiches, an der RAM angesprochen werden kann. |
CD 33 00 CALL LASMEM ; Berechnen
F7 RST6 ; Ende |
SUCHL |
0041 |
Wie LASTMEM, außer dass zuvor in HL die Startadresse der Suche nach einem RAM-Bereich angegeben werden kann. |
21 00 84 LD HL,8400H ; Startadresse
CD 33 00 CALL LASMEM ; Suchen
F7 RST6 ; Ende |
GETRI |
0044 |
Wie RI, es erfolgt zusätzlich eine binäre Ausgabe der eingelesenen Daten in den Punkten der 7-Segment-Anzeige. |
CD 41 00 LP: CALL GETRI ; Suchen
18 FB JR LP ; endlos |
NMILOC |
0066 |
Adresse, die bei einem Nicht Maskierbaren Interrupt NMI angesprungen wird. Dort steht ein Sprung ins RAM, wo eigene Routinen eingebunden werden können. |
|