----------------------------------------------------------------- | SOFTWARE- | | | | DOKUMENTATION | MAC 1600 | MOS | |-----------------| Anleitung fuer den Bediener |-------------| | 11/87 | | OMOS 2.0 | ----------------------------------------------------------------- Programmtechnische Anleitung fuer den Bediener Beschreibung Teil 5 Makroassembler MGS K 1600 VEB Robotron-Vertrieb Dok.-Nr. C 8065-0557-1M2031 Die vorliegende Software-Dokumentation, Anleitung fuer den Bediener, Teil 5: Makroassembler, entspricht dem Stand von 11/87. Nachdruck, jegliche Vervielfaeltigung oder Auszuege daraus sind unzulaessig. Die Ausarbeitung erfolgte durch ein Kollektiv des VEB Robotron- Vertrieb Berlin. Im Interesse einer staendigen Weiterentwicklung werden alle Leser gebeten, Hinweise zur Verbesserung dem Herausgeber mitzuteilen. Herausgeber: VEB Robotron-Vertrieb Berlin Postfach 1235 Berlin 1086 (C) Kombinat Robotron 1987 Kurzreferat Im vorliegenden Teil 5 der Anleitung fuer den Bediener wird der Assembler MAC 1600 der Betriebssysteme MOOS 1600 (Version 1.2) und OMOS 1630 (Version 2.0) beschrieben. Der Assembler wird im wesentlichen bezueglich seiner Kommandos und Fehlerreaktionen dargestellt. Die Anleitung fuer den Bediener ist damit zur Vorbereitung und Durchfuehrung der Arbeit am Rech- ner bestimmt. Inhaltsverzeichnis ------------------ Seite 1. Vorbemerkung 4 2. Geraeteanforderungen 4 3. Arbeitsweise 5 4. Kommunikation 6 5. Kommandos 7 5.1. Standards 7 5.2. Schalter 8 6. Uebersetzungsliste 13 7. Cross-Referenz-Liste 14 8. Fehlermitteilungen 15 8.1. Mitteilungen zur Bedienung 15 8.2. Mitteilungen zu syntaktischen Fehlern 17 Abkuerzungsverzeichnis 18 Sachwortverzeichnis 22 Tabellenverzeichnis ------------------- 1: Standards 8 2: Schalter 9 3 1. Vorbemerkung --------------- Der Makroassembler MAC 1600 (OMEX) dient zur Uebersetzung von Quellprogrammen, die in der Assemblersprache MACRO 1600 geschrie- ben sind. Er arbeitet unter der Steuerung von OMEX 1630. Die Assemblersprache MACRO 1600 bietet ausser den ueblichen Moeg- lichkeiten der symbolischen Programmierung folgende Besonder- heiten: - Bedingte Uebersetzung - Globale Symbole zur Verbindung unabhaengig uebersetzter Pro gramme (Moduln) zu einem Programmsystem - Programmsektionen zur Herstellung logischer Programmstrukturen und als Voraussetzung zur Segmentierung - Verwendung von Systemmakros - Definition und Verwendung von nutzereigenen Makros Der Makroassembler MAC 1600 erzeugt: - Objektmodulprogramm - Uebersetzungsliste mit Symboltabelle - Cross-Referenz-Liste fuer Symbole, Makronamen, Mnemoniks - (gegebenenfalls) Fehlerzeilenprotokoll Die MAC-1600-Kommandozeile bietet Moeglichkeiten zur - Angabe von Datei- und Geraetespezifikation fuer die Ein- und Ausgabedateien, - Steuerung verschiedener Assemblerfunktionen, - Steuerung der Uebersetzungsliste. 2. Geraeteanforderungen ----------------------- Quelldatei: Muessen sich auf Plattenspeicher befinden. Zu uebersetzende Programme sind also zuvor mittels eines geeigneten Systemprogramms (z.B. FLX oder PIP) bereitzustellen. Objektmoduldatei: Kann auf Plattenspeicher oder auf Lochband ausgegeben werden. Listendatei: Kann auf Plattenspeicher, Terminal oder Drucker ausgegeben werden. 4 3. Arbeitsweise --------------- Der Assembler MAC 1600 arbeitet in zwei Durchlaeufen (Paessen). Im ersten Pass werden alle geforderten Bibliotheksmakros gesucht und gelesen, die Symboltabelle aufgebaut und eine elementare Uebersetzung jeder Anweisungszeile ausgefuehrt. Im zweiten Pass erfolgt die Uebergabe der Objektsaetze zur Objektmoduldatei und die Erzeugung der Uebersetzungsliste. Im einzelnen laufen weiterhin folgende Vorgaenge ab: Erster Pass: Zunaechst initialisiert der Assembler einige der benoetigten Speicherbereiche. Anschliessend wird mit Hilfe eines Systemunter- programms eine Kommandozeile in den Hauptspeicher gelesen und auf ihre syntaktische Richtigkeit ueberprueft. Es folgt die Initiali- sierung der spezifizierten Ausgabedateien. Im Verlauf des eigent- lichen Uebersetzungsvorgangs werden Quellzeilen von der Eingabe- datei gelesen und verarbeitet. Dabei werden z.B. aus den Maschi- nenbefehlen je nach Adressierungsart ein, zwei oder drei Worte erzeugt. Gleichzeitig wird die Symboltabelle aufgebaut. Waehrend des 1. Passes wird gegebenenfalls das Inhaltsverzeichnis der Uebersetzungsliste ausgegeben. Am Ende des 1. Passes ist die Symboltabelle vollstaendig aufgebaut. Danach beginnt die Ausgabe der Objektmoduldatei mit den GSD-Bloecken. Das sind die Objekt- modulbloecke, die das Verzeichnis der globalen Symbole des Pro- gramms enthalten und den Text-Bloecken vorausgehen. Zweiter Pass: Im 2. Pass erfolgt im wesentlichen der gleiche Uebersetzungsvor- gang noch einmal, wobei die im 1. Pass aufgebaute Symboltabelle zugrunde gelegt wird. Gleichlaufend mit der Uebersetzung werden die Text-Bloecke des Objektcodes erzeugt und in die Objektmodul- datei ausgegeben sowie die Uebersetzungsliste aufgebaut. 5 4. Kommunikation ---------------- Fuer den Start des Assemblers MAC 1600 und die Kommandoeingabe stehen die im folgenden beschriebenen Moeglichkeiten zur Verfue- gung. Verfahren 1: Direkter Aufruf Die Steuerung wird an den Assembler uebergeben und kehrt erst durch Eingabe von CTRL/Z an die Exekutive zurueck. Bei Verfahren 1 bis 3 ist Voraussetzung, dass der Assembler installiert ist (MCR-Kommando INS). MCR>MAC --- MAC>MAC1600-Kommandozeile --------------------- MAC>... ... MAC>CTRL/Z ------ Verfahren 2: Aufruf mit RUN Der Standard-UIC kann hier gegen einen anderen UIC ausgetauscht werden. MCR>RUN ...MAC oder: ---------- RUN ...MAC/UIC=[g,m] -------------------- MAC>MAC1600-Kommandozeile --------------------- MAC>... ... MAC>CTRL/Z Verfahren 3: Einfacher Aufruf Die Steuerung bleibt bei der Exekutive, es wird nur ein Uebersetzungslauf durchgefuehrt. MCR>MAC MAC1600-Kommandozeile -------------------------- Verfahren 4: Aufruf bei nicht installiertem Assembler Mit dem MCR-Kommando ist das temporaere Installieren des Assemblers verbunden. Der Standard-UIC kann gegen einen anderen UIC ausgetauscht werden. Mit CTRL/Z wird der alte Zustand wieder hergestellt. MCR>RUN %MAC oder: -------- RUN %MAC/UIC=[g,m] ------------------ MAC>MAC1600-Kommandozeile --------------------- MAC>... ... MAC>CTRL/Z 6 Verfahren 5: Benutzung einer indirekten Kommandodatei Dabei handelt es sich um Dateien, die aus MAC 1600- Kommandozeilen bestehen. Es ist eine maximale Ver- schachtelungstiefe von drei Stufen erlaubt. Die Uebersetzung unter der Steuerung von indirekten Kom- mandodateien kann analog den oben beschriebenen Ver- fahren 1 bis 4 ausgeloest werden; dabei ist statt der MAC 1600-Kommandozeile eine @Dateispezifikation fuer die betreffende indirekte Kommandodatei anzuge- ben. 5. Kommandos ------------ Auf der Grundlage der allgemeinen Form einer Kommandozeile (siehe MCR-Beschreibung) gilt fuer MAC 1600 eine spezielle Form: [ods][,lds]=qds [,qds]... Hierbei stellen dar: ods = Spezifikation der Objektmoduldatei (kann entfallen) lds = Spezifikation der Listendatei (kann entfallen) qds = Spezifikation der Quelldatei (Quelldatei oder Makrobibliotheksdatei) Es gelten folgende Regeln: - Die Laenge des Kommandozeilenpuffers betraegt 132 Bytes. - Es sind keine Fortsetzungszeilen moeglich. - Es muss mindestens eine Quelldateispezifikation angegeben werden. - Fehlt eine der beiden Ausgabedateispezifikationen, so gilt die entsprechende Datei als unerwuenscht. - Fehlt die Listendateispezifikation, so wird das Fehlerzei- lenprotokoll ("Fehlerliste") auf dem Bediengeraet aus- gegeben. Dieses enthaelt alle Quellzeilen, in denen syntak- tische Fehler erkannt wurden. 5.1. Standards -------------- Bei der Angabe der MAC 1600-Kommandozeile kann der Bediener auf eine Reihe von Standards zurueckgreifen, die der Assembler bei fehlender Spezifikation in der Kommandozeile benutzt. 7 Tabelle 1: Standards ----------------------------------------------------------------- | Datei | Geraet | Verzeichnis | Name | Typ | ----------------------------------------------------------------- | Objektmodul| Systemgeraet | Aktuelles | - |.OBJ | | | | | | | | Listen- | Geraet der | Wie bei Objekt- | - |.LST | | datei | Objektmodul- | moduldatei | | | | | datei | | | | | | | | | | | Quelldat.1 | Systemgeraet | Aktuelles | - |.MAC | | | | | | | | Quelldat.2 | Wie bei zuvor | Wie bei zuvor | - |.MAC | | und | spezifizierter | spezifizierter | | | | folgende | Quelldatei | Quelldatei | | | | | | | | | | Makrobib- | Systemgeraet,wenn| Aktuelles, wenn | - |.MLB | | liotheks- | diese Datei zu- | diese Datei zu- | | | | datei | erst spezifiziert| erst spezifiziert| | | | | wurde; sonst wie | wurde; sonst wie | | | | | bei zuletzt spe- | bei zuletzt spe- | | | | | zifiz.Quelldatei | zifiz.Quelldatei | | | | | | | | | | System- | Librarygeraet | [1,1] |SYSMAC|.SML | | makrobibl. | | | | | | | | | | | | Indirekte | Systemgeraet | Aktuelles | - |.CMD | | Kommando-D.| | | | | ----------------------------------------------------------------- Fuer die Versionsnummern gelten folgende Regeln: Eingabedatei: Hoechste vorliegende Versionsnummer Ausgabedatei: Hoechste vorliegende Versionsnummer plus 1 Beispiele: 1) ,LP0:=DK1:[200,10]PROG1 2) =PROG2 3) OB,DK1:[200,10]LI/LI:ME/CR=Q1,Q2,Q3 5.2. Schalter ------------- Im folgenden sind die Schalter angefuehrt, die die Assemblerar- beit steuern. Die angegebenen Standards gelten, wenn der ent- sprechende Schalter bzw. das Argument im Kommando fehlt. 8 Tabelle 2: Schalter ----------------------------------------------------------------- | Schalter | Stan- | Bedeutung | | Argument | dard | | ----------------------------------------------------------------- | /LI:arg | | (listing) | | /NL:arg | | (no listing) | | | | Bei lds anzugeben. | | | | Zur Steuerung der Uebersetzungsliste. Die | | | | Werte beider Schalter sind in Name und | | | | Funktion mit den Argumenten der .LIST/ | | | | .NLIST-Anweisungen identisch. Ihre Angabe | | | | fuehrt zur Ignorierung der entsprechenden | | | | Anweisungen im Quellprogramm. | | SEQ | LI:SEQ | (sequence number) | | | | Steuert den Quellzeilenzaehlerdruck. Bei | | | | /NL:SEQ bleibt das Feld des Quellzeilen- | | | | zaehlers leer. | | LOC | LI:LOC | (location counter field) | | | | Steuert den Druck des Speicherplatzzaeh- | | | | lers. Wird er unterdrueckt, so ruecken | | | | die nachfolgenden Felder nach links auf. | | BIN | LI:BIN | (binary code) | | | | Druck des erzeugten Objektcodes. Beim Un- | | | | terdruecken dieser Felder rueckt die nach-| | | | folgende Quellzeile nach links auf. | | BEX | LI:BEX | (binary extension) | | | | Druck der Binaerextension. Belegt der Ob- | | | | jektcode einer Anweisung mehrere Worte, | | | | so wird der Druck ab zweites Wort mit BEX | | | | gesteuert. (Teilfunktion von BIN) | | SRC | LI:SRC | (source line) | | | | Druck der Quellzeilen. | | COM | LI:COM | (comment) | | | | Druck des Kommentarfeldes. | | | | (Teilfunktion von SRC) | | MD | LI:MD | (macro definition) | | | | Druck von Makrodefinitionen und Wiederho- | | | | lungsbloecken. | | MC | LI:MC | (macro calls) | | | | Druck von Makroaufrufen und Wiederholungs-| | | | block-Kopfzeilen. | | ME | NL:ME | (macro expansions) | | | | Druck der Makroexpansionen. | | MEB | NL:MEB | (macro expansion binary code) | | | | Druck des Objektcodes der Makroexpansion.| | | | Bei /LI:MEB werden nur die Anweisungszei- | | | | len gedruckt, die Objektcode erzeugen. | | | | (Teilfunktion von ME) | | CND | LI:CND | (conditional coding) | | | | Druck der Bloecke zur bedingten Ueberset- | | | | zung bei nicht erfuellter Bedingung. | |---------------------------------------------------------------| 9 Tabelle 2: (Fortsetzung) ----------------------------------------------------------------- | Schalter | Stan- | Bedeutung | | Argument | dard | | ----------------------------------------------------------------- | LD | NL:LD | (listing directives) | | | | Druck der .LIST/.NLIST - Anweisungen ohne | | | | Argument. | | TOC | LI:TOC | (table of contents) | | | | Druck des durch die .SBTTL-Anweisungen | | | | erzeugten Inhaltsverzeichnisses. | | SYM | LI:SYM | (symbol table) | | | | Druck der Symboltabelle, die im Anschluss | | | | an die Uebersetzungsliste erscheint. | | TTM | NL:TTM | | | | | Teleprinterformat, d.h. fuer den Objekt- | | | | code ist eine Spalte eingerichtet. (Be- | | | | steht der Objektcode zu einer Anweisung | | | | aus mehreren Worten, so treten die folgen-| | | | den als Binaerextension auf.) | | | | Im Standardfall gilt das Zeilendrucker- | | | | format, d.h. fuer den Objektcode sind | | | | drei Spalten eingerichtet. | | | | | | /EN:arg | | (enable) | | /DS:arg | | (disable) | | | | Bei ods oder qds anzugeben. | | | | Zur Uebersetzungssteuerung; die Argumente | | | | beider Schalter entsprechen denen der An- | | | | weisungen .ENABL/.DSABL. Durch ihre Ver- | | | | wendung im Kommando werden entsprechende | | | | Anweisungen im Programm ueberschrieben. | | AMA | DS:AMA | (absolute mode addressing) | | | | Mit /EN:AMA werden relative Adressen | | | | (Adressierungsmodus 67) als absolute | | | | (Adressierungsmodus 37) uebersetzt. | | REG | EN:REG | (register symbols) | | | | Es gelten die Standard-Registersymbole | | | | R0,...,R5,SP,PC. Bei /DS:REG besteht die | | | | Moeglichkeit der Arbeit mit anderen Regi- | | | | stersymbolen. | | GBL | EN:GBL | (global symbols) | | | | Alle nicht definierten Symbole des Quell- | | | | programmes gelten als (externe) globale | | | | Symbole. Im Fall /DS:GBL werden die ent- | | | | sprechenden Zeilen in der Uebersetzungs- | | | | liste mit dem Fehlercode U gekennzeichnet.| | LC | DS:LC | (lower case) | | | | Umcodierung der Kleinbuchstaben in Gross- | | | | buchstaben. Mit /EN:LC bleiben Kleinbuch- | | | | staben erhalten. | | CDR | DS:CDR | (card reader) | | | | Bei /EN:CDR werden die Positionen 73...80 | | | | der Quellzeilen als Kommentar behandelt. | | FPT | DS:FPT | (float point truncation) | | | | Gleitkommazahlen, die im Programm defi- | | | | niert sind, werden abgeschnitten. Im | | | | Standardfall werden sie gerundet. | |---------------------------------------------------------------| 10 Tabelle 2: (Fortsetzung) ----------------------------------------------------------------- | Schalter | Stan- | Bedeutung | | Argument | dard | | ----------------------------------------------------------------- | LSB | DS:LSB | (local symbol block) | | | | Mit /EN:LSB wird die Definition lokaler| | | | Symbolbloecke ueber Sektionsgrenzen hinaus| | | | gestattet. | | ABS | DS:ABS | (absolute binary output) | | | | Absolute Binaerausgabe anstelle der Aus-| | | | gabe des Objektcodes. | | PNC | EN:PNC | (punch) | | | | /DS:PNC fuehrt zur Unterdrueckung der Bi-| | | | naerausgabe. | | CRF | EN:CRF | (cross referenz) | | | | Falls mit /CR die Ausgabe der Cross-Refe-| | | | renz-Liste angewiesen ist, koennen mit| | | | /DS:CRF einzelne Quelldateien ausgeschlos-| | | | sen werden. | | | | | | /ML | | (macro library file) | | | | Bei qds anzugeben. | | | | Die entsprechende Eingabedatei ist eine| | | | Makrobibliotheksdatei. | | | | | | /PA:arg | | (pass) | | | | Nach qds anzugeben. | | | | Als Argument ist 1 oder 2 zulaessig. | | | | Bei der Uebersetzung wird der betreffende| | | | Quellmodul nur im 1. bzw. 2.Pass berueck-| | | | sichtigt. | | | | | | /SP | | (spooling) | | /NOSP | | (no spooling) | | | | Bei lds anzugeben. | | | | Nach Beendigung des Uebersetzungslaufes| | | | wird die Ausgabe der Uebersetzungsliste| | | | durch den Print-Spooler veranlasst. | | | | (Voraussetzung: PRT installiert) | | | | | | /CR[:arg]| | (cross referenz) | | | | Bei lds anzugeben. | | | | An die Uebersetzungsliste wird die Cross-| | | | Referenz-Liste angefuegt. | | | | (Voraussetzung: CRF installiert) | | | | Bei der Angabe von Argumenten wird nur| | | | die entsprechende Liste erzeugt. /CR ohne| | | | Argument entspricht /CR:SYM:MAC. | | SYM | | (user defined symbol table) | | | | Liste der vom Nutzer definierten Symbole. | | MAC | | (macro symbol table) | | | | Liste der Makronamen | | REG | | (register symbol table) | | | | Liste der Registersymbole. | | PST | | (permanent symbol table) | | | | Liste der permanenten Symbole (d.h. | | | | Mnemoniks der Maschinen- u.Pseudobefehle)| |---------------------------------------------------------------| 11 Tabelle 2: (Fortsetzung) ----------------------------------------------------------------- | Schalter | Stan- | Bedeutung | | Argument | dard | | ----------------------------------------------------------------- | /LP:arg | /LP:72 | (lines per pages) | | | | Bei lds anzugeben. Das Argument ist eine| | | | Dezimalzahl, welche die bei dem zu verwen-| | | | denden Listendruckgeraet eingestellte Zei-| | | | lenanzahl pro Seite angibt. | ----------------------------------------------------------------- Anmerkungen: - Der Schalter /NL ohne Zusatz eines Arguments bewirkt, dass im Falle syntaktischer Fehler das Fehlerzeilenprotokoll auf dem spezifizierten Geraet ausgegeben wird. - Der Schalter /LI ohne Zusatz eines Arguments bewirkt, dass die Makroexpansionen (entsprechend dem Argument /ME) gedruckt wer- den. - In Abhaengigkeit von der Generierung des Makroassemblers koen- nen auch andere Standards gelten. 12 6. Uebersetzungsliste --------------------- Der Makroassembler MAC 1600 erzeugt ein Uebersetzungsprotokoll (Uebersetzungsliste, kurz "Liste"), welches die Grundlage fuer die Entwicklung und Bearbeitung des Programms und den logischen Test ist. Diese Uebersetzungsliste enthaelt die Zeilen des Quell- programms in Gegenueberstellung zum Objektcode. Die Uebersetzungsliste ist in Seiten gegliedert. Jede Seite be- ginnt mit Titel- und Untertitelzeile. Die Titelzeile enthaelt den Programmtitel, die Kurzbezeichnung der benutzten Assemblerver- sion, Datum und Uhrzeit sowie die Seitennummer. Die Seitennummern bestehen aus Haupt- und Unternummer. Durch die Anweisung .PAGE sowie am Anfang eines neuen Quellmoduls wird Seitenvorschub ver- anlasst und die naechstfolgende Seitenhauptnummer eingestellt. Daran koennen sich weitere Seiten mit fortlaufenden Unternummern anschliessen, z.B. PAGE 2, PAGE 2-1, PAGE 2-2 usw. Jede Zeile der Uebersetzungsliste ist in fuenf Felder unterteilt: 1) Fehlerkennzeichen Wenn in einer Zeile des Quellprogramms ein syntaktischer Feh- ler erkannt wird, so wird in der ersten Spalte der Ueber- setzungsliste ein Fehlerkennzeichen eingetragen. (Zur Bedeu- tung der Fehlerkennzeichen s. Abschn. 8.2.) 2) Quellzeilennummer (dezimal) 3) Speicherplatzzaehler (oktal), d.h. Adresse des ersten belegten Speicherplatzes 4) Objektcode Das vierte Feld enthaelt die durch die Uebersetzung der Anwei- sung erzeugte Codierung als Oktalzahl. Im Standardfall (Line- printerformat) sind dafuer drei Spalten (4 bis 6) eingerich- tet, da bei Maschinenbefehlen maximal drei Worte belegt werden koennen. 5) Quellzeileninhalt Die Objektcodeinformationen in den Spalten 4-6 sind in folgenden Faellen mit einer Kennzeichnung versehen: ' bei verschieblichen Adressen (Ausdruecken) G bei externen globalen Symbolen (Ausdruecken) C bei komplexen Ausdruecken Beispiel: (1) (2) (3) (4) (5) (6) (7) ... 71 000300 012767 000420' 000000G MARK1: MOV #X,GLOB 72 000306 005004 CLR R4 73 000310 000167 JMP MARK2 74 000314 040511 007732 121041 PI: .FLT4 3.14159265 000322 064276 T 75 000324 000000 .WORD 200000 76 000326 000000C .WORD GLOB-MARK1 Wenn im Programm Untertitel vorkommen (Anweisung .SBTTL), er- scheint vor der eigentlichen Uebersetzungsliste das Inhaltsver- zeichnis (Table of contents). Im Anschluss an die eigentliche Uebersetzungsliste erscheint die Symboltabelle. Sie enthaelt alle 13 im Programm vorkommenden Nutzersymbole in alphabetischer Reihen- folge (jedoch nicht die lokalen Symbole). Jedem definierten Sym- bol folgt sein Wert sowie die Nr. der Programmsektion. Ausserdem ist zu jedem Symbol eine Kennzeichnung RGX angegeben, die fol- gende Bedeutung hat: An 1.Stelle steht "R", wenn das Symbol ver- schieblich ("relocatable") ist, an 2.Stelle steht "G", wenn es sich um ein globales Symbol (extern oder intern) handelt, und an 3.Stelle steht "X", wenn das Symbol im Programm nicht definiert ist. Nach der eigentlichen Symboltabelle folgt eine Liste der im Programm vorkommenden Programmsektionen mit Name, Laenge und lfd. Nr. Der Umfang der Uebersetzungsliste kann durch die Anweisungen .LIST bzw. .NLIST im Programm oder durch die Schalter /LI bzw. /NL im Kommando gesteuert werden. 7. Cross-Referenz-Liste ----------------------- Die Cross-Referenz-Liste kann als Anhang zur Uebersetzungsliste hergestellt werden. Sie wird vom Programm CRF 1600 (OMEX) unter Verwendung einer vom Assembler bereitgestellten temporaeren Datei aufgebaut. Die Cross-Referenz-Liste kann aus maximal vier Teilen bestehen: Symbol-, Registersymbol-, Makronamen- und permanente Symbol-Cross-Referenz. Die Symbol-Cross-Referenz-Liste enthaelt alle im Programm vorkommenden Nutzersymbole in alphabetischer Reihenfolge; zu jedem Symbol ist sein Wert und die Kennzeichnung RGX (wie oben beschrieben) angegeben sowie saemtliche Referenzen mit Seiten- und Zeilennummer. Den Referenzen sind Kennzeichen vorangestellt: # Definition eines Symbols * Benutzung bei einem den Wert veraendernden Befehl (ohne) sonstige Benutzung 14 8. Fehlermitteilungen --------------------- 8.1. Mitteilungen zur Bedienung ------------------------------- Treten bestimmte Probleme bei der Arbeit des Assemblers auf, so erscheinen Fehlermitteilungen auf dem Kommandoausgabegeraet. Mit Ausnahme der Fehlermitteilung "MAC -- COMMAND I/O ERROR" fuehren derartige Ereignisse zum Abbruch der laufenden Uebersetzung und dem Versuch, mit dem Lesen einer anderen Kommandozeile wieder zu starten (Restart). Im Ausnahmefall ist keine neue Kommandoeingabe moeglich. MAC -- COMMAND FILE OPEN FAILURE - Die Datei, von der MAC 1600 ein Kommando liest, konnte zu Be- ginn oder zwischen den Uebersetzungen nicht eroeffnet werden oder - die mit "@Dateiname" spezifizierte indirekte Kommandodatei konnte nicht eroeffnet werden. MAC -- COMMAND I/O ERROR Waehrend MAC 1600 eine Kommandozeile las, trat im Dateisystem ein Fehler auf. Keine Restart-Moeglichkeit mehr! MAC -- COMMAND SYNTAX ERROR Die MAC 1600-Kommandozeile enthaelt einen syntaktischen Fehler. MAC -- ILLEGAL FILENAME - Es ist keine Eingabedatei spezifiziert oder - bei der Spezifikation der Ein- oder Ausgabedateien wurde ein "*" verwendet. MAC -- ILLEGAL SWITCH - Verwendung eines falschen Schalters - Verwendung eines falschen Schalterarguments - unkorrekte Benutzung eines Schalters in einer Dateispezifi- kation MAC -- INDIRECT COMMAND SYNTAX ERROR Der Name der mit "@Dateiname" spezifizierten indirekten Komman- dodatei ist syntaktisch falsch. MAC -- INDIRECT FILE DEPTH EXCEEDED Es wurde versucht, die hoechstzulaessige Verschachtelungstiefe von drei indirekten Kommandodateien zu ueberschreiten. MAC -- INSUFFICIENT DYNAMIC MEMORY Der zur Verfuegung stehende dynamische Speicher reicht nicht zum Aufbau der Symboltabelle. 15 MAC -- INVALID FORMAT IN MACRO LIBRARY Die Bibliotheksdatei ist entweder zerstoert oder vom Bibliothekar nicht erstellt. MAC -- I/O ERROR ON INPUT FILE oder MAC -- I/O ERROR ON MACRO LIBRARY FILE Fehlerursachen koennen sein: - Beim Lesen eines Satzes einer Quelldatei oder einer Makrobib- liotheksdatei wurde ein Fehler gefunden (z.B. Quellzeile mit mehr als 132 Zeichen). - Geraetefehler - Eine Quelldatei oder eine Makrobibliotheksdatei wurde mit falschen Daten zerstoert. MAC -- I/O ERROR ON OUTPUT FILE Fehlerursachen koennen sein: - Beim Schreiben eines Satzes in die Objektmodul- oder Listen datei wurde ein Fehler erkannt. - Geraetefehler - Der Speicherplatz des Geraetes ist erschoepft. MAC -- I/O ERROR ON WORK FILE In der Arbeitsdatei zur Speicherung der Symboltabelle trat ein Lese- oder Schreibfehler auf. MAC -- OPEN FAILURE ON INPUT FILE Fehlerursachen koennen sein: - Das spezifizierte Geraet existiert nicht. - Geraetefehler - Der Datentraeger ist nicht eingegliedert. - Das spezifizierte Verzeichnis existiert nicht. - Die spezifizierte Datei existiert nicht. - Der Nutzer hat zum Dateiverzeichnis bzw. zur Datei keinen Zugriff. MAC -- OPEN FAILURE ON OUTPUT FILE Fehlerursachen koennen sein: - Das spezifizierte Geraet existiert nicht. - Geraetefehler - Der Datentraeger ist nicht eingegliedert. - Das spezifizierte Verzeichnis existiert nicht. - Der Nutzer hat keinen Zugriff zum Verzeichnis. - Der Datentraeger ist voll. - Das Geraet ist gegen Schreiben geschuetzt. MAC -- 64K STORAGE LIMIT EXEEDED Der Assembler hat so viele Symbole generiert, dass der zur Ver- fuegung stehende Speicherplatz ueberschritten wird. 16 8.2. Mitteilungen zu syntaktischen Fehlern ------------------------------------------ Bei syntaktischen Fehlern im Quellprogramm kennzeichnet MAC 1600 die entsprechenden Quellzeilen mit einem Fehlercode. Fehlercode Bedeutung A ("addressing error") - Zulaessige Reichweite bei einem Verzweigungs- befehl ueberschritten - Fehlerhaft gebildeter Adressausdruck - Unzulaessige Argumente bei den Anweisungen .PSECT, .ENABL/.DSABL, .LIST/.NLIST, .RADIX, .IF, .IIF - Unzulaessige Referenz bei einer Direktanweisung B ("bounding error") Befehl oder Datenwort auf ungerader Adresse D ("double-defined symbol") Verweis auf ein mehrfach definiertes Symbol E .END fehlt I Illegales Zeichen (In der Uebersetzungsliste wird dafuer ? gesetzt.) L Quellzeile zu lang M ("multiple definition") Mehrfach definiertes Symbol N ("number error") Falsch gebildete Zahl O Operationscodefehler P - Phasenfehler - Durch eine .ERROR-Anweisung erzeugte Meldung Q ("questionable") Fragwuerdige Syntax R Fehlerhafte Registerbenutzung T ("truncation error") Laengenfehler U Undefiniertes Symbol 17 Abkuerzungsverzeichnis ---------------------- ACNT (Account File Maintenance Wartungsprogramm fuer Nutzer- Program) verzeichnisse ACP (Ancillary Control Processor) Zusatzsteuerroutine AS Anschlusssteuereinheit AFP - fuer Festplattenspeicher AFS - fuer Folienspeichereinheit AIP - fuer paralleles Interface AIS - fuer serielles Interface AKP - fuer Kassettenplatten- speicher AMB - fuer Magnetbandspeicher APR (Address Page Register) Seitenadressregister ASCII (American Standard Code entspricht KOI7-Code for Information Interchange) AST (Asynchronous Systemtrap) Asynchroner Systemtrap AT Verarbeitungsprogramm fuer Indirekt-Kommandodateien BAD (Bad Block Locator Utility) Plattenpruefprogramm BDE Bedieneinheit BOT (Begin Of Tape) Bandanfang BRU (Backup and Restore Utility) Datensicherungsprogramm BS Betriebssystem CDA (Crash Dump Analyzer) Abbruchanalyseprogramm CIB (Controller Initialization Initialisierungsblock Block) fuer die Anschlusssteuer- einheit CLI (Command Line Interpreter) Programm zur Bearbeitung von Kommandos CMP (File Compare Utility) Dateivergleichsprogramm CSI (Command String Interpreter) Kommandozeileninterpreter DCB (Device Control Block) Geraetetypsteuerblock DCL Kommandosprache DCL DDT (Driver Dispatch Table) Tabelle der Eintrittspunkte eines Drivers DEP (Debugging Program) Testprogramm DFNB (Default File Name Block) Standarddateinamenblock DIC (Directive Identifikation Code) Anweisungsidentifikationscode DMP (Dump Utility) Dateidruckprogram DPB (Directive Parameter Block) Anweisungsparameterblock DSC (Disk Save and Compress) Dateirettungs- und Ver- dichtungsprogramm DSW (Directive Status Word) Anweisungsstatuswort E/A Ein- und Ausgabe EDI (Line Text Editor) Editor EDT (Standard Editor) " EFN (Event Flag Number) Ereignisflagnummer EOF (End of File) Dateiendekennsatz EOV (End of Volume) Datentraegerendekennsatz ERL (Error Logging) Fehlerregistrierung 18 FCB (File Control Block) Dateisteuerblock FCS (File Control Services) Dateizugriffsroutinen FDB (File Descriptor Block) Dateibeschreibungsblock FD16 Datensicherungsformat FE16 Global genormte Dateiformate (Dateiformat "established") FEX (File Exchange Utility) Dateiaustauschprogramm FIFO (First in - first out) FIFO-Speicherprinzip FL16 Dateiformat LAOS 1630 FLX (File Transfer Utility) Dateiumwandlungsprogramm FMT (Format Utility) Formatierungsprogramm fuer Magnetplatten FM16 Dateiformat MOOS 1600 und OMOS 1630 FNB (File Name Block) Dateinameblock FPEM (Floating-point Emulation Program) Gleitkommaemulator FPS Festplattenspeicher FQ16 Lokal genormte Dateiformate (Datenformat "queered") FSE Folienspeichereinheit FSR (File Storage Region) Dateispeicherbereich GCML (Get Command Line) Kommandozeilenlesen HDR (Header Label) Dateianfangskennsatz ICB (Interrupt Control Block) Interruptsteuerblock ID Identifikation IESR (Interrupt Enable/Disable Service Routine) Interrupt-Erlauberoutine IOX (I/O Exerciser) Allgemeines Geraete testprogramm ISR (Interrupt Service Routine) Interrupt-Bedienroutine ITB (Interrupt Transfer Block) Interrupt-Transfer-Block KBR Kommerzielles Basisrechner- system KMBE Kassettenmagnetbandeinheit KOI-7 entspricht ASCII-Code KPS Kassettenplattenspeicher KROS Kombinat Robotron Standard LBL Lochbandleser LBN (Logical Block Number) Logische Blocknummer LBR (Librarian Utility) Bibliothekar LC (Location Counter) Speicherplatzzaehler des Assemblers LUN (Logical Unit Number) logische Geraetenummer LUT (Logical Unit Table) Tabelle der logischen Geraetenummern LP (Line Printer) Zeilendrucker MAC Makro-Assembler MBG Magnetbandgeraet MCR (Monitor Console Routines) Kommandoprogramm MFD (Master File Directory) Hauptdateiverzeichnis MGS Mikrorechnergeraetesystem MOEX Exekutive des MOOS MOOS 1600 Modulares Operationssystem 19 NP Nutzerprogramm OCB (Offspring Control Block) Block zur Steuerung der Mutter/Tochter-Taskverbindung ODT (On-Line Debugging Tool) Testprogramm OMEX Exekutive des OMOS OMOS 1630 Optimiertes Modulares Betriebssystem PAR (Page Address Register) Seitenadressregister PAT (Object Module Patch Utility) Objektmodul-Korrekturprogramm PC (Program Counter) Befehlszaehler PCB (Partition Control Block) Partitionsteuerblock PDR (Page Description Register) Seitenbeschreibungsregister PIP (Peripheral Interchange Dateitransferprogramm Program) PRESRV (Preservation Utility) Duplizier- und Sicherungs- programm PRT (Print spooler) Print-Spooler PSW (Processor Status Word) Prozessorstatuswort RAM (Random Access Memory) Speicher mit wahlfreiem Zu- griff RDB (Region Definition Block) Region-Definitionsblock SCB (Status Control Block) Statussteuerblock SD Seriendrucker SHF (Shuffler) Speicherverdichtungsprogramm SLP (Source Line Processor) Quelltext-Korrekturprogramm SKR System der Kleinrechner SP (Stack-pointer) Stackpointer, Kellerzeiger SR (Status Register) Statusregister SRD (Sort Directory Program) Sortierprogramm fuer Verzeichnisdateien SST (Synchronous Systemtrap) Synchroner Systemtrap STD (System Task Directory) Systemtaskverzeichnis SVE Speichervermittlungseinheit TCB (Task Control Block) Tasksteuerblock TKB (Task Builder) Taskbilder TKTN (Task Termination Noti- Mitteilungsroutine fuer Task- fication Routine) beendigung UCB (Unit Control Block) Geraetesteuerblock UFD (User File Directory) Nutzerdateiverzeichnis UIC (User Identification Code) Nutzeridentifikationscode UHL (User Header Label) Nutzereigene Dateikennsaetze UTL (User Trailer Label) " UVL (User Volume Label) " VB (Virtual Block) Virtueller Block VBN (Virtual Block Number) Virtuelle Blocknummer VCB (Volume Control Block) Datentraegersteuerblock VFY (File Structure Verification Dateipruefprogramm Utility) VMR (Virtual Monitor Console Virtuelles Kommandoprogramm Routine) 20 VOL (Volume Label) Datentraegerkennsatz WDB (Window Definition Block) Fenster-Definitionsblock XDT (Executive Debugging Tool) Exekutivetesthilfe ZAP (Task Image File Patch) Dateikorrekturprogramm ZVE Zentrale Verarbeitungseinheit 21 Sachwortverzeichnis Seite ------------------- Cross-Referenz-Liste 14 Dateien Listendatei 4,5,7 Objektdatei 4,7 Quelldatei 4,7 Fehlerliste 7 Fehlermitteilungen 15 ff. Nutzersymbole 14 Schalter 8 ff. Standards 7,8 Symboltabelle 5 Uebersetzungsliste 13 22