Editor-Beschreibung Bestandteile: Editor/Assembler Reassembler Binder Es erfolgt eine Speicherung von Maschinencode (MC) und Markenta- belle. Die Eingabe der Befehle erfolgt zeilenweise;Syntaxfehler werden sofort erkannt. Es gibt 3 Betriebsarten mit spezifischen Kommandos: Anzeigemodus Quellcode-Eingabe-Mod RAM-Modus Aufruf des Editors: J 2C03 NEUSTART J 2C00 RESTART zur Weiterbearbeitung vorhandener MC und MTB (Markentabelle) Ausschrift: EDIT MTB#1C20 Die Vorzugsadresse der MTB kann ueberschrieben werden, wenn diese auf anderem RAM-Bereich liegen soll. Vor MTB werden noch 20H Byte Arbeitsspeicher benoetigt. Das 1.Byte der MTB muss 00 sein. Bei Start auf 2C03H ist das in der angegebenen MTB der Fall. Nach der Betaetigung von ENTER befindet sich der Editor im Anzeigemodus. Von hier aus sind alle Modi erreichbar. Mit dem Kommando "G#adr" kann man die gewuenschte Programmstelle (Adr)anwaehlen. Zur Bestaetigung von Kommandos dient immer die ENTER-Taste, zur Ablehnung dient in der Regel die OFF-Taste. Folgende Tasten erhielten fuer den Editor zusaetzliche Funktionen: @ = OFF S4-S = Kursor nach oben S4-R = Kursor nach unten S4-J = Kursor an Bildanfang S4-O = Kursor an Zeilenanfang S4-V = Tabulator S4-W = Zeichen loeschen S4-N = Zeile loeschen S4-T = BS loeschen Uebergaenge zwischen den Modi: ________________________________ |Anzeigemodus(OFF->>Betr.-Syst)| ________________________________ |"R" ^ |"Q" ^ |Enter |OFF | |OFF V | V | | RAM-Mod. | | Eingabe-Mod.| Das Ende der MTB ist immer 0. Werden bei der Eingabe Marken vereinbart, wird MTB automatisch gefuellt (127 Marken sind moeglich). Ein Ueberlaufen der MTB (in den Bereich des Editors zB.) wird nicht verhindert. Der Bediener kann sich aber jederzeitim RAM-Modus ueber die Ausdehnung der MTB (belegter RAM-Bereich) informieren. Ausserdem kann mit dem Kommando "P" im An-zeigemodus der Editor auf Vollstaendigkeit und Fehlerfreiheit getestet werden. Erfolgt nach dem Kdo "P" der Sprung ins Betriebssystem, ist der Editor zerstoert (zB. auch im Ergebnis eines fehlerhaften Anwendertestlaufes) und muss wieder vom Bandgeladen werden. Verlassen des Editors: Der Editor wird durch Betaetigung der OFF-Taste in das Betriebssystem verlassen. Mittels Monitorkommandos werden nun die RAM-Bereiche des Maschinencodes und der MTB auf Band ausgelagert (Ausdehnung vorher im RAM-Modus oder mit "D" feststellen). Es ist zweckmaessig, aber nicht Bedingung, die MTB einschliessl. der 20H Byte Arbeitsspeicher (also ab 1C00H) auszugeben. Nachdem Laden von MC und MTB sowie Start des Editors befindet sich in diesem Fall der Editor auf der Anzeigeadresse, von der aus er verlassen wurde. Das Auslagern von Programmen erfolgt vor deren Test, sonst gibt es meist Aerger! Ein ordnungsgemaess ausgelagertes Programm (MC+MTB) kann jederzeit wieder geladen und im Editor erweitert, geaendert oder korrigiert werden. Zur Lauffaehigkeit eines fertigen und gebundenen Progr. ist die MTB nicht erforderlich. Nach dem Einschalten des Z1013ist zuerst der Editor zu laden, auf 2C03H zu starten (definierte RAM-Belegung) und mitOFF wieder zu verlassen. Erst jetzt werden vorhandene Programme und deren MTB geladen und der Editor auf 2C00H gestartet. Folgend werden die einzelnen Modi und deren Kommandos beschrieben. Anzeigemodus Hier ist es moeglich, bereits erstellte Programme zu kontrollieren, interessierende Stellen zu suchen, anzuwaehlen und zu korrigieren. Der Anzeigemodus ist durch folgende Bildschirmausschrift gekennzeichnet(Bsp): EDIT 02EF MAR 02D0 * LD HL,0123H MA1:ADD HL,DE INC A JRNZ MA1 LD A,B POP DE RET Das * steht vor der Befehlsausschrift des zur Bearbeitung anstehenden Befehls. Die oberste Zeile enthaelt nach der Kennung EDIT die Adresse (hex) des zur Bearbeitung anstehenden Befehls (Anzeigeadresse). Danach folgt die Angabe der davor stehenden Globalmarke. Das ist eine Marke, die als 3. Zeichen einen Buchstaben enthaelt. Es folgt die Adresse dieser Marke. Bezeichnet man Programmanfaenge oder markante Stellen im Programm mit Globalmarken, so erhaelt man einen Ueberblick, in welchem Programmstueck man sich befindet. Danach folgt die Auflistung der Befehle. Im Anzeigemodus gibt es Anzeige- und Korrekturkommandos. Die Anzeigekommandos dienen der Kontrolle des Programms und der Positionierung zwecks Korrektur und Eingabe. Angezeigt wird das, was der Reassembler an MC aus dem RAM angeboten bekommt. Demzufolge werden auch Daten oder Texte (ASCII) als Befehle ausgeschrieben. Ausserdem werden die Informationen aus der MTB genutzt. Liegt zu einer Befehlsadresse eine Markenvereinbarung vor, so wird die Marke mit angegeben. Gibt es bei einer Befehlsadresse einen Markenzugriff, so wird statt der im RAM stehenden Hexazahl die Marke ausgegeben. Kdo's im Anzeigemodus: Taste Zusatz Funktion %Hinweisnr ________________________________ R #adr ENTER RAM-Anz.ab adr,Eintritt in RAM-Mod.%7 R ENTER RAM-Anz.ab Anz.-adr Eintr. in RAM-Mod. G #adr ENTER Anzeige ab adr %7 G #0 ENTER Anzeige der mit EXT zugewiesenen Marken G ENTER Anzeige ab Programm ende %3 B ENTER Binden des Progr. auf Anzeigeadr. B #adr ENTER Binden des Progr.so dass angezeigter Befehl auf adr laeuft M #adr1 ENTER Verschieben d.Prog #adr2 ENTER mit Marken von: *adr1 bis ausschl. adr2 auf Bereich ab Anzeigeadr %4%5 M #adr ENT R *adr bis Progr.Ende ENTER auf Anz-Adr %3%4 V #adr1 ENTER Verschieben nur #adr2 ENTER der Marken von: *adr1 bis ausschl. adr2 auf Bereich ab Anzeigeadr.%5%6 V #adr ENTER *adr bis Progr.Ende ENTER auf Anz.Adr %3%6 E #adr ENTER Schaffen eines Eingabebereiches ab Anzeigeadr bis auschl. adr ;das folgende Progr. wird mit Marken auf adr verschoben %4 E ENTER Schaffen 1 Byte Eingabebereich %4 S #adr ENTER Streichen der Befehle ab Anz.adr bis adr %5%7 S ENTER Str.angez.Befehl OFF Verlassen des Editors P Pruefen des Editors %8 Q Eintritt in Quelleingabemodus + Anz.Adr.increment. %2 A Anzeige ab letzter Globalmarke N Naechste Seite anzeigen Z Vorige Seite anzeigen (zurueck) %1 S4-R Anzeigeadr := Adresse des naechsten Befehls S4-S Davorstehender Befehl wird aktueller Befehl Hinweise: %1 Ein Befehlsblock benoetigt anseiner Anfangsadresse immer eine Globalmarke. Existiert im Bereich von 256 Bytes vor der aktuellen Befehlsadresse keine Globalmarke, so werden die Kommandos "Z" u. "S4-S" nicht ausgefuehrt. In diesem Fall muss man sich mit dem "G"-Kommando an den Progr.-anfang oder eine markante Programmstelle zurueckbewegen und eine Globalmarke eingeben. %2 Dieses Kdo ist noetig, um zwischen Datenbloecken einen Befehlsanfang wiederfinden zu koennen (mit Globalmarke kennzeichnen; dann besser findbar). %3 Programmende = Adresse, ab der mindestens 4 Mal 0FFH als Speicherinhalt steht. %4 Verschieben ist nur in einem Speicherbereich moeglich, der zuvor mit 00H oder 0FFH geladen wurde (verhindert versehentliche Zerstoerung von Programmen). "M" geht nur in einen genuegend grossen Freibereich. "E" benoetigt am Progr.ende genuegend freie Speicherplaetze. Sonst werden diese Kdo's ignoriert. %5 Bei Angabe von 2 Adressen muss Endadr>Anfangsadr sein. Bei "S" muss die angegebene Adresse>Anzeigeadr sein. Sonst erfolgt keine Kdo-Ausfuehrung. Angabe der Adresse 0 bei "S" verhindert also das Streichen. %6 Verwenden, wenn der zugehoerige MC schon auf dem Zielbereich steht und der ursprüngliche RAM nicht mehr verfuegbar ist (zB anderweitig belegt). %7 Unter adr kann eine Hexazahl mit fuehrender Ziffer oder eine vereinbarte Marke eingegeben werden. %8 Bei defektem Editor erfolgt ein Sprung in das Betriebssystem Er ist dann neu zu laden. Quellcode-Eingabemodus Nach Eintritt in diesen Modus kann der anstehende Befehl korrigiert oder ueberschrieben werden (ACHTUNG BEIM UEBERSCHREIBEN: Soll zB. ein 1Byte-Befehl durch einen 2Byte-Befehl ersetzt werden, ist vorher der noetige Freibereich [E-Kdo] zu schaffen, sonst werden folgende Befehle zerstoert. Ebenso sind umgekehrt die Restbytes zu streichen. Marken duerfen nicht ueberschrieben werden, sie sind mit dem S-Kdo zu streichen und nach der Schaffung eines Freibereiches neu einzugeben. Anderenfalls verschwindet die Marke zwar aus derAnzeige, aber nicht aus MTB. Bei dem Bindelauf passieren dann sehr schwer zu findende Fehler. Der Aufruf einer Marke kann hingegen bedenkenlos ueberschrieben werden zB. CALL MUL o.JR EM1 .) Nach Betaetigen von ENTER wird uebersetzt. Liegt ein Syntaxfehler vor, wird F ausgeschrieben. Wird eine Marke zum 2. Mal vereinbart, erfolgt die Ausschrift M. In diesen Faellen wird korrigiert und erneut ENTER betaetigt Der richtig uebersetzte Befehlwird im MC ab Anzeigeadr abgelegt. Marken werden in MTB eingetragen. Der uebersetzte Befehl und folgende werden reassembl. zur Kontrolle angezeigt. Vor dem aktuellen Befehl steht + . Nach Betaetigen von ENTER wird das Programm ab der naechsten Befehlsadr angezeigt und die Eingabe des naechsten Befehles kannerfolgen. Die OFF-Taste fuehrt wieder in den Anzeigemodus. Eingabeformat: Das Markenfeld beginnt ab der 2.Position der Eingabezeile (Position des Kursors am Anfang). EineMarke muss aus 3 Zeichen bestehen! Die Trennung Markenfeld - Operationscodefeld erfolgt durch mindestens 1 Leerzeichen. Wird keine Marke eingegeben, genuegt die Eingabe eines Leerzeichens bis zum Operationscode oder das Betaetigen des Tabulators. Operationscode und Operanden duerfen nur durch 1 Leerzeichen getrennt werden. Kommentar ist nicht moeglich. Befehlssatz Der Befehlssatz entspricht dem der Anlage 1 des Handbuches des MRB Z1013. Abweichend davon werden die RST-Befehle nicht mit ihrer Adresse dargestellt: RST 00 = RST 0 RST 08 = RST 1 RST 10 = RST 2 RST 18 = RST 3 RST 20 = RST 4 RST 28 = RST 5 RST 30 = RST 6 RST 38 = RST 7 Zahlen koennen hexadezimal oder dezimal eingegeben werden. Sie muessen mit einer Ziffer beginnen (zB. 27F0H ; 0FF35H). Hexazahlen sind mit dem Zeichen H abzuschliessen, bei Dezimalzahlen erfolgt keine weitere Kennzeichnung. Fuer alle Zahlen koennen Marken angegeben werden, die geeignet vereinbart werden. Nach Angabe einer Marke kann beginnend mit der Kennzeichnung "+" oder "-" ein Offset als Zahl im Bereich von +127...-128 angegeben werden (zB. CALL DIV+3). Diese Informationen werden in der MTB gespeichert. Die Zuweisung des Zahlenwertes erfolgt beim Binden. Das Zeichen # mit der folgenden Angabe eines Offsets kann fuer die Angabe des Zuweisungszaehlers geschrieben werden, wird aber sofort uebersetzt und reassembliert. Folgende Pseudooperationen werden verarbeitet: DB nn Definiere Byte mit Wert nn DW nnnn Definiere Doppelbyte mit Wert nnnn DM 'ABC' Definiere ASCII-Zeichenkette (hier:ABC) MAR EXT nnnn Definiere Marke mit der externen Adr nnnn (entspr.EQU-Anweisg) Binden Es kann nur das erstellte Progr.als Gesamtmodul gebunden werden. Die Bindeoperation bezieht sich auf die 64K des U880. Alle Zahln die symbolisch mit einer Marke angegeben wurden, werden entspr. dem Markenwert in den MC des erstellten Programms eingetragen. Damit wird der MC lauffaehig. Beim Binden auf Anzeigeadresse entspr. den Marken die Adressen, auf denen sie vereinbart wurden. Beim Binden auf angegebene Adr. werden die Markenwerte so ver- schoben, dass das Progr. auf der angegebenen Adr. lauffaehig ist. Marken, die mittels Pseudo-operation EXT vereinbart wurden, werden dabei nicht mit verschoben, sondern behalten ihren Wert bei. EXT-Marken sind solche, die sich auf Eintrittsadr. anderer fertiger oder noch zu erstellender Programme beziehen. Sie lassen sich im Anzeigemodus auf einen beliebigen Bereich verschieben oder koennen im Q-Modus durch erneute Eingabe anderen Adressen zugewiesen werden. So koennen sie entsprechend der Bindeadresse eines anderen Progr. positioniert werden. Ein modularer Aufbau sehr umfangreicher Gesamtprogramme ist so ohne weiteres moeglich. Fehlermeldungen des Binders: Nicht zugewiesene Markennamen werden mit der Adr., an der auf sie zugegriffen wird, ausgeschrieben. Zu grosse Distanzen bei Relativspruengen fuehren zur Ausschrift der Adr.,auf der der Relativsprung steht