----------------------------------------------------------------- | SOFTWARE- | Vorbemerkungen | MOS | | DOKUMENTATION | Anleitung fuer den | | |-----------------| Programmierer |------------| | 11/87 | | OMOS 2.0 | ----------------------------------------------------------------- Programmtechnische Anleitung fuer den Programmierer Beschreibung Teil 1 Vorbemerkungen MGS K 1600 VEB Robotron-Vertrieb Berlin Dok.-Nr. C 8064-0457-1M2031 Die vorliegende Ausgabe der Software-Dokumentation - Anleitung fuer den Programmierer, Teil 1: "Vorbemerkungen" - 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 Mohrenstr. 62 Berlin 1086 (C) Kombinat Robotron 1987 Kurzreferat Die vorliegende Schrift enthaelt im Kapitel 1 eine Uebersicht ueber die Anleitung fuer den Programmierer und weitere Dokumentationen zum Betriebssystem OMOS 1630. Im Kapitel 2 werden Hinweise zur Programmentwicklung gegeben, und Kapitel 3 beschreibt die Bibliotheken des BS OMOS 1630. Inhaltsverzeichnis ------------------ Seite ----- 1. Hinweise zur Benutzung der Schrift 4 1.1. Gliederung der "Anleitung fuer den Programmierer" 4 1.2. Leserkreis 4 1.3. Weitere Software-Dokumentationen 4 2. Hinweise zur Programmentwicklung 6 2.1. Stufen des Programmentwicklungsprozesses 6 2.2. Besonderheiten 10 2.2.1. Editionsprogramme 10 2.2.2. MACRO-Assembler, Taskbilder 10 2.2.3. Testprogramme 11 2.2.4. Sonstige Programme 11 3. Bibliotheken des BS OMOS 1630 13 3.1. Systembibliotheken 13 3.2. Nutzereigene Bibliotheken 14 Abkuerzungsverzeichnis 16 Sachwortverzeichnis 19 Bildverzeichnis --------------- 1: Arbeitsschritte bei der Programmentwicklung 9 3 1. Hinweise zur Benutzung der Schrift ------------------------------------- 1.1. Gliederung der "Anleitung fuer den Programmierer" ------------------------------------------------------ Die Anleitung fuer den Programmierer, bestehend aus Teil 1 bis Teil 6, beschreibt im wesentlichen Makros und Unterprogramme, die in verschiedenen Bibliotheken des Betriebssystems OMOS 1630 enthalten sind. Die Beschreibungen der Bibliotheksinhalte sind wie folgt verteilt: Ein Teil von Makros und Unterprogrammen, die im wesentlichen Exekutiveleistungen und Ein-/Ausgaben betreffen, ist in der Anleitung fuer den Programmierer, Teil 2: "Exekutive OMEX 1630", und in Teil 3: "Ein-/Ausgabe-System", beschrieben. Dabei sind die Unterprogrammaufrufe, wie sie z.B. in FORTRAN- Programmen notwendig sind, gleichfalls angegeben. Einen grossen Teil der SYSLIB.OLB und der SYSMAC.SML nehmen die Dateizugriffsroutinen ein, die in der Anleitung fuer den Programmierer, Teil 5: "Dateizugriffsroutinen (FCS 1630)" beschrieben sind. Fuer einen Teil der Objektmodulbibliotheksroutinen aus der SYSLIB.OLB und der VMLIB.OLB existiert eine gesonderte Doku- mentation, die Anleitung fuer den Programmierer, Teil 6 "System- bibliotheksroutinen". Hier sind folgende Komponenten beschrieben: Registerrettung Arithmetik Ein-/Ausgabe-Konvertierung Ausgabeformatierung Verwaltung des virtuellen Speichers Zugriff auf Universalbibliotheken 1.2. Leserkreis --------------- Die vorliegende Dokumentation ist fuer alle Personen bestimmt, die selbst Programme entwickeln. Die Beschreibungen in den Teilen 2 bis 6 der Anleitung sind fuer den Programmierer, der Programme in Assemblersprache entwickelt, eine unerlaessliche Hilfe bei der Inanspruchnahme von Systemleistungen. Verschiedene dieser Leistungen sind auch in hoeheren Programmiersprachen als Unterprogramme verfuegbar, wobei die Bedingungen der jeweiligen Programmiersprache und ihres Laufzeitsystems beachtet werden muessen. 1.3. Weitere Software-Dokumentationen ------------------------------------- Weitere Definitionen und Unterprogramme sind in speziellen Bibliotheken der Exekutive zusammengefasst. Die EXELIB.OLB und die EXELIB.MLB enthalten systeminterne Ver- einbarungen, von denen einige bei der Programmierung ladbarer Driver benutzt werden. Diese sind in der Anleitung fuer den Systemprogammierer, Teil 3: "Entwicklung nutzereigener Driver" beschrieben. Der Prozess der Programmentwicklung und die dabei zu benutzenden 4 Programme werden im Kapitel 2 der vorliegenden Anleitung kurz erlaeutert. Detaillierte Informationen ueber die Teilschritte dieses Prozesses sind zu finden in: - der "Sprachbeschreibung der Makroassemblersprache", - der Anleitung fuer Bediener, Teil 5: "Makroassembler", - den Beschreibungen der Programmiersysteme fuer die jeweils verwendete hoehere Programmiersprache, - der Anleitung fuer Bediener, Teil 4: "Dienstprogramme". 5 2. Hinweise zur Programmentwicklung ----------------------------------- 2.1. Stufen des Programmentwicklungsprozesses --------------------------------------------- Nach der Entwurfsarbeit fuer ein Projekt bzw. ein Programm beginnt die Eingabe der Anweisungen in den Rechner. Dazu koennen verschiedene Editionsprogramme verwendet werden: - Mit dem Editor EDI koennen Dateien (Quellprogramme und anderes Textmaterial) am Terminal interaktiv eingegeben und korrigiert werden. Dazu verfuegt EDI ueber einen Satz von Kommandos, mit denen Zeilen einzeln oder blockweise von einer Eingabedatei in einen Hauptspeicherpuffer gelesen, dort bearbeitet und anschliessend in eine neue Ausgabedatei uebertragen werden koennen. EDI nimmt Kommandos zur zeilen- und zeichenweisen Aufbereitung, zur Listenausgabe und zum Oeffnen und Schliessen von Dateien entgegen. - Auch der bildschirmorientierte Editor EDT dient zum Aufbereiten von Textdateien, ist aber im Unterschied zu EDI durch seinen groesseren Satz von Kommandos anwendungsfreundlicher und fuer die eigentliche Textverarbeitung besser geeignet. EDT kann sowohl im Blockmodus mit Zeilenzeiger als auch bei Einsatz des Voll-Duplex-Terminaldrivers im Bildschirmmodus mit Zeichenzei- ger (Kursor) arbeiten. - Das Programm SLP (Source Line Processor) bearbeitet ebenfalls ausschliesslich Textdateien. Man kann damit Textdateien erstellen, modifizieren (also Zeilen einer bestehenden Datei loeschen, ersetzen, einfuegen), dabei Indirektkommandodateien benutzen und die geaenderten Zeilen automatisch markieren. SLP ist besonders fuer die vorprogrammierte Arbeitsweise geeignet. - FLX und FEX sind keine Textverarbeitungsprogramme. Sie dienen dem Dateiaustausch zwischen verschiedenen Rechnersystemen und sind deshalb fuer die Uebernahme von Dateien, die auf anderen Rechnern erfasst oder erarbeitet wurden und fuer die Datensicherung geeignet. Die Arbeit mit dem Makroassembler ist ein wichtiger Teil der Arbeit des Programmierers. Die Nutzung von anderen Programmiersystemen ist grundsaetzlich moeglich, wird aber in den mit diesen Systemen gelieferten Dokumentationen behandelt, so dass hier auf Erlaeuterungen dazu verzichtet wird. Im wesentlichen gilt dabei derselbe Ablauf, wobei statt des Assemblers der entsprechende Compiler benutzt wird. MACRO 1600 ist eine maschinenorientierte Programmiersprache. Sie gestattet die Benutzung saemtlicher Maschinenbefehle des MGS K 1600, die Verwendung symbolischer Adressen, verschiedene Adres- sierungsarten und ist durch folgende Eigenschaften gekennzeich- net: - MACRO 1600 gestattet eine uebersichtliche Programmierweise durch die Verwendung lokaler Symbole mit begrenztem Gueltig- keitsbereich. - Mit Hilfe globaler Symbole koennen Verbindungen zwischen ver- schiedenen, unabhaengig voneinander uebersetzten Quellprogram- 6 men hergestellt werden, die beim Bilden der Task verbunden werden sollen. In jedem Quellprogramm koennen globale Symbole definiert und/oder benutzt werden. - MACRO 1600 ermoeglicht die Benutzung von Unterprogrammen. Es koennen interne Unterprogramme als Bestandteil des zu ueberset- zenden Quellprogramms sowie externe Unterprogramme, die in einer Unterprogrammbibliothek enthalten sind, benutzt werden. - Es stehen Anweisungen zur Verfuegung, die die Definition von Daten in allen vorhandenen Datenarten innerhalb des Programms gestatten. - Es gibt Anweisungen zur Definition von Programmsektionen, da- durch werden die logischen Programmeinheiten bereitgestellt, die beim Bilden der Task verarbeitet werden, z.B. zur Herstel- lung von Ueberlagerungsstrukturen. - Es besteht die Moeglichkeit der bedingten Uebersetzung. Be- stimmte Teile des Quellprogramms koennen in Abhaengigkeit von zu testenden Bedingungen wahlweise uebersetzt oder bei der Uebersetzung uebergangen werden. Dadurch koennen aus einem Quellprogramm bzw. aus einem einheitichen Paket von Quellpro- grammen ueber Steuergroessen unterschiedliche (Objekt-)Pro- grammversionen erzeugt werden. - In der Sprache MACRO 1600 ist eine flexible Makrotechnik ent- halten, die die Definition und Benutzung von Makros (Makrodefi- nitionen und Makroanweisungen) gestattet. Befehlsfolgen, die in gleicher oder aehnlicher Form in einem oder mehreren Quellprogrammen oft wiederkehren, koennen durch Makros ersetzt werden. Es koennen interne Makros als Bestandteil des zu uebersetzenden Quellprogramms sowie externe Makros (die in einer Makrobiblio- thek enthalten sind) benutzt werden. Eine mit Hilfe eines Editionsprogramms erzeugte Quellprogramm- datei dient als Eingabedatei fuer den Assembler. Zusaetzlich wird die Systemmakrobibliothek benutzt. Es koennen mehrere Eingabedateien und mehrere Makrobibliotheken benutzt werden. Der Assembler gibt einen Objektmodul und - auf Wunsch des Anwenders - eine Uebersetzungsliste aus, die auch eine Cross- Referenzliste der verwendeten Sysmbole enthalten kann. Dazu muss vorher die Cross-Referenz-Task CRF installiert worden sein. Soll diese Liste sofort ausgedruckt werden, ist sie an den Print- Spooler des Systems zu uebergeben, der auch aktiviert sein muss. Im Anschluss an die Ueberstzung eines Quellprogramm weist das verwendete Uebersetzungsprogramm auf syntaktische Fehler hin. Diese sollten beseitigt werden, bevor der naechste Arbeits- schritt, das Taskbilden, beginnt. Ein syntaktisch fehlerfreies Quellprogramm ist die Voraussetzung (jedoch keine Garantie) fuer eine erfolgreiche Taskabarbeitung. Der Taskbilder TKB verbindet einen oder mehrere Objektmoduln zu einer abarbeitbaren Einheit, der Task, und lagert ein hauptspeichergetreues Abbild dieser Task als Taskabbilddatei auf eine Magnetplatte aus. Dabei werden innerhalb des Taskabbildes alle notwendigen Datenstrukturen und Adressbeziehungen fuer die Abarbeitung der Task hergestellt. Ausser diesen "normalen" Tasks bildet der TKB auf spezielle Anforderung auch privilegierte Tasks und geteilte Regionen (Commonbereiche oder residente Bibliotheken). Eingabedateien fuer den Taskbilder sind von Assembler oder Compilern erzeugte Objektmoduln, die Systemobjektmodulbibliothek 7 bzw. nutzereigene Bibliotheken oder eine Ueberlagerungsbeschrei- bung ueber die Verknuepfung der Objektmoduln in der Task. Neben der Taskabbilddatei gibt der Taskbilder wahlweise auch eine Speicherbelegungsliste und eine Symboldefinitionstabelle aus. Die Speicherbelegungsliste gibt Auskunft ueber die in der Task enthaltenen Objektmoduln, ihre Anordnung im Hauptspeicher und ihre Eigenschaften. Sie kann auch eine Cross-Referenz-Liste ueber alle Objektmoduln enthalten. Die Speicherbelegungsliste kann an den Print-Spooler uebergeben oder als Datei abgespeichert werden. Die Aktionen des Taskbilders und die Eigenschaften der erzeugten Task werden vom Anwender durch Angabe von Schaltern und Options beeinflusst. Fuer nicht angegebene Parameter nimmt der TKB Standardwerte an. In bestimmten Sonderfaellen hat der Taskbilder noch weitergehende Funktionen (Herstellung und Benutzung einer Symboltabelle bei geteilten Regionen; Segmentierung nach Ueberlagerungsbeschrei- bung; Bilden von privilegierten Tasks), auf die in der Anleitung fuer Bediener, Teil 4: "Dienstprogramme", genauer eingegangen wird. Bei der erstmaligen Abarbeitung der fertigen Task werden Fehler im logischen Programmablauf bis hin zum Programmabbruch auftreten. Zur Untersuchung dieser Zustaende und zu deren Korrektur stellt das BS OMOS 1630 weitere Hilfsmittel zur Verfuegung. - Die Testprogramme DEP (Debugging Program) und ODT (On-Line Debugging Tool) dienen zum Testen von Nutzerprogrammen. Das Nutzerprogramm muss assembliert sein und wird durch den Taskbilder zusammen mit einem der Testprogramme zu einer Task verbunden. Die weitere Arbeit laeuft unter der Steuerung des Testprogramms. Der Nutzer kann durch Setzen von Unterbrechungspunkten, schrittweise Abarbeitung und eventuell Protokollierung (nur DEP) den Programmablauf genau verfolgen und beurteilen. Die Benutzung dieser Testprogramme ist nur sinnvoll, wenn die Uebersetzungslisten des Assemblers und die Speicherbelegungsliste des Taskbilders vorliegen, aus denen man die Speicheradressen der Task und die geplanten Inhalte der Register und Speicherzellen ersehen kann. Bei Programmen in hoeheren Programmiersprachen ist diese Arbeitsweise nicht sinnvoll. Nachdem Fehler gefunden wurden, werden diese am besten durch Veraenderungen im Quellprogramm und erneute Bearbeitung desselben bis zur fertigen Task beseitigt. Im BS OMOS existieren noch die Programme PAT und ZAP, mit deren Hilfe Korrekturen in Objektmoduln bzw. in fertigen Tasks vorgenommen werden koennen. Das folgende Bild gibt einen zusammenfassenden Ueberblick ueber den Prozess der Programmentwicklung. 8 Arbeitsschritt System- bzw. Steuerprogramm ---------------- | Eingabe eines| EDI 1630 / FEX 1630 |Quellprogramms| EDT 1630 / FLX 1630 ---------------- SLP 1630 | V --------------- |Assemblierung|<---- MAC 1600 --------------- | | | V | -------------- | |synt. Fehler?| | -------------- | nein| |ja | | V | | ------------------ | |Textaufbereitung| EDI 1630 / EDT 1630 | ------------------ SLP 1630 V A ----------- | | Binden | | TKB 1630 ----------- | | | V | -------------- | | log. Fehler?|-->| -------------- ja | |nein | V | ---------------- | | Programmlauf | | OMEX 1630 ---------------- | | | V | --------- | |Fehler ?| | --------- | nein| |ja | | V | | ---------------- | | Programmtest | DEP 1630 / ODT 1630 | ---------------- V ----------------- |arbeitsfaehiges| | Programm | ----------------- Bild 1: Arbeitsschritte bei der Programmentwicklung 9 2.2. Besonderheiten ------------------- Dieser Abschnitt enthaelt in Kurzform Hinweise zu den Programmen, die dem Programmierer helfen sollen, den jeweiligen Arbeitsschritt einzuleiten. In einem fortgeschrittenen Arbeitsstadium genuegen diese Hinweise nicht mehr, dann muss die im Kapitel 1 genannte Systemliteratur zu Rate gezogen werden. 2.2.1. Editionsprogramme ------------------------ Fuer die Erfassung von Quellprogrammtexten sind EDI und EDT gleich gut geeignet. Bei der Benutzung von EDI ist zu beachten, dass dem Benutzer nur die jeweils geladene Bearbeitungseinheit (Zeile oder Block) zur Verfuegung steht. Im geladenen Block kann vor- und rueckwaerts geschaltet werden, waehrend beim Weiter- schalten im Zeilenmodus stets die vorige Zeile abgespeichert und die naechste geladen wird. Das Laden des naechsten Blockes ver- laeuft auch in Richtung auf das Dateiende zu. EDT stellt dem Nutzer stets die gesamte Datei zur Verfuegung, da es mit mehreren temporaeren Dateien arbeitet. Der Nutzer kann beliebige Operatio- nen in der Datei unabhaengig von der Arbeitsrichtung ausfuehren. Es ist deshalb notwendig, genuegend Speicherplatz auf dem Daten- traeger, auf dem die Taskabbilddatei von EDT residiert, frei zu lassen, damit die temporaeren Dateien von EDT angelegt werden koennen. SLP bietet andere Arbeitsmoeglichkeiten, es ist vor allem fuer die vorprogrammierte Arbeit gedacht. Ein erster Arbeitsschritt hierbei ist ein Ausdruck der Quelldatei mit zugeordneten Zeilennummern, da sich die SLP-Kommandos bei der Abarbeitung auf diese Zeilennummern beziehen. Guenstig ist ausserdem die Moeglichkeit der automatischen Markierung geaenderter Zeilen bei der Abarbeitung (Audit-trail). 2.2.2. Makroassembler, Taskbilder --------------------------------- Makroassembler und Taskbilder sind die Hauptprogramme bei der Programmentwicklung. Fuer einen wenig erfahrenen Nutzer ist es guenstig, dass im einfachsten Fall beide Programme fast identische Kommandozeilen entgegennehmen. Am Anfang sollte der Anwender die durch die beiden Programme verwendeten Standards benutzen. Es ist gleichfalls zu empfehlen, fuer ein Programm und die bei seiner Erarbeitung entstehenden Dateien stets denselben Namen zu verwenden. So lautet eine Kommandozeile fuer den Makroassembler z.B. PROG, PROG = PROG Damit werden 3 verschiedene Dateien bezeichnet, naemlich die Ausgabedateien PROG.OBJ (Objektmodul) und PROG.LST (Uebersetzungsliste) und die Eingabedatei PROG.MAC (Quellprogramm). Beim Taskbilder wuerde dieselbe Zeile PROG, PROG = PROG die Ausgabedateien PROG.TSK (Taskabbilddatei) und PROG.MAP (Speicherbelegungsliste) und die Eingabedatei PROG.OBJ bezeichnen. Die Dateien, fuer die kein Name angegeben ist, werden nicht erzeugt. Eine Ausnahme bildet das jeweilige Fehler- protokoll. Ist keine Ausgabedatei angegeben, erscheinen alle 10 Fehlernachrichten des Makroassemblers und des Taskbilders auf dem Terminal, waehrend sie im anderen Falle Teil der jeweiligen Liste sind. Nach dem erfolgreichen Taskbilden kann die Task mit dem Kommando RUN PROG sofort gestartet und abgearbeitet werden. 2.2.3. Testprogramme -------------------- Voraussetzungen fuer die effektive Benutzung von DEP oder ODT sind . aktuelle Uebersetzungsliste (enthaelt die relativen Adressen der Befehle) . aktuelle Speicherbelegungsliste (enthaelt die absoluten Adressen der Moduln) . Testprogramm ist mit der Task verbunden Beim Taskbilden wird durch den Schalter /DA bei der Taskabbilddatei angegeben, dass die Datei LB:[1,1]ODT.OBJ Teil der Taskabbilddatei wird. Soll DEP als Testhilfe benutzt werden, muss es als eine der Eingabedateien mit Schalter /DA angegeben werden: LB:[1,1]DEP.OBJ/DA. Die Entscheidung ueber die Verwendung wird wesentlich von der Speichergroesse beeinflusst. DEP bietet eine groessere Unterstuetzung (Protokollierung), ODT benoetigt weniger Speicherplatz. Wird die mit einer Testhilfe gebildete Task gestartet, meldet sich die jeweilige Testhilfe. Die Abarbeitung beginnt jeweils damit, dass die benoetigten Verschiebebasisregister nR belegt (pro Modul ein Register mit dessen Ladeadresse belegen) und passende Unterbrechungspunkte in den Registern nB festgelegt werden. Dann kann der Programmlauf mit dem Kommando G gestartet werden. Mit dem Kommando X kann die Abarbbeitung beendet werden. 2.2.4. Sonstige Programme ------------------------- - PAT PAT korrigiert Objektmoduln mit Hilfe einer Korrekturdatei. Hierbei werden alle Korrekturen in einer Korrektur- Quelltextdatei erfasst und mit Hilfe des Makroassemblers uebersetzt. Die Lokalisierung der Korrekturen erfolgt mittels Assembleranweisung .=.+n. Als Eingabe fuer PAT dienen die urspruengliche Objektmoduldatei und die uebersetzte Korrekturdatei. Wenn das Programm aus mehreren Moduln besteht, die korrigiert werden muessen, muss die Veraenderung fuer jeden Modul separat durchgefuehrt werden. Anschliessend wird TKB aufgerufen, um die neue Task zu bilden, die dann wiederum mittels RUN gestartet werden muss. 11 - ZAP Mittels ZAP koennen fertige Taskabbilddateien veraendert werden. ZAP benoetigt prinzipiell dieselben Informationen wie die Testhilfen DEP oder ODT. Im Unterschied zu diesen Programmen wird ZAP nicht mit der zu modfizierenden Task verbunden; die Task wird auch nicht abgearbeitet. Als Grundlage fuer den Benutzer von ZAP dienen wiederum Uebersetzungs- und Speicherbelegungsliste der Task und moeglichst eine mit Hilfe von DMP ausgegebene Liste des fraglichen Teils der Taskabbild- datei. Bei der Dateispezifikation wird mittels Schalter der Arbeitsmodus ausgewaehlt. Standard ist die Bearbeitung einer Taskabbilddatei gemaess den Adressen der Ladetabelle (wie bei DEP und ODT). Nun werden die Verschieberegister mit Basis- werten geladen ((Blocknummer - 1) * 2000), entsprechend der Speicherungsreihenfolge auf der Platte. Da keine Abarbeitung der Task erfolgt, gibt es keine Haltepunkte und keinen Start- befehl. Nun koennen aber Adresszellen des Taskabbildes eroeffnet oder geschlossen, ihr Inhalt ausgegeben bzw. veraendert werden, Berechnungen ausgefuehrt werden. Es ist geraten, bei der Arbeit mit ZAP grosse Vorsicht walten zu lassen, da ein Fehler in einer Taskabbilddatei unuebersehbare Folgen haben kann. Die Richtigkeit der Aktionen kann nur durch anschliessende Abarbeitung ueberprueft werden. 12 3. Bibliotheken des BS OMOS 1630 -------------------------------- 3.1. Systembibliotheken ------------------------ Zum BS OMOS 1630 gehoeren folgende Objektmodulbibliotheken und Makrobibliotheken: SYSMAC.SML EXEMC.MLB SYSLIB.OLB EXELIB.OLB VMLIB.OLB In diesen Bibliotheken sind physisch Makros bzw. Unterpro- gramme zusammengefasst, die zwar inhaltlich keine Einheit bilden, aber allgemein benoetigt werden. Dabei gilt die SYSMAC.SML als System-Makrobibliothek fuer den Assembler MAC 1600 bzw. die SYSLIB.OLB als System-Objekt- modulbibliothek fuer den Taskbilder TKB 1630; der Zugriff des Assemblers bzw. Taskbilders erfolgt ohne gesonderte Angabe dieser Bibliotheken im Kommando. Diese beiden Bibliotheken sind fuer die Anwender von besonderem Interesse, da in ihnen die meisten allgemein benoetigten Routinen enthalten sind. Die Makros der SYSMAC.SML sind gewoehnlich Aufrufmakros fuer Unterprogramme aus der SYSLIB.OLB. Programme in Assemblersprache rufen meist Makros der SYSMAC.SML auf, die ihrerseits die entsprechenden Unterprogramme der SYSLIB.OLB akti- vieren. Programme in hoeheren Programmiersprachen organisieren im allgemeinen den Aufruf der Unterprogramme und die Parameter- uebergabe direkt. Der Inhalt der Systembibliothek SYSLIB.OLB wird durch den Systemprogrammierer festgelegt. Die ausgelieferte SYSLIB.OLB enthaelt alle in der Dokumentation beschriebenen Komponenten. Darueberhinaus gibt es Objektmoduldateien zur Erweiterung der SYSLIB.OLB beim Einbinden von bestimmten Systemleistungen (Magnetbandformat FM16-M, Mehrfachpufferung u.a.), ebenso beim Einbinden von Programmiersystemen hoeherer Programmiersprachen. Werden solche Bibliotheksinhalte allgemein benoetigt, ist eine Erweiterung der SYSLIB.OLB sinnvoll. Ansonsten koennen sie meist als eigene Bibliotheken gebildet werden, muessen dann aber im Kommando fuer das Taskbilden explizit angegeben werden. Aehnliches gilt fuer das Anlegen von speziellen Bibliotheken als residente geteilte Bibliotheken (z.B. FCS-Bibliothek). Das Verfahren ist in der Anleitung fuer Systemprogrammierer, Teil 2: "Inbetriebnahme und Wartung des BS OMOS 1630", naeher erlaeutert. Programme, die Leistungen aus einer residenten Bibliothek benoetigen, muessen schon beim Taskbilden mit Verweisen auf diese Bibliothek versehen werden. Der grosse Vorteil dieser Verfahrensweise liegt in der Speicherplatzersparnis fuer alle Programme, die eine solche Bibliothek gemeinsam nutzen. 13 Die uebrigen Bibliotheken sind vorwiegend fuer Systemprogram- mierer bestimmt. Die EXEMC.MLB enthaelt Definitionen der Datenstrukturen fuer die Exekutive. Die EXELIB.OLB enthaelt vor allem Unterprogramme, wie sie bei privilegierten Tasks und bei der Programmierung ladbarer Driver benutzt werden. Diese sind in der Anleitung fuer den Systemprogammierer, Teil 3: "Entwicklung nutzereigener Driver", beschrieben. Die VMLIB.OLB enthaelt u.a. Unterprogramme zur Verwaltung des virtuellen und des dynamischen Speichers. Das Verfahren zur Nutzbarmachung dieser Leistungen ist in der Anleitung fuer den Programmierer, Teil 6: "Systembibliotheksroutinen", beschrieben. 3.2. Nutzereigene Bibliotheken ------------------------------ Mit Hilfe des Bibliothekars LBR 1630 koennen beliebige nutzereigene Bibliotheken gebildet werden. Eine Verwendung von Bibliotheken, die mit einem anderen Bibliotheksprogramm (z.B. mit dem Bibliothekar des BS MOOS 1600) gebildet wurden, ist nicht zu empfehlen. Sollen solche Bibliotheken weitergefuehrt werden, sind sie aus den entsprechenden Objektmoduldateien mit Hilfe des Programms LBR 1630 neu zu bilden. Es sind Makro-, Objektmodul- und universelle Bibliotheken zugelassen. In Makrobibliotheken sammelt der Anwender projektbezogene Makros, die er anstelle der Makros der SYSMAC.SML oder zusaetzlich zu ihnen in seinen Programmen nutzen will. Die Namen der Makros werden im Quellprogramm in einer (oder mehreren) .MCALL-Anweisung angegeben. Bei der Uebersetzung des Quellprogramms werden die Makroaufrufe jedesmal durch die uebersetzten Anweisungsfolgen der Makrodefinition ersetzt. Dabei wird zuerst nach einer im Quellprogramm vorhandenen (lokalen) Makrodefinition gesucht, anschliessend in einer im Kommando angegebenen Makrobibliothek, und erst dann, wenn diese Suche keinen Erfolg hatte, wird die Systemmakrobibliothek durchsucht. Damit hat der Anwender sogar die Moeglichkeit, die vom System verwendeten Namen von Makros zu benutzen und damit diese Makros zu "redefinieren". Die Originale aus der SYSMAC.SML koennen aber nicht gleichzeitig benutzt werden. Dieselbe Reihenfolge wird vom Taskbilder TKB 1630 bei der Aufloesung von Bezugnahmen auf globale Symbole eingehalten, so dass im Anwendungsprogramm eventuell dieselben Namen wie fuer Eintrittspunkte aus der SYSLIB.OLB verwendet werden koennen, die dann wegen der Reihenfolge des Durchsuchens in einer nutzereige- nen Bibliothek aufgeloest werden. Diese Bibliothek muss aller- dings im TKB-Kommando oder in der Ueberlagerungsbeschreibung angegeben werden. Da dieses Verfahren zu Verwirrung fuehren kann, wird empfohlen, globale Symbole aus nutzereigenen Bibliotheken nicht mit den Zeichen $ (Dollar) oder . (Punkt) zu beginnen, da diese vielfach in Systembibliotheken zur Markierung von speziellen Eintrittspunkten verwendet werden. Im Unterschied zur Verwendung von Makros wird ein Unterprogramm aus einer Objektmodulbibliothek nur beim ersten Aufruf an die Task gebunden. Damit steht es bei jedem weiteren Aufruf zur Verfuegung, was zu einer Speicherplatzersparnis fuehren kann. 14 Universelle Bibliotheken sind eine neue Form von nutzereigenen Bibliotheken. Sie erhalten beim Erstellen durch den Bibliothekar LBR 1630 den Dateityp .ULB und koennen jeweils Moduln eines vom Nutzer zu bestimmenden Typs enthalten. Sie werden nicht vom Assembler oder vom Taskbilder benutzt, sondern ihre Moduln werden dem Programm nach Aufruf einer speziellen Routine, die das Bibliotheksverzeichnis lesen kann, fuer die weitere Bearbeitung mit Hilfe von FCS-Makros zur Verfuegung gestellt. Ansonsten kann eine solche Bibliothek nur mit dem Bibliothekar LBR 1630 bearbeitet werden. 15 Abkuerzungsverzeichnis ---------------------- AS Anschlusssteuereinheit AFP - fuer Festplattenspeicher AFS - fuer Folienspeichereinheit AIP - fuer paralleles Interface AIS - fuer serielles Interface AKP - fuer Kassettenplatten- speicher AMB - fuer Magnetbandspeicher AST Asynchroner Systemtrap BAD (Bad Block Locator Utility) Plattenpruefprogramm BDE Bedieneinheit BRU (Backup and Restore Utility) Datensicherungsprogramm BS Betriebssystem CDA Abbruchanalyseprogramm CLI (Command Line Interpreter) Programm zur Bearbeitung von Kommandos CMP (File Compare Utility) Dateivergleichsprogramm DEP (Debugging Program) Testprogramm DMP (Dump Utility) Dateidruckprogram DSC (Disk Save and Compress) Dateirettungs- und Ver- dichtungsprogramm DSW (Directive Status Word) Anweisungsstatuswort E/A Ein- und Ausgabe EDI Editoren EDT EOF (End of File) Dateiendekennsatz EOV (End of Volume) Datentraegerendekennsatz ERL (Error Logging) Fehlerregistrierung FCB (File Control Block) Dateisteuerblock FCS (File Control Services) Dateizugriffsroutinen FD16 Datensicherungsformat FE16 Global genormte Dateiformate (Dateiformat "established") FEX (File Exchange Utility) Dateiaustauschprogramm FL16 Dateiformat LAOS 1630 FLX (File Transfer Utility) Dateiumwandlungsprogramm FMT (Format Utility) Formatierungsprogramm fuer Magnetplatten FM16 Dateiformat MOOS 1600 und OMOS 1630 FPEM (Floating-point Emulation Program) Gleitkommaemulator FPS Festplattenspeicher FQ16 Lokal genormte Dateiformate (Datenformat "queered") FSE Folienspeichereinheit HDR (Header Label) Dateianfangskennsatz IOX (I/O Exerciser) Allgemeines Geraetestprogramm KBR Kommerzielles Basisrechner- system 16 KMBE Kassettenmagnetbandeinheit KROS Kombinat Robotron Standard KPS Kassettenplattenspeicher LBL Lochbandleser LBN (Logical Block Number) Logische Blocknummer LBR (Librarian Utility) Bibliothekar LC (Location Counter) Speicherplatzzaehler des Assemblers LUN (Logical Unit Number) logische Geraetenummer LP (Line Printer) Zeilendrucker MAC Makro-Assembler MBG Magnetbandgeraet MCR Kommandoprogramm MFD (Master File Directory) Hauptdateiverzeichnis MGS Mikrorechnergeraetesystem MOEX Exekutive des MOOS MOOS 1600 Modulares Operationssystem NP Nutzerprogramm ODT (On Line Debugging Tool) Testprogramm OMEX Exekutive des OMOS OMOS 1630 Optimiertes Modulares Betriebssystem PAR (Page Address Register) Seitenadressregister PAT (Objekt Module Patch Utility) Objektmodul-Korrekturprogramm PC (Program Counter) Befehlszaehler PDR (Page Description Register) Seitenbeschreibungsregister PIP (Peripheral Interchange Dateitransferprogramm Program) PRESRV (Preservation Utility) Duplizier- und Sicherungs- programm PRT (Print spooler) Print-Spooler PS Prozessorstatuswort RAM (Random Access Memory) Speicher mit wahlfreiem Zu- griff SD Seriendrucker SHF (Shuffler) Speicherverdichtungsprogramm SLP (Source Line Processor) Quelltext-Korrekturprogramm SKR System der Kleinrechner SRD (Sort Directory Program) Sortierprogramm fuer Verzeichnisdateien SST Synchroner Systemtrap SVE Speichervermittlungseinheit TKB Taskbilder UFD (User File Directory) Nutzerdateiverzeichnis UIC (User Identification Code) Nutzeridentifikationscode UHL (User Header Label) Benutzereigene Dateikennsaetze UTL (User Trailer Label) UVL (User Volume Label) VBN (Virtual Block Number) Virtuelle Blocknummer VCB (Volume Control Block) Datentraegersteuerblock 17 VFY (File Structure Verification Dateipruefprogramm Utility) VMR (Virtual Monitor Console Virtuelles Kommandoprogramm Routine) VOL (Volume Label) Datentraegerkennsatz ZAP Dateikorrekturprogramm ZVE Zentrale Verarbeitungseinheit 18 Sachwortverzeichnis ------------------- Bibliothek 4,13 " , nutzereigene 8,14 " , universelle 14,15 Bibliothekar 14,15 Cross-Referenz-Liste 7 Cross-Referenz-Task 7 Dateizugriffsroutinen 4 Editionsprogramme EDI und EDT 6,10 Ein-/Ausgaben 4 Exekutiveleistungen 4 EXELIB.OLB 4,13,14 EXEMC.MLB 4,13,14 Fehlerprotokoll 11 FEX, FLX 6 Korrektur mittels PAT 8,11 " " ZAP 8,12 Korrekturdatei 11 Makro 13 Makroassembler 6,10 Makrobibliothek 7,14 Markierung geaenderter Zeilen 10 Objektmodul 7,11 Print-Spooler 7,8 Programmentwicklung 6,8,9 Quellprogrammdatei 7 SLP 6,10 Speicherbelegungsliste 8,11 Symboldefinitionstabelle 8 SYSMAC.SML 4,13 SYSLIB.OLB 4,13 Systembibliotheken 13 Systembibliotheksroutinen 4 Systemmakrobibliothek 4,7,13 Systemobjektmodulbibliothek 4,7,13 Taskabbilddatei 7,11,12 Taskbilder 7,10 Testprogramme DEP und ODT 8,11 Ueberlagerungsbeschreibung 8 Uebersetzungsliste 7,11 Unterprogramm 13 VMLIB.OLB 13,14 19