ANWENDERDOKUMENTATION 10/89 Anleitung für den Programmierer PL1 -Optimierungscompiler Benutzungshinweise PL1 -Optimierungscompiler Benutzungshinweise D0S-4/ES VEB Robotron-Projekt Dresden C3704-0149-2 E0030 MOS D0S-4/ES PL1-0C Benutzungshinweise 10/89 Die vorliegende Anwenderdokumentation wurde von einem Kollektiv des VEB RobotronProjekt Dresden ausgearbeitet« Sie entspricht dem Stand von 10/89. Nachdruck> jegliche Vervielfältigung Auszüge daraus sind unzulässig. Herausgeber: VEB Robotron-Projekt Dresden Leningrader Straße 9 Dresden 8010 oder D0S-4/ES Kurzreferat Dieses Handbuch enthält die für die Arbeit mit dem PL1-Optimierungscompiler (PL1-0C) erforderlichen Informationen. Es ist abgestimmt auf die Version 3.0 des PL1-OC und zugeschnitten auf das Betriebssystem D0S-4/ES, Modifikation 41.10. Das Handbuch ist für Programmierer bestimmt» die PL1 in dem Umfang nutzen wollen» wie die Programmiersprache in der Dokumentation C 3706-0148 PL1-Sprachbeschreibung dargestellt wird. Es handelt sich dabei um eine Implementierung der "vollen Sprache" einschließlich der PL1-Makrospräche. Der implementierte Sprachumfang stimmt im wesentlichen mit dem des PL1-OC im OS/ES überein. Nicht verfügbar sind u.a. folgende Sprachelemente : SELECT-Gruppe> DO UNTIL-Klausel, DO REPEAT-Klausel und LEAVE-Anweisung. Theoretische und praktische Kenntnisse über das D0S-4/ES werden als bekannt vorausgesetzt. PL1-0C Benutzungshinweise 10/89 D0S-4/ES Inhaltsverzeichnis PL1 im Betriebssystem D0S-4/ES .1. PL1 im D0S-4/ES .2. Arbeitsweise des PL1-Compilers .2.1. Prinzipielles zur Arbeitsweise .Z.Z, System- und Programmlogische Geräte .2.3. Steuerung des PL1-Optimierungscompilers bei der Übersetzung .3. Übersetzen von PL1-Quelltexten .3.1. Formen von Übersetzungsaufträgen .3.2. Aufbau eines Objektmoduls .3.3. Nachrichten über die Programmübersetzung .3.4. Resultatcode .4. Programmverbinder CLNKEDT) .5. Programmausführung .5.1. Jobsteueranweisungen für die Programmausführung .5.2. Steuerung des PL1-Optimierungscompilers bei der Programmausführung .5.3. Speicherplatzverwendung .5.4. Nachrichten über die Programmausführung .5.5. Resultatcode 5 5 5 5 5 6 10 11 13 13 14 14 15 15 17 17 18 18 2. 2.1. 2.2. 2.3. Arbeit mit Bibliotheken Katalogisieren von Quelltexten Katalogisieren von Objektmoduln Katalogisieren von Phasen 19 19 20 20 3. Auflistungen 21 4. 4.1. 4.2. 4.3. 4.3.1. 4.3.2. 4.4. 4.5. 4.5.1. 4.5.2. 4.5.3. 4.5.4. Dateien Dateibeschreibung Angabe der Geräte- und Speicherplatzanforderungen Eröffnen und Schließen von Dateien Eröffnen einer Datei Schließen einer Datei Pufferung Dateiorganisationsformen in PL1 Sequentielle Dateien Regional organisierte Dateien (REGIONAL-Dateien) Indexsequentielle Dateien Nutzung der Fernverarbeitungsmethode TAN in PL1-Programmen 25 25 26 26 26 26 26 26 26 29 34 39 5. 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. Verbindung zwischen PL1-Prozeduren und Assembler-Routinen PL1-Umgebung Ablaufsteuerung bei Aufruf eines PL1-Programms Programmabschnitt PLISTART Dynamischer Speicherbereich Aufruf von Assembler-Routinen durch PL1-Prozeduren Aufruf von PL1-Prozeduren durch Assembler-Routinen Argumente und Parameter 40 40 40 41 41 42 44 49 6. 6.1. 6.2. 6.3. Optimierung und effektive Programmierung Hinweise für die Gestaltung effektiver Programme Vom PL1-Optimierungscompiler durchgeführte Optimierungen Effektivitätserhöhung von PL1-Programmen 50 50 50 55 7. 7.1. 7.2, 7.2, 1. 7.2. 2. 7.3. 7.4. Sortierprogrammgenerator CSORT) und PL1-Programme Allgemeines Aufruf des Programms SORT durch eine PL1-Prozedur Aufrufarten des Programms SORT AufrufParameter des Programms SORT Benutzerroutinenanschluß an die Ausgänge E15 und E35 Beispiel für den Aufruf des Programms SORT 58 58 58 58 58 60 60 8. Speicherabzug und Wiederanlauf 63 9. 9.1. 9.2. 9.3. Speicherausdrucke Erzeugung eines PL1-Speicherausdruckes Inhalt der Auflistungen eines Aufrufs von PLIDUMP Lokalisierung von Variablen 64 64 64 65 Anhang 1 Moduln der PL1-Bibliothek 66 Anhang 2 Nachrichten des PL1-Optimierungscompilers (Übersetzung) 77 Anhang 3 Nachrichten des PL1-Optimierungscompilers (Ausführung) 122 Sachwortverzeichnis 129 Literaturverzeichnis 130 PL1-0C Benutzungshinweise JL PL1 im Betriebssystem DQS-4/ES 1.1, PL1 im D0S-4/ES 10/89 D0S-4/ES Im D0S-4/ES stehen zwei Compiler für PL1 zur Verfügung: der PL/I-Subset-Compiler und der PL1-Optimierungscompiler. Der PL1-Optimierungscompiler ist einzusetzen» wenn im PL1-Programm Sprachelemente der PL1-Makrosprache enthalten sind und solche PL1-Objekte sowie' Anweisungen vorkommen> die beim PL/I-Subset-Compiler nicht implementiert sind, wie beispielsweise DEFAULT-Anweisung» Felder» deren Elemente strukturiert sind> rekursive Prozeduren» Attribut VARYING für Kettenvariable» bestimmte Standardfunktionen» Speicherklassenattribut CONTROLLED» DATA-gesteuerte Ein- und Ausgabe. 1.2* Arbeitsweise des PLl-Compilers 1.2.1. Prinzipielles zur Arbeitsweise Der PL1-Optimierungscompiler besteht aus 53 Phasen. Das Laden und Ausführen der Compilerphasen wird durch eine Steuerphase realisiert» die die ganze Zeit im Hauptspeicher verbleibt. Kopien der geforderten Compilerphasen befinden sich nur für die Zeit ihrer Abarbeitung im Hauptspeicher. Eine Ausnahme bildet die Testphase» welche (falls sie verwendet wird) nach der Abarbeitung der Compilerphasen ausgewählte Informationen auf SYSLST ausgibt. Diese Phase verbleibt daher während der gesamten Übersetzungzeit im Hauptspeicher. Der PL1-Optimierungscompiler liest den Quelltext eines Programms und übersetzt ihn in ein äquivalentes Objektprogramm. Der Compiler arbeitet voll in virtueller Umgebung» er benötigt also für seine Arbeit keine eigenen Arbeitsdateien auf externen Speichern. Der interne Seitenwechselalgorithmus ermöglicht ihm» Verzeichnisse» Tabellen und den zu verarbeitenden Text im Programmbereich zu speichern. Das beschleunigt die Obersetzung erheblich» außerdem braucht der Anwender keine Arbeitsdateien zuzuweisen oder anzulegen. Der Compiler arbeitet ausschließlich mit Systemdateien. Den Quelltext liest er von SYSIPT» den Objektmodul speichert er gewöhnlich in dem Systembereich SYSLNK oder gibt ihn auf dem logischen Gerät SYSPCH aus. Das Übersetzungsprotokoll wird auf SYSLST ausgegeben. Informationen über die standardmäßigen Zuweisungen der Systemdateien sowie über die möglichen expliziten Zuweisungen durch den Anwender sind in El] enthalten. Das im D0S-4/ES integrierte System der indirekten Ein- und Ausgabe (POWER) bietet dem Anwender zusätzliche Möglichkeiten» z.B. mehrfache Ausgabe der Drucklisten» Korrektur von Texten durch den Editor. Die Übersetzung eines Quellprogramms erfolgt stets schrittweise» wesentliche Übersetzungsschritte sind: - Organisation der Übersetzung» syntaktische Analyse und Behandlung von Vereinbarungen» Auflösung der Programmstruktur und Erzeugung von internen Makroinstruktionen» Ausgabe von Nachrichten und Auflistungen» Speicherorganisation» Erzeugung und Ausgabe des Objektmoduls. Der PL1-Optimierungscompiler generiert während der Übersetzung nicht für alle PL1-Anweisungen äquivalente Maschinenbefehle. Häufig auftretende Funktionen werden durch Bezugnahmen auf residente Moduln der PL1-Bibliothek ersetzt. Sie werden durch den Programmverbinder automatisch in den Objektmodul eingefügt und bilden mit diesem eine Phase. Die Benutzung schwacher externer Bezugnahmen (WXTRN) ermöglicht» daß der Programmverbinder nur die wirklich benötigten residenten Moduln anschließt. Für diese generiert der Compiler weitere externe Bezugnahmen» die das Verbot des automatischen Anschließens der Moduln für WXTRN-Bezugnahmen aufheben. Beim Starten der erzeugten Phase rufen die residenten Moduln weitere PL1-Moduln auf. Diese Moduln (Transientmoduln) bilden die verschiebliche Transientphase IÜTGTRAN. Die Transientphase wird bei der Initialisierung der PL1-Umgebung auf die erste freie Adresse im Speicher geladen. Die Verzweigung in die einzelnen Moduln wird über externe Symbole realisiert. 1.2.2. System- und Programmlogische Geräte Für die Arbeit mit PL1 sind folgende systemlogische Geräte des D0S-4/ES wesentlich: SYSRES - Systemresidenz» System-Phasenbibliothek SYSRDR - (beliebiges) Eingabegerät» das zur Eingabe von kleinen Datenmengen dient» gewöhnlich zur Eingabe von Steueranweisungen SYSIPT - (beliebiges) Eingabegerät» das zur Eingabe von größeren Datenmengen dient» beispielsweise PL1-Quelltext oder zu verarbeitende Daten SYSPCH - Ausgabegerät» das zur Datenausgabe im Kartenformat verwendet werden kann SYSLST - Ausgabegerät* das zum Druck des Protokolls dient SYSLOG - Bedieneinheit oder Drucker zur Protokollierung der Steueranweisungen und zur Ausgabe von Systemnachrichten SYSSLB - Platte mit der privaten Quelltextbibliothek SYSRLB - Platte mit der privaten Modulbibliothek SYSCLB - Platte mit der privaten Phasenbibliothek SYSPLB - Platte mit der privaten Prozedurbibliothek PL1-0C Benutzungshinweise D0S-4/ES 10/89 Die Programmlogischen Geräte des D0S-4/ES werden mit SYS000 bis SYS199 bezeichnet; ihnen können beliebige physische Geräte zugewiesen werden. Die Standardzuweisung von physischen zu logischen Geräten ist durch den Inhalt des PARAMSBuches gegeben. Beim Aufstellen eines Auftrages wird ein entsprechendes PARAMS-Buch in der den Auftrag einleitenden BATCH-Anweisung angegeben. 1.2.3. Steuerung des PL1"Optimierungscompilers bei der Übersetzung Die Parameter der Jobsteueranweisung OPTION und die Optionen der PL1-spezifischen Steueranweisung * PROCESS werden vom PL1-Compiler ausgewertet und zur Steuerung der Arbeit des Compilers herangezogen. Die Jobsteueranweisung OPTION hat folgendes Format: [//] OPTION Parameter[»parameter ... 1 Folgende Parameter der OPTION-AnWeisung sind für die Arbeit mit PL1 wesentlich: [NOlSKIP [Spardruck oder! Normaldruck auf virtuellem Drucker SYSLST [NO1ALIGN Die Konstanten beginnen [nicht] an integralen Grenzen. [N01DECK Die vom werden. [N01SYM Auf SYSLST sollen [nicht] die Symboltabelle, die Liste der externen Symbole> die Liste der relativen Adressen und die Blocktabelle ausgegeben werden. [NO1LIST Das Obersetzungsprotokoll soll [nicht] auf SYSLST ausgegeben werden. [NOlXREF Der Symbolnachweis soll [nicht] ausgegeben werden. [N01LISTX Der Objektmodul- soll [nicht] in assemblerähnlicher Form auf SYSLST ausgegeben werden. [NO1CRRCT Bei Verwendung des SOUR-Parameters in der EXEC-Anweisung können von SYSIPT Korrekturkarten zur temporären Modifizierung des Quelltextes [nicht] eingegeben werden. [NOIERRS Nachrichten bezüglich syntaktischer Fehler über SYSLST ausgegeben werden. [NO1LINK Der vom PL1-Compiler erzeugte Modul soll [nicht] in den den Programmverbinder CSYSLNK) ausgegeben werden. [NOlCATAL Die vom Programmverbinder CATAL schließt LINK ein. NODUMP Es soll kein Protokoll des Hauptspeicherinhaltes ausgegeben werden. DUMP Nach Programmbeendigung auf Grund eines Fehlers soll ein erweitertes Protokoll des momentanen HauptspeicherInhaltes auf SYSLST ausgegeben werden. [NOILOG Steueranweisungen von Systemprogrammen sowie Informationen über Aktionen der Jobsteuerung sollen [nicht] auf SYSLOG protokolliert werden. SUBLIB=x Festlegen der dard: x=A) PL1-Compiler erzeugten Moduln sollen [nicht] auf SYSPCH ausgegeben im PLl-Quelltext sollen [nicht] Arbeitsbereich für erzeugte Phase soll [nicht] katalogisiert werden. Teilbibliothek der Quelltextbibliothek (Stan- SYSPARM=zeichenkette - Eine "zeichenkette11, bestehend aus 0-16 führende Programm zu übermitteln ist. Zeichen» die an das auszu- 48C, 60C zu benutzenden Der PLl-Quelltext wurde im 48-/60-Zeichensatz formuliert Die PL1-spezifische Steueranweisung hat folgendes Format: * PROCESS [op-bionC ,Option]... U Das Sternzeichen muß in Spalte 1 stehen. Die Liste der Optionen kann bis einschließlich Spalte 71 reichen. Für eine externe Prozedur können mehrere PROCESS-SteueranWeisungen angegeben werden. Für alle Optionen sind bestimmte Standards durch die Implementierung des PL1-Compilers festgelegt. PL1-0C Benutzungshinweise 10/89 D0S-4/ES Folgende Optionen können zur Steuerung des PL1-Optimierungscompilers verwendet werden: Option Abkürzung Standardannahme COMPILE|NOCOMPILE[(<W|EIS>)3 CQNTROLC'kennwort1) COUhTTlNOCOUNT INCLUDEINOINCLUDE CATALC'name') OPTC<0|2>)|NOOPT|OPTCTIME) SIZEC{nl|n2KI-n3|-n4K|MAX>) SYNTAX 1NOSYNTAXCC<WIE1S>)I CINC NOCOMPILECS) SZ SYNINSYN OPTCO) SIZE(MAX) NOSYNTAXCS) für den Makrointerpreter MACROINOMACRO MACDCKINOMACDCK MINM MDINMD NOMACRO NOMACDCK für die Eingabe CHARSETC[48160 3)E,1CDK0I|BCD3) es SEQUENCE(n1,n 2)|NOSEQUENCE SEQINSEQ für die Steuerung - CTINCT INC ININC N NOCOUNT NOINCLUDE 1 CHARSETC60,DKOI) F-Format: SEQUENCE(73,80) V/U-Format: SEQUENCE C1,8) F-Format: SORMGINC2,72,1) V/U-Format: SORMGINC10,100,0) SORMGINCnl,n2[,n3 3) SM für die Ausgabe DECKINODECK LOAOINOLOAD DIND LDINLD NODECK LOAD für AGGREGATE 1NOAGGREGATE ATRINOATR CLINE1NOCLINE CSTMTINOCSTMT EXTREFINOEXTREF FLAG[C<I|W|E|S>)3 FLOWlCnl,n2)3|NOFLOW LINEINOLINE LINECNTCn) LISTECnlC,n23)3!NOLIST LMESSAGE|SMESSAGE MAPINOMAP MARGINIC'z']|NOMARGINI NESTINONEST OFFSETINOOFFSET OPLISTINOOPLIST SOURCEINOSOURCE S0URCE2IN0S0URCE2 STMTINOSTMT STORAGE)NOSTORAGE XREFINOXREF AG 1NAG AiNA AGGREGATE - NOCLINE Auflistung EINE F LC LINL . LMSGISMSG MI NMI NT NNT OF NOF OLINOL SINS S2INS2 - STGENSTG XiNX ATR csnfr NOEXTREF FLAGCI) FLOWC25,10) NOLINE LINECNT(60) NOLIST LMESSAGE NOMAP NOMARGINI NEST OFFSET OPLIST SOURCE SOURCE2 NOSTMT NOSTORAGE XREF 1 EGATE I NOAGGREGATE H e Option AGGREGATE bewirkt, daß für alle Felder und Strukturen unter der Überschrift AGGREGATE MAP das Niveau der Strukturbezeichnungen, die Dimensionsanzahl der Felder, die relativen Adressen der Unterstrukturen und Strukturelemente, die Längen der Elemente sowie die Gesamtlängen in Bytes ausgegeben werden. ATR I NOATR Die Option ATR bewirkt, daß unter der Überschrift ATTRIBUTE TABLE ein Symbolverzeichnis ausgegeben wird. Es enthält alle im Quellprogramm vereinbarten Bezeichnungen mit den zugehörigen Attributen. Bei Angabe von ATR und XREF werden Symbolverzeichnis und Symbolnachweistabelle kombiniert. CATALC'name1) Die Option CATAL bewirkt, daß unmittelbar vor den Objektmodul eine CATALR-Anweisung geschrieben wird. Das Programm CATMOD gestattet den so vorbereiteten Objektmodul unter dem in der Option angegebenen Namen in eine Objektmodulbibliothek zu katalogisieren. CHARSETC[481603[,3EDK0I1BCD3) Mit Hilfe der Option CHARSET gibt man Zeichensatz und Daten-Code an, die beim Aufstellen des Quellprogramms benutzt wurden. Wenn CHARSETC60) wirksam ist, muß das Quellprogramm im 60-Zeichensatz geschrieben sein. Wenn CHARSET(48) wirksam ist, kann das Programm sowohl im 48-Zeichensatz als auch im 60-Zeichensatz geschrieben sein. CLINE I NOCLINE 1. Wirkung für PLl-Quelltext: Bei Wirksamkeit der Option CLINE werden in den Listen, die sich aus den Optionen SOURCE, ATR, XREF, AGGREGATE, OFFSET, LIST, FLOW und COUNT ergeben, und in den Fehlernachrichten zur Übersetzungszeit Zeilennummern zur Identifikation von PL1-Anweisungen oder -Klauseln verwendet. Ist NOCLINE wirksam, so werden die Nummern der lückenlos numerierten Anweisungen/Klauseln verwendet. Die Zeilennummern werden aus den Folgenummern abgeleitet. Der Bereich der Quelltextsätze, der die Folgenumerierung enthält, kann durch die SEQUENCE-Option angegeben werden. Fehlt diese Option, so werden standardmäßig folgende Annahmen für die Positionen der Folgenumerierung gemacht: PL1-0C Benutzungshinweise 10/89 D0S-4/ES - Positionen 73 bis 80 - bei fester Satzlänge (Man beachte» daß die Makrointerpreterausgabe immer feste Satzlänge hat und SEQUENCEAngaben für die Makrointerpretereingabe immer in SEQUENCE(73»80) für die Ausgabe resultieren. ) - Positionen 1 bis 8 - bei variabler und Undefinierter Satzlänge Erstreckt sich die Folgenumerierung über mehr als 5 Positionen» so werden nur die rechten 5 Zeichen bei der Berechnung der Zeilennummern berücksichtigt (ansonsten alle angegebenen Positionen). Bei aufsteigender Folgenumerierung ergeben sich die Zeilennummern aus den maximal 5 rechten Positionen der Folgenumerierung. Im anderen Fall garantiert der Compiler eine aufsteigende Numerierung der Zeilen. Die Zeilennummer kann maximal 8stellig werden. Größere Zeilennummern werden von links her abgeschnitten. 2. Wirkung für PL1-Makro-Quelltext: Für die Makrointerpreter-Quelltextauflistung und Nachrichten» die diesen Quelltext betreffen» wird» falls CLINE wirksam ist» die Folgenumerierung als Bezugnahme in anderen Makrointerpreter-Fehlernachrichten verwendet. Als Bezugnahme auf Quelltextsätze» die nur Leerzeichen als Folgenummerangabe enthalten» wird in Fehlernachrichten "L zeilennummer" benutzt. Ist NQCLINE wirksam» so wird die Nummer des Eingabesatzes als Bezugnahme verwendet. COMPILE I NOCOMPILE U<WlEfS>)3 Von diesen Optionen hängt die Durchführung des Übersetzungslaufes ab. COMPILE bewirkt» daß die Übersetzung unabhängig von gefundenen Fehlern (außer Abbruchfehlern) durchgeführt wird. NOCOMPILE ohne Argument bewirkt» daß die Verarbeitung nach der Syntaxanalyse abgebrochen wird. Die Angabe eines Arguments W» E oder S legt den Fehlergrad fest» ab dem die Übersetzung nicht durchgeführt wird. CONTRQLC'kennwort') Bei der Implementierung des Compilers können CompilerOptionen für die Anwendung gesperrt werden. Mit Hilfe der Option CONTROL ist es möglich» gesperrte Optionen für die Übersetzung verfügbar zu machen. In der Liste der Optionen ist in diesem Fall CONTROL als erste anzugeben. Das 'kennwort1 darf maximal 8 Zeichen lang sein und wird bei der Implementierung festgelegt. Nur einem befugten Personenkreis ist es damit gestattet» eine gesperrte Option wieder verfügbar zu machen. COUNT 1 N0C0UNT Bei Wirksamkeit der Option COUNT erzeugt der Compiler Zähler» mit denen die Häufigkeit der Ausführung jeder Anweisung/Klausel während der Programmabarbeitung ermittelt wird. Die Option COUNT impliziert - die Option STMT» falls CSTMT wirksam ist» - die Option LINE» falls CLINE wirksam ist. csmr i NOCSTMT 1. Wirkung für PLl-Quelltext: Wenn die Option CSTMT wirksam ist» werden die Anweisungen und Klauseln im Quellprogramm numeriert. Jede Nummer bezieht sich auf den Quelltext bis zum nächsten Semikolon. Schließt eine END-Klausei mehrere Blöcke/Gruppen ab» so werden die eingefügten END-Klauseln bei der Numerierung berücksichtigt. Diese Nummern werden in den Listen verwendet» die aufgrund der Optionen AGGREGATE, ATR, LIST, OFFSET, SOURCE, XREF, FLOW und COUNT ausgegeben werden. CSTMT wird durch NOCLINE und STMT impliziert« Wenn NOCSTMT angegeben ist» werden CLINE und NOSTMT impliziert. 2. Wirkung für PLl-Makro-Quelltext: Bei Wirksamkeit der Option CSTMT wird für Bezugnahmen in Makrointerpreter-Fehlernachrichten die Nummer des Quelltextes verwendet. DECK I NODECK Die Angabe der Option DECK bewirkt» daß der Objektmodul im Format von 80spaltigen Lochkarten auf SYSPCH ausgegeben wird. Die Spalten 73 bis 76 enthalten die ersten vier Zeichen des ersten Eingangsnamens der externen Prozedur. Die Spalten 77 bis 80 enthalten eine laufende Nummer. EXTREF 1 NOEXTREF Die Option EXTREF bewirkt* daß unter der Überschrift zeichnis der externen Symbole ausgegeben wird. EXTERNAL SYMBOL DICTIONARY ein Ver- FLAGC(<IIWIEIS>)3 Werden vom Compiler oder Makrointerpreter Fehler entdeckt» so werden diesbezügliche Nachrichten nach ihrer Schwere geordnet ausgegeben. Die Angabe W» E oder S in der Option FLAG legt den Fehlergrad fest» von dem ab entsprechende Nachrichten ausgegeben werden sollen. FLAGCD gibt an» daß alle Nachrichten ausgegeben werden. FLOW[(nl>n2)3 1 NOFLOW Wenn die Option FLOW wirksam ist» erzeugt der Compiler Code für die Protokollierung von Verzweigungen während der Programmausführung. nl ist die maximale Anzahl von Eintragungen in der Liste. Übersteigt die Anzahl der zu protokollierenden Sprünge nl» so werden die n? zuletzt ausgeführten Sprünge protokolliert. Standard für nl ist 25. n2 ist die maximale Anzahl von Blockübergängen bei der Ausführung der Verzweigungen. Standard für n2 ist 10. Weder nl noch n2 darf größer als 32767 sein. PL1-0C Benutzungshinweise 10/89 D0S-4/ES INCLUDE 1 NOINCLUDE Enthält derQuelltext nur XINCLUDE-Anweisungen und keine Makrointerpreter-Anweisungen» so kann die Option INCLUDE statt MACRO verwendet werden. Weil dadurch keine Textdurchmusterung nach anderen Makrointerpreter-Anweisungen erfolgt, ist INCLUDE in diesem Falle gegenüber MACRO vorzuziehen. 1 NOLINE ie Option LINE bewirkt» daß in Ausführungszeit-Nachrichten die numerische Kennzeichnung der Anweisungen im Quelltext eingefügt wird» die aufgrund der Option CLINE gebildet wurde« Wenn LINE angegeben ist» werden CLINE» NOCSTKT und NOSTMT impliziert. LINECNTCn) Mit Hilfe fe der Option LINECNT gibt man die maximale Anzahl der Zeilen an» pilerauflistung ausgegeben werden kann» bevor ein Seitenvorschub erfolgt, n ist die Zeilenanzahl, n darf nicht größer als 32767 sein. Kopfzeilen und Leerzeilen sind inbegriffen. die für jede Com- LISTECnl_[,n2])l 1 NOLIST Die Optxion LIST bewirkt» daß der Objektmodul unter der Überschrift OBJECT MODULE LISTING in einer assemblerähnlichen Form ausgegeben wird. nl/n2 Nummer der ersten/letzten Quelltextanweisung» für die diese Auflistung erfolgen soll. Wurde n2 nicht angegeben» so wird nur die Auflistung für die Anweisung nl ausgegeben. Wenn die Option CLINE wirksam ist» müssen nl und n2 als Folgenummern 9zur Kennzeichnung der Anweisungen angegeben werden» sofern LIST verwendet wird* MESSAGE I SMESSAGE ie Option LMESSAGE/SMESSAGE bewirkt die Ausgabe der Nachrichten in der Langform/Kurzform. I NOLINK )ie Option LINK veranlaßt den Compiler» den Objektmodul in der Form in die Datei SYSLNK auszugeben» wie sie zur Verarbeitung vom Programmverbinder verlangt wird. MACDCK I NOMACDCK Die Option MACDCK bewirkt» daß der vom PL1-Makrointerpreter erzeugte Quellmodul kartenformat auf SYSPCH ausgegeben wird. Bei NOMACRO wird die Option MACDCK ignoriert. im Loch- MACRO I NOMACRO Die Option MACRO ist anzugeben» wenn der PL1-Makrointerpreter benutzt werden soll« MAP I NOMAP MAP bewirkt die Ausgabe von Tabellen» die die Speicherorganisation des Objektmoduls betreffen. Sie geben an» wie die Variablen im statischen Speicher und in den dynamischen Speicherbereichen gespeichert werden. Diese Angaben können verwendet werden» um in einem Hauptspeicherausdruck AUTOMATIC» und INTERNAL STATIC-Variablen zu lokalisieren. Ist gleichzeitig die Option LIST angegeben» so werden neben dem Objektmodul in assemblerähnlicher Form weitere Tabellen ausgegeben» die Steuerblocke» Konstanten und INITIAL-Werte von Variablen enthalten. MARGINIC'z') I NOMARGINI Wenn die Option MARGINI wirksam ist» werden die Zeilen des PL1-Quelltextes (oder die Ausgabe des Makrointerpreters) links und rechts durch das Zeichen 'z1 begrenzt. Nur der Text zwischen den beiden Zeichen 'z* wird dem Compiler zur Übersetzung angeboten. NEST 1 NONEST Die Option NEST bewirkt» daß in der Liste des Quelltextes für jede Anweisung und Klausel unter der Überschrift LEV das Blockniveau und unter der Überschrift NT die Schachtelungstiefe von Gruppen ausgegeben wird. OFFSET I NOOFFSET Die Option OFFSET veranlaßt, daß für jede Prozedur unter der Überschrift OFFSET LISTING FOR STATEMENTS eine Tabelle ausgegeben wird» die Hexadezimaladressen des Objektmoduls relativ zum primären Eintrittspunkt sowie die zugehörigen Anweisungsnummern oder Zeilennummern enthält. OPLIST j NOOPLIST Die Option OPLIST bewirkt» daß unter der Überschrift OPTIONS LISTING eine Liste aller für die Übersetzung wirksamen CompilerOptionen ausgegeben wird. OPTC<012>) I NOOPT 1 OPTCTIME) Die Option OPT gibt die Zielstellung an» nach der die Code-Erzeugung vom Compiler vorzunehmen ist. OPT(O) oder NOOPT: Keine besondere Optimierung OPT(2) oder OPT(TIME): Der erzeugte Code wird bezüglich der Ausführungszeit optimiert. Dabei kann zusätzlich eine Reduzierung des HauptSpeicherbedarfs auftreten. Gegenüber der Option OPT(O) kann die Übersetzungzeit anwachsen. SEQUENCECnl,n2) 1 NOSEQUENCE Die Option SEQUENCE gibt die Positionen in den Eingabesätzen an» die eine Folgenummer enthalten. nl/n2 Nummer der ersten/letzten Spalte des Folgenummern-Feldes Falls die Option CLINE wirksam ist, wird aus diesen Folgenummern die Numerierung des Anweisungen abgeleitet. Standard für Sätze fester Länge: SEQUENCE(73,80) Standard für Sätze variabler oder Undefinierter Länge: SEQUENCE(1,8) PL1-0C Benutzungshinweise 10/89 DQS-4/ES SORMGIN(nl,n2[,n5 3) fe der Option SORMGIN wird der Teil des Eingabesatzes beschrieben» der den PL1-QuellMit Hilfe text enthält. Außerhalb dieser Begrenzung liegender Text ist in der Auflistung des Quelltextes enthalten» wird vom Compiler aber nicht verarbeitet. nl/n2 gibt die Nummer des ersten/letzten Bytes des Quelltextes im Eingabesatz an. Ist n3 -= 0, so gibt dieser Wert die Position im Quelltext an> die ein Drucker-Steuerzeichen enthält. Ist n3 = 0» so wird angenommen» daß kein Drucker-Steuerzeichen im Quelltextsatz enthalten ist. Wird n3 nicht angegeben» wird das Steuerzeichen in der 1. Position erwartet. Bedingungen: nl £ n2 £ 100 n3 > nl oder n2 > n3 nZ < 100 Standard für Sätze fester Länge: SORMGINC2,72,1) Standard für Sätze variabler und Undefinierter Länge: SORMGINC10,100,0) Die gültigen Drucker-Steuerzeichen sind: b einzeiliger Vorschub vor dem Drucken 0 zweizeiliger Vorschub vor dem Drucken dreizeiliger Vorschub vor dem Drucken 1 Beginn einer neuen Seite Mit den PL1-spezifischen Steueranweisungen XSKIPtm]) und XPAGE; können in den Auflistungen des Quelltextes auch Vorschübe erreicht werden. SOURCE I NOSOURCE Die Option SOURCE bewirkt, daß der dem Compiler angebotene Quelltext COMPILER SOURCE LISTING aufgelistet wird. unter der Oberschrift SOURCE2 1 NOSOURCE2 Die Option SOURCE2 bewirkt, daß der PLl-Makro-Quelltext unter der Überschrift PRETER INPUT aufgelistet wird. Wenn MACRO nicht angegeben ist, wird SOURCE2 ignoriert. STMT 1 NOSTMT Die Option ;ion STMT bewirkt, daß werden. MACROINTER- in Ausführungszeit-Nachrichten die Anweisungsnummern eingefügt STORAGE 1 Aufgrund der Option STORAGE wird unter der Überschrift STORAGE REQUIREMENTS ausgegeben, die die Speicherplatzanforderungen für den Objektmodul enthält. eine Tabelle SYNTAX 1 NOSYNTAXU<W|EIS>)3 Von diesen Optionenist die Durchführung der Syntaxanalyse abhängig. Vor der Syntaxanalyse erfolgt, falls angefordert» der Makrointerpreterlauf und die Zeichen-Transformation des Textes vom 48-Zeichensatz in den 60-Zeichensatz. SYNTAX bewirkt, daß die Syntaxanalyse durchgeführt wird, außer wenn beim Makrointerpreterlauf Abbruchfehler (Fehlergrad U) aufgetreten sind. N0SYNTAX ohne Argument bewirkt» daß die Verarbeitung vor der Syntaxanalyse abgebrochen wird. Die Angabe eines Argumentes W, E oder S legt den Fehlergrad fest» ab dem die Syntaxanalyse nicht durchgeführt wird. XREF I NOXREF Die Option XREF bewirkt, daß unter der Überschrift CROSS-REFERENCE TABLE eine Symbolnachweistabelle ausgegeben wird. Sie enthält die im Quellmodul vereinbarten Bezeichnungen und die Nummern der Anweisungen oder Klauseln bzw. der Zeilen, in denen auf sie Bezug genommen wird.^Bezugnahmen auf Marken oder ENTRY-Konstanten in END-KlauseIn werden in der Tabelle nicht berücksichtigt. Bei Angabe von XREF und ATR werden Symbolnachweistabelle und Symbolverzeichnis kombiniert. 1.5. übersetzen von PL1-Quelltexten Der PL1-Quelltext wird gewöhnlich zunächst auf spezielle Programmformulare geschrieben. Bezüglich der Raumaufteilung des PL1-Programmformulars müssen folgende Regeln beachtet werden: Spalte 1 In dieser Spalte wird eines der vier Zeichen b, 0, - oder 1 als Drucker-Steuerzeichen akzeptiert. Das jeweilige Zeichen wird vom Drucker bei der Ausgabe des Übersetzungsprotokolls berücksichtigt. Spalten 2 bis 72 In diesen Spalten wird das PL1-Programm niedergeschrieben und vom PL1-Compiler erwartet. Spalten 73 bis 80 In diesen Spalten kann eine Numerierung der Zeilen/Sätze des PL1-Quelltextes vorgenommen werden• Der PL1-Quelltext» der übersetzt werden soll, ist auf SYSIPT bereitzustellen. Zur Übersetzung von PL1-Quelltexten wird der PL1-Compiler über den Phasennamen "PLI", der in einer EXEC-Anweisung anzugeben ist, aufgerufen. 10 PL1-0C Benutzungshinweise 10/89 D0S-4/ES 1.3.1. Formen von übersetzunasaufträaen Quelltext als Kartenstapel Wenn auf SYSIPT eine externe Prozedur in Form eines Kartenstapels und die Jobsteueranweisungen auch in Kartenform vorliegen» ferner SYSRDR und SYSIPT dem gleichen (virtuellen) Kartenleser zugeordnet sind» kann zur Übersetzung ein Auftrag nach folgendem Muster gegeben werden: // [// // // BATCH auftragsnamet, ... 1 JOB jobnamel OPTION Parameter EXEC PLI * PROCESS Optionen» pll-quelltext_einer_externen_Prozedur /* weitere Jobschritte /&& Quelltext als Kartenstapel» enthält mehrere externe Prozeduren Sollen bei einem Aufruf des PLI-Compilers mehrere externe Prozeduren (ein "Stapel" von externen Prozeduren) übersetzt werden» müssen diese durch mindestens eine PROCESS-Anweisung voneinander getrennt werden. Zur Übersetzung kann ein Jobschritt nach folgendem Muster gegeben werden: // OPTION Parameter // EXEC PLI K PROCESS [Optionen]; . pll-quelltext_der_l._externen_prozedur * PROCESS [Optionen!5 . pll-quelltext_der_2._externen_j>rozedur * PROCESS [Optionen], • pll -quelltext__der__3 ,_externen_prozedur /* Quelltext in der RDR-Schlange Wenn der PLI-Quelltext als Datenstapel in der RDR-Schlange bereitsteht» kann zur Übersetzung ein Auftrag nach folgendem Muster gegeben werden: // [// // // // BATCK auftragsnameE>...3 JOB jobnamel OPTION Parameter ASSGN SYSIPT,DATA=name EXEC PLI weitere Jobschritte Quelltext in der Quelltextbibliothek Wenn der PLI-Quelltext als Buch in einer Quelltextbibliothek vorliegt» kann zur Übersetzung ein Auftrag nach folgendem Muster gegeben werden: // [// [// // // BATCH auftragsname»[PARAMS=]name JOB jobnamel ASSGN SYSSLB,VOL=volser,'dateiname'] OPTION SUBLIB=x EXEC PLI,[SOUR=]buchname weitere Jobschritte 11 PL1-0C Benutzungshinweise 10/89 DOS-4/ES Quelltext in der Quelltextbibliothek und Quelltextmodifizieruna Wenn der PL1-Quelltext als Buch in einer Quelltextbibliothek vorliegt und vor der Obersetzung temporär modifiziert werden soll» kann zur Übersetzung ein Auftrag nach folgendem Muster gegeben werden: // [// // // BATCH auftragsname,[PARAMS=JnameC,...] ASSGN SYSSLJB,VOL=volser,1dateiname1 3 OPTION CRRCT,SUBLIB=x EXEC PLI,ISOUR=]buchname • daten_fiir__die_modif izierung_des_buchs /* weitere Jobschritte /ÄÄ Bemerkung: Die Korrektur des im Buch mit dem Namen "buchname" stehenden Quelltextes erfolgt mit Daten, wie sie für die CRRCT-Anweisungen des Programms LIBR anzugeben sind. Für folgende Aufgaben der Textänderung stehen Steueranweisungen zur Verfügung: - Hinzufügen von Quelltextsätzen ) ADD nr Es folgen (beispielsweise auf Karte) die der Identifikation "nr" einzufügen sind. Quelltextsätze> die nach dem - Ersetzen von Quelltextsätzen ) REP nrlC,nr2l Es folgen (beispielsweise Mauf Karte) die Quelltextsätze» Grenzen zwischen "nrl" und nr2" ersetzen. Quelltextsatz mit die die Quelltextsätze in den - Löschen von Quelltextsätzen ) DEL nrl[fnr2l Die Quelltextsätze in den Grenzen zwischen "nrl11 und "nr2" werden gelöscht. - Ersetzen von Anweisungsteilen ) EXC nr^numlj'text1 Im Quelltextsatz mit der Identifikation "nr" werden die ab Spalte "numl" stehenden Zeichen in der Länge von "text" durch "text" ersetzt. oder ) EXC nr>numl>num2>'text1 Im Quelltextsatz mit der Identifikation "nr" werden die ab Spalte "numl" stehenden Zeichen in der Länge von "num2" durch "text" ersetzt. - Hinzufügen oder Ersetzen von Quelltextsätzen ) MIX Es folgen Quelltextsätze mit Identifikation. Gemäß der angegebenen Identifikation werden dadurch die im entweder ersetzt» oder es werden Sätze hinzugefügt. Quelltextbuch stehenden Sätze - Ende der Korrektur ) END Quelltext in Quelltextbibliothek» wird über XINCLUDE-Anweisung bereitgestellt Die /^INCLUDE-Anweisung hat folgendes Format: XINCLUDE ... Spezifikation[»Spezifikation! ...3 mit: Spezifikation ::= teilbibliothek(buchname) I buchname Wenn der PL1-Quelltext als Buch/Bücher in einer Quelltextbibliothek Übersetzung ein Auftrag nach folgendem Muster gegeben werden: // BATCH auftragsname>[PARAMS=lname[,...] // OPTION SUBLIB=x // EXEC PLI * PROCESS INCLUDE, . pll-quelltext XINCLUDE buchname_l; XINCLUDE buchname_2i XINCLUDE teilbibliothekCbuchname_3)j /* weitere Jobschritte /&& 12 vorliegt» kann zur PL1-0C Benutzungshinweise 10/89 D0S-4/ES 1.5.2. Aufbau eines Obiektmoduls Der PL1-Optimierungscompiler erzeugt aus jeder externen PL1-Prozedur einen Objektmodul» der auf SYSLNK und/oder SYSPCH ausgegeben wird und durch den Programmverbinder weiterverarbeitet werden kann. Objektmoduln sind verschieblich und unterscheiden sich physisch von den ausführbaren Programmen (Phasen)» während sie in ihrer logischen Struktur mit diesen übereinstimmen. Die Objektmoduln bestehen aus einer Reihe von Sätzen» die im Kartenformat aufgebaut sind und folgenden Inhalt haben: - Verzeichnis der externen Symbole Text Verzeichnis der Verschiebungsinformationen eine Ende-Information CESD) (DO 1 ) (RLD) (END) Verzeichnis der externen Symbole Das Verzeichnis der externen Symbole besteht aus einer Folge von Eintragungen» durch welche die Programmverbindungstechnischen Einheiten eines Objektmoduls beschrieben werden. Durch Angabe der Compileroption EXTREF erhält der Programmierer eine Auflistung» die das ESD-Verzeichnis in übersichtlicher Form enthält. 3er Text (TXT) eines Objektmoduls» den der PLl-Optimierungscompiler ausgibt» besteht aus folgenden Programmabschnitten: - Befehlsprogrammabschnitt. Er enthält die aus dem PL1-Quellmodul erzeugten ausführbaren Maschinenbefehle und kann über Option LIST ausgegeben werden. - STATIC INTERNAL-Programmabschnitt. Er enthält Konstanten» Adressen und STATIC-Variablen und kann über Option MAP ausgegeben werden. - Programmabschnitte für Verwaltungsfunktionen: PLISTART ist der Eingangspunkt für die ausführbare Programmphase und übergibt die Steuerung an die Initialisierungsroutine. PLU1AIN enthält die Adresse des Eingangspunktes der Hauptprozedur und wird daher nur für die Prozeduren mit OPTIONS(MAIN) erzeugt. Das ist die Adresse» zu der die Bibliotheksinitialisierungsroutine verzweigt» wenn die Initialisierung erfolgt ist. Sie wird in der Objektprogrammauflistung mit "REAL EHTRY" markiert. Ist PLIMAIN für zwei Prozeduren angegeben» die zusammen ausgeführt werden sollen» wird die Steuerung der zuerst von Programmverbinder bearbeiteten Prozedur übergeben (wenn nicht durch Programmverbinderanweisungen anders festgelegt). PLICOUNT wird erzeugt» wenn COUNT angegeben ist. PLIFLOW wird erzeugt» wenn FLOH angegeben ist. - STATIC EXTERNAL-Programmabschnitt. Wird für jede externe Variable» Datei und Prozedur angelegt. - Programmabschnitte für jede im Programm geschriebene ON-Bedingung und jede vom Compiler erzeugte Subroutine. - Pseudoregistervektor. Das ist ein externer Pseudoabschnitt» der zum Adressieren von FILEDaten und CONTROLLED-Variablen benutzt wird. Arbeitsspeicher und Speicher für AUTOMATIC-Variablen werden während der Ausführung durch den Prolog» der zu Beginn jedes Blockes ausgeführt wird» bereitgestellt« Verzeichnis der VerschiebungsinformatJonen Das Verzeichnis der Verschiebungsinformationen (RLD) enthält die Steuerinformationen zur ProgrammverSchiebung. Die Steuerinformation gestattet die Bestimmung absoluter Adressen in der Programmphase und die Festlegung einer Startadresse. Zur Ausführungszeit wird der Speicherplatz im Hauptspeicher wie folgt adressiert: - Namen» die nur in einem Programmabschnitt verwendet werden» haben Adressen relativ zum Eingangspunkt des Programmabschnittes. - Externe Namen haben absolute Adressen» so daß sich jeder Programmabschnitt auf sie beziehen kann. Ende-Information Die Ende-Information kennzeichnet das Ende des Objektmoduls» und sie verweist auf den vom Compiler erzeugten Programmabschnitt PLISTART als den Eingangspunkt für die ausführbare Programmphase. 1.3.3. Nachrichten über die Proarammübersetzuna Bei der Programmübersetzung können über SYSLST Nachrichten des PL1-Optimierungscompilers ausgegeben werden. Die Nachrichten weisen darauf hin» daß das PL1-Quellprogramm Verstöße gegen die Syntax von PL1-Sprachelementen enthält. In Abhängigkeit von der Schwere des Verstoßes werden die Nachrichten in fünf Klassen unterteilt: - Klasse I (Informationen) Eine informatorische Nachricht weist in der Regel darauf hin» daß in dem betreffenden textlichen Zusammenhang die Anwendung bestimmter Sprachelement© uneffektiv ist.» - Klasse W (Warnungen) Eine Warnung weist auf einen möglichen Fehler hin» obwohl die betreffende Sprachkonstruktion (Anweisung/Klausel) syntaktisch richtig ist. - Klasse E (Fehler) Eine Nachricht der Klasse E weist gewöhnlich darauf hin» daß der Compiler eine fehlerhafte Anweisung oder Klausel korrigiert oder ignoriert hat. - Klasse S (schwerer Fehler) Eine Nachricht der Klasse S weist meist darauf hin» daß die fehlerhafte Anweisung/Klausel nicht korrigiert werden kann. Dabei übergeht der Compiler die betreffende Sprachkonstruktion» oder er verwendet für die fehlerhaften Teile Standardannahmen• 13 PL1-0C Benutzungshinweise 10/89 D0S-4/ES - Klasse U (nicht korrigierbarer Fehler) Eine Nachricht der Klasse U weist auf eine nichtkorrigierbare Anweisung/Klausel oder eine implementierungsbedingte Einschränkung hin» für die keine Standardannahme getroffen werden kann. In jedem solchen Fall wird die Übersetzung abgebrochen. Die Nachrichten haben folgende Form: IOC nnnnl klasse text Die Buchstaben "IOC" weisen darauf hin> daß die Nachricht zur Übersetzungszeit vom PL1-Optimierung scompiler ausgegeben wurde. "nnnn" gibt die vierstellige Nummer der Nachricht an. "I" zeigt an» daß die Nachricht informativen Charakter besitzt. "klasse" ist einer der fünf Buchstaben I» W» E» S> U und deutet auf die Fehlerschwere hin. "text" enthält den Nachrichtentext. Anhang Z enthält alle Nachrichtentexte. 1,5.4, Resultatcode Der PL1-Optimierungscompiler erzeugt für jeden Übersetzungsschritt einen Resultatcode» der dem Betriebssystem und dem Programmierer das Ergebnis der Übersetzung anzeigt. In den Auflistungen wird der Resultatcode nach den Übersetzungsprotokollen in der Jobschrittende-Mitteilung angegeben. In der folgenden Übersicht sind die möglichen Resultatcodes zusammengestellt: Code Bedeutung Hervorgerufen *) durch Fehler der Klasse 00 Compiler hat Übersetzung vollständig durchgeführt und keine Fehler erkannt. Ausfuhrung ist möglich. 04 Compiler hat Übersetzung vollständig durchgeführt» und es sind möglicherweise Fehler enthalten. Eine ordnungsgemäße Ausführung ist wahrscheinlich. W 08 Compiler hat Übersetzung vollständig durchgeführt und Fehler erkannt. Eine ordnungsgemäße Ausführung ist fraglich. E 12 Compiler hat bei der Übersetzung schwere Fehler erkannt und Teile des Quelltextes ignorieren müssen. Das Ergebnis der Übersetzung ist in der Regel unvollständig i demzufolge ist die ordnungsgemäße Ausführung nicht möglich. 5 16 Compiler hat nicht analysierbare Fehler erkannt und die Übersetzung abgebrochen. Eine Ausführung ist nicht möglich. U i keine oder I *) einschließlich der vom Makrointerpreter analysierten Fehler 1.4. Proqrammverbinder (LNKEDT) Der Programmverbinder bereitet die Ausführung eines Programms vor» indem er die Objektmoduln» die bei der Übersetzung des Programms mit dem PL1-Optimierungscompiler (oder auch mit anderen Sprachübersetzern wie Assembler» COBOL-Compiler usw.) entstehen» zu gewöhnlich einer Phase verbindet. Die Objektmoduln erwartet der Programmverbinder - im SYSLNK-Bereich, - in der privaten Modulbibliothek SYSRLB» falls zugewiesen» - in der Standardbibliothek SYSLJB, falls zugewiesen und der Modul in SYSRLB nicht gefunden wurde oder SYSRLB nicht zugewiesen ist» - in der System-Modulbibliothek» falls der Modul weder in SYSRLB noch in SYSLIB gefunden wurde oder wenn diese Bibliotheken nicht zugewiesen sind. Von SYSLNK erhält der Programmverbinder auch Steueranweisungen» die dort durch die Jobsteuerung gespeichert werden. Die Programmverbindersteueranweisungen ACTION - für die Spezifizierung von Anforderungen beim Programmverbinderlauf» PHASE - für die Festlegung von Name und Ladeadresse einer Phase» INCLUDE - für die Bestimmung» welche Objektmoduln in die Phase einzuschließen sind» und ENTRY - für die Festlegung der Startadresse sind in Eil erklärt. Notwendige Voraussetzungen für einen Programmverbinderlauf ist eine der Optionen LINK oder CATAL» die für diesen Jobschritt mit der OPTION-Anweisung zu geben ist. Wenn nur die Option LINK gilt, wird eine temporäre Phase (mit dem Namen PHASE***) in SYSLNK gebildet» die durch die Jobsteueranweisung EXEC ohne Operand und nur im selben Job zu starten ist. Wenn die Option CATAL gilt» wird die Phase in eine Phasenbibliothek katalogisiert. Dabei wird der in der PHASE-Anweisung angegebene Name verwendet. Dieser Name ist beim Aufruf der Phase in der EXEC-Anweisung anzugeben. PL1-0C Benutzungshinweise 1.5. 10/89 DQS-4/ES Proa rammausführuna 1.5.1. Jobsteueranweisungen für die Proqrammausführuna Ein Auftrag für die Übersetzung mit dem PL1-Optimierungscompiler» der anschließenden Programmverbindung und sofortigen Ausführung der temporär gebildeten Phase (mit dem Namen PHASE»««) ist nach folgendem Muster zu geben: // £// // // BATCH auftragsname,EPARAMS= Inamel,...3 JOB jobname] OPTION LINK EXEC PLI . pll-quelltext /* / / EXEC LNKEDT . Jobsteueranweisungen für die Ausführung / / EXEC . daten__für_die_ausführung /* Folgende Liste gibt einen Überblick über die wichtigsten Jobsteueranweisungen (siehe tll): ASSGN BATCH DATA DATE - DEFD - DLBL - EXEC - EXTENT JOB - MGO MIF - MLAB MOUNT MSET MTC - NOP OPTION PAUSE PW - RESET RSTRT RUN - SPOOL STOP TCC - TLBL - UPSI USAREA /& /&& - * - logisches Gerät in einen definierten Zustand bringen. Kopfanweisung eines Auftrags und Bilden einer Eintragung in der BCH-Schlange. Kopfanweisung eines Datenstapels und Bilden einer Eintragung in der RDR-Schlange. Setzen eines Benutzerdatums> Außerkraftsetzen des Systemdatumsy das bei IPL gegeben wurde. Ergänzen von einigen Parametern der Dateibeschreibung (DTF). Verwendung für alle Dateien außer auf Platte> Magnetband und Diskette möglich. Zuordnung der im Benutzerprogramm gegebenen Dateibeschreibung "DCL dateiname FILE ..." zu einer konkreten Datei auf Magnetplatte oder Diskette. a) Starten eines spezifizierten Programms (Phase) b) Aufruf einer Prozedur aus einer Prozedurbibliothek Bereitstellung von Informationen über Größe und Lage der in der vorangegangenen DLBL-Anweisung spezifizierten Platten- oder Diskettendatei. erste Anweisung eines Jobs JOB-Anweisung setzt alle Systemvariablen (Zuweisungen auf Grund von ASSGN-AnWeisungen» Funktionsangaben auf Grund von Optionen der OPTION-AnWeisung> DLBL- und TLBLIInformationen) auf den Ausgangszustand zurück. Durch die JOB-Anweisung werden die Dateien auf SYSRDR, SYSIPT, SYSLST und SYSPCH, die zugewiesenen virtuellen Dateien und die Bibliotheksdateien abgeschlossen und erneut eröffnet. zum Überspringen nachfolgender Jobanweisungen bedingtes überspringen nachfolgender Jobsteueranweisungen. Dazu wird der Inhalt der 4 Bytes an der Adresse IQCOMRSC im Verständigungsbereieh (COMREG) mit dem in der MIF-Anweisung angegebenen Wert verglichen und bei positivem Ausgang des Tests der Sprung ausgeführt. MIF löscht auch eine eventuelle Abbruchbedingung. Definition von Marken im Jobstrom für MGO und MIF. Ausschreiben eines Hinweises zum Montieren eines Datenträgers. Setzen des Rückkehrcodes Steuerung von Operationen mit dem Magnetband XBSF, FSF> BSR, FSR, REW, RUN» ERG, WTM, DSE» EOD) leere Anweisung Auswahl von Funktionen zur Steuerung der Systemprogramme Umschalten der SYSRDR-Systemdatei auf die Konsole a) Festlegung/Zuordnung eines Kennworts (Password) bei der Erzeugung einer Datei, b) Prüfen der Berechtigung, ob mit Datei Aktionen erlaubt sind. Rücksetzen der angegebenen logischen Geräte auf die Standardzuweisungen. Wiederanlauf eines Programms von einem Speicherabzug aus. Aufruf einer Prozedur aus einer Prozedurbibliothek mit der Möglichkeit der Substitution beliebiger Zeichenketten. dient POWER zur Steuerung der Ausgabe auf einen virtuellen Drucker/Kartenstanzer. stoppt die Arbeit in dem Programmhereich. Zuordnung der im Benutzerprogramm gegebenen Dateibeschreibung (DTF) zu einem konkreten Terminal. Zuordnung der im Benutzerprogramm gegebenen Dateibeschreibung "DCL dateiname FILE ..." zu einer konkreten Datei auf Magnetband. Setzen des Programmschalters (UPSI-Byte) hexadezimale Kette in den Benutzerbereich der COMREG bringen. Beenden des Jobs Beenden des Auftrags oder eines Datenstapels) Streichen des zugehörigen Programmbereichs zur Kommentierung des Jobstromes> wird auf der Konsole ausgeschrieben. 15 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Verwendung von Prozeduren Durch die Verwendung von Prozeduren wird die Bereitstellung der Jobsteueranweisungen zur Formulierung eines Jobs wesentlich vereinfacht. Der Anwender kann mit Hilfe des Systemprogramms LIBR eine Prozedur (beispielsweise unter dem Namen PLIOCLG) katalogisieren> welche beliebige Schritte zur Verarbeitung eines PL1-Programms realisiert. Beim Aufruf der Prozedur durch die RUN-Anweisung kann diese Prozedur modifiziert werden. Die Jobsteuerung bietet dem Anwender umfangreiche Möglichkeiten zur Modifizierung • Die Folge der Jobsteueranweisungen // // // // OPTION LINK,SUBLIB=T EXEC PLI,NAME EXEC LNKEDT EXEC wiederholt sich beispielsweise beim Programmtest in einer Vielzahl von Jobs. Diese Anweisungsfolge sei als Prozedur mit dem Namen PL1OCLG katalogisiert. Als variabel sind die Zeichenketten "T" und "NAME11 (T=Teilbibliothek, NAME=Buchname) zu betrachten . Wenn der PL1-Quelltext in der Teilbibliothek S unter dem Namen QUTEXT gespeichert ist> kann die Verarbeitung mit folgendem Job durchgeführt werden: // JOB CLG // RUN PL1OCLG,T=S,NAME=QUTEXT /& Kenn der PL1-Quelltext in der Teilbibliothek T unter dem Namen QU1 gespeichert ist und eine Phase mit dem Phasennamen PH1 gebildet werden soll» ist folgender Job zu formulieren: // JOB PHCREATE // RUN PL10CLG,NAME=QUl,LINK=CATAL,0V ) ADD 10 // PHASE PH1,* /& Verwendung der Jobsteueranweisunaen UPSI» USAREA und OPTION Mit den Steueranweisungen // UPSr nnnnnnnn // USAREA=hex_kette // OPTION SYSPARM=zeichenkette gibt es im D0S-4/ES drei wirksame Mittel> vor der Ausführung eines Programms Informationen bereitzustellen> die während des Programmlaufs ausgewertet werden können. In Abhängigkeit davon lassen sich beispielsweise bestimmte Programmfunktionen auswählen. Die nachfolgende Programmskizze soll eine Anregung geben» auch in PL1-Programmen mit diesen Systemmitteln zu arbeiten. HP: PROC 0PTI0NSCMAIN)i DCL PCOM P0INTTER5 DCL 1 IQCOM BASEDCPCOM), 2 CHARDAT CHARC8), /* IPL-DATUM/DATE-ANW. */ 2 FIXDAT DEC FIXEDC7), 2 USAREA CHAR(ll), /* USAREA-ANWEISUNG */ 2 UPSI BITC8) ALIGNED, /* UPSI-ANH. */ 2 XXA CHARC68), 2 LSYSPARM BITC8) ALIGNED, 2 SYSPARM CHAR(16)> /* OPTION SYSPARM=... */ 2 XXB CHAR(250), 2 XXC CHAR(250), 2 XXD CHARC51), 2 RSC BIN FIXED(31)i / * RSC */ DCL Pl POINTER BASEDCP2), P2 POINTER, P3 POINTER, BIT32_P2 BITC32) BASEDCP3)s P3 = ADDRCP2)} BIT32.P2 = '00000000000000000000000000010100'B5 /* 0 0 0 0 0 0 1 4 «/ PCCW = P l j PUT SKIP LISTCCHARDAT, FIXDAT, U P S I , RSC)5 ENDi / * HP * / 16 PL1-0C Benutzungshinweise 10/89 DQS-4/ES 1.5.2. Steuerung des PL1-Optimierungscompilers bei der Programmausführung Für die Ausführung eines PL1-Programms können Optionen als Zeichenkettenwert von PLIXOPT angegeben werden, PLIXOPT ist der Name einer Zeichenkettenvariablen» die bereits im Quell™ Programm initialisiert wird und beim Aufruf des Programms nicht mehr geändert werden kann,-. Sie ist wie folgt zu vereinbaren: DCL PLIXOPT CHAR(konst) VAR INIT('liste1) STATIC EXTERNALj "konst" ist eine Konstante* die größer oder gleich der Länge von "liste31 ist. "liste" ist eine Liste von Optionen» die durch Kommas oder Leerzeichen getrennt sind. Eine Option» die über die Zeichenkettenvariable PLIXOPT angegeben wurde» bei der Implementierung festgelegten Standard dieser Option. COUNT überschreibt den i Nocouyr Bei Wirksamkeit der Option COUNT erhält der Programmierer Informationen darüber» wie oft die Anweisungen des PL1-Programms ausgeführt wurden. Nenn COUNT zur Obersetzungszeit wirksam war» ist COUNT zur Ausführungszeit Standard. Bei Wirksamkeit von FLOW und MOCOUNT zur, Obersetzungszeit muß auch STMT oder LINE wirksam gewesen sein» um zur Ausführungszeit durch Angabe von COUNT die COUNT-Informationen zu erhalten. Standard ist N0C0UNT. FLOW[(nl,n2)l I NOFLOW Bei Wirksamkeit der Option FLOW erhält der Programmierer Informationen darüber» in welcher Reihenfolge die Anweisungen des PL1-Programms durchlaufen und welche Sprünge ausgeführt wurden. Wenn nl und n2 zur Ausführungszeit nicht angegeben werden» gelten folgende Werte: - Wenn FLOW zur Obersetzungszeit wirksam war» werden die Werte von nl und n2 von der Obersetzung übernommen. - Wenn NOFLOW bei der Obersetzung wirksam war» gilt standardmäßig: nI=25j>n2=10* Die FLOW-Informationen werden ausgegeben» wenn eine ON-Einheit mit der SNAP-Option ausgeführt wird oder wenn im Programm eine CALL PLIDUMP-AnWeisung enthalten ist» in deren erstem Argument der Buchstabe T angegeben wurde. Zur Übersetzungszeit muß eine der Optionen FLÖH oder COUNT wirksam gewesen sein. Wenn FLOW zur Obersetzungszeit wirksam war» ist FLOW zur Ausführungszeit Standard« ISASIZE 1 ISA (<n I nK>) Die Option ISASIZE gibt die Größe Cn) des Anfangsspeicherbereichs (ISA) an** der vom PL1-Programm durch den Makro GETVIS bei der Initialisierung angefordert wird« Folgende Werte sind zulässig: n=0 (Standardwert). Es werden 512K Bytes angefordert? n>0 Der Wert wird auf ein Vielfaches der Seitengröße erhöht» es werden stets nis gan^e Seiten angefordert. n<0 Eine Nachricht wird ausgegeben und das Programm abgebrochen« REPORT 1 R 1 NOREPORT 1 NR Die Option REPORT erzeugt ein Protokoll der Programmausführung. NOREPORT ist Standard. über die Größe der Speiaherpiat^anforderungen bei SPIE I NOSPIE Bei Wirksamkeit von SPIE (Standard) wird bei Programminitialisierung mit Hilfe des Makros STXIT PC die PL1-Routine zur Behandlung von Programmunterbrechungen aktiviert. NOSPIE bewirkt die Behandlung von Programmunterbrechungen direkt durch das Betriebssystem. STAE I NOSTAE Die Option STAE (Standard) aktiyiert bei Programminitialisierung mit Hilfe des Makros STXIT (mit Parameter AB) die PL1-Routine zur Behandlung einer anormalen Programmbeendigung. Bei Wirksamkeit von NOSTAE wird diese Behandlung vom Betriebssystem ausgeführt. 1.5.3. Speicherplatzverwendung Zur Ausführungszeit ist das PL1-Programm in drei Hauptspeicherbereichen enthalten. Der erste Bereich enthält die ausführbare Programmphase. Der zweite Bereich ist der Anfangsspeicherbereich (ISA). Im dritten Bereich ist Speicherplatz für Oberlauf des Anfangsspeicherbereichs und für E/A-Anforderungen enthalten. Die Programmphase besteht aus übersetztem Code und vom Programmverbinder hinzugefügten Routinen» das sind residente PL1-Bibliotheksroutinen. Die Initialisierungsroutine (I0TGVUI) und die Fehlerbehandlungsroutine (IOTGFER) sind in jedem ausführbaren Programm enthalten. Die anderen Routinen der PL1-Bibliothek werden in Abhängigkeit von dmw Verwendung bestimmter Sprachelemente in das ausführbare Programm eingefügt. Eine typische Programmphase besteht aus folgenden Teilen: - Programmabschnitt» der den übersetzten Code enthält - Bibliotheksroutinen» die vom Programmverbinder hinzugefügt wurden - STATIC INTERNAL-Programmabschnitt Adressen (beispielsweise Adressen von Bibliotheksroutinen$ internen PL1 «-Prozeduren^ Eingang spunkten» LABEL-Konstanten* externen Prozeduren) zur Ausführungszeit erforderliche Steuerblöcke Speicherbereiche für Problemdatenkonstanten Speicherbereiche für STATIC INTERNAL-Variablen - andere Programmabschnitte (PLISTART, PLIMAIN» Speicherbereiche für STATIC EXTERNAL-Variablenf» Steuerblöcke und Daten für externe Dateien) 17 PL1-0C Benutzungshinweise 10/89 DOS-4/ES Der Anfangsspeicherbereich (ISA) besteht aus der. folgenden drei Bereichen: - Programmverwaltungsbereich (Aufgabenverständigungsbereich (TCA)» Pseudo-DSA und andere Verwaltungssteuerblöcke) - Kellerspeicher für DSA und VDA: Speicherplatz für AUTOMATIC-Variablen und vom Compiler erzeugte Zwischenspeicherbereiche, Speicherplatz für block- und prozedurabhängig zugewiesene oder freigegebene Elemente freier Hauptbereich - Speicherplatz für CONTROLLED- und BASED-Variablen Die Größe des Anfangsspeicherbereichs CISA) kann durch Angabe der Option ISASIZE festgelegt oder standardmäßig angenommen werden. Ist der Anfangsspeicherbereich zu groß? so bleibt ein Teil ungenutzt» und im dritten Bereich kann es an Speicherplatz fehlen. Ist der Anfangsspei cherbereich zu klein> so wird Speicherplatz aus dem dritten Bereich angefordert> und die Ausführungszeit erhöht sich. Die Länge dos Anfangsspeicherbereiches kann durch Berechnung oder durch Benutzung von REPORT ermittelt werden. Will man die Option REPORT benutzen*'so gibt man entweder einen sehr kleinen (z.B. 1) oder einen sehr großen Wert für ISA an» je nachdem» ob der Speicherplatz knapp ist oder reichlich zur Verfügung steht. Durch Angabe von REPORT erhält man dann den optimalen ISA. Für eine optimale Wirkung sollte der ISA alle dynamischen Hauptspeicherplatz-Anforderungen enthalten. Wenn jedoch bestimmte Blöcke nur selten betreten werden oder CONTROLLEDoder BASED-Variablen nur kurz zugeordnet werden» so kann dieser Speicherplatz außerhalb des ISA bleiben. Der dritte Bereich enthält Speicherplatz» der als Ergebnis expliziter oder impliziter Speicherplatzanforderungen erhalten wird. Er wird angefordert für transiente Bibliotheksroutinen» durch FETCH-Anweisungen geladene Prozeduren» für Puffer und Datei-Steuerblocke. 1»5.^Nachrichten über die Programmausführung Bei der Programmausführung können über SYSLST PL1-Programms ausgegeben werden. Ursachen für Nachrichten vom PL1-Programm sind; Nachrichten des Betriebssystems i*nd des - FLOW- und COUNT-Informationen - Anforderung von PL1-Hauptspeicherausdrucken - Nachrichten des Sortierprogramms oder anderer Komponenten des Betriebssystems» die PL1-Programm beteiligt sind - Auftreten von Ausnahmesituationen (einschließlich Ausnahmesituation CHECK), In diesem Fall haben die Nachrichten die folgende Form: am lOTnnnl 0NC0DE=nnnn C'on-Situation5I CONDITION RAISED text H I0TäS weist darauf hin» daß die Nachricht zur Ausführungszeit eines PL1-Programms ausgegeben wurde. nnn" gibt die dreistellige Nummer der Nachricht an, "I1S zeigt an* daß die Nachricht informativen Charakter besitzt "nnnn" gibt den ONCODE-Wert an. "text" enthält den Nachrichtentext und Angaben zur Fehlerlokalisierung (in Abhängigkeit von der Compileroption STMT). ls Anhang 3 enthält alle Nachrichtentexte, 1.5.5. Resultatcode Es ist möglich» nach euer Ausführung eines PL1-Programms einen Resultatcode zu übergeben» der einen Hinweis über die Bedingungen enthält» unter denen die Ausführung erfolgt ist« Analog wie beim Obersetzen und Programmverbinden kann von diesem Resultatcode auch die Verarbeitung weiterer Jobschritte abhängig gemacht werden (MIF-Anweisung )•' In einem PLl-Programm können Resultatcodes durch Verwendung der CALL PLIRETC-Anweisung gesetzt werden. Durch das Standardunterprogramm PLIRETC wird eine ganze Zahl mit den Attributen BINARY FIXED(31>0) angegeben» die zum aktuellen Wert des PL1-Resultatcodes wird. Im folgenden werden die PL1-Programms angegeben: 0 1-99 100 200 £04 Resultatcodes und deren Bedeutung der Ausführung eines Normale Programmbeendigung. Wird durch die Standardfunktion PLIRETC gesetzt. Es wurde die Anweisung STOP ausgeführt oder mit der Anweisung CALL PLIDUMP mit Option S ein formatierter Speicherausdruck aufgerufen. Es kam zu dem Ausnahmezustand ERROR» und es existiert keine ON-Einheit ERROR oder FINISH» die eine Sprunganweisung enthält. Das Programm wird beendet. Es kam zu einem Fehler in einer ON-Einheitc Das Programm wird beendet. Pseudoregister zu groß. Das Programm enthält keine Hauptprozedur. Ein vom Anwender eingesetzter Resultatcode muß im Bereich von größer» dann wird 99 eingesetzt und eine Nachricht ausgegeben. 18 bei 1 bis 99 liegen. Ist er PL1-0C Benutzungshinweise 2. 10/89 D0S-4/ES Arbeit mit Bibliotheken Im Betriebssystem D0S-4/ES gibt es einheitlich organisierte - Systembibliotheken» - Programmbereichs-Standardbibliotheken und - Privatbibliotheken. Hinsichtlich der zu speichernden Objekte unterscheidet man folgende Bibliothekstypen: - Phasenbibliothek (C) - für Phasen> - Objektmodulbibliothek (R) - für übersetzte Objektmoduln, - Quelltextbibliothek (S) - für Programme in Quelltextform und Makros» - Prozedurbibliothek (P) - für katalogisierte Prozeduren» - Makrobibliothek (M) - wird vom Anwender nicht benutzt. Der Arbeit mit den Bibliotheken dienen im D0S-4/ES die folgenden Programme mit den nachstehend angeführten Funktionen: - LIBR Katalogisieren» Löschen» Umbenennen» Umnumerieren» Ändern der Versionsangaben und Korrektur von Bibliothekskomponenten» Ausgabe (Drucken» Stanzen) von Bibliothekskomponenten» Ausgabe von Bibliotheksverzeichnissen. - CATMOD Katalogisieren von Objektmoduln aus dem SYSLNK-Bereich in eine Objektmodulbibliothek. - LNKEDT Bilden der Phasen aus Objektmoduln und gegebenenfalls Katalogisieren in eine Phasenbibliothek. - SYSCOPY Formatisieren der Bereiche für Bibliotheken und Obertragen von Bibliothekskomponenten zwischen Bibliotheken bzw. von oder auf Magnetband. - PATCH Korrektur von Phasen in Phasenbibliotheken. < Dieses Programm hat geringe oder keine Bedeutung. Angaben zu den Steueranweisungen der Programme LIBR, enthalten. 2.1. für die Arbeit mit PL1 CATMOD, LNKEDT und SYSCOPY sind in [1] Katalogisieren von Quelltexten Der in PL1 geschriebene Quelltext wird gewöhnlich in eine (private) Quelltextbibliothek katalogisiert. Bei der Übernahme von Quelltext in eine Quelltextbibliothek ist zu entscheiden» ob der gesamte Quelltext einer externen Prozedur als ein Buch katalogisiert wird oder ob der Quelltext entsprechend den logischen/strukturellen Einheiten besser in Form einzelner Bücher katalogisiert wird. Der PL1-Compiler gestattet die Übernahme von Quellprogrammen aus der Quelltextbibliothek für eine Übersetzung mit der XINCLUDE-Anweisung. Das Katalogisieren von Quelltexten kann beispielsweise durch folgende Steueranweisungen angefordert werden: LIBR // CATALS teilbibliothek.buchname_l BKEND ! pll-quelltext (1) BKEND // CATALS teilbibliothek.buchname_2 BKEND ! pll-quelltext (2) BKEND // END /* Bemerkung: In der CATALS-Steueranweisung» die in [1] beschrieben ist» sind zusätzliche wahlweise Angaben möglich. Solche Angaben betreffen Festlegungen hinsichtlich der Version und Modifikation des Buches» der Identifikation der Sätze» der Folgeprüfung bei der Eingabe und der Anforderung der Numerierung der Sätze auch mit einer bestimmten Schrittweite. 19 PL1-0C Benutzungshinweise 10/89 DQS-4/ES Katalogisieren von Obiektmoduln 2.2. Der durch den PL1-Compiler auf Grund einer erfolgreichen Übersetzung erzeugte Objektmodul kann in der zugewiesenen Modulbibliothek oder in der System-Modulbibliothek katalogisiert werden. Die Vorteile einer Katalogisierung des Objektmoduls ergeben sich beim Testen von Programmen» die aus mehreren externen Prozeduren bestehen. Die Objektmoduln der externen Prozeduren» die sich als fehlerfrei erwiesen haben» können katalogisiert werden und brauchen im Verlaufe der weiteren Testarbeiten nicht erneut übersetzt zu werden. Wenn die gleiche externe Prozedur in verschiedenen Programmen verwendet wird» sollte deren Objektmodul unbedingt für die wiederholte Verwendung in den entsprechenden Phasen in eine Objektmodulbibliothek katalogisiert werden. Wenn in der Jobsteueranweisung . OPTION der Parameter DECK angegeben ist» wird bei einer erfolgreichen Übersetzung der Objektmodul auf SYSPCH ausgegeben» bei Angabe des Parameters LINK auf SYSLNK. Notwendige Voraussetzung für die Katalogisierung eines Objektmoduls ist die Zuordnung eines Namens zu diesem Modul* Der Name des Objektmoduls kann entweder mit der Option "CATAL(name)" der PROCESS-Steueranweisung oder mit der CATALR-Jobsteueranweisung festgelegt werden. Katalogisieren über SYSLNK: // OPTION LINK // EXEC PLI * PROCESS CATALCname)} Katalogisieren über SYSPCH; // // // // SPOOL SYSPCH,NAME=name,DEST=I OPTION DECK CATALR EXEC PLI . pll-quelltext . pll-quelltext /** // EXEC CAT710D /*' // SPOOL SYSPCH // ASSGN SYSIPT,DATA=name // EXEC LJBR Bemerkung: Falls nach "// ASSGN SYSIPT,DATA=..." und "// EXEC ..." noch weitere Jobschritte folgen sollen» muß vorher "// RESET SYSIPT" oder Jobgrenze gegeben werden. 2.5. Katalogisieren von Phasen Der Programmverbinder CLNKEDT) bildet Phasen auf Grund von auf SYSLNK stehenden Objektmoduln» indem er externe Referenzen auflost» die erforderlichen Moduln aus der Bibliothek für Objektmoduln einfügt und Adreßkönstanten ergänzt. Bei Wirksamkeit von // OPTION CATAL wird die erzeugte Phase permanent in der zugewiesenen Phasenbibliothek auf SYSCLB bzw. SYSRES gespeichert. Der Name der zu bildenden Phase und ihre Ladeadresse ist durch eine PHASE-Anweisung anzugeben . Bei Wirksamkeit von // OPTION LINK wird eine-Phase erzeugt» die nicht in die Bibliothek» nur in den SYSLNK-Bereich geschrieben wird und dort nur für den Job zur Verfügung steht» in dem sie gebildet wurde. Eine solche temporäre Phase wird mit einer EXEC-Anweisung ohne Phasenname gestartet. Katalogisieren einer Phase wird mit dem Programm LNKEDT beispielsweise durch folgende Steueranweisungen angefordert: ausgehend von PLI-Quelltext: // OPTION CATAL // PHASE phasenname»« // EXEC PLI . pll-quelltext /* // EXEC LNKEDT 20 ausgehend von Obiektmoduln // // // // OPTION CATAL PHASE phasenname»» INCLUDE modulname EXEC LNKEDT PL1-0C Benutzungshinweise 3_. 10/89 D0S-4/ES Auflistungen Der PL1-Optimierungscompiler kann während der Übersetzung Auflistungen erzeugen» die Informationen über die Übersetzung» über das PL1-Quellprogramm und die Objektmoduln darstellen. Die Auflistungen werden über SYSL5T ausgegeben. Die folgende Übersicht vermittelt den Zusammenhang zwischen den Auflistungen und den Compileroptionen: Auflistungen Erforderliche CompilerOption 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. OPLIST SOURCE2 FLAGI KIIWIEIS)) 3 SOURCEtNESTl ATR XREF AGGREGATE STORAGE EXTREF 11. 12. 13. 14. 15. Liste der Optionen Eingabetext für den PL1-Makrointerpreter Nachrichten des PL1-Makrointerpreters PL1-Quellmodul Symbolverzeichnis Symbolnachweistabelle Tabelle für Datengruppierungen Speicherplatzbedarf Verzeichnis der externen Symbole Aufbau des statischen Speichers für den Objektmodul (STATIC INTERNAL STORAGE MAP, STATIC EXTERNAL CSECTS) Variablenliste Tabelle der relativen Adressen Objektmodul Nachrichten des Compilers Abschlußnachricht der Übersetzung MAP MAP OFFSET LIST FLAG[C<I|W|E|S>)3 Die erste Seite der Auflistungen enthält in der Kopfzeile den Hinweis über die benutzte Compilerversion? das Datum der Übersetzung und die Zeit, zu der die Übersetzung begonnen wurde. Die Auflistungen des Compilers werden fortlaufend durchnumeriert. Die Seitennummer befindet sich in der rechten oberen Ecke. 1. Unter der Überschrift OPTIONS LISTING wird eine vollständige Liste aller für den Übersetzungsschritt wirksamen Optionen ausgegeben. Die Ausgabe der Liste kann durch die Option NOOPLIST unterdrückt werden. 2. Unter der Überschrift MACROINTERPRETER INPUT wird dt^r Eingabetext für den Makrointerpreter aufgelistet. Die Eingabesätze werden mit der Nummer 1 beginnend fortlaufend numeriert. Die Option NOSOURCE2 unterdrückt die Ausgabe dieser Liste. Wurde vom Makrointerpreter keine Nachricht erzeugt* so wird am Ende der Auflistung des Makrointerpreters die Nachricht NO PREPROCESSOR DIAGNOSTIC MESSAGES PRODUCED ausgegeben. 3* Falls durch den Makrointerpreter im Makrotext Fehler erkannt wurden> werden Überschrift PREPROCESSOR DIAGNOSTICS diesbezügliche Nachrichten ausgegeben. unter der 4. Unter der Überschrift COMPILER SOURCE LISTING wird im Falle, daß der Makrointerpreter vorher benutzt wurde» die Ausgabe des Makrointerpreters aufgelistet, sonst die Eingabesätze des PL1-Quellprogramms. Diese Liste kann durch die Optionen CLINE» CSTMT» MARGINI» NEST und durch die Steueranweisungen für die Auflistung modifiziert werden* Steueranweisungen für die Auflistung der Eingabetexte: Durch Steueranweisungen im Eingabetext (Makrotext> PL1-Quelltext 3 kann dessen Auflistung beeinflußt werden. Die nachfolgend aufgeführten Steueranweisungen XPAGE» ZSKIP und XNOTE müssen in einer Eingabezeile bzw. einem Eingabesatz allein stehen und dürfen nicht mit anderen Anweisungen zusammen angegeben werden. Die Steueranweisung /CPAGE, bewirkt» daß die ihr wird. folgende Anweisung auf die erste Zeile der nächsten Seite gedruckt Die Steueranweisung XSKIP£Cn)3, bewirkt» daß ein Vorschub um die durch n angegebene Anzahl von Zeilen erfolgt, n muß eine dezimale ganze Zahl im Bereich 1 bis 999 sein. Ist n nicht angegeben, so erfolgt ein Vorschub auf die nächste Zeile. Ist n großer als die Anzahl der restlichen Zeilen auf der Seite, so wird anstelle der XSKIP-Anweisung eine XPAGE-Anweisung ausgeführt« XNOTE-Anweisung Die KNOTE-Anweisung dient bei der Makrointerpretierung zur Ausgabe von Nachrichten» deren Text vom Programmierer in der Anweisung angegeben wurde. Eine Fehlerschwere kann angegeben werden. Die Ausführung dieser Anweisung bewirkt die Ausgabe der Nachricht. Format: IX m_markenpräfixliste3 NOTE (text_derjnachricht[»m__ausdruck3)i Regeln: 1. Der lltext__der_nachricht" kann maximal 256 Zeichen lang sein. 2. Der "m_ausdruck" muß einen der folgenden FIXED-Nerte w ergeben und lerschwere an: w=0 für die Fehlerschwere I w=4 für die Fehlerschwere W w=8 für die Fehlerschwere E w=12 für die Fehlerschwere S w=16 für die Fehlerschwere U gibt die Feh- 21 10/89 PL1-0C Benutzungshinweise D0S-4/E5 Andernfalls wird eine Nachricht ausgegeben und eine Fehlerschwere wie folgt standardmäßig angenommen! I für w<0 W für 0<w<4 E fürC 4<w<8 S für 8<w<12 U für 12<w<16 und w>16 Wird "m^ausdruck" nicht angegeben» so wird der FIXED-Wert 0 angenommen. Der Aufbau der Hm_markenpräfixliste" und des Mm_ausdruckn ist in 181 beschrieben. Eine Verzweigung zu einer Marke einer XNOTE-Anweisung ist möglich. XNOTE-Anweisungen dürfen nicht in Makroprozeduren angegeben werden. Die Ausgabe der erzeugten I0T-Nachricht hängt von ihrer Fehlerschwere und der wirksamen FLAG-Option ab. Wird die Fehlerschwere U in der XNOTE-AnWeisung codiert und die Anweisung wird ausgeführt, so wird die Compiler arbeit sofort beendet. Fehlerschweren W, E und S können in Abhängigkeit von den Optionen NOSYOTAK und NOCOMPILE zur Beendigung der Compilerarbeit führen. Ist der Quellmodul vom Makrointerpreter erzeugt worden» so ist in der Spalte, die mit REPL überschrieben ist, die maximale Tiefe der Ersetzung für die jeweilige Zeile angegeben. Wurde keine Ersetzung für diese Zeile durchgeführt, so erscheint keine Eintragung. Tritt bei versuchter Ersetzung ein Fehler auf, wird zusätzlich der Buchstabe E ausgegeben. Die Option NOSOURCE unterdrückt die Ausgabe der Liste. 5. Unter der Überschrift ATTRIBUTE TABLE wird das Symbolverzeichnis ausgegeben« 6. Unter der Überschrift CROSS-REFERENCE-TABLE wird die Symbolnachweistabelle ausgegeben. Werden die Listen 5 und 6 gleichzeitig angefordert, so wird eine Kombination beider hergestellt. Die Optionen NOATR und NOXREF unterdrücken die Ausgabe der jeweiligen Liste. 7. Unter der Überschrift AGGREGATE MAP wird für die im Quellprogramm vereinbarten Datengruppierungen eine Tabelle mit statistischen Angaben ausgegeben. Die Option NOAGGREGATE unterdrückt die Ausgabe dieser Tabelle. 8. Unter der Überschrift STORAGE REQUIREMEKTS wird eine Tabelle ausgegeben» die die Hauptspeicherplatz-Anforderungen für den Objektmodul enthält. Außerdem enthält diese Liste Langenangaben zum statischen Speicher (STATIC CSECT) und zu den dynamischen Speicherbereichen (DSA) von jedem Block. Die Option NQSTORAGE unterdrückt die Ausgabe dieser Liste. 9. Unter der Überschrift EXTERNAL SYMBOL DICTIONARY wird das Verzeichnis der externen Symbole (ESO) ausgegeben. Im ESO befinden sich Eintragungen für den Programm verbindet*, Die Eintragungen betreffen alle Programmabschnitte des Objektmoduls» die Namen aller Eingang spunkte und die im Objektmodul definierten externen Symbole. Die Typen der ESD-Eintragungen sind folgender Übersicht zu entnehmen: _p des ESDElementes SD LD ER 22 Bedeutung Definierende Anweisung benannter Programmabschnitt Ist die Option MAIN angegeben» wird der Programmabschnitt PLIMAIN aufgebaut» der die Adresse des primären Eingangspunktes enthält. Der Programmabschnitt PLISTART wird stets automatisch aufgebaut. - Externe PROCEDURE-Klausel, - STATIC EXTERNAL oder EXTERNAL-Vereinbarung mit Anfangswerten» - EXTERNAL FILE-Konstanten, - STATIC INTERNAL-Speicherplatz oder EXTERNAL CONDITION-Name i externer Eingang EXTERNAL ENTRY-Präfix, PLICALLA* PLICALLB externe Bezugnahme - ElfTRY-Konstanten mit EXTERNAL-Attribut - Residente PL1-Moduln CM gemeinsamer Bereich STATIC EXTERNAL- (oder EXTERNAL-) Vereinbarung ohne Anfangswerte PR Pseudoreg ister - CONTROLLED-Variable, - FETCH- oder RELEASE-Anweisung, - FILE-Konstantenvereinbarung WX schwache externe Bezugnahme beispielsweise PUT-Anweisung für PRINT-Dateibeschreibung PL1-0C Benutzungshinweise 10/89 D0S-4/ES 10. Unter der Überschrift STATIC INTERNAL STORAGE MAP wird der Programmabschnitt für STATIC IKTERNAL-Variablen und andere statisch gespeicherte Informationen wiedergegeben. Er enthält: - Adreßkonstanten für Eingangspunkte der Prozeduren und für Verzweigungen - Adreßkonstanten für residente Bibliotheksroutinen - Adreßkonstanten zur Adressierung des statischen Speichers über 4 K Bytes - Konstanten> Datenelement-Beschreiber» Zeiger/Beschreiber> Symboltabellen» DECLARE-Steuerblocke (DCLCB) und andere Steuerblöcke - Speicherplatz für STATIC INTERNAL-Variable In der Liste STATIC IKTERNAL STORAGE MAP werden folgende Abkürzungen verwendet: A..Programmabschnitt COMPILER LABEL CL.nn CONDITION CSECT CONSTANT CSECT FOR EXTERNAL VARIABLE D..bezeichnung DED..bezeichnung ENVB DCLCB FED KD LOCATOR..bezeichnung ONCB PICTURED DED..bezeichnung PROGRAM ADCON RD.. SYMTAB USER LABEL bezeichnung Adreßkonstante vom Compiler erzeugte Marke Programmabschnitt für eine CONDITION-Bedingung im Programm benutzte Konstante Programmabschnitt für eine EXTERNAL-Variable Beschreiber Datenelement-Beschreiber ENVIRONMENT-Steuerblock DECLARE-Steuerblock Formatelement-Beschreiber Schlüssel-Beschreiber Zeiger ON-Steuerblock PICTURE-Beschreiber Programm-Adreßkonstante Satz-Beschreiber Symboltabelle im Programm vorkommende Marke Unter der Überschrift STATIC EXTERNAL CSECTS EXTERNAL-Variablen wiedergegeben. werden die Programmabschnitte für STATIC 11. Unter der Überschrift VARIABLE STORAGE MAP werden die Variablen des PLl-Programms aufgelistet. Die Liste enthält das Niveau, die relative Adresse vom Beginn des Speicherbereichs in dezimaler und hexadezimaler Form» die Speicherungsklasse und den Namen des PL1-Blockes» in welchem die Variable vereinbart wird. 12. Unter der Überschrift OFFSET LISTING FOR STATEMENTS wird eine Tabelle ausgegeben» die Hexadezimal-Adressen des Objektmoduls relativ zum primären Eintrittspunkt sowie die zugehörigen Anweisungsnummern enthält. Die Option NOOFFSET unterdrückt die Ausgabe dieser Tabelle. 13. Unter der Überschrift OBJECT MODULE LISTING wird der vom Compiler erzeugte Objektmodul in assemblerähnlicher Form aufgelistet. Die Liste enthält Kommentare» die die verschiedenen Abschnitte des Objektmoduls identifizieren. Folgende Kommentare dürfen auftreten: * PROCEDURE yyy - gibt den Anfang der Prozedur mit dem Eingangsnamen yyy an. * REAL ENTRY yyy - kennzeichnet den Initialisierungscode für den Eingangsnamen yyy. * PROLOGUE BASE - kennzeichnet dieser Prozedur gilt. den Initialisierungscode» * PROCEDURE BASE - gibt die Adresse an» die den wurde. Eingangspunkt mit dem der für alle Eingangspunkte für die Prozedur in das Basisregister gela- * STATEMENT LABEL yyy - gibt an» daß diese Anweisung die Marke yyy enthält. * PROGRAM ADDRESSABILITY. REGION BASE - kennzeichnet die Adresse, welche als Basisadresse verwendet wird» wenn das Programm länger als 4096 Bytes ist und eine Basisadresse nicht ausreicht. * CONTINUATION OF PREVIOUS REGION - kennzeichnet den Punkt» an dem die Adressierung mit der vorangegangenen Programmbasis wieder aufgenommen wird. * END OF COMMON CODE - kennzeichnet das Ende von Code» der bei als einer Anweisung benutzt wird. der Ausführung von mehr * END PROCEDURE yyy - gibt das Ende der Prozedur yyy an. * BEGIN BLOCK yyy - gibt den Anfang des mit yyy markierten BEGIN-Blockes an. * END BLOCK yyy - gibt das Ende des mit yyy markierten BEGIN-Blockes an« * BEGIN BLOCK - GENERATED NAME BLOCK.nn - kennzeichnet den Anfang eines unbenannten BEGIN-Blockes» für den der Compiler den Namen BLOCK.nn erzeugt hat» wobei nn zwei hexadezimale Ziffern sind. * END BLOCK.nn - kennzeichnet das Ende des Namen BLOCK.nn. BEGIN-Blockes mit dem vom Compiler erzeugten * STATEMENT NUMBER n - gibt den Anfang des Codes programms erzeugt wurde. an» der für die Anweisung n des Quell- 23 PL1-0C Benutzungshinweise 10/89 * INTERLANGUAGE PROCEDURE yyy - kennzeichnet den Beginn des zusätzlich erzeugten Codes (umfassende "Prozedur"). D0S-4/ES für die * END INTERLANGUAGE PROCEDURE yyy - kennzeichnet 11das Ende des für zusätzlich erzeugten Codes (umfassende "Prozedur ). Sprachanpassung die Sprachanpassung x COMPILER GENERATED SUBROUTINE yyy - kennzeichnet den Beginn der vom Compiler erzeugten Routine yyy. * END OF COMPILER GENERATED SUBROUTINE - kennzeichnet ten Routine yyy. das Ende der vom Compiler erzeug- * ON UNIT BLOCK - kennzeichnet den Beginn einer ON-Einheit. * ON UNIT BLOCK END - kennzeichnet das Ende einer ON-Einheit. * END fROGRAMM - kennzeichnet das Ende einer externen Prozedur. * INITIALIZATION CODE FOR OPTIMIZED LOOP FOLLOWS - besagt, daß ein Teil des folgenden Codes durch den Optimierungsprozeß aus einer Schleife herausgenommen wurde. * CODE MOVED FROM STATEMENT NUMBER n - kennzeichnet einen Objektcode> der aufgrund des Optimierungsprozesses an dieser Stelle im Programm übertragen wurde» die Zahl n gibt die Nummer der Anweisung an, woher der Code stammt. * CALCULATION OF COMMONED EXPRESSION FOLLOWS - kennzeichnet, daß ein Ausdruck, der mehrmals im Programm auftritt, an dieser Stelle berechnet wird. * METHOD OR ORDER OF CALCULATING EXPRESSION CHANGED - gibt an, daß die Reihenfolge des folgenden Codes verändert wurde, um den Objektcode zu optimieren. Um den Operandentyp in einer Maschinenanweisung zu kennzeichnen, wird, wenn möglich, ein mnemonisches Präfix verwendet, dem eine Bezeichnung aus dem Quellprogramm folgen kann. Folgende Präfixe werden verwendet: A.. ADD.. BASE.. BLOCK.nn CL.nn D.. DED.. L.. LOCATOR.. RKD.. VO.. WSP.n Adreßkonstante Gruppierungsbeschreiber-Beschreiber Basisadresse einer Variablen Marke, die für einen nicht markierten Block erzeugt wird vom Compiler erzeugte Marke Beschreiber Datenelement-Beschreiber Länge der Variablen Zeiger Satz- oder Schlüsselbeschreiber virtuelle Basisadresse für die Adressierung von Feldelementen Arbeitsspeicher, gefolgt von der dezimalen Nummer des Blockes für zugewiesenen Arbeitsspeicher 14. Unter der Überschrift COMPILER DIAGNOSTICS werden die Nachrichten des PL1-Optimierungscompilers von der Übersetzung des PL1-Quellprogramms aufgelistet. Wurden vom Compiler bei der Übersetzung keine Fehler erkannt, so erscheint am Ende der Auflistungen des Compilers die Nachricht NO MESSAGES PRODUCED FOR THIS COMPILATION. Falls FLAG(W), FLAG(E) oder FLAG(S) wirksam ist, wird die Ausschrift modifiziert und enthält eine Angabe über die Anzahl der nicht ausgegebenen Nachrichten. 15. Am Ende der Auflistungen, die während der Übersetzung erzeugt wurden, wird die zur Übersetzung benötigte CPU-Zeit ausgegeben. In der gleichen Zeile wird außerdem die Anzahl der während der Übersetzung ausgelagerten Sätze sowie deren Satzlänge ausgegeben. PL1-0C Benutzungshinweise 4. 10/89 DOS-fr/ES Dateien Die grundlegenden Informationen zur Arbeit mit Dateien im DOS-fr/ES sind in der Schrift [fr1 enthalten} hier werden einleitend nur einige Begriffe erläutert. Eine Datei ist eine benannte und Organisierte Menge von Sätzen mit gleichem Format und gleicher Struktur. Format und Struktur sind im Anwenderprogramm zu berücksichtigen. Auf einem Datenträger (Magnetband, Magnetplatte» Diskette) können eine oder auch mehrere Dateien stehen* Andererseits kann sich eine Datei auch über mehrere Datenträger erstrecken. Ein Datenträger wird durch seinen Datenträger-Kennsatz identifiziert. Zur Identifikation und Beschreibung der auf dem Datenträger gespeicherten Dateien werden Datei-Kennsätze verwendet. Magnetbänder können mit oder ohne Kennsätze benutzt werden. Magnetplatten und Disketten können nur mit Kennsätzen benutzt werden. Ein Block ist die Datenmenge» welche mit einer E/A-Operation (mit einem Kanalprogramm-Aufruf) als Ganzes übertragen wird. Jeder Block enthält einen oder mehrere Sätze« Durch eine PL1-E/A-Anweisung wird jeweils ein Satz der Datei verarbeitet. Folgende Satzformate sind für die Arbeit mit PL1 zulässig: F: Alle Sätze haben die gleiche Länge. Jeder Block enthält genau einen Satz ("ungeblockte Sätze fester Länge11). FB: Alle Sätze haben die gleiche Länge. Jeder Block enthält die gleiche Anzahl von Sätzen» und zwar mehr als einen ("geblockte Sätze fester Länge11). V: Die Sätze können unterschiedliche Länge haben. Jeder Block enthält einen Satz ("ungeblockte Sätze variabler Länge11). VB: Die Sätze a haben unterschiedliche Länge. Ein Block kann mehrere Sätze enthalten ("geblockte Sätze variabler Länge"). U: Die Sätze haben Undefinierte Länge. Jeder Block enthält einen Satz ("Sätze Undefinierter Länge"). D: Die Sätze haben variable Länge. Jeder Block enthält einen Satz. Die Daten sind/werden im ASCII-Code aufgezeichnet. DB: Die Sätze haben variable Länge. Ein Block kann mehrere Sätze enthalten. Die Daten sind bzw. werden im ASCII-Code aufgezeichnet. Sätze variabler Länge haben ein Präfix» in dem eine Information über die Satzlänge enthalten ist. Nach dem Präfix kann in bestimmten Fällen außerdem ein Steuerzeichen gespeichert sein« fr.1. Dateibeschreibunq Für die Arbeit mit einer Datei aufzubauen. Die erforderlichen - aus der Dateivereinbarung im - aus den Jobsteueranweisungen - aus dem Dateikennsatz. ist es erforderlich» eine vollständige Beschreibung der Datei Informationen gewinnt man PL1-Programm» TLBL» DLBL/EXTEKT» DEFD» TCC» DateibeSchreibung im PL1-Programm Die Dateibeschreibung kann im PL1-Programm - durch Angabe der Dateiattribute in einer DCL-Anweisung» - durch Angabe der Dateiattribute in einer OPEN-Anweisung oder durch das Dateiattributen beim impliziten Eröffnen der Datei oder - durch Standardannahmen von Dateiattributen erfolgen. Informationen über die Dateibeschreibung enthält die Dokumentation [8], Implizieren von Dateibeschreibung durch Jobsteueranweisungen Durch die Jobsteueranweisungen TLBL» DLBL/EXTENT» DEFD und TCC ist es möglich, bestimmte Dateiattribute erst beim Aufruf des übersetzten Programms anzugeben. Die in einer DCL-Anweisung festgelegten Dateiattribute haben gegenüber den durch Jobsteueranweisungen angegebenen Attributen Vorrang. Beim Eröffnen der Datei werden die in der Dateivereinbarung angegebenen Attribute und die in Jobsteueranweisungen oder im Dateikennsatz angegebenen Attribute zusammengefaßt. Dabei wird die Verträglichkeit der Attribute geprüft. Informationen über Jobsteueranweisungen zur Dateibeschreibung enthält die Dokumentation [11. Informationen in den Dateikennsätzen Mit Hilfe von Kennsätzen identifiziert das Betriebssystem Datenträger und zugehörige Dateien. Dateien auf Magnetplatten und Disketten besitzen stets Standard-Dateikennsätze» in die beim Aufbauen der Datei Informationen aus der im PL1-Programm gegebenen Dateibeschreibung und den Jobsteueranweisungen eingetragen werden (Blocklänge» Satzlänge» Satzformat usw.). Bei späterem Zugriff auf die Datei (beispielsweise beim Lesen) brauchen diese Informationen nicht mehr angegeben zu werden. Standard-Benutzerkennsätze können für Dateien auf Magnetplatten und Disketten nicht verarbeitet werden. Für Dateien auf Magnetband können Standard-Dateikennsätze aufgezeichnet/verarbeitet werden» eine Verarbeitung ohne Kennsätze ist prinzipiell möglich. Die Informationen werden beim Aufbauen der Datei vom Betriebssystem in die Kennsätze eingetragen. Beim späteren Lesen einer Datei mit Standard-Kennsätzen ist eine erneute Angabe dieser Informationen nicht erforderlich. Benutzerkennsätze können für Dateien auf Magnetband nicht verarbeitet werden. PL1-0C Benutzungshinweise 4.2. 10/89 D0S-4/ES Angabe der Geräte- und Speicherplatzanforderungen Im D0S-4/ES werden Jobs im Rahmen von Aufträgen verarbeitet. Zu einem Auftrag werden zweckmäßig solche Jobs zusammengefaßt» die gemeinsame Merkmale haben» beispielsweise die gleichen Geräte benutzen» gleiche Priorität haben usw. Jeder Auftrag wird durch eine BATCH-Anweisung eingeleitet» mit der Angaben über die Anforderungen an das System übermittelt werden können. Dazu dient u.a. der Name eines PARAJ1SBuches. Bei Ausführung der BATCH-Anweisung wird das angegebene PARAMS-Buch aus der SystemQuelltextbibliothek gelesen und verarbeitet» ist kein PARAMS-Buch angegeben» wird eine Standardannahme wirksam. Die Bildung von PARAMS-Büchern und die Bedeutung der dafür zu benutzenden Anweisungen ist in [1] beschrieben. 4.3. Eröffnen und Schließen von Dateien 4.3.1. Eröffnen einer Datei Eine Datei wird explizit durch eine OPEN-Anweisung oder implizit durch Ausführung der ersten E/A-Anweisung für diese Datei eröffnet. Damit durch das Betriebssystem eine eindeutige Bezugnahme auf die im PLl-Programm zu verarbeitende Datei erfolgen kann, wird der Name der DTF-Tabelle verwendet» Der Name der DTF-Tabelle leitet sich aus der explizit im PLl-Programm gegebenen Dateivereinbarung ab» wenn er nicht über die TITLE-Option der OPEN-Anweisung bestimmt wird. Gegebenenfalls muß dieser Name auf sieben Zeichen gekürzt werden. Der Name der DTF-Tabelle ist in den Jobsteueranweisungen DEFD» TLBL und DLBL (jeweils als erste Angabe) zu verwenden. Die Standard-Eingabedatei SYSIN und die Standard-Ausgabedatei SYSPRINT müssen weder im PLl-Programm vereinbart noch explizit eröffnet werden. 4.5.2. Schließen einer Datei Jede Datei kann explizit durch eine CLOSE-Anweisung oder implizit durch Beendigung des Jobs» in dem die Datei eröffnet wurde« geschlossen werden. Die Anzahl der Puffer für die Verarbeitunng einer Datei kann nur im Programm durch das Attribut BUFFERSCn) in der Dateivereinbaru.ng durch eine DCL-Anweisung angegeben werden. Die ganze Zahl» welche die Zahl der Puffer angibt» kann nur die Werte 1 und Z annehmen. Standardmäßig wird ein Puffer verwendet Cn=l). 4.5. Dateiorqanisationsformen in PL1 Die pateiorganisationsform wird in PL1 durch folgende Optionen bestimmt: CONSECUTIVE für sequentielle Organisationsform REGIONALC1) für direkte Organisationsform REGIONALE) für direkte Organisationsform INDEXED für indexsequentielle Organisationsform des ENVIRONMENT -»Attributs 4.5.1. Sequentielle Dateien Die sequentielle Organisation ist die Standard-Organisationsform in PL1. Daher braucht in der Vereinbarung für solche Dateien die CONSECUTIVE-Option im ENVIRONMEJCT-Attribut nicht explizit angegeben zu werden. Die sequentielle Organisation ist auch die einzige zulässige Organisationsform für Dateien» die reihenweise verarbeitet werden. In diesem Fall wird jedoch das Format der Sätze auf dem Datenträger ignoriert» denn die Daten werden auf der Grundlage der in der Datenliste oder in der Formatliste enthaltenen Angaben übertragen. Aufbauen einer sequentiell organisierten Datei Die Daten werden auf dem Datenträger fortlaufend hintereinander gespeichert. Die Sätze einer sequentiell organisierten Datei können geblockt oder ungeblockt sein. Für das Aufbauen einer sequentiell organisierten Datei sind folgende Angaben erforderlich: - Der Dateiname muß explizit oder implizit mit OUTPUT vereinbart werden. - Die Satzlänge muß entweder in einer DCL-Anweisung oder in den Jobsteueranweisungen TLBL» DLBL oder DEFD angegeben werden. Für Dateien mit STREAM OUTPUT kann die Blocklänge auch durch die LINESIZE-Option der OPEN-Anweisung angegeben werden. - Wenn das Satzformat nicht implizit festgelegt ist» muß es in einer DCL-Anweisung angegeben werden. - Der symbolische Gerätename muß durch den entsprechenden Parameter der Jobsteueranweisung TLBL» EXTENT oder DEFD angegeben werden (wenn es sich nicht um die Standard-Eingabedatei SYSIN oder die Standard-Ausgabedatei SYSPRINT handelt)« Wenn eine sequentiell organisierte Datei mit dem Attribut PRINT vereinbart ist» wird ein Standard-Steuerzeichen für die Zeilen- und Seitenvorschub-Steuerung auf einem Drucker zusätzlich bereitgestellt. Das Steuerzeichen steht - bei Sätzen fester Länge jeweils im ersten Byte» - bei Sätzen variabler Länge jeweils nach der Satzlängeninformation im Ausgabesatz. Im Normalfall wird als Steuerzeichen das Leerzeichen eingetragen [einzeiliger Vorschub nach dem Drucken). Auf Grund von PAGE-» SKIP- oder LINE-Option bei der PUT~Anweisung werden dem26 PL1-0C Benutzungshinweise 10/89 D0S-4/ES entsprechende andere Steuerzeichen verwendet. Wenn eine PRINT-Datei auf Magnetband oder Magnetplatte ausgegeben wird» werden die Steuerzeichen für die eigentliche Drucker-Ausgabe auch bereitgestellt. Für Nicht-PRINT-Dateien kann die Steuerung für den Drucker oder Stanzer durch direkte Angabe des entsprechenden Steuerzeichens im ersten Byte des Satzes ermöglicht werden. Die Auswahl der zu verwendenden Steuerzeichenmenge erfolgt durch die CTLSTD-Option (Standard-Steuerzeichen) oder CTLMCC-Option (Steuerzeichen im Maschinencode) im ENVIRONMENTAttribut der DCL-Anweisung. Wird eine Datei mit PRINT-Qption DATA-gesteuert oder LIST-gesteuert ausgegeben> werden die Ausgabedaten automatisch tabularisiert. Die Tabularisierung wird durch den Modul IOTGRTBB der PL1-Bibliothek gesteuert. Aufbau: I0TGRTB1 IOTGRTBB CSECT ENTRY IOTGRTBB EQU *i DC IOTGRTBB REL. ADR. DER TAB.-POS. DC H '14' STANDARD FUER PAGESIZE DC H '60' STANDARD FUER LINESIZE DC H •120' RESERVIERT DC WO1 ANZAHL DER TABULATOR-POSITIONEN DC H '5' 2. TAB.-POSITION DC H '25' 3. TAB.-POSITION DC H '49' 4. TAB.-POSITION DC H '73' 5. TAB.-POSITION DC H '97' 6. TAB.-POSITION DC H '121' END Die Ausgabedaten werden standardmäßig auf die Positionen 1> 25> 49, 73> 97 und 121 ausgerichtet. Für PAGESIZE wird als Standard 60 und für LINESIZE 120 festgelegt. Standardpositionen y die außerhalb der aktuellen Zeilenlänge liegen> werden ignoriert. Die durch den Modul IOTGRTBB festgelegten Positionen können (mit Ausnahme der Position 1) auch durch Erzeugung eines Programmabschnitts mit dem Namen PLITABS» welchen der Programmverbinder statt des Moduls IOTGRTBB zum Objektmodul hinzufügt» geändert werden. Es gibt zwei Möglichkeiten> den Programmabschnitt PLITABS aufzubauen: 1. Im PLl-Programm wird eine EXTERNAL STATIC-Struktur mit dem Namen PLITABS vereinbart. Alle Strukturelemente haben die Attribute BINARY FIXED(IB). Diese Elemente entsprechen den Halbwortkonstanten im Modul IOTGRTBB> welche die Werte der einzelnen Tabulatorpositionen enthalten. Die Werte müssen in aufsteigender Reihenfolge angegeben werden. Ihre maximale Anzahl ist 255. Aufbau: DCL 1 PLITABS EXT RELADR PAGESIZE LINESIZE ANZAHL POS2 POS3 P0S4 STATIC, BIN FIXEDU5) BIN FIXED(15) BIN FIXEDU5) BIN FIXED(15) BIN FIXEDU5) BIN FIXEDU5) BIN FIXEDU5) INIT(6), INIT(50), INITdOO), INIT(3), INIT(IO), INIT(40), INIT(7O)5 Durch diese DCL-Anweisung werden folgende Standardwerte festgelegt: PAGESIZE(3) LINESIZE(100) Tabulator-Positionen: 1, 10, 40 und 70 2. Zum PLl-Programm wird durch den Programmverbinder ein Assemblermodul PLITABS, welcher die entsprechenden Standardwerte enthält, hinzugefügt: Aufbau: mit dem Namen // OPTION LINK // EXEC ASSEMBLY PLITABS CSECT DC H •61 REL-ADR DC H '50'1 PAGESIZE DC H •100 LINESIZE 1 DC K «3 ANZAHL TABULATOR-POSITIONEN DC H •10' 2. POSITION DC H '40'1 3. POSITION DC H «70 4. POSITION END /* EXEC PLI quellprogramm EXEC LNKEDT EXEC da ten_des_prog ramms /* Die in diesem Job definierten Standardwerte sind die gleichen wie die im vorangegangenen Beispiel definierten Werte. 27 PL1-0C Benutzungshinweise 10/89 DQS-4/ES Implizit vereinbarte Dateien Sequentiell organisierte Dateien» die reihenweise verarbeitet werden (Attribut STREAM)» brauchen im PL1-Programm weder vereinbart noch explizit eröffnet zu werden. Nenn jedoch nicht die Standard-Eingabedatei SYSIN oder die Standard-Ausgabedatei SYSPRINT verwendet wird, muß der verwendeten Datei durch die Jobsteueranweisung DEFD (ggf. TLBL oder EXTENT) ein symbolischer Gerätename zugewiesen werden. Durch diese Anweisungen können auch noch weitere Dateiparameter definiert werden. Die Standard-Eingabedatei SYSIN ist mit festem Satzformat der Länge 80 Bytes vereinbart. Die Sätze sind ungeblockt. Mit Hilfe dieser Datei können Sätze aus der Quelltextbibliothek oder aus der Prozedurbibliothek gelesen werden. Die Standard-Ausgabedatei SYSPRINT hat ebenfalls festes Satzformat mit der Länge 132 Bytes. Die Satze sind ungeblockt. Da der Name der DTF-Tabelle einer Datei nur 7 Zeichen lang sein darf, ist der Name der DTF-Tabelle der Standard-Ausgabedatei auf SYSPINT gekürzt. Arbeit mit sequentiell organisierten Dateien Eine sequentiell organisierte Datei kann als - Eingabedatei» festgelegt durch das Attribut INPUT der DCL- oder OPEN-Anweisung> - Ausgabedatei, festgelegt durch das Attribut OUTPUT der DCL- oder OPEN-Anweisung» - Änderungsdatei, festgelegt durch das Attribut UPDATE der DCL- oder OPEN-Anweisung» eröffnet werden. Das in der DCL-Anweisung angegebene Attribut wird durch das Attribut der OPEN-Anweisung überschrieben. Wenn eine Magnetbanddatei mit den Attributen INPUT BACKWARDS vereinbart ist, werden die Dateisätze in umgekehrter Reihenfolge gelesen. Das Attribut oder die Option UPDATE kann nur für Dateien verwendet werden, die auf Magnetplatte (Datenträger mit Direktzugriff) gespeichert sind. Die Sätze einer solchen Datei können dann durch die Anweisungen READ und REWRITE aktualisiert werden. Beispiele für die Verwendung sequentiell organisierter Dateien 1. Die Daten sind in der RDR-Schlange unter dem Namen DATEN eingetragen und sollen auf ein Magnetband mit Standardkennsätzen gespeichert werden. Die Datei wird satzweise verarbeitet (Attribut RECORD). Die Sätze haben eine feste Länge und sollen geblockt werden (FB~ Format). Die Satzlänge wird für das Band durch die RECSIZE-Option des ENVIRONMENT Attributs in der DCL-Anweisung angegeben. Blocklänge (BLKSIZE) und symbolische Geräteadresse (DEVADDR) werden durch die Jobsteueranweisung TLBL angegeben. Die Eingabedatei hat den Namen CARD» die Ausgabedatei den Namen TAPE. // BATCH BSP // OPTION LINK // ACTION NOMAP // EXEC PLI * PROCESS NOMAP3 BSP: PROC OPTIONSXMAIN)J DCL CARD RECORD INPUT ENVCF RECSIZEC80) BUFFERSC2))3 DCL CARDREC CHARC80)j DCL TAPE RECORD OUTPUT ENVCFB RECSIZEC80) BUFFERSC2)), DCL TAPEREC CHARC80),I I DCL EOF BITC1) I N I T C O B ) S OPEN FILECCARD), FILE(TAPE)} ON ENDFILE(CARD) EOF = ' l ' B i READ FILECCARD) IlfTOC CARDREC) 5 DO WHILE(-EOF), , EOJ: TAPEREC = CARDREC3 WRITE FILE(TAPE) FROMCTAPEREC), , //£ END3 A- " •""• r v CLqSE FILECCARD), FILECTAPE), END, /* BSP */ /* // EXEC LNKEDT // ASSGN SYS150,TAPE // MOUNT SYS150,'BAND XXXXXX1 // DEFD CARD,DEVADDR=SYS050 // ASSGN SYS050,DATA=DATEN // TLBL TAPE,»DATENBAND',BLKSIZE=800,FILABL=STD,DEVADDR=SYS150 // EXEC /&& 2. Es sollen Daten vom Magnetband ausgedruckt werden. Die Daten werden satzweise übertragen. Sie sind auf dem Magnetband geblockt in Sätzen variabler Länge abgespeichert (VB-Format). Die RECSIZE-Option des ENVIRONMENT-Attributs» die in der DCL-Anweisung angegeben ist, legt $ie maximale Satzlänge fest. Durch die Jobsteueranweisung TLBL wird die symbolische Geräteadresse bestimmt. Die Blocklänge ist im Datei-Kennsatz HDR2 des Magnetbandes enthalten. Die Daten werden ohne Änderungen Cbeispielsweise Code-Transformation) auf dem Drucker ausgegeben. Die Satzlänge für die Druckerdatei wird durch die RECSIZE-Option des ENVIRONMENT-Attributs in der DCLAnweisung festgelegt. Durch die Jobsteueranweisung DEFD wird der Datei die symbolische Geräteadresse SYSLST zugewiesen. Die Eingabedatei hat den Namen TAPE, die Ausgabedatei den Namen PRT. 28 PL1-0C Benutzungshinweise 10/89 D0S-4/ES // BATCH DRUCKEN // OPTION LINK // ACTION NOMAP // EXEC PLI * PROCESS NOMAP> HP: PROC OPTIONSCMAIN)* DCL TAPE RECORD INPUT ENVCVB RECSIZEU32) BUFFERSC2))i DCL TAPEREC CHARC132) VARYING* DCL PRT RECORD OUTPUT ENVCF RECSIZEC132) BUFFERSC2))i DCL PRTREC CHARC132)} DCL EOF BIT(l) INITC'O'B)* OPEN FILECTAPE), FILECPRT)} ON ENDFILE(TAPE) GO TO EOJ3 READ FILECTAPE) INTOCTAPEREC)} DO WHILEC-EOF)} PRTREC = TAPERECi WRITE FILE(PRT) FRÖMCTAPEREO* END* EOJ: CLOSE FILECTAPE), FILECPRDi ENDi /* HP */ /* // EXEC LNKEDT // ASSGN SYS150,TAPE // MQUNT SYS150,'BAND YYYYYY1 // DEFD PRT,DEVADDR=SYSLST // TLBL TAPE,'DRUCKDATEN l,DEVADDR=SYS150,FILABL=STD // EXEC /&& 4.5.2. Regional organisierte Dateien CREGIONAL-Dateien) Regional organisierte Dateien sind dann anzuwenden, wenn der Zugriff zu den Daten auf Grund eines bestimmten Ordnungsmerkmals erfolgen kann. Nach der Art der Adressierung unterscheidet man zwei Formen regionaler Organisation: - REGIONALC1) CSatzadressierung) - REGI0NALC3) CSpuradressierung) REGI0NALC1)-organisierte Dateien haben stets Sätze fester Länge, die nicht geblockt sind. REGI0NALC3)-organisierte Dateien können Sätze fester oder Undefinierter Länge besitzen; eine Blockung ist jedoch nicht möglich. Regional organisierte Dateien können nur auf einem Direktzugriffsdatenträger (Magnetplatte) angelegt werden. Der Speicherplatz wird stets in Regionen aufgeteilt, die fortlaufend, relativ zum Dateianfang mit Null beginnend, numeriert sind. Bei REGIONALC1)-organisierten Dateien ist die größtmögliche Regionsnummer 16777215. Wird als Regionsnummer eine größere Zahl verwendet, erfolgt eine Umrechnung modulo 16777216. Bei REGIONALC3)-organisierten Dateien ist die größtmögliche Regionsnummer 32767. Wird als Regionsnummer eine größere Zahl Verwendet, erfolgt eine Umrechnung modulo 32768. REGIONAL(1)-Organisation erlaubt genau einen Satz pro Region aufzunehmen> bei REGIONALC3)Organisation hingegen können i.a. pro Region, abhängig von der Satzlänge und Spurkapazität, mehrere Sätze aufgenommen werden. Bei REGIONAL(1)-Organisation darf der Satzschlüssel maximal achtstellig sein und nur aus Ziffern und Leerzeichen bestehen. Der Wert des Satzschlüssels ergibt die Regionsnummer. Der Satzschliissel wird grundsätzlich nicht aufgezeichnet. Bei REGIONALC3)-Organisation muß der Satzschliissel n Stellen (n>8) aufweisen. Der Satzschlüssel setzt sich aus dem n-stelligen Vergleichsschlüssel und einem 8-stelligen zweiten Teil des Satzschlüssels Caus dem sich die Regionsnummer ableitet) zusammen. Während der Vergleichsschlüssel beliebige Zeichen enthalten kann, sind für den restlichen Teil des Satzschlüssels nur Ziffern und Leerzeichen erlaubt. Der Vergleichsschlüssel wird aufgezeichnet. REGI0NALC2)-0rganisation ist nicht unterstützt. Aufbauen von regional organisierten Dateien REGIONAL~Org.anisation setzt formatierte Plattenbereiche voraus. Formatierung wird gewöhnlich mit dem Hilfsprogramm CLEDISK vorgenommen« Die Steueranweisungen für CLEDISK sind in [6] beschrieben. Eine Formatierung des Plattenbereichs erfolgt automatisch beim OUTPUT vereinbarten REGIONAL-Datei. Aus diesem Grunde sollte eine bestehende REGIONAL-Datei nur als - SEQUENTIAL INPUT-Datei, - SEQUENTIAL UPDATE-Datei, - DIRECT INPUT-Datei oder - DIRECT UPDATE-Datei eröffnet werden. Eröffnen einer mit RECORD Zum Ausnahmezustand KEY führt der Versuch, - einen Satz einer nicht existierenden Region zuzuordnen C0NC0DE=58) oder - bei einer REGIONALE)-Datei in eine Region mehr Sätze zu schreiben, als die Spurkapazität zuläßt C0NC0DE=57). 29 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Zugriff auf Datensätze in REGIONAL-Dateien Bei REGIONALC D-Organisation werden die Sätze über die Regionsnummer aufgesucht und gelesen oder zurückgeschrieben} bei REGIONAL(3)-Organisation wird der Satz in der durch die Regionsnummer festgelegten Spur auf Grund des Vergleichsschlüssels sequentiell aufgesucht» gelesen» zurückgeschrieben oder hinzugefügt. Eine Region heißt "leer"» wenn in sie im Verlauf der Verarbeitung keine Daten übertragen werden. REGIONALC1)-Organisation ist nur empfehlenswert> wenn die Menge der bei der Verarbeitung tatsächlich auftretenden Regionsnummern einigermaßen "dicht" ist. Im Interesse einer effektiven Nutzung von Speicherplatz kann REGIONALC3)- oder INDEXED-Organisation günstiger sein. REGIONALC1)-0rganisation ist nur dann sinnvoll, wenn das Ordnungsmerkmal der Sätze so beschaffen ist> daß nicht zwei oder mehr Datensätze sich um Aufnahme in die gleiche Region bewerben. .In einem solchen Fall werden Sätze kommentarlos überschrieben. Der Algorithmus für die Bestimmung der Regionsnummern zu Sätzen» die gemäß REGIONALC3)Organisation gespeichert werden sollen» muß so beschaffen sein» daß nur so viel verschiedene Regionsnummern erzeugt werden» wie Spuren (= Regionen) zur Verfügung stehen» Beispiele zur Arbeit mit REGIONAL-Dateien 1. Es ist eine REGIONALC1)-Datei sequentiell aufzubauen. Die Satzlänge soll 60 Zeichen betragen« Die Daten für die Sätze der REGIOMALC1)-Datei sind jeweils den ersten 60 Zeichen der Sätze einer "Kartendatei11 CEintragung STREG1 in der RDR-Schlange) zu entnehmen. ASSGN SYSIPT,SYSRDR ASSGN SYS005,VOL=AAAAAA DLBL RG1,REGIONAL1,99/360,DA EXTENT SYS005,VSN=AAAAAA,DATA,ONE,NUM=5 EXEC CLEDISK // FILE RG1,A // PREFORM A,60 // END OPTION LINK ACTION NOMAP EXEC PLI * PROCESS NOMAP,STlfr,COUNT»FLOW»MARGINIC'I 1 )} CREATE: PROC OPTIONSCMAIN)} DCL 33PR0G CHARC7) VAR INITC•CREATE•), /* aaVERS CHARC10) INITC'890616.001'), /* 33FEHLER BIN FIXEDC15) INITCO), 11 /* aaABBRUCHJTEXT CHARC60) VAR INITC ),/* PROGRAMM-NAME PROGRAMM-VERSION FEHLERANZAHL NACHRICHT */ */ */ */ DCL CADDR, SUBSTR, ONCODE» DATE» TIME) BUILTIN, DCL SaDATUM CKARC8), aaZEIT CHARC8); S>aDATUM = TRANSLATEC'ABfcCDKEF1, l.'ll DATE, '»EFCDAB1)} aaMESS: /* H I L F S P R O Z E D U R CEN) */ PROCCTEXT, STEUERUNG)} DCL TEXT CHARC40), DCL STEUERUNG BIN FIXEDC15), IF STEUERUNG=1 THEN PUT PAGE5 ELSE IF STEUERUNG=2 THEN PUT SKIPC2), ELSE PUT SKIP; aOZEIT = T R A N S L A T E C ' A B Ä C D Ä E F 1 , 'INTIME, '«ABCDEF ) ! PUT EDITCTEXT, ÖÖPROG, V , aaVERS, aaDATUM, CA, C0LC41), 3 A, XC1), A, XC1), A, A)j ENDj /* aaMESS «/ /* UHR 1 ) V E R E I N B A R U N G E N */ DCL RG1 FILE RECORD OUTPUT KEYED ENVCREGI0NALC1) F BLKSIZEC60)), DCL QU FILE RECORD INPUT ENVCCONSECUTIVE F BLKSIZEC80)), DCL RG1REC CHARC60)» QUREC CHARC80), DCL SCHL PIC'C8)9li DCL EOF BITC1) /* - - - ALLGEMEINE FEHLER-BEHANDLUNG ON ERROR BEGIN5 ON FINISH SYSTEMi CALL otäMESSC1*** ABNORMALES PROGRAMM-ENDE ***', 2 ) , PUT SKIP EDITC'ONCODE*1, ONCODEC))CA, FC8))j PUT SKIP EDITC'FEHLER-ANZAHL^1, aaFEHLER)CA, FC3))J 30 */ PL1-0C Benutzung shinweise 10/89 D0S-4/ES PUT SKIP EDITCaaABBRUCHjrEOTHA)} END} ON KEY(RGl) BEGIN5 ION = ONCODE) PUT SKIP LISTC'KEY-ERROR 11 , ONCODE=', ION)} STOP} END 5 ON ENDFILECQU) EOF^'O'Bj /* KURZ-INFORMATION UEBER DEN PROGRAMM-START 1 CALL aaMESSC *** PROGRAMM STARTET PUT SKIP} /* H A U P T T E I L DES */ ***«,2)} P R O G R A M M S */ OPEN FILECRG1), FILECQU)} SCHL = 0) READ FILECQU) INTOCQUREC)} DO WHILECEOF); RG1REC * SUBSTRCQUREC,l,60)} WRITE FILECRG1) FROM(RGIREC) KEYFROMCSCHL); SCHL = SCHL + 1} READ FILECQU) INTOCQUREOj END} CLOSE FILE(RGl), FILECQU)} /* */ ENDE DES HAUPTTEILS CALL aaMESSC'*** NORMALES PROGRAMM-ENDE ***', 1)} END} /* CREATE */ /* EXEC LNKEDT DEFD QU,DEVADDR=SYS004 ASSGN SYSOO4,DATA=STREG1 ASSGN SYS005,VOL=AAAAAA DLBL RG1,REGIONALI,,DA EXTENT SYS005 EXEC 2. Die im vorhergehenden Beispiel erzeugte REGIONAL(1)-Datei soll - sequentiell (von Region 25 bis 36)* - direkt CRegionen 3» 17, 11, 36 und 12) gelesen werden. Außerdem sollen die Sätze in den Regionen 5, 35 sowie werden. 11 ausgetauscht ASSGN SYSIPT,SYSRDR OPTION LINK ACTION NOMAP EXEC PLI K PROCESS NOMAP,STMT,COUNT,FLOW,MARGINK'I'); VERARB: PROC OPTIONSCMAIN)} /* DCL aaPROG CHARC7) VAR INITC"VERARB1), aaVERS CHARC10) INITC'890616.001'), /* aaFEHLER BIN FIXEDC15) INITCO), 11 /* aaABBRUCH TEXT CHARC60) VAR INITC )5/* PROGRAMM-NAME PROGRAMM-VERSION FEHLERANZAHL NACHRICHT */ */ */ */ DCL CADDR, SUBSTR, ONCODE, DATE» TIME) BUILTIN} DCL aaDATUM CHARC8), aaZEIT CHARC8)} aaDATUM = TRANSLATEC'AB*CD*EF', '.'II DATE, '*EFCDAB')} H I L F S P R O Z E D U R aaMESS: CEN) */ PROCCTEXT, STEUERUNG)} DCL TEXT CHARC4O)} DCL STEUERUNG BIN FIXEDC15); IF STEUERUNG=1 THEN PUT PAGE 5 ELSE IF STEUERUNG=2 THEN PUT SKIPC2)} ELSE PUT SKIP} aaZEIT = T R A N S L A T E C ' A B Ä C D Ä E F 1 , 'I'IITIME, I *ABCDEF')} PUT EDITCTEXT, aaPROG, V 1 , 33VERS, aaDATUM, aaZEIT, • UHR 1 ) CA, C0LC41), 3 A, XC1), A, X(l^), A, A ) ; END} /* aaMESS */ /* V E R E I N B A R U N G E N */ DCL RG1 FILE RECORD KEYED ENVCREGIONALC1) F BLKSIZEC60))} DCL RG1REC CHARC60)} DCL SCHL PICIC8)91} 31 PL1-0C Benutzungshinweise /* 10/89 ALLGEMEINE FEHLER-BEHANDLUNG D0S-4/ES */ ON ERKOR BEGIN} ON FINISH SYSTEM} CALL aSJMESSC*** ABNORMALES PROGRAMM-ENDE * * * ' , 2 ) } PUT SKIP EDITCONCODE*1, ONCODEOHA, F(8))} PUT SKIP EDITC'FEHLER-ANZAHLs1, 33FEHLERHA, F ( 3 ) ) } PUT SKIP EDITCaaABBRUCH_TEXT)(A)i END} /* KURZ-INFORMATION UEBER DEN PROGRAMM-START */ CALL aSJMESSC*** PROGRAMM STARTET ... ***',2)} PUT SKIP} /* - - - H A U P T T E I L DES P R O G b A M M S */ /* SEQUENTIELLES LESEN DER REGIONALU)-DATEI OPEN FILECRG1) SEQUENTIAL INPUT} READ FILE(RGl) IGNOREC25)} /* REG. 0 BIS 24 SCHL = 255 DO WHILE(SCHL<37)} READ FILE(RGl) INTOCRG1REC)} PUT SKIP LISTCSCHL, RG1REC)} SCHL = SCHL + 13 END} CLOSE FILE(RGl)} PUT SKIPC2)} */ /* LESEN AUSGEWAEHLTER SAETZE OPEN FILECRG1) DIRECT INPUT} DO SCHL=3, 17, 11, 36, 125 READ FILE(RGl) INTOCRG1REC) KEYCSCHDi PUT SKIP LISTCSCHL, RG1REC)} END} CLOSE FILECRGDi PUT SKIPC2)} */ /* MODIFIZIEREN AUSGEWAEHLTER SAETZE OPEN FILE(RGl) DIRECT UPDATE) DO SCHL=5, 35, 17J READ FILECRG1) INTO(RGIREC) KEY(SCHL)} PUT SKIP LISTC'MODIFIZIERT: ', SCHL, RGIREOi RG1REC = *SATZ IN REGION • II SCHL II ' MODIFIZIERT1} REWRITE FILECRG1) FRO1CRG1REC) KEYCSCHDj END} CLOSE FILE(RGl)} */ /* */ - - - ENDE DES HAUPTTEILS */ CALL aaMESSC*** NORMALES PROGRAMM-ENDE * * * % 1)3 END} /* VERARB */ /* EXEC LNKEDT ASSGN SYS000,VOL=AAAAAA DLBL RG1,REGIONALI,,DA EXTENT SYSOOO EXEC 3. Es ist ein als REGIONAL(3)-Datei formatierter Plattenbereich über direkten Zugriff mit Datensätzen zu füllen. Die Satzlänge soll 40 Zeichen betragen} SchlüsseHänge 12 Zeichen, davon bilden die ersten vier Zeichen den Vergleichsschlüssel. Für die Datei sind 32 Spuren (= Regionen) vorzusehen. Die Daten sind einer "Kartendatei11 CEintragung STREG3 in der RDR-Schlange) zu entnehmen. ASSGN SYSIPT,SYSRDR OPTION LINK ACTION NOMAP EXEC PLI * PROCESS NOMAP,STMT,COUNT,FLOW,MARGINI('|')} CREATE: PROC OPTIONSCMAIN)} DCL SaPROG CHARC7) VAR INITC•CREATE1), /* PROGRAMM-NAME aaVERS CHARC10) INITC•890616.001•), /* PROGRAMM-VERSION aaFEHLER BIN FIXEDC15) INIT(O), /* FEHLERANZAHL aaABBRUCHJTEXT CHARC60) VAR INITC 1 )}/* NACHRICHT DCL CADDR, SUBSTR, ONCODE, DATE, TIME) BUILTIN} DCL aaDATUM CHARC8), aaZEIT CHARC8)} 1 1 aaDATUM = TRANSLATEC'AB^CD^EF , '.'II DATE, '»EFCDAB )} 32 */ */ */ */ PL1-0C Benutzungshinweise 33MESS: /* 10/89 HILFSPROZEDUR PROCCTEXT, STEUERUNG)! DCL TEXT CHARC4Q)} DCL STEUERUNG BIN FIXEDC15)* IF STEUERUNG=1 THEN PUT PAGE 5 ELSE IF STEUERUNG=2 THEN PUT SKIPC2)* ELSE PUT SKIPj 1 aaZEIT = T R A N S L A T E C ' A B Ä C D Ä E F , CEN) D0S-4/ES */ 'I'IITIME, '»ABCDEF1)* PUT EDIT(TEXT> aaPROG, V , aaVERS, aaDATUM, aaZEIT, ' UHR 1 ) (A, C0LC41), 3 A, X(l), A, X(l), A, A)i ENDi /* aaMESS */ /* V E R E I N B A R U N G E N - - - */ DCL RG3 FILE RECORD KEYED DIRECT OUTPUT ENVCREGI0NALC3) KEYLENGTHC12) F RECSIZE(40) BLKSIZEC40))} DCL QU FILE RECORD INPUT ENVCCONSECUTIVE F BLKSIZEC80) RECSIZEC80))} DCL RG3REC CHARC40), QUREC CHARC80)} DCL 1 SCHL, 2 VSCHL CHAR(<+), 2 REGNR PIC'C8)9'5 DCL SCHLUE CHARC12) DEFCSCHDj /* ALLGEMEINE FEHLER-BEHANDLUNG - - - */ ON ERROR BEGIN; IF 0NCODE=8097 THEN DO* aaFEHLER = aaFEHLER + lj REGNR = 31i VSCHL = 'FEHLS GOTO W2i END5 ON FINISH SYSTEM; CALL SaMESSC1*** ABNORMALES PROGRAMM-ENDE ***', 2)} PUT SKIP EDITCONCODEs1» ONCODE())(A, FC8))J PUT SKIP EDITC'FEHLER-ANZAHL=S 3aFEHLER)CA, PUT SKIP EDITCaaABBRUCHjrEXTHA)} ENDj ON CONVERSION BEGIN; REGNR = 31» VSCHL = 'FEHL'i GOTO W25 ENDs ON ENDFILE(QU) GOTO EOPi /Ä KURZ-INFORMATION UEBER DEN PROGRAMM-START */ 1 CALL aäMESSC *** PROGRAMM STARTET ... ***',2)J PUT SKIPj /* ZYK: W2: EOP: H A U P T T E I L DES P R O G R A M M S */ DISPLAYC'FORMATIEREN BEGINNTI')} OPEN FILECRG3), FILE(QU)5 DISPLAYC'VERARBEITUNGSZYKLUS STARTETl^i READ FILE(QU) INTOCQUREC)} SCHLUE =I SUBSTR(QUREC,41,12)J DISPLAYC SCHLUESSEL=I II SCHLUE); RG3REC = SUBSTR(QUREC,l,40)3 IF REGNR>30 THEN REGNR = 315 WRITE FILECRG3) FR0MCRG3REC) KEYFR(M1CSCHLUE)i DISPLAY('SATZ GESCHRIEBEN.•)j GOTO ZYKi CLOSE FILECRG3), FILE(QU)5 /* ENDE DES HAUPTTEILS */ CALL aaMESSC'xx* NORMALES PROGRAMM-ENDE ***'> 1)3 ENDi /* CREATE */ /* EXEC LNKEDT DEFD QU,DEVADDR=SYSOO^ ASSGN SYS004,DATA=STREG3 ASSGN SYS005,VOL=AAAAAA DLBL RG3,REGIONAL3,99/360,DA,BLKSIZE=40,RECSIZE=40,KEYLEN=12 EXTEKT SYS005,VSN=AAAAAA,DATA,SQN=l,ONE,NUM=32 EXEC 33 PL1-0C Benutzungshinweise 10/89 D0S-4/ES 4.5.3. Indexsequentielle Dateien Eine detaillierte Beschreibung der Organisation indexsequentieller Dateien (IS-Dateien) ist in [31 enthalten. Bei Anwendung der indexsequentiellen Organisationsform in PL1 können folgende Satzformate verwendet werden: FB - geblockte Sätze fester Länge F - ungeblockte Sätze fester Lange V - ungeblockte Sätze variabler Länge Eine indexsequentielle Datei kann sowohl mit sequentiellem Zugriff als auch mit Direktzugriff verarbeitet werden. Durch das Attribut SEQUENTIAL in der DCL- oder OPEN-AnWeisung wird sequentieller Zugriff erreicht> während das Attribut DIRECT den Direktzugriff festlegt. Wenn keines dieser Attribute angegeben ist? wird die Datei sequentiell verarbeitet. Dateien mit indexsequentieller Organisationsform müssen implizit oder explizit mit den Attributen RECORD und KEYED vereinbart werden. Im ENVIRONMENT-Attribut muß die Option INDEXED sowie die Option für das Satzformat angegeben werden. Die Blocklänge (BLKSIZE)» Satzlänge (RECSIZE), Länge des Schlüssels (KEYLENGTH) sowie Schlüsselposition CKEYLOC) können im ENVIRONMENT-Attribut oder in der Jobsteueranweisung DLBL angegeben werden. Festlegungen zu - der Anzahl der unbenutzten Eintragungen pro Indexintervall beim Anlegen (CYLOFL=n), - der Satzanzahl im Datenintervall geblockter Dateien £NRECDS=n) und - Festlegung des Arbeitsmodus LOAD für die IS-Datei (Dateitypangabe ISC) sind nur in der DLBL-Jobsteueranweisung möglich. In der folgenden Übersicht sind alle ausführbaren ner IS-Datei verwendet werden, zusammengefaßt. einer IS-Datei Anweisungen> die für die Verarbeitung ei- Anweisungen für die Verarbeitung einer IS-Datei SEQUENTIAL-Zugriff DIRECT-Zugriff I Anweisung I- INPUT OUTPUT UPDATE INPUT OUTPUT UPDATE OPEN FILE(name) [>open_optn]> READ READ READ READ FILE(name); FILE(name) INTO(bezugn); FILE(name) INTOCbezugn) KEYCausdr)) FILE(name) INTOCbezugn) KEYTOCausdr)5 WRITE FILE(name) FROM(bezugn) KEYFROM(ausdr)j * * x REWRITE FILE(name) FROM(bezugn)} REWRITE FILE(name) FROM(bezugn) KEY(ausdr)3 DELETE FILE(name) KEY(ausdr)j CLOSE FILECname); * * * Erläuterungen: name Dateiname bezugn Bezugnahme (Satzvariable) ausdr Ausdruck (Schlüssel) Verarbeitung einer IS-Datei anhand eines Sekundärindex Für eine ungeblockte IS-Datei können mit Hilfe des Programms BLDSIND (siehe [3]) bis zu 15 Sekundärindexe aufgebaut werden. Jeder Sekundärindex wird durch eine Nummer (1 bis 15) bzw. einen Namen identifiziert> der Primärindex hat die Nummer 0. Die Verarbeitung einer IS-Datei, die Sekundarindexe besitzt, kann anhand eines beliebigen Index erfolgeni standardmäßig wird die Datei anhand ihres Primärindex verarbeitet. Der Anwender kann durch Angabe des INDEX-Parameters in der Jobsteueranweisung DLBL einen anderen Index für die Verarbeitung der zugehörigen IS-Datei festlegen. Innerhalb des Programms kann durch Aufruf des Eintrittspunktes SECIND ein Wechsel des Verarbeitungs-Index vorgenommen werden. Aufruf von SECIND: CALL SECIND(AI, A2)} AI gibt die FILE-Konstante (DTF-Name der Datei) an. A2 gibt den Namen des Sekundärindex an, der als aktueller Index benutzt werden soll. Die angegebenen Variablen müssen im PL1-Programm folgendermaßen vereinbart sein: DCL AI CHAR(7)5 DCL A2 CHAR(8)> DCL SECIND ENTRY OPTIONS(ASSEMBLER, INTER)} Der als Ergebnis des SECIND-Aufrufs festgelegte Verarbeitungs-Index ist bis SECIND-Aufruf für die Datei oder bis zum Abschließen der Datei gültig. zum nächsten PL1-0C Benutzungshinweise 10/89 D0S-4/ES Beispiele zur Arbeit mit IS-Dateien 1. Aufbau einer IS-Datei Zum Aufbau einer IS-Datei ISAH werden Daten von Lochkarten eingegeben? diese müssen aufsteigend nach dem Schlüssel sortiert sein. Der Parameter CYLOFL sichert den Speicherplatz für Eintragungen im Indexbereich> damit später weitere Sätze hinzugefügt werden können. Die Daten werden in den Plattenbereich ISDAT, der durch die Jobsteueranweisung EXTENT bereitgestellt wird* eingetragen. ASSGN SYSIPT,SYSRDR OPTION LINK ACTION NOMAP EXEC PLI * PROCESS NOMAP,STMT,COUNT,FLOW^MARGINIC1I1)} CREATE: PROC 0PTI0NSCMAIN)5 DCL aaPROG CHARC7) VAR INITC•CREATE»), /* aaVERS CHARC1O) INITC'890619.001•), /* aaFEHLER BIN FIXEDC15) INITCO), 11 /* aaABBRUCHJTEXT CHARC60) VAR INITC )}/* PROGRAMM-NAME PROGRAMM-VERSION FEHLERANZAHL NACHRICHT */ */ */ */ DCL CADDR, SUBSTR, ONCODE, DATE> TIME) BUILTINi DCL aaDATUM CHARC8), aaZEIT CHARC8)) ATUM TRANSLATEC'ABKCDKEFS ".'11 DATE, ^EFCDAB 1 )} /* H I L F S P R O Z E D U R CEN) */ PROCCTEXT> STEUERUNG)5 DCL TEXT CHARC40)* DCL STEUERUNG BIN FIXEDC15)* IF STEUERUNG^1 THEN PUT PAGE) ELSE IF STEUERUNG=2 THEN PUT SKIPC2)* ELSE PUT SKIP 5 = TRANSLATE C'AB*CD*EF'» MTIME, '»ABCDEF')5 PUT EDITCTEXT, aaPROG, V 1 , 33VERS, a aaDATUM, M EIT ' UHR 1 ) CA> C0LC41), 3 A> XC1), A, XC1), A, A ) ; EHDi /* aSMESS */ V E R E I N B A R U N G E N /* */ DCL ISDAT FILE RECORD SEQUENTIAL OUTPUT KEYED ENVCINDEXED F BLKSIZEC8O) RECSIZEC8O) KEYLENGTHC3) KEYLOCCl))i DCL 1 ISSATZ BASEDCPTR), 2 KEY3 CHARC3), 2 KEY33 CHARC33), 2 KEY15 CHARC15), 2 BER21 CHARC21), 2 KEY08 CHARC8)i DCL BER80 CHARC8O)} DCL EOF BITC1) INITC'O'B); /* ALLGEMEINE FEHLER-BEHANDLUNG */ ON ERROR BEGIN* ON FINISH SYSTEMS CALL 33MESSC1*** ABNORMALES PROGRAMM-ENDE ***•, 2)i PUT SKIP EDITCIONC(M)E=I, ONCODEC))CA, FC8))i PUT SKIP EDITC'FEHLER-ANZAHL^, aaFEHLER)(A, FC3))5 PUT SKIP EDITCaaÄBBRUCH TEXDCA)} ENDj ON ENDFILECSYSIN) EOF='llBi /* - - - KURZ-INFORMATION UEBER DEN PROGRAMM-START */ CALL aaMESSC1*** PROGRAMM STARTET ... xxx',2)l PUT SKIP5 /* H A U P T T E I L DES P R O G R A M M S */ PTR = ADDRCBER80)3 OPEN FILECISDAT)* GET FILECSYSIN) EDIT(BER80)(A(80))j ZYKL: DO WHILEC-EOF); PUT FILECSYSPRINT) EDITCKEY3* BER80KSKIP, A, XC3), A)l WRITE FILECISDAT) FROMCISSATZ) KEYFR0MCKEY3)i GET FILECSYSIN) EDITCBER80)CA(80))i END; 35 PL1-0C Benutzungshinweise /* 10/89 ENDE DES HAUPTTEILS D0S-4/ES */ CLOSE FILECISDAT)* CALL aatiESSC1*** NORMALES PROGRAMM-ENDE ***•, l)j ENDi /* CREATE, 1989.06.19 */ /* EXEC LNKEDT ASSGN SYS005>VOL=AAAAAA DLBL ISDAT,'IS-DAT«,1,ISC,CYLOFL=1,BLKSIZE=80,RECSIZE=80,KEYLEN=3 EXTENT SYS005,VSN=AAAAAA,INDEX,ONE,NUM=3 EXTENT SYS005,VSN=AAAAAA,DATA,ONE,NUM=20 EXEC ... (SYSIN-Eingabedaten) /* *** SEKUNDAERINDEXE AUFBAUEN ASSGN SYS004,V0L=AAAAAA DLBL FFF,1IS-DAT',,ISE EXTENT SYS004 EXEC BLDSIND ISFILE FFF,FIXUNB,MODE=BUILD INDEX KEYL0C=4,KEYLEN=33,NUMBER=l,NAME=PP1,DUPKEY=YES INDEX KEYLOC=40,KEYLEN=15,NUMBER=2,NAME=PP2,DUPKEY=NO INDEX KEYL0C=73,KEYLEN=8,NUMBER=3»NAME=PP3>DUPKEY=N0 END 2. Aktualisieren einer IS-Datei Im ersten Teil wird die ISAM-Datei für den direkten Zugriff eröffnet. Zum Schreiben eines Satzes wird die WRITE-Anweisung verwendet, zum Überschreiben eines Satzes die REWRITEAnweisung und schließlich zum Löschen die DELETE-Anweisung. Im zweiten Teil des Programms wird die Datei für sequentiellen Zugriff eröffnet und die gesamte Datei gelesen und ausgedruckt. Auftretende Fehler, die fehlerhafte Schlüssel betreffen, werden durch die ON KEY-Einheit behandelt, welche die fehlerhaften Schlüssel ausdruckt. ASSGN SYSIPT,SYSRDR OPTION LINK ACTION NOMAP EXEC PLI * PROCESS NOMAP,STMT,COUNT,FLOW»MARGINIC1!')} VERARB: PROC OPTIONS(MAIN)5 DCL MPROG CHARC7) VAR INIT('VERARB1), /* 33VERS CHARC10) INITC•890619.001'), /* 33FEHLER BIN FIXEDC15) INITCO), /* aaABBRUCH TEXT CHARC60) VAR I N I T C ) } / * PROGRAMM-NAME PROGRAMM-VERSION FEHLERANZAHL NACHRICHT */ */ */ */ DCL CADDR, SUBSTR, ONCODE, DATE, TIME, TRANSLATE) BUILTIN} DCL 33DATUM CHARC8), aaZEIT CHARC8)} aaDATUM = T R A N S L A T E C ' A B Ä C D K E F 1 , •. •II DATE, 'KEFCDAB')} H I L F S P R O Z E D U R CEN) */ aaMESS: PROCCTEXT, STEUERUNG)) DCL TEXT CHARC4O)} DCL STEUERUNG BIN FIXEDC15)} IF STEUERUNG=1 THEN PUT PAGE} ELSE IF STEUERUNG=2 THEN PUT SKIPC2)} ELSE PUT SKIP} aaZEIT = TRANSLATEC'AB*CD*EF', ':•IITD1E, •«ABCDEF•)| PUT EDITCTEXT, aaPROG, V , 33VERS, aaDATUM, aaZEIT, ' UHR1 CA, C0LC41), 3 A, X(l), A, XC1), A, A)} END} /* aaMESS */ /* V E R E I N B A R U N G E N DCL ISDIR FILE RECORD DIRECT UPDATE KEYED ENVCINDEXED F BLKSIZEC8O) RECSIZEC8O) KEYLENGTHC3) KEYLOCC1))} DCL SI CHARC1), NI BIN FIXEDC15)} DCL DIJBLC4) CHARC7) INITC'ISDIR ', »ISDIRl S 'ISDIR2 DCL A2C4) CHARC8) INITC'PRIMARY ', "PP1 ', 'PP2 */ 'PP3 DCL TEST BITCDi DCL TEXTC6) CHARC13) INITC»GELESEN:', 'GELOESCHT:1, 'AKTUALISIERT:S 'HINZUGEFUEGT:1, •LESENCSCHL.-GR.)' •LESEN(SQL):', DCL CHAR1 C H A R U ) , CHAR16 CHARC16)i 36 PL1-0C Benutzungshinweise 10/89 D0S-4/ES DCL 1 ST_CHAR16 DEFCCHAR16), 2 CHAR2 CHARC2), 2 FILL1 CHARC1), 2 CHAR43 CHARC3), 2 FILL2 CHARC1), 2 CHAR83 CHARC3); DCL CHAR72 CHARC72)j DCL 1 ISSATZ, 2 KEY3 CHARC3), 2 KEY33 CHARC33), 2 KEY15 CHARC15), 2 BER21 CHAR(Zl), 2 KEY08 CHARC8); DCL BER80 CHARC80)* DCL ABER21 CHARC2D5 DCL ANTWORT CHARCDi DCL CHAR3 CHARC3); DCL SECIND ENTRY OPTIONSCASSEMBLER INTER)3 /* ALLGEMEINE FEHLER-BEHANDLUNG */ ON ERROR BEGINi ON FINISH SYSTEMJ CALL aaMESSC 1 *** ABNORMALES PROGRAMM-ENDE * * * ' , 2 ) 5 PUT SKIP EDIT( I ONCODE= I , ONCODEOMA, F C 8 ) ) 5 PUT SKIP EDIT( l FEHLER-ANZAHL= i » SttFEHLERMA, F C 3 ) ) J PUT SKIP EDITCaKDA^RUCH TEXT)CA)i EKD KEYCISDIR) BEGINj 1 IF TESTs O'B THEN DO5 DISPLAYC'SATZ MIT I I C H A R 3 I | • " NICHT VORHANDEN1 GOTO ZYKL; ENDj ELSE DO; DISPLAYC'EINFUEGEN BERECHTIGT )j GOTO M2i END> END, ON CONDITIONCHELP) BEGINj DISPLAYC ' ------—.. DISPLAYC'KOMMANDO-FORMAT: XX SSSSSS TTTITr1)) DISPLAYC ' DISPLAYC" XX=L1 L E S E N CEINES SATZES)1)* CSATZGRUPPE)')| DISPLAYC• XX=L2 DISPLAYC' XX=L3 CAB SATZ ...)')* DISPLAYC' XX=D L 0 E S C HEN1}) DISPLAYC' XX=U A K T U A L I S I E 1R E N')j DISPLAYC' XX=A H I N Z U FÜEGEN )) DISPLAYC DISPLAYC ENDE DER ARBEIT: STOP 1 )* DISPLAYC END; ON CONDITIONCDSPLY) BEGIN; DISPLAYC'KEY3= • | KEY3)i DISPLAYC»KEY33= ' | KEY33); § DISPLAYC KEY15= ' | KEY15)j DISPLAYC'BER21= ' II BER21 II • <—')i DISPLAYC'KEY08= • II KEYO8)i ENDi ON /» - - - KURZ-INFORMATION UEBER DEN PROGRAMM-START - - - */ - - - */ 1 CALL 33MESSC *** PROGRAMM STARTET ... « » S Z J j PUT SKIP5 /* H A U P T T E I L DES P R O G R A M M S OPEN FILECISDIR)} TEST = 'O'Bi ZYKL: LESEN: SIGNAL CONDITIONCHELP)» DISPLAYC'KOMMANDO/SCHLUESSEL EINGEBEN: * II •FORMAT: XX SSSSSS TATATA" ) REPLYCCHAR16)i 1 IF SUBSTRCCHAR16» 1,4) ='STOP THEN GO TO ENDEi IF SUBSTRCCHAR16»1,5)=IINDEX1 THEN DO5 SI = SUBSTRCCHAR16,6,1)i NI = SIj CALL SECINDCDLBLCNI), A2CNI))l 37 PL1-0C Benutzungshinweise 10/89 IF NI=0 THEN DO; DISPLAYCPRIMARY-INDEX ...')i DISPLAYC 'SCHLUESSEL?1 ) REt>LYCKEY3)i READ FILECISDIR) KEYCKEY3) INTOCISSATZ)i SIGNAL CONDITIONCDSPLY)i GO TO ZYKLi END; ELSE IF NI=1 THEN DOi DISPLAYC'SECONDARY-INDEX 1 ...')i DISPLAYC'SCHLUESSEL?§) REPLYCKEY33)i READ FILECISDIR) KEYCKEY33) INTOCISSATZ)i SIGNAL CONDITIONCDSPLY)i GOTO ZYKLi END; * ELSE IF NI=2 THEN DO; DISPLAYC'SECONDARY-INDEX 2 ...'); DISPLAYC'SCHLUESSEL?1) REPLYCKEY15)j READ FILECISDIR) KEYCKEY15) INTOCISSATZ)i SIGNAL CONDITIONCDSPLY)i GO TO ZYKLi ENDi ELSE IF NI=3 THEN DOi DISPLAYC' ... 3 ...»)i DISPLAYC'SCHLUESSEL?') REPLYCKEY08)i READ FILECISDIR) KEYCKEY08) INTOCISSATZ)i SIGNAL CONDITIONCDSPLY)i GO TO ZYKLi END; ELSE GOTO ZYKLi ENDi IF CHAR2='L1' THEN DO; KEY3 = CHAR«; CHAR3 = KEY3i READ FILECISDIR) KEY(KEY3) INTOCISSATZ)i SIGNAL CONDITIONCDSPLY); IT = 1; GO TO Mli ENDi IF SUBSTRCCHAR2,1,1)="DI THEN DO; KEY3 = CHAR43i CHAR3 = KEY3i DELETE FILECISDIR) KEYCKEY3)i DISPLAYCTEOTCIT) II KEY3)i GO TO Mli ENDi IF SUBSTRCCHAR2,1,1)='U' THEN DOi KEY3 = CHAR43; CHAR3 = KEY3i READ FILECISDIR) KE^CKEY3) INTOCISSATZ)i DISPLAYC *A L T: -—>' I BER21 II M001: DISPLAYC'NEUEN TEOT EINGEBEN •) REPLYCABER21)i DISPLAYC «N E U: -—•>" I ABER21); DISPLAYC «AENDERUNG RICHTIG?1) REPLYCAJCTWORDi I IF ANTWORT-='J THEN GOTO JIOOlj BER21 = ABER21} REWRITE FILECISDIR) FRÖMCISSATZ) KEYCKEY3)i SIGNAL CONDITIONCDSPLY)i IT = 3i GO TO Mli ENDi IF SUBSTRCCHAR2»l,l)=iAI THEN DO; TEST = 'l'Bi READ FILECISDIR) INTOCISSATZ) KEYCKEY3)i DISPLAYC'SATZ SCHON VORHANDEN - AKTUALISIEREN|')i TEST = 'O'Bi GO TO LESENi M2: TEST = 'O'Bi DISPLAYC'KEY3=')1 REPLYCKEY3)i DISPLAYC'KEY33S ) REPLYCKEY33)i DISPLAYC'KEY15=') REPLYCKEY15)i DISPLAYC'BER21«') REPLYCBER21)) 38 DOS-4/ES PL1-0C Benutzungshinweise Hl: ENDE: 10/89 DOS-4/ES DISPLAYCKEYOS* 1 ) REPLY(KEY08), WRITE FILE(ISDIR) FROM(ISSATZ) KEYFR0M(KEY3)s SIGNAL CQNDITION(DSPLY)J IT = 4* GO TO Mli END$ SIGNAL CONDITION(HELP)» GO TO LESENj PUT FILECSYSPRINT) EDIT(TEXT(IT), KEYS, STRINGdßSATZ)) (SKIP, A(15), A, X(3), A)i GO TO ZYKL3 /* ENDE DES HAUPTTEILS CLOSE FILE(ISDIR)* CALL aaMESSC'*** NORMALES PROGRAMM-ENDE ***', 1)$ ENDj /* VERARB */ */ /* EXEC LNKEDT ASSGN SYS005,VOL=AAAAAA DLBL ISDIR,'IS-DAT1,,ISE,BLKSIZE=80,RECSIZE=80,KEYLEN=3 EXTENT SYS005 DLBL ISDIR1,'IS-DAT1,,ISE,KEYLEN=33,INDEX=PP1 EXTEKT SYS005 DLBL ISDIR2,1IS-DAT1,,ISE,KEYLEN=15,INDEX=PP2 EXTENT SYS005 DLBL ISDIR3,'IS-DAT',,ISE,KEYLEN=8,INDEX=PP3 EXTENT SYS005 EXEC fr»5.4. Nutzung der Fernverarbeitungsmethode TAM in PL1-Programmen Im D0S-4/ES ist für die Arbeit mit Terminals die Zugriffsmethode TAM (Telecommunication Access Method) bestimmt. Sie wird durch Teile des Betriebssystems realisiert, die ständig im virtuellen Speicher sind. Arbeitsweise und Funktionen von TAM sind in [71 beschrieben. TAM arbeitet als selbständige System-Task, die die Bedienung aller Geräte asynchron und mehr oder weniger automatisch durchführt» so daß alle laufenden Jobs gleichzeitig ihre Dienste (Absenden und Empfangen von Nachrichten) in Anspruch nehmen können. Ein Terminal kann sein - ein lokal angeschlossenes Gerät (beispielsweise Bildschirm, Schreibmaschine, Typenradoder Mosaikdrucker), - ein über Start-Stopp-, Fernschreib- oder Synchronleitung fernangeschlossenes Gerät oder - ein fernangeschlossener Kleinrechner oder Rechner. Die Bedienerkonsole der EDVA ist stets ein TAM-Terminal. Die Menge aller Terminals, mit denen TAM arbeiten soll, bildet das "physische Netz" (Konfiguration von TAM). Der Zugang der Anwendungs- und Systemprogramme zu den Terminals erfolgt über ein "logisches Netz", innerhalb dessen die Terminals zu Gruppen zusammengefaßt werden können. Das logische Netz hat eine Baumstruktur mit End- und Gruppenknotens jeder Endknoten entspricht einem Terminal. Jeder Knoten des logischen Netzes hat einen bis zu vier Zeichen langen Knotennamen, über den die Verbindungsaufnahme erfolgt. Ein Terminal kann zwei unterschiedliche Funktionen erfüllen: a) Das Terminal kann als System- oder Nebenkonsole arbeiten, d. h. als Gerät, von dem der Bediener Jobsteueranweisungen und Kommandos eingibt und auf der das Betriebssystem seine Nachrichten ausschreibt. In diesem Fall arbeitet das Terminal nicht direkt mit einem bestimmten NutzerProgramm zusammen, vielmehr mit dem Betriebssystem. Nur über die PL1-Anweisung DISPLAY(zeichenkettenvariable) EREPLY(bezugnähme)]* ist eine bescheidene Kommunikation zwischen Terminal und Nutzerprogramm gegeben (Konsolinterface). Voraussetzung dafür ist, daß für den Auftrag eine Nebenkonsole definiert ist und daß dieses Terminal im Zustand "LOGON SYSTEM" ist. b) Das Terminal kann mit dem Nutzerprogramm zusammenarbeiten. Diese Funktion kann man mit Terminals aller Typen erfüllen. Das Terminal übergibt (sendet) dann beim Aufruf des Anwenderprogramms diesem Programm irgendeine Nachricht bzw. empfängt eine Nachricht, die von diesem Programm gesendet wird» und schreibt oder druckt sie aus. Die übergebenen Nachrichten haben meist den Charakter von Daten (logischen Sätzen). TAM ermöglicht folgende Formen der Zusammenarbeit (interfaces) zwischen Anwenderprogramm und Terminal: - Konsol-Interface Auf einem beliebigen Terminal vom Konsoltyp kann geschrieben werden und können Nachrichten empfangen werden. Es ist kein Anknüpfen und Beenden der Verbindung notwendig. Mit der PLl-DISPLAY-Anweisung ist es nur möglich, mit der Systemkonsole oder der eigenen Nebenkonsole zu kommunizieren. - Datei-Interface Im Programm ist eine gewöhnliche sequentielle Datei zu vereinbaren. Diese Datei ist vor der Programmausführung durch die Jobsteueranweisungen // ASSGN SYSnnn,TAM // TCC dateiname,knotenname,OPTION=ACQ einem geeigneten/gewünschten Knoten des logischen Netzes zuzuordnen. Im PLl-Programm wird dann auf die übliche Weise mit den Anweisungen OPEN, READ, WRITE und CLOSE der Algorithmus für die Kommunikation geschrieben. 39 PL1-0C Benutzungshinweise 15. 10/89 D0S-4/ES Verbindung zwischen PL1-Prozeduren und Assembler-Routinen Dieser Abschnitt befaßt sich mit der Verbindung zwischen PL1-Prozeduren und Routinen» die in Assemblersprache geschrieben sind. Aufrufe von Assembler-Routinen durch PL1-Prozeduren sind nur dann erforderlich» wenn die Assemblersprache bessere Möglichkeiten für die Realisierung eines Teilprogramms bietet oder diese Teile nicht in PL1 programmiert werden können. Aufrufe von PLl-Prozeduren durch Assembler-Routinen können dann erforderlich werden» wenn ein Programmteil in PL1 übersichtlicher und schneller zu programmieren ist. Zum Verständnis des Aufbaus solcher gemischtsprachiger Programme sind grundlegende Kenntnisse über die PL1-Umgebung erforderlich. Um PL1-Programme erfolgreich zu verarbeiten» müssen bestimmte Bedingungen eingehalten werden» welche für den Aufbau und die Erhaltung der PL1-Umgebung erforderlich sind. Die PL1-Umgebung muß aufgebaut werden» bevor eine Assemblerroutine erstmalig eine PLl-Prozedur ruft. Andererseits muß die PL1-Umgebung bei Aufruf einer Assemblerroutine durch eine PL1-Prozedur so gerettet werden» daß sie vor Rückkehr in die PL1-Prozedur wieder bereitgestellt werden kann. Zu ihrer Aufbewahrung ist folgendes erforderlich: a) Retten der Reg isterinhalte» b) Bereitstellen eines neuen Rettebereiches zum Laden seiner Adresse im Register 13» c) Erhalten des Inhalts von Register 12 Cnur wenn für Programmunterbrechungen» die bei Ausführung der Assembler-Routine auftreten» die PL1-Fehlerbehandlungsroutine verwendet werden soll). 5.1. PL1-Umgebung Die PL1-Umgebung stellt die Gemeinsamkeit der Bedingungen dar» die erfüllt sein müssen» um ein PL1-Programm ausführen zu können. Sie wird bei der Übersetzung vorbereitet» indem in die PL1-Prozedur der sogenannte Blockprolog und Blockepilog sowie verschiedene Steuerblöcke eingefügt werden. Sie wird bei Aufruf der Prozedur durch Routinen der residenten und der transienten PL1-Bibliothek aufgebaut. Diese Umgebung umfaßt Maßnahmen zur Speicherplatzverwaltung» Unterbrechungsbehandlung sowie Aufgaben- und Dateiverwaltung. Hierbei wird eine Vielzahl von PL1-spezifischen Steuerblöcken aufgebaut. 5.2. Ablaufsteuerung bei Aufruf eines PLl-Proaramms Der Aufruf eines PL1-Programms verläuft in folgenden Schritten: 1. Das System oder das rufende Programm übergibt die Steuerung an einen Eingangspunkt des Moduls PLISTART. Solch ein Modul wird bei der Übersetzung jeder externen Prozedur erzeugt. Er enthält die drei Eingangspunkte: PLISTART, PLICALLA» PLICALiB. 2. Von dem Programmabschnitt PLISTART wird die Steuerung an einen Eingangspunkt des Moduls I0TGVUI der residenten PLl-Bibliothek übergeben. Die nachfolgende Übersicht zeigt die Zuordnung der Eingangspunkte. Programmabschnitt PLISTART Modul IOTGVUI PLISTART IOTGVUIA PLICALLA IOTGVUIB PLICALLB IOTGVUIC 3. Der Modul IOTGVUI ruft die Transientphase IOTGTRAN auf und übergibt die Steuerung ihrem Modul IOTGVIN. Dieser Modul hat folgende Funktionen: a) Verarbeitung der PLl-Optionen für die Programmausführung b) Bereitstellen des Anfangsspeicherbereichs (ISA) c) Initialisierung des ProgrammVerwaltungsbereichs» der eine Reihe von PLl-Steuerblocken enthält (wie z.B. TCA, TIA, PRV und weitere) d) Aktivierung der PLl-Fehlerbehandlung (durch STXIT-Makro mit dem Parameter PC bzw. AB) Durch die Ausführung dieser Aktionen ist die PLl-Umgebung aufgebaut» an den residenten Modul IOTGVUI zurückgegeben. die Steuerung wird 4. Der Modul IOTGVUI entnimmt dem (einzigen bzw. ersten vom Programmverbinder verarbeiteten) Programmabschnitt mit dem Namen PLXMAIN die Adresse des Eingangspunktes und übergibt diesem die Steuerung. Der PLl-Optimierungscompiler erzeugt für jede mit "OPTIONS (MAIN)11 programmierte externe Prozedur einen Programmabschnitt mit dem Namen PLIMAIN» der die V-Adresse des primären Eingangspunktes der Prozedur enthält. Soll das Programm in einem anderem Eingangspunkt aufgerufen werden» muß dem Programmverbinder ein spezieller Modul mit dem Namen PLIMAIN angegeben werden» welcher die V-Adreßkonstante des gewählten Eingangspunktes enthält. Dieser Modul muß in der Programmverbinder-Eingabe allen übrigen Auftreten des Programmabschnitts PLIMAIN vorangehen. PL1-0C Benutzungshinweise 10/89 D0S-4/ES Der Modul kann beispielsweise folgende Form haben: PLIMAIN CSECT DC DC END VCname des eingangspunktes) F'O' ~ ~ Das aufrufende Programm kann den Eingangspunkt des PL1-Programms dynamisch durch Änderung des Wertes der V-Adreßkonstante im Programmabschnitt PLIMAIN bestimmen. Ist beim Verbinden des Programms kein Programmabschnitt PL DIAIN vorhanden» d.ti. es existiert keine Hauptprozedur, dann wird der Programmabschnitt PLZMAIN aus der Modulbibliothek verwendet. Beim Aufruf des Programms wird eine Fehlernachricht ausgegeben und die Steuerung an das rufende Programm bzw. das Betriebssystem zurückgegeben. 5.3. Programmabschnitt PLISTART Der Programmabschnitt PLISTART hat drei Eingangspunkte: 1) Eingangspunkt PLISTART Diesen Eingangspunkt kann entweder das Betriebssystem dder eine Assembler-Routine benutzen. Der PLl-Prozedur können jedoch keine Parameter übergeben werden* Nach Ausführung der PL1-Prozedur wird die Steuerung stets an das Betriebssystem übergeben (d.h. die Programmausführung ist beendet). 2) Eingangspunkt PLICALLA Der Eingangspunkt PLICALLA kann für den Aufruf einer PL1-Prozedur durch eine AssemblerRoutine mit oder ohne Parameter verwendet werden. Die PLl-Prozedur fordert soviel Arbeitsspeicher an> wie sie benötigt. Nach Ausführung der PLl-Prozedur geht die Steuerung an die aufrufende Routine zurück. 3) Eingangspunkt PLICALLB Der Eingangspunkt PLICALLB kann für den Aufruf einer PLl-Prozedur durch eine AssemblerRoutine mit oder ohne Parameter verwendet werden. Die PLl-Optionen werden von dei,j Assembler-Routine festgelegt und ebenso auch Größe und Adresse des Arbeitsspeichers* Nach Ausführung der PLl-Prozedur geht die Steuerung an die aufrufende Routine zurück, Die Form der Parameterliste ("parmlist") für diesen Fall des Aufrufs einer PLl-Prozedur wird detaillierter im Abschnitt ''Verwendung des Eingangspunktes PLICALLB"j der im Abschnitt 5*6® enthalten Ist» beschrieben. 5.4. Dynamischer Speicherbereich Der dynamische Speicherbereich enthält Informationen über die PLl-Umgebung. Beim Aufruf einer PLl-Prozedur (und eines BEGIN-Blockes) wird solch ein DSA als Speicherbereich für V;: waltungszwecke und dynamisch zu speichernde Daten (AUTOMATIC-Öaten und Zwischenergebnisse) aufgebaut, Der DSA beginnt mit einem Registerrettebereich and wird über Register 13 adressiert. Er kann im Anfangsspeicherbereich (ISA) oder in einem anderen dynamisch angeforderten Speicherbereich enthalten sein. Enthält ein PLl-Programm eine Assembler-Routine» welche von der PLl-Prozedur aufgerufen wird* so muß diese bestimmte DSA-Konventionen zwecks Bewahrung der PLl-Umgebung einhalten. Dies kann auf verschiedene Weise erreicht werden» beispielsweise auch in einem statisch bereitgestellten Rettebereich ohne Verwendung des dynamischen Speicherbereichs. Die Auswahl der Art zur Bereitstellung eines DSA hängt von der Art des gegenzeitigen Aufrufs von PL1-Prozeduren und Assembler-Routinen ab. Folgende Eintragungen in den Registerrettebereich bzw. DSA sind erforderlich; a) Wenn die Assembler-Routine nicht die PL1 -Fehlerbehandlung benutzt und keine PLI-P aufruft» dann müssen die beiden ersten Bytes des DSA bzw. Rettebereichs den Inhalt X'00001 haben. Nur der Inhalt der von der Assembler-Routine geänderten Register ist zu retten. Für die Fehlerbehandlung ist durch einen STXIT-Makro mit den Parametern PC bzw. AB eine eigene Routine zu aktivieren. Vor der Rückkehr ist die Aktivität der PL1-Routine für die Fehlerbehandlung wiederherzustellen. Die Länge des DSA oder Rettebereichs muß mindestens 80 Bytes betragen. Die Assembler-Routine kann weder rekursiv aufgerufen noch parallel verwendet werden. b) Wenn die Assembler-Routine die PL1-Fehlerbehandlung benutzt und daher weitere PL1-Prozeduren aufrufen kann» müssen die beiden ersten Bytes des DSA oder Rettebereichs den Inhalt X'80001 haben. Alle Registerinhalte sind zu retten. Die Adresse des DSA der aufrufenden PLl-Routine wird in das 2. Wort des Assembler-DSA bzw. Rettebereichs eingetragen* Die minimale DSA-Lange beträgt 88 Bytes» wobei die Bytes 87 und 88 den Inhalt X'91C0® haben müssen. Dieser Wert gibt den Standardstatus derjenigen ON-Bedingung an? deren Status in PL1-Prozeduren geändert werden kann. Die Adresse des PL1 -Bibliotheksarbeitsspeichers LNS.die ab dem 73. Byte im PL1-DSA enthalten ist» muß auf die gleiche Position im AssemblerDSA bzw. Rettebereich übertragen werden. Die Adresse für den Anfang des nächsten aufzubauenden DSA muß im 20. Wort eingetragen werden. Bei einem statischen Rettebereich wird diese aus dem DSA der rufenden PLl-Prozedur entnommen. Zur Bereitstellung eines DSA für die Assembler-Routine kann das PLl-Programm für die Speicherverwaltung benutzt werden. Die erste freie Adresse wird (durch Addition der DSA~Länge zur ursprünglichen ersten freien Adresse) berechnet und an die entsprechende Stelle gespeichert. Bei Einhaltung dieser Bedingungen ist die PL1-Fehlerbehandlung einschließlich des Aufrufs von ON-Einhei" ten in der Assembler-Routine wirksam. In der Assembler-Routine können Daten im DSA gespeichert werden» und zwar ebenso wie .. PL1-Prozeduren ab dem 117. Byte des DSA. Die DSA-Lange muß ein Vielfaches von 8 Bytes sein. Die Anfangsadresse des DSA der Assembler-Routine ist mit dem 20. Hort des DSA des* rufenden PLl-Prozedur identisch. PL1-0C Benutzungshinweise 5.5> 10/89 D0S-4/ES Aufruf von Assembler-Routinen durch PL1-Prozeduren Nicht rekursive und nicht parallel verwendbare Assembler-Routinen In diesem Fall kann der Rettebereich statisch angelegt werden. Soll die Assembler-Routine die PL1-Fehlerbehandlung benutzen» so müssen die im Abschnitt 5.4. unter b) angegebenen Bedingungen eingehalten werden. Die Rückwärtsverkettung der DSA und Rettebereiche ist nicht erforderlich» jedoch für eine leichtere Orientierung und für das Auffinden der DSA im Speicherausdruck zu empfehlen. Einfaches Beispiel für den Aufruf einer nicht rekursiven und nicht parallel verwendbaren Assembler-Routine mit statischem Rettebereich: ASSGN SYSIPT »SVSRDR OPTION LINK CATALR BSP1P EXEC PLI PLI1: PROC 0PTI0NS(MAIN)| DCL ASSI ENTRY OFT IONS(ASSEMBLER INTER)} DCL (2X1 > ZK2) CHAR(4)} ZK1 = 'ZKl'j ZK2 = 'ZKZ", CALL ASS1CZK1, ZK2)* PUT DATA(ZK1, ZK2)I END, / * 1>LI1 * / /* CATALR BSP1A EXEC ASSEMBLY TITLE 'BSP1, PLI -> ASS1 ASSI START SAVE (14,12),,* BALR 10,0 USING *,10 LA 5,RETTE ST 13,4(3) VERKETTUNG DER RETTEBEREICHE ST 3,8(13) LR 13,3 NEUER RETTEBEREICH * START DER EIGENEN ROUTINE L 3,0(1) UEBERNAHME DER PARAMETERADRESSEN L 4,4(1) XC 0(4,3),0(4) VERTAUSCHEN DER WERTE XC 0(4,4)>0(3) XC 0(4,3),0(4) * ENDE DER EIGENEN ROUTINE L 13,4(13) ERNEUERN DES PLI-DSA RETURN (14,12) ERNEUERN DER REGISTER, RUECKKEHR RETTE DS 18F STATISCHER RETTEBEREICH END ASSI /* EXEC CATMOD OPTION CATAL PHASE BSP1,* INCLUDE BSP1P INCLUDE BSP1A ENTRY EXEC LNKEDT EXEC BSP1 Rekursive und parallel verwendbare Assembler-Routine Bei jedem Aufruf einer solchen Routine muß ein DSA aufgebaut werden. Dafür kann die PLI-Speicherüberlauf-Routine benutzt werden, um Speicherplatz dynamisch zu erhalten, wenn der Anfangsspeicherbereich (ISA) nicht ausreicht. Bei Beendigung eines Aufrufs der Assembler-Routine wird in Übereinstimmung mit den PLI-Konventionen dieser Speicherplatz freigegeben und die Steuerung an die rufende PLI-Routine zurückgegeben. Einfaches Beispiel für den Aufruf einer rekursiv und parallel verwendbaren Assembler-Routine mit einem DSA, der unter Verwendung der PLI-Speicherüberlauf-Routine aufgebaut wird: , ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP2P EXEC PLI PLI2: PROC OPTIONS(MAIN) RECURSIVEi DCL ASS2 ENTRY(BIN FIXED(31), BIN FIXED(31)) OPTIONS(ASSEMBLER INTER)i DCL (AI INIT(l), A2 INIT(2)) BIN FIXED(31)i PUT LISTCA1 = •, AI, 'A2 = ', A2) SKIP(3); CALL ASS2(A1, A2)J STOPj PLI2A: EKTRY(X1, X2); DCL (XI, X2) BIN FIXED(31)j XI = XI + 1$ X2 = X2 • 10» PlfT LISTCX1 = S XI, *X2 = •» X2) SKIPi CALL ASS2(X1, X2)$ ENDj /* PLI2 */ /* Ptl-OC Benutzungshinweise 10/89 CATALR BSP2A EXEC ASSEMBLY TITLE 'BSP2, PL1 -> ASS1 ASS2 START SAVE BALR 10,0 USING 10 LR 9,1 * START AUFBAU DES NEUEN DSA LA 0,96 L 1,76(13) ALR 0,1 CL 0,12(12) BNH ASS2JA L 15,116(12) BALR 14,15 ASS2JA ST 0,76(1) ST 13,4(1) MVC 72(4,1),72(13) LR 13,1 MVC 0(2,13),=X'8000' MVC 86(2,13),=X'91C0' * ENDE DES AUFBAUS DES NEUEN DSA LM 4,5,0(9) CLI 3(4),16 BNL ASS2END L 6,0C4) L 7,0(5) AR 6,7 ST 6,0(0,4) * AUFRUF PLI-PROGRAMM LR 1,9 SR 5,5 L 15,=V(PLI2A) BALR 14,15 ASS2END L 13,4(13) RETURN (14,12) END ASS2 /* EXEC CATMOD OPTION CATAL PHASE BSP2,* INCLUDE BSP2P INCLUDE BSP2A ENTRtf EXEC LNKEDT EXEC BSP2 D0S-4/ES RETTEN DER PL1-REGISTER RETTEN DER ADRESSE DER PARAMETERLISTE LAENGE DES NEUEN DSA NAB (NEXT AVAILABLE BYTE) NEUES NAB KANN DSA AUFGEBAUT HERDEN ? JA NEIN, PL1-SPEICHERUEBERLAUF-ROUTINE RUFEN NEUE NAB-ADfcESSE IN NEUEN DSA REUECKKETTUNG DER DSA KOPIEREN DER LWS-ADRESSE ADRESSE DES NEUEN DSA DSA-KENNZEICHEN STANDARD-WERT DER ON-BEDINGUNGEN PARAMETER-ADRESSEN BEENDIGUNG DER REKURSION ADRESSE DER PARAMETERLISTE PL1-KONVENTIONEN ERNEUERN DES PL1-DSA ERNEUERN DER. REGISTER, RUECKKEHR Assembler-Routine, die Register 12 verwendet In einer Assembler-Routine, welche die PL1-Fehlerbehandlung verwendet, darf der Inhalt des Registers 12 nicht verändert werden. Muß Register 12 verwendet werden, dann ist durch die Assembler-Routine eine eigene Fehlerbehandlung, die durch einen STXIT-Makro mit dem Parameter PC bzw. AB aktiviert wird, bereitzustellen. Vor der Rückkehr in die rufende PL1-Prozedur muß die PL1-Fehlerbehandlung reaktiviert werden. Einfaches Beispiel für den Aufruf einer Assembler-Routine mit eigener Fehlerbehandlung: ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP3P EXEC PLI PLI3: PROC OPTIONS(MAIN)} DCL ASS3 ENTRY OPTIONS(ASSEMBLER INTER)} DCL ARG CHARC50) INITC'TEST ASS SPIE ODER TEST STAE')* DCL AKTION CHAR(9)} /* AKTION: "TEST SPIE11, "TEST STAE" */ DISPLAYS EV 1 • >ä 1 AKTION = 'TEST SPIE ? PUT DATA(ARG, AKTION)} /* TEST SPIE */ CALL ASS3(AKTION, ARG)3 PUT SKIP(2)5 DISPLAYCEV 21 1 AKTION = 'TEST STAE } PUT DATA(ARG, AKTION)} CALL ASS3(AKTION, ARG)} /* TEST STAE */ DISPLAYCEV 31)} END} /* PLI3 */ /* CATALR BSP3A EXEC ASSEMBLY TITLE ASS3 START SAVE BALR USING LA ST •BSP3, PL (14,12),, 12,0 *,12 13,RETTE 1,PARADR -> ASS1 RETTEN DER PLI-REGISTER VERWENDUNG VON REGISTER 12 ALS BASISREGISTER RETTEN DER ADRESSE DER PARAMETERLISTE 43 PL1-0C Benutzungshinweise 10/89 D0S-4/ES * AKTIVIERUNG DER FEHLERBEHANDLUNG LA 0,5PIER A(SPIEHROUTINE) LA 1 ,SPIES A( RETTEBEREICH) STXIT PC,co),(i) -SPIE- LA 0,STAER ACSTAE-ROUTINE) LA 1,STAES ACRETTEBEREICH) STXIT AB,(O),(1) -STAEL 4,PARADR CLC 4(0,9),=CL9lTEST SPIE1 BE ASS3SPIE CLC 4(0,9),=CL9lTEST STAE1 BE ASS3STAE B ASS3END * TEST SPIE ASS3SPIE SR 7,7 MVC — PROGRAMMFEHLER — 0(4,7), RETTE +4 WIEDERHERSTELLEN PLl-SPIE ASS3END STXIT PC WIEDERHERSTELLEN PL1-STAE STXIT AB RETURN (14,12) WIEDERHERSTELLEN DER REGISTER-INHALTE * TEST STAE ASS3STAE CDLOAD ZYX LADEN EINER NICHTEXISTENTEN PHASE B ASS3END ERFOLGREICH AUSGEFUEHRT l l RETTE DC 20F 0 STATISCHER RETTEBEREICH * ROUTINE ZUR BEHANDLUNG EINES PROGRAMMFEHLERS SPIER DS OH SPIE EXIT ROl/TINE USING L 3,PARADR A(PARMLIST) L 4,4(3) A(PARAMETER) MVC 0(50,4),SPKON MSPRG 'SPIE ROUTINE AUSGEFUEHRT1 COMTY EXIT PC RUECKKEKR HINTER DEN UNTERBRECHUNGSPUNKT * ROUTINE ZUR BEHANDLUUNG EINER ANORMALEN BEENDIGUNG STAER DS OH USING *,15 L 3,PARADR L 4,4(3) MVC 0(50,4),SPKON2 MSPRG •STAE ROUTINE AUSGEFUEHRT1 COMTY EXIT AB PARADR DS F SPKON DC CL50(ASS SPIE ROUTINE AUSGEFUEHRT' DC SPK0N2 CL50'ASS STAE ROUTINE AUSGEFUEHRT1 DS 22F SPIES DS 22F STAES LTORG ASS3 END /* EXEC CATMOD OPTION CATAL ACTION REL PHASE BSP3,* INCLUDE BSP3P INCLUDF. BSP3A ENTRY EXEC LNKEDT EXEC BSP3 5.6. Aufruf von PL1-Prozeduren durch Assembler-Routinen Einfache Fälle des Aufrufs einer PL1-Prozedur Aufruf einer PL1-Prozedur, wobei der (ohne Parameter) aufgerufen wird: Programmabschnitt PLISTART im ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP4P EXEC PLI PLI4: PROC OPTIONS(MAIN)* PUT LISTCPLI4 AUSGEFUEHRT1)* END} /* PLI4 */ /* CATALR BSP4A EXEC ASSEMBLY f TITLE BSP4, ASS -> PLI1 ASS4 START BALR 10,0 USING «,10 L 15,=V(PLISTART) PLI-AUFRUF WIE DURCH DAS BS BR 15 END ASS4 /* 44 Eingangspunkt PLISTART PL1-0C Benutzungshinweise 10/89 D0S-4/ES EXEC CATMOD OPTION CATAL PHASE BSP4,* INCLUDE BSP4P INCLUDE BSP4A ENTRY ASS4 EXEC LNKEDT EXEC BSP4 Aufruf einer PL1-Prozedur» wobei der (mit Parametern) aufgerufen wird: Programmabschnitt PLISTART im Eingangspunkt PLICALLA ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP5P EXEC PLI PLI5: PROCdl, 12) OPTIONSCMAIN)* H = I2i 12 = 5} PUT LISTC'Il = ', II, '12 = ' ENDj /* PLI5 */ /* CATALR BSP5A EXEC ASSEMBLY TITLE •BSP5, ASS -> P ASS5 START BALR 10,0 USING *,10 LA LA L BALR PARADR PARM1 PARM2 RETTE /* EOJ DC DC DC DC DC DS END 13,RETTE 1,PARADR 15,=VCPLICALLA) 14,15 ADRESSE DER PARAHETERLISTE AUFRUF DER PLI-PROZEDUR, WELCHE DURCH DEN PROGRAMMABSCHNITT PLIMAIN FESTGELEGT IST A(PARMl) X'80 1 AL3CPARM2) H'l 1 H" 2' 18F ASS5 EXEC CATMOD OPTION CATAL ACTION REL PHASE BSP5>* INCLUDE BSP5P INCLUDE BSP5A ENTRY ASS5 EXEC LNKEDT EXEC BSP5 Ändern des Eingangspunktes der aufgerufenen PLI-Prozedur: ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP6P EXEC PLI PLI6: P R O C d l , 12) OPTIONSCMAIN)5 PUT LISTCI1, 12) SKIPj STOPj PLI6A: ENTRYt13, 14)} PUT SKIP L I S T C I 3 = ', 13, '14 = •• END* /* PLI6 */ CATALR BSP6A EXEC ASSEMBLY TITLE 'BSP6, ASS -> PLI 1 ASS6 START BALR 10,0 USING LA 13,RETTE LA 1,PARADR L 4,=VCPLIMAIN) L NEUER EINGANGSPUNKT IN PLI 5,=V(PLI6A) UND SPEICHERN ON PLIMAIN ST 5,0(4) AUFRUF VON PLI6A L 15,=V(PLICALLA) BALR 14,15 EOJ PARADR DC A(PARMl) DC X*80' AL3CPARM2) DC H'3 11 PARM1 DC H'4 PARM2 DC 18F RETTE DS ASS6 END 45 PLl-OC Benutzungshinweise 10/89 D0S-4/ES EXEC CATMOD OPTION CATAL PHASE BSP6,* INCLUDE BSP6P INCLUDE BSP6A ENTRY A5S6 EXEC LNKEDT EXEC BSP6 Die Definition des Eingangspunktes der PL1-Prozedur ist Bestandteil der Assembler-Routine: ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP7P EXEC PLI PLI7: PROCj PUT LISTCPLI7 AUSGEFUEHRT')) END} /* PLI7 */ /* CATALR BSP7A EXEC ASSEMBLY TITLE »BSP7, ASS -> PLI1 ASS7 START ElfTRY PLIMAIN PLIMAIN RETTE BALR USING LA SR L BALR EOJ DC DS END 10,0 *,10 13,RETTE 1,1 15,=VCPLICALLA) 14,15 VCPLI7) 18F ASS7 KEINE PARAMETER PLI-AUFRUF FESTLEGUNG DER AUFGERUFENEN ROUTINE /* EXEC CATMOD OPTION CATAL PHASE BSP7,* INCLUDE BSP7P INCLUDE BSP7A ENTRY ASS7 EXEC LNKEDT EXEC BSP7 shrfacher Aufruf und Aufruf mehrerer PLI-Prozeduren Für den mehrfachen Aufruf und den Aufruf mehrerer PLI-Prozeduren ist nicht der Eingangspunkt PLISTART, sondern nur der Eingangspunkt PLICALLA oder PLICALLB zu verwenden. Sollen durch eine Assembler-Routine mehrere PLI-Prozeduren oder dieselbe Routine mehrfach aufgerufen werden, ist es vorteilhaft, die PLI-Umgebung nur einmal, und zwar vor dem.ersten Aufruf einer PLI-Prozedur, aufzubauen. Diese Verfahrensweise ist aus Effektivitätsgründen und insbesondere wegen des impliziten Schließens der PLI-Dateien zu wählen. Ist es erforderlich, die PLI-Umgebung für jeden Aufruf einer PLl-Prozedur erneut aufzubauen, so ist für jeden Aufruf einer der Eingangspunkte PLISTART, PLICALLA oder PLICALLB zu verwenden. Mehrfacher Aufruf einer PLl-Prozedur, wobei die PLI-Umgebung vor dem ersten Aufruf aufgebaut wird: ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP8P EXEC PLI PLI8: PROC OPTIONSCMAIN)} DCL ASS8A ENTRYCCHARC30))} ON UNDERFLOH PUT SKIP LISTC'UNDERFLOW TEST1)} 1 ON ENDFILE(SVSIN) PUT SKIP LISTC'ENDFILE TEST ); CALL ASSSACTEXT 1 )} END} /* PLI8 */ * PROCESS CATALCBSP8PA 1 )} PLI8A1: PROCCTEXT)} DCL TEXT CHAR(30)i SIGNAL UNDERFLOW; PUT PAGE LIST(TEXT)} PUT SKIPC3)} RETURN} PLI8A2: ENTRY(A) RETURNSCDEC FLOATU))} DCL I STATIC BIT(l) INITC'l'B)* IF I THEN DO} SIGNAL ENDFILE(SYSIN); I • 'O'B* PUT SKIP LISTC'INIT WERT 1 , A)} END} ON ENDFILECSYSIN) GO TO IPTEND} GET LIST(B)} RETURNCA+B)5 PH-OC Benutzung sh in weise 10/89 D0S-4/ES IPTEND: PUT SKIP(3) LISTCEOF SYSIPT 1 )* RETURN(O); ENDj /* PLI8A1 */ * PROCESS CATALC'BSP8PB')$ PLI8B1: PROC(ERGB)5 PUT SKIP LIST(ERGB)* RETURN5 PLI6B2: ENTRYJ PITT SKIP(3) LIST('AUSGABE-ENDE')3 SIGNAL UNDERFLOWs ENDi /* PLI8B1 */ /* CATALR BSP8A EXEC ASSEMBLY TITLE 'BSP8, ASS -> PL11 ASS8 CSECT ENTRY ASS8A SAVE (14,12),,* BALR 10,0 USING *,10 LA 3,RETTE ST 13,4(3) ST LR 13,3 SR KEINE PARAMETER 15,=V(PLICALLA) L VORANGEHENDER PL1-AUFRUF (AUFBAU DER PL1-UMGEBUNG) BALR 14,15 L 13,4(13) L 14,12(13) LM 1,12,24(13) BR 14 DC CASS8A ' DC ALK7) ASS8A EQU SAVE (14,11) BALR 10,0 USING *,10 LA 5, RETTEA NEUER RETTEBEREICH ST 13,4(5) VERKETTUNG DER RETTEBEREICHE ST 5,8(13) I l MVI 0(5),X 80 DSA-KENNZEICHEN MVC 76(4,5),76(13) A(NAB) MVC 72(4,5),72(13) A(IWS) MVC 86(2,5),=Xi91C0l STD-WERT FUER ON-BEDINGUNGEN LR 13,5 SR 5,5 PL1-KONVENTIONEN PL1-AUFRUF L 15,=V(PLI8A1) (UNDERFLOW TEST) BALR 14,15 ASS8L1 LA 1,LIST1 PL1-AUFRUF L 15,=V(PLI8A2) BALR 14,15 (ENDFILE SYSIN) LE 2,ERGB l l CE 2,=E 0 BNH ASS8L2 LA 1,LIST2 L 15,=V(PLI8B1) PL1-AUFRUF BALR 14,15 ERGEBNISDRUCK B ASS8L1 ASS8L2 SR 1,1 PL1-AUFRUF L 15,=V(PLI8B2) (ENDE DES AUSDRÜCKENS) BALR 14,15 L 13,4(13) WIEDERHERSTELLEN DES PL1-DSA RETURN (14,11) WIEDERHERSTELLEN DER REGISTER, RUECKKEHR IQSAR DC 1 OD'O DC > XL(IQSARLEN) 001 RhTTfc DC RETTEA DC 22Fi0l A(ARG) LIST1 DC LIST2 DC ARG DC E'678' ER« DC E'O1 LTORG END ASS8 /* EXEC CATMOD OPTION CATAL ACTION REL PHASE BSP8,* INCLUDE BSP8A INCLUDE BSP8P INCLUDE BSP8PA INCLUDE BSP8PB ENTRY ASS8 EXEC LNKEDT EXEC BSP8 55, 76, 121, 233, 687, -22, -102, -678, -999 /* 47 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Verwendung des Eingangspunktes PLICALLB Bei Verwendung des Eingangspunktes PLICALLB muß die Assembler-Routine Adresse einer Argumentliste» die folgenden Aufbau hat» eintragen: in Register 1 die I. Hort: 2. Worts 3. Wort: Adresse der Argumentliste für die PL1-Prozedur Adresse des Wortes» in welchem die ISA-Länge gespeichert ist Anfangsadresse des ISA (Die Bereitstellung des Speicherbereichs sichert die Assembler-Routine» die Adresse muß auf eine Doppelwortgrenze verweisen. ) -5. Wort! Angaben zur Parallelverarbeitung von Programmen» im D0S-4/ES immer Null 6. Wort: Adresse eines Wortes» in welchem Informationen Über PL1-Optionen gemäß folgender Obersicht codiert sind: Bit 0 1 2 3 5 6 7 8 9 Option REPORT NOREPORT SPIE NOSPIE STAE NOSTAE COUNT N0C0UNT FLOW NOFLOW Die Bits 1 0 - 3 1 bleiben unbenutzt. Die Worte 2 bis 5 sind wahlweise benutzbar» Worte am Ende können weggelassen1 werden» unbenutzte Worte haben den Inhalt Null. Das letzte Wort muß im ersten Byte X'80 Cals Kennzeichen für Listenende) enthalten. Beispiel: ASSGN SYSIPT,SYSRDR OPTION LINK CATALR BSP9P EXEC PLI PLI9: PROC(A) OPTIONS(MAIN), DCL A BIN FIXEDC31), PUT LISTC'ISASIZE = ', A ) | END, /* PLI9 */ /* CATALR BSP9A EXEC ASSEMBLY TITLE •BSP9, ASS -> PL11 ASS9 START BALR 10»0 USING *,10 LA 13, RETTE ASS-RETTEBEREICH L 0»ISASIZE ISA-LAENGE GETVIS ADDRESS=AISA,LENGTH=C0) ISA-BEREITSTELLUNG * ISA-ADRESSE IN AISA GESPEICHERT LA 1»PARADR ADRESSE DER PARAMETERLISTE L 15,=V(PLICALLB) PLI-AUFRUF BALR 14,15 L 0»ISASIZE FREEVIS ADDRESS=AISA,LENGTH=(0) ISA-FREIGABE EOJ LTORG RETTE DC 2OF'O' PARADR DC ACPL1ARGL) 1. WORT: PL1-PARAMS 2. WORT: PLICALLB-PARAMS A(ISASIZE) DC 3. WORT: ADRCISA) AISA DC A(0) ACO) DC A(0) DC X'80' 6. WORT: OPTION DC AL3( OPTION) DC 1 PL1ARGL DC X'80 AL3CISASIZE) DC 1 ISASIZE DC F'16384 OPTION DC X196800000' REPORT, NOSPIE, NOSTAE, COUNT, FLOW END ASS9 /* EXEC CATMÖD OPTION CATAL ACTION REL PHASE BSP9,* INCLUDE BSP9P INCLUDE BSP9A ENTRY ASS9 EXEC LNKEDT EXEC BSP9 PL1-0C Benutzungshinweise 5.7, 10/89 D0S-4/ES Argumente und Parameter Für die zwischen PL1-Prozedur und Assembler-Routine übergebene Parameterliste gelten folgende Konventionen: 1) Register 1 enthält die Adresse der Parameterliste, die Parameterliste enthält die Adressen der Daten, nie die Daten selbst. Kenn keine Argumente übergeben werden> muß Register 1 den Inhalt Hüll haben. 2) Jede Adresse der1 Parameterliste ist ein Wort (4 Bytes) lang» die letzte Adresse enthält im I. Byte X'80 (Listenabschluß). 3) Jede Adresse zeigt auf die von beiden Routinen gemeinsam zu verwendenden Daten oder, den PL1-Forderungen entsprechend, auf einen PL1-Steuerblock. Das hängt von der Art der Daten ab und im Fall des Aufrufs einer Assembler-Routine davon> ob in der CALL-Anweisung die Option ASSEMBLER verwendet wurde. Diese Option vereinfacht die Ärauntentübergabe* denn sie bewirkt, daß die Adressen der Parameterliste nie auf PL1-Steuerblocke, sondern direkt auf die Daten zeigen. Dabei werden die Programmsteuerdaten selbst auch als PL1-Steuerblocke angesehen. Parameter beim Aufruf einer Assembler-Routine a) Bei Verwendung der Option ASSEMBLER: Die Option ASSEMBLER vereinfacht wesentlich die Problemdatenadressierung in der Assembler-Routine, falls nichtarithmetische, nichtskalare Daten übergeben werden. Jedoch kann in diesem Fall zum Aufruf der Assembler-Routine kein Funktionsaufruf verwendet werden. Dieser kann jedoch durch eine CALL-Anweisung (bzw. eine CALL-Option im INITIAL-Attribut) mit einem zusätzlichen Argument, welches das Ergebnis darstellt, simuliert werden. Für Programmsteuerdaten werden immer die Adressen von Steuerblocken, die die Daten selbst darstellen, in der Parameterliste übergeben. Für Daten, die nicht an einer Bytegrenze beginnen, wird die Adresse des Bytes übergeben, welche das 1. Bit der Daten enthält (z.B. für UNALIGNED-Bitkettenfeider). Für VARYING-Kettendaten wird die Adresse des vor den Daten stehenden 2-Byte-Längenpräfixes übergeben. b) Ohne Verwendung der Option ASSEMBLER: Die Adressierung der Daten geschieht in PL1 gemäß folgender Übersicht: 1 Datentyp Art des Parameters übergebene Adresse zeigt auf den Anfang von einfache arithmetische Variable Daten arithmetische Feld/Struktur-Variable Gruppierungsanzeiger Ketten- oder AREA-Variable Zeiger oder Beschreiber ENTRY-Konstante/Variable Steuerblock EVENT-Variable Daten FILE-Konstante/Variable DCLCB LABEL-Konstante/Variable Steuerblock 1 POINTER- oder OFFSET-Variable Daten (Adresse in Nortlänge) ! TASK-Variable Daten 1 I 1 ProblemI daten i 1 Programmsteuerdaten i Parameter beim Aufruf einer PL1-Prozedur Entsprechend dem Typ, der in der PL1-Prozedur für die Parameter festgelegt wird, müssen Adressen von Problemdaten oder von PL1-Steuerblöcken übergeben werden. Steuerblöcke müssen, falls sie nicht von in der Aufruffolge vorangehenden PL1-Prozeduren zur Verfügung gestellt werden, von der Assembler-Routine aufgebaut werden. Das wird umgangen» wenn nur einfache arithmetische, skalare Parameter übergeben und die eigentliche Beschreibung der Parameter in PL1 über BASED-Variablen erfolgt, deren Steuerblöcke in PL1 aufgebaut werden. Beispiel für die Parameterübergabe an eine PL1-Prozedur: X: PROC(Y)i DCL A U O ) CHAR(12) BASEDCZ)} Z=ADDR(Y)J PUT LIST(A)3 Gemäß PL1-Standard erhält Y die Attribute DEC FL0AT(6). Variable A Bezug genommen. Auf den Parameter wird nur über die PL1-0C Benutzungshinweise 6_s 10/89 D0S-4/ES Optimierung und effektive Programmierung Die in diesem Abschnitt enthaltenen Hinweise zur stets berücksichtigt werden. Gestaltung effektiver Programme sollten Die Effektivität eines Programms wird von - dem zugrunde gelegten Verarbeitungsalgorithmus Cvon dem i.a. die CPU- und Speicheranforderungen abhängen)? - der Dateiorganisation> - den verwendeten Sprachmitteln sowie - der bei der Übersetzung vorgenommenen Optimierung bestimmt« 6.1, Hinweise für die Gestaltung effektiver Programme Die Wichtigkeit der Auswahl des Verarbeitungsalgorithmus und der Organisation des Programms besteht darin> daß sie bestimmenden Einfluß auf die Effektivität des Programms haben kann und daß die Optimierungsmöglichkeiten des Compilers die Auswirkungen dieser Auswahl kaum beeinflussen können. Bei der Entwicklung größerer Programme erweist es sich als günstig, Teilfunktionen> die sich gut abgrenzen lassen> durch einzelne externe Prozeduren zu realisieren. Die Vorteile einer Modularisierung bestehen unter anderem darin> daß - die Prozeduren selbst und der Prozeß ihrer Programmierung überschaubar bleiben, - eine gewisse Parallelität der Programmentwicklung möglich wird, - Änderungen erleichtert und dabei Neuübersetzungen des gesamten Programms vermieden werden (die Übersetzungszeit eines Programms erhöht sich im allgemeinen nicht direkt proportional zur Anweisungszahl)» - Speicherplatz gespart wird, weil nicht alle AUTOMATIC-Variablen des gesamten Programms gleichzeitig verfügbar sein müssen. Die Möglichkeiten für die Optimierung des Programms durch den Compiler sind günstiger» wenn das zu übersetzende Programm eine bestimmte Größe nicht überschreitet. Eine vollständige globale Optimierung kann vom Compiler nur dann vorgenommen werden» wenn - die Zahl der Variablen und die Zahl der Ablaufeinheiten nicht zu groß wird sowie - nicht zusätzliche Basisregister notwendig werden. Eine Modulgröße von etwa 200 bis 600 PL1-Anweisungen für eine externe Prozedur ist zu empfehlen. Der Programmierer sollte beachten> daß mit der Vielfalt der verwendeten Sprachelemente auch der Speicherplatzbedarf des Programms wächst» da die Anzahl der benötigten Bibliotheksunterprogramme steigt. Nachteilig ist auch eine unbegründete Vielfalt von Datentypen, da sie die Anzahl der Datenumwandlungen ansteigen lassen kann» wenn Daten verschiedener Typen in Ausdrücken gemischt auftreten oder einander zugewiesen werden. Es ist günstig» interne Daten als BINARY FIXED oder, falls das nicht möglich ist, als DECIMAL FLOAT zu vereinbaren, wahrend in dezimaler Form ein- oder auszugebende Daten als DECIMAL FIXED zu vereinbaren sind* falls mit ihnen nur wenige Rechnungen ausgeführt werden. Die unumgänglichen Datenumwandlungen und die Kettenoperationen sollten so gestaltet werden, daß sie vom Compiler "in line11 realisiert werden. In den Fällen, wo die Anwendung der satzweisen Ein- und Ausgabe nicht sinnvoll ist, sollte man zumindest die EDIT-gesteuerte der LIST- oder DATA-gesteuerten reihenweisen Ein- und Ausgabe vorziehen. BEGIN-Blöcke und Prozeduren sollten nur dann gegebenen Möglichkeiten nicht ausreichen. verwendet werden, wenn die durch DO-Klauseln Zur Unterstützung der Übersichtlichkeit der Notation können auch die Möglichkeiten der PL1-Makrosprache verwendet werden, die es gegebenenfalls erlauben, bestimmte Entscheidungen und die dazugehörigen Tests von der Ausführungszeit in die Übersetzungszeit zu verlagern. Die Tabellen, welche über die Ausführungshäufigkeit der Anweisungen eines Programms (Option COUNT) Auskunft geben» sollten gründlich ausgewertet werden. Sie liefern Informationen» ob das entwickelte Programm dem ursprünglichen Entwurf entspricht, und darüber hinaus noch Ansatzpunkte für Maßnahmen zur Effektivitätserhöhung besonders häufig auszuführender Programmteile. 6.2. Vom PL1-Optimierungscompiler durchgeführte Optimierungen Der Optimierungscompiler führt viele der nachfolgend genannten Typen von Optimierungen in jedem Falle aus. Diejenigen jedoch» die mit einer Änderung der Reihenfolge der Anweisungen oder Operationen verbunden sind Cglobale Optimierung), werden nur ausgeführt, falls die Option OPT(TIME) wirksam ist. Folgende Typen von Optimierungen sind im Compiler realisiert: - Eliminierung übereinstimmender Ausdrücke Elimihierung redundanter Ausdrücke Verlagerung invarianter Ausdrücke aus Schleifen heraus Vereinfachung von Ausdrucken Optimierung der Initialisierung von Feldern und Strukturen Erzeugung von In-line-Code für Datenumwandlungen, Anweisungen der satzweisen E/A, Kettenbehandlung sowie viele Standardfunktionen Erzeugung effektiveren Codes für Spezialfälle von Feld- und Strukturzuweisungen und von DO-Klauseln Reduzierung der Schlüsselumwandlungen für REGIONAL-Dateien Zuordnung von Datenlistenelementen zu Formatlistenelementen zur Übersetzungszeit Analyse der Ausführungszeit-Optionen während der Übersetzungszeit (Variable PLIXOPT) 50 PL1-0C Benutzungshinweise 10/89 D0S-4/ES - Optimierunng der Verwendung der Register für die Speicherung von Variablen und Zwischenresultaten (beispielsweise für die Adreßrechnung) - Keitestgehende Vermeidung des Umladens von Basisregistern bei Sprüngen Die genannten Optimierungen erhöhen die Effektivität des erzeugten Codes selbst dann> wenn das zu übersetzende PL1-Programm optimal geschrieben ist» da der Programmierer im Gegensatz zum Compiler keinen Einfluß auf interne Details bei der Gestaltung des generierten Codes nehmen kann. Im folgenden werden die Bedingungen für die Erzeugung von In~line-Code für gewisse Sprachelemente und die Wirkungsweise der globalen Optimierung dargestellt. Optimierung durch In-line-Qperationen Operationen werden zur Ausführungszeit entweder als In-line-Operationen durchgeführt oder erfordern den Aufruf von PL1-Bibliotheksroutinen. Mit In-line-Operationen werden gewöhnlich Datenumwandlungen und die Behandlung von Ketten durchgeführt. Gegenüber einer Ausführung durch Bibliotheksroutinen kann sich die Ausführungszeit über In-line-Operationen auf den zehnten Teil reduzieren. Der Wirkungsgrad der Programmausführung hängt unter anderem davon ab> wie oft Operationen der beiden Arten im Programm auftreten. Beim Programmieren ist darauf zu achten, daß möglichst wenig Aufrufe von PL1-Bibliotheksroutinen erforderlich sind. Optimierung bei Datenumwandlunaen Datenumwandlungen auf Grund des Auftretens von PICTURE-Variablen in Ausdrücken werden durch In-line-Code realisiert> wenn in den Abbildungsketten die folgenden Abbildungszeichen auftreten. - Abbildungszeichen für Ziffern und Stellung des Dezimalpunktes: 9 V - Abbildungszeichen für Vorzeichen und Währungssymbol: t -S Ö - Nullenunterdrückungszeichen: Z * - Einfügungszeichen: > ./ B Mit diesen Abbildungszeichen lassen sich folgende drei Typen von Abbildungsketten bilden: 1. Typ: Die Abbildungskette kann die folgenden Abbildungszeichen enthalten: - Abbildungszeichen für Ziffern - das Abbildungszeichen für die Stellung des Dezimalpunktes - ein statisch verwendetes Abbildungszeichen für Vorzeichen oder Währungssymbol Beispiele: '999' '99V99D1 '999V+1 2. Typ: Die Abbildungskette kann die folgenden Abbildungszeichen enthalten: - Nullenunterdrückungszeichen - beliebig viele Einfügungszeichen - ein Vorzeichen I Beispiele: 'DZZV.Z' '*V**' 9,BB/.99B I neben denen des 1« Typs 3. Typ: Die Abbildungskette kann die folgenden Abbildungszeichen neben denen enthalten: - driftend verwendete Abbildungszeichen für Vorzeichen oder - Währungssymbol und - beliebig viele Einfügungszeichen Beispiele: 'oaW.99 1 '—B-9V.91 'Cd. CD1 des 1. Typs In folgenden Fällen werden Umwandlungen mit nicht durch In-line-Operationen ausgeführt: numerischen Kettendaten der angegebenen Typen 1. Die SIZE-Bedingung ist im wirksamen Status. 2. Die Stelligkeiten von Quelle und Ziel stimmen nicht überein. Beispiel: DCL A FIXED DECIMAL(3,2), B PICTURE '9V9'} A = 1.11} B = A3 3. Es steht kein Abbildungszeichen V vor einem zwischen dem letzten Abbildungszeichen Z oder * und dem ersten Abbildungszeichen 9 angegebenen Einfügungszeichen. Beispiele: '**/9' VZZZ,99' 4. Rechts vom Abbildungszeichen V stehen unterdrückung szeichen . Beispiele: 'ZV.ZZ' driftend verwendete Abbildungszeichen oder Nullen- «S/SSVSSS1 51 PL1-0C Benutzungshinweise 10/89 D0S-4/ES In der folgenden Übersicht sind alle Datenumwandlungen angegeben> die durch In-line-Operationen ausgeführt werden. Alle übrigen Daten erfordern einen Bibliotheksaufruf. Umwanc llung Voraussetzungen für In-line-Operationen Quelle Ziel BIT CHARACTER ALIGNED-Bitkette mit einer festen Länge von 1 BINARY FIXED Quelle mu3 feste Länge haben, ALIGNED-Bitketten mit einer Länge von max. 32 Bits DECIMAL <FIXEDIFLOAT> Quelle muß feste Länge haben, ALIGNED-Bitkette mit Länge von max. 31 Bits CHARACTER BIT BINARY FIXED DECIMAL FIXED Quelle mit einer Länge von nur 1. Die CONVERSION-Bedingung darf nicht wirksam sein. FLOAT BINARY FIXED BIT ALIGNED-Bitkette mit fester Länge £ 2048 Bits. Die STRINGSIZE-Bedingung darf nicht wirksam sein. CHARACTER Über FIXED DECIMAL. Zeichenkette muß eine feste Länge < 256 Bytes haben» und die STRINGSIZE-Bedingung darf nicht wirksam sein. Abbildungskette der Typen 1» 2 oder 3> wenn die SIZE-Bedingung unwirksam ist. oder PICTURE (mit numerischer Abbildungskette) | 1 DECIMAL FIXED FLOAT Ziel in langer oder kurzer Gleitkommadarstellung DECIMAL FIXED BIT Bitkette muß feste Länge haben, ALIGNED-Bitkette mit einer Länge < 2048 Bits. Die STRINGSIZE-Bedingung darf nicht wirksam sein. CHARACTER Wenn die Genauigkeit = Skalenfaktor ist> muß sie gerade sein. Zeichenkette muß feste Länge < 256 Bytes haben» und STRINGSIZE muß unwirksam sein. „. j __ _ __«. i — — _ _._ — — — - . — — - . — _ . —«. — — _ 1 «-._„ | BINARY FIXED FLOAT PICTURE numerische Abbildungskette) FLOAT 1 BIT —----.-.--.--.-.-.--.-.--.---.--.-. —,-»-.-.-.-.-.«--.-.-.-.-.-.-«_----„ 1 wenn qCquelle) + pCquelle) £ 75* Ziel in langer oder j kurzer Gleitkommadarstellung Abbildungskette der Typen 1 , 2 oder 3 ALIGNED-Bitkette mit fester Länge < 2048 Bits. Die STRINGSIZE-Bedingung muß unwirksam sein. BINARY FIXED DECIMAL FIXED Skalenfaktor < 8 0 1 FLOAT Quelle und Ziel dürfen einfache oder doppelte Länge haben. IPICTURE CHARACTER Zeichenkette m u ß fester Länge < 256 Bytes sein. PICTURE Abbildungsketten müssen identisch sein. 1Numerische BINARY FIXED Abbildungskette DECIMAL FIXED Typ 1 und 2 1 52 über FIXED DECIMAL. SIZE-Bedingung m u ß unwirksam sein. Typ 2 Abbildungen ohne * oder Einfügungszeichen. SIZEBedingung muß unwirksam sein. Über FIXED DECIMAL. SIZE-Bedingung muß unwirksam sein. FLOAT PICTURE (numerische Abbildungskette der Typen 1, 2 oder 3. SIZE-Bedingung muß unwirksam sein. Abbildungskette) 1 PLl-OC Benutzungshinweise 10/89 D0S-4/ES Optimierung der Kettenbehandlung Die Voraussetzungen» unter denen Operationen mit Ketten und Standardfunktionen durch In1ine-Code ausgeführt werden> sind in den folgenden Übersichten angegeben. Verlangt der Ausdruck in den Standardfunktionen BIT und CHAR eine implizite Datenumwandlung» die nicht durch In-line-Operationen ausgeführt werden kann» so wird die entsprechende Bibliotheksroutine aufgerufen. In-1ine-Code für Operationen mit Kettendaten: Zuweisung oder Operation Voraussetzungen für Quell- und Zielgrößen Zuweisung ALIGNED-Bitketten mit fester» nicht-dynamischer Kettenlange (£8192 Bits» wenn OPT(TIME) nicht angegeben ist) dynamische oder VARYING ALIONED-Bitkette zu nicht-dynamischer ALIGNED-Bitkette (<2048 Bits» wenn 0PTCTIME) angegeben ist) UNALIGNED-Bitketten mit fester» nicht-dynamischer Kettenlänge. Diese Bitketten müssen Elemente von mit BASED» AUTOMATIC oder STATIC vereinbarten Strukturen sein» die keine dynamischen Grenzen» Kettenlängen oder Bereichsgrößen enthalten. Nur wenn OptCTIME) angegeben ist. Die maximale Länge beträgt 57 Bits. Zeichenkette fester Länge dynamischer oder VARYING-Zeichenkette zu nicht dynamischen Zeichenketten» deren Länge £ 256 Bytes ist logische Operationen Hie Zuweisung von Bitketten. Es werden aber keine dynamischen oder VARYING-Operanden behandelt. Vergleich Wie Zuweisung von Zeichenketten mit zwei zu vergleichenden Operanden. Es werden aber keine dynamischen oder VARYING-Operanden behandelt. Verkettung Hie Zuweisung von ZeichenKetten. Es werden aber keine dynamischen oder VARYING-Operanden behandelt. STRING-Funktion skalare Variablen und nicht-dynamische Feld- und Strukturvariablen im zusammenhängenden Speicher Voraussetzungen für Standardfunktionen zur Behandlung von In-line-Code erzeugt werden soll: Standardfunktion Bit- und Zeichenketten» für die Voraussetzung en BIT keine (in allen Fällen In-line-Code) BOOL 1. und 2. Argument müssen den Bedingungen logischer Operationen genügen. 3. Argument muß eine Konstante sein. CHAR keine (in allen Fällen In-line-Code) HIGH keine (in allen Fällen In-line-Code) INDEX 2. Argument: Zeichenkette mit nicht-dynamischer Kettenlänge < 256 LENGTH keine (in allen Fällen In-line-Code) LOH keine (in allen Fällen In-line-Code) REPEAT 2. Argument muß eine Konstante sein. SUBSTR STRINGRANGE muß im unwirksamen Status sein. TRANSLATE 1. Argument muß feste Länge haben« 2. und 3. Argument muß eine Konstante sein. UNSPEC keine (in allen Fällen In-line-Code) VERIFY 1. Argument: Zeichenkette fester Länge < 256 Zeichen oder Bitkette fester Länge £ 2048 Bits 2. Argument muß eine Konstante sein. Wirkungsweise der globalen Optimierung Falls die Option OPT(TIME) wirksam ist» nehmen spezielle Phasen eine globale Optimierung des Programms vor. des Optimierungscompilers 53 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Optionen ORDER und REORDER Für BEGIN- und PROCEDURE-Blöcke können die Optionen ORDER oder REORDER angegeben werden» die Einfluß auf den Grad der möglichen globalen Optimierung und auf die Ausführung des optimierten Programms beim Auftreten von Ausnahmebedingungen haben. Die Option ORDER garantiert* daß der Speicherplatz» der für die Variablen des Programms reserviert wurde, die jeweils letzten den Variablen zugewiesenen Werte enthält. Ihre Werte können somit in den ON-Einheiten ohne Einschränkung verwendet werden. Dabei ist jedoch zu beachten» daß durch die Undefinierte Reihenfolge der Ausführung gewisser Operationen (Berechnung von Teilausdrücken, Indexausdrucken, Zeigerausdrücken» Funktionswerten) und durch die Eliminierung übereinstimmender Ausdrücke die Reihenfolge und die Anzahl der auftretenden Berechnungsbedingungen variieren können. Wenn ORDER wirksam ist» ist die Verlagerung von Ausdrücken oder Anweisungen praktisch unmöglich» da dafür alle möglicherweise auftretenden Bedingungen in den unwirksamen Status versetzt werden müßten; damit wäre ORDER sinnlos. Wenn die Option REORDER wirksam ist» kann das Programm in einem höheren Grade optimiert werden» wobei die Resultate der Ausführungen des Programms unverändert bleiben» wenn keine Ausnahmebedingungen auftreten oder wenn die Einschränkungen für die Verwendung von Variablen in ON-Einheiten beachtet werden. Diese Einschränkungen rühren u.a. daher» daß die Werte von Variablen zeitweise nur in Registern gespeichert werden» wodurch die Häufigkeit des Speicherns und Ladens von Registern minimalisiert wird und möglicherweise auch die Reihenfolge der Berechnungen geändert wird. Nur die Werte weiterhin benötigter Variablen müssen am Ende einer Schleife oder des Blockes in den Hauptspeicher übertragen werden. Beim vorherigen Auftreten von- Ausnahmebedingungen ist es nicht garantiert» daß die aktuellen Werte der Variablen verfügbar sind. Deshalb dürfen bei der Korrektur in ON-Einheiten aufgetretener Fehler die in einem aktiven REORDER-Block gesetzten Variablen nicht verwendet werden» sondern die Korrektur muß mit Hilfe von ONSOÜRCE oder ONCHAR oder über erneute Berechnungen erfolgen. Das hat keinen Einfluß auf die Geschwindigkeit einer fehlerfreien Ausführung des Programms. Eliminierunq von Anweisungen Sind in einem Programm nicht erreichbare Anweisungen oder Anweisungen der Form GOTO M, A = B + lj M: C = 1, enthalten» so werden diese eliminiert» da haben. Im obigen Beispiel kann neben der GOTO eliminiert werden. sie für die Programmabarbeitung keine Bedeutung Anweisung "A = B + l," zusätzlich die Anweisung Eliminierunq redundanter Ausdrücke Ein Ausdruck wird als redundant bezeichnet» wenn seine zung der Ausführung des Programms nicht notwendig ist. Das trifft zum Beispiel auf den zweiten Operanden einer erste Operand den Wert 'O'B hat» oder auf den zweiten Oder"» wenn der erste Operand den Wert ' 1'B hat. Durch die Optimierung wird erreicht» daß beispielsweise IF (A = B) I (B = C) nicht nur kürzerer» riante IF A = B in der ist. THEN Berechnung für die richtige FortsetOperation "Logisch Und11 zu* wenn der Operanden einer Operation "Logisches für die Variante K = L • Mi sondern auch im Mittel effektiverer Code erzeugt wird als THEN K = L + Mi ELSE IF B = C THEN K = L + Mj explizit die Berechnung von B = C vermieden wird» falls dieser für die Va- Ausdruck redundant Eliminierunq übereinstimmender Ausdrücke Die Ausdrücke X + Y * Z in den folgenden Anweisungen eines Programmteils: A = X + Y * 2, B=X + Y * Z\ sind ein Beispiel für übereinstimmende Ausdrücke» falls die Bedingung erfüllt ist» daß die Werte der Variablen X» Y und Z zwischen der Berechnung des Ausdrucks X + Y * Z in der ersten und in der zweiten Anweisung in jedem Falle unverändert bleiben. Die "Eliminierung übereinstimmender Ausdrücke11 gestattet es» nicht notwendige wiederholte Berechnungen eines Wertes übereinstimmender Ausdrücke zu vermeiden. Ein wichtiger Spezialfall ist hierbei das Auftreten mehrerer indizierter Variablen mit übereinstimmenden Indexausdrücken» wie beispielsweise: ACK) = B(3 * I + K) + CC3 * I + K)5 Ein weiterer Vorteil der "Eliminieruna übereinstimmender Ausdrücke" besteht darin» daß die eventuell bei der Berechnung der Ausdrücke notwendigen Datenumwandlungen ebenfalls nur einmal auszuführen sind. Zu beachten ist» daß die Eliminierung übereinstimmender Ausdrücke dann nicht durchgeführt werden kann» wenn Werte der im Ausdruck yerwendeten Variablen zwischen dem ersten und dem späteren Auftreten des Ausdrucks durch die Ausführung einer ON-Einheit verändert werden können» die für eine Berechnungsbedingung angegeben ist. 54 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Beispiel: ON ZERODIVIDE B, C = 1} X * = A * B + B / C, Y = A * B + D) Die "Eliminierung übereinstimmender Ausdrücke'1 kann unterstützt werden, indem - den Variablen in den Ausdrücken nicht die Attribute EXTERNAL» DEFINED oder BASED gegeben werden » - das Quellprogranun keine externen Prozeduren, externe Markenvariable oder Markenkonstante» die vom externen Prozeduren verwendet werden können» enthält» sowie - die Ausdrücke> die optimiert werden sollen» nur arithmetisch sind oder nur Zeichenketten enthalten. Die Eliminierung wird jedoch eingeschränkt oder verhindert» wenn - Variablen in Ausdrücken verwendet werden» deren Werte durch E/A-Anweisungen oder Ausnahmebedingungen verändert werden können» oder - Variablen» die Bestandteile einer BASED-Variablen sind» bei zweimaligem Auftreten eine neue Basisvariable zugewiesen wird. Vereinfachung von Ausdrücken Die Vereinfachung von Ausdrücken bewirkt» daß nach Umformung der vom Programmierer vorgegebenen Ausdrücke deren Werte effektiver berechnet werden. Zwei Formen der Vereinfachung von Ausdrücken betreffen die Verwendung von Konstanten in Ausdrücken» beispielsweise wird 2 * C vereinfacht zu C + C und bei der Adreßberechnung Länge FAKT statt entsprechend dem Indexausdruck 1 + 3 wird für Feldelemente der (I + 3) * FAKT I * FAKT + 3 * FAKT berechnet» wobei 3 * FAKT ein konstanter Adreßfaktor für die Adreßberechnung ist. Falls es sich bei I um die Laufvariable einer DO-Klausel handelt» ist unter gewissen Voraussetzungen eine weitere Optimierung der Berechnung von I * FAKT möglich» die die Multiplikation vermeidet. Verlagerung invarianter Ausdrücke Ein Ausdruck innerhalb einer Schleife wird als invariant bezeichnet» falls der Wert des Ausdrucks nachweisbar bei jeder Ausführung der Schleife der gleiche ist. Die Berechnung invarianter Ausdrücke kann außerhalb der Schleife durchgeführt werden» wodurch die wiederholte Berechnung bei jeder Ausführung der Schleife vermieden wird. Unter gewissen Voraussetzungen trifft das Gesagte auch auf die Ausführung von Ergibtanweisungen zu» in denen invariante Ausdrücke auftreten. Im Beispiel: DO I = 1 TO Ni n ... K = 14i ... EKD, n kann die Anweisung K = 14> je nach den konkreten Umständen vor oder hinter die Schleife verlagert werden» wenn diese Voraussetzungen erfüllt sind. Bei der Erläuterung der Optionen ORDER und REORDER ist bereits erklärt» warum diese Art der Optimierung nur dann ausgeführt wird» wenn die Option REORDER wirksam ist. 6.3. Effektivitätserhöhung von PL1-Programmen In vielen Fällen wird die Effektivität von Programmen» die entsprechend den Hinweisen in 6.1. gestaltet und mit dem Optimierungscompiler übersetzt wurden» dank der vielfältigen Optimierung und der selektiven Verwendung von Bibliotheksunterprogrammen für die konkrete Zielstellung ausreichend sein. Wenn das nicht der Fall sein sollte» kann man die im folgenden beschriebenen Veränderungen am Programm vornehmen» um die Effektivität weiter zu erhöhen. Unbedingt sind nach dem Programmtest die überflüssig gewordenen Testhilfen (beispielsweise CHECK-, SUBSCRIPTRANGE-» STRINGRANGE-, SIZE-Bedingungsprä'fixe sowie PUT DATA-Anweisungen, besonders die ohne Datenliste) unwirksam zu machen. Das kann durch Herausstreichen solcher Sprachelemente aus dem PL1-Quelltext geschehen» aber auch - gewiß vorteilhafter - durch Wandlung dieser Sprachelemente in PL1-Kommentar. Wenn beispielsweise der signifikante PLl-Quelltext generell erst ab Spalte 4 geschrieben wird, können die Spalten 2 und 3 bedarfsweise für die Eintragung des Kommentar(-Anfangs)begrenzers "/*" dienen. Ferner muß vereinbart werden, PL1-Testanweisungen zusammen mit einem vollständigen Kommentar nur auf eine Zeile wie folgt zu schreiben: /* PUT DATACVAR1, VAR2), /* PLl-TEST^ */ Diese Programmtext-Zeile ist bei einer Übersetzung mit SORMGIN(4»72) für den Programmtest wirksam, hingegen bei der Übersetzung mit der Standardannahme SORMGIN(2»72) unwirksam» weil bloßer Kommentar. Die zum Testen benötigten CompilerOptionen (z.B. FLOW» STMT» LINE) sind unwirksam zu machen. Mit Hilfe der REPORT-Option ist der günstigste Wert für die Laufzeitoption ISASIZE zu ermitteln. 55 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Die folgenden detaillierten Hinweise berücksichtigen nicht nur das Kriterium der Effektivität» sondern auch andere Kriterien» beispielsweise Wahrung einer guten Verständlichkeit des Programms. Zweckmäßigerweise sollten vor allem die Programmteile berücksichtigt werden» für die ein häufiger Durchlauf zu erwarten ist (Auswertung der COUNT-Liste). Hinweise für Vereinbarungen 1. Bei der Verwendung der REFER-Option in einer Struktur sollte die Reihenfolge der Strukturelemente so gewählt werden» daß zuerst alle Elemente ohne REFER-Option und dann die Elemente mit REFER-Option in der Reihenfolge abnehmender Verwendungshäufigkeit angegeben werden. 2. Für Strukturen kann das Attribut UNALIGNED angegeben werden» um möglichst wenig Speicherplatz ungenutzt zu lassen. Falls jedoch eine Struktur Bitketten enthält» deren Länge kein vielfaches von 8 ist» so sollte zur Beschleunigung cjes Zugriffs ALIGNED angegeben werden. 3. Wenn möglich» sollten anstelle von Ketten veränderlicher Länge Ketten fester Länge verwendet werden. Die Effektivität wird jedoch verringert» wenn der Wert der Kettenlänge zur Übersetzungszeit nicht bekannt ist oder als arithmetischer Ausdruck geschrieben wird. Letzteres gilt entsprechend auch für die Vereinbarung von Feldgrenzen. Bitketten sollten mit einer Länge» die ein Vielfaches von 8 ist» vereinbart und verarbeitet werden» außer wenn sie für die Darstellung logischer Bedingungen benutzt werden. In diesem Falle sollte mit der tatsächlich benötigten Länge gearbeitet werden. Hinweise für ausführbare Anweisungen 1. Wenn eine GOTO-Anweisung auf eine Variable vom Typ LABEL Bezug nimmt» ist es effektiver» wenn die LABEL-Konstanten» die als Werte der LABEL-Variablen auftreten können» im gleichen Block wie die GOTO-Anweisung erscheinen. 2. Bei arithmetischen Berechnungen sind möglichst gemischte Datentypen» besonders jedoch111die Verwendung von Zeichenketten zu vermeiden. Diese sind möglichst durch "PIC '9...9 zu ersetzen. Zur Vermeidung von wiederholten Datenumwandlungen sollten Hilfsvariablen verwendet werden. 3. Es ist günstig» sich in einem Job nur einmal auf die Standardfunktion DATE zu beziehen. Sollte das, Datum mehrmals im Job benötigt werden» so läßt es sich einer Hilfsvariablen zuordnen. w H . Verkettungsoperationen mit Bitketten sind sehr zeitaufwendig und sollten auf ein Mindestmaß beschränkt werden. Hinweise für die Ein- und Ausgabe 1. Wenn es die Programmlogik gestattet» sollten mit einer OPEN-Anweisung mehrere Dateien eröffnet werden. 2. Bei der EDIT-gesteuerten E/A sollte zwecks Optimierung kein R-Formatelernent verwendet werden» da sonst zusätzliche Aufrufe von Bibliotheksmoduln erforderlich sind. 3. Es sind genügend große Puffer bereitzustellen und» wenn möglich» ist die satzweise der reihenweisen E/A vorzuziehen. In einem Programm sollten daher nicht gleichzeitig STREAM- und RECORD-E/A verwendet werden. Nach Möglichkeit sollten die Eingabe-/Ausgabesätze in geblockter Form vorliegen bzw. ausgegeben werden. 4. Im Rahmen der Möglichkeiten sollten die EDIT-gesteuerte Ein- und Ausgabe der LIST- und DATA-gesteuerien vorgezogen werden. 5. Bei der reihenweisen Ein- und Ausgabe sind lange Datenlisten statt mehrerer E/A-Anweisungen zu verwenden. 6. Für CONSECUTIVE-Dateien sollten solche FILE- und RECORD-Variablen vereinbart werden» die die Erzeugung von "In-1ine"-Code gestatten. 7. Bei Beachxung folgender Besonderheiten können Umwandlungen von Schlüsseln für REGIONALDateien verhindert werden: a) Für REGIONALC1): Wenn der Schlüssel eine mit BIHARY FIXED vereinbarte Variable oder Konstante ist» muß die Stelligkeit im Bereich von (12,0) bis (23,0) liegen. b) Für REGIONALE): Ist der Schlüssel ein Zeichenkettenausdruck» der mit einer BIHARY FIXED-Variablen oder Konstante verkettet ist» muß die Stelligkeit im Bereich (12,0) bis (25,0) liegen. 8. Das überlagernde Definieren kann zur Vereinfachung der Übertragung zu oder von Zeichenkettenstrukturen dienen. Beispiel: DCL 1 STRUKT, 2 A CHARCIO), 2 B CHARC20)» 2 C CHARC30), GET EDIT(STRUKT) CAC10)»A(20)»AC30)), Effektiver sind folgende Anweisungen: DCL KETTE CHARC60) DEF STRUKT} GET EDIT(KETTE) (A(60))j 56 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Hinweise für die Verwendung von Bedingungspräfixen und OK-Einheiten 1. Wenn möglich» sind ON-Einheiten für die Bedingung FINISH zu vermeiden» da dadurch die Aufwände zur Beendigung eines PL1-Programms erhöht werden. 2. Auch das Unwirksam-Machen von Bedingungen durch ein entsprechendes Präfix vermeidet nicht die Ausführung zusätzlicher Operationen in Situationen» in denen die entsprechenden Ausnahmezustände normalerweise auftreten würden. So ist es beispielsweise günstiger» nach dem Programmtest das Präfix für die SIZE-Bedingung wegzulassen» statt diese Bedingung durch die Angabe von NOSIZE unwirksam zu machen» da im letzteren Fall vom Compiler zusätzlich ein spezieller Code erzeugt wird. 3. BEGIN-Blöcke als ON-Einheiten erfordern Operationen für die Blockinitialisierung. Hinweise für die Verbindung mit anderen Sprachen 1. Wiederholte Initialisierung der PL1-Umgebung ist zu vermeiden. Das kann durch eine der folgenden Maßnahmen erreicht werden: a) Eine PL1-Prozedur ist die Hauptroutine. b) Eine PL1-Prozedur wird von der Hauptroutine aufgerufen. c) Die Struktur des Programms ist so geartet» daß die PL1-Umgebung zwischen zwei Aufrufen von PL1-Prozeduren nicht verändert wird. 2. Die*Speicherung von Datengruppierungen» die von PLI-Programmen und anderen Programmen gemeinsam benutzt werden» sollte möglichst übereinstimmen. 3. Die Option NOMAPIN sollte angegeben werden» wenn die Argumente einen verschiedenen Aufbau besitzen und die Initialisierung der entsprechenden Pseudoargumente nicht nötig ist. Die Option NOMAPOUT sollte angegeben werden» falls der Endwert nicht benötigt wird» um die unnötige Zuweisung von Pseudoargumenten zu verhindern. 57 PL1-0C Benutzungshinweise 7\ Sortierproarammaenerator CSORT) und PLI-Programme 7.1. Allgemeines 10/89 D0S-4/ES Der Sortierprogrammgenerator (SORT> siehe [5]) des D0S-4/ES kann von PL1-Programmen aus aufgerufen werden. Mit dem SORT-Programm lassen sich eine oder mehrere sequentielle oder indexsequentielle Eingabedateien verarbeiten. Es entsteht immer eine sequentielle oder indexsequentielle Ausgabedatei. Die Eingabedateien haben die Standardnamen SORTINn (n=1...9)> die Ausgabedatei hat den Standardnamen SORTOUT. Als Eingabe- und Ausgabedateien sind Dateien auf Magnetplatte> Magnetband, Lochkarte» Diskette und für die Ausgabe auch Drucker möglich. Die Eingabe- und Ausgabedateien können festes oder variables Satzformat haben und können auch geblockt sein3 alle Eingabedateien eines Programmlaufs müssen das gleiche Satzformat haben. Platten- und Diskettendateien mössen Standardkennsätze haben; Dateien auf Magnetband können Standard-» Nichtstandard- oder keine Kennsätze haben. Die Prüfung bzw. Erzeugung von Benutzer- oder Nichtstandard-Kennsätzen ist nur mittels Benutzerroutinen möglich. Beim Sortieren wird aus dem Datenmaterial» das in den Eingabedateien enthalten ist» durch SORT eine neue Datei erzeugt» die in der Anordnung der Sätze den in der SORT-AnWeisung angegebenen Parametern entspricht. Die Reihenfolge der Sätze in der Ausgabedatei entspricht einer nicht-fallenden oder nichtsteigenden Folge der Ordnungsbegriffe. Die Ordnungsbegriffe sind Teile der Sätze der Eingabedateien (bis zu neun Eingabedateien können beim Aufruf von SORT verarbeitet werden) und durch ihre Lage relativ zum Satzanfang zu beschreiben. Die Sortierrelation ist durch die "Werte" der Zeichen des zugrunde gelegten Zeichensatzes CSortierfolge der Zeichen des DKOX-Codes) bestimmt. 7.2. Aufruf des Programms SORT durch eine PLl-Prozedur 7.2.1. Aufrufarten des Programms SORT Das Programm SORT wird von einer PLl-Prozedur aus wie ein Unterprogramm durch die Anweisung CALL PLISRTx(parameterliste), aufgerufen. Dabei bedeutet x eines der Zeichen A» B» C oder D. Beim Aufruf des Programms SORT in PL1 kann nur die Funktion SORT» jedoch nicht die Funktion MERGE genutzt werden. PLISRTx sind festgelegte Namen» wobei zu jedem von ihnen eine bestimmte Form der Parameterliste gehört. Bei der Obersetzung der Anweisung CALL PLISRTx wird eine Zu Lässigkeitskontrolle der Parameter in der Liste durchgeführt. Bei der Programmverbindung wird der residente Modul IOTGDSH hinzugefugt» welcher die Angaben aus der Parameterliste in ein für SORT geeignetes Format transformiert und SORT als Unterprogramm aufruft. Funktionsweisen von PLISRTx Cx~A»B»C»D): PLISRTA - SORT führt OPEN und CLOSE für die Eingabedatei(en) und für liest die Eingabesätze und gibt sortierte Sätze aus. die Ausgabedatei aus» PLISRTB - Verwendung des Ausgangs El5. Die am Ausgang E15 angeschlossene Routine realisiert OPEN und CLOSE für die EingabedateiCen)> liest die Sätze und übergibt sie einzeln dem Programm SORT. Dieses realisiert OPEN und CLOSE für die Ausgabedatei und gibt sortierte Sätze aus. PLISRTC - Verwendung des Ausgangs E35. SORT realisiert OPEN und CLOSE für die EingabedateiCen)» liest die Sätze und übergibt sie sortiert der am Ausgang E35 angeschlossenen Routine. Diese Routine realisiert OPEN und CLOSE für die Ausgabedatei und gibt die Sätze aus. PLISRTD - Verwendung der Ausgänge El5 und E35. Die an den Ausgängen E15 und E35 angeschlossenen Routinen haben die für PLISRTB und PLISRTC beschriebenen Funktionen. SORT erhält die einzelnen Eingabesätze von der am Ausgang E15 angeschlossenen Routine und übergibt sie ebenfalls einzeln und sortiert der am Ausgang E55 angeschlossenen Routine. Die angeschlossenen Routinen können außerdem darüber entscheiden» welche Sätze dem Programm SORT zur Verarbeitung übergeben (E15) bzw. in die Ausgabedatei geschrieben (E35) werden und welche auszulassen oder zu ändern sind Csiehe 7.3.). 7.2.2. AufrufParameter des Programms SORT Ein Aufruf des Programms SORT kann bis zu 13 Parameter aufweisen» welche für die Zwecke dieses Abschnitts mit pl bis pl3 bezeichnet werden. Die Parameter pl bis p4 sind für alle vier Aufrufarten des Programms SORT obligatorisch» während die Parameter p7 bis pl3 wahlfrei sind. Der Parameter p5 betrifft den Ausgang EIS» der Parameter p6 den Ausgang E35. Die Parameterlisten beim Aufruf des Programms SORT entsprechen den einzelnen Aufrufarten wie folgt: PLISRTA PLISRTB PLISRTC PLISRTD (pl,p2,p3,p4[,p7,p8,p9,pl0,pll>pl2,pl3]), Cpl»p2»p3»p4»p5[»p7»p8»p9»plO»pll>p!2»pl33)> C l 2 3 4 6 £ »p7»p8»p9>p!0»pll 7 8 9 l O l l l»pl2»pl31 2 l 3 1 )i ) Cpl»p2»p3»p4»p6£ Cpl»p2»p3»p4»p5>p6E »p7»p8»p9?pl0>pll »pl2»pl3D» Wahlfreie Parameter» die nicht angegeben werden» können ani Ende der Liste weggelassen werden» innerhalb der Liste sind sie durch eine leere Zeichenkette (Zeichen " ) zu ersetzen. 58 PL1-0C Benutzungshinweise 10/89 D0S-4/ES Parameter pl Sein Wert ist eine Zeichenkette der Form 'sort-steueranweisung•. Der Wert ist eine SORT-Steueranweisung> welche dem Programm SORT unverändert übergeben wird. Parameter P 2 Sein Wert ist eine Zeichenkette der Form 'record-steueranweisung'. Der Wert ist eine RECORDSteueranweisung» welche dem Programm SORT unverändert übergeben wird. Parameter P 5 Sein Wert ist eine Zahl, welche (für die Arbeit unter OS/ES) die Platzes für SORT bzw. für die angeschlossenen Routinen angibt. Diese Zahl wird im D0S-4/ES ignoriert. Größe des Hauptspeicher- Parameter P 4 Sein Wert ist der Name einer Variablen, die in derselben PL1-Prozedur, in welcher SORT aufgerufen wird, vereinbart wird. Die Variable muß mit den Attributen BINARY FIXED(31,0) vereinbart werden. In diese Variable trägt das Programm SORT den Rückkehrcode ein. Der Rückkehrcode kann folgende Werte annehmen: 0 Sortierung verlief erfolgreich. 16 Bei der Sortierung kam es zu einem Fehler. Parameter P 5 Sein Wert ist der Name des Eingangspunktes der Routine, welche am Ausgang E15 angeschlossen werden soll. Der residente Modul IOTGDSH erzeugt die Anweisung INPFIL EXIT und den Parameter PH1 der MODS-Anweisung. Parameter P 6 Sein Wert ist der Name des Eingangspunktes der Routine, welche an den Ausgang E35 angeschlossen werden soll. Der residente Modul IOTGDSH erzeugt die Anweisung OUTFIL EXIT und den Parameter PH3 der MODS-Anweisung. Parameter P 7 Sein Wert ist eine Zeichenkette, welche vier Zeichen enthält, durch die in den Standardnamen der Dateien die Zeichen SORT ersetzt werden. Der residente Modul IOTGDSH erzeugt den Parameter FILNM der OPTION-Anweisung. Wenn dieser Parameter nicht angegeben ist, bleiben die Standardnamen SORTINn, SORTOUT wirksam. Die Verwendung ermöglicht beispielsweise den mehrfachen Aufruf des Programms SORT durch dasselbe PL1-Programm und die Sortierung mehrerer Dateigruppen. Parameter P 8 Sein Wert ist eine Zeichenkette, welche die Option für die Auflistung der Nachrichten vom Programm SORT festlegt. Wegen der Kompatibilität wurden die für das Betriebssystem OS/ES gültigen Werte beibehalten. Der residente Modul IOTGDSH transformiert die Zeichenkette in den Parameter PRINT der OPTION-Anweisung des Programms SORT im System D0S-4/ES. Einander entsprechende Werte können folgender Übersicht entnommen werden: Parameter p8 Parameter der OPTION-Anweisung für SORT NO PRINT=NONE AP oder AC PRINT oder PRINT=ALL CP oder CC PRINT=CRITICAL Parameter P 9 Sein Wert ist eine Zeichenkette, welche die Option für das stem OS/ES angibt> diese Zeichenkette wird ignoriert. Sortierverfahren im Betriebssy- Parameter P I O Sein Wert ist eine Zeichenkette der Form: 'option-steueranweisung' Der Wert ist eine OPTION-Steueranweisung, die dem Programm SORT unverändert übergeben wird. Die Verwendung dieses Parameters setzt die Wirksamkeit der Parameter p7 und p8 außer Kraft. Parameter P H Sein Wert ist eine Zeichenkette der Form: 1 inpfil-steueranweisung' Der Wert ist eine INPFIL-Steueranweisung, welche dem Programm SORT unverändert übergeben wird. Die Verwendung dieses Parameters setzt die Gültigkeit der INPFIL-Anweisung, die aus dem Parameter p5 erzeugt wurde, außer Kraft. Parameter P!2 Sein Wert ist eine Zeichenkette der Form: 'outfil-steueranweisung• Der Wert ist eine OUTFIL-Steueranweisung, welche dem Programm SORT unverändert übergeben wird. Die Verwendung dieses Parameters setzt die Gültigkeit der OUTFIL-AnWeisung, die aus dem Parameter p6 erzeugt wurde, außer Kraft. Parameter P!5 Sein Wert ist eine Zeichenkette der Form: 'outrec-steueranweisung• Der Wert ist eine OUTREC-Steueranweisung, die dem Programm SORT unverändert übergeben wird. 59 PL1-0C Benutzungshinweise 7*3. 10/89 D0S-4/ES Benutzerroutinenanschluß an die Ausgänge EIS und E55 An die Ausgänge E15 und £35 des Programms SORT können in einer beliebigen Programmiersprache geschriebene Benutzerroutinen angeschlossen werden. Dabei ist auf die Einhaltung der geforderten Konventionen für die ParameterÜbergabe zu achten. Nenn SORT durch ein PL1-Programm aufgerufen wird und in PL1 geschriebene Benutzerroutinen angeschlossen werden sollen» setzt das .voraus» daß diese Routinen bereits in den Hauptspeicher geladen wurden. SORT übergibt die Steuerung Über Sprungtabellen» die im Modul lOTGDSH enthalten sind. Die angeschlossenen Benutzerroutinen können externe oder interne PL1-Prozeduren oder ihre Eingangspunkte sein. Für jeden zu verarbeitenden Satz werden diese Routinen erneut aufgerufen. Die am Ausgang E15 angeschlossenen Routine übergibt die einzelnen Eingabesätze dem Programm SORT in Form einer Zeichenkette» und zwar mittels der RETURN-AnWeisung. Wenn die Zeichenkette mit dem Attribut VARYING vereinbart wurde» können die Sätze entweder als Sätze variabler Länge sortiert werden oder zunächst mit Nullen auf die maximale Länge aufgefüllt und als Sätze fester Länge sortiert werden. Einer VARYING-Zeichenkette ist in PL1 ein 2-Byte-Längenpräfix vorangestellt» welcher zum Bestandteil des übergebenen Satzes wird und bei der Angabe der Sortierschlüssel zu berücksichtigen ist. Die am Ausgang EZB angeschlossene Routine übernimmt vom' Programm SORT die einzelnen Sätze der sortierten Datei als Wert eines Parameters mit dem Attribut CHARACTER. Der Parameter darf nicht mit dem Attribut VARYING vereinbart sein. Für Sätze variabler Länge kann der Parameter als Zeichenkettenvariable mit dynamischer Länge vereinbart werden. Die an den Ausgängen E15 und E35 angeschlossenen Benutzerroutinen müssen bei der Rückkehr in das Programm SORT über einen Rückkehrcode das Ergebnis ihrer Aktion mitteilen. In den PL1-Benutzerroutinen wird der Rückkehrcode durch die Anweisung CALL PLIRETC(n), eingestellt. Der folgenden Obersicht können die Werte für den Rückkehrcode sowie deren Bedeutung entnommem werden: n 8 12 7.4. Ausgang Bedeutung E35 Der vom Programm SORT übergebene Satz wurde verarbeitet» das Programm SORT kann den nächsten Satz übergeben. E15» E35 Beendigung der Obergabe von Sätzen» die Benutzerroutine wird nicht mehr aufgerufen. E15 Die Benutzerroutine übergibt dem Programm SORT einen Satz zur Verarbeitung. Beispiel für den Aufruf des Programms SORT SPOOL SYSPCH,DEST=I,NAME=STR«SRTD ASSGN SYSIPT»SYSRDR EXEC LIBR PUNCHS S.STRtSRTO»*NOCATAL END /* SPOOL SYSPCH PAUSE PRUEFEN» OB EINTRAGUNG STRtSRTD IN DER R0R-SCHLANGE VORHANDEN OPTION LINK ACTION NOMAP EXEC PLI * PROCESS NOMAP,STMT,COUNT,FLOW,MARGINI(I|I), PLISORT: PROC OPTlONS(MAIN)i DCL «&PROG CHARC7) VAR INITC'PLISORT*)» dcWERS CHAR(IO) INITC'890626.001'), /* PROGRAMM-NAHE */ /* PROGRAMM-VERSION */ DCL CADDR» SUBSTR, ONCODE» DATE» TIME) BUILTIN; DCL aaDATUM CHAR(8), aaZEIT CHAR(8)$ aaDATUM = TRANSLATEC 'AB*CD*EF' , '. ' 11 DATE» '«FCDAB 1 )» /* aaMESS: 60 H I L F S P R O Z E D U R (EN) PROC(TEXT, STEUERUNG)» DCL TEXT CHARC55), DCL STEUERUNG BIN FIXEDU5), IF STEUERUNG^ THEN PUT PAGE} ELSE IF STEUERUNG=2 THEN PUT SKIPC2)» ELSE PUT SKIP, 1 aaZEIT = TRANSLATEC'ABÄCDÄEF , ': • IITIME, '«ABCDEF1)* PUT EDIT(TEXT, 33PROG, V 1 » 33VERS, aaDATUM» 33ZEIT, UHR 1 ) (A> C0LC6D» 3 A» X(l)> A, X(l)> A, A)i END5 /* aaMESS */ */ PL1-0C Benutzungshinweise /* 10/89 V E R E I N B A R U N G E N DCL DCL DCL DCL DCL DCL DCL DCL DCL DATS FILE RECORD INPUT DATT FILE RECORD INPUT DATU FILE RECORD INPUT EINGB FILE RECORD INPUT AUSGB FILE RECORD OUTPUT SRTBIN1 FILE RECORD INPUT SRTCOUT FILE RECORD OUTPUT BER80 CHARC80)) 1 FELD, 2 ZEIC1 CHARC1), 2 ZEIC2_/f CHARC3), 2 ZEIC5 CHARC1), 2 ZEICH CHARC75)i DCL RCODE BIN FIXEDC31); DCL EOF BITCDi /* - - - ENVCF ENVCF ENVCF ENVCF ENVCF ENVCF ENVCF RECSIZEC80) RECSIZEC80) RECSIZEC80) RECSIZEC80) RECSIZEC80) RECSI2EC80) RECSIZEC80) */ BUFFERSC2))i BUFFERSC2))} BUFFERSC2))) BUFFERSC2))} BUFFERSC2))i BUFFERSC2))i BUFFERSC2))) ALLGEMEINE FEHLER-BEHANDLUNG */ ON ERROR BEGINi ON FINISH SYSTEMi 1 CALL aaMESSC *** ABNORMALES PROGRAMM-ENDE * * * « , 2 ) 5 PUT SKIP EDITC I ONCODE= I , ONCODEC))CA, F C 8 ) ) i PUT SKIP EDITC'FEHLER-ANZAHLs 1 , aaFEHLERHA, F C 3 ) ) ) n C\f^> ON CONDITIONCFEHLER) BEGINi CALL aaMESSC'SORTIERUNG FEHLERHAFT. 1 ^)) STOPi ENDi /* INTERNE PROZEDUREN BEGINN -- PLSOR1: PROCi DCL EOF BITC1) INITClO'B)i ON ENDFILECEINGB) EOF = 'l'Bi OPEN FILECEINGB), FILECAUSGB)) READ FILECEINGB) INTOCFELD)) DO WHILEC-EOF)i PUT FILECSYSPRINT) EDITCZEIC1 M ZEIC2_4 II ZEIC5 I! ZEICHHSKIP, A)i WRITE FILECAUSGB) FROMCFELD)i READ FILECEINGB) INTOCFELD); ENDi CLOSE FILECEINGB), FILE (AUSGB); ENDi /* PLSOR1 */ E15B: PROC RETURNSCCHARC80))i DCL EOF BITC1) INITC'O'B)) OPEN FILECSRTBIN1)) ON ENDFILECSRTBIN1) EOF = 'l'Bi READ FILECSRTBIN1) INTOCFELD)) DO WHILEC-EOF)i IF ZEIC1-=ZEIC5 THEN DOi PUT FILECSYSPRINT) EDITCSTRINGCFELD))CSKIP, READ FILECSRTBIN1) INTOCFELD)) ENDi ELSE DOi CALL PLIRETCC12)i RETURNCSTRINGCFELD))i ENDi ENDi CALL PLIRETC(8)i CLOSE FILECSRTBINDi ENDi /* E15B */ E35C: PROCCREOi DCL REC CHARC80)i DCL CHAR1_1 CHARC1), CHAR1_2 GHARC1), CHAR5 CHARC5)) OPEN FILECSRTCOUT)3 CHAR1_1 = SUBSTRCREC,l,l)i CHAR1_2 = SUBSTRCREC,4,l)i CHAR5 = SUBSTRCREC>1,5)5 IF CHARBs'ZZZZZ1 THEN DOi CALL PLIRETCC8)i CLOSE FILECSRTCOUT)) RETURN) ENDi D0S-4/ES PL1-0C Benutzungshinweise 10/89 IF CHAR1_1=ISI & CHAR1_2='H' THEN DO} WRITE FILECSRTCOUT) FROMCREC)} CALL PLIRETCC4)i RETURNi END; ELSE DO i PUT FILECSYSPRINT) EDITCRECMSKIP, A)i RETURNJ END, ENDi /* E35C */ /* INTERNE PROZEDUREN ENDE /* ---.*/ KURZ-INFORMATION UEBER DEN PROGRAMM-START */ CALL aaMESSC'*** PROGRAMM STARTET ... ***',2)J PUT SKIPJ /* H A U P T T E I L DES P R O G R A M M S */ 11 DISPLAYC'TEST "PL1 - S/M BEGINNT')i CALL 33MESSC'BEGINN EINGABE DER ZU SORTIERENDEN DATEN 1 ,2); CALL PLSORli CALL 33MESSCENDE EINGABE DER ZU SORTIERENDEN DATEN',2); CALL PLISRTAC1 SORT FIELDS=C1,15>CH,A) ', RECORD TYPE=F,LENGTH=80 *, 0, RCODE35 IF RCODE-=0 THEN SIGNAL CONDITIONCFEHLER)) CALL aSMESSC'ERGEBNIS VON PLISRTA.',2)i CALL 33MESSC§SORTIERBEGRIFF 1. BIS 15. Z., AUFSTEIGENDS1)> OPEN FILE(DATS)i EOF = 'O'Bs ON ENDFILE(DATS) EOF = 'l'Bi READ FILECDATS) INTOCBER80)* DO WHILE(-EOF)j PUT FILECSYSPRINT) EDIT(BER80HSKIP, A)} READ FILECDATS) IfrTOCBER80)} ENDi CLOSE FILECDATS)i CALL 33MESSC'AUSGESTEUERTE DATENSAETZE',2)i CALL PLISR1B ('1 SORT FIELDS=(3,1,CH,A) ", RECORD TYPE=F,LENGTH=80 S 0, RCODEjElBB^'SRTBMi IF RCODE-=0 THEN SIGNAL CONDITIONCFEHLER)} CALL aaMESSC'ERGEBNIS VON PLISRTB.',2)i CALL aaMESSC'SORTIERBEGRIFF 3, Z., AUFSTEIGEND1,!)} OPEN FILECDATDi EOF = «O'Bi ON ENDFILECDATT) EOF = 'l'Bi READ FILECDATT) INT0(BER80)i DO WHILE(-*EOF)i PUT FILECSYSPRINT) EDITCBER8O)CSKIP, A)j READ FILECDATT) INTOCBER80)i ENDi CLOSE FILECDATDi CALL aaMESSC'AUSGESTEUERTE DATENSAETZE',2)i CALL PLISRTCC1 SORT FIELDS=C1O,1,CH,D) ', RECORD TYPE=F,LENGTH=80 ', 0» RCODE, E35C,'SRTC')i IF RCODE-=0 THEN SIGNAL CONDITIONCFEHLER); CALL aaMESSC"ERGEBNIS VON PLISRTC.',2)i CALL aaMESSC1SORTIERBEGRIFF 10. Z., ABSTEIGEND',1)) OPEN FILECDATU)i EOF = 'O'Bi ON ENDFILECDATU) EOF = 'l'Bi READ FILECDATU) INTOCBER80)i DO WHILEC-*EOF)i PUT FILECSYSPRINT) ED3TCBER80)CSKIP, A)i READ FILECDATU) INTO(BER80)i ENDi CLOSE FILECDATU)i DISPLAYC'TEST "PLl - S/M" BEENDET 1 ); /* ENDE- DES HAUPTTEILS CALL aaMESSC'*** NORMALES PROGRAMM-ENDE ***', D i ENDi /* PL1SORT */ /* RESET SYSIPT EXEC LNKEDT DEFD EINGB,DEVADDR=SYSIPT,RECSIZE=80 ASSGN SYS001,VOL=AAAAAA DLBL AUSGB»'SFILE1',l,SD,RECSIZE=80,BLKSIZE=80»NDS EXTENT SYS001,NUM=2 DIBL SORTINI, ' S F I L E I S J S D EXTENT SYS001 62 */ D0S-4/ES PL1-0C Benutzungshinweise 10/89 D0S-4/ES DLBL SORTOUT,'SFILE2•,1>SD,RECSIZE=80,BLKSIZE=80,NDS EXTEFTT SYS001,NUM=2 DLBL SRIBIN1,ISFILE2I,>SD EXTENT SYS001 DLBL SRTBOUT,'SFILE3',1,SD,RECSIZE=80,BLKSIZE=80,NDS EXTENT SYS001,NUM=2 DLBL SRTCINl^SFILESSiSD EXTENT SYS001 DLBL SRTCOUT,'SFILE41,1>SD,RECSIZE=80,BLKSIZE=80»NDS EXTENT SYS001,NUM=2 DLBL DATS, I SFILE2',,SD EXTENT SYS001 DLBL DATTy'SFILEZ* >9SD EXTENT SYS001,NUM=2 DLBL DATU, I SFILE4',,SD EXTENT SYS001,NUM=2 ASSGN SYSIPT,DATA=STRfSRTD EXEC 8JS Speicherabzuq und Wiederanlauf Das Schreiben eines Speicherabzugs CPrüfpunkt) auf Platte oder Band zur Ermöglichung eines eventuellen Wiederanlaufs wird im D0S-4/ES durch den Systemmakro CHKPT realisiert» der im Handbuch [23 beschrieben ist. Dem Benutzer des PL1-Optimierungscompilers steht der Bibliotheksmodul PLICKPT zur Verfügung» der durch Benutzung des CHKPT-Makros einen Speicherabzug auf Band oder Platte schreibt. B e i Ausgabe auf Platte definiert und eröffnet er zugleich die Datei CHKFIL für diesen Speicherabzug . Im Fall eines Wiederanlaufs wiederholt der Modul das Anschließen der Fehlerbehandlungsroutine CSTXIT-Routine). Das Schreiben eines Speicherabzugs wird durch folgende Anweisung ausgeführt: CALL PLICKPTC(SYSnnn,mess,med»rcode)3, Bedeutung der Parameter» die alle wahlfrei sind: SYSnnn - logisches Gerät für die Ausgabe des Speicherabzugs» standardmäßig SYS150. mess - beliebige Kette» die vor Ausführung d e s Speicherabzugs auf der Konsole ausgeschrieben wird. med Typ des Gerätes für den Speicherabzug: Magnetband DK - Platte rcode - Variable mit den Attributen BIMARY FIXEDC31), in der der Rückkehrcode für die Ausführung des Speicherabzugs gespeichert wird: 0 - Speicherabzug wurde nicht ausgeführt. 1...249 - Folgenummer des ausgeführten Speicherabzugs. 250 - Logisches Gerät falsch angegeben. 251 - Gerätetyp falsch angegeben. Der Wiederanlauf von einem beliebigen Speicherabzug a u s erfolgt mit der Jobsteueranweisung: [//] RSTRT SYSnnn,num[,CHKFIL3 Bedeutung der Parameter: SYSnnn - logisches Gerät für die Eingabe des Speicherabzugs num - Folgenummer des Speicherabzugs CHKFIL - DTF-Name der Plattendatei mit den Speicherabzügen 63 PL1-0C Benutzungshinweise 9^ 10/89 D0S-4/ES Speicherausdrucke Speicherausdrucke werden chen , um die Ursache von Der PL1-Speicherausdruck wichtige PL1-spezifische 9.1. in Ausnahmefällen verwendet, wenn andere Hilfsmittel nicht ausreiFehlern in Programmen zu erkennen. ist für die Analyse von PL1-Programmen gut geeignet» weil am Anfang Angaben in aufbereiteter und verständlicher Form ausgegeben werden. Erzeugung eines PL1-Speicherausdruckes Ein PL1-Speicherausdruck wird durch CALL PLIDUMPEC zeichenkettenausdruck_ll,zeichenkettenausdruck_21)]j in einem PL1-Programm angefordert und über SYSLST ausgegeben. Die aus "zeichenkettenausdruck_l" resultierende Zeichenkettenkonstante bestimmt die einzelnen Teile des PL1-Speicherausdrucks. Die Zeichenkettenkonstante muß aus einer lückenlosen Folge von bestimmten Buchstaben bestehen. Die folgende Übersicht gibt die zulässigen Buchstaben/Buchstabenpaare und ihre Bedeutung an. Nach der Ausgabe des PL1-Speicherausdrucks soll die Programmausführung - fortgesetzt werden C - nicht fortgesetzt werden S * * * CALLING TRAGE * * * Ein Protokoll aller aktiven soll - ausgegeben werden - nicht ausgegeben werden Prozeduren, BEGIN-Blöcke, ON-Einheiten und Bibliotheksmoduln T .NT * * * FILE INFORMATION * * * Protokoll über alle im Moment des Aufrufs offenen Dateien (Attribute> Pufferinhalte) soll - ausgegeben werden F - nicht ausgegeben werden NF Die über die Buchstaben "T" und "F11 angeforderten Protokolle sollen - in erweiterter Form ausgegeben werden B a) Erweiterung der Funktion T um den hexadezimalen Ausdruck der PL1-Steuerblöcke TCA, TIA> LWS> Kette der DSA und statischen Datenbereiche der aktiven Prozeduren (unter der Überschrift TRAGE OF PL1 CONTROL BLOCKS) b) Erweiterung der Funktion F um den hexadezimalen Ausdruck des Inhalts der FCB, DTF, DCLCB und Puffer Gunter der Überschrift FILE INFORMATION), c) Erweiterung der Funktion T um den Ausdruck der Adresse des TCA, um den Ausdruck der Eingangsadressen der aktiven Prozeduren, BEGIN-Blöcke> ON-Einheiten und Bibliotheksmoduln und um den Ausdruck der Adressen der dazugehörigen DSA, d) Erweiterung der Funktion F um den Ausdruck der Adressen von FCB, DTF und DCLCB> e) Erweiterung der Angaben unter der Überschrift ERROR DIAGNOSTICS um den Ausdruck der Registerinhalte beim Eintritt in diese Routine. - nicht in erweiterter Form ausgegeben werden NB - zeichenweise und hexadezimal ausgegeben werden ....H - nur zeichenweise ausgegeben werden NH Kenn bei einem Aufruf von PLIDUMP kein erstes Argument oder die leere Zeichenkette angegeben wird» werden folgende Standards wirksam: C T F NB NH Die aus "zeichenkettenausdruck_2" resultierende Zeichenkettenkonstante dient nur Zwecken der Identifikation der Auflistungen. Die Zeichenkettenkonstante darf nicht mehr als 90 Bytes lang sein. 9.2. Inhalt der Auflistungen eines Aufrufs von PLIDUMP Jede Auflistung von PLIDUMP beginnt mit der Überschrift * * * PL1 DUMP * * * und der Identifikation» die im zweiten Argument der Anweisung CALL PLIDUMP angegeben wurde. Die Ausgabe umfaßt im allgemeinen die folgenden vier Teile: - Aufruffolge-Protokoll Überschrift: * * * CALLING TRACE * * * Mit dem Aufruffolge-Protokoll kann der Aufruf von PLIDUMP bezüglich aller im Moment des Aufrufs aktiven Blöcke CPROCEDURE-Blöcke, BEGIN-Blöcke) und ON-Enheiten lokalisiert werden* Im Aufruffolge-Protokoll kann außerdem unter der Überschrift "ERROR DIAGNOSTICS11 eine Fehleranalyse enthalten sein. PL1-0C Benutzungshinweise 10/89 D0S-4/ES - Protokoll der Steuerblöcke Oberschrift: TRACE OF PL1 CONTROL BLOCKS Das Protokoll enthält folgende aktuellen Steuerblöcke und Bereiche: Aufgaben-Steuerblock (TASK COMMUNICATIONS AREA - TCA) Anhang zum Aufgabensteuerblock (TCA IMPLEMENTATION APPENDAGE - TIA) Bibliotheksarbeitsbereich (LIBRARY WORK SPACE - LWS) Dynamischer Speicherbereich (DYNAMIC SAVE AREA - DSA) Statischer Speicherbereich (STATIC) - Protokoll der Verzweigungen im Programmablauf Überschrift: * * * FLOW ANALYSIS * * * Das Protokoll der Verzweigungen im Programmablauf wird durch die Compileroption FLOW ausgelöst und ermöglicht eine vollständige Verfolgung der bereits durchlaufenen Programmteile aufgrund der im Protokoll wiedergegebenen Nummern der Anweisungen/Klauseln oder Zeilen. - Protokoll zu den Dateien des Programms Überschrift: * * * FILE INFORMATION * * * In dieser Auflistung sind Angaben zu den Datei-Steuerblocken (FCB)» Daten-Steuerblöcken (DTF) und Vereinbarungssteuerblöcken (DCLCB) enthalten. Außerdem werden die aktuellen Pufferinhalte für alle im Programm zum Zeitpunkt des Aufrufs offenen Dateien ausgegeben. 9.3. Lokalisierung von Variablen In Abhängigkeit vom Speicherklassenattribut ist die Lokalisierung der Variablen unterschiedlich: AJTOMATIC-Variablen er Speicherplatz einer AUTOMATIC-Variablen liegt im DSA des Blocks» in dem die Variable vereinbart wurde. Der Liste "VARIABLE STORAGE MAP" kann für jede AUTOMATIC-Variable eine Relativadresse (in der mit "OFFSET" überschriebenen Spalte dezimal» in der mit "(HEX)" überschriebenen Spalte hexadezimal) entnommen werden» die die Lokalisierung des zugehörigen Speicherplatzes ermöglicht. STATIC-Variablen Jer Speicherplatz von STATIC-Variablen liegt im statischen Speicher der externen Prozedur. De Der statische Speicher wird über Register 3 adressiert5 der für die Adressierung erforderliche Wert von Register 3 ist im Registerrettebereich der externen Prozedur bewahrt. Der Liste "VARIABLE STORAGE MAP" kann für jede STATIC-Variable eine Relativadresse entnommen werden» die zum Wert von Register 3 addiert» die Lokalisierung des zugehörigen Speicherplatzes erlaubt. iLLED-Variabler Die Werte von CONTROLLED-Variablen sind in CONTROLLED-Variablen-Steuerblocken enthalten. Für jede Generation existiert ein CONTROLLED-Variablen-Steuerblock. Im Pseudoregistervektor (PRV) ist für jede CONTROLLED-Variable ein Pseudoregister enthalten» dessen Wert auf den Anfang des vierten Wortes des CONTROLLED-Variablen-Steuerblocks der letzten nicht freigegebenen Generation zeigt. Der CONTROLLED-Variablen-Steuerblock hat folgenden Aufbau: 1. Wort: 2. 3. 4. ab Adresse des zur CONTROLLED-Variablen gehörenden Pseudoregisters relativ zum PRV-Anfang Wort: Länge des CONTROLLED-Variablen-Steuerblocks Wort: Adresse des CONTROLLED-Variablen-Steuerblocks der vorhergehenden Generation 'Wort: Aufgaben-Aufrufzähler Byte 17: skalare arithmetische Daten: Daten sonst: Adresse der Daten Die Adresse des Pseudoregistervektors ist im zweiten Wort des Aufgabensteuerblocks (TCA) zu finden. BASED-Variablen Der Speicherplatz einer BASED-Variablen ist über den Wert der zugeordneten Zeigervariablen lokalisierbar. Ist der den Speicherplatz für die BASED-Variable bestimmende Zeiger seinerseits eine BASEDVariable» so ist diese Besonderheit zu beachten. Variablen in AREA-Variablen Der Speicherplatz von Variablen» die in AREA-Variablen von OFFSET-Variablen lokalisieren. liegen» läßt sich aufgrund der Werte EXTERNAL-Variablen Der Speicherplatz von EXTERNAL-Variablen ist über Adressen» die im externen Prozedur enthalten sind» lokalisierbar. statischen Speicher der PL1-0C Benutzungshinweise Anhang 1 10/89 D0S-4/ES Moduln der PL1-Bibliothek Der PLl-Optimierungscompiler wird durch zwei Bibliotheken, die residente und die transiente PL1-Bibliothek, unterstutzt. Die Moduln der residenten PL1-Bibliothek werden mit dem Objektmodul verbunden und werden somit ein Teil der ausführbaren Programmphase. Sie übernehmen die» Verbindung mit dem System. Die Moduln der transienten PL1-Bibliothek werden nur bei Bedarf geladen. Wird der Modul nicht mehr gebrauchty so wird der Speicherplatz wieder freigegeben. Die Moduln der transienten PL1-Bibliothek werden entweder durch andere transiente Moduln oder durch Moduln der residenten PL1-Bibliothek in den Hauptspeicher gebracht. Jeder Modul hat einen 6 oder 7 Buchstaben langen Namen der Form IOTabctdl. Residente Moduln haben zusätzlich noch einen Namen für den Programmverbinder. Dieser Name wird im übersetzten Code benutzt. ModulEingangsiModulname(n) igruppen- name name IOTabc IOTabcEd] IOTabcde GAC GAOi 1 GAP GAPR GBD GBDU GACMA GACMB GAPRA Pseudovariable PRIORITY DISPLAY-Anweisung Eingangspunkt für DISPLAY-AnWeisung GBDV GBDVA Standardfunktion DATE GBDW GBDWA DELAY-Anweisung GBT GBTZ GBTZA Standardfunktion TIME GBW GBWK GBWKA WAIT für Felder von Ereignissen GBWL GBWLA WAIT GCBFA GCBFB AND, OR für Bitketten, ausgerichtet auf Bytegrenze AND OR GCBH GCBHA NOT für Bitketten, ausgerichtet auf Bytegrenze GCCL GCCLA Standardfunktion INDEX für Zeichenkettenvariable GCCN GCCNA GCCNB Verkettungsoperation für Zeichenketten Standardfunktion REPEAT für Zeichenkettenvariable GCCS GCCSA Standardfunktion TRANSLATE für Zeichenkettenvariable GCCU GCCUA Standardfunktion VERIFY für Zeichenkettenvariable 1 GCB GCC GCBF GCG GCG Arbeit mit Bitketten GCGA GCGAA Standardfunktion BOOL für Bitkettenvariable GCGB GCGBA Vergleich von Bitketten GCGD GCGDA GCGDB GCGDC Zuweisung einer auf Bytegrenze ausgerichteten Bitkette Auffüllen einer auf Bytegrenze ausgerichteten Bitkette mit Nullen (wird nur vom übersetzten Code benutzt) wie GCGDB> wird nur von anderen Bibliotheksmoduln benutzt GCGF GCGFA Standardfunktion INDEX für Bitkettenvariable GCGH GCGHA GCGHB GCGHC Verkettungsoperation für Bitketten Standardfunktion REPEAT für Bitkettenvariable Zuweisung einer Bitkette GCGJA GCGJB GCGJC GCGJD Standardfunktion SUBSTR SUBSTRCbitkette>p) SUBSTRC zeichenkette,p) SUBSTRC bitkette,p,1) SUBSTRC zeichenkette >p,1) GCGLA Standardfunktion VERIFY für Bitkettenvariable GCGJ 1 1 GCGL | 66 Pseudovariable COMPLETION Zuweisung von EVENT-Variablen GBDUA 1 1 I Funktions des Moduls GDC GDCS GDCSA Speicherabzug/Wiederanlauf GDD GDDF GDDFA Startroutine für den Speicherausdruck PL1-0C Benutzungshinweise ModulModulEingangsgruppen- name name(n) name IOTabc IOTabcCdJ IOTabcde GDS GDSH GDSHA GDSHB GDSHC GDSHO I GFC GFE Realisierung der Simlation von Gleitkommagenauigkeit mit erweiterter Mantisse GFCZ GFCZA Festlegung der Standardsystemmaßnahme für die ERROR-Bedingung GFEOA GFERA GFERB 1 GFERC GFFV GFFVA GFFVB GFFVC GFO GGA Unterbrechungsbehandlung für: 1 vom Betriebssystem erkannte Bedingungen | CProgrammunterbrechungen? z.B. ON-Bedingungen FIXEDOVERFLOW, ZERODIVIDE} Adressierungsausnahmen (ERROR)) Bedingungen> die durch vom PL1-Compiler erzeugten Code erkannt werden (z.B. ON-Bedingungen: SIZE> CHECK» SUBSCRIPTRANGE) Bedingungen> die in der Fehlerbehandlung und in der Arbeit von verschiedenen anderen PL1-Bibliotheksmoduln erkannt werden Optionen FLOW und COUNT Erzeugt und initialisiert die Tabelle der Verzweigungen Aktualisiert die Tabelle der Verzweigungen? erzeugt und aktualisiert Häufigkeitstabellen Markiert die Verzweigungs- und Häufigkeitstabellen* wenn ein GOTO aus einem Block auftritt. GFOEA Standardfunktion ONCODE GFOG GFOGA Standardfunktion ONLOC GGAAA GGAAB GGAAC Standardfunktionen ALL(x) und ANY(x)> x Bitkettenfeld ALL(x), ANYCx) für ALIGNED-Felder ALLCx) für UNALIGNED-Felder ANYCx) für UNALIGNED-Felder GGIAA Indizierung gestreut gespeicherter Felder GGMMA GGMMB GGMMC GGMMD Bestimmung des Strukturaufbaus Bestimmung der Strukturlänge Bestimmung des Strukturaufbaus nach PL1-Konvention Bestimmung des Strukturaufbaus nach COBOL-Konventionen schrittweise Bestimmung des Strukturaufbaus (nur bei Auftreten von REFER) GGAA GGIA GGM GGMM I GGMT GGMTA GGMTB GGP •" I Ausführung der Standardsystemmaßnahme für die CHECK-Bedingung GFOE GGI 1 ! " '"• GFER GFF Anschluß an das Sortierprogramm unsortierte Sätze von DateiCen) SORTINn, sortierte Sätze 1 auf Datei SORTOUT Festlegung der Verwendung des Benutzerausganges E15 Festlegung der Verwendung des Benutzerausganges E35 Festlegung der Verwendung der Benutzerausgänge El5 und E35 GFCFA GFED D0S-4/ES Funktions des Moduls GFCF ! i1 10/89 Standardfunktion STRING Bestimmung der Kettenlänge» die sich bei Verkettung aller Elemente der Argumentstruktur oder des Argumentfeldes ergibt Verkettung j Standardfunktion PROD(x) GGPF GGPFA GGPGA GGPGB Feldelemente von x sind DECIMAL FLOAT mit erweiterter Mantisse. REAL FLOAT COMPLEX FLOAT GGPHA GGPHB GGPHC GGPHD Feldelemente von x sind DECIMAL FLOAT mit kurzer Mantisse. REAL FLOAT (kurze Mantisse) COMPLEX FLOAT (kurze Mantisse) REAL FLOAT (lange Mantisse) COMPLEX FLOAT (lange Mantisse) 1 GGPPA STRING - Pseudovariable GGPG GGPH GGPP Feldelemente von x sind BINARY FIXED oder DECIMAL FIXED, REAL oder COMPLEX 67 PL1-0C Benutzungshinweise ModulEingangsModulgruppen- name name (n) name IOTabctd] IOTabcde IQTabc GSS GGSUA GGSWA GGSWB GGSWC GGSWD Feldelemente von x sind DECIMAL FLOAT mit kurzer Mantisse« REAL FLOAT (kurze Mantisse) COMPLEX FLOAT (kurze Mantisse) REAL FLOAT (lange Mantisse) COMPLEX FLOAT (lange Mantisse) GGY Standardfunktion POLY (a,x) GGYY GGYYA GGYYB Argumente mit erweiterter Mantisse REAL FLOAT COMPLEX FLOAT GGYZA GGYZB GGYZC GGYZD Argumente: REAL FLOAT (kurze Mantisse) COMPLEX FLOAT (kurze Mantisse) REAL FLOAT (lange Mantisse) COMPLEX FLOAT (lange Mantisse) GKAFA Datenumwandlung: Arithmetischer Typ in Zeichenkettentyp GGYZ GKAF | GKB GKG 68 Feldelemente von x sind BINARY FIXED oder DECIMAL FIXED, REAL oder COMPLEX. GGSVA GGSVB GGSW GKE Funktions des Moduls Feldelemente von x sind DECIMAL FLOAT mit erweiterter Mantisse. REAL FLOAT COMPLEX FLOAT GGSV GKC D0S-4/ES Standardfunktion SUMCx) GGSU GKA 10/89 Datenumwandlung: Bitkettentyp GKBC GKBCA in Bitkettentyp GKBD GKBDA in Zeichenkettentyp GKBE GKBEA in PICTURE-Zeichenkette GKCL GKCLA Datenumwandlung: Zeichenkettentyp in reellen oder komplexen arithmetischen Typ GKO1 GKQ1A Datenumwandlung: Zeichenkettentyp in Bitkettentyp GKCN GKCNA GKCNB GKCNC Zuweisung einer Zeichenkette fester oder variabler Länge an eine Kette fester oder variabler Länge HIGH LOW GKCO GKCOA Datenumwandlung Zeichenkettentyp in PICTURE-Zeichenkette GKCP GKCPA Steuermodul für Zeichenkettenkonvertierung GKEDB GKEDF GKEDX GKEFX GKEZB GKEZF GKEZX Datenumwandlung: DECIMAL FIXED in BIT DECIMAL FIXED in FLOAT DECIMAL FIXED in BINARY FIXED FLOAT in BINARY FIXED internes dezimales Format in BIT internes dezimales Format in FLOAT internes dezimales Format in BINARY FIXED GKGS GKGSA Gültigkeitsprüfung numerischer Ketten GKGU GKGUA Gültigkeitsprüfung PICTURE-Zeichenketten GKGW GKGWA Tabelle der Zehnerpotenzen GKGY GKGYA Nullsetzen des Real- oder Imaginärteils einer komplexen Zahl GKE PL1-QC Benutzungshinweise ModulModulEingangsgruppen- name name ( n ) name lOTabc lOTabctdl IOTabcde 6KH GKH GKHFD GKHFE GKHFH 1 GKHFP GKK GKM GKO GKP GKR GKT GKU 10/89 D0S-4/ES Funktions des Moduls GKHFY GKHXD GKHXE GKHXF GKHXH GKHXP GKHXY Datenumwandlung: FLOAT in DECIMAL FIXED FLOAT in numerische Gleitkommakette FLOAT in F-Format FLOAT in numerische Festkommakette FLOAT in E-Format BINARY FIXED in DECIMAL FIXED BINARY FIXED in numerische Gleitkommakette BINARY FIXED in FLOAT BINARY FIXED in F-Format BINARY FIXED in numerische Festkommakette BINARY FIXED in E-Format GKKDD GKKDP GKKZD GKKZP Datenumwandlung: DECIMAL FIXED in DECIMAL FIXED DECIMAL FIXED in numerische Festkommakette internes dezimales Format in DECIMAL FIXED internes dezimales Format in numerische Festkommakette GKMPB GKMPD GKMPE GKMPF GKMPP GKMPX Datenumwandlung: Numerische Kette Numerische Kette Numerische Kette Numerische Kette Numerische Kette Numerische Kette GKODE GKODP GKOZE Datenumwandlung: DECIMAL FIXED in numerische Gleitkommakette DECIMAL FIXED in numerische Festkommakette Internes dezimales Format in numerische Gleitkommakette GKPBD GKPBE GKPBF GKPBP GKPBX Datenumwandlung: BIT in DECIMAL FIXED BIT in numerische Gleitkommakette BIT in FLOAT BIT in numerische Festkommakette BIT in BINARY GKRFB GKRXB Datenumwandlung: FLOAT in BIT BINARY FIXED in BIT GKTHD GKTHE GKTHF GKTHI GKTHP GKTKX GKTHZ Datenumwandlung: Dezimalkonstante Dezimalkonstante Dezimalkonstante Dezimalkonstante Dezimalkonstante Dezimalkonstante Dezimalkonstante GKUID GKUIE GKUIF GKÜIX GKUIP Datenumwandlung: Binärkonstante in Binärkonstante in Binärkonstante in Binärkonstante in Binärkonstante in GKVDY GKVZY Datenumwandlung: DECIMAL FIXED in E-Format Internes dezimales Format in E-Format GKWDH GKWZH Datenumwandlung: DECIMAL FIXED in F-Format Internes dezimales Format in F-Format GKK GKM GKO GKP GKR GKT GKU in in in in in in in in in in in in in BIT DECIMAL FIXED numerische Gleitkommakette FLOAT numerische Festkommakette BINARY FIXED 1 DECIMAL FIXED numerische Gleitkommakette FLOAT eine ganze Zahl numerische Festkommakette BINARY FIXED das interne dezimale Format 1 I 1 ! DECIMAL FIXED numerische Gleitkommakette FLOAT BINARY FIXED numerische Festkommakette „ GKV GKW GKX GKV GKW GKXH GKXHA GKXHB GKXJ GKXJA GKXJB GKXL GKXLA Umwandlung: beliebiger Datentyp in Gleitkommaformat mit erweiterter Mantisse Formatelemente in Daten» die Gleitkommaformat mit erweiterter Mantisse haben können i I ! Umwandlung: Gleitkommaformat mit erweiterter Mantisse in einen beliebigen Datentyp von Daten im Gleitkommaformat mit erweiterter Mantisse in Formatelemente ........ —— . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I Tabelle der Zehnerpotenzen (erweitere Mantisse) 69 PL1-0C Benutzungshinweise 10/89 D05-4/ES ModulEingangs- Funktions des Moduls Modulgruppen- name name(n) name IOTabc IOTabcCd] IOTabcde GKY GKY GKYFF GKYXX GMA SQRT(x) GMAK GMAL GMAKA GMALA x REAL FLOAT (kurze Mantisse) x REAL FLOAT (erweiterte Mantisse) GMAM x REAL FLOAT (lange Mantisse) GHAO GMAMA GMAOA GMAP GMAPA x COMPLEX FLOAT (lange Mantisse) GtlAQ GMAQA x COMPLEX FLOAT (erweiterte Mantisse) EXP(x) GMCK GMCKA x REAL FLOAT (kurze Mantisse) GMCM x REAL FLOAT (lange Mantisse) GMCO GMO1A GMCOA GMCP GMCPA x COMPLEX FLOAT (lange Mantisse) GMCQ GMCQA x COMPLEX FLOAT (erweiterte Mantisse) GMC _„ GMD x COMPLEX FLOAT (kurze Mantisse) x COMPLEX FLOAT (kurze Mantisse) Fehlerintegral und dessen Komplement GMDK GMDL GMDM GMDKA GMD KB Argument REAL FLOAT (kurze Mantisse) ERF(x) ERFC(x) GMD LA GMDLB Argument REAL FLOAT (erweiterte Mantisse) ERF(x) ERFC(x) GMDMA GMDMB Argument REAL FLOAT (lange Mantisse) ERF(x) ERFC(x) GME j 1 Logarithmusfunktion GMEK GMEKA GME KB GHEKC x REAL FLOAT (kurze Mantisse) LOG(x) LOG2(x) LOG10(x) GMEMA GMEMB GMEMC x REAL FLOAT (lange Mantisse) LOG(x) LOG2(x) LOG10(x) GMEO GMEOA LOG(z), z COMPLEX FLOAT (kurze Mantisse) GMEP 'GMEPA GMEQA LOG(z), z COMPLEX FLOAT (lange Mantisse) GMEM GMEQ 70 Datenumwandlung: FLOAT in FLOAT BINARY FIXED in BINARY FIXED LOG(z), z COMPLEX FLOAT (erweiterte Mantisse) | PL1-0C Benutzungshinweise 10/89 D0S-4/ES iModul- iModul|Eingangs-| Funktions des Moduls Igruppen-jname name(n) jname lIOTabc I0Tabc[d] IOTabcde I GMF SIN und COS, SINH und COSH I GMFK GMFL GMFKA GMFKB j GMFKC GMFKD GMFLA GMFLB GMFLC | GMFLD I GMFM I GMFO GMFP GMFMA GMFMB GMFMC GMFMD I GMFPA I GMFPB I GMFPC GMFPD z COMPLEX FLOAT (lange Mantisse) SIN(z) | SINH(z) COSCz) COSH(z) GMGK GMGL GMGO I GMGP GMGQ x REAL FLOAT (lange Mantisse) SIN(x) SIND(x) COS(x) COSD(x) z COMPLEX FLOAT (kurze Mantisse) SIN(z) SINH(z) COS(z) COSH(z) i GMGM I x REAL FLOAT (erweiterte Mantisse) | SIN(x) I SIND(x) COS(x) COSD(x) i GMFOA GMFOB GMFOC GMFOD I GMFQ GMG x REAL FLOAT (kurze Mantisse) SIN(x) SIND(x) COS(x) COSD(x) GMFQA GMFQB GMFQC GMFQD z COMPLEX FLOAT (erweiterte Mantisse) SIN(z) SINH(z) COS(z) COSH(z) GT1GKA GMGKB TAN und TANH x REAL FLOAT (kurze Mantisse) TAN(x) TAND(x) GMGLA GMGLB i x REAL FLOAT (erweiterte Mantisse) | TAN(x) TAND(x) GMGMA GMGMB x REAL FLOAT (lange Mantisse) TAN(x) TAND(x) GMGOA GMGOB z COMPLEX FLOAT (kurze Mantisse) TAN(z) TANH(z) GMGPA GMGPB z COMPLEX FLOAT (lange Mantisse) j TAN(z) TANH(z) GMGQA GMGQB z COMPLEX FLOAT (erweiterte Mantisse) TAN(z) TANH(z) SINH und COSH mit Argument REAL FLOAT GMH GMHK GMHL GMHM GMHKA GMHKB I GMHLA GMHLB GMHMA GMHMB x kurze Mantisse SINH(x) COSH(x) x erweiterte Mantisse SINH(x) COSH(x) x lange Mantisse SINH(x) COSH(x) 71 PL1-0C Benutzungshinweise 10/89 Eingangs- Funktions des Moduls ModulModulgruppen- name name(n) name IOTabc IOTabcCdJ IOTabcde TANH mit Argument REAL FLOAT GMI 1 GMIK GMIKA TANH(x), x kurze Mantisse GMIL GMILA TANH(x), x erweiterte Mantisse GMIM GMIMA TANH(x), x lange Mantisse arctan und artanh GML GMLK GMLL GMLM GMLO GMLP GMLQ GMLKA GMLKB GtlLKG GMLKD x, y REAL FLOAT (kurze Mantisse) ATANCx) ATANDCx) ATANCy, x) ATANDCy, x) GMLLA GMLLB GMLLC GMLLD x, y REAL FLOAT (erweiterte Mantisse) ATANCx) ATANDCx) ATANCy, x) ATANDCy, x) GMLMA GMLMB GMLMG GMLMD x, y REAL FLOAT (lange Mantisse) ATANCx) ATANDCx) ATANCy, x) ATAND (y, x) GMLOA GMLOE z COMPLEX FLOAT (kurze Mantisse) ATANCz) ATANHCz) GMLPA GMLPB z COMPLEX FLOAT Clange Mantisse) ATANCz) ATANHCz) GMLQA GMLQB z COMPLEX FLOAT (erweiterte Mantisse) ATANCz) ATANHCz) 1 GMM artanh mit Argument REAL FLOAT GMMK GMMKA ATANHCx), x kurze Mantisse SMML GMMLA ATANH(x), x erweiterte Mantisse GMMM GMMMA ATANHCx), x lange Mantisse aresin und arecos mit Argument REAL FLOAT GMN 6MNK GMNL GMNM 1 1 x kurze Mantisse ASINCx) ACOSCx) GMNLA GMNLB x erweiterte Mantisse ASINCx) ACOSCx) GMNMA GMNMB x lange Mantisse ASINCx) ACOSCx) GMPFA GMPFB ADDCx, y, p, q) x, y REAL DECIMAL FIXED x, y COMPLEX DECIMAL FIXED GMP GMPF GMQ GMQI GMQJ GMQIA MULTIPLYCx, y» p, q)> x, y COMPLEX BINARY FIXED GMQJA MULTIPLYCx, y, p, q ) , x, y COMPLEX DECIMAL FIXED GMRI GMRJ GMRIA DIVIDECx, y, p, q ) , x, y COMPLEX BINARY FIXED GMRJA DIVIDECx, y, p, q ) , x, y COMPLEX DECIMAL FIXED GMR 72 GMNKA GMNKB D0S-4/ES PL1-0C Benutzungshinweise ModulModulEingangsgruppen- name name(n) name IOTabc IOTabc[dl XOTabcde GM5I GMSJ GMSO GMSP GMSQ GMSIA GMSJA GMSOA GMSPA GMSQA GMTF GMTFA GMTFB GMU GMVO GMVP Verschieben und Zuweisen/Laden Zuweisen Laden REAL DECIMAL FIXED zl, z2 COMPLEX DECIMAL FIXED zl * z2 zl/z2 GMUNA GMUNB zl * z2, zl» z2 COMPLEX FLOAT kurze Mantisse lange Mantisse GMUQA GMUQB zl, z2 COMPLEX FLOAT erweiterte Mantisse zl * z2 zl/z2 GMVOA GMVPA GMW zl/z2, zl, z2 COMPLEX FLOAT (kurze Mantisse) zl/z2, zl, z2 COMPLEX FLOAT (lange Mantisse) x**n und z**n mit n ganze Zahl GMWK GMWKA x**n» x REAL FLOAT (kurze Mantisse) GMWL GMWLA x**n, x REAL FLOAT (lange Mantisse) GMWM GMWKA x**n> x REAL FLOAT (erweiterte Mantisse) GMWNA GMWNB z**n, z COMPLEX FLOAT kurze Mantisse lange Mantisse GMWQA z**n» z COMPLEX FLOAT (erweiterte Mantisse) GMWN GMHQ GMX | x**y (bzw. zl**z2) und Logarithmusfunktion GMXK GMXKA x**y, x, y REAL FLOAT (kurze Mantisse) GMXLA GMXLB GMXLC GMXLJD GMXLE GMXM * GMXO GMXMA x, y REAL FLOAT (erweiterte Mantisse) X**y e**x LOG(x) LOG2(x) LOG10(x) x**y, x, y REAL FLOAT (lange Mantisse) GMXOA zl**z2> zl, z2 COMPLEX FLOAT (kurze Mantisse) GMXP GMXPA zl**z2, zl, z2 COMPLEX FLOAT (lange Mantisse) GMXQ GMXQA zl**z2, zl, z2 COMPLEX FLOAT (erweiterte Mantisse) GOCLA GOCLB GOCLC GOCLD OPEN/CLOSE-Steuermodul explizites Eröffnen implizites Eröffnen explizites Schließen implizites Schließen GRML GRMLA Steuermodul für Eingabekonvertierungen aus dem A-, B- und Zeichenketten-P-Format GRMN GRMHA Steuermodul für Ausgabekonvertierung in das A-Format GMXL GRM BINARY FIXED DECIHAL FIXED FLOAT (kurze Mantisse) FLOAT (lange Mantisse) FLOAT (erweiterte Mantisse) GMUJA GMUJ© GMUQ GOC . z CÖMPLEX . z COMPLEX z COMPLEX z CQMPLEX z COMPLEX zl, z2 COMPLEX BINARY FIXED zl * z2 zl/z2 GMUN 1 i GMUIA GMUIB GMUJ GMX Funktions des Moduls zl * z2 und zl/z2 GMUI GMV D0S-4/ES ABS(z) GMS GMT 10/89 GOCL i 71 PL1-0C Benutzungshinweise EingangsiModul- ModulnameCn) Igruppen- name Iname IOTabctdl IOTabcde IOTabc 10/89 D0S-4/ES Funktions des Moduls GRN GRNH GRNHA Steuermodul für Ausgabekonvertierung in das B- und Zeichenketten-P-Format GRO GROU GROUA Steuermodul für Eingabekonvertierung aus dem C-Format GROV GROVA Steuermodul für Ausgabekonvertierung in das C-Format GROW GROWA COPY-Option Csteuert das Schreiben eines Feldes auf die in der COPY-Option einer GET FILE-Anweisung angegebenen Datei) GROX GROXA Konvertierungssicherung (ONSOURCE-Kette) GRQAA GRQAB DATA-gesteuerte Eingabe GET DATA-Anweisungen mit Datenlisten GET DATA-Anweisungen ohne Datenlisten 1 GRQ 1 GRQA — -— GRQD GRQDA GRQDB GRQDC GRQDD GRQDT GRR GRRF GRRG GRRFA GRRFB GRRGA GRRGT GRS GRU —— .---——-—--. ——.......... ..... DATA-gesteuerte Ausgabe Felder einzelne Feldelemente alle bekannten Variablen Cauch für Ausgabe wegen SIGNAL CHECK) CHECK-Ausgabe für eine einzelne Variable Erzeugung des abschließenden Semikolons EDIT-gesteuerte Ein-/Ausgabe steuert die EDIT-gesteuerte Eingabe eines Elementes steuert die EDIT-gesteuerte Ausgabe eines Elementes EDIT-gesteuerte Eingabe Verwaltung für ein Element» das sich über die Satzgrenze erstreckt Erzeugung der TRANSMIT-Bedingung für EDIT-gesteuerte Eingabe GRRH GRRHA EDIT-gesteuerte Ausgabe (Verwaltungsaufgaben für ein Element der EDIT-gesteuerten Ausgabe» das sich über eine Satzgrenze erstreckt) GRSO GRSOA Steuermodul für Eingabekonvertierung aus dem F- und E-Format GRSP GRSPA Steuermodul für Ausgabekonvertierung in das F- und E-Format GRUMA GRUHB GRUMC GRUND GRUMT GET FILE-Initialisierung GET FILE-Anweisung GET FILE-Anweisung mit SKIP-Option GET FILE-Anweisung mit COPY-Option GET FILE-Anweisung mit SKIP und COPY Beendigung GRUNA GRUNB GRUNC GRUND GRÜNE GRÜNT PUT FILE-Initialisierung PUT FILE-Anweisung PUT FILE-Anweisung mit PAGE-Option PUT FILE-Anweisung mit LINE-Option PUT FILE-Anweisung mit PAGE und LINE PUT FILE-Anweisung mit SKIP-Option Beendigung GRUOA GRUOB GRUQT GET STRING-/PUT STRING-Initialisierung Initialisierung GET STRING-Anweisung Initialisierung PUT STRING-Anweisung Verwaltung von GET STRING-/PUT STRING-Anweisung GRUM GRÜN GRUO .j I PL1-0C Benutzungshinweise ModulModulEingangsgruppen- name name(n) name IOTabc IOTabeEd] IOTabcde GRV GRVI GRWC GRVIA GRVIB GRVKA GRVKB LIST-gesteuerte Ausgabe überträgt Daten von einer skalaren PL1-Variablen oder einer Feldvariablen> die in einer PUT-Anweisung angegeben wurde> zum Ausgabepuffer und steuert die Konvertierung der Daten von ihrer internen Form in die externe Form. Skalare Daten Felddaten GRWCA Steuermodul für Eingabekonvertierung aus dem P-Format GRWEA GRWEB GRWEC Realisierung PRIMT-Option PRINT-Option PRIKT-Option GRWGA Steuermodul für Ausgabekonvertierung in das P-Format GRYFA GRYFB GRYFC GRYFD X- und COLUMN-Formatelement X-Formatelement in GET-Anweisung X-Formatelement in PUT-Anweisung COLÜMN-Formatelernent in GET-Anweisung COLÜMN-Formatelernent in PUT-Anweisung GRWE GRWG GRY GSI GRYF GSIO GSIOC GSIOD GVOCA GVOCB Speicherplatzverwaltung für CTL-Variable Speicherplatzzuweisung Speicherplatzfreigabe GSIOB GVO GVOC GVOF GVOFA GVOFB GVOFC GVP GVPD GVQ GVQH GVU GVUI FETCH/RELEASE-Modul FETCH RELEASE GVQHA Neusetzen des CHECK-Status GVUIC 1 Speicherplatzverwaltung für AREA-Variable Zuweisung einer BASED-Variablen innerhalb einer vorgegebenen AREA-Variablen Freigabe einer vorgegebenen BASED-Variablen innerhalb einer vorgegebenen AREA-Variablen Zuweisung des Inhalts einer Quell-AREA-Variablen zu einer Ziel-AREA-Variablen GVPDA GVPDB GVÜIA GVUIB 1 von PAGE, SKIP, LIKE PAGE» Formatelement PAGE LINE, Formatelement LINE SKIP, Formatelement SKIP Modul für RECORD-E/A Prüft die Gültigkeit der E/A-Anweisung und ruft den Übertrager auf Lädt einen Fehlermodul für die satzweise E/A und verzweigt dorthin Erzeugt für ungültige Anweisungen die ERROR-Bedingung Erzeugung einer E/A-Fehlerbedingung GSIOA DQS-4/ES Funktions des Moduls LIST-gesteuerte Eingabe überträgt Daten vom Eingabepuffer zu einer skalaren PL1-Variablen oder einer Feldvariablen> die in der GET LIST-Anweisung angegeben wurde, und steuert die Konvertierung der Daten von ihrer externen Form in die interne Form, Skalare Daten Felddaten GRVK GRW 10/89 (in Vorbereitung) Programminitialisierung Übergabe der Steuerung vom Betriebssystem für den Aufruf aus Programmen, die nicht in PL1 geschrieben sind und die mit der PL1-Standardlänge des ISA auskommen für den Aufruf aus Programmen, die nicht in PL1 geschrieben sind und die die Länge und wahlweise auch die Adresse des von PL1 benutzten dynamischen Speichers benötigen 75 PL1-0C Benutzungshinweise EingangsModul- i Modulgruppen- name name(n) name IOTabctd] IOTabcde IOTabc GVW GVWK GVWKA GZE GZEDA GZEDB GZEDC GZEG GZEGA GZEGB GZEGC GZEGD 1 GZEN GZE NA GZENC GZEND 76 D0S-4/ES Funktions des Moduls Modul für Rückkehrcode Moduln für Sprachverbindung GZED RFC 10/89 RFCF RFCFA PL1-COBOL Erzeugung der CCBOL-Standardumgebung Erzeugung einer COBOL-Umgebung> welche die Unterbrechung sbehandlung durch PL1 vorsieht Wiederherstellung der PL1-Umgebung nach der Rückkehr aus einem COBOL-Programm PL1-FORTRAN Erzeugung der FORTRAN-Standardumgebung Erzeugung einer FORTRAN-Umgebung» durch die die von FORTRAN nicht behandelten Unterbrechungen von PL1 behandelt werden Wiederherstellung der PL1-Umgebung nach der Rückkehr aus einem FORTRAN-Programm Wiederherstellung der PL1-Umgebung und Speichern des Rückgabewertes nach der Rückkehr von einem FORTRAN-Funktionsaufruf PL1 und andere Sprachen Erzeugung der PL1-Umgebung und Bereitstellung eines DSA für eine PL1-Prozedur> die an einen Eingangspunkt mit OPTIONSCCOBOL) oder OPTIONSCFORTRAN) aufgerufen wurde Wiederherstellung der Umgebung des Programms» das PL1 aufgerufen hat Wiederherstellung der FORTRAN-Umgebung und Eintragen eines eventuellen PL1-Funktionswertes in das (oder die) entsprechende(n) Register Hilfsmodul, falls die Simulation der erweiterten Gleitkommaarithmetik nicht erforderlich PL1-0C Benutzungshinweise Anhang 2 10/89 DQS-4/ES Nachrichten des PL1-Optimierungscompilers (Übersetzung) Das Format der Nachrichten des PL1-Optimierungscompilers» die bei der Obersetzung ausgegeben werden können» ist in Abschnitt 1.3.3. beschrieben. Die-Nachrichtentexte sind in der Kurzform (wenn vorhanden) und Langform in englischer Sprache zusammengestellt. Eine Übersetzung (wenn erforderlich auch eine Erläuterung) wurde in deutscher Sprache hinzugefugt. In manchen Nachrichten werden vom PL1-Optimierungscompiler zusätzlich variable Teile eingefügt. In den Nachrichtentexten sind an solchen Stellen dafür Buchstaben gesetzt» die folgende Bedeutung haben: d Verzeichnisbezugnähme (Konstanten» Funktionen» Variablen-Bezugnahme» Parameter) n Anzahl (von Zeichen» von Programmelementen oder Objekten des Programms) P Name einer Compilerphase t» tl» t2 Teil des PL1-Quelltextes oder einer CompilerOption Nachrichten über die Bedieneinheit IOC0002I IOC0003I ERROR DURING COMPILER INITIALIZATION. Fehler während der Compiler-Initialisierung. UNABLE TO OPEN COMPILER PRINT FILE. Es ist nicht möglich» die Compiler-Druckdatei zu eröffnen. Nachrichten über SYSLST IOC0001I U ERROR NUMBER n IN MACRO INTERPRETER PHASE p. Fehler Nummer n in der Makrointerpreter-Phase p. IOC0002I U ERROR DURING COMPILER INITIALIZATION. COMPILATION TERMINATED. Fehler während der Compiler-Initialisierung. Übersetzung wurde abgebrochen. IOC0005I U ENDFILE FOUND ON INPUT FILE DURING COMPILER INITIALIZATION. Während der Compiler-Initialisierung wurde in der Eingabedatei "ENDFILE11 gefunden. IOC0008I U UNABLE T9 OPEN COMPILER INPUT FILE. Es ist nicht möglich» die Compiler-Eingabedatei zu eröffnen« IOC0010I S UNABLE TO OPEN COMPILER PUNCH FILE. Es ist nicht möglich» die Compiler-Stanzdatei zu eröffnen. IOC0013I S BLQCKSIZE FOR COMPILER PUNCH FILE INCORRECT. 80 ASSUMED. Die Blocklänge für die Compiler-Stanzdatei ist fehlerhaft. Es wurden 80 angenommen. IOCQ01M IOC0015I THE FOLLOWING IS NOT A CORRECT OPTION KEYWORD AND IS IGNORED t. Das folgende Schlüsselwort t ist keine korrekte Option und wurde ignoriert. SYNTAX ERROR IN SPECIFICATION OF FOLLOWING OPTION» DEFAULT ASSUMED FOR t. Syntax-Fehler in der Angabe der folgenden Option. Es erfolgt die Standardannahme für t. I0C0016I THE SPECIFICATION OF THE FOLLOWING OPTION IS NOT PERMITTED t. Die Angabe der folgenden Option t ist nicht erlaubt. IOC0017I THE MISSING RIGHT PARENTHESXS IS INSERTED IN THE FOLLOWING OPTION t. Die fehlende rechte Klammer wurde in die folgende Option t eingefügt. IOC0018I UNMATCHED LEFT PARENTHESIS IN SPECIFICATION OF COMPILER OPTION. SUBSEQUENT OPTIONS IGNORED. Keine entsprechende rechte Klammer in der Angabe einer Compiler-Option« Nachfolgende Optionen wurden ignoriert. IOC0019I THE FOLLOWING INCORRECT SUB-FIELD OF CHARSET OPTION IS IGNORED t. Das folgende fehlerhafte Unterfeld t der Option CHARSET wurde ignoriert. THE FOLLOWING SUB-FIEU) OF CHARSET t IS NOT CORRECT. DEFAULT ASSUMED FOR t. Das folgende Unterfeld der Option CHARSET ist fehlerhaft. Es erfolgt die Standardannahme für t. IOC0020I IOC0023I THE SPECIFICATION OF SORMGIN OPTION IS NOT CORRECT. DEFAULTS ASSUMED FOR SOURCE MARGINS. Die Angabe der Option SORMGIN ist fehlerhaft. Es erfolgen Standardannahmen für die Quelltextbegrenzung. IOC0025I CONTROL CHARACTER POSITION CONFLICTS WITH SOURCE MARGINS OR SEQUENCE FIELD. CONTROL CHARACTER IS IGNORED. Die Position des Steuerzeichens widerspricht der Quelltextbegrenzungs- oder Folgefeld-Information. Das Steuerzeichen wurde ignoriert. 77 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0026I ARGUMENTES) OF OPTION OUTSIDE ALLOWED RANGE. DEFAULTCS) ASSUMED FOR FOLLOWING OPTION t. Argument(e) der Option außerhalb des erlaubten Bereiches. Es erfolgen Standardannahmen für die folgende Option t. IOC0030I SPECIFIED NAME TOO L0N6. LEFTMOST EI6HT CHARACTERS USED. Der angegebene Name ist zu lang. Die ersten acht Zeichen wurden verwendet. NON-BLANK CHARACTER(S) FOLLOWING SEHICOLON IGNORED. Andere Zeichen als Leerzeichen, die dem Semikolon folgen? wurden ignoriert. CHARACTER-STRING •».' IKTERPRETED AS SEMICOLON. SCANNING OF OPTIONS TERMINATED. Die Zeichenkette *».' wird als Semikolon angesehen. Die Durchmusterung der Optionen wurde abgebrochen. IOC0033I IOC0034I IOC0036I U THE SPECIFICATION OF CONTROL OPTION IS NOT CORRECT. COMPILATION TERMINATED. Die Angabe der Option CONTROL ist fehlerhaft. Die Übersetzung wurde abgebrochen« IOC0037I ILLEGAL DELIMITER AT BEGINNING OF STRING t. IT IS IGNORED. Unerlaubter Begrenzer am Anfang der Kette t. Der Begrenzer wurde ignoriert. IOC0038I OPTION CLINE BUT NO OPTION SEQUENCE. DEFAULT SEQUENCE ASSUMED. Die Option CLINE ist angegeben» aber nicht die Option SEQUENCE. Es erfolgt die Standardannahme für SEQUENCE. IOC0039I THE FOLLOWING IDENTIFIER IS NOT A SUPPORTED OPTION AND IS IGN9RED t. Die folgende Bezeichnung t ist vom PL1-"Optimierungscompiler nicht unterstützt und wurde ignoriert. IOC0040I SEQUENCE FIELD CONFLICTS WITH SOURCE MARGINS. DEFAULT SEQUENCE ASSUMED. Folgefeldfestlegung widerspricht Quelltextbegrenzungsfestlegung. Das Standardfolgefeld wurde angenommen. IOC0041I SOURCE MARGINS CONFLICT WITH SEQUENCE FIELD. SEQUENCE AND CLINE OPTIONS IGNORED. Quelltextbegrenzungsfestlegung widerspricht Folgefeldfestlegung. Die Optionen SEQUENCE und CLINE wurden ignoriert. IOC0043I COUNT OPTION CONFLICTS WITH NOSTMT OR NOLINE OPTION. COUNT OPTION IGNORED. Die Option COUNT steht nicht im Einklang mit den Optionen NOSTMT oder NOLINE. Die Option COUNT wurde ignoriert. IOC0Q46I U INSUFFICIENT MAIN STORAGE IS AVAILABLE TO CONTINUE THIS COMPILATION. Es ist zu wenig Speicherplatz verfügbar» um diese Übersetzung fortzusetzen« IOC0047I THE FOLLOWING SUB-FIELD OF TERMINAL OPTION IS NOT CORRECT. DEFAULT ASSUMED FOR t. Das folgende Unterfeld der Option TERMINAL ist fehlerhaft. Es erfolgt die Standardannahme für t. IOC0050I E DUMMY ENTRY CONSTANT ASSUMED 0N STATEMEOT. IOC0050I E ENTRY CONSTANT MISSING ON XPROCEDURE STATEMENT. DUMMY ENTRY CONSTANT ASSUMED. Die ENTRY-Konstante fehlt in der /CPROCEDURE-Klausel. Es wurde eine Pseudo-ENTRYKonstante angenommen. IOC0051I U NUMBER OF PROCEDURES EXCEEDS n, IOC0051I U IMPLEMENTATION RESTRICTION. NUMBER OF MACRO INTERPRETER PROCEDURES EXCEEDS n IN A COMPILATION. PROCESSING TERMINATED. Implementierungsbedingte Einschränkung. Die Anzahl der Makrointerpreter-Prozeduren übersteigt n während der Übersetzung. Die Verarbeitung wurde abgebrochen. IOC0052I E d PREVIOUSLY DEFINED. IOC0052I E ENTRY CONSTANT d PREVIOUSLY DEFINED. REFERENCE WILL TERMINATE PROCESSING. ENTRY-Konstante d ist vorher definiert. Erfolgt eine Bezugnahme darauf» so wird die Verarbeitung abgebrochen. IOC0053I E ILLEGAL USE OF dIOC0053I E ILLEGAL USE OF FUNCTION d ON LEFT OF EQUAL SYMBOL. REFERENCE WILL TERMINATE PROCESSING. Unerlaubter Gebrauch der Funktion d auf der linken Seite des Gleichheitszeichens. Erfolgt eine Bezugnahme darauf» so wird die Verarbeitung abgebrochen. IOC005« E CONFLICTING USE OF d. IOC0Q54I E ILLEGAL USE OF 2DENTIFIER d AS ENTRY CONSTANT. REFERENCE WILL TERMINATE PROCESSING. Unerlaubte Verwendung der Bezeichnung d als ENTRY-Konstante. Erfolgt zugnahme darauf» so wird die Verarbeitung abgebrochen. eine Be- IOC0055I E PARAMETER LIST CONTAINS d MORE THAN ONCE. IOC0055I E PARAMETER LIST COOTAINS PARAMETER d MORE THAN ONCE. ONLY THE FIRST OF THE ARGUMENTS CORRESPONDING TO THIS PARAMETER CAN BE USED WITHIN THE PROCEDURE. Die Parameterliste enthält den Parameter d mehr als einmal. Nur das erste der Argumente» das diesem Parameter entspricht» kann in der Prozedur benutzt werden. IOC0056I S NUMBER OF PARAMETERS EXCEEDS n. IOC0056I S IMPLEMENTATION RESTRICTION, NUMBER OF PARAMETERS EXCEEDS n. REFERENCE WILL TERMINATE PROCESSING. Implementierungsbedingte Einschränkung. Die Anzahl der Parameter übersteigt n. Erfolgt eine Bezugnahme darauf» so wird die Verarbeitung abgebrochen. 78 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0057I E MISSING PARAMETER. IOC0057I E MISSING PARAMETER. CORRESPONDING ARGUMENT CANNOT BE USED WITHIN PROCEDURE. Ein Parameter fehlt. Das entsprechende Argument kann nicht in der Prozedur verwendet werden. IOC0058I E PARAMETER t ILLEGAL. IOC0058I E PARAMETER t ILLEGAL. CORRESPONDING ARGUMENT CANNOT BE USED WITHIN PROCEDURE. Parameter t ist nicht erlaubt. Das entsprechende t Argument kann nicht in der Prozedur verwendet werden. IOC0059I S TEXT IGNORED FROM t TO NEXT COMMA OR SEMICOLON. IOC0059I S MISSING COMMA OR ILLEGAL BLANK IN PARAMETER LIST. TEXT IGNORED FROM t TO HEXT COMMA OR SEMICOLON. In der Parameterliste fehlt ein Komma, oder sie enthält ein unerlaubtes Leerzeichen. Der Text wurde von t bis zum nächsten Komma oder Semikolon ignoriert. IOC0060I S PARAMETER LIST COOTAINS SEMICOLON. IOC0060I S PARAMETER LIST CONTAINS SEMICOLON. RIGHT PARENTHESIS ASSUMED. Parameterliste enthält Semikolon, Rechte Klammer wurde angenommen. IOC0061I E ILLEGAL RETURNED VALUE. TEXT FROM t TO SEMICOLON IGNORED. IOC0061I E FUNCTION ATTRIBUTE NOT CHARACTER OR FIXED. TEXT IGNORED FROM t TO SEMICOLON. Das Funktionsattribut ist nicht FIXED oder CHARACTER. Der Text wurde von t bis zum Semikolon ignoriert. IOC0062I E CHARACTER ASSUMED FOR RETURNED VALUE. IOC0062I E NO FUNCTION ATTRIBUTE. CHARACTER ASSUMED. Kein Funktionsattribut angegeben. Es wurde CHARACTER angenommen. IOC0063I S MISSING SEMICOLON. TEXT FROM t TO NEXT SEMICOLON IGNORED. IOC0063I S SEMICOLON MISSING IN XPROCEDURE STATEMENT. TEXT IGNORED FROM t TO NEXT SEMICOLON. Das Semikolon wird in der ^PROCEDURE-Klausel vermißt. Der Text wurde von t bis zum nächsten Semikolon ignoriert* IOC006« E t IGNORED. IOC006« E t IGNORED IN /CDEACTIVATE STATEMENT. t wird in der /3DEACTIVATE-Anweisung ignoriert. IOC0065I E CHARACTER ASSUMED FOR UNDECLARED d. IOC0065I E IDENTIFIER d UNDECLARED. CHARACTER ATTRIBUTE ASSUMED. Der Name d ist nicht vereinbart. Das Attribut CHARACTER wurde angenommen. IOC0066I S ^PROCEDURE STATEMENT ILLEGAL. IOC0066I S ^PROCEDURE STATEMENT IN MACRO INTERPRETER PROCEDURE. TEXT IGNORED TO NEXT XEND STATEMENT. /iPROCEDURE-Klau sei in Makrointerpreter-Prozedur. Der Text wurde bis zur nächsten >JEND-Klausel ignoriert. IOC0067I S XPROCEDURE STATEMENT REPLACED BY NULL STATEMENT. IOC0067I S XPROCEDURE STATEMENT AFTER 'THEN' OR «ELSE1 REPLACED BY NULL STATEMENT. TEXT JGNORED TO NEXT XEND STATEMENT. XPROCEDURE-Klausel wurde nach THEN oder ELSE durch eine Leeranweisung ersetzt« Der Text wurde bis zur nächsten ZEND-Klausel ignoriert. IOC0068I S ILLEGAL 2RETURN STATEMENT IGNORED. IOC0068I S ZRETURN STATEMENT ILLEGAL OUTSIDE MACRO INTERPRETER PROCEDURE. STATEMENT IGNORED. XRETURN-Anweisung ist außerhalb der Makrointerpreter-Prozedur nicht erlaubt. Die Anweisung wurde ignoriert. IOC0069I E MISSING PARENTHESIS ASSUMED. IOC0069I E MISSING PARENTHESIS ASSUMED IN RETURN STATEMElfT. Die fehlende Klammer in der RETURN-Anweisung wurde eingefügt. IOC0070I E ILLEGAL TEXT FROM t TO SEMICOLON IGNORED. IOC0070I E ILLEGAL TEXT IGNORED FROM t TO SEMICOLON IN RETURN STATEMENT. Der unerlaubte Text in der RETURN-Anweisung wurde von t bis zum Semikolon ignoriert. IOC0071I E 'RETURNS(FIXED)1 ASSUMED. IOC0071I E INCORRECT SPECIFICATION OF DATA ATTRIBUTE IN XPROCEDURE STATEMENT. 'RETURNS(FIXED)1 ASSUMED. Fehlerhafte Angabe von Datenattribut in /.PROCEDURE-Klausei, 'RETURNSCFIXED)• wurde angenommen. IOC0072I E 'RETURNSCCHAR)1 ASSUMED. IOC0072I E INCORRECT SPECIFICATION OF DATA ATTRIBUTE IN ZPROCEDURE STATEMENT. 'RETURNSCCHAR)1 ASSUMED. Fehlerhafte Angabe von Datenattribut in 2PR0CEDURE-Klausel, •RETURNSCCHAR)' wurde angenommen. IOC0073I E MISSING RIGHT PARENTHESIS ASSUMED IN ARGUMENT LIST FOR d. IOC0073I E MISSING RIGHT PAREMTHESIS ASSUMED AT END OF ARGUMENT LIST FOR PROCEDURE d. Die fehlende rechte Klammer wurde am Ende der Argumentliste der Prozedur d angenommen . 79 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0074I U ILLEGAL STATEMENT IN ARGUMENT LIST FOR d. IOC0074I U MACRO INTERPRETER STATEMENT FOÜND IN ARGUMENT LIST FOR PROCEDURE d. PROCESSING TERMINATED. Eine Makrointerpreteranweisung wurde in der Argumentliste für die Prozedur d gefunden. Die Verarbeitung wurde abgebrochen. IOC0075I E MISSING LEFT PARENTHESIS IN ARGUMENT LIST FOR d. IOC0075I E ARGUMENT LIST FOR PROCEDURE d WITHOUT LEFT PARENTHESIS. INCORRECT ARGUMENT LIST IGNORED. Die Argumentliste der Prozedur d ist ohne linke Klammer. Die fehlerhafte Argumentliste wird ignoriert. IOC0076I E TRUNCATED FORM d USED FOR REPLACEMENT. IOC0076I E IDENTIFIER WITH MORE THAN n CHARACTERS. TRUNCATED FORM d USED. Die Bezeichnung hat mehr als n Zeichen. Die gekürzte Form d wurde verwendet. IOC0077I E NEGATIVE THIRD ARGUMENT OF 'SUBSTR1. IOC0077I E NEGATIVE THIRD ARGUMENT OF SUBSTR BUILT-IN FUNCTION. NULL STRING RETURNED. Das dritte Argument der Standardfunktion SUBSTR ist negativ. Eine leere Kette wird zurückgegeben. IOC0078I E STRING LENGTH LESS THAN THIRD ARGUMENT OF •SUBSTR'. IOC0078I E STRING LENGTH LESS THAN THIRD ARGUMENT OF SUBSTR BUILT-IN FUNCTION. RETURNED VALUE TRUNCATED AT END OF SOURCE STRING, Die Kettenlänge ist kleiner als das dritte Argument der Standardfunktion SUBSTR. Der Rückgabewert wird am Ende der Quellkette abgebrochen. IOC0079I E SECOND PLUS THIRD ARGUMENT OF 'SUBSTR1 TOO LARGE. I0C0079I E STRING LENGTH PLUS ONE LESS THAN SECOND PLUS THIRD ARGUMENT OF SUBSTR BUILT-IN FUNCTION. RETURNED VALUE TRUNCATED AT END OF SOURCE STRING. Widersprüchliche Kettenlängen beim Gebrauch der Standardfunktion SUBSTR. Der Funktionswert wird am Ende der Quellkette abgeschnitten. IOC0080I E SECOND ARGUMENT OF •SUBSTR1 SET TO ONE. IOC0080I E SECOND ARGUMENT OF SUBSTR BUILT-IN FUNCTION LESS THAN ONE. VALUE SET TO ONE. Das zweite Argument der Standardfunktion SUBSTR ist kleiner als 1. Der Wert wird auf 1 gesetzt. IOC0081I E STRING LENGTH LESS THAN SECOND ARGUMENT OF 'SUBSTR1. IOC0081I E STRING LENGTH LESS THAN SECOND ARGUMENT OF SUBSTR BUILT-IN FUNCTION. NULL STRING RETURNED. Die Kettenlänge ist kleiner als das zweite Argument der Standardfunktion SUBSTR. Eine leere Kette wird zurückgeben. IOC0082I S ARGUMENT LIST CONTAINS UNINITIALIZED VARIABLE. IOC0082I S BUILT-IN FUNCTION ARGUMENT LIST CONTAINS UNINITIALIZED VARIABLE. NULL STRING ASSUMED. Die Argumentliste einer Standardfunktion enthält eine' Variable» die nicht initialisiert ist. Es wurde eine leere Kette angenommen. IOC0084I E RIGHT PARENTHESIS ASSUMED. IOC0084I E RIGKT PARENTHESIS INSERTED BEFORE SEMICOLON IN XPROCEDURE STATEMENT. Eine rechte Klammer wird vor dem Semikolon in der /CPROCEDURE-Klausel eingefügt. IOC0085I E LEFT PARENTHESIS ASSUMED. IOC0085I E LEFT PARENTHESIS INSERTED BEFORE MEMBER NAME. Eine linke Klammer wird vor dem Buchnamen eingefügt. IOC0086I E 'LENGTH1 INVOKED WITHOUT ARGUMENTS. IOC0086I E LENGTH BUILT-IN FUNCTION INVOKED WITHOUT ARGUMENTS. FIXED ZERO RETURNED. Die Standardfunktion LENGTH wurde ohne Argumente aufgerufen. Es wird der Wert Null mit dem Attribut FIXED zurückgegeben. IOC0087I E «INDEX1 INVOKED WITH LESS THAN TWO ARGUMENTS. I0C0087I E INDEX BUILT-IN FUNCTION INVOKED WITH LESS THAN TWO ARGUMENTS. FIXED ZERO RETURNED. Die Standardfunktion INDEX wurde mit weniger als zwei Argumenten aufgerufen. Es wird der Wert Null mit dem Attribut FIXED zurückgegeben. IOC0088I E IDENTIFIER BEGINNING t EXCEEDS n CHARACTERS. IOC0088I E IMPLEMENTATION RESTRICTION. TOO LONG IDENTIFIER BEGINNING t IS TRUNCATED TO FIRST n CHARACTERS. Implementierungsbedingte Einschränkung. Die Bezeichnung> die mit t beginnt» ist zu lang und wird nach den ersten n Zeichen abgebrochen. IOC0089I S NESTING LEVEL FOR 2INCLUDE STATEMENT EXCEEDS n. IOC0089I S NESTING LEVEL FOR XINCLUDE STATEMENT EXCEEDS n. STATEMENT IGNORED. USE MACRO COMPILER OPTION. Die Schachtelungstiefe der XINCLUDE-Anweisung ist größer als n. Die Option MACRO ist zu verwenden. IOC0090I S MEMBER t NOT FOUND. IOC0090I S MEMBER t NOT FOUND. MEMBER SPECIFICATION IN XINCLUDE STATEMENT IGNORED. Das Buch,t wurde nicht gefunden. Die Angabe des Buchnamens in der KINCLUDE-AnWeisung wurde ignoriert. 80 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0091I S I/O ERROR INCLUDIN6 MEMBER t. IOC0091I S I/O ERROR INCLUDIN6 MEMBER t. PROCESSING OF MEMBER TERMINATED. Ein E/A-Fehler ist beim Einfügen des Buches t aufgetreten. Die Verarbeitung wurde abgebrochen. IOC0092I S TEXT BEGIHNING t INCORRECT. STATEMENT I6H0RED. IOC0092I S TEXT BEGINNING t IH XINCLUDE STATEMENT IS INCORRECT. STATEMENT IGNORED. Der mit t beginnende Text in der /ttNCLUDE-Anweisung ist fehlerhaft. IOC0093I W t ASSUMED FOR XINCLUDE FILE. IOC0093I W NO SEQUENCE FIELD SPECIFIED FOR 2INCLUDE FILE, t ASSUMED. Die Sätze des in der XINCLUDE-Anweisung angegebenen Buches enthalten im Folgenummernfeld keine Daten. Die Option CLINE wurde angenommen. IOC0094I H ILLEGAL CARRIAGE CONTROL POSITION IGNORED FOR MEMBER t. IOC0094I W CARRIAGE CONTROL POSITION FOR MEMBER t CONFLICTS WITH SEQUENCE FIELD OR SOURCE MARGINS. IT IS IGNORED. Die Position des Steuerzeichens des Buches t steht im Widerspruch zum Folgefeld oder zur Quelltextbegrenzung. Sie wurde ignoriert. IOC0095I S SEQUENCE CONFLICTS WITH S0RM6IN FOR FILE, t ASSUMED. IOC0095I S SEQUENCE FIELD CONFLICTS WITH SOURCE MARGINS FOR ZINCLUDE FILE, t ASSUMED. Das Folgefeld steht im Widerspruch zur Quelltextbegrenzung der XINCLUDE-Datei. Es wurde t angenommen. IOC0100I U d NOT FOUND IN LIBRARY. IOC0100I U MEMBER d NOT FOUND IN SOURCE STATEMENT LIBRARY. PROCESSING TERMINATED. Das Buch d wurde in der Quelltextbibliothek nicht gefunden. Die Verarbeitung wurde abgebrochen. IOC010II E RIGHT PARENTHESIS INSERTED. IOC0101I E MISSING RIGHT PARENTHESIS INSERTED AFTER MEMBER NAME. Die fehlende rechte Klammer wurde nach dem Buchhamen eingefügt. IOC0I02I E LEFT PARENTHESIS INSERTED. IOC0102I E MISSING LEFT PARENTHESIS INSERTED BEFORE MEMBER NAME. Die fehlende linke Klammer wurde vor dem Buchnamen eingefügt. IOC0103I E RETURNS ATTRIBUTE FOR d IGNORED. IOC0103I E RETURNS ATTRIBUTE FOR d BUILT-IN FUNCTION IGNORED. Das Attribut RETURNS wurde für die Standardfunktion d ignoriert. IOC010« E EhfTRY ATTRIBUTE FOR d IGNORED. IOC0104I E ENTRY ATTRIBUTE FOR d BUILT-IN FUNCTION IGNORED. Das Attribut ENTRY wurde für die Standardfunktion d ignoriert. IOC0105I S d INVALID BUILT-IN FUNCTION NAME. IOC0105I S d IS NOT A VALID BUILT-IN FUNCTION NAME. REFERENCE WILL TERMINATE PROCESSING. d ist kein gültiger Name für eine Standardfunktion. Erfolgt eine Bezugnahme darauf» so wird die Verarbeitung abgebrochen. IOC0106I E DESCRIPTOR LIST OF ENTRY ATTRIBUTE IGNORED. IOC0106I E PARAMETER DESCRIPTOR LIST OF ENTRY ATTRIBUTE IGNORED. Die Parameterbeschreibungsliste des Attributes ENTRY wurde ignoriert. IOC0107I E RETURNS ATTRIBUTE IGNORED. IOC0107I E RETURNS ATTRIBUTE IGNORED IN DECLARE STATEMENT. Das Attribut RETURNS wurde in der DECLARE-Anweisung ignoriert. IOC0108I S SOURCE TEXT ENDS IN STRING. IOC0108I S SOURCE TEXT ENDS IN STRING. QUOTE ASSUMED BEFORE END OF SOURCE TEXT. Der Quelltext endet in einer Zeichenkette. Es wurde ein Apostroph vor des Quelltextes angenommen. dem Ende IOC0109I S NO DELIMITER OH REPLACEMEOT VALUE STRING. IOC0I09I S END OF STRING DELIMITER MISSING IN REPLACEMENT VALUE. IT IS ASSUMED AT END OF STRING. Der begrenzende Apostroph am Ende der Zeichenkette fehlt im Ersetzungswert. Er wurde am Kettenende eingefügt. IOC0110I E BIT STRING CONTAINS INVALID CHARACTER. IOC0110I E BIT STRING CONTAINS INVALID CHARACTER. ASSUMED TO BE CHARACTER STRING. Bitkette enthält ungültiges Zeichen. Es wurde angenommen» daß es sich Zeichenkette handelt. um eine IOC0111I S SOURCE TEXT ENDS IN COMMENTT. IOC0111I S SOURCE TEXT ENDS IN COMMENT, COMMENT DELIMITER ASSUMED BEFORE END OF SOURCE TEXT. Der Quelltext endet im Kommentar. Es wurde ein Kommentarbegrenzer vor dem Ende des Quelltextes angenommen. IOC0112I S NO COMMENfT DELIMITER IN REPLACEMENT VALUE. IOC0112I S END OF COMMENT DELIMITER MISSING IN REPLACEMENT VALUE. IT IS ASSUMED AT END OF REPLACEMENT VALUE. Der Begrenzer am Ende des Kommentars fehlt im Ersetzungswert. Er wurde am Ende des Ersetzungswertes angenommen. PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0113I E INVALID CHARACTER REPLACED BY BLANK. IOC0113I E INVALID CHARACTER REPLACED BY BLANK. Ungültiges Zeichen wird durch ein Leerzeichen ersetzt. IOC0115I E CONFLICTING USE OF d. IOC0115I E USE OF d IN THIS PROCEDURE CONFLICTS WITH PREVIOUS USE. REFERENCE WILL TERMINATE PROCESSING. Die Verwendung von d in dieser Prozedur stimmt nicht mit der vorangegangenen Verwendung überein. Eine Bezugnahme führt zum Abbruch der Verarbeitung. IOC0116I E ''/.' IGNORED IN LABEL PREFIX LIST. IOC0116I E '/C1 IGNORED IN LABEL PREFIX LIST. 'X1 wird in der Markenpräfixliste ignoriert. IOC0117I E LABEL MISSING BEFORE COLON. IOC0117I E LABEL MISSING BEFORE COLON. COLON IGNORED. Die Marke vor dem Doppelpunkt fehlt. Der Doppelpunkt wurde ignoriert» IOC0118I S INCORRECT TEXT IGNORED FROM t TO SEMICOLON. IOC0118I S INCORRECT TEXT IGNORED FROM t TO SEMICOLON. Der fehlerhafte Text wurde von t bis zum Semikolon ignoriert. IOC0119I E ILLEGAL USE OF d. IOC0119I E IDENTIFIER d ILLEGALLY USED AS LABEL. REFERENCE WILL TERMINATE PROCESSING. Die Bezeichnung d wird unerlaubt als Marke verwendet. Eine Bezugnahme führt r.um Abbruch der Verarbeitung. IOC0120I E d MULTIPLE USED AS LABEL. IOC0120I E IDENTIFIER d MULTIPLE USED AS LABEL. REFERENCE WILL TERMINATE PROCESSING. Die Bezeichnung d wird mehrfach als Marke verwendet. Eine Bezugnahme führt zum Abbruch der Verarbeitung. I0C0121I W LABEL PREFIX LIST ON DECLARE STATEMEIH1 IGNORED. IOC0121I W LABEL PREFIX LIST ON DECLARE STATEMENT IGNORED. Die Markenpräfixliste der DECLARE-Anweisung wurde ignoriert. IOCO122I S CONFLICTING USE OF d. IOC0122I S USE OF d CONFLICTS WITH PREVIOUS USE AS LABEL. Die Verwendung von d steht im Widerspruch zur vorhergehenden Verwendung als Marke. IOC0123I E NO ATTRIBUTE DECLARED FOR d. IQC0123I E NO ATTRIBUTE DECLARED FOR PARAMETER d IN THIS PROCEDURE. CHARACTER ASSUMED. Für den Parameter d ist in dieser Prozedur kein Attribut vereinbart. Das Attribut CHARACTER wurde angenommen. IOC0124I E UNDEFINED LABEL d. IOC0124I E UNDEFINED LABEL d. REFERENCE WILL TERMINATE PROCESSING. Die Marke d ist nicht definiert. Eine Bezugnahme führt zum Abbruch der Verarbeitung . IOC0125I E SOURCE TEXT ENDS BEFORE LOGICAL END OF PROGRAM. IOC0125I E SOURCE TEXT ENDS BEFORE LOGICAL END OF PROGRAM. ZEND STATEMENT ASSUMED. Der Quelltext endet vor dem logischen Ende des Programms. Die XEND-Klausel wurde angenommen. IOC0126I E UNDEFINED LABEL d IN PROCEDURE. IOC0126I E UNDEFINED LABEL d IN THIS PROCEDURE. REFERENCE WILL TERMINATE PROCESSING. Undefinierte Marke d ist in dieser Prozedur vorhanden5 eine Bezugnahme führt zum Abbruch der Verarbeitung. IOC0127I E SEMICOLON AFTER IF EXPRESSION. IOC0127I E EXPRESSION AFTER 'IF1 TERMINATED BY SEMICOLON. SEMICOLON IGNORED. Der Ausdruck nach IF wird durch ein Semikolon beendet. Das Semikolon wurde ignoriert. IOC0128I S INCORRECT IF STATEMEhTT IGNORED. IOC0128I S EXPRESSION AFTER 'IF'1 NOT FOLLOWED BY 'X' OR 'THEN1 1 . IF STATEMENT IGNORED. Dem Ausdruck nach 'IF folgt kein 'X' oder 'THEN . Die IF-Anweisung wurde ignoriert. IOC0129I E NO 1 '*• BEFORE 'THEN1. IOC0129I E 'X MISSING BEFORE 'THEN1 IN XlF STATEMENT. 'X' ASSUMED. 'X' fehlt vor 'THEN' in der XIF-Anweisung. 'X1 wurde angenommen. 1 IOC0130I E NO 'THEN AFTER 'X'. IOC0130I E 'THEN11 MISSING AFTER 'X1 IN XIF STATEMENT. 'THEN' ASSUMED. •THEN fehlt nach 'X' in der IF-Anweisung. 'THEN1 wurde angenommen, IOC0131I E INCORRECT STATEMENT AFTER 'XTHEN1 OR 'XELSE1. IOC0131I E 'X1 MISSING BEFORE STATEMENT AFTER 'XTHEN1 OR 'XELSE1. 'X' ASSUMED. 'X' fehlt nach 'XTHEN' oder 'XELSE'. 'X' wurde angenommen. IOC0132I E MISSING 'THEN1 ASSUMED. IOC0132I E 'THEN1 MISSING IN IF STATEMENT. 'THEN' ASSUMED, THEN fehlt in der IF-Anweisung. THEN wurde angenommen. 82 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0133I E ILLEGAL 'X1 IGNORED. I0CQ133I E ILLEGAL lXl IN MACRO INTERPRETER PROCEDÜRE IGNORED. Unerlaubtes '/C1 in der Makroprozedur wurde ignoriert. IOC0134I W LABEL PREFIX LIST. ON 'ELSE1 IGNORED. IOC0I34I W LABEL PREFIX LIST ON 'ELSE' IGNORED. Markenpräfixliste vor ELSE wurde ignoriert. IOC0135I E NULL STATEMENT ASSUMED. IOC0135I E NO STATEMENT AFTER 'THEN1 OR 'ELSE1. NULL STATEMENT ASSUMED. Keine Anweisung nach THEN oder ELSE. Es wurde eine Leeranweisung angenommen» IOC0136I E NO 'IF' BEFORE 'ELSE'. IOC0136I E NO 'IF' BEFORE 'ELSE'. 'ELSE' IGNORED. Kein IF vor ELSE. ELSE wurde ignoriert. IOC0138I S /CINCLUDE STATEMENT INVALID IN PROCEDÜRE. IOC0138I S INVALID XINCLUDE STATEMENT IGNORED IN MACRO INTERPRETER PROCEDÜRE. Ungültige /JINCLUDE-Anweisung wurde in der Makrointerpreter-Prozedur ignoriert. IOC0140I S ILLEGAL FIELD. TEXT IGNORED FROM t TO COMMA OR SEMICOLON. IQC0140I S ILLEGAL FIELD IN XINCLUDE STATEMENT. TEXT IGNORED FROM t TO NEXT COMMA OR SEMICOLON. Unerlaubtes Feld in der /CINCLUDE-Anweisung. Der Text wird von t bis zum nächsten Komma oder Semikolon ignoriert, IOC0141I S NO OPERAND IN STATEMENT. IGNORED. IOC0141I S NO OPERAND IN XINCLUDE STATEMENT, STATEMENT IGNORED. Kein Operand in der XINCLUDE-Anweisung. Die Anweisung wurde ignoriert. IOC0142I E MEMBER NAME TRUNCATED TO n CHARACTERS. IOC0142I E IMPLEMENTATION RESTRICTION. MEMBER NAME TRUNCATED TO FIRST n CHARACTERS. Implementierungsbedingte Einschränkung. Der Buchname wird auf die ersten n Zeichen verkürzt. IOC0143I E RJGHT PARENTHESIS ASSUMED. IOC0143I E MISSING RIGHT PARENTHESIS ASSUMED AFTER MEMBER NAME. Die fehlende rechte Klammer wird nach dem Buchnamen eingefügt. IOC0145I S DECLARE STATEMENT IGNORED. IOC0145I S ILLEGAL DECLARE STATEMENT AFTER ITHENI OR 'ELSE' IGNORED. Die unerlaubte DECLARE-Anweisung nach •THEN1 oder 'ELSE1 wurde ignoriert. IOC0146I E NO OPERAND IN STATEMENT. IGNORED. IOC0146I E NO OPERAND IN /2DECLARE STATEMENT. STATEMENT IGNORED. Kein Operand in der /CDECLARE-Anweisung• Die Anweisung wurde ignoriert. IOC0147I S FACTORING LEVEL EXCEEDS n. IOC0147I S IMPLEMENTATION RESTRICTION. FACTORING LEVEL EXCEEDS n IN DECLARE STATEMEJfT. TEXT TO NEXT SEMICOLON IGNORED. Implernentierungsbedingte Einschränkung. Das Ausklammern von Attributen in der DECLARE-Anweisung ist mehr als n-fach. Der Text wurde bis zum nächsten Semikolon ignoriert. IOC0148I E REDUNDANT COMMA IGNORED. I0C0148I E REDUNDANT COMMA OR MISSING OPERAND IN DECLARE STATEMENT. COMMA IGNORED. Redundantes Komma oder fehlender Operand in der DECLARE-Anweisung. Das Komma wurde ignoriert. IOC0149I E DUMMY IDENTIFIER ASSUMED. IOC0149I E MISSING IDEOTTFIER. DUMMY ASSUMED. Ein Name fehlt. Ein Pseudo-Name wurde angenommen. IOC0150I E IDENTIFIER d MULTIPLE DECLARED. IOC0150I E IDENTIFIER d MULTIPLE DECLARED. REFERENCE WILL TERMINATE PROCESSING. Der Name d ist mehrfach vereinbart» Eine Bezugnahme führt zum Abbruch der Verarbeitung . IOC0151I S TEXT IGNORED FROM t TO NEXT SEMICOLON. IOC01511 S SYNTAX ERROR IN DECLARE STATEMENT. TEXT IGNORED FROM t TO NEXT SEMICOLON. Syntaxfehler in der DECLARE-Anweisung. Der Text wurde von t bis zum nächsten Semikolon ignoriert. IOC0152I E LABEL d CANNOT BE DECLARED. IOC0152I E LABEL d CANNOT BE DECLARED. REFERENCE WILL TERMINATE PROCESSING. Die Marke d kann nicht vereinbart werden. Eine Bezugnahme führt Verarbeitung. zum Abbruch der IOC0153I E REDUNDANT RIGHT PARENTHESIS IGNORED. IOC0153I E REDUNDANT RIGHT PARENTHESIS IGNORED. Die redundante Klammer wurde ignoriert. IOC015« E t IGNORED. IOC0154I E INCORRECT ATTRIBUTE t IGNORED. Das fehlerhafte Attribut t wurde ignoriert. 83 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0155I E RIGKT PAREKTHESIS ASSUMED. IOC0155I E MISSING RIGHT PARENTHESIS ASSUMED. Die fehlende Klammer wurde angenommen. XDC0156I E RETURNS BUT NO ENTRY ATTRIBUTE FOR d. IOC0156I E RETURNS BUT NO ENTRY ATTRIBUTE SPECIFIED IN DECLARE STATEMENT BEGINNING BEFORE OR AT THIS LINE. In der DECLARE-Anweisung> die vor oder in dieser Zeile beginnt» wurde das Attribut RETURNS, aber nicht ENTRY angegeben. IOC0157I E t ASSUMED FOR d. IOC0157I E NO ATTRIBUTE SPECIFIED FOR IDENTIFIER d. t ASSUMED. Für den Namen d wurde kein Attribut angegeben. Es wird t angenommen. IOC0158I I COMPILE TIME WILL BE IOC0158I I COMPILE TIME WILL BE SPECIFIED INSTEAD OF Die Übersetzungszeit INCLUDE anstelle von REDUCED BY SPECIFYING INCLUDE OPTION INSTEAD OF MACRO. REDUCED FOR THIS PROGRAM IF INCLUDE COMPILER OPTION IS MACRO. wird für dieses Programm reduziert» wenn die Compiler-Option MACRO angegeben wird. IOC0159I S ILLEGAL BRANCH. IOC0159I S /CGOTO d IS AN ILLEGAL BRANCH INTO INCLUDED TEXT. EXECUTION WILL TERMINATE PROCESSING. /(GOTO d ist eine unerlaubte Verzweigung im eingeschlossenen Text. Die Ausführung dieser Anweisung führt zum Abbruch. IOC0161I E MEMBER NAME TRUNCATED TO n CHARACTERS. IOC0161I E IMPLEMENTATION RESTRICTION. MEMBER NAME t TRUNCATED TO FIRST n CHARACTERS. Implementierungsbedingte Einschränkung. Der Buchname t wurde auf die ersten n Zeichen verkürzt. IOC0162I E LABEL PREFIX LIST IGNORED. IOC0162I E ILLEGAL LABEL PREFIX LIST ON LISTING CONTROL STATEMENT IGNORED. Markenpräfixliste vor einer Steueranweisung ist nicht zulässig und riert. wurde igno- IOC0163I E CONFLICTING ATTRIBUTE t IGNORED FOR d. IOC0I63I E CONFLICTING ATTRIBUTES FOR IDENTIFIER d. ATTRIBUTE t IGNORED. Widersprüchliche Attribute für die Bezeichnung d. Das Attribut t wurde ignoriert. IOC0164I E CONFLICTING DECLARATION OF d. IOC0164I E DECLARATION OF IDENTIFIER d CONFLICTS WITH PREVIOUS USE. REFERENCE WILL TERMINATE PROCESSING. Die Vereinbarung der Bezeichnung d widerspricht der vorangegangenen Verwendung* Eine Bezugnahme führt zum Abbruch der Verarbeitung* IOC0165I E ZERO ASSUMED FOR MISSING OPERAND. IOC0165I E DECIMAL FIXED ZERO ASSUMED FOR MISSING OPERAND. Eine Null mit den Attributen DECIMAL FIXED wurde für den fehlenden Operanden angenommen . IOC0166I S t REPLACED BY PLUS. IOC0166I S ILLEGAL OPERATOR t REPLACED BY PLUS. Unzulässiger Operator t wurde durch ein Pluszeichen ersetzt. IOC0167I W BLANK INSERTED AFTER t. IOC0167I W BLANK INSERTED BETWtEN CONSTANT t AND FOLLOWING LETTER. Ein Leerzeichen wurde zwischen die Konstante t und den folgenden Buchstaben eingefügt. IOC0168I E «NOT1 REPLACED BY 'HE'. IOC0168I E OPERATOR 'NOT1 USED AS INFIX OPERATOR. REPLACED BY I NE I . Der Operator NOT wird als Infixoperator verwendet. Er wurde durch NE ersetzt« IOC0169I W TEXT FOLLOWING 'ZPAGE1 IGNORED TO NEXT SEMICOLON. IOC0169I W IMPLEMENTATION RESTRICTION. TEXT FOLLOWING 'XPAGE' IGNORED TO NEXT SEMICOLON. Implementierungsbedingte Einschränkung. Der "XPAGE1 folgende Text wurde bis zum nächsten Semikolon ignoriert. IOC0170I E CONFLICTING USE OF d. IOC0170I E USE OF IDENTIFIER d IN EXPRESSION CONFLICTS WITH PREVIOUS USE. REFERENCE WILL TERMINATE PROCESSING. Die Verwendung des Namens d im Ausdruck widerspricht der vorangegangenen Verwendung . Eine Bezugnahme führt zum Abbruch der Verarbeitung* IOC0171I W TEXT IN SAME LINE AS 'ZSKIP1 OR 'JCPAGE1. IOC0171I W IMPLEMENTATION RESTRICTION. TEXT IN SAME LINE AS XSKIP OR XPAGE STATEMENT PREVENTS FORMATTING. Implementierungsbedingte Einschränkung. Programmtext und Steueranweisungen (XSKIP oder XPAGE) stehen in der gleichen Zeile. Hierdurch wird eine Formatierung an dieser Stelle verhindert. IOC0172I S PLUS OPERATOR ASSUMED. IOC0172I S OPERATOR MISSING. PLUS ASSUMED. Operator fehlt. Pluszeichen wurde angenommen. PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0173I S ZERO EXPRESSION ASSUMED. IOC0173I S EXPRESSION MISSING. DECIMAL FIXED ZERO ASSUMED. Ein Ausdruck fehlt. Es wurde Null mit den Attributen DECIMAL FIXED angenommen. IOC017« S t REPLACED BY ZERO. IOC017M S OPERAND t INCORRECT. REPLACED BY DECIMAL FIXED ZERO. Der Operand t ist fehlerhaft. Er wurde durch eine Null mit den Attributen DECIMAL FIXED ersetzt. IOC0175I E LEFT PARENTHESIS ASSUMED. IOC0175I E MISSING LEFT PARENTHESIS ASSUMED AT BEGINNING OF EXPRESSION. Die fehlende linke Klammer am Anfang des Ausdruckes wurde angenommen. IOC0176I U REFERENCE TO IDENTIFIER OR STATEMENTT WHICH IS IN ERROR. IOC0176I U REFERENCE TO IDENTIFIER OR STATEMENT WHICK IS IN ERROR. PROCESSING TERMINATED. Es wurde versucht> auf einen fehlerhaften Namen Bezug zu nehmen oder eine fehlerhafte Anweisung oder Klausel auszuführen. Die Verarbeitung wurde abgebrochen. IOC0177I W SURPLUS AßGUMEICTS TO d IGNORED. IOC0177I W SURPLUS ARGUMENTS TO FUNCTION d IGNORED. Die überzähligen Argumente der Funktion d wurden ignoriert. I0C0178I W TOO FEW ARGUMENTS TO d, IOC0178I W MISSING ARGUMENTS TO FUNCTION d ASSUMED TO BE NULL STRINGS. Es wurde angenommen» daß die fehlenden Argumente der Funktion d sind. leere Ketten IOC0180I U PROCEDURE d NOT FOUND. IOC0180I U REFERENCED PROCEDURE d NOT FOUND. PROCESSING TERMINATED. Die Prozedur d> auf die Bezug genommen wurde> ist nicht vorhanden. Die Verarbeitung wurde abgebrochen. IOC0181I U RECURSIVE USE OF d ILLEGAL. IOC0181I U RECURSIVE USE OF PROCEDURE d ILLEGAL. PROCESSING TERMINATED. Die rekursive Verwendung der Prozedur d ist nicht erlaubt. Die Verarbeitung wird abgebrochen. IOC0182I E TOO FEW ARGUMENTS TO SUBSTR BUILT-IN FUNCTION. IOC0182I E TOO FEW ARGUMENTS SPECIFIED FOR SUBSTR BUILT-IN FUNCTION. FUNCTION WILL RETURN NULL STRING. Für die Standardfunktion SUBSTR sind zu wenig Argumente angegeben. Als Funktionswert wird eine leere Kette zurückgegeben. IOC0183I E SURPLUS ARGUMENTS TO t IGNORED. IOC0183I E SURPLUS ARGUMENTS TO BUILT-IN FUNCTION t IGNORED. Die überzähligen Argumente der Standardfunktion t werden ignoriert. IOC018« E FIXEDOVERFLOW. I0C0184I E FIXEDOVERFLOW. RESULT TRUNCATED TO RIGHTMOST 5 DIGJTS. Festkommaüberlauf. Das Ergebnis wird nach den fünf rechtsstehenden Ziffern abgebrochen . IOC0185I E ZERQDIVIDE. IOC0185I E ZERODIVIDE. RESULT SET TO ONE, Division mit dem Divisor Null. Das Ergebnis wird gleich 1 gesetzt. IOC0186I S SOURCE TEXT ENDS IN STATEMENT. IOC0186I S SOURCE TEXT ENDS IN STATEMENT. EXECUTION OF STATEMENT WILL TERMINATE PROCESSING. Der Quelltext endet in der Anweisung. Die Ausführung der Anweisung führt zum Abbruch der Verarbeitung. IOC0187I E IDENTIFIER BEGINNING t TOO LONG. IOC0187I E IMPLEMENTATION RESTRICTION. TOO LONG IDENTIFIER BEGINNING t TRUNCATED TO LEFTMOST 31 CHARACTERS. Implementierungsbedingte Einschränkung. Die mit t beginnende Bezeichnung lang. Sie wurde auf die ersten 31 Zeichen verkürzt. ist zu IOC0188I S PRECISION OF t EXCEEDS n. IOC0188I S IMPLEMENTATION RESTRICTION. PRECISION OF CONSTANT t EXCEEDS n. DECIMAL FIXED ZERO ASSUMED. Implementierungsbeschränkte Einschränkung. Die Genauigkeit der Konstanten übersteigt n. Es wurde eine Null mit den Attributen DECIMAL FIXED angenommen. t IOC0189I E QUESTION MARK IGNORED. IOC0189I E QUESTION MARK IGNORED. Das Fragezeichen wurde ignoriert. IOC0190I S PRECISION OF CONVERTED BIT STRING EXCEEDS n. IOC0190I S IMPLEMENTATION RESTRICTION. BIT STRING CONVERTS TO DECIMAL FIXED NUMBER WITH PRECISION EXCEEDING n. RESULT TRUNCATED ON THE LEFT. Implementierungsbedingte Einschränkung. Die Bitkette wird in eine Zahl mit den Attributen DECIMAL FIXED mit einer Genauigkeit konvertiert» die größer ist als n. Das Resultat wird links gekürzt. PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0191I S STRING CANMOT BE CONVERTED TO BIT STRING. IOC0191I S STRING CONTAINS CHARACTER OTHER THAN "O1 OR "I1 AND CANNOT BE CONVERTED TO BIT STRING. >Ot ASSUMED FOR ILLEGAL CHARACTERS. Die Kette enthält andere Zeichen als '0' oder '1' und kann nicht in eine Bitkette konvertiert werden. '0' wird für unerlaubte Zeichen angenommen. IOC0192I S STRING CANNOT BE CONVERTED TO DECIMAL FIXED. IOC0192I S STRING CANNOT BE CONVERTED TO DECIMAL FIXED. FIXED ZERO RESULT ASSUMED. Die Kette kann nicht in DECIMAL FIXED konvertiert werden. Als Ergebnis wird Null mit dem Attribut FIXED angenommen. I0C0193I E '/£' MISSING ON LISTING CONTROL STATEMENT. IOC0193I E 'X1 MISSING ON LISTING CONTROL STATEMENT IN MACRO INTERPRETER PROCEDURE. '*/.* fehlt in der Steueranweisung in der Makrointerpreter-Prozedur. IOC019« U REFERENCE TO d TERMINATED PROCESSING. IOC019M U REFERENCE TO MULTIPLE-DECLARED OR ILLEGAL USE OF 3DEOTIFIER d. PROCESSING TERMINATED. Es wird auf eine mehrfach vereinbarte Bezeichnung d Bezug genommen oder die Bezeichnung illegal verwendet. Die Verarbeitung wurde abgebrochen. I0C0I95I S d UNINITIALIZED. IOC0195I S VARIABLE d UNINITIALIZED. ZERO OR NULL STRING VALUE GIVEN. Die Variable d besitzt keinen Anfangswert. Null oder leerer Kettenwert wurde angenommen . IOC0197I U I/O ERROR SEARCHING FOR d, IOC0197I U UNRECOVERABLE I/O ERROR SEARCHING FOR ZINCLUDE MEMBER d. PROCESSING TERMINATED. Bei der Suche nach dem Buch d trat ein nichtkorrigierbarer E/A-Fehler auf. Die Verarbeitung wurde abgebrochen. IOC0199I U d NOT FOUND ON DATA SET. IOC0199I U XINCLUDE MEMBER d NOT FOUND. PROCESSING TERMINATED. Das ZINCLUDE-Buch d wurde nicht gefunden. Die Verarbeitung wurde abgebrochen. IOC020« U NESTING OR REPLACEMENT LEVEL EXCEEDS MAXIMUM. IOC020« U IMPLEMENTATION RESTRICTION. NESTING OR REPLACEMENT LEVEL EXCEEDS MAXIMUM. PROCESSING TERMINATED. Implementierungsbedingte Einschränkung. Die SchachteInngs- oder Ersetzungstiefe ist größer als das Maximum. Die Verarbeitung wurde abgebrochen. IOC0206I W INPUT RECORD LENGTH LESS THAN LEFT MARGIN OF SORMGIN OPTION. IOC0206I W INPUT RECORD LENGTH LESS THAN LEFT MARGIN OF SORMGIN OPTION. RECORD IGNORED. Die Eingabesatzlänge ist kleiner als die linke Begrenzung gemäß der Option SORMGIN. Der Satz wurde ignoriert. I0C0207I S GOTO STATEMENT IGNORED. IOC02071 S OPERAND IN GOTO STATEMENT MISSING. STATEMENT IGNORED. Der Operand in der GOTO-Anweisung fehlt. Die Anweisung wurde ignoriert. IOC0208I E CONFLICTING USE OF d. IOC0208I E USE OF IDEOTIFIER d IN KGOTO STATEMENT CONFLICTS WITH PREVIOUS USE. REFERENCE WILL TERMINATE PROCESSING. Die Verwendung des Namens d in der XGOTO-AnWeisung widerspricht der vorangegangenen Verwendung. Eine Bezugnahme führt zum Abbruch der Verarbeitung IOC0209I S SEMICOLON MISSING. TEXT FROM t TO NEXT SEMICOLON IGNORED. IOC0209I S SEMICOLON MISSING AFTER XGOTO STATEMENT. TEXT IGNORED FROM t TO NEOT SEMICOLON. Das Semikolon fehlt am Ende der XGOTO-AnWeisung. Der Text wird von t bis zum nächsten Semikolon ignoriert. IOC0210I U ILLEGAL BRANCH. 1 IOC0210I U OPERAND OF 'GOTO IS LABEL IN INCLUDE TEXT OR ITERATIVE GROUP. PROCESSING TERMINATED. Der Operand von GOTO ist eine Marke in eingefügtem Text oder in iterativer Gruppe. Die Verarbeitung wurde abgebrochen. I0C0211I S STATEMEOT ILLEGAL IN PROCEDURE. IOC0211I S ILLEGAL 'XACTIVATE' OR •ZDEACTIVATE IN MACRO INTERPRETER PROCEDURE. STATEMENT IGNORED. Unerlaubtes "ZACTIVATE1 oder •XDEACTIVATE in der Makrointerpreter-Prozedur. Die Anweisung wurde ignoriert. OPERAND IGNORED. IOC0212I E STATEMENT WITHOUT IOC0212I E •XACTIVATE11 OR '>3>EACTIVATE' WITHOUT OPERAND. STATEMENT IGNORED. '/CACTIVATE oder 'XDEACTIVATE' sind ohne Operand. Die Anweisung wurde ignoriert. I0CG213I E REDUNDANT COMMA IGNORED. IOC0213I E REDUNDANT COMMA OR MISSING OPERAND IN XACTIVATE OR /ODEACTIVATE STATEMENT. COMMA IGNORED. Redundantes Komma oder fehlender Operand in der JCACTIVATE- oder /CDEACTIVATEAnweisung. Das Komma wurde ignoriert. IOC0214I S INCORRECT FIEIJD t IGNORED. IOC021« S INCORRECT FIELD t IN XACTIVATE OR XDEACTIVATE STATEMENT IGNORED. Die fehlerhafte Angabe t in der XACTIVATE- oder XDEACTIVATE-Anweisung wurde ignoriert. 86 PL1-0C Benutzungshinweise 10/89 DQS-4/ES IOC0215I S IDENTIFIER d IGNORED. IOC0215I S IDENTIFIER d IS NOT VARIABLE OR PROCEDURE NAME. IT IS IGNORED IN /CACTIVATE OR /EEACTIVATE STATEMENT. Die Bezeichnung d ist kein Variablen- oder Prozedurname. Sie wurde in ^ACTIVATE- oder /CDEACTIVATE-An Weisung ignoriert. der IOC0216I S TEXT IGNORED FROM t TO COMMA OR SEMICOLON. IOC0216I S MISSING COMMA OR INCORRECT BLANK IN /CACTIVATE OR /EEACTIVATE STATEMENT. TEXT IGNORED FROM t TO COMMA OR SEMICOLON. Es fehlt ein Komma oäßr es ist ein fehlerhaftes Leerzeichen in der ZACTIVATEoder ZDEACTIVATE-Anweisung. Der Text wurde von t bis zum Komma oder Semikolon ignoriert. IOC0217I S NON-ITERATIVE DO STATEMENT ASSUMED. IOC0217I S SYNTACTICAL ERROR IN DO STATEMENT. NON-ITERATIVE DO STATEMENT ASSUMED. Syntaktischer Fehler in der DO-Klausel. Eine nichtiterative DO-Klausel wurde angenommen. IOC0218I W ITERATIVE GROUP WITHOUT MAXIMUM VALUE. IOC0218I W ITERATIVE GROUP WITHOUT MAXIMUM VALUE. Iterative Gruppe ohne Maximalwert. I0C0219I E SEMICOLON ASSUMED BEFORE •*'. IOC0219I E MISSING SEMICOLON ASSUMED BEFORE '/C'. Das fehlende Semikolon wird vor 'X' angenommen. IOC0220I E SECOND *TO' REPLACED BY 'BY'. IOC0220I E SECOND •TO1 FOUNDED IN ITERATION SPECIFICATION REPLACED BY 'BY1. Das zweite 'TO1, das in der DO-Spezifikation gefunden wurde» wurde ersetzt. IOC0221I E SECOND 'BY1 REPLACED BY 'TO1. IOC0221I E SECOND 'BY' FOUNDED IN ITERATION SPECIFICATION REPLACED BY 'TO1. Das zweite 'BYS das in der DO-Spezifikation gefunden wurde» wurde ersetzt. durch 'BY1 durch 'TO' I0C0222I E SEMICOLON MISSING. TEXT FROM t TO NEKT SEMICOLON IGNORED. IOC0222I E SEMICOLON MISSING IN DO STATEMEOT. TE>CT FROM t TO NEXT SEMICOLON IGNORED. Das Semikolon fehlt in der DO-Klausel. Der Text wurde von t bis zum nächsten Semikolon ignoriert. IOC0223I E NULL STATEMENT ASSUMED BEFORE END STATEMENT. IQC0223I E END STATEMENTT MUST NOT FOLLOW 'THEN1 OR »ELSE NULL STATEMENT ASSUMED BEFORE 'END1. Die END-Klausel darf nicht nach THEN oder ELSE folgen. Es wurde eine Leeranweisung vor END angenommen. IOC0224I E SEMICOLON MISSING, TEXT FROM t TO NEJCT SEMICOLON IGNORED. IOC022« E SEMICOLON MISSING IN END STATEMENT. TEXT FROM t TO NEXT SEMICOLON IGNORED. Das Semikolon fehlt in der END-Klausel. Der Text wurde von t bis zum nächsten Semikolon ignoriert. IOC0225I E REDUNDANT *END STATEMENT IGNORED. IOC0225I E REDUNDANT /SEND STATEMENT IGNORED. Die überzählige ZEND-Anweisung wurde ignoriert. IOC0226I E REFERENCE TO UNKNOWN LABEL IGNORED. I0C0226I E REFERENCE TO UNKNOWN LABEL OR ENTRY CONSTANT IGNORED. Die Bezugnahme auf eine unbekannte Marke oder Eingangsnamenkonstante wurde ignoriert. IOC0227I E V, ASSUMED BEFORE 'END1. IOC0227I E MISSING i/Cl ASSUMED IN >CEND STATEMENT OF PROCEDURE. Das fehlende 'X1 in der XEND-Klausel der Prozedur wurde angenommen. IOC0228I E t NOT ENTRY CONSTANT OR LABEL. IGNORED. I0C0228I E IDENTIFIER t IN XEND STATEMENT NOT LABEL OR ENTRY CONSTANT. IDENTIFIER IGNORED. Die Bezeichnung t in der XEND-Klausel ist keine Marke oder ENTRY-Konstante. Die Bezeichnung wurde ignoriert. IOC0229I E RETURN STATEMENT MISSING IN PROCEDURE. IOC0229I E NO RETURN STATEMENT IN PROCEDURE t. NULL VALUE WILL BE RETURNED. In der Prozedur t fehlt die RETURN-Anweisung. Der Wert Null wird zurückgegeben. I0C0230I U ERROR NUMBER n IN COMPILER PHASE p. IOC0230I U ERROR NUMBER n IN COMPILER PHASE p. Fehler Nummer n in der Compiler-Phase p. IOC0233I W INVALID CARRIAGE CONTROL CHARACTER t. IOC0233I W INVALID CARRIAGE CONTROL CHARACTER t. BLANK ASSUMED. Ungültiges Vorschubsteuerzeichen t. Ein Leerzeichen wurde angenommen. IOC023« I TOO MANY STATEMENTS IN THIS RECORD FOR CORRECT NUMBERING. IOC0234I I LINE CONTAINS MORE THAN 30 STATEMENTS. FOLLOWING STATEMENTS GET THE NUMBER 31. Die Zeile enthält mehr als 30 Anweisungen. Folgende Anweisungen erhalten die Nummer 31. 87 PL1-0C Benutzungshinweise 10/89 D0S-4/ES I0C0235I W LINE NUMBER EXCEEDS n. IOC0235I H MAXIMUM LINE NUMBER EXCEEDED. FOLLOWING LINE NUMBERS SET TO n. Die maximale Zeilennummer wurde überschritten. Die darüberliegenden Zeilennummern wurden auf n gesetzt. IOC0236I W NON-INCREASING RECORD SEQUENCE NimBER FOLLOWS. IOC0236I N NON-INCREASING RECORD SEQUENCE NUMBER FOLLOWS THIS STATEMENT. LINE NUMBER(S) MODIFIED. Die Folgenummer dieses Satzes ist nicht größer als die Zeilennummer des vorangegangenen Satzes. Die Zeilennummer(n) wurde!n) modifiziert. IOC0237I S QUOTE ASSUMED [AFTER t U . IOC0237I S END OF SOURCE TEXT ENCOUNTERED AFTER UNMATCHED QUOTE. MATCHING QUOTE INSERTED [AFTER tll. Das Ende des Quelltextes wurde nach unpaarigem Apostroph erreicht. Der zugehörige abschließende Apostroph wurde eingefügt [nach tll. IOC0238I S n MISSING END STATEMENT(S) ASSUMED TO FOLLOW SOURCE TEXT. IOC0236I S END OF SOURCE TEXT ENCOUNTERED BEFORE LOGICAL END OF EXTERNAL PROCEDURE. n END STATEMENTCS) ASSUMED. Das Ende des Quelltextes wurde vor dem logischen Ende der externen Prozedur erreicht, n END-Klauseln wurden eingefügt. IOC0239I S SOURCE TEXT CONTINUES AFTER END OF EXTERNAL PROCEDURE. IOC0239I S LOGICAL END OF EXTERNAL PROCEDURE DETECTED BEFORE END OF SOURCE TEXT STATEMENTS. 'END1 IGNORED. Das logische Ende der externen Prozedur wurde vor dem Ende der Quelltextanweisungen erreicht. Die End-Klausel wurde ignoriert. IOC0240I S COMMENT DELD1ITER '*/' ASSUMED [AFTER t U . IOC0240I S END OF SOURCE TEXT ENCOUNTERED BEFORE END OF COMMEtfT. COMMENT DELIMITER ASSUMED [AFTER t U . Das Ende des Quelltextes wurde vor Kommentarende erreicht. Der Kommentarbegrenzer wurde eingefügt [nach t U . IOC0241I S END ÖF SOURCE TEXT ENCOUNTERED. t IGNORED. IOC0241I S END OF SOURCE TEXT FOUND BEFORE END OF STATEMENT, t IGNORED. Das Ende des Quelltextes wurde vor dem Ende der Anweisung erreicht, t wurde ignoriert. IOC0242I U NO PL1 TEXT RECOGNIZABLE. IQC0242I U NO PL1 TEXT RECOGNIZABLE. Kein PL1-Text wurde gefunden. IOC0243I W XCONTROL STATEMENT NOT SUPPORTED. IOC0243I W XCONTROL STATEMENT NOT SUPPORTED. Die ^CONTROL-Anweisung wird nicht unterstützt. IOC02WI W OBSOLETE OPTION t REPLACED BY VALID EQUIVALENT. I0C0244I W OBSOLETE ENVIRONMENT OPTION t HAS BEEN REPLACED BY VALH3 EQUIVALENT. Die veraltete ENVIRONMENT-Option t wurde durch ihr gültiges Äquivalent ersetzt. I0C0245I E ENVIRONMENT OPTION [AFTER tl] NOT SUPPORTED. t IGNORED. I0C0245I E ENVIRONMENT OPTION [AFTER tll NOT SUPPORTED. t IGNORED. Die ENVIRONMENT-Option [nach t U wird nicht unterstützt, t wurde ignoriert. IOC0246I H STATEMENT NOT SUPPORTED. IOC0246I W THIS STATEMENT IS NOT SUPPORTED AND IS IGNORED. Diese Anweisung ist nicht implementiert und wurde ignoriert. IOC0247I W SYNTACTICAL ERROR IN NON-SUPPORTED STATEMENT. IOC0247I W SYNTACTICAL ERROR IN NON-SUPPORTED STATEMENT [. STATEMENT IGNORED3. Syntaktischer Fehler in nicht implementierter Anweisung. [Die Anweisung ignoriert.1 wurde IOC02«! W OPTION t NOT SUPPORTED. IOC0248I W OPTION t NOT SUPPORTED t. STATEMENT IGNORED 1. Die Option t ist nicht implementiert. [Die Anweisung wurde ignoriert]. I0C0249I W ON CONDITION NOT SUPPORTED. IOC0249I W ON CONDITION NOT SUPPORTED. ON STATEMENT INCLUDING ON-UNIT IGNORED. Die ON-Bedingung ist nicht implementiert. ON-Anweisung einschließlich ON-Einheit wurden ignoriert. IOC0250I W ON CONDITION t NOT SUPPORTED. I0C0250I W ON CONDITION t NOT SUPPORTED l. STATEMENT IGNORED]. Die ON-Bedingung t ist nicht implementiert. [Die Anweisung wurde ignoriert.2 IOC0252I S INCORRECT OR NO OPERAND [AFTER tll. IOC0252I S INCORRECT OR NO OPERAND IN EXPRESSION [AFTER tlL Falscher oder fehlender Operand im Ausdruck [nach tl]. IOC0253I S INCORRECTLY USED PREFIX OPERATOR [AFTER t U . IOC0253I S INCORRECTLY USED PREFIX OPERATOR [AFTER t U . Falsch verwendeter Präfix-Operator [nach tl]. 88 PL1-0C Benutzung shinweise 10/89 D0S-4/ES IOC0254I S INCORRECT EXPRESSION, n SUBSTITUTED FOR t. IOC025M S INCORRECT EXPRESSION AFTER "1F1. n SUBSTITUTED FOR t. Falscher Ausdruck nach IF. t wurde durch n ersetzt. IOC0255I S CONSTANT t TOO LONG. IOC0255I S IMPLEMENTATION RESTRICTION. LENGTH OF ARITHMETIC CONSTANT t EXCEEDS MAXIMUM. Implementierungsbedingte Einschränkung. Die Länge der arithmetischen Konstanten t übersteigt den Maximalwert. IOC0256I S NO EXPONENT IN t. IOC0256I S FLOATING POINT CONSTANT t SPECIFIED WITHOUT EXPONENT. Die Gleitkomma-Konstante t wurde ohne Exponenten angegeben. IOC0257I S BINARY POSITION IN t NOT ZERO OR ONE. IOC0257I S DIGIT POSITIONCS) IN BINARY CONSTANT t CONTAINCS) OTHER CHARACTERCS) THAN ZERO AND ONE. Die Ziffernpositionen in der binären Konstanten t enthalten andere Zeichen als Null oder Eins. IOC0258I W BLANK ASSUMED [AFTER tl1 TO SEPARATE CONSTANT AND NAME. IOC0258I W MISSING SPACE BETWEEN CONSTANT AND FOLLOWING NAME. BLANK ASSUMED lAFTER tll. Fehlender Zwischenraum zwischen Konstante und folgendem Namen. Ein Leerzeichen wurde eingefügt [nach tll. IOC0259I S EXPONENT OF t TOO LONG. IOC0259I S LENGTH OF EXPONENT IN CONSTANT t EXCEEDS MAXIMUM. Die Länge des Exponenten in der Konstanten t übersteigt den Maximalwert. IOC0260I S MANTISSA MISSING IN CONSTANT t. IOC0260I S MANTISSA MISSING IN CONSTANT t. Die Mantisse fehlt in der Konstanten t. IOC0261I S BIT POSITION IN t NOT ZERO OR ONE. IOC0261I S BIT STRING CONSTANT t CONTAINS OTHER CHARACTERS THAN ZERO AND ONE. Die Bitkettenkonstante t enthält andere Zeichen als Null und Eins. IOC0262I S 'PROCEDUREi1 ASSUMED TO BE FIRST STATEMENT. IOC0262I S PROCEDURE STATEMEOT MISSING. »PROCEDUREi1 ASSUMED. Die PROCEDURE-Klausel fehlt. 'PROCEDUREi* wurde eingefügt. IOC0263I E COLON ASSUMED [AFTER tl]. I0C0263I E tl ASSUMED TO BE A LABEL OR ENTRY CONSTANT. COLON ASSUMED. tl wurde als LABEL- oder ENTRY-Konstante gedeutet. Ein Doppelpunkt wurde eingefügt. I0C0264I S SYNTACTICAL ERROR. t IGNORED. IOC0264I S SYNTACTICAL ERROR AT START OF STATEMENT, t IGNORED. Syntaktischer Fehler am Beginn der Anweisung, t wurde ignoriert. IOC0265I S PRECEDING DECLARE STATEMENT ASSUMED TO BE CONTINUED. IOC0265I S SYNTACTICAL ERROR AT START OF STATEMENT. PRECEDING DECLARE STATEMENT ASSUMED TO BE CONTINUED. Syntaktischer Fehler am Beginn der Anweisung. Vorangegangene DECLARE-Anweisung wurde trotz Semikolon fortgesetzt. IOC0266I S ILLEGAL CHARACTER [AFTER tll. t IGNORED. IOC0266I S THIS STATEMENT OR THE FOLLOWING TEXT CONTAINS ILLEGAL CHARACTER [AFTER tll. t IGNORED. Diese Anweisung oder der folgende Text enthält ein unerlaubtes Zeichen (nach tl]. t wurde ignoriert. IOC0267I W SEMICOLON IN CHARACTER STRING. IOC0267I W SEMICOLON APPEARS IN CHARACTER-STRING CONSTANT. Semikolon erscheint in einer Zeichenkettenkonstanten. IOC0268I W SEMICOLON IN CQMMENT. IOC0268I W SEMICOLON APPEARS IN COMMENTCS) IN OR FOLLOWING THIS STATEMENT. Semikolon erscheint im Kommentar in oder nach dieser Anweisung. IOC0269I S STATEMENT TOO LONG. TEXT FROM tl TO t2 IGNORED. IOC0269I S IMPLEMEfCTATION RESTRICTION. STATEMENT TOO LONG. TEXT BEGINNING tl AND ENDING t2 IGNORED. Implementierungsbedingte Einschränkung. Anweisung zu lang. Text von tl bis t2 wurde ignoriert. IOC0270I S INVALID CONTEXT [AFTER tll, t REPLACED BY ' j 1 . IOC0270I S INVALID COKTEXT AFTER KEYWORD tl. NULL STATEMENT SUBSTITUTED FOR t. Ungültiger Text nach Schlüsselwort tl. t wurde durch die Leeranweisung ersetzt. IOCQ271I S QUOTE ASSUMED [AFTER tll. I0C0271I S STATEMENT CONTAINS UNMATCHED QUOTE AND IS TOO LONG. MATCHING QUOTE INSERTED [AFTER tll. Die Anweisung enthält einen unpaarigen Apostroph und ist zu lang. Der zugehörige abschließende Apostroph wurde eingefügt tnach tll. 89 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0272I E NAME tl TRUNCATED TO t2. IOC0272I E TRUNCAT1ON OF TOO LONG NAME tl RESULTS IN t2. Kürzung des zu langen Namens tl zu t2. IOC0273I S INCORRECT PRECISION SPECIFICATION. t IGNORED. IOC0273I S FIRST SPECIFICATION IN PRECISION ATTRIBUTE IS NOT AK UNSIGNED INTEGER, t IGNORED. Die erste Angabe im Genauigkeitsattribut ist keine vorzeichenlose ganze Zahl, t wurde ignoriert. IOC0274I S PRECISION ATTRIBUTE TRUNCATED [AFTER tl3. I0C0274I S SECOND SPECIFICATION IN PRECISION ATTRIBUTE MISSING. ATTRIBUTE TRUNCATED [AFTER tll. Die zweite Angabe im Genauigkeitsattribut fehlt. Das Attribut wurde gekürzt [nach tu. IOC0275I S ILLEGAL CHARACTER [AFTER t U . t IGNORED. IOC0275I S ILLEGAL CHARACTER USED IN PICTURE STRING [AFTER t U . t IGNORED. Ungültiges Zeichen in Abbildungskette [nach t U . t wurde ignoriert. IOC0276I S PARENTHESIS ÖMITTED [AFTER tll. t IGNORED. IOC0276I S RIGHT PARENTHESIS OMITTED IN REPETITION OR SCALING FACTOR IN PICTURE STRING [AFTER t U . t IGNORED. Rechte Klammer fehlt in Wiederholungs- oder Skalierungsfaktor in Abbildungskette [nach t U . t wurde ignoriert. IOC0277I S ILLEGAL REPETITION FACTOR [AFTER t U . t IGNORED. IOC0277I S REPETITION FACTOR IN PICTURE STRING [AFTER tl 1 IS NOT AN UNSIGNED INTEGER. t IGNORED. Wiederholungsfaktor in Abbildungskette [nach tl 1 ist keine Vorzeichenlose ganze Zahl, t wurde ignoriert. IOC0278I S INCORRECT PICTURE STRING [AFTER t U . t IGNORED, IOC0278I S NO PICTURE CHARACTER FOLLOWS REPETITION FACTOR IN PICTURE STRING [AFTER t U . t IGNORED. In der Abbildungskette [nach tl I folgt dem Wiederholungsfaktor kein Abbildungszeichen, t wurde ignoriert. IOC0279I S INCORRECT PICTURE STRING [AFTER tl]. t IGNORED. IOC0279I S MISSING LEFT PARENTHESIS [AFTER tl1 IN PICTURE STRING. t IGNORED. Linke Klammer [nach tl] fehlt in Abbildungskette, t wurde ignoriert. IOC0280I S INCORRECT PICTURE STRING [AFTER tll. t IGNORED. IOC02801 S INCORRECT SCALING FACTOR IN PICTURE STRING [AFTER tll. t IGNORED. Falscher Skalierungsfaktor in Abbildungskette [nach tll. t wurde ignoriert. IOC0281I S ILLEGAL STATEMEhTT AFTER 'ELSE1 REPLACED BY ' } ' . IOC0281I S NpN-ALLOWED STATEMENT AFTER «ELSE1. NULL STATEMENT ASSUMED. Nicht erlaubte.Anweisung nach ELSE. Eine Leeranweisung wurde eingefügt. IOC0282I S ILLEGAL STATEMENT AFTER 'THEN1 REPLACED BY • } • . IOC0282I S NON-ALLOWED STATEMENTT AFTER 'THEN1. NULL STATEMEOT1 ASSUMED. Nicht erlaubte Anweisung nach THEN. Eine Leeranweisung wurde eingefügta IOC0283I S ILLEGAL NAME AFTER 'END1 IGNORED. IOC0283I S NAME AFTER 'END1 DOES NOT REFER TO A LABEL OR ENTRY CONSTANT TO BE MATCHED. NAME IGNORED. Der Name nach END bezieht sich nicht auf eine passende LABEL- oder ENTRY-Konstante. Der Name wurde ignoriert. IOC0284I U TOO MANY PROCEDURE/BEGIN/ON STATEMENTS. IOC0284I U IMPLEMEOTATION RESTRICTION. NUMBER OF PROCEDURE/BEGIN/ON STATEMENTTS EXCEEDS MAXIMUM. Implementierungsbedingte Einschränkung. Die Anzahl der PROCEDURE- und BEGIN-Klauseln sowie ON-Anweisungen übersteigt den Maximalwert. IOC0285I U BLOCK NESTING LEVEL EXCEEDS LIMIT. IOC0285I U IMPLEMENTATION RESTRICTION. PROCEDURE/BEGIN BLOCK NESTING LEVEL EXCEEDS MAXIMUM. Implementierungsbedingte Einschränkung. Das Schachtelungsniveau des PROCEDUREoder BEGIN-Blockes übersteigt die zulässige Grenze. IOC0286I S MISSING 'THEN11 INSERTED [AFTER t U . I0C0286I S MISSING 'THEN INSERTED [AFTER tl1 IN IF STATEMENT. In der IF-Anweisung wurde das fehlende THEN eingefügt [nach tll. IOC0287I S '5' SUBSTITUTED FOR INCORRECT ON-UNIT. I0C0287I S NULL STATEMENT SUBSTITUTED FOR INCORRECT ON-UNIT. Falsche QN-Einheit wurde durch Leeranweisung ersetzt. IOC0288I IOC02881 INCORRECTLY POSITIONED PREFIXES ASSUMED TO FOLLOW 'ELSE'. INCORRECTLY POSITIONED PREFIX/PREFIXES ASSUMED TO FOLLOW •ELSE1 Fehlerhaft gesetztes Präfix wird nach ELSE eingefügt. IOC0289I S INVALID OR MISSING STATEMENT AFTER 'THEN11. XOC0289I S INVALID OR MISSING STATEMENT AFTER 'THEN . NULL STATEMENT ASSUMED. Ungültige oder fehlende Anweisung nach THEN. Eine Leeranweisung wurde eingefügt. 90 PL1-0C Benutzungshinweise 10/89 DQS-4/ES IOC0290I S INVALID OR MISSING STATEMENT AFTER 'ELSE1. IOC0290I S INVALID OR MISSING STATEMENT AFTER 'ELSE1. NULL STATEMENT ASSÜMED. Ungültige oder fehlende Anweisung nach ELSE. Eine Leeranweisung wurde eingefügt. IOC0291I S INCORRECTLY POSITIONED 'ELSE1 IGNORED. IOC0291I S INCORRECTLY POSITIONED KEYWORD «ELSE1. 'ELSE1 IGNORED. Falsch positioniertes Schlüsselwort ELSE wurde ignoriert. IOC0292I W I/O CONDITION COMPLETED BY 'SYSIN' OR 'SYSPRINT1. IOC0292I W I/O ON CONDITION SPECIFIED WITHOUT FILE REFERENCE,. CONDITION COMPLETED BY 'SYSIN1 OR 'SYSPRINT1. E/A-ON-Bedingung wurde ohne FILE-Bezugnähme angegeben. Die Bedingung wurde durch SYSIN oder SYSPRINT ergänzt. IOC0293I S 'ERROR1 SUBSTITUTED FOR INVALID ON CONDITION. IOCQ293I S INCORRECTLY SPECIFIED ON CONDITION [AFTER tll. «ERROR1 SUBSTJTUTED FOR t. Fehlerhaft angegebene ON-Bedingung [nach tll. t wurde durch ERROR ersetzt. IOC0294I S SURPLUS COMMA [AFTER tl3 IGNORED. IOC0294I S ITEM OMITTED OR SURPLUS COMMA IN LIST [AFTER tll. COMMA IGNORED. In der Liste [nach tl3 fehlt entweder ein Element» oder ein Komma ist überflüssig. Das Komma wurde ignoriert. IOC0295I E MISSING LEFT PARENTHESIS INSERTED [AFTER tl]. IOC0295I E MISSING LEFT PARENTHESIS INSERTED [AFTER tll. Fehlende linke Klammer wurde eingefügt [nach tll. IOC0296I S INCORRECT DO SPECIFICATION. IOC0296I S INCORRECT DO SPECIFICATION [AFTER tll. Fehlerhafte DO-Spezifikation [nach tl3. IOC0297I S EXPRESSION OMITTED AFTER 'BY1 OR 'TO'. IOC0297I S EXPRESSION OMITTED AFTER 'BY1 OR 'TO1. DO SPECIFICATION IGNORED, Ausdruck fehlt nach BY oder TO. DO-Spezifikation wurde ignoriert. IOC0298I S ON-UNIT ILLEGALLY CONTAINS 'RETURN1 C. STATEKENT IGNORED3. IOC0298I S ON-UNIT ILLEGALLY CONTAINS 'RETURN' [. STATEMENT IGNORED3. ON-Einheit enthält RETURN-Anweisung. [Anweisung würde ignoriert!. IOC0299I S INCORRECT IN OPTION IGNORED. IOC0299I S LEFT PARENTHESIS AFTER 'IN' MISSING. IN OPTION IGNORED . Linke Klammer nach IN fehlt. IN-Option wurde ignoriert. IOC0300I S ENTRY CONSTANT MISSING. DUMMY ASSUMED. IOC0300I S ENTRY CONSTANT MISSING AT START OF PROCEDURE OR ENTRY STATEMEhTT. DUMMY EKTRY CONSTANT ASSUMED. Am Beginn der PROCEDURE- oder ENTRY-Anweisung fehlt die ENTRY-Konstante. Eine ENTRY-Konstante wurde eingefügt. IOC0301I S ENTRY STATEMENT IN BEGIN BLOCK IGNORED. IOC0301I S BEGIN BLOCK CONTAINS ENTRY STATEMENT I. STATEMENT IGNORED3. BEGIN-Block enthält ENTRY-Anweisung. [Anweisung wurde ignoriert*1 IOC0302I S INCORRECT IN OPTION, t IGNORED. IOC0302I S INCORRECT IN OPTION IN FREE STATEMENT, t IGNORED. Fehlerhafte IN-Option in FREE-Anweisung. t wurde ignoriert. IOC0303I S ILLEGAL TEXT, t IGNORED. IOC0303I S STATEMENTT CONTAINS ILLEGAL TEXT, t IGNORED. Anweisung enthält falschen Text, t wurde ignoriert. IOC030« S INCORRECT OPTION [AFTER ill. t IGNORED. IOC030« S INCORRECT OR MULTIPLE OPTION [AFTER tl]. t IGNORED. Fehlerhafte oder mehrfach angegebene Option [nach tl]. t wurde ignoriert. IOC0305I E INCORRECT LABEL ATTRIBUTE [AFTER tl]. IOC0305I E INCORRECT ITEM IN LABEL ATTRIBUTE LIST [AFTER tl3. t IGNORED. Fehlerhaftes Element in der LABEL-Attributliste [nach tl]. t wurde ignoriert. IOC0306I S SURPLUS LABEL PREFIX/PREFIXES. t IGNORED. IOC0306I S IMPLEMENTATION RESTRICTION. LENGTH OF LABEL PREFIX LIST EXCEEDS MAXIMUM. PREFIX/PREFIXES t IGNORED. Implementierungsbedingte Einschränkung. Die Länge der LABEL-Präfixliste steigt die zulassige Grenze, t wurde ignoriert. über- IOC0307I S INCORRECT CONDITION PREFIX [AFTER tl3. t IGNORED. IOC0307I S COLON IN CONDITION PREFIX LIST OMITTED. t IGNORED. Doppelpunkt fehlt in der Bedingungspräfixliste, t wurde ignoriert. IOC0308I E INCORRECT SEQUENCE OF PREFIXES. PREFIXES ACCEPTED. IOC0308I E CONDITION PREFIX t INCORRECTLY SPECIFIED AFTER LABEL PREFIX BUT ALL PREFIXES ACCEPTED, Die Reihenfolge von Bedingungspräfix t und Markenpräfix ist nicht richtig; trotzdem wurden alle Präfixe akzeptiert. 91 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0309I S INCORRECTLY SEQUENCED PREFIX t IGNORED. IOC0309I S CHECK OR NOCHECK PREFIX INCORRECTLY SPECIFIED AFTER LABEL PREFIX. t IGNORED, CHECK- oder NOCHECK-Präfix wurde nach dem Markenpräfix angegeben, t wurde ignoriert. IOC0310I E COLON ASSUMED CAFTCR tll. I0C0310I E MISSING COLON IN CONDITION PREFIX LIST. COLON ASSUMED [AFTER tl]. Fehlender Doppelpunkt in Bedingungspräfixliste. Ein Doppelpunkt wurde eingefügt [nach tl3. IOC0311I S INCORRECTLY PARENTHESIZED ITEMCS) [AFTER tlJ. t IGNORED. IOC0311I S CONTENTS OF PARENTHESIZED LIST INCORRECT [AFTER tll. t IGNORED. Der Inhalt der eingeklammerten Liste ist fehlerhaft [nach tl]. t wurde ignoriert, I0C0312I E ILLEGALLY SPECIFIED CONDITION PREFIX LIST IGNORED. IOC0312I E THIS STATEMENT MUST NOT BEGIN WITH A CONDITION PREFIX LIST. SPECIFIED LIST IGNORED. Diese Anweisung darf nicht mit einer Bedingungspräfixliste beginnen. Die Liste wurde ignoriert. IOC0313I S ILLEGAL FACTORING [AFTER tll. I0C0313I S ILLEGAL FACTORING IN ALLOCATE STATEMENT [AFTER tll. TEXT UP TO NEXT SEMICOLON IGNORED. Ungültiges Ausklammern in ALLOCATE-Anweisung [nach tll. Text bis zum nächsten Semikolon wurde ignoriert. IOC031« S 'INITIAL1 FACTORING LEVEL [AFTER tll GREATER THAN n. IOC031« S IMPLEMENTATION RESTRIKTION. MORE THAN n FACTORING LEVELS IN INITIAL ATTRIBUTE. ATTRIBUTE IGNORED. Implementierungsbedingte Einschränkung. Das Niveau der Schachtelung im INITIALAttribut übersteigt n. Das Attribut wurde ignoriert. IOC0315I S SIGN BEFORE t IGNORED. IOC0315I S SIGN IN FRONT OF STRUCTURE LEVEL NUMBER t INVALID AND IGNORED. Ein Vorzeichen vor der Strukturstufennummer t ist unzulässig und wurde ignoriert. IOC0316I S LEVEL NUMBER ZERO REPLACED BY ONE. IOC0316I S LEVEL NUMBER ZERO [AFTER tl1 INVALID AND REPLACED BY ONE. Die Stufennummer Null [nach tll ist falsch und wurde durch Eins ersetzt. IOC0317I S ILLEGAL t IN •RETURNS1 IGNORED. IOC0317I S ATTRIBUTE t MUST NOT BE SPECIFIED IN RETURNS ATTRIBUTE AND IS THEREFORE IGNORED. Attribut t darf nicht im RETURNS-Attribut angegeben werden und wurde deshalb ignoriert. IOC0318I S ASSIGNMENT STATEMENT INCORRECT [AFTER tll. t IGNORED. IQC0318I S SYNTACTICAL ERROR IN ASSIGNMENT STATEMENT [AFTER tll. t IGNORED. Syntaktischer Fehler in Ergibtanweisung [nach tll. t wurde ignoriert. IOC0319I W INCORRECTLY USED '/CSKIP1 OR 'XPAGE'. IOC0319I W INCORRECTLY USED XSKIP^ OR KPAGE STATEMENT. LISTING STATEMENT IGNORED. Falscher Gebrauch der /CSKIP- oder XPAGE-Anweisung. Anweisung wurde ignoriert. IOC0320I S FORMAT LIST MISSING [AFTER tll. IOC0320I S FORMAT LIST MISSING IN EPIT-DIRECTED I/O STATEMENT, t FORMAT ASSUMED. Formatliste fehlt in EDIT-gesteuerter E/A-Anweisung. Das Format t wurde eingefügt. IOC0321I S ERROR IN DATA LIST [AFTER tll. t IGNORED. IOC0321I S MISSING OR INCORRECT DATA LIST ITEM [AFTER tll. t IGNORED. Fehlendes oder falsches Datenlistenelement [nach tll. t wurde ignoriert IOC0322I S ERROR IN FORMAT LIST [AFTER tll. t IGNORED. I0C0322I S MISSING OR INCORRECT FORMAT ITEM [AFTER tll. t IGNORED . Fehlendes oder falsches Formatelement [nach tll. t wurde ignoriert. IOC0323I W NO LABEL IN FORMAT STATEMENT. I0C0323I W LABEL PREFIX MISSING IN FORMAT STATEMENT. Markenpräfix fehlt in FORMAT-Anweisung. I0C0324I S ILLEGALLY USED KEYWORD [AFTER tll. t IGNORED. IOC0324I S DO SPECIFICATION CONTTAINS ILLEGAL KEYWORD [AFTER tll. t IGNORED. DO-Spezifikation enthält falsches Schlüsselwort [nach tll. t wurde ignoriert. I0C0325I S LABEL PREFIX OF ON-UNIT IGNORED. IOC0325I S ON-UNIT MUST NOT BEGIN WITH LABEL PREFIX. LABEL PREFIX IGNORED. ON-Einheit darf nicht mit Markenpräfix beginnen. Markenpräfix wurde ignoriert. IOC0326I S END OF STATEMENT ASSUMED [AFTER tll. IOC0326I S END OF STATEMENT ASSUMED [AFTER tl]. TEXT UP TO NEXT SEMICOLON IGNORED. Das Ende der Anweisung wurde angenommen [nach tll. Der Text bis zum nächsten Semikolon wurde ignoriert. IOC0327I S ATTRIBUTE INCORRECT [AFTER tl3. t IGNORED. IOC0327I S ERROR IN ATTRIBUTE SPECIFICATION [AFTER tll. t IGNORED . Fehler in der Angabe des Attributes [nach tll. t wurde ignoriert. 92 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0328I S INCORRECTLY USED 'DO1 REPLACED BY 'BEGIN1. IOC0328I S DO GROUP MUST NOT BE USED AS ON-UNIT. DO STATEMENT REPLACED BY •BEGINi'. DO-Gruppe darf nicht als ON-Einheit angewendet werden. DO-Klausel wurde durch 'BEGIN*1 ersetzt. IOC0329I S MULTIPLE USE OF OPTION, t IGNORED. IOC0329I S MULTIPLE USE OF SAME OPTION IN THIS STATEMENTT. t IGNORED. Mehrfache Anwendung derselben Option in dieser Anweisung oder Klausel. ignoriert. t wurde IOC0330I S REPLY OPTION MISSING. TEXT tAFTER tl1 IGNORED. IOC0330I S EVEKT OPTION BUT NO REPLY OPTION SPECIFIED IN DISPLAY STATEMENT. TEXT [AFTER tl] IGNORED. In der DISPLAY-Anweisung wurde die EVENT-Option> aber keine REPLY-Option angegeben. Text [nach tl 1 wurde ignoriert. IOC0331I E LEFT PARENTHESIS ASSUMED BEFORE EXPRESSION. IOC0331I E LEFT PARENTHESIS OMITTED BEFORE EXPRESSION IN DELAY OR DISPLAY STATEMENT. PARENTHESIS ASSUMED. Linke Klammer wurde vor dem Ausdruck in der DELAY- oder DISPLAY-Anweisung eingefügt. IOC0332I S INCORRECT FORMAT ITEM [AFTER « ] . t IGNORED. IOC0332I S ERROR IN FORMAT ITEM [AFTER tl]. t IGNORED. Fehler im Formatelement [nach tll. t wurde ignoriert. IOC0333I E RIGHT PARENTHESES ASSUMED [AFTER tl]. IOC0333I E MISSING RIGHT PARENTHESIS AFTER DO SPECIFICATION ENDING t IN DATA LIST. PARENTHESIS ASSUMED. Rechte Klammer nach DO-Spezifikation fehlt bei t 'in Datenliste. Klammer wurde eingefügt. IOC0334I S MORE THAN n NESTING LEVELS IN DATA LIST [AFTER tll. IOC0334I S IMPLEMENTATION RESTRICTION. MORE THAN n NESTING LEVELS IN DATA LIST [AFTER tl] [. STATEMENT IGNORED]. Implementierungsbedingte Einschränkung. Mehr als n Schachtelungsstufen in Datenliste [nach tll. [Anweisung wurde ignoriert.] IOC0335I S INCORRECT CALL STATEMENT. IOC0335I S SYNTACTICAL ERROR IN CALL STATEMENT [. STATEMENT IGNORED ]. Syntaktischer Fehler in CALL-Anweisung. [Anweisung wurde ignoriert.] IOC0336I S INCORRECTLY USED ENTRY STATEMENT IGNORED. IOC0336I S ENTRY STATEMENT ILLEGALLY COOTAINED IN DO GROUP [. STATEMENT IGNORED3. ENTRY-Klausel ist in DO-Gruppe enthalten. [Klausel wurde ignoriert.] IOC0337I S INCORRECT STATEMENT, t IGNORED. IOC0337I S SYNTACTICAL ERROR AT START OF STATEMENT, t IGNORED. Syntaktischer Fehler am Beginn der Anweisung, t wurde ignoriert. IOC0338I S INCORRECT OPTION [AFTER tl]. t IGNORED. I0C0338I S INVALID OPTION IN PROCEDURE/BEGIN/ENTRY STATEMENT, t IGNORED. Fehlerhafte Option in PROCEDURE-> BEGIN- oder ENTRY-Klausel. t wurde ignoriert. IOC0339I S FORMAT LIST NESTING LEVEL EXCEEDS n [AFTER tl]. IOC0339I S IMPLEMENTATION RESTRICTION. NESTING OF FORMAT LISTS EXCEEDS n LEVELS [AFTER tl] [. STATEMENT IGNORED]. Implementierungsbedingte Einschränkung. Die Schachtelungstiefe der Formatliste übersteigt n [nach tll. [Die Anweisung wurde ignoriert.] IOC0340I S MISSING EQUAL SYMBOL [AFTER tl]. t IGNORED. IQC0340I S MISSING EQUAL SYMBOL IN DO SPECIFICATION. t IGNORED. Fehlendes Gleichheitszeichen in DO-Spezifikation. t wurde ignoriert« IOC0341I S ILLEGAL CONTROL VARIABLE [AFTER tll. t IGNORED. IOC0341I S ILLEGAL CONTROL VARIABLE [AFTER tl] IN DO SPECIFICATION. t IGNORED. Fehlerhafte Laufvariable [nach tl ] in DO-Spezifikation. t wurde ignoriert. IOC0342I S NESTING LEVEL OF PARENTHESES EXCEEDS n [AFTER tl]. IOC0342I S IMPLEMENTATION RESTRICTION. NESTING OF PARENTHESES EXCEEDS n LEVELS [AFTER tl] [. STATEMENT IGNORED]. Implementierungsbedingte Einschränkung« Die Schachtelungstiefe der Klammern übersteigt n [nach tll. [Anweisung wurde ignoriert.] IOC0343I U STATEMENT NESTING LEVEL EXCEEDS LIMIT. IOC0343I U IMPLEMENTATION RESTRICTION. SUMMARIZED NESTING LEVELS OF BLOCKS GROUPS AND IF STATEMENTS EXCEED LIMIT. PROCESSING TERMINATED. Implementierungsbedingte Einschränkung. «Die gesamte Schachtelungstiefe von Blöcken, Gruppen und IF-Anweisungen übersteigt die Grenze. Die Verarbeitung wurde abgebrochen. IOC0344I S OPTION(S) t OMITTED IN RECORD I/O STATEMENT. IOC0344I S OPTIONCS) t OMITTED IN RECORD I/O STATEMENT E . STATEMENT IGNORED]. Option t fehlt in RECORD-E/A-Anweisung. [Anweisung wurde ignoriert.] 93 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0345I S t IN 'OPTIONS1 LIST IGNORED. IOC0345I S ERROR IN 'OPTIONS1 LIST, t IGNORED. Fehler in Optionenliste, t wurde ignoriert. IOC0346I S MISSING REFERENCE AFTER 'LOCATE11 IOCQ346I S MISSING REFERENCE AFTER 'LOCATE [. STATEMENT IGNORED3. Fehlende Bezugnahme nach LOCATE. [Anweisung wurde ignoriert.] IOC0347I E COLON ASSUMED [AFTER tll. IOC0347I E MISSING COLON AT END OF CONDITION PREFIX. COLON ASSUMED [AFTER tll. Fehlender Doppelpunkt nach dem Bedingungspräfix wurde eingefügt [nach tl3. IOC0348I S MULTIPLE T0 1 OR 'BY11 [AFTER tll. t IGNORED. 'BY [AFTER tli IN DO SPECIFICATION. t IGNORED. IOC0348I S MULTIPLE TO1 OR Mehrfaches 'TO1 oder •BY1 [nach tl3 in DO-Spezifikation. t wurde ignoriert. IOCQ349I S FILE OPTION MISSING. t IGNORED. IOC0349I S MISSING FILE OPTION OR SURPLUS COMMA IN OPEN OR CLOSE STATEMENT, t IGNORED. Fehlende FILE-Option oder überflüssiges Komma in OPEN-oder CLOSE-Anweisung. t wurde ignoriert. IOC0350I S SYNTACTICAL ERROR [AFTER tl1. t IGNORED. I0C0350I S SYNTACTICAL ERROR IN ENVIRONMENT OPTION [AFTER tll. t IGNORED. Syntaktischer Fehler in ENVIRONMENT-Option [nach tll. t wurde ignoriert. IOC0351I S INVALID ITEM [AFTER tll. t IGNORED. IOC0351I S INVALID PARAMETER SPECIFICATION [AFTER tll. t IGNORED. Fehlerhafte Parameterangäbe [nach tl]. t wurde ignoriert. IOC0352I S INVALID OPTION [AFTER tll. t IGNORED. IOC0352I S INVALID OPTION IN DEFAULT STATEMENT [AFTER i l l t IGNORED. Fehlerhafte Option in DEFAULT-Anweisung [nach tll. t wurde ignoriert. IOC0353I S INCORRECT SPECIFICATION [AFTER tll. t IGNORED. I0C0353I S INCORRECT SPECIFICATION [AFTER tl3 IN RANGE OPTION, t IGNORED. Fehlerhafte Angabe [nach tl3 in RANGE-Option. t wurde ignoriert. IOC035« S INCORRECT SPECIFICATION [AFTER tll. t IGNORED. IOC0354I S INCORRECT SPECIFICATION [AFTER tl1 IN GENERIC ATTRIBUTE, t IGNORED. Fehlerhafte Angabe [nach tl 1 im GENERIC-Attribut. t wurde ignoriert. IOC0355I S ERROR IN POSITION ATTRIBUTE, t IGNORED. I0C0355I S INCORRECT SPECIFICATION IN POSITION ATTRIBUTE, t IGNORED. Fehlerhafte Angabe im POSITION-Attribut. t wurde ignoriert. I0C0356I S INCORRECT SPECIFICATION [AFTER tll. t IGNORED. IOC0356I S INCORRECT SPECIFICATION EAFTER tl1 IN NAME LIST, t IGNORED. Fehlerhafte Angabe [nach tll in der Namenliste, t wurde ignoriert. IOC0357I S INVALID KEYWORD, t IGNORED. I0CQ357I S ATTRIBUTE SPECIFICATION IN DEFAULT STATEMENT COhTTAINS INVALID KEYWORD, t IGNORED. Attributangabe in DEFAULT-Anweisung enthält fehlerhaftes Schlüsselwort, t wurde ignoriert. IOC0358I S NO 'WHEN1 IN 'GENERIC1 [AFTER tll. t IGNORED. IOC0358I S NO WHEN OPTION [AFTER tll IN GENERIC ATTRIBUTE, t IGNORED. Keine WHEN-Option [nach tll im GENERIC-Attribut. t wurde ignoriert. IOC0359I S INCORRECT DIMENSION SPECIFICATION [AFTER tll. t REPLACED BY 10. IOC0359I S INCORRECT SPECIFICATION [AFTER tll IN DIMENSION ATTRIBUTE, t REPLACED BY 10. Fehlerhafte Angabe [nach tl 1 im Dimensionsattribut, t wurde durch 10 ersetzt. IOC0360I S ILLEGAL OPTION EAFTER tll. t IGNORED. IOC0360I S ILLEGAL OPTION IN GET/PUT STATEMENT [AFTER tll. t IGNORED. Ungültige Option in GET/PUT-Anweisung [nach tll. t wurde ignoriert. IOC0361I S EXPRESSION INVALID OR MISSING. IOC0361I S MISSING OR INVALID EXPRESSION IN DELAY OR DISPLAY STATEMENT. [STATEMENT IGNORED.3 Fehlender oder falscher Ausdruck in DELAY- oder DISPLAY-Anweisung. [Anweisung wurde ignoriert.3 IOC0362I S INVALID OPTION [AFTER tll. t IGNORED. IOC0362I S OPTION [AFTER tll INVALID IN THIS CONTEXT. t IGNORED. Option [nach tll in diesem Zusammenhang ungültig, t wurde ignoriert. IOC0363I E COMMA ASSUMED EAFTER tll. IOC0363I E CONSTANT IN ATTRIBUTE LIST. COMMA ASSUMED [AFTER tll. Konstante in Attributliste. Komma wurde eingefügt [nach tll. IOC0364I S NO NAME [AFTER tll. t IGNORED. IOC0364I S NAME MISSING [AFTER tll IN DECLARE/DEFAULT/ALLOCATE STATEMENT, t IGNORED. Name fehlt [nach tll in DECLARE-, DEFAULT- oder ALLOCATE-Anweisung. t wurde ignoriert. IOC0365I S DATA LIST MISSING [AFTER tll, IOC0365I S DATA LIST MISSIMG [AFTER tl1 E. STATEMENT IGNORED1. Datenliste fehlt [nach tll. [Anweisung wurde ignoriert.] PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOCQ366I S INVALID REFERENCE IAFTER tll. t IGNORED. IOC0366I S INVALID REFERENCE [AFTER tlI IN FREE STATEMENT, t IGNORED. Ungültige Bezugnahme [nach tl] in FREE-Anweisung. t wurde ignoriert. IOC0367I W TOO FEW PARENTHESES FOR TEXT [AFTER tl] TO BE DO SPECIFICATION. IOC0367I W ONE OR MORE MISSING PARENTHESES IN TEXT [AFTER tl ] TO BE DO SPECIFICATION. TEXT ITEMS ASSUMED TO BE DATA LIST ITEMS. Eine oder mehrere fehlende Klammern im Text [nach tl3 der DO-Spezifikation. Textelement wird als Datenlistenelement angenommen. IOC0368I S NO EXPRESSION [AFTER tll. t ASSUMED. IOC0368I S EXPRESSION OMITTED IN FORMAT ITEM [AFTER tll. t ASSUMED. Ausdruck fehlt im Formatelement [nach tl]. t wurde eingefügt. IOC0369I S CONFLICTING ITEMS IN CONDITION PREFIX LIST. IOC0369I S CONFLICTING ITEMS IN CONDITION PREFIX LIST. ENABLING ITEM IGNORED. Widersprüchliche Elemente in der Bedingungspräfixliste. Entsprechendes wurde ignoriert. Element IOC0370I S NO EXPRESSION [AFTER tll. IOC0370I S EXPRESSION OMITTED IN A FORMAT ITEM [AFTER tll. 'ERROR1 WILL BE RAISED DURING EXECUTION. Ausdruck fehlt im A-Formatelernent [nach tl]. Während der Ausführung wird ERROR auftreten. IOC0371I S INVALID NUMBER OF SPECIFICATIONS [AFTER tll. t IGNORED . IOC0371I S INCORRECT NUMBER OF SPECIFICATIONS IN FORMAT ITEM [AFTER tll. t IGNORED. Falsche Anzahl von Angaben im Formatelement [nach tll. t wurde ignoriert. IOC0372I E COMMA ASSUMED [AFTER tll. IOC0372I E COMMA ASSUMED [AFTER tll. Komma wurde eingefügt [nach tl]. IOC0373I S ERROR IN P FORMAT ITEM [AFTER tll. t IGNORED. IOC0373I S P FORMAT ITEM CONTAINING CHARACTER PICTURE STRING [AFTER tll. t IGNORED. P-Formatelement enthält Zeiohenketten-Abbildungskette [nach tll. t wurde ignoriert. IOC0374I S SYNTACTICAL ERROR [AFTER tll. IOC0374I S SYNTACTICAL ERROR IN LISTING CONTROL STATEMENT [AFTER tll. TEXT IGNORED UP TO NEXT SEMICOLON. Syntaktischer Fehler in der Auflistungsanweisung [nach tl3. Text wurde bis zum nächsten, Semikolon ignoriert. IOC0375I S SYNTACTICAL ERROR [AFTER tll. I0C0375I S SYNTACTICAL ERROR IN DECLARE OR DEFAULT STATEMENT [AFTER tll. Syntaktischer Fehler in DECLARE- oder DEFAULT-Anweisung [nach tll. IOC0376I S DATA LIST INVALID [AFTER tll. t IGNORED. I0C0376I S INCORRECTLY USED DO SPECIFICATION IN DATA LIST OF GET STATEMENT [AFTER -tll. t IGNORED. Fehlerhaft angewendete DO-Spezifikation in Datenliste der GET-Anweisung [nach tll. t wurde ignoriert. IOC0377I S MISSING OR INVALID FORMAT LIST [AFTER tll. IOC0377I S FORMAT STATEMENT CONTAINS INVALID OR NO FORMAT LIST [AFTER tll. A FORMAT ASSUMED. FORMAT-Anweisung enthält ungültige oder keine Formatliste [nach tll. A-Format wurde eingefügt. IOC0378I S LENGTH OF PICTURE STRING t EXCEEDS LIMIT. IOC0378I S IMPLEMENTATION RESTRICTION. LENGTH OF PICTURE STRING EXCEEDS LIMIT. PICTURE STRING t IGNORED. Implementierungsbedingte Einschränkung. Abbildungsketteist zu lang. Abbildungs^ kette t wurde ignoriert. IOC0379I E NESTING LEVEL OF FACTORIZATION EXCEEDS LIMIT [AFTER tlJ. t IGNORED. IOC0379I E IMPLEMENTATION RESTRICTION. NESTING LEVEL OF FACTORIZATION EXCEEDS LIMIT [AFTER tll. t IGNORED. Implementierungsbedingte Einschränkung. Schachtelungsniveau [nach tl1 tief, t wurde ignoriert. ist zu IOC0380I I TASK OPTION SPECIFIED. 'REENTRANT1 ASSUMED. IOC0380I I TASK OPTION SPECIFIED. PROCEDURE ASSUMED TO BE REENTRAtfT. Die TASK-Option wurde angegeben. Die REENTRAKT-Option wurde eingefügt. IOC0381I W BLANK ASSUMED [AFTER tll. IOC0381I W NO BLANK BETWEEN KEYWORD AND STRING CONSTANT. BLANK ASSUMED [AFTER tll. Kein Leerzeichen zwischen Schlüsselwort und Kettenkonstante. Leerzeichen wurde eingefügt [nach tll. IOC038EI S 'LIKE' IGNORED. IOCQ3S2I S LIKE ATTRIBUTE INVALID IN PARAMETER DESCRIPTOR LIST OF ENTRY ATTRIBUTE AND THEREFORE IGNORED. In der Parameterbeschreibungsliste für das ENTRY-Attribut ist das LIKE-Attribut ungültig und wurde deshalb ignoriert. 95 PL1-0C Benutzungshinweise 10/89 DQS-4/ES IOC0383I E INVALID INITIAL ATTRIBUTE tAFTER tl]. IOCQ383I E INVALID SPECIFICATION IN INITIAL ATTRIBUTE [AFTER tlJ. ATTRIBUTE IGNORED. Fehlerhafte Angabe im INITIAL-Attribut [nach tl]. Attribut wurde ignoriert. IOC038« E INVALID OPTION [AFTER tll. I0CQ384I E ILLEGALLY USED OPTION [AFTER tll IN RECORD I/O STATEMENT. OPTION t ASSUMED. Falsch angewendete Option [nach tl ] in RECORD-E/A-Anweisung. Option t wurde eingefügt. IOC0385I I n ADDITIONAL1 END STATEMENTCS) ASSUMED. IOC03851 I SINGLE 'END EFFECTS MULTIPLE CLOSURE OF BLOCKS/GROUPS. n ADDITIONAL END STATEMENTS ASSUMED. Einfaches END bewirkt mehrfaches Schließen von Blöcken/Gruppen, n zusätzliche END-Klauseln wurden eingefügt. IOC0386I E SEMICOLOJ* ASSUMED [AFTER tll. I0C0386I E SEMICOLON ASSUMED [AFTER tll. Semikolon wurde eingefügt [nach tl]. IOC0387I E RIGHT PARENTHESIS ASSUMED [AFTER ill. IOC0387I E RIGHT PARENTHESIS ASSUMED [AFTER tll. Rechte Klammer wurde eingefügt [nach tl]. IOC0390I S MORE THAN n QUALIFIERS IN REFERENCE BEGINNING t. IOC0390I S IMPLEMENTATION RESTRICTION. QUALIFIED REFERENCE BEGINNING t CONTAINS MORE THAN n QUALIFIERS. EXCESSIVE QUALIFIERS IGNORED. Implementierungsbedingte Einschränkung. Mehrstufige Bezugnahme» beginnend mit t> enthält mehr als n Stufen. Überzählige Stufen wurden ignoriert. IOC0391I E LABEL VALUE LIST IGNORED. IOC0391I E LIST IN LABEL ATTRIBUTE INVALID IN DEFAULT STATEMENT. LIST IGNORED. In der DEFAULT-AnWeisung ist die Liste im LABEL-Attribut ungültig. Die Liste wurde ignoriert. IOC0392I S QUALIFICATION OR SUBSCRIPT ON ENTRY PREFIX IGNORED. IOC0392I S IMPLEMENTATION RESTRICTION. QUALIFIED/SUBSCRIPTED REFERENCE IN EtfTRY PREFIX INVALID. QUALIFIERCSVSUBSCRIPT LIST IGNORED. Implementierungsbedingte Einschränkung. Mehrstufige oder indizierte Bezugnahmen im ENTRY-Präfix sind ungültig und wurden ignoriert. IOC0393I E ADJUSTABLE EXTENT INVALID IN »RETURNS1. IOC0393I E ADJUSTABLE BOUND/LENGTH/SIZE IN ATTRIBUTE SPECIFICATION OF RETURNS ATTRIBUTE IGNORED. Veränderliche Grenze/Länge in der Attribut-Angabe des RETURNS-Attributes wurde ignoriert. IOC0394I E ARGUMENT SPECIFICATION t IGNORED. IOC039M E ERROR IN ARGUMENT SPECIFICATION IN INTERLANGUAGE OPTION, t IGNORED. Fehler in der Argumentangabe der Sprachenanpassungsoption, t wurde ignoriert. IOC0395I E PARAMETER SRECIFICATION t IGNORED. I0C0395I E ERROR IN PARAMETER SPECIFICATION IN INTERLANGUAGE OPTION, t IGNORED. Fehler in der Parameterangabe der Sprachenanpassungsoption, t wurde ignoriert. IOC0396I E INVALID OPTION t IGNORED. IOC0396I E ILLEGAL SPECIFICATION IN OPTIONS. OPTION IGNORED. Fehlerhafte Angabe in der OPTIONS-Option wurde ignoriert. IOC0397I E CONFLICTING 'OPTIONS1 SPECIFICATION. t ASSUMED. IOC0397I E CONFLICTING ItfTERLANGUAGE OPTIONS SPECIFIED. t ASSUMED . Widersprüchliche Sprachenanpassungsoptionen, t wurde eingefügt. IOC0398I E EXTENT SPECIFIED OUTSIDE VALUE OPTION. IOC0398I E LENGTH/SIZE/PRECISION IN DEFAULT STATEMENT OUTSIDE VALUE OPTION. RESULTS OF EXECUTION UNDEFINED. Länge/Genauigkeit in DEFAULT-AnWeisung wurde außerhalb der VALUE-Option angegeben. Ergebnis der Ausführung ist unbestimmt. IOC0399I E ATTRIBUTE t ILLEGAL IN DEFAULT STATEMEOT. IOC0399I E ATTRIBUTE t ILLEGAL IN DEFAULT STATEMENT. ATTRIBUTE IGNORED. Attribut t in DEFAULT-Anweisung ist ungültig und wurde ignoriert» IOC0400I U ATTRIBUTE FACTORING LEVEL EXCEEDS n. IOC040QI U IMPLEMENTATION RESTRICTION. LEVEL OF ATTRIBUTE FACTORING EXCEEDS n. PROCESSING TERMINATED. Klammerung von Attributen übersteigt n. Die Verarbeitung wurde abgebrochen. IOC0401I S MORE THAN n PARAMETERS. IOC0401I S IMPLEMENTATION RESTRICTION. NUMBER OF PARAMETERS EXCEEDS n. EXCESSIVE PARAMETERS IGNORED. Implementierungsbedingte Einschränkung. Die Anzahl der Parameter übersteigt n. Überzählige Parameter wurden ignoriert. IOC0402I E DECLARATION OF d IGNORED. IOC0402I E ATTRIBUTE INTERNAL ILLEGALLY USED IN ENTRY DECLARATION. DECLARATION OF d IGNORED. In der ENTRY-Vereinbarung wurde das INTERNAL-Attribut falsch angewendet. Die Vereinbarung von d wurde ignoriert. 96 PL1-QC Benutzungshinweise 10/89 DQS-4/ES IOC0403I S NESTED LIKE ATTRIBUTE IN DECLARATION OF d. IOC0403I S LIKE ATTRIBUTE IN DECLARATION OF d ILLEGALLY REFERS TO STRUCTURE ALSO DECLARED WITH LIKE ATTRIBUTE. STRUCTURE EXPANSION TRUNCATED AT LATTER LIKE ATTRIBUTE. Das LIKE-Attribut in der Vereinbarung von d bezieht sich auf . eine Struktur» die auch mit dem LIKE-Attribut vereinbart ist. Die Strukturerweiterung wurde am letzten LIKE-Attribut abgebrochen. IOC0404I S 'LIKE1 REFERENCE FOR d IS NOT A STRUCTURE. IOC040« S LIKE ATTRIBUTE IN DECLARATION OF d DOES NOT REFER, TO STRUCTURE. ATTRIBUTE IGNORED. Das LIKE-Attribut in der Vereinbarung von d bezieht sich nicht auf eine Struktur. Das Attribut wurde ignoriert. IOC0405I S •LIKE1 REFERENCE FOR d IS AHBIGUOUS. IOC0405I S LIKE ATTRIBUTE IN DECLARATION OF d CONTAINS AHBIGUOUS REFERENCE. UNPREDICTABLE SELECTION MADE. Das LIKE-Attribut in der Vereinbarung von d enthält eine mehrdeutige Bezugnahme. Eine Undefinierte Auswahl wurde vorgenommen. IOC0406I S LIKE ATTRIBUTE FOR d CONTAINS INVALID REFERENCE. IOC0406I S LIKE ATTRIBUTE IN DECLARATION OF d REFERS TO NON-STRUCTURE OR TO STRUCTURE ALSO CONTAINING LIKE ATTRIBUTE. FORMER LIKE ATTRIBUTE IGNORED. Das LIKE-Attribut in der Vereinbarung von d bezieht sich nicht auf eine Struktur oder bezieht sich auf eine Struktur> die auch das LIKE-Attribut enthält. Das erste LIKE-Attribut wurde ignoriert. IOC0407I U TOO MANY DEFAULT SPECIFICATIONS AND LIKE ATTRIBUTES. I0C0407I U IMPLEMENTATION RESTRICTION. TOO MANY DEFAULT SPECIFICATIONS AND LIKE ATTRIBUTES IN THIS BLOCK. PROCESSING TERMINATED. Implementierungsbedingte Einschränkung. Zu viele DEFAULT-Angaben und LIKE-Attribute in diesem Block. Die Verarbeitung wurde abgebrochen. IOC040SI S INVALID ATTRIBUTE SPECIFICATION IN VALUE OPTION. IQC0408I S CONFLICTING OR REPEATED OR INVALID ATTRIBUTE SPECIFICATION IN VALUE OPTION. RESULTS OF EXECUTION UNDEFINED. Die Attribute in der VALUE-Option widersprechen sich oder wiederholen sich oder sind ungültig. Die Ergebnisse der Ausführung sind Undefiniert. IOC0409I E PRECISION/SIZE/LENGTH OMITTED IN VALUE OPTION. IOC0409I E PRECISION/SIZE/LENGTH QMITTED FOR ATTRIBUTE IN VALUE OPTION. ATTRIBUTE IGNORED. Genauigkeit/Länge fehlt für das Attribut in der VALUE-Option. Das Attribut wurde ignoriert. IOC0410I S MULTIPLE DECLARATION OF d. IOC0410I S MULTIPLE DECLARATION OF NAME d IN THE SAME STRUCTURE, Mehrfache Vereinbarung des Namens d in derselben Struktur. IOC0411I S MULTIPLE DECLARATION OF d IGNORED. IOC0411I S MULTIPLE DECLARATION OF NAME d. DECLARATION IGNORED. Mehrfache Vereinbarung des Namens d. Vereinbarung wurde ignoriert. IOC0412I S MAJOR STRUCTURE LEVEL NUMBER ASSUMED TO BE ONE. IOC0412I S FIRST STRUCTURE LEVEL NUMBER NOT ONE. ONE HAS BEEN ASSUMED. Die erste Strukturstufennummer ist nicht 1. 1 wurde angenommen. IOC04I3I S LOGICAL LEVEL NUMBER OF MEMBER REDUCED TO n. IOC0413I S IMPLEMEhTTATION RESTRICTION. LOGICAL LEVEL OF STRUCTURE MEMBER EXCEEDS LIMIT. LEVEL NUMBER ASSUMED TO BE n. Implementierungsbedingte Einschränkung. Die logische Stufe eines Strukturmitglieds übersteigt die Grenze. Die Stufennummer wurde auf n gesetzt. IOC041« S SPECIFIED LEVEL NUMBER OF MEMBER REDUCED TO n. IOC041M S IMPLEMENTATION RESTRICTION. SPECIFIED STRUCTURE LEVEL NUMBER EXCEEDS LIMIT. LEVEL NUMBER ASSUMED TO BE n. Implementierungsbedingte Einschränkung. Die angegebene Strukturstufennummer übersteigt die Grenze. Die Stufennummer wurde auf n gesetzt. IOC0415I E INVALID REPETITION OF t. IOC0415I E REREATED SPECIFICATION OF ATTRIBUTE t IS INVALID. SECOND ATTRIBUTE IGNORED. Wiederholte Angabe des Attributes t ist ungültig• Das zweite Attribut wurde ignoriert. IOC0416I E ATTRIBUTE t FOR D IGNORED. IOC0416I E ATTRIBUTE t IN DECLARATION OF D IGNORED. Das Attribut t in der Vereinbarung von D wurde ignoriert. IOC0417I E AMBIGUOUS •DEFAULT' FOR d. t IGNORED. IOC0417I E AMBIGUOUS DEFAULT SPECIFICATION IS TO BE APPLIED ON DECLARATION OF d. ATTRIBUTE t IGNORED. Eine mehrdeutige DEFAULT-Angabe soll auf die Vereinbarung von d angewendet werden. Das Attribut t wurde ignoriert. 97 PL1-0C Benutzungshinweise 10/89 DÖS-4/ES IOC0418I E 'DEFAULT1 AMBIGUOUS FOR RANGE tl. t2 I6N0RED. IOC0418I E AMBIGUOUS DEFAULT SPECIFICATION IS TO BE APPLIED ON ANY 3MPLICIT OR CONTEKTUAL DECLARATION OF NAHES IN RANGE tl« ATTRIBUTE t2 IGNORED. Eine mehrdeutige DEFAULT-Angäbe soll auf eine implizite oder textabhängige Vereinbarung von Namen angewendet werden, die dem durch 'RANGECtD' definierten Bereich angehören. Das Attribut t2 wurde ignoriert. IOC0419I I NO MAIN OPTION ON EXTERNAL PROCEDURE. I0C0419I I MAIN OPTION NOT SPECIFIED FOR EXTERNAL PROCEDURE. Die MAIN-Option wurde für die externe Prozedur nicht angegeben. IOC0420I S PICTURE CHARACTER [AFTER tl1 REPLACED BY t. IOC0420I S ERROR IN PICTURE STRING. PICTURE CHARACTER [AFTER tl] REPLACED BY t. Fehler in der Abbildungskette. Abbildungszeichen [nach tl] wurde durch t ersetzt. IOC0421I S NO DIGIT SPECIFIER IN FIELD OF PICTURE t. IOC0421I S NO DIGIT SPECIFIER IN FIELD OF PICTURE STRING t. RESULTS OF EXECUTION UNDEFINED. Kein Ziffernabbildungszeichen in der Abbildungskette t. Die Ergebnisse der Ausführung sind Undefiniert. IOC0422I S PRECISION OF FIELD IN PICTURE t EXCEEDS n. IQC0422I S IMPLEMENTATION RESTRIKTION. PRECISION H1PLIHD FROM FIELD OF PICTURE STRING t EXCEEDS n. PICTURE IGNORED. Implementierungsbedingte Einschränkung. Die Stelligkeitsangabe in der Abbildungskette t übersteigt n. Das PICTURE-Attribut wurde ignoriert. I0C0423I S ILLEGAL SCALING FACTOR IN PICTURE t IGNORED. IOC0423I S ILLEGAL SCALING FACTOR IN PICTURE STRING t. SCALING FACTOR IGNORED. Ungültiger Skalierungsfaktor in der Abbildungskette t. Der Skalierungsfaktor wurde ignoriert. IOC0424I S INVALID PICTURE t. IOC0424I S ILLEGALLY SPECIFIED PICTURE CHARACTER(S) AFTER SCALING FACTOR IN PICTURE STRING t IGNORED. Falsch angegebene(s) Abbildungszeichen nach dem Skalierungsfaktor in der Abbildung skette t wurdetn) ignoriert. I0C0425I E INVALID PICTURE. t REPLACED BY 'X1. IOC0425I E ILLEGAL CHARACTER IN CHARACTER STRING PICTURE. 'X1 SUBSTITUTED FOR t. Ungültiges Zeichen in der Zeichenketten-Abbildungskette. t wurde durch setzt. 'X' er- IOC0426I E PRECISION OF d REDUCED TO n. IOC0426I E IMPLEMENTATION RESTRICTION. PRECISION OF d EXCEEDS LIMIT. PRECISION n ASSUMED. Implementierungsbedingte Einschränkung. Die Genauigkeit von d übersteigt die Grenze. Die Genauigkeit n wurde angenommen. IÖC0427I E INVALID 'RANGE1 t IGNORED. IOC0427I E ERROR IN RANGE OPTION t. OPTION IGNORED. Fehler in RANGE-Option t. Die Option wurde ignoriert. IOC0428I E ZERO VALUE ASSUMED FOR SCALE FACTOR. IOC0428I E IMPLEMENTATION RESTRICTION. SCALE FACTOR EXCEEDS LIMIT. SCALE FACTOR ZERO ASSUMED. Implementierungsbedingte Einschränkung. Skalierungsfaktor übersteigt Grenze. Skalierung sfaktor Null wurde angenommen. IOC0429I E t WITHIN 'RETURNS1 IGNORED. IOC0429I E IMPLEMENTATION RESTRICTION. ILLEGAL ATTRIBUTE t IN RETURNS ATTRIBUTE IGNORED. Implementierungsbedingte Einschränkung. Ungültiges Attribut t im RETURNS-Attribut wurde ignoriert. IOC0430I S d HAS BOUND GREATER THAN n. IOC0430I S IMPLEMENTATION RESTRICTION. UPPER BOUND IN DIMENSION ATTRIBUTE OF d GREATER THAN n. BOUND n ASSUMED. Implementierungsbedingte Einschränkung. Die obere Grenze im Dimensionsattribut von d ist größer als n. Die Grenze n wurde angenommen. IQC0431I S d HAS BOUND LESS THAN n. IOC0431I S IMPLEMENTATION RESTRICTION. LOWER BOUND IN DIMENSION ATTRIBUTE OF d LESS THAN n. BOUND n ASSUMED. Implementierungsbedingte Einschränkung. Die untere Grenze im Dimensionsattribut von d ist kleiner als n. Die Grenze n wurde angenommen. IOC0432I S LOWER BOUND n OF d EXCEEDS UPPER BOUND. I0C0432I S LOWER BOUND EXCEEDS UPPER BOUND IN DIMENSION ATTRIBUTE OF d. BOUNDS INTERCHANGED. Untere Grenze übersteigt obere Grenze im Dimensionsatt-ribut von d. Die Grenzen wurden ausgetauscht. IOC0433I S d HAS MORE THAN n DIMENSIONS. IOC0433I S IMPLEMENTATION RESTRICTION. NUMBER OF DIMENSIONS IN DECLARATION OF d EXCEEDS n. MAXIMUM ASSUMED. Implementierungsbedingte Einschränkung. Die Anzahl der Dimensionen in der Vereinbarung von d übersteigt n. Das Maximum wurde angenommen. 98 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0434I S t NOT AN ENTRY EXPRESSION. IGNORED. IOC0434I S t IN GENERIC ATTRIBUTE IS NO ENTRY EXPRESSION. EXPRESSION IGNORED. t im GENERIC-Attribut ist kein ENTRY-Ausdruck. Der Ausdruck wurde ignoriert. IOC0435I S AMBIGÜOUS REFERENCE t IN 'GENERIC1. IOC0435I S AMBIGÜOUS REFERENCE t IN GENERIC ATTRIBUTE. GENERIC SELECTION UNPREDICTABLE. Mehrdeutige Bezugnahme t im GENERIC-Attribut. GENERIC-Auswahl ist Undefiniert. IOC0436I E ILLEGAL QUALIFICATION OF ATTRIBUTE t FOR d. IOC0436I E ILLEGAL QUALIFICATION OF ATTRIBUTE t FOR MEMBER d IN GENERIC ATTRIBUTE. QUALIFICATION IGNORED. Ungültige Angabe des Attributes t für das Mitglied d im GENERIC-Attribut. Das ungültige Attribut wurde ignoriert. IOC0437I S ATTRIBUTE t FOR d INVALID. IOC0437I S ILLEGAL ATTRIBUTE SPECIFIED FOR MEMBER d IN GENERIC ATTRIBUTE. ILLEGAL ATTRIBUTE IGNORED. Ungültiges Attribut wurde für das Mitglied d im GENERIC-Attribut angegeben. ungültige Attribut wurde ignoriert. Das IOC0438I S t CONFLICTS WITH PREVIOUS ATTRIBUTES FOR d. IOC0438I S CONFLICTING ATTRIBUTES OF MEMBER d IN GENERIC ATTRIBUTE. LAST OF CONFLICTING ATTRIBUTES IGNORED. Widersprüchliche Attribute des Mitgliedes d im GENERIC-Attribut. Das letzte der sich widersprechenden Attribute wurde ignoriert. IOC0439I E t IN VALUE LIST OF d NOT A LABEL CONSTANT. IOC0439I E t IN LABEL ATTRIBUTE OF NAME d IS NOT A LABEL CONSTANT AND IS IGNORED. t im LABEL-Attribut des Namens d ist keine LABEL-Konstante und wurde ignoriert. IOC0440I S ADJUSTABLE EXTENTS FOR d INVALID WITH 'STATIC1. IOC0440I S ADJUSTABLE LENGTH/BOUND/SIZE CONFLICTS WITH STATIC ATTRIBUTE IN DECLARATION OF dLENGTH/BOUND/SIZE n ASSUMED. Veränderliche Länge/Grenze widerspricht dem STATIC-Attribut in der Vereinbarung von d. Die Lange/Grenze n wurde angenommen. IOC0441I S ADJUSTABLE EXTENT INVALID FOR PARAMETER d. I0CQ441I S ADJUSTABLE LENGTH/BOUND/SIZE CONFLICTS WITH PARAMETER ATTRIBUTE IN DECLARATION OF d. LENGTH/BOUMO/SIZE •*• ASSUMED. Veränderliche Länge/Grenze widerspricht dem Parameterattribut in der Vereinbarung von d. Die Länge/Grenze '*' wurde angenommen. IOC0442I S ADJUSTABLE EXTENT INVALID FOR 'BASED1 d. IOC0<*42I S ADJUSTABLE LENGTH/BOUND/SIZE CONFLICTS WITH BASED STORAGE CLASS IN DECLARATION OF d. LENGTH/BOUND/SIZE n ASSUMED . Veränderliche Länge/Grenze widerspricht dem BASED-Attribut in der Vereinbarung von d. Die Lange/Grenze n wurde angenommen. I0CQ443I S '*' EXTENT INVALID FOR d NOT 'CONTROLLED' OR »PARAMETER1. IOC0443I S d DECLARED WITH '*'-LENGTH/BOUND/SIZE BUT NOT WITH PARAMETER OR CONTROLLED ATTRIBUTE. LENGTH/BOUND/SIZE n ASSUMED. d war mit der '*'-Länge/Grenze vereinbart worden, aber nicht mit dem Parameteroder CONTROLLED-Attribut. Die Länge/Grenze n wurde angenommen. IOC0444I S 'REFER' EXTENT INVALID FOR NON-BASED VARIABLE d. I0C0444I S REFER OPTION ILLEGALLY USED IN DECLARATION OF d NOT CONTAINED IN A BASED STRUCTURE. LENGTH/BOUND/SIZE n ASSUMED. Die REFER-Option ist in der Vereinbarung von d ungültig» weil sie nicht in einer BASED-Struktur enthalten ist. Die Länge/Grenze n wurde angenommen. IOC0445I S AMBIGÜOUS REFER OBJECT t IN DECLARATION OF d. IOC0445I S REFER OBJECT t IN DECLARATION OF d IS AMBIGÜOUS. UNPREDICTABLE SELECTION. Das REFER-Objekt t in der Vereinbarung ist mehrdeutig. Die Auswahl ist Undefiniert. IOC0446I W REFER OBJECT t FOR d MAY BE INVALID. IQCQ446I W WHEN PADDING OCCURS IN STRUCTURE MAPPING USE OF REFER OPTION WITH OBJECT t IN DECLARATION OF d WILL BE INVALp AND MAY CAUSE UNDEFINED RESULTS. Wenn aufgrund der Strukturvereinbarung die Datengruppierung ungenutzten Speicherplatz enthält, ist die Benutzung der REFER-Option mit dem Objekt t in der Vereinbarung von d ungültig und kann Undefinierte Ergebnisse hervorbringen. IOC0447I S REFER OBJECT t FOR d NOT PREVIOUS SCALAR ITEM. IOC0447I S REFER OBJECT t IN DECLARATION OF d IS NOT A PREVIOUSLY DECLARED SCALAR ELEMENT OF THE SAME STRUCTURE. LENGTH/BOUND/SIZE n ASSUMED. Das REFER-Objekt t in der Vereinbarung von d ist kein vorher vereinbartes skalares Element derselben Struktur. Die Länge/Grenze n wurde angenommen. IOC0448I I d ASSUMED TO BE NON-CONNECTED. I0C0448I I ARRAY PARAMETER d ASSUMED TO BE NON-CONNECTED. OPTIMIZATION MAY BE INHIBITED. Der Feldparameter d wurde nicht-zusammenhängend gespeichert. Die Optimierung kann verhindert worden sein« 99 PL1-0C Benutzung»hinweise 10/89 D0S-4/ES I0Ctt9I E DEFAULT 'BUILTIN' OR 'GENERIC1 FOR d IGNORED. IOC0449I E BÜILTIN OR GENERIC ATTRIBUTE TO BE APPLIED BY DEFAULT STATEMEHT TO IMPLICITLY DECLARED NAME d CONFLICTS WITH CONTECT. ATTRIBUTE IGNORED. Das BUILTIN- oder GENERIC-Attribut, das durch die DEFAULT-Anweisung auf den implizit vereinbarten Namen d angewendet wird, widerspricht dem Kontext. Das Attribut wurde ignoriert. IOC0450I S AGGREGATES INVALID IN GENERIC DESCRIPTOR LIST FOR t. IOC0450I S IMPLEMENTATION RESTRICTION. ILLEGAL SPECIFICATION OF AGGREGATE FOR MEMBER t IN GENERIC ATTRIBUTE. MEMBER IGNORED. Implementierungsbedingte Einschränkung. Ungültige Angabe einer Gruppierung für das Mitglied t im GENERIC-Attribut. Das Mitglied wurde ignoriert. I0CQ451I S 'INITIAL1 INVALID FOR STATIC EKTRY VARIABLE. IOC0451I S INITIAL ATTRIBUTE INVALID FOR STATIC ENTRY VARIABLE d. NO INITIALIZATIOK PERFORMED. Das INITIAL-Attribut ist ungültig für die' STATIC ENTRY-Variable d. Keine itialisierung wurde nicht durchgeführt. In- IOC0452I S ENTRY REFERENCE t INVALID IN 'GENERIC1. IOC0452I S IMPLEMENTATION RESTRICTION. BASED/DEFINED/SUBSCRIPTED ENTRY REFERENCE IN GENERIC ATTRIBUTE ILLEGAL. ENTRY REFERENCE IGNORED. Implementierungsbedingte Einschränkung. BASED-> DEFINED -oder indizierte ENTRYBezugnähme im GENERIC-Attribut ist ungültig. Die ENTRY-Bezugnähme wurde ignoriert. IOC0453I S d IS NOT 'BASED1. I0C0453I S d USED IN LOCATE STATEMENT BUT NOT 'BASED' [. STATEMENT IGNORED].1 d wurde in der LOCATE-Anweisung benutzt, ist aber nicht 'BASED , [Die Anweisung wurde ignoriert.1 IOC045« S d IS NOT LEVEL ONE. IOC0454I S d USED IN ALLOCATE STATEMENT BUT NOT LEVEL-ONE NAME. THIS AND ANY FOLLOWING ALLOCATE ITEMS IGNORED. d wurde in der ALLOCATE-Anweisung angegeben, ist aber kein Name der Stufe 1. Dieses und alle folgenden ALLOCATE-Elemente wurden ignoriert. IQC0455I S d IS NOT 'BASED1 OR •CONTROLLED'. IOC0455I S d USED IN ALLOCATE STATEMENT BUT NOT 'BASED1 OR 'CONTROLLED'. THIS AND ANY FOLLOWING ALLOCATE ITEMS IGNORED. d wurde in der ALLOCATE-Anweisung benutzt» ist aber nicht 'BASED' oder 'CONTROLLED'. Dieses und alle folgenden ALLOCATE-Elemente wurden ignoriert« I0C0456I E FINAL MEMBERS MISSING FROM STRUCTURE. IOC0456I E FINAL MEMBERCS) MISSING FROM STRUCTURE DESCRIPTION IN ALLOCATE STATEMENT. COMPLETED BY DECLARE STATEMENT SPECIFICATION(S). Die letzten Mitglieder der Strukturbeschreibung fehlen in der ALLOCATE-Anweisung. Die ALLOCATE-Anweisung wurde mit Hilfe der DECLARE-Anweisung vervollständigt. IOC0457I E LEVEL NUMBER PRECEDING d IGNORED. I0C0457I E ILLEGALLY SPECIFIED LEVEL NUMBER PRECEDING d IGNORED. Ungültig angegebene Stufennummer vor d wurde ignoriert. I0CQ458I E DIMENSION ATTRIBUTE IOC0458I E DIMENSION ATTRIBUTE ALLOCATE STATEMENT. Dimensionsattribut ALLOCATE-Anweisung. MISSING FOR d. NOT SPECIFIED FOR DIMEN5I0NED STRUCTURE MEMBER d IN DECLARED DIMENSIONS USED. fehlt für das dimensionierte Strukturmitglied d Die vereinbarten Dimensionen wurden benutzt. in der IOC0459I S INCORRECT NUMBER OF DIMENSIONS FOR d. I0C0459I S INCORRECT NUMBER OF DIMENSIONS FOR d IN ALLOCATE STATEMENT. Falsche Anzahl von Dimensionen für d in der ALLOCATE-Anweisung. IOC0460I S CONFLICTING ATTRIBUTE t FOR d IGNORED. IOC0460I S CONFLICTING ATTRIBUTE t FOR d IN ALLOCATE STATEMENT. ATTRIBUTE IGNORED. Widersprechendes Attribut t für d in der ALLOCATE-Anweisung. Das Attribut wurde ignoriert. IOC0461I E ILLEGAL ATTRIBUTE t FC R d IGNORED. IOC0461I E ILLEGAL ATTRIBUTE t FC k d IN ALLOCATE STATEMENT. ATTRIBUTE IGNORED. Ungültiges Attribut t für d in der ALLOCATE-Anweisung• Das Attribut wurde ignoriert. IOC0462I E LEVEL NUMBER FOR t REPLACED BY ONE. IOC0462I E INCORRECT LEVEL NUMBER FOR t IN ALLOCATE STATEMENT. NUMBER ONE ASSUMED. Falsche Stufennummer für t in der ALLOCATE-Anweisung. Die Nummer 1 wurde angenommen . IOC0463I E STRUCTURING ERROR FOLLOWING d. IOC0463I E INCORRECT STRUCTURING AFTER t IN ALLOCATE STATEMENT. DECLARED STRUCTURING USED FOR INVALID PART OF STRUCTURE. Falsche Strukturierung nach t in der ALLOCATE-Anweisung. Die vereinbarte Strukturierung wurde für den ungültigen Teil der Struktur benutzt. 100 PL1-0C Benutzungshinweise 10/89 D05-4/ES IOC0464I E ILLEGAL ATTRIBUTECS) FOR IBASEDI d IGNORED. I0C0464I E ILLEGAL ATTRIBUTECS) SPECIFIED FOR BASED VARIABLE d IN ALLOCATE STATEMENT. ATTRIBUTECS) IGNORED. Ungültige Attribute wurden für die BASED-Variable d in der ALLOCATE-Anweisung angegeben. Die Attribute wurden ignoriert. IOC0465I E «SET1 OR 'IN' INVALID FOR 'CONTROLLED1 d. IOC0465I E SET OR IN OPTION CONFLICTS WITH CONTROLLED VARIABLE d IN ALLOCATE STATEMENT. OPTION IGNORED. SET- oder IN-Option widerspricht der COKTROLLED-Variablen d in der ALLOCATEAnweisung. Die Option wurde ignoriert. IOC0466I E "CHAR1 'BIT' OR 'AREA1 WITHOUT EXTENT. IOC0466I E MISSING LENGTH/SIZE IN CHARACTER/BIT/AREA ATTRIBUTE IN ALLOCATE STATEMENT. ATTRIBUTE IGNORED. Fehlende Länge im CHARACTER/BIT/AREA-Attribut in der ALLOCATE-Anweisung. Attribut wurde ignoriert. Das IOC0467I W d IS STRING OVERLAY DEFINED, I0C0467I W STRING OVERLAY DEFINING IN EFFECT FOR d. NOT COMPATIBLE WITH THE PL1 NORMAL COMPILER. Für d wurde überlagerndes Definieren von Ketten bewirkt. Das ist nicht kompatibel mit dem PL1-Normalcompiler. IOC0463I S STRING LENGTH OR AREA SIZE REDUCED TO MAX. IOC0468I S IMPLEMENTATION RESTRICTION. STRING LENGTH OR AREA SIZE EXCEEDS LIMIT. IMPLEMENTATION MAXIMUM ASSUMED. Implementierungsbedingte Einschränkung. Ketten- oder Bereichslänge übersteigt die Grenze. Das Maximum wurde angenommen. IOC0469I S d DEFINED ON 'DEFINED1 OR 'BASED1. I0C0469I S d ILLEGALLY SPECIFIED TO BE DEFINED ON BASED OR DEFINED VARIABLE. DEFINED ATTRIBUTE IGNORED. d wurde bei einer BASED- oder DEFINED-Variablen als 'DEFINED' angegeben. DEFINED-Attribut wurde ignoriert. Das IOC0470I S d ISUB-DEFINED ON CROSS-SECTION. IOC0470I S d ILLEGALLY SPECIFIED TO BE ISUB-DEFINED ON A CROSS-SECTION. DEFINED ATTRIBUTE IGNORED. d wurde als NSUB-DEFINED in einem Teilfeld angegeben. Das DEFINED-Attribut wurde ignoriert. IOC0471I S d DEFINED WITH WRONG NUMBER 0F SUBSCRIPTS. IOC0471I S d ILLEGALLY SPECIFIED TO BE ISUB-DEFINED ON A BASE WITH WRONG NUMBER OF SUBSCRIPTS. DEFINED ATTRIBUTE IGNORED. d wurde als nSUB-DEFINED bei einer Basis mit falscher Anzahl von Indizes angegeben. Das DEFINED-Attribut wurde ignoriert. IOC0472I S d ISUB-DEFINED CONFLICTS WITH 'POSITION'. I0C0472I S d ILLEGALLY SPECIFIED TO BE ISUB-DEFINED WITH THE POSITION ATTRIBUTE. DEFINED ATTRIBUTE IGNORED. v d wurde als nSUB-DEFINED mit dem POSITION-Attribut angegeben. Das DEFINED-Attribut wurde ignoriert. IOC0473I S MAPPING OF DEFINED ITEM d CONFLICTS WITH BASE. IOC0473I S MAPPING OF ELEMENT d OF ISUB-DEFINED ARRAY CONFLICTS WITH THAT OF BASE. DEFINED ATTRIBUTE IGNORED. Das Element d des nSUB-definierten Feldes widerspricht der Basis. Das DEFINEDAttribut wurde ignoriert. IOC0474I E CONFLICT BETWEEN DEFINED ITEM d AND BASE ATTRIBUTES IGNORED. IOC0474I E ATTRIBUTES OF ISUB-DEFINED ITEM d CONFLICT WITH ATTRIBUTES OF BASE. CONFLICT IGNORED. Die Attribute des nSUB-definierten Elementes d widersprechen den Attributen der Basis. Der Widerspruch wurde ignoriert. IOC0475I E SIMPLE DEFINING ASSUMED AS ATTRIBUTES OF d CONFLICT WITH BASE, IOC0475I E ATTRIBUTES OF DEFINED ITEM d CONFLICT WITH ATTRIBUTES OF BASE. SIMPLE DEFINING ASSUMED. Die Attribute des DEFINED-Elementes d widersprechen den Attributen der Basis. Einfaches Definieren wurde angenommen. IOC0476I S d DEFINED ON NON-CONNECTED AGGREGATE. IOC0476I S d ILLEGALLY SPECIFIED TO BE STRING OVERLAY DEFINED ON A NON-CONNECTED AGGREGATE. DEFINED ATTRIBUTE IGNORED. d wurde fälschlicherweise als kettenüberlagernd-definiert mit einer nicht-zusammenhängend gespeicherten Datengruppierung als Basis angegeben. Das DEFINED-Attribut wurde ignoriert. IOC0477I S ATTRIBUTES OF DEFINED ITEM d CONFLICT WITH BASE. IOC0477I S ATTRIBUTES OF DEFINED ITEM d CONFLICT WITH ATTRIBUTES OF BASE. DEFINED ATTRIBUTE IGNORED. Die Attribute des DEFINED-Elementes d widersprechen den Attributen der Basis. Das DEFINED-Attribut wurde ignoriert. 101 PL1-0C Benutzungshinweise 10/89 D0S-4/ES I0C0478I S »POSITION1 VALUE FOR d LESS THAN ONE OR EXCEEDS n. I0CQ478I S IMPLEMENTATION RESTRICTION. VALUE IN POSITION ATTRIBUTE FOR d IS LESS THAN ONE OR GREATER THAN n. POSITION ATTRIBUTE IGNORED. Implementierungsbedinpte Einschränkung. Der Wert im POSITION-Attribut für d ist kleiner als 1 oder größer als n. Das POSITION-Attribut wurde ignoriert« IOC0479I E ERROR IN DEFINED ATTRIBUTE FOR d. IOC0479I E ERROR IN USE OF DEFINED ATTRIBUTE. ATTEMPT TO ASSUME ST RING OVERLAY DEFINING. Fehler im DEFINED-Attribut. Es wurde versucht» kettenüberlagerndes Definieren anzunehmen. IOC0480I S AMBIGUOUS BASE REFERENCE IN 'DEFINED1 FOR d. IOC0480I S AMBIGUOUS BASE REFERENCE IN DEFINED ATTRIBUTE FOR d. UNPREDICTABLE SELECTION MADE. Mehrdeutige Basisbezugnahme im DEFINED-Attribut für d. Eine Undefinierte Auswahl wurde getroffen. IOC0481I S NON-VARIABLE BASE IN 'DEFINED1 FOR d. IOC04811 S d ILLEGALLY SPECIFIED TO BE DEFINED ON A NON-VARIABLE BASE. DEFINED ATTRIBUTE IGNORED. d wurde bei einer Basis> die keine Variable ist* als 'DEFINED1 angegeben. Das DEFINED-Attribut wurde ignoriert. IOC0482I W SIMPLE DEFINING IN EFFECT FOR d. IOC0482I W SIMPLE DEFINING IN EFFECT FOR d. ADD t TO DECLARATION IF STRING OVERLAY DEFINING INTENDED. Einfaches Definieren gilt für d. In die Vereinbarung ist t einzufügen» wenn kettenüberlagerndes Definieren beabsichtigt ist. I0C0483I E STRING OVERLAY DEFINING ASSUMED FOR d. IOC0483I E STRING LENGTK OF DEFINED ITEM d EXCEEDS BASE ITEM LENGTH. STRING OVERLAY DEFINING ASSUMED. Die Länge der Kette des DEFINED-Elementes d Übersteigt die Länge des Basis-Elementes. Es wurde kettenüberlagerndes Definieren angenommen. IOC0484I E MAXIMUM LENGTHS OF DEFINED ITEM d AND BASE DIFFER. IOC0484I E MAXIMUM LENGTH OF VARYING STRING OR AREA SIZE IN SIMPLE DEFINING OF ITEM d NOT THE SAME AS IN CORRESPONDING BASE ITEM. RESULTS OF EXECUTION UNDEFINED. Die maximale Länge der VARYING-Kette oder der AREA-Variablen beim einfachen Definieren des Elementes d ist nicht die gleiche wie im korrespondierenden Basiselement. Die Ergebnisse der Ausführung sind Undefiniert« IOC0485I S ILLEGAL USE OF t IN £ALL STATEMENT. IOC0485I S ILLEGAL USE OF BUILT-IN FUNCTION t IN CALL STATEMENT t. STATEMENT IGNORED 2. Falsche Anwendung der Standardfunktion t in der CALL-AnWeisung. [die Anweisung wurde ignoriert.1 I0C0486I S ILLEGAL USE OF d IN 'FETCH1 OR «RELEASE1. IOC0486I S ILLEGAL USE OF d IN FETCH OR RELEASE STATEMENT l. STATEMENT IGNORED1. Falsche Anwendung von d in der FETCH- oder RELEASE-Anweisung. [Die Anweisung wurde ignoriert. ] IOC0487I E ILLEGAL USE OF SUBSCRIPTED LABEL PREFIX t. IOC0487I E SUBSCRIPTED LABEL PREFIX t DOES NOT REFER TO A NON-STATIC LABEL ARRAY. PREFIX IGNORED. Die indizierte LABEL-Bezugnähme t enthält nicht den Namen einer Nicht-STATICLABEL-Feldvariablen. Das Präfix wurde ignoriert. IOC0488I S d TO BE INITIALIZED BY BOTH PREFIX AND 'INITIAL'. IOC0488I S LABEL VARIABLE d IS TO BE INITIALIZED BY BOTH LABEL PREFIX AND INITIAL ATTRIBUTE. INITIAL ATTRIBUTE IGNORED. Die LABEL-Variable d soll sowohl durch Markenpräfix als auch durch das INITIALAttribut initialisiert werden. Das INITIAL-Attribut wurde ignoriert. I0C0489I S CONFLICT IN USE OF d AS t. IOC0489I S USE OF d AS t CONFLICTS HITH XTS DECLARED ATTRIBUTES [. STATEMENT IGNORED]. Die Anwendung von d als t widerspricht den vereinbarten Attributen. [Die Anweisung wurde ignoriert.1 IOC0490I E d HAS INVALID ATTRIBUTES. OPTION IGNORED. IOC049OI E ATTRIBUTES OF d CONFLICT HITH USE IN ENVIRONMENT OPTION. OPTION IGNORED. Die Attribute von d widersprechen der Anwendung in der ENVIRONMENT-Option. Die Option wurde ignoriert. I0C0491I S USE OF d CONFLICTS WITH PREVIOUS DECLARATION. I0C0491I S CONFLICTING OR MULTIPLE DECLARATION OF LABEL CONSTANT d. LABEL PREFJX COOTAINING IT IGNORED. Widersprechende oder mehrfache Vereinbarung der LABEL-Konstanten d. Das Markenpräfix wurde ignoriert. IOC0492I E t ASSUMED TO BE EXTERNAL ENTRY. IOC0492I E UNDECLARED NAME t* EXTERNAL ENTRY ASSUMED. Nicht vereinbarter Name t. Er wird als EXTERNAL ENTRY-Konstante angenommen. 102 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0493I S t ASSUMED TO BE AN ARRAY. IOC0493I S CQNTEOTUAL BUILTIN DECLARATION OF t CONFLICTS WITH DIMEHSION ATTRJBimE FROM •DEFAULT1. ASSUMED TO BE AN ARRAY. Die textabhängige BUILTIN-Vereinbarung von t widerspricht dem Dimensionsattribut von 'DEFAULT1 und wurde als ein Feld angenommen. IOC0494I S CONFLICT BETWEEN ATTRIBUTES OF d AND USE AS t. I0C0494I S USE OF d AS t IN DIMENSION ATTRIBUTE CONFLICTS WITH ITS DECLARED ATTRIBUTES. BOUNDS OF n TO 10 ASSUMED. Die Anwendung von d als t im Dimensionsattribut widerspricht den vereinbarten Attributen. Die Grenzen von n bis 10 wurden angenommen. IOC0495I E CONFLICT BETWEEN ATTRIBUTES OF d AND USE AS t. IOC0495I E USE OF d AS t IN LOCATOR QUALIFICATION CONFLICTS WITH ITS DECLARED ATTRIBUTES. QUALIFICATION IGNORED. Die Anwendung von d als t in der Zeigerzuordnung widerspricht den vereinbarten Attributen. Die Zuordnung wurde ignoriert. IOC0496I S CONFLICT BETWEEN ATTRIBUTES OF d AND USE AS t. IOC0496I S USE OF d AS t IN ADJUSTABLE STRING LENGTH OR AREA SIZE SPECIFICATION CONFLICTS WITH ITS DECLARED ATTRIBUTES. DEFAULT LENGTH/SIZE ASSUWED. Die Anwendung von d als t in der Angabe der dynamischen Ketten- oder AREA-Länge widerspricht den vereinbarten Attributen« Die Standardlänge wurde angenommen. IOC0497I S CONFLICT BETWEEN ATTRIBUTES OF d AND USE AS t. IOC0497I S USE OF d AS t IN DEFINED/INITIAL/POSmON ATTRIBUTE CONFLICTS WtTH ITS DECLARED ATTRIBUTES. ATTRIBUTE IGNORED. Die Anwendung von d als t im DEFINED/INITIAL/POSITION-Attribut widerspricht den vereinbarten Attributen. Das Attribut wurde ignoriert. IOC0498I E CONFLICT BETWEEN ATTRIBUTES OF d AND USE AS t. IOC0498I E USE OF d AS t CONFLICTS WITH ITS DECLARED ATTRIBUTES. ATTRIBUTES ASSUMED ACCORDING TO CONTTEXT. Die Anwendung von d als t widerspricht den vereinbarten Attributen. Die Attribute werden entsprechend dem Kontext angenommen. IOC0499I E CONFLICT BETWEEN ATTRIBUTES OF d AND USE AS t. IOC0499I E USE OF d AS t IN SET OR IN OFTION CONFLICTS WITH ITS DECLARED ATTRIBUTES. OPTION IGNORED. Die Anwendung von d als t in der SET- oder IN-Option widerspricht den vereinbarten Attributen. Die' Option wurde ignoriert. IOC0500I S d INVALID IN TARGET POSITION. IOC0500I S ILLEGAL USE OF NON-VARIABLE NAME d AS TARGET [. STATEMENT IGNORED3. Falsche Anwendung eines Nicht-Variablennamens d als Ziel. [Die Anweisung wurde ignoriert. 1 IOC0501I S t NOT DECLARED BUT USED AS QUALIFIER. IOC0501I S QUALIFIED REFERENCE BEGINNING WITH t CONTAINS UNDECLARED NAME [. STATEMENT IGNORED1. Die mehrstufige Bezugnahme beginnend mit t enthält einen nicht vereinbarten Namen. [Die Anweisung wurde ignoriert.] IOC0502I S ILLEGAL USE OF d AS BUILTIN NAME OR MISSING ARGUMENT LIST. IOC0502I S d IS EITHER ILLEGALLY DECLARED TO BE A BUILTIN NAME OR A BUILTIN NAME ILLEGALLY USED WITHOUT ARGUMENT LIST I. STATEMENT IGNORED 1. d soll entweder fälschlicherweise als BUILTIN-Name vereinbart werden» oder d ist ein BUILTIN-Name und wurde ohne Argumentliste verwendet. [Die Anweisung wurde ignoriert.] IOC0503I S d NOT LABEL KNOWN IN 1 CURRENT BLOCK. IOC0503I S NAME FOLLOWING 'GOTO IS NOT A LABEL KNOWN IN THE CURRENT BLOCK [. STATEMENT IGNORED]. Der Name, der dem GOTO folgt» ist keine Marke in dem entsprechenden Block. [Die Anweisung wurde ignoriert.] IOC0504I S ILLEGAL USE OF d AS PSEUDO-VARIABLE. I0C0504I S ILLEGAL USE OF d AS PSEUDO-VARIABLE. Falsche Anwendung von d als Pseudovariable. IOC0505I S d INVALID IN FRÖN OPTION. IOC0505I S INVALID REFERENCE d IN FROM OPTION [. STATEMENT IGNORED 1. Falsche Bezugnahme d in der FROM-Option. [Die Anweisung wurde ignoriert.] IOC0506I S ILLEGAL USE OF d AS CONTROL VARIABLE IN «DO1. IOC0506I S ILLEGAL USE OF d AS CONTROL VARIABLE IN DO SPECIFICATION. SIMPLE DO STATEMENT ASSUMED. Falsche Anwendung von d als Laufvariable in der DO-Spezifikation. Eine einfache DO-Klausel wurde angenommen. IOC0507I W t IS NOT IMPLICITLY "BUILTIN1. I0C0507I W 2MPLICIT DECLARATION OF BUILT-IN FUNCTION NAME t DOES NOT IMPLY THE BUILTIN ATTRIBUTE. Die implizite Vereinbarung des Standardfunktionsnamens t schließt nicht BUILTIN-Attribut ein. das 103 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0508I 3 REFERENCE BEGINNING t IS AMBIGUOUS. IOC050SI S AMBIGUOUS REFERENCE TO A STRUCTURE MEMBER BEGINNING t. UNPREDICTABLE 5ELECTI0N MADE. Mehrdeutige Bezugnahme auf ein Strukturmitglied beginnend mit t. Die Auswahl ist Undefiniert. IOC0509I S SURPLUS SUBSCRIPTS FOR d. IOC0509I S SURPLUS SUBSCRIPTS FOR ENTRY VARIABLE d [. STATEMENT IGNORED]. Zu viele Indizes für die ENTRY-Variable d. [Die Anweisung wurde ignoriert.] IOC0510I S INCORRECT NUMBER OF ARGUMENTS FOR ENTRY. 11X05101 S INCORRECT NUMBER OF ARGUMENTS IN ENTRY REFERENCE E. STATEMENT IGNOREDL Falsche Anzahl von Argumenten in der ENTRY-Bezugnähme. [Die Anweisung wurde ignoriert. 1 IOC0511I S INVALID 'GOTO1 INTO ITERATIVE 'DO1, IOC0511I S BRANCH INTO ITERATIVE GROUP SPECIFIED BY GOTO STATEMENT IS INVALID [. STATEMENT IGNOREDJ. Ein Sprung in eine iterative Gruppe durch eine GOTO-AnWeisung ist ungültig. [Die Anweisung wurde ignoriert.1 I0C0512I S INVALID 'GOTO1 TO FORMAT STATEMENT. IOC0512I S BRANCH TO FORMAT STATEMENT SPECIFIED BY GOTO STATEMENT IS INVALID [. STATEMEOT IGNOREDJ. Ein Sprung zu einer FORMAT-Anweisung durch eine GOTO-Anweisung ist ungültig. [Die Anweisung wurde ignoriert.1 IOC0513I S NO SIMPLE AREA REFERENCE IN 'OFFSET1 WITHIN "RETURNS1. IOC0513I S OFFSET ATTRIBUTE IN RETURNS ATTRIBUTE DOES NOT CONTAIN A SIMPLE AREA REFERENCE. INVALID SPECIFICATION IGNORED. Das OFFSET-Attribut im RETURNS-Attribut enthält keine einfache AREA-Bezugnähme. Die ungültige Angabe wurde ignoriert. IOC0514I S INVALID INITIAL ATTRIBUTE IGNORED. IOC0514I S SCALAR DECLARATION ILLEGALLY CONTAIKS NON-SCALAR INITIAL ATTRIBUTE. ATTRIBUTE IGNORED. Eine skalare Vereinbarung enthält ein nicht-skalares INITIAL-Attribut. Das Attribut wurde ignoriert. IOC0515I S THIS PSEUDO-VARIABLE IS INVALID AS CONTROL VARIABLE. IOC0515I S SPECIFIED PSEUDO-VARIABLE NOT ALLOWED AS COOTROL VARIABLE IN DO SPECIFICATION. SIMPLE DO STATEMENT ASSUMED. Die angegebene Pseudovariable ist nicht als Laufvariable in einer DO-Spezifikation zulassig. Eine einfache DO-Klausei wurde angenommen. IOC05I6I U STATEMENT TOO LONG. COMPILATION TERMINATED IN PHASE P. IOC0516I U IMPLEMENTATION RESTRICTION. STATEMENT TOO LONG. COMPILATION TERMINATED IN PHASE p. Implementierungsbedingte Einschränkung. Die Anweisung ist zu lang. Die Übersetzung wurde in Phase p abgebrochen« IOC0517I S INVALID R FORMAT ITEM d. IOC0517I S INVALID R FORMAT ITEM d [. STATEMENT IGNOREDL Ungültiges R-Formatelernent d. [Die Anweisung wurde ignoriert.1 IOC05I8I S d IS NOT 'BASED* OR 'CONTROLLED•. IOC0518I S NON-BASED OR NON-CONTROLLED ITEM d IN FREE STATEMENT [.1 STATEMENT IGNORED1. Das Element d in der FREE-Anweisung ist nicht 'BASED oder nicht •CONTROLLED1. [Die Anweisung wurde ignoriert.1 IOC0519I S ILLEGALLY USED STRING PSEUDO-VARIABLE. IOC0519I S IMPLEMENTATION RESTRICTION. ILLEGALLY USED STRING PSEUDO-VARIABLE. Implementierungsbedingte Einschränkung. Die Pseudovariable STRING wurde angewendet. falsch IOC0520I S STRING LENGTH EXCEEDS n. I0C0520I S IMPLEMENTATION RESTRICTION. STRING LENGTH EXCEEDS n. REPETITION FACTOR OF ONE ASSUMED. Implementierungsbedingte Einschränkung. Die Kettenlänge übersteigt n. Der Niederholung sfaktor 1 wurde angenommen. IOC0529I W EXTENDED FLOAT ARITHMETIC REQUIRED OR TO BE SIMULATED. IOC0529I W EXTENDED FLOAT ARITHMETIC REQUIRED OR TO BE SIMULATED BECAUSE EXTENDED PRECISION ITEMS ARE USED. Erweiterte Gleitkomma-Arithmetik wird gefordert oder muß simuliert werden> weil Elemente mit erweiterter Genauigkeit verwendet werden. IOC0530I I 'ORDER1 MAY INHIBIT OPTIMIZATION. IOCQ530I I ORDER OPTION APPLIES TO THIS BLOCK. OPTIMIZATION MAY BE INHIBITED. Die ORDER-Option wird auf diesen Block angewendet. Die Optimierung kann dadurch eingeschränkt werden. IOC0531I S AREA SPECIFIED FOR OFFSET IN EHTRY DECLARATION IGNORED. IOC0531I S IMPLEMENTATION RESTRICTION. AREA REFERENCE IN OFFSET ATTRIBUTE FOR PARAMETER DESCRIPTION INVALID. REFERENCE IGNORED. Implementierungsbedingte Einschränkung. Eine AREA-Bezugnähme im OFFSET-Attribut für die Parameterbeschreibung ist ungültig. Dia Bezugnahme wurde Ignoriert. 104 PL1-0C Benutzungshinweise 10/89 IOC0532I S STRUCTURE TERMINATED AFTER n MEMBERS. IOC0532I S IMPLEMENTATION RESTRICTION. STRUCTURE TERMINATED AFTER n ITEMS. Implementierungsbedingte Einschränkung« Die Struktur wurde nach n gebrochen . D0S-4/ES Elementen ab- IOC0533I H BUILTIN SUBROUTIHE KILL NOT BE USED FOR d. IOC0533I W d DECLARED AS EXTERNAL ENTRV REFERS TO USER-DEFIHED SUBROUTINE. BUILTIN SUBROUTINE WITH THE SAME NAME HILL NOT BE USED. d wurde als EXTERNAL ENTRY-Konstante vereinbart und bezieht sich auf eine vom Anwender definierte Routine. Das StandardunterProgramm mit demselben Namen wird nicht benutzt. IOC0534I W ASSEMBLER OPTION IGNORED. IOC0534I W ASSEMBLER OPTION CANNOT BE SPECIFIED IN PROCEDURE OR ENTRY STATEMENT. OPTION IGNORED. Die ASSEMBLER-Option darf nicht in einer PROCEDURE- oder ENTRY-Klausei angegeben werden. Die Option wurde ignoriert. IOC0536I W INTER OPTION ASSUMED. I0C0536I W ASSEMBLER OPTION SPECIFIED HITHOUT INTER OPTION. INTER OPTION ASSUMED. Die ASSEMBLER-Option wurde ohne INTER-Option angegeben. Die INTER-Option wurde eingefügt. IOC0537I W PARAMETER TO MAIN PROCEDURE NOT VARYING CHARACTER STRING. IOC0537I H PARAMETER IN PROCEDURE STATEMENT OF MAIN PROCEDURE IS NOT VARYING CHARACTER STRING. Der Parameter in der PROCEDURE-Klausei der Hauptprozedur ist keine VARYING-Zeichenkette. IOC0549I W EXTERNAL ENTRY NAME BEGINS 'IHE*. IOC0549I H EXTERNAL ENTRY NAME BEGINNING 'IHE' POSSIBLY REFERS TO LIBRARY MODULE OF THE PL1 NORMAL COMPILER. Die mit 'IHE1 beginnende EXTERNAL ENTRY-Konstante bezieht sich möglicherweise auf einen Bibliotheksmodul des PL1-Normalcompilers. IOC0569I E INITIALIZATION INVALID FOR STATIC LABEL d. IOC0569I E INITIALIZATION INVALID FOR STATIC LABEL VARIABLE d. INITIALIZATION ATTEMPTED. Die Initialisierung ist ungültig für die STATIC LABEL-Variable d. Die Initialisierung wurde versucht. IOC0570I S INVALID BIT AGGREGATE DEFINING IGNORED. IOC0570I S IMPLEMENTATION RESTRICTION. INVALID USE OF DEFINED ATTRIBUTE FOR BIT AGGREGATE d. ATTRIBUTE IGNORED. Implementierungsbedingte Einschränkung. Falsche Anwendung des DEFINED-Attributes für die Bitketten-Datengruppierung d. Das Attribut wurde ignoriert. IOC0590I S INCORRECTLY DECLARED VARIABLE. STATEMENT IGNORED. IOC0590I S A VARIABLE USED IN THIS STATEMENT IS INCORRECTLY DECLARED E. STATEMENT IGNOREDI. Eine Variable in dieser Anweisung wurde nicht korrekt vereinbart. [Die Anweisung wurde ignoriert.] IOC0591I S [PROLQGUE CODE.3 LOCATOR QUALIFICATION FOR NON-BASED VARIABLE d IOC059II S CPROLOGUE CODE.] LOGATOR QUALIFICATION INVALE) FOR NON-BASED VARIABLE d [.RESULTS OF PROLOGUE UNDEFINED] t. STATEMEKT IGNORED]. CProlog-Code.] Die ZeigerZuordnung für die Nieht-BASED-Variable d ist ungültig. EDie Ergebnisse des Prologs sind Undefiniert.1 [Die Anweisung wurde ignoriert.) IOC0593I S [PROLOGUE CODE.] AGGREGATE d INVALID AS LOCATOR QUALIFIER. IOC0593I S [PROLOGUE CODE.] AGGREGATE d ILLEGALLY USED FOR LOCATOR QUALIFICATION [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED]. [Prolog-Code.] Die Gruppierung d wurde in einer Zeigerzuordnung benutzt. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.] IOC0594I S [PROLOGUE CODE.3 LOCATOR QUALIFIGATION RECURSIVE OR MORE THAN n LEVELS. IOC0594I S IMPLEMENTATION RESTRICTION. [PROLOGUE CODE.} LOCATOR QUALIFICATION IS RECURSIVE OR HAS MORE THAN n LEVELS [.RESULTS OF PROLOGUE UNDEFINED] [.STATEMENTT IGNORED]. Implementierungsbedingte Einschränkung. [Prolog-Code.3 Die Zeigerordnung ist rekursiv oder hat mehr als n Stufen. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0595I S [PROLOGUE CODE.3 NO LOCATOR QUALIFICATION FOR BASED VARIABLE d. IOC0595I S [PROLOGUE CODE.3 REQUIRED LOCATOR QUALIFICATION MISSING IN REFERENCE TO BASED VARIABLE d [.RESULTS OF PROLOGUE UNDEFINED]. [Prolog-Code.] Erforderliche ZeigerZuordnung fehlt in der Bezugnahme auf die BASED-Variable d. [Die Ergebnisse des Prologs sind Undefiniert.] IOC0596I S [PROLOGUE CODE.] t INVALID AS LOCATOR QUALIFIER. IOC0596I S [PROLOGUE CODE.3 INVALID USE OF BUILT-IN FUNCTION t AS LOCATOR QUALIFIER [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED3. [Prolog-Code.3 Falsche Anwendung der Standardfunktion t in der Zeigerzuordnung. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde Ignoriert.] IOC0597I S [PROLOGUE CODE.3 ENTRY d INVALID AS LOCATOR QUALIFIER. I0C0597I S [PROLOGUE CODE.] INVALID USE OF ENTRY d AS A LOCATOR QUALIFIER [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED]. [Prolog-Code.1 Falsche Anwendung der ENTRY-Variablen d in der ZeigerZuordnung. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.] 105 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0598I S [PROLQGUE CODE. 1 EXPRESSION IKVALID AS ARGUMENT TO 'STRING'. IOC0598I S [PR0L06UE CODE.] INVALID USE OF EXPRESSION AS ARGUMENT TO STRING BUILT-IN FUNCTION [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED]. [Prolog-Code. 1 Falsche Anwendung eines Ausdrucks als Argument der Standardfunktion STRING. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.1 IOC0599I S [PROLOGUE CODE.] INVALID ARGUMENT TO "STRING1. I0CQ599I S [PROLOGUE CODE.1 ELEMENTS OF ARGUMENT TO STRING BUILT-IN FUNCTION MUST BE EITHER ALL CHARACTER OR ALL BIT [.RESULTS OF PROLOGUE UNDEFINED1. [Prolog-Code.3 Die Elemente des Arguments der Standardfunktion STRING müssen entweder alle vom Zeichenkeitentyp oder alle vom Bitkettentyp sein. [Die Ergebnisse des Prologs sind Undefiniert.! IOC0600I S [PROLOGUE CODE.1 NO ARGUMENTS PASSED TO t. IOC0600I S [PROLOGUE CODE.] NO ARGUMENTS PASSED TO BUILT-IN FUNCTION OR PSEUDO-VARIABLE t [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNOREDL [Prolog-Code.] Keine Argumente entsprechend der Standardfunktion oder Pseudovariablen t. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.3 IOC060II S INVALID ARGUMENT TO t. IOC0601I S EXPRESSION OR CONSTANT INVALID AS ARGUMENT TO PSEUDO-VARIABLE t [. STATEMENT IGNORED]. Der Ausdruck oder die Konstante ist als Argument der Pseudovariablen t ungültig• [Die Anweisung wurde ignoriert.] IOC0602I S [PROLOGUE CODE.] DATA TYPE OF ARGUMENT d INVALID FOR t. IOC0602I S [PROLOGUE CODE.] DATA TYPE OF ARGUMENT d INVALID FOR BUILT-IN FUNCTION t [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED1. [Prolog-Code.] Der Datentyp des Argumentes d ist ungültig für die Standardfunktion t. [Die Ergebnisse des Prologs sind Undefiniert. ] [Die Anweisung wurde ignoriert. 1 IOC0603I S [PROLOGUE CODE.] MISSING 'AREA1 FOR 'OFFSET1 d. IOC0603I S [PROLOGUE CODE. 1 NO AREA VARIABLE PROVIDED FOR OFFSET VARIABLE d [.RESULTS OF PROLOGUE UNDEFINED ] [. STATEMENT IGNORED 1. [Prolog-Code.1 Die AREA-Variable für die OFFSET™Variable d fehlt. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.] IOC0605I W VARIABLE IN 'INITIAL' FOR d MAY BE UNINITIALIZED. IOC0605I H INITIAL ATTRIBUTE FOR d MAY CONTAIN AN UNINITIALIZED VARIABLE. RESULTS OF EXECUTION UNDEFINED. Das INITIAL-Attribut für d kann eine nicht initialisierte Variable enthalten. Die Ergebnisse der Ausführung sind Undefiniert. IOC0606I S d NOT LEVEL ONE. IOC0606I S d IN FREE STATEMENT NOT LEVEL ONE [. STATEMENT IGNORED ]. d in der FREE-Anweisung hat nicht die Stufe 1. [Die Anweisung wurde ignoriert.] IOC0607I S [PROLOGUE CODE.] INVALID EXPRESSION IN 'DECLARE1 OR •DEFAULT1. IOC0607I S [PROLOGUE CODE.1 DECLARE OR DEFAULT STATEMENT CONTAINS AN INVALID EXPRESSION [.RESULTS OF PROLOGUE UNDEFINED] [.STATEMENT IGNORED]. [Prolog-Code.3 Die DECLARE- oder DEFAULT-AnWeisung enthält einen ungültigen Ausdruck. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert. ] IOC0608I S [PROLOGUE CODE.] CONSTANT INVALID AS ARGUMENT TO 'ADDR'. IOC0608I S [PROLOGUE CODE.] CONSTANT IS INVALID ARGUMENT TO ADDR BUILT-IN FUNCTION [.RESULTS OF PROLOGUE UNDEFINED] [ . STATEMENT IGNORED]. [Prolog-Code.] Eine Konstante ist als Argument der Standardfunktion ADDR ungültig. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.3 IOC0609I S [PROLOGUE CODE. ] ARGUMENT n TO d IS NOT AN ARRAY. IOC0609I S [PROLOGUE CODE.1 ARGUMENT NUMBER n TO ENTRY d IS NOT AN ARRAY BUT THE CORRESPONDING PARAMETER HAS A ' • BOUND [.RESULTS OF PROLOGUE UNDEFINED]. [Prolog-Code.] Das n-te Argument zum Eingangspunkt d muß ein Feld sein. [Die Ergebnisse, des Prologs sind Undefiniert.3 IOC06I0I S [PROLOGUE CODE.1 AGGREGATE ARGUMENT d INVALID FOR ELEMENT PARAMETER. IOC0610I S [PROLOGUE CODE.] PARAMETER CORRESPONDING TO AGGREGATE ARGUMENT d IS AN ELEMENT [.RESULTS OF PROLOGUE UNDEFINED]. [Prolog-Code. ] Der Parameter» der dem Gruppierungsargument d entspricht, ist ein Element. [Die Ergebnisse des Prologs sind Undefiniert.] IOC0611I S RECORD VARIABLE d NOT 'CONNECTED1. IOC0611I S RECORD VARIABLE d IS NOT CONNECTED [. STATEMENT IGNORED]. Die Satzvariable d ist nicht 'CONNECTED'. [Die Anweisung wurde ignoriert.] IOC0612I S [PROLOGUE CODE.] ARGUMENT n TO d INVALID FOR CONTROLLED PARAMETER. IOC0612I S [PROLOGUE CODE.] ARGUMENT NUMBER n TO ENTRY d INVALID FOR CONTROLLED PARAMETER [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED]. [Prolog-Code.3 Das n-te Argument zum Eingangspunkt d ist für einen CONTROLLEDParameter ungültig. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.] 106 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0613I S [PROLOGUE CODE.] ARGUMENT n TO d MAS TOO MANY DIMENSIONS. IOC0613I S IMPLEMENTATION RESTRICTION. [PROLOGUE CODE.] RESULT OF EXPRESSION IN ARGUMENT NUMBER n TO ENTRY d HAS TOO MANY DIMENSIONS [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNOREDl. Implementierungsbedingte Einschränkung. [Prolog-Code.3 Das Ergebnis des Ausdrucks im n-ten Argument zum Eingangspunkt d hat zu viele Dimensionen. [Die Ergebnisse des Prologs sind Undefiniert.! [Die Anweisung wurde ignoriert.3 I0C0614I S [PROLOGUE CODE.] •*' USED AS ARGUMENT TO d. IOC0614I S [PROLOGUE CODE.3 '*• USED AS ARGUMENT TO d [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Das Zeichen '*' wurde als Argument von d angegeben. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0615I S [PROLOGUE CODE.3 STRUCTURING OF d DOES NOT MATCH PARAMETER. IOC0615I S [PROLOGUE CODE. 3 STRUCTURING OF ARGUMENT d DOES NOT MATCH THAT OF PARAMETER [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED3. [Prolog-Code.3 Die Strukturierung des Arguments d entspricht nicht der des Parameters. [Die Ergebnisse des Prologs sind Undefiniert.3 LDie Anweisung wurde ignoriert. 3 IOC0616I S [PROLOGUE CODE.3 DIMENSIONS OF d DO NOT MATCH PARAMETER. IOC0616I S EPROLOGUE CODE. 3 NUMBER OF DIMENSIONS IN ARGUMENT d DOES NOT MATCH THAT OF PARAMETER [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Die Anzahl der Dimensionen im Argument d entspricht nicht der des Parameters. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0617I S [PROLDGUE CODE.3 BOUNDS OF d DO NOT MATCH PARAMETER. IOC0617I S [PROLOGUE CODE. 3 BOUNDS OF ARGUMENT d DO NOT MATCH THOSE OF PARAMETER [.RESULTS OF PROLOGUE UNDEFINED3 [. STATEMENT IGNORED3. [Prolog-Code.3 Die Grenzen des Arguments d entsprechen nicht denen des Parameters. LDie Ergebnisse des Prologs sind Undefiniert.3 [Die Anweisung wurde ignoriert. 3 IOC0618I S [PROLOGUE CODE.3 USE OF CROSS-SECTION OF STRUCTURE d INVALID. IOC061SI S IMPLEMENTATION RESTRICTION. [PROLOGUE CODE.3 USE OF CROSS-SECTION OF STRUCTURE d IS INVALID [.RESULTS OF PRCJLOGUE UNDEFINED]. Implementierungsbedingte Einschränkung. [Prolog-Code.3 Die Benutzung des Teilfeldes der Struktur d ist nicht erlaubt. [Die Ergebnisse des Prologs sind Undefiniert. 3 IOC0619I S [PROLOGUE CODE.3 SUBSCRIPT CONTAINING d IS NOT AN ELEMENT. IOC0619I S [PROLOGUE CODE.3 SUBSCRIPT CONTAINING d IS NOT AN ELEMENT EXPRESSION I. RESULTS OF PROLOGUE UNDEFINED3 [. STATEMENT IGN0RED3. [Prolog-Code.3 Der Index, der d enthält> ist kein skalarer Ausdruck. [Die Ergebnisse des Prologs sind Undefiniert.3 [Die Anweisung wurde ignoriert.3 IOC0620I S [PROLOGUE CODE.3 WRONG NUMBER OF SUBSCRIPTS FOR d. IOC0620I S [PROLOGUE CODE.3 WRONG NUMBER OF SUBSCRIPTS FOR d [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Falsche Anzahl von Indizes für d. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0621I S [PROLOGUE CODE.3 STRUCTURE IS INVALID ARGUMENT TO t. IOC0621I S IMPLEMENTATION RESTRICTION. [PROLOGUE CODE.3 STRUCTURE IS INVALID ARGUMENT TO BUILT-IN FUNCTION t [.RESULTS OF PROLOGUE UNDEFINED3. Implementierungsbedingte Einschränkung. [Prolog-Code.3 Die Struktur ist kein gültiges Argument für die Standardfunktion t. LDie Ergebnisse des Prologs sind Undefiniert.3 IOC0622I S [PROLOGUE CODE.3 EXPRESSION OR ISUB-DEFINED ARRAY IS INVALID ARGUMENT TO t. IOC0622I S [PROLOGUE CODE.3 EXPRESSION OR ISUB-DEFINED ARRAY IS INVALID ARGUMENT TO BUILT-IN FUNCTION t [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Der Ausdruck oder das nSUB-definierte Feld ist kein gültiges Argument für die Standardfunktion t. [Die Ergebnisse des Prologs sind Undefiniert.! IOC0623I S [PROLOGUE CODE.3 ELEMENT IS INVALID ARGUMENT TO t. IOC0623I S [PROLOGUE CODE.3 ELEMENT IS INVALID ARGUMENT TO BUILT-IN FUNCTION t [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGN0RED3. [Prolog-Code.3 Das Element ist kein gültiges Argument für die Standardfunktion t. [Die Ergebnisse des Prologs sind Undefiniert.3 LDie Anweisung wurde ignoriert.3 IOC062« E [PROLOGUE CODE.3 NON-CONNECTED ARGUMENT TO "ADDR1 INVALID. IOC062« E [PROLOGUE CODE.3 NON-CONNECTED ARGUMENT TO ADDR BUILT-IN FUNCTION INVALID. ARGUMENT ACCEPTED. [Prolog-Code.3 Das Argument der Standardfunktion ADDR belegt keinen zusammenhängenden Speicherplatz. Das Argument wurde akzeptiert. I0C0625I S EXPRESSION OR ISUB-DEFINED ARRAY INVALID IN GET/PUT DATA STATEMENT. IOC0625I S EXPRESSION OR ISUB-DEFINED ARRAY USED IN GET/PUT DATA STATEMENT [. STATEMENT IGNORED 3. Ein Ausdruck oder ein nSUB-definiertes Feld wurde in einer GET- oder PUT-DATAAnweisung angegeben. [Die Anweisung wurde ignoriert.] 107 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0626I S [PROLOGUE CODE. 1 SECOND ARGUMENT TO t IS AGGREGATE. XOC0626I S [PROLOGUE CODE. 1 SECOND ARGUMENT TO BUILT-IN FUNCTION t IS AN AGGREGATE [.RESULTS OF PROLOGUE UNDEFINED] [. STATEMENT IGNORED]. [Prolog-Code. ] Das zweite Argument der Standardfunktion t ist eine Gruppierung. [Die Ergebnisse des Prologs sind Undefiniert.] [Die Anweisung wurde ignoriert.] IOC0627I S [PROLOGUE CODE.] ARGUMENT n TO 'POLY' HAS MORE THAN ONE DIMENSION. IOC0627I S [PROLOGUE CODE.] ARGUMENT NUMBER n TO POLY BUILT-IN FUNCTION HAS MORE THAN ONE DIMENSION [.RESULTS OF PROLOGUE UNDEFINED1. [Prolog-Code.1 Das n-te Argument der Standardfunktion POLY ist ein mehrdimensionales Feld. [Prolog-Resultate sind Undefiniert.] IOC0628I E [PROLOGUE CODE.] ARGUMENT TO 'ADDR' MAY HAVE WRONG ALIGNMENT. IOC0628I E [PROLOGUE CODE.1 ARGUMENT TO ADDR BUILT-IN FUNCTION MAY HAVE INCORRECT ALIGNMENT. ARGUMENT ACCEPTED. [Prolog-Code.] Das Argument der Standardfunktion ADDR kann eine falsche Ausrichtung haben. Das Argument wurde akzeptiert. I0C0629I W ARGUMENT n TO GENERIC NAME ASSUMED TO MATCH AGGREGATE PARAMETER. I0C0629I W ARGUMENT NUMBER n TO GENERIC FUNCTION IS ASSUMED TO MATCH ITS CORRESPONDING AGGREGATE PARAMETER. Es wird angenommen» daß das n-te Argument der GENERIC-Funktion zu seinem entsprechenden Gruppierungsparameter paßt. IOC0630I S NESTING OF FUNCTIONS EXCEEDS MAXIMUM. IOC0630I S .IMPLEMENTATION RESTRICTION. LEVEL OF NESTING OF FUNCTIONS EXCEEDS MAXIMUM [. STATEMENT IGNORED 1. Implementierungsbedingte Einschränkung. Die Schachtelungstiefe von Funktionen übersteigt das Maximum. [Die Anweisung wurde ignoriert.] IOC0631I S ARRAY d IN ELEMENT ASSIGNMENT. IOC0631I S INVALID USE OF ARRAY d IN ELEMENT ASSIGNMENT [. STATEMENT IGNORED3. Falsche Anwendung des Feldes d in einer skalaren Zuweisung. [Die Anweisung wurde ignoriert.1 IOC0632I S STRUCTURE d IN ARRAY OR ELEMENT ASSIGNMENT. IOCQ632I S INVALID USE OF STRUCTURE d IN ARRAY OR ELEMENT ASSIGNMENT [. STATEMENT IGNORED]. Falsche Anwendung der Struktur d in einer skalaren oder Feldzuweisung. [Die Anweisung wurde ignoriert.] IOCQ633I S AGGREGATE d USED WHERE ELEMENT REQUIRED. IOC0633I S AGGREGATE d USED WHERE ELEMENT EXPRESSION IS REQUIRED [. STATEMENT IGNORED]. Die Gruppierung d wurde verwendet» obwohl ein skalarer Ausdruck gefordert wird. [Die Anweisung wurde ignoriert.3 IOC0634I S DIMENSIONS OF d DO NOT MATCH FIRST AGGREGATE. IOC0634I S NUMBER OF DIMENSIONS IN AGGREGATE d DOES NOT MATCH THE FIRST AGGREGATE IN EXPRESSION [. STATEMENT IGNORED]. Die Anzahl der Dimensionen in der Gruppierung d entspricht nicht der der ersten Gruppierung im Ausdruck. [Die Anweisung wurde ignoriert.] I0C0635I S BOUNDS OF d DO NOT MATCH FIRST AGGREGATE. IOC0635I S BOUNDS OF AGGREGATE d DO NOT MATCH THE FIRST AGGREGATE IN EXPRESSION [. STATEMENT IGNORED3. Fehler im Gebrauch des DEFINED-Attributes. Es. wurde versucht» kettenüberlagerndes Definieren anzunehmen. IOC0636I S STRUCTURING OF d DOES NOT MATCH FIRST STRUCTURE. IOC0636I S STRUCTURING OF d DOES NOT MATCH THE FIRST STRUCTURE IN EXPRESSION l. STATEMENT IGNORED 3. Die Strukturierung von d entspricht nicht der der ersten Struktur im Ausdruck« [Die Anweisung wurde ignoriert.] IOC0637I S AGGREGATE d USED IN EXTENT SPECIFICATION IN BLOCK. IOC0637I S AGGREGATE d USED FOR BOUND/LENGTH/SIZE SPECIFICATION IN DECLARE OR DEFAULT STATEMENT FOR BLOCK BEGINNING AT THIS STATEMENT. RESULTS OF EXECUTION UNDEFINED. Die Gruppierung d wurde als Angabe für eine Grenze/Länge in einer DECLARE- oder DEFAULT-Anweisung des Blockes verwendet» der bei dieser Anweisung beginnt. Die Ergebnisse der Ausführung sind Undefiniert. IOC0638I E NON-STRUCTURE TARGET IN §BY NAME1 ASSIGNMENT. IOC0638I E TARGET OF ASSIGNMENT STATEMENT WITH BY NAME OPTION IS NOT A STRUCTURE. OPTION IGNORED. Links vom Ergibtzeichen der Anweisung mit der Option 'BY NAME1 steht keine Struktur. Die Option wurde ignoriert. IOC0639I S NON-STRUCTURE SOURCE IN 'BY NAME1 ASSIGNMENT. IOC0639I S NO STRUCTURE IN SOURCE OF 'BY NAME1 ASSIGNMENT [. STATEMENT IGNORED]. Rechts vom Ergibtzeichen der 'BY NAME'-Zuweisung steht keine Struktur. Die Option wurde ignoriert. IOC0641I S ILLEGAL USE OF AGGREGATE d IN ARRAY 'INITIAL' IN THIS BLOCK. IOC0641I S ILLEGAL ÜSE OF AGGREGATE d IN ARRAY INITIAL ATTRIBUTE IN THIS BLOCK. ATTRIBUTE IGNORED. Falsche Anwendung der Gruppierung d im INITIAL-Attribut eines Feldes in diesem Block. Das Attribut wurde ignoriert. 108 PL1-QC Benutzungshinweise 10/89 D0S-4/ES IOC0642I W RESULTS OF ASSIGNME1CT TO 'HEFER1 STRUCTURE d MAY BE UNDEFINED. IOC0642I H ASSIGNMENTT TO STRUCTURE d DECLARED WITH REFER OPTIOK. RESULTS UNDEFINED IF VALUE OF REFER OBJECT CHANGED BY ASSIGNMENT. Die Ergebnisse der Zuweisung an die Struktur, die mit der REFER-Option vereinbart wurde» sind Undefiniert> wenn sich der Wert des REFER-Objektes durch die Zuweisung verändert. I0C06«! S DIMENSIONS OF d DO NOT MATCH TARGET. IOC06«I S NUMBER OF DIMENSIONS OF AGGREGATE d DOES NOT MATCH THE TARGET OF THE ASSIGNMENT OR DUMMY ARGUMENT I. STATEMENT IGNORED3. Die Anzahl der Dimensionen der Gruppierung d entspricht nicht der der linken Seite der Ergibtanweisung oder der des Pseudoarguments. [Die Anweisung wurde ignoriert. 3 IOC0644I S BOUNDS OF d DO NOT MATCH TARGET. IOC0644I S BOUNDS OF AGGREGATE d DO NOT MATCH THE TARGET OF THE ASSIGNMENT OR DUMMY ARGUMENT [. STATEMENT IGNORED 3. Die Grenzen der Gruppierung d entsprechen nicht denen der linken Seite der Ergibtanweisung oder denen des Pseudoarguments. [Die Anweisung wurde ignoriert.] IOC0645I S STRUCTURING OF d DOES NOT MATCH TARGET. IOC0645I S STRUCTURING OF d DOES NOT MATCH THE TARGET OF THE ASSIGNMENT OR DUMMY ARGUMENT [. STATEMENT IGNORED 3. Die Strukturierung von d entspricht nicht der der linken Seite der Ergibtanweisung oder der des Pseudoarguments. [Die Anweisung wurde ignoriert.] IOC0646I S AGGREGATE d USED IN EXTENT SPECIFICATION. IOC0646I S AGGREGATE d ILLEGALLY USED IN BOUND/LENGTH/SIZE SPECIFICATION IN ALLOCATE STATEMENT E. STATEMENT IGNORED 3• Die Gruppierung d wurde in der Grenzen/Längen-Angabe der ALLOCATE-Anweisung falsch angewendet. [Die Anweisung wurde ignoriert.3 I0C0647I S NO MATCHING NAMES IN 'BY NAME1 ASSIGNMENTT. IQC0647I S NO MATCHING NAMES AT CORRESPONDING LEVELS IN THE STRUCTURES IN 'BY NAME1 ASSIGNMEFTT. Keine übereinstimmenden Namen zu den entsprechenden Stufen der Strukturen in der 'BY NAME'-Zuweisung. IOC0648I U TOO MANY ACTIVE QUALIFIED REFERENCES. PHASE p. IOC0648I U IMPLEMENTATION RESTRICTION. TOO MANY QUALIFIED REFERENCES ACTIVE IN THIS STATEMENT. PHASE p. Implementierungsbedingte Einschränkung. Die Anweisung enthält zu viele komplizierte Sprachelemente wie z.B. BASED-Variable» DEFINED-Variable» indizierte Bezugnahmen» Feldausdrücke> mehrfache Verkettungsoperationen> SUBSTR-Standardfunktionsaufrufe* entdeckt in der Phase p. IOC0660I W [PROLOGUE CODE. 3 DUMMY CREATED FOR ARGUMENT n TO ENTTRY d. IOC0660I W [PROLOGUE CODE.3 ARGUMENT NUMBER n TO ENTRY d DOES NOT MATCH ITS CORRESPONDING PARAMETER OR IS AN ISUB-DEFINED ARRAY. A DUMMY ARGUMENT HAS BEEN CREATED. [Prolog-Code.3 Das n-te Argument zum Eingangspunkt d Pgßt nicht zu dem entsprechenden Parameter oder ist ein nSUB-definiertes Feld, hin Pseudoargument wurde erzeugt. IOC0661I W [PROLOGUE CODE.3 ARGUMENT n TO t IGNORED. IOC0661I W [PROLOGUE CODE.3 ARGUMENT NUMBER n TO BUILT-IN FUNCTION t IS NOT REQUIRED FOR FLOATING POINT RESULT. ARGUMENT IGNORED. [Prolog-Code.3 Das n-te Argument der Standardfunktion t ist für ein Gleitkommaergebnis nicht erforderlich. Das Argument wurde ignoriert. IOC0662I I [PROLOGUE CODE.3 ARGUMENT n TO t IS NOT 'COMPLEX1. IOC0662I I [PROLOGUE CODE.3 ARGUMElfT NUMBER n TO BUILT-IN FUNCTION t NOT COMPLEX. ZERO D1AGINARY PART ASSUMED. [Prolog-Code.3 Das n-te Argument der Standardfunktion t ist nicht komplex« Imaginärteil Null wurde eingefügt. IOC0663I S INVALID IOC0663I S INVALID ASSUMED Falsche Für den Der ELEMENT EXPRESSION IN 'DO1 OR 'IF1. SPECIFICATION OF ELEMENT EXPRESSION IN DO OR IF STATEMENT. VALUE ONE FOR EXPRESSION. Angabe für einen skalaren Ausdruck in der DO-Klausel oder IF-Anweisung• Ausdruck wurde der Wert 1 angenommen. I0CQ664I S INVALID DO SPECIFICATION. IOC0664I S INVALID DO SPECIFICATION. SIMPLE DO STATEMENT ASSUMED. Ungültige DO-Klausel. Eine einfache DO-Klausel wurde angenommen. I0C0665I I [PROLOGUE CODE.] ARGUMENT n TO d ASSUMED TO BE ALIGNED. IOC0665I I [PROLOGUE CODE.3 ARGUMENT NUMBER n TO ENTRY d IS OF TYPE 'ENTRY' AND IS ASSUMED TO BE ALIGNED. [Prolog-Code.3 Das n-te Argument zum Eingangspunkt d ist vom Typ ENTRY. Das Attribut ALIGNED wurde angenommen. IOC0666I W [PROLOGUE CODE.3 ARGUMENT n TO t OMITTED. IOC0666I W [PROLOGUE CODE.3 ARGUMENT n TO BUILT-IN FUNCTION t IS REQUIRED FOR FIXED-POIKT RESULT. ZERO ASSUMED. Das n-te Argument der Standardfunktion t muß für Festkomma-Resultate angegeben werden. Der Wert Null wird angenommen. 109 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0670I S EPROLOGUE CODE.] ATTRIBUTES OF ARGUMENT n TO ENTTRY d CONFLICT WITH PARAMETER. IOC0670I S [PROLOGUE CODE.3 ATTRIBUTES OF ARGUMENT NUMBER n TO ENTRY d CONFLICT WITH THE CORRESPONDING PARAMETER [.RESULTS OF PROLOGUE UNDEFINED] C.STATEMENT IGNORED3. [Prolog-Code. 3 Die Attribute des n-ten Arguments zum Eingangspunkt d widersprechen denen des entsprechenden Parameters. [Die Ergebnisse des Prologs sind Undefiniert. 1 [Die Anweisung wurde ignoriert.3 IOC0671I S [PROLOGUE CODE.] ARGUMENT n TO ENTRY d IS NOT 'CONTROLLED•. IOC0671I S [PROLOGUE CODE.] ARGUMENT NUMBER n TO ENTRY d IS NOT •CONTROLLED1 BUT THE CORRESPONDING PARAMETER IS [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.] Das n-te Argument zum Eingangspunkt d muß entsprechend dem Parameter das Attribut CONTROLLED haben. [Die Ergebnisse des Prologs sind Undefiniert. 3 IOC0672I S [PROLOGUE CODE. ] WRONG IOC0672I S [PROLOGUE CODE.3 WRONG PROLOGUE UNDEFINED] [. iProlog-Code.3 Falsche Ergebnisse des Prologs NUMBER OF ARGUMENTS TO t. NUMBER OF ARGUMENTS TO BUILT-IN FUNCTION t [.RESULTS OF STATEMENT IGNORED3. < Anzahl von Argumenten für die Standardfunktion t. [Die sind Undefiniert.3 [Die Anweisung wurde ignoriert.3 I0CQ673I S [PROLOGUE CODE.] INVALID DATA TYPE FOR ARGUMENT n TO t. IOC0673I S [PROLOGUE CODE.3 ARGUMENT NUMBER n HAS INCORRECT DATA TYPE FOR BUILT-IN FUNCTION t [. RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Das n-te Argument der Standardfunktion t hat einen falschen Datentyp. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0674I S [PROLOGUE CODE.3 MODE OF ARGUMENT n TO t IS INCORRECT. IOC067« S [PROLOGUE CODE.3 THE MODE OF ARGUMENT NUMBER n TO BUILT-IN FUNCTION t IS INCORRECT [.RESULTS OF PROLOGUE UNDEFINED3 [. STATEMENT IGNORED3. [Prolog-Code.3 Die Zahlenart des n-ten Arguments der Standardfunktion t ist falsch. [Die Ergebnisse des Prologs sind Undefiniert.3 [Die Anweisung wurde ignoriert. 3 IOC0675I S [PROLOGUE CODE.3 ARGUMENT n TO t IS NOT INTEGER CONSTANT. IOC0675I S [PROLOGUE CODE.3 ARGUMENT NUMBER n TO BUILT-IN FUNCTION t IS NOT AN INTEGER CONSTANT [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Das n-te Argument der Standardfunktion t ist keine Festkommakonstante. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0676I S [PROLOGUE CODE.3 CONSTANT OR FUNCTION OR TEMPORARY RESULT KAS INVALID ATTRIBUTES FOR EXPRESSION. I0C0676I S [PROLOGUE CODE.3 CONSTANT OR FUNCTION OR TEMPORARY RESULT HAS INVALID ATTRIBUTES FOR EXPRESSION [. RESULTS OF PROLOGUE UNDEFINED3. EProlog-Code.3 Eine Konstante, eine Funktion oder ein Zwischenergebnis hat für den Ausdruck ungültige Attribute. [Die Ergebnisse des Prologs sind Undefiniert« 3 IOC0677I S [PROLOGUE CODE.3 ASSIGNMENT TO CONSTANT. IOC0677I S [PROLOGUE CODE.3 TARGET OF ASSIGNMENT IS A CONSTANT [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Die linke Seite der Zuweisung ist eine Konstante. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0678I S [PROLOGUE CODE.3 SOURCE OF ASSIGNMENT DOES NOT MATCH TARGET. I0C0678I S [PROLOGUE CODE.3 ATTRIBUTES OF SOURCE OF ASSIGNMENT STATEMENT CONFLICT WITH THE TARGET OR DUMMY ARGUMENT [.RESULTS OF PROLOGUE UNDEFINED 3. EProlog-Code.3 Die Attribute der rechten Seite der Ergibtanweisung widersprechen denen der linken Seite oder denen des Pseudoarguments. [Die Ergebnisse des Prologs sind Undefiniert.3 I0C0679I S [PROLOGUE CODE.3 OPERAND d INVALID IN ELEMENT EXPRESSION. IOC0679I S EPROLOGUE CODE.3 INVALID USE OF OPERAND d IN AN ELEMENT EXPRESSION [.RESULTS OF PROLOGUE UNDEFINED 3 [. STATEMENT IGNORED 3. [Prolog-Code.3 Falsche Anwendung des Operanden d in einem skalaren Ausdruck. [Die Ergebnisse des Prologs sind Undefiniert.3 [Die Anweisung oder Klausel wurde ignoriert. 3 IOC0680I U »DO1 OR 'IF1 NESTTING LEVEL EXCEEDS n. IQC0680I U IMPLEMENTATION RESTRICTION. LEVEL OF NESTING FOR DO OR IF STATEMENT EXCEEDS n. Implementierungsbedingte Einschränkung. Die Schachtelungstiefe der DO-Klauseln und IF-Anweisungen übersteigt n. IOC0681I S [PROLOGUE CODE.3 ARGUMENT n TO ENTRY d INVALID. IOC0681I S [PROLOGUE CODE.3 ARGUMENT NUMBER n TO ENTRY d INVALID [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Das n-te Argument zum Eingangspunkt d ist ungültig. [Die Ergebnisse des Prologs sind Undefiniert.3 IOC0683I S [PROLOGUE CODE» 3 HO SELECTION POSSIBLE FOR GENERIC NAME. IOC0683I S [PROLOGUE CODE. 1 NO SELECTION POSSIBLE FOR GENERIC NAME [.RESULTS OF PROLOGUE UNDEFINED3. [Prolog-Code.3 Für den GENERIC-Namen ist keine Auswahl möglich. [Die Ergebnisse des Prologs sind Undefiniert.3 110 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0684I S [PROLOGUE CODE.3 OPERANDS OF COMPARE CONFLICT. IOC0684I S [PROLOGUE CODE.] ATTRIBUTES OF OPERANDS IN AN EQUAL OR NOT-EQUAL OPERATION CONFLICT C.RESULTS OF PROLOGUE UNDEFINEDL [Prolog-Code.] Die Attribute der Operanden in einem Vergleichsausdruck widersprechen sich. [Die Ergebnisse des Prologs sind Undefiniert.] IOC0690I S FORTRAN FUNCTION d NOT ALLOWED IN ARGUMENT. IOC0690I S IMPLEMENTATION RESTRICTION. FORTRAN FUNCTION d NOT ALLOHED IN ARGUMENT. FORTRAN OPTION IGNORED. Implementierungsbedingte Einschränkung. Die FORTRAN-Funktion d ist als Argument nicht erlaubt. Die FORTRAN-Option wurde ignoriert. IOC069II W »NOMAP1 SPECIFIED. MAPPING OF PARAMETER n TO d MAY DIFFER IN t. IOC0691I W MAPPING OF PARAMETER n TO ENTRY d MAY DIFFER IN PL1 AND t BUT DUMMY PARAMETER NOT CREATED BECAUSE OF NOMAP OPTION. Die Speicherung des n-ten Parameters zum Eingangspunkt d kann sich in PL1 und t unterscheiden» aber auf Grund der NOMAP-Option wurde kein Pseudoparameter erzeugt. IOC0692I W 'NOMAP1 SPECIFIED. MAPPING OF ARGUMENT n TO d MAY DIFFER IN t. IOC0692I W MAPPING OF ARGUMENT NUMBER n TO ENTRY d MAY DIFFER IN PL1 AND t BUT DUMMY ARGUMENT NOT CREATED BECAUSE OF NOMAP OPTION. Die Speicherung des n-ten Arguments zum Eingangspunkt, d kann sich in PL1 und t unterscheiden> aber auf Grund der NOMAP-Option wurde kein Pseudoargument erzeugt. IOC0693I S MORE THAN n ARGUMENTS TO t ENTRY d. IOC0693I S IMPLEMENTATION RESTRICTION. NUMBER OF ARGUMENTS TO t EKTRY d EXCEEDS n. EXCESS ARGUMENTS IGNORED. Implementierungsbedingte Einschränkung. Die Anzahl der Argumente zum t-Eingangspunkt d übersteigt n. Die überzähligen Argumente wurden ignoriert. IOC0694I S EXTENTS OF PARAMETER n TO t ENTRY d NOT FIXED. IOC0694I S EXTENTS OF PARAMETER n TO t ENTRY d ARE NOT FIXED. RESULTS OF EXECUTION UNDEFINED. Die Ausdehnungen des n-ten Parameters für den t-Eingangspunkt d wurden festgelegt. Die Ergebnisse der Ausführung sind Undefiniert. nicht IOC0695I I t MAPPING USED FOR DUMMY ARGUMENT n TO d. IOC0695I I t MAPPING USED FOR DUMMY ARGUMENT NUMBER n TO ENTRY d. Die Speicherung von t wurde für das n-te Pseudoargument zum Eingangspunkt d verwendet. IOC0696I I PL1 MAPPING USED FOR DUMMY ARGUMENT n TO d. IOC0696I I PL1 MAPPING USED FOR DUMMY ARGUMENT NUMBER n TO ENTRY d. Für das n-te Pseudoargument zum Eingangspunkt d wurde PL1-Konvention vorgenommen. die Speicherung IOC0697I I DUMMY CREATED FOR ARGUMENT n TO t ENTRY d. IOC0697I I MAPPING OF ARGUMENT NUMBER n TO ENTRY d MAY DIFFER IN PL1 AND t. DUMMY ARGUMENT CREATED. Die Speicherung des n-ten Arguments zum Eingangspunkt d kann sich in unterscheiden. Ein Pseudoargument wurde erzeugt. gemäß PL1 und t IOC0698I I DUMMY CREATED FOR PARAMETER n TO t ENTRY d. IOC0698I I MAPPING OF PARAMETER NUMBER n TO ENTRY d MAY DIFFER IN PL1 AND t. DUMMY PARAMETER CREATED. Die Speicherung des n-ten Parameters zum Eingangspunkt d kann sich in PL1 und t unterscheiden. Ein Pseudoparameter wurde erzeugt. IOC0699I E d CONTAINS DATA INVALID FOR COBOL. IOC0699I E RECORD VARIABLE FOR COBOL FILE CONTAINS AREA OR BIT DATA WITH NO EQUIVALENT IN COBOL. PL1 MAPPING ASSUMED FOR VARIABLE. Die Satzvariable d für die COBOL-Datei enthält AREA- oder BIT-Daten, die kein Äquivalent in COBOL haben. Die Speicherung gemäß PL1-Konvention wurde für die Variable übernommen, IOC0700I S TASKING OPTION t IGNORED IN CALL OF NON-PL1 ROUTINE. IOC0700I S TASKING OPTION t IGNORED IN CALL OF NON-PL1 ROUTINE. Die Mehraufgaben-Option t wurde im Aufruf einer Nicht-PLl-Routine ignoriert. IOC0701I W PL1 MAPPING USED FOR ARRAY RECORD VARIABLE. IOC0701I W RECORD VARIABLE IS AN ARRAY. PL1 MAPPING ASSUMED FOR VARIABLE. Die Satzvariable ist ein Feld. Die Speicherung gemäß PL1-Konvention wurde für die Variable übernommen. IOC0702I S COBOL FILE d INVALID IN ASSIGNMENT OR AS ARGUMENT. IOC07O2I S USE OF COBOL FILE d IN ASSIGNMEtfT OR AS AN ARGUMENT IS INVALID. COBOL OPTION WILL NOT APPLY TO TARGET. Falsche Anwendung der COBOL FILE-Bezugnähme d in der Zuweisung oder als Argument. Die COBOL-Option wird sich nicht auf das Ziel beziehen. IOC0703I W d CONTAINS DATA INVALID FOR COBOL. IOC0703I W RECORD VARIABLE FOR COBOL FILE COOTAINS ELEMENT WITH NO DIRECT EQUIVALENT IN COBOL. COBOL MAPPING ASSUMED FOR VARIABLE. Die Satzvariable d für die COBOL-Datei enthält ein Element> das kein direktes Äquivalent in COBOL hat. Die Speicherung gemäß COBOL-Konvention wurde für die Variable angenommen. 111 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0704I E STATEMENT INVALID FOR COBOL FILE d. IOC070M E STATEMENT INVALID FOR COBOL FILE d. PL1 MAPPING ASSÜMED FOR RECORD. In dieser Anweisung ist die COBOL FILE-Bezugnähme d ungültig. Die Speicherung gemäß PL1-Konvention wurde für den Satz übernommen. IOC0705I E SET OPTION INVALID FOR COBOL FILE d. IOC0705I E SET OPTION ON READ STATEMENT ILLEGALLY SPECIFIED FOR COBOL FILE d. PLI MAPPING ASSUMED FOR RECORD. Die SET-Option ist ungültig> weil die READ-Anweisung die COBOL FILE-Bezugnähme d enthält. Die Speicherung gemäß PLI-Konvention wurde für den Satz übernommen. IOC0706I E EVENT OPTION INVALID FOR COBOL FILE d. IOC0706I E EVENT OPTION ILLEGALLY SPECIFIED FOR COBOL FILE d WHEN PLI AND COBOL MAPPING MAY DIFFER. PLI MAPPING ASSUMED FOR RECORD. Die EVENT-Option ist mit der COBOL FILE-Bezugnähme d unverträglich» wenn sich die Speicherungsformen in PLI und COBOL unterscheiden. Die Speicherung gemäß PLI-Konvention wurde für den Satz übernommen. IOC0709I E ARGUMENT n TO d CONTAINS DATA INVALID FOR t. I0C0709I E ARGUMENT NUMBER n TO ENTRY d CONTAINS AREA OR BIT DATA HITH NO EQUIVALENT IN t. PLI MAPPING ASSUMED FOR ARGUMENT IF AGGREGATE. Das n-te Argument zum Eingangspunkt d enthält AREA- oder BIT-Daten» die kein Äquivalent in t haben. Die Speicherung gemäß PLI-Konvention wurde für das Argument» falls es eine Gruppierung ist» übernommen. IOC0710I E PARAMETER n TO d CONTAINS DATA INVALID FOR t. IOC0710I E PARAMETER n TO ENTRY d CONTAINS AREA OR BIT DATA WHICH HAS NO EQUIVALENT IN t. PLI MAPPING ASSUMED FOR PARAMETER IF AGGREGATE. Der n-te Parameter zum Eingangspunkt d enthält AREA-oder BIT-Daten» die kein Äquivalent in t haben. Die Speicherung gemäß PLI-Konvention wurde für den Parameter» falls er eine Gruppierung ist» übernommen. IOC0711I W ARGUMENT n TO COBOL ENTRY d IS AN ARRAY. IOC0711I W ARGUMENT NUMBER n TO ENTRY d IS AN ARRAY WHICH MAY BE INVALID FOR COBOL. PLI MAPPING ASSUMED FOR ARGUMENT. Das n-te Argument zum Eingangspunkt d ist ein Feld» das für COBOL ungültig sein kann. Die Speicherung gemäß PLI-Konvention wurde für das Argument übernommen. IOC0712I W PARAMETER n TO COBOL ENTRY d IS AN ARRAY. I0C0712I W PARAMETER n TO ENTRY d IS AN ARRAY WHICH MAY BE INVALID FOR COBOL. PLI MAPPING USED FOR PARAMETER. Der n-te Parameter zum Eingangspunkt d ist ein Feld» das für COBOL ungültig sein kann. Die Speicherung gemäß PLI-Konvention wurde für den Parameter verwendet. IOC0713I W DATA IN ARGUMENT n TO d INVALID FOR t. IOC0713I W ARGUMENT NUMBER n TO ENTRY d CONTAINS ELEMENT WITH NO DIRECT EQUIVALENT IN t. Das n-te Argument zum Eingangspunkt d enthält ein Element» das kein direktes Äquivalent in t hat. IOC0714I W DATA IN PARAMETER n TO d INVALID FOR t. I0C0714I W PARAMETER n TO ENTRY d CONTAINS ELEMENT WHICH HAS NO DIRECT EQUIVALENT IN t. Der n-te Parameter zum Eingangspunkt d enthält ein Element» das kein direktes Äquivalent in t hat. IOC0715I W EXTENDED PRECISION ITEM INVALID FOR FORTRAN ENTRY d. I0C0715I W AN ARGUMENT OR PARAMETER OR FUNCTION VALUE FOR ENTRY d HAS EOTENDED PRECISION. NO EQUIVALENT IN FORTRAN. Ein Argument» Parameter" oder Funktionswert für den Eingangspunkt d hat erweiterte Genauigkeit. Es gibt kein Äquivalent in FORTRAN. IOC0716I S PARAMETER n TO t ENTRY d MUST NOT BE 'CONTROLLED'. IOC0716I S PARAMETER n TO ENTRY d HAS CONTROLLED STORAGE CLASS HITH NO EQUIVALENT IN t. RESULTS OF EXECUTION UNDEFINED. Der n-te Parameter zum Eingangspunkt d hat das Speicherungsklassenattribut CONTROLLED» das kein Äquivalent in t hat. Die Ergebnisse der Ausführung sind Undefiniert. IOC0717I I DATA TYPE RETURNED BY d INVALID IN FORTRAN. IOCO717I I DATA TYPE OF RETURNED VALUE FROM PLI ENTRY d HAS NO DIRECT EQUIVALENT IN FORTRAN BUT ENTRY CAN BE INVOKED AS A FUNCTION. Der Datentyp des zurückgegebenen Wertes vom PLI-Eingangspunkt d hat kein direktes Äquivalent in FORTRAN» aber der Eingangspunkt kann als Funktion aufgerufen werden. IOC0718I S DATA TYPE RETURNED BY d INVALID IN FORTRAN. I0C0718I S DATA TYPE SPECIFIED FOR RETURNED VALUE FROM FORTRAN FUNCTION d HAS NO DIRECT EQUIVALENT IN FORTRAN. Der Datentyp» der für den zurückgegebenen Wert der FORTRAN-Funktion d angegeben wurde» hat kein direktes Äquivalent in FORTRAN. IOC0719I S ARGUMENT n TO t ENTRY d IS NOT 'CONNECTED1. I0C0719I S ARGUMENT n TO t ENTRY d IS NOT CONNECTED AND THE NOMAP OPTION IS SPECIFIED. RESULTS OF EXECUTION UNDEFINED. Das n-te Argument zum t-Eingangspunkt d ist nicht 'CONNECTED1» und die NOMAPOption wurde angegeben. Die Ergebnisse der Ausführung sind Undefiniert. 112 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0720I I ARGUMENT n TO t ENTRY d ASSUMED TO BE 'CONNECTED1. IOC0720I I ARGUMENT PASSED TO UNCONNECTED PARAMETER n OF t ENTRY d IS ASSUMED TO BE CONNECTED. Das Argument, das dem n-ten Parameter [nicht-CONNECTED] des t-Eingangspunktes d entspricht» wurde als 'CONNECTED1 angenommen. IOC0721I I DATA TYPE RETURNED BY d INVALID IN FORTRAN. IOC0721I I DATA TYPE OF FUNCTION VALUE FROM PL1 ENTRY d IS INVALID FOR FORTRAN. ENTRY CANNOT BE INVOKED AS A FUNCTION. Der Datentyp des Funktionswertes vom PL1-Eingangspunkt d ist für FORTRAN ungültig. Der Eingangspunkt kann nicht als Funktion aufgerufen werden. IOC0722I W DATA TYPE RETURNED BY d INVALID IN FORTRAN. IOC0722I W DATA TYPE SPECIFIED FOR RETURNED VALUE FROM FORTRAN FUNCTION d IS INVALID FOR FORTRAN. Der Datentyp> der für den zurückgegebenen Wert der FORTRAN-Funktion d angegeben wurde, ist für FORTRAN ungültig. IOC0723I E ARGUMENT n TO d NOT CORRECTLY ALIGNED FOR FORTRAN. IOC0723I E ARGUMENT NUMBER n TO ENTRY d IS NOT CORRECTLY ALIGNED FOR FORTRAN AND THE NOMAP OPTION IS SPECIFIED. RESULTS OF EXECUTION UNDEFINED. Das n-te Argument zum Eingangspunkt d ist für FORTRAN nicht korrekt ausgerichtet> und die NOI1AP-Option wurde angegeben. Die Ergebnisse der Ausführung sind Undefiniert. IOC0724I W ARGUMENT n TO d NOT CORRECTLY ALIGNED FOR t. IOC072« W ARGUMENTT NUMBER n TO ENTRY d IS AN ELEMENT WHICH MAY NOT BE CORRECTLY ALIGNED FOR t. NO DUMMY ARGUMENT CREATED. Das n-te Argument zum Eingangspunkt d ist ein Element» das für t nicht korrekt ausgerichtet werden kann. Es wurde kein Pseudoargument erzeugt. IOC0725I E STRUCTURE ARGUMENT n TO d INVALID FOR FORTRAN. IOC0725I E ARGUMENT NUMBER n TO ENTRY d IS A STRUCTURE WHICH IS INVALID FOR FORTRAN. PL1 MAPPING ASSUMED F8R ARGUMENT. Das n-te Argument zum Eingangspunkt d ist eine Struktur» die für FORTRAN ungültig ist. Die Speicherung gemäß PL1-Konvention wurde für das Argument übernommen. IOC0726I E STRUCTURE PARAMETER n TO d INVALID FOR FORTRAN. IOC0726I E PARAMETER n TO ENTRY d IS A STRUCTURE WHICH IS INVALID FOR FORTRAN. PL1 MAPPING ASSUMED FOR PARAMETER. Der n-te Parameter zum Eingangspunkt d ist eine Struktur» die für FORTRAN ungültig ist. Die Speicherung gemäß PL1-Konvention wurde für den Parameter übernommen . IOC0727I I d CANNOT BE INVOKED AS FUNCTION FROM FORTRAN. IOC0727I I ENTRY d HAS NO PARAMETERS. THE ENTRY CANNOT BE INVOKED AS A FUNCTION FROM FORTRAN. Der Eingangspunkt d hat keine Parameter. Der Eingangspunkt kann von FORTRAN nicht als Funktion aufgerufen werden. IOC0728I S d HAS NO ARGUMENTS. FORTRAN OPTION IGNORED. IOC0728I S FUNCTION d HAS NO ARGUMENTS. FORTRAN OPTION IGNORED. Die Funktion d hat keine Argumente. Die FORTRAN-Option wurde ignoriert. IOC0729I S d CANNOT BE A FUNCTION. IOC0729I S COBOL OR ASSEMBLER ENTRY d CANNOT BE INVOKED AS A FUNCTION. INTERLANGUAGE OPTION IGNORED. Der COBOL- oder Assembler-Eingangspunkt d kann nicht als Funktion aufgerufen werden. Die Sprachenanpassungsoption wurde ignoriert. IOC0730I S d CANNOT BE MAPPED CORRECTLY. IOC0730I S IMPLEMENTATION RESTRIKTION. AGGREGATE d CANNOT BE MAPPED CORRECTLY. RESULTS OF EXECUTION UNDEFINED. Implementierungsbedingte Einschränkung. Die Gruppierung d kann nicht korrekt gespeichert werden. Die Ergebnisse der Ausführung sind Undefiniert. IOC0731I S AGGREGATE d EXCEEDS MAXIMUM LENGTH. IOC0731I S IMPLEMENTATION RESTRIKTION. AGGREGATE d EXCEEDS MAXIMUM LENGTH. RESULTS OF EXECUTION UNDEFINED. Implementierungsbedingte Einschränkung. Die Länge der Gruppierung d übersteigt die maximale Länge. Die Ergebnisse der Ausführung sind Undefiniert. IOC0750I E BIT VALUE ONE ASSUMED IN 'IF" EXPRESSION. IOC0750I E VARIABLE IN EXPRESSION AFTER 'IF1- OR IN WHILE OPTION CANNOT BE CONVERTED TO BIT STRING. BIT CONSTANT OF LENGTH AND VALUE ONE ASSUMED. Der Wert der Variablen im Ausdruck nach IF oder in der WHILE-Option kann nicht in eine Bitkette umgewandelt werden. Eine Bitkettenkonstante mit der Länge und dem Wert 1 wurde angenommen. IOC0751I W TOO FEW ARGUMENTS IN CALL TO d. IOC0751I W FEWER ARGUMENTS THAN PARAMETERS FOR CALL TO ASSEMBLER ROUTINE d. Weniger Argumente als Parameter im Aufruf der Assembler-Routine d. IOC0752I E NEGATIVE SECOND ARGUMENT TO 'BIT1 OR «CHAR1. IOC0752I E NEGATIVE SECOND ARGUMENT TO BIT OR CHAR BUILT-IN FUNCTION. ZERO ASSUMED. Negatives zweites Argument in der Standardfunktion BIT oder CHAR. NULL wurde angenommen. 113 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0753I E LENGTH OF STRING OPERATION RESÜLT EXCEEDS n. IOC0753I E IMPLEMENTATION RESTRICTION. LENGTH OF RESULT OF STRING OPERATION EXCEEDS n. LENGTH OF n ASSUMED. Implementierungsbedingte Einschränkung. Die Lange des Ergebnisses eines Kettenausdrucks übersteigt n. Die Länge n wurde angenommen. IOC0754I S NQN-CONSTANTT VALUE IN STATIC INITIAL FOR d IN THIS BLOCK. IOC0754I S NON-CONSTANT VALUE IN INITIAL ATTRIBUTE FOR STATIC VARIABLE d IN THE BLOCK BEGINNING WITH THIS STATEMENT. INITIAL ATTRIBUTE IGNORED. Nicht-konstanter Wert im INITIAL-Attribut für die STATIC-Variable d in dem Block, der mit dieser Anweisung beginnt. Das INITIAL-Attribut wurde ignoriert. IOC0755I E 'REPEAT1 STRING RESULT EXCEEDS MAXIMUM LENGTH. IOC0755I E IMPLEMENTATION RESTRICTION. STRING RESULT FROM REPEAT BUILT-IN FUNCTION GREATER THAN ALLOWED MAXIMUM LENGTH. ZERO REPETITION FACTOR ASSUMED. Implementierungsbedingte Einschränkung. Die ErgebniskettenXänge der Standardfunktion REPEAT ist größer als die zulässige maximale Länge. Der Wiederholungsfaktor Null wurde angenommen. IOC0756I E NEGATIVE REPETITION FACTOR FOR •REPEAT1. IOCQ756I E NEGATIVE REPETITION FACTOR SPECIFIED FOR REPEAT BUILT-IN FUNCTION. ZERO REPETITION FACTOR ASSUMED. Ein negativer Wiederholungsfaktor wurde für die Standardfunktion REPEAT angegeben. Der Wiederholungsfaktor Null wurde angenommen. IOC0757I W CONSTANT AFTER 'IF1 OR IN WHILE OPTION. I0C0757I W CQNSTAlfr SPECIFIED FOLLOWING •IF1 OR IN WHILE OPTION. FLOW WILL BE UNCONDITIONAL. Eine Konstante wurde nach IF oder in der WHILE-Option angegeben. Der Programmablauf ist konstant. IOC0758I S AREA VARIABLE FOR OFFSET d INVALID. IOC0758I S IMPLEMENTATION RESTRICTION. SPECIFICATION OF AREA VARIABLE ASSOCIATED WITH OFFSET d NOT VALID IN THI? STATEMENT. 'Implementierungsbedingte Einschränkung. Die Angabe der AREA-Bezugnähme in Verbindung mit der OFFSET-Bezugnähme d ist in dieser Anweisung nicht gültig. IOC0765I E CONSTANT SUBSCRIPT OF d OUT OF RANGE. I0C0765I E VALUE OF CONSTAKT SUBSCRIPT FOR ARRAY d IS OUT OF RANGE BUT HAS NOT BEEN REPLACED. Der Wert des konstanten Indexes für das Feld d liegt außerhalb der Grenzen? wurde aber nicht ersetzt. IOC0766I W TOO MANY IOC0766I W TOO MANY Zu viele Elemente ITEMS IN INITIAL VALUE LIST FOR d. ITEMS IN INITIAL VALUE LIST FOR ARRAY d. REDUNDANT ITEMS IGNORED, Elemente in der Liste der INITIAL-Werte für das Feld d. Die überzähligen wurden ignoriert. IOC0767I S ISUB VARIABLE FOR d OUT OF RANGE. IOC0767I S ISUB VARIABLE FOR DEFINED ARRAY d OUT OF RANGE. RESULTS OF EXECUTION UNDEFINED. Die nSUB-Variable für das DEFINED-Feld d liegt außerhalb der Dimensionen. Die Ergebnisse der Ausführung sind Undefiniert. IOC0768I S INVALID REPETITION FACTOR IN «INITIAL1 FOR d. IOC0768I S ZERO OR NEGATIVE REPETITION FACTOR IN INITIAL ATTRIBUTE FOR ARRAY d, REPETITION FACTOR IGNORED. Der Wiederholungsfaktor im INITIAL-Attribut für das Feld d ist Null oder negativ. Der Wiederholungsfaktor wurde ignoriert. IOC0776I W INITIAL VALUE OF DO SPECIFICATION OUT OF RANGE. I0C0776I W INITIAL VALUE OF ITERATIVE SPECIFICATION IS OUTSIDE THE RANGE OF THE EXPRESSIONS AFTER 'BY' AND 'TO1. NO EXECUTION OF THE STATEMENTS CONTAINED IN THE GROUP. Der Anfangswert der DO-Spezifikation ist nicht in der Reihe der Ausdrücke nach BY und TO enthalten. Die Anweisungen der Gruppe werden niemals ausgeführt. IOC0787I S INVALID IDENTIFIER IN CHECK LIST. IOC0787I S INVALID IDENTIFIER IN CHECK LIST. IDENTIFIER IGNORED. Ungültige Bezeichnung in der CHECK-Liste. Die Bezeichnung wurde ignoriert. IOC0788I W AREA ASSOCIATED WITH OFFSET d MAY BE INVALID FOR LOCATOR CONVERSION IN 'RETURN1. IOC0788I W IMPLEMENTATION RESTRICTION. AREA ASSOCIATED WITH OFFSET d INVALID FOR LOCATOR CONVERSION FOR RETURN STATEMENT. 'RETURN1 EXPRESSION WILL BE IGNORED IF THE 1 INVALID COMBINATION OF 'RETURN AND 'ENTRY' IS USED. Implementierungsbedingte Einschränkung. Die in der OFFSET-Variablen d angegebene AREA-Variable kann die durch einen Einngangspunkt mit dem Funktionswertattribut POINTER erforderliche Zeigerdaten-Umwandlung in einer RETURN-Anweisung nicht ermöglichen. Der RETURN-Ausdruck wird dann ignoriert. IOC0789I S INVALID SPECIFICATION IN 'WAIT1. IOC0789I S INVALID SPECIFICATION OF NUMBER OF EVENTS IN WAIT STATEMENT. SPECIFICATION IGNORED. Ungültige Angabe der Anzahl von Ereignissen in der WAIT-AnWeisung. Die Angabe wurde ignoriert. IOC0790I S INVALID EXPRESSION IN «DELAY1. IOC0790I S INVALID EXPRESSION IN DELAY STATEMENT. ZERO ASSUMED. Ungültiger Ausdruck in der DELAY-Anweisung. Null wurde angenommen. 114 PL1-0C Benutzungshinweise 10/89 D0S-4/ES I0C0791I S INVALID EXPRESSION IN 'RETURN1. I0C0791I S INVALID EXPRESSION IN RETURN STATEMENT, EXPRESSION IGNORED. Ungültiger Ausdruck in der RETURN-AnWeisung. Der Ausdruck wurde ignoriert. IOC0792I S INVALID 'DISPLAY1 EXPRESSION. IOC0792I S INVALID EXPRESSION IN DISPLAY STATEMENT I. STATEMENT IGNORED3. Ungültiger Ausdruck in der DISPLAY-Anweisung. [Die Anweisung wurde ignoriert.] IOC0793I W 'DISPLAY' STRING LENGTH EXCEEDS 72. IOC0793I W LENGTH OF STRING TO BE DISPLAYED EXCEEDS 72 CHARACTERS. TERMINAL MAY NOT SUPPORT THIS.[FIRST n CHARACTERS USED3. Die Länge der Kette» die auszugeben ist> übersteigt 72 Zeichen. Es ist möglich» daß das Terminal hierfür nicht geeignet ist. [Die ersten n Zeichen werden verwendet.] IOC0794I S 'REPLY' CONTAINS NON-CHARACTERH5TRING REFERENCE. IOC0794I S NON-CHARACTER-STRING REFERENCE IN REPLY OPTION. OPTION IGNORED. Nicht-Zeichenketten-Bezugnahme in der REPLY-Option. Die Option wurde ignoriert. IOC0795I E 'REPLY1 STRING LENGTH EXCEEDS n. IOC0795I E IMPLEMENTATION RESTRICTION. STRING LENGTH IN REPLY OPTION TOO LONG. FIRST n CHARACTERS USED. Implementierungsbedingte Einschränkung. Die Kettenlänge in der REPLY-Option ist zu groß. Die ersten n Zeichen wurden verwendet. IOC0797I W t NOT ENABLED. 'SIGNAL1 IGNORED. IOC0797I W t CONDITION NOT ENABLED [. STATEMENT IGNORED3. Die Bedingung t ist nicht wirksam. [Die SIGNAL-Anweisung wurde ignoriert. ] IOC0798I W 'CHECK' NOT ENABLED FOR d. IOC0798I W CHECK CONDITION NOT ENABLED FOR VARIABLE d IN SIGNAL STATEMENT. VARIABLE IGNORED. Die CHECK-Bedingung für die Variable d in der SIGNAL-AnWeisung ist nicht wirksam. Die Variable wurde ignoriert. IOC0799I S INVALID EXPRESSION IN PRIORITY OPTION. IOC0799I S INVALID EXPRESSION IN PRIORITY OPTION. OPTION IGNORHT. Ungültiger Ausdruck in der<PRIORITY-Option. Die Option wurde ignoriert. IOC0800I S INVALID EXPRESSION IN IGNORE OPTION. IOC0800I S INVALID EXPRESSION IN IGNORE OPTION. VALUE ONE ASSUMED . Ungültiger Ausdruck in der IGNORE-Option. Der Wert Eins wurde angenommen*. IOC0801I S INVALID EXPRESSION IN KEY OPTION. IOC0801I S INVALID EXPRESSION IN KEY OPTION« RESULTS OF EXECUTION UNDEFINED. Ungültiger Ausdruck in der KEY-Option. Die Ergebnisse der Ausführung sind Undefiniert. IOC0805I S ATTRIBUTES OF d CONFLICT WITH USE. IOC0805I S CONFLICT BETWEEN ATTRIBUTES OF FILE d AND ITS USE IN THJS STATEMENT [. STATEMENT IGNORED 3. Widerspruch zwischen Dateiattributen und Verwendung von d in dieser Anweisung. [Die Anweisung wurde ignoriert.3 IOC0806I S RECORD VARIABLE INVALID. IOC0806I S RECORD VARIABLE INVALID [. STATEMENT IGNORED3. Die Satzvariable ist ungültig. [Die Anweisung wurde ignoriert.3 IOC0807I S INVALID SET OF OPTIONS. IOC0807I S INVALID SET OF OPTIONS ON RECORD I/O STATEMENT [. STATEMENT IGNORED3. Ungültige Kombination von Optionen in einer RECORD-E/A-Anweisung. [Die Anweisung wurde ignoriert.3 IOC0808I I RECORD I/O FUNCTION OPTIMIZED. IOC0808I I RECORD I/O FUNCTION OPTIMIZED. NO LIBRARY SUBROUTINE CALL REQUIRED. Die RECORD-E/A-Funktion wurde optimiert. Es ist kein Aufruf einer Bibliotheksroutinen erforderlich. IOC0809I S ATTRIBUTES OF d CONFLICT WITH THOSE ON 'OPEN*• IOC0809I S ATTRIBUTES ON OPEN STATEMENT CONFLICT WITH THOSE DECLARED FOR FILE d. UNDEFINEDFILE WILL BE RAISED ON ATTEMPT TO OPEN THE FILE. Die Attribute in der OPEN-Anweisung widersprechen den in der Vereinbarung angegebenen Dateiattributen von d. Beim Eröffnen tritt 'UNDEFINEDFILE1 auf. IOC0816I E »PAGESIZE1 OR 'LINESIZE' CONFLICT WITH ATTRIBUTES OF d. IOC08I6I E SPECIFICATION OF PAGESIZE OR LINESIZE OPTION CONFLICTS WITH ATTRIBUTES OF FILE d. OPTION IGNORED. Die Angabe der PAGESIZE- oder LINESIZE-Option widerspricht den Dateiattributen von d. Die Option wurde ignoriert. IOC0817I S INVALID 'TITLE' 'PAGESIZE1 OR 'LINESIZE' FOR d. IOC0817I S INVALID SPECIFICATION OF TITLE/PAGESIZE/LINESIZE OPTION FOR FILE d. OPTION IGNORED. Ungültige Angabe der TITLE/PAGESIffi/LINESIZE/IDEICr-Option für die FILE-Bezugnähme d. Die Option wurde ignoriert. 115 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0819I S NO DATA SET ORGANISATION OPTION IN 'ENVIRONMENT1 FOR d. IOC0819I S DIRECT ATTRIBUTE BUT NO DATA SET ORGANIZATION OPTION IN ENVIRONMENT ATTRIBUTE FOR FILE d. UNDEFINEDFILE WILL BE RAISED ON ATTEMPT TO OPEN THE FILE. DIRECT-Attribut* aber keine Option für die Dateiorganisation im ENVIRONMENTAttribut für d. Beim Eröffnen tritt 'UNDEFINEDFILE1 auf, IOC0823I S ATTRIBUTES AND ENVIRONMENT OPTIONS FOR d CONFLICT. IOC0823I S ATTRIBUTES AND ENVIRONMENT OPTIONS FOR FILE d CONFLICT. UNDEFINEDFILE WILL BE RAISED ON ATTEMPT TO OPEN THE FILE. Die Attribute und die ENVIRONMENT-Optionen für d widersprechen sich. Beim Eröffnen tritt •UNDEFINEDFILE1 auf. IOC082« S INVALID ATTRIBUTES FOR d IGNORED. IOC0824I S INVALID ATTRIBUTE(S) FOR FILE d IGNORED. Die ungültigen Attribute für d wurden ignoriert. IOC0825I S t FOR d CONFLICTS WITH PREVIOUSLY DECLARED ATTRIBUTES. IOC0825I S ATTRIBUTE t IN FILE d CONFLICTS WITH ONE PREVIOUSLY DECLARED AND IS IGNORED. Das Dateiattribut t für d widerspricht einem zuvor vereinbarten Attribut und wurde ignoriert. IOC0826I S INVALID ENVIRONMENT OPTIONCS) FOR d IGNORED. I0C0826I S INVALID ENVIRONMENT OPTIONCS) FOR FILE d IGNORED. Die ungültigen ENVIRONMENT-Optionen für d wurden ignoriert. IOC0827I S t FOR d CONFLICTS WITH PREVIOUSLY DECLARED OPTIONS. IOC0827I S ENVIRONMENT OPTION t FOR FILE d CONFLICTS WITH ONE PREVIOUSLY DECLARED AND IS IGNORED. Die ENVIRONMENT-Option t für d widerspricht einer zuvor vereinbarten Option und wurde ignoriert. IOC0829I S INVALID OPTIONCS) ON •CLOSE1 FOR d. IOC0829I S INVALID ENVIRONMENT OPTIONCS) ON CLOSE STATEMENT FOR FILE d. OPTIONCS) IGNORED. Ungültige ENVIRONMENT-Optionen in der CLOSE-Anweisung für d. Die Optionen wurden ignoriert. IOC0830I W FIRST USE OF OPTION t FOR FILE d IGNORED. IOC0830I W ENVIRONMENT OPTION t SPECIFIED MORE THAN ONCE IN DECLARATION OF FILE d. FIRST USE IGNORED. Die ENVIRONMENT-Option t wurde mehr als einmal in der Vereinbarung von d angegeben. Die erste Angabe wurde ignoriert. IOC0831I I RECORD I/O FUNCTION PERFORMED BY SUBROUTINE CALL. IOC0831I I TOTAL OPTION SPECIFIED BUT RECORD I/O FUNCTION PERFORMED BY SUBROUTINE CALL. Die TOTAL-Option wurde angegeben> aber die RECORD-E/A-Funktion wurde durch Aufruf einer Bibliotheksroutine realisiert. IOC0840I S INVALID GET OR PUT STATEMENT IGNORED. IOC0840I S GET OR PUT STATEMENT REFERENCES A RECORD FILE [. STATEMENT IGNORED]. Die GET- oder PUT-Anweisung enthält einen RECORD FILE-Ausdruck. [Die Anweisung tru&de ignoriert. 1 IOC0841I E INVALID E OR F FORMAT ITEM. IOC0841I E IMPLEMENTATION RESTRIKTION. THE NUMBER OF DIGITS AFTER THE DECIMAL POINT IN AN E OR F FORMAT ITEM EXCEEDS n. n IS ASSUMED. Implementierungsbedingte Einschränkung. Die Anzahl der Ziffern nach dem Dezimalpunkt in einem E- oder F-Formatelement übersteigt n. n wurde angenommen. IOC0842I E INVALID E OR F FORMAT ITEM. IOC0842I E THE NUMBER OF DIGITS AFTER THE DECIMAL POINT IN E OR F FORMAT ITEM IS NEGATIVE. ZERO IS ASSUMED. Die Anzahl der Ziffern nach dem Dezimalpunkt in einem E- oder F-Formatelement ist negativ. Null wurde angenommen. IOC0843I E CONFLICTING OPTIONS. t IGNORED. IQC0843I E CpNFLICTING OPTIONS IN PUT STATEMENT. OPTION t IGNORED . Widersprechende Optionen in der PUT-Anweisung. Die Option t wurde ignoriert. IOC0844I E t VALID ONLY FOR PRINT FILES. IOC0844I E t OPTION VALID ONLY FOR PRINT FILES. OPTION IGNORED. Die Option t ist nur für PRINT-Dateibeschreibungen gültig. Die Option wurde ignoriert. IOC0845I W d NOT ARITHMETIC OR STRING. IOC0845I W DATA LIST ITEM d NOT ARITHMETIC OR STRING. ITEM IGNORED. Das Datenlistenelement d ist weder arithmetisch noch eine Kette. Das Element wurde ignoriert. IOC0846I S CONSTANT INVALID IN DATA LIST OF 'GET1 OR 'PUT1. I0C0846I S CONSTANT INVALID IN DATA LIST OF GET OR PUT DATA STATEMENT. CONSTANT IGNORED. Ungültige Konstante in der Datenliste der GET- oder PUT-DATA-Anweisung. Die Konstante wurde ignoriert. IOC0847I S INVALID STRING OPTION. IOC0847I S STRING OPTION DOES NOT CONTAIN A CHARACTER-STRING VARIABLE C. STATEMENT IGNORED.] Die STRING-Option enthält keine Zeichenkettenvariable. [Die Anweisung wurde ignoriert. 1 126 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0848I E NO DATA ITEM IN FORMAT LIST. IOC0848I E NO DATA FORMAT ITEM IN FORMAT LIST. FORMAT LIST WILL BE USED ONLY ONCE. DATA LIST IGNORED. Kein Datenformatelement in der Formatliste, Die Formatliste wird nur einmal verwendet. Die Datenliste wurde ignoriert. IQC0849I S CONTROL FORMAT ITEMS INVALID WITH STRIN6 OPTION. I0C0Ö49I S INVALID CONTROL FORMAT ITEM(S) IN GET/PUT STRING STATEMENT. FORMAT ITEM(S) IGNORED. Ungültige Steuerformatefernente in der GET- oder PUT-AnWeisung mit STRING-Option. Die Formatelemente wurden ignoriert. IOC08501 S INVALID A OR B FORMAT ITEM. IOC0850I S INVALID A OR B FORMAT ITEM IN GET STATEMENT. ' A U ) 1 OR 'B(l)' 1ASSUMED. Ungültiges A- oder B-Formatelement in der GET-Anweisung.# 'A(l) oder 'B(l)' wurde angenommen. IOC0851I H A O R B 1 FORMAT ITEM INVALID IF USED BY i GET l . IOC0851I W ' A U ) OR 'BC1)' ASSUMED FOR FORMAT ITEMS 'A OR 'B' IF FORMAT LIST USED BY GET STATEMENT. A* oder 'B1 angenommen» wenn die ' A U ) ' oder 'BC1)' wird für die Formatelemente Formatliste durch die GET-Anweisung benutzt wird. I0C0852I E WIDTH IN FORMAT ITEM EXCEEDS n. IOC0852I E IMPLEMENTATION RESTRICTION. WIDTH IN FORMAT ITEM IS GREATER THAN n. n ASSUMED. Implementierungsbedingte Einschränkung. Die Länge im Formatelement ist größer als n. n wurde angenommen, IOC0853I W FIELD WIDTH IN E FORMAT ITEM TOO SMALL FOR NEGATIVE VALUES. IOC0853I W FIELD WIDTH IN E FORMAT ITEM TOO SMALL FOR MINUS SIGN TO BE PRINTED. Die Feldlänge im E-Formatelernent ist zu klein» um das Minuszeichen zu drucken. IOC0854I S FIELD WIDTH IN E FORMAT ITEM TOO SMALL FOR DATA. IOC085« S FIEUD WIDTH IN E FORMAT ITEM TOO SMALL FOR COMPLETE OUTPUT OF THE ITEM. ITEM IGNORED. Die Feldlänge im E-Formatelement ist für die vollständige Ausgabe des Elementes zu klein. Das Element wurde ignoriert. IOC0855I S INVALID ARGUMENTS TO E OR F FORMAT ITEM. IOC0855I S INVALID ARGUMENTS TO E OR F FORMAT ITEM. FORMAT ITEM IGNORED. Ungültige Argumente zum E- oder F-Formatelement. Das Formatelement riert. wurde igno- IOC0856I E 'PAGE1 OR "LINE1 IN 'GET1 OR 'PUT1 IGNORED. IOC0856I E INVALID PAGE OR LINE FORMAT ITEM IN GET OR PUT STATEMENT. FORMAT ITEM IGNORED. Ungültiges PAGE- oder LINE-Formatelement in der GET- oder PUT-Anweisung• Das Formaxelement wurde ignoriert* IOC0857I W 'PAGE1 OR 'LINE' IGNORED FOR 'GET1. IOC0857I W PAGE OR LINE FORMAT ITEM WILL BE IGNORED IF FORMAT LIST IS USED BY A GET STATEMENT. Das PAGE- oder LINE-Formatelement wird ignoriert» wenn die Formatliste durch eine GET-Anweisung verwendet wird. IOC0858I S INVALID FORMAT ITEM IGNORED. IOC0858I S INVALID DATA TYPE IN FORMAT ITEM. ITEM IGNORED. Ungültiger Datentyp im Formatelement* Das Element wurde ignoriert. IOC0859I E INVALID DATA TYPE IN SKIP OR LINE OPTION. IOC0859I E INVALID DATA TYPE IN SKIP OR LINE OPTION. VALUE ONE ASSUMED. Ungültiger Datentyp in der SKIP- oder LINE-Option. Der Wert men . Eins wurde angenom- IOC0860I W ITEM NOT ARITHMETIC OR STRING. IOC0860I W DATA LIST ITEM NOT ARITHMETIC OR STRING. ITEM IGNORED. Das Datenlistenelement ist weder arithmetisch noch eine Kette. Das Element wurde ignoriert. IOC0861I E MISSING LABEL PREFIX ON FORMAT STATEMENT, IOC0861I E MISSING LABEL PREFIX ON FORMAT STATEMENT [. STATEMENT IGNORED1. Fehlendes Markenpräfix am Anfang der FORMAT-Anweisung. [Die Anweisung wurde ignoriert. 1 IOC0870I S SECOND ARGUMENT TO t INVALID. IOC0870I S SECOND ARGUMENT OF BUILT-IN FUNCTION t TOO LARGE OR TOO SMALL. VALUE ONE ASSUMED. Das zweite Argument der Standardfunktion t ist zu gross oder zu klein. Der Wert Eins wurde angenommen. IOC0871I S INVALID ARGUMENT TO ALLOCATION BUILT-IN FUNCTION. IOC0871I S ARGUMENT OF ALLOCATION BUILT-IN FUNCTION DOES NOT REFER TO A LEVEL ONE CONTROLLED VARIABLE. ZERO VALUE WILL BE RETURNED. Das Argument der Standardfunktion 'ALLOCATION1 ist keine COOTROLLED-Variable. IOC0872I S INVALID ARGUMENT TO t. IOCQ872I S INVALID ARGUMENT TO BUILT-IN FUNCTION t. FUNCTION RETURNS NULL VALUE. Ungültiges Argument zur Standardfunktion t* Die Funktion gibt den Wert zurück• Null 117 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0873I S ARGUMENT TO t IS NOT A FILE EXPRESSION. IOC0873I S ARGUMENT TO BUILT-IN FUNCTION V IS NOT A FILE. FUNCTION RETURNS ZERO VALUE, Das Argument zur Standardfunktion t ist kein FILE-Ausdruck. Die Funktion gibt den Wert Null zurück. I0C0874I S t USED AS ARGUMENT DOES NOT MATCH PARAMETER DESCRIPTOR. I0C0874I S BUILT-IN FUNCTION t USED AS ARGUMENT DOES NOT MATCH CORRESPONDING PARAMETER DESCRIPTOR. RESULTS OF EXECUTION UNDEFINED. Die als Argument benutzte Standardfunktion t paßt nicht zu der entsprechenden Parameterbeschreibung. Die Ergebnisse der Ausführung sind Undefiniert. IOC0875I I FIXED-POINT ARITHMETIC USED FOR RESULT OF BUILT-IN FUNCTION t. IOC0875I I RESULT OF BUILT-IN FUNCTION t HILL BE EVALUATED USING FIXED-POINT ARITHMETIC OPERATIONS. Das Ergebnis der Standardfunktion t wird mit Hilfe von Festkommaoperationen berechnet . IOC0876I W ADDR BUILT-IN FUNCTION POINTS AT STRING LENGTH FIELD. IOC0876I W ADDR BUILT-IN FUNCTION RETURNS A POINTER TO THE TWO-BYTE LENGTH FIELD PRECEDIN6 THE VARYING STRING VALUE. 1 Die Standardfunktion 'ADDR gibt einen Zeigerwert zurück« der auf das Zwei-BytePräfix der VARYING-Kette zeigt. IOC0877I E SECOND ARGUMENT TO 'SUBSTR1 SET TO ONE. IOC0877I E SECOND ARGUMENT OF SUBSTR BUILT-IN FUNCTION OR PSEUDO-VARIABLE LESS THAN ONE. VALUE SET TO ONE. Das zweite Argument der Standardfunktion oder Pseudovariablen 'SUBSTR1 ist kleiner als eins. Der Wert wurde auf eins gesetzt. IOC0878I E SECOND ARGUMENT TO •SUBSTR1 TOO LARGE. IOC0878I E SECOND ARGUMENT OF SUBSTR BUILT-IN FUNCTION OR PSEUDO-VARIABLE GREATER THAN STRING LENGTH. NULL STRING RETURNED. Das zweite Argument der Standardfunktion oder Pseudovariablen 'SUBSTR1 ist größer als die Länge der Kette. Die leere Kette wird zurückgegeben. IOC0879I E THIRD ARGUMENT TO 'SUBSTR1 NEGATIVE. IOC0879I E THIRD ARGUMENT OF SUBSTR BUILT-IN FUNCTION OR PSEUDO-VARIABLE NEGATIVE. NULL STRING RETURNED. Das dritte Argument der Standardfunktion oder Pseudovariablen 'SUBSTR1 ist negativ. Die leere Kette wird zurückgegeben. IOC0880I E THIRD ARGUMENT TO 'SUBSTR1 TOO LARGE. IOC0880I E THIRD ARGUMENT OF SUBSTR BUILT-IN FUNCTION OR PSEUDO-VARIABLE GREATER THAN STRING LENGTH. RETURNED VALUE TRUNCATED AT END OF SOURCE STRING. Das dritte Argument der Standardfunktion oder Pseudovariablen 'SUBSTR1 ist größer als die Länge der Kette. Der zurückgegebene Wert wird am Ende der Quellkette abgebrochen. IOC0881I E ARGUMENTS TO 'SUBSTR1 TOO LARGE. IOC0881I E THE SUM OF THE SECOND AND THIRD ARGUMENTS OF SUBSTR BUILT-IN FUNCTION OR PSEUDO-VARIABLE IS GREATER THAN THE STRING LENGTH PLUS ONE. RETURNED VALUE TRUNCATED AT END OF SOURCE STRING. Die Summe des 1zweiten und dritten Arguments der Standardfunktion oder Pseudovariablen 'SUBSTR ist größer als die Lange der Kette plus eins. Der zurückgegebene Wert wird am Ende der Quellkette abgebrochen. IOC0882I W RESULT OF BIT STRING OPERATION WILL BE TRUNCATED. IOC0882I W RESULT OF BIT STRING OPERATION WILL BE TRUNCATED. Das Ergebnis der Bitkettenoperation wird gekürzt. IOC0883I W RESULT OF STRING OPERATION TRUNCATED. IOC0883I W TARGET STRING SHORTER THAN SOURCE. RESULT TRUNCATED ON ASSIGNMENT. Bei der Zuweisung war die linke Kette kürzer als die rechte. Das Ergebnis wurde abgebrochen. IOC089« S INVALID ARGUMENT TO 'HIGH1 OR 'LOW1 REPLACED BY '(l) 1 . IOC0894I S INVALID ARGUMENT OF HIGH OR LOW BUILT-IN FUNCTION. ' C D ' ASSUMED. Argument der Standardfunktion 'HIGH1 oder 'FLOW1 ist fehlerhaft. Als Argumentwert wurde Eins angenommen. IOC0895I S OPERATORCS) INVALID FOR COMPLEX DATA. IOC0895I S OPERATORCS) INVALID FOR COMPLEX DATA. '=' ASSUMED. OperatorCen) istCsind) für komplexe Daten*ungültig. ' = ' wurde angenommen. IOC0896I S EXPRESSION IN 'INITIAL' FOR STATIC VARIABLE d, IOC0896I S INITIAL ATTRIBUTE FOR STATIC VARIABLE d CONTAINS NON-CONSTANT EXPRESSION. ATTRIBUTE IGNORED. Das INITIAL-Attribut für die STATIC-Variable d enthält einen nicht-konstanten Ausdruck. Das Attribut wurde ignoriert. IOC0897I I CONVERSION WILL BE PERFORMED BY SUBROUTINE CALL. IOC0897I I DATA CONVERSION WILL BE PERFORMED DURING PROGRAM EXECUTION BY SUBROUTINE CALL. Die Datenumwandlung wird während der Programmausführung durch den Aufruf einer Bibliotheksroutine realisiert. 118 PL1-0C Benutzungshinweise 10/89 D05-4/ES IOC0898I S WRONG NUMBER OF ARGUMENTS FOR ENTRY d. IOC0898I S WRONG NUMBER OF ARGUMENTS SPECIFIED FOR FUNCTION OR SUBROUTINE d. RESULTS OF EXECUTION UNDEFINED. Für die Funktion oder Routine d wurde eine falsche Anzahl von Argumenten angegeben. Die Ergebnisse der Ausführung sind Undefiniert. IOC0899I W 'RETURN1 EXPRESSION MAY CONFLICT WITH •ENTRY1 SPECIFICATION. IQC0899I W DATA TYPE OF RETURNED EXPRESSION CONFLICTS WITH RETURNS OPTION OF A PROCEDURE OR ENTRY STATEMENT IN THIS BLOCK. EXPRESSION 1IN RETURN STATEMENT WILL BE IGNORED IF THE INVALID COMBINATION OF 'RETURN AMD •ENTRY1 IS USED. Der Datentyp des Ausdrucks in der RETURN-AnWeisung widerspricht der Angabe in der RETURNS-Option einer PROCEDURE- oder ENTRY-Klausel in diesem Block. Der Ausdruck in der1 RETURN-Anweisung wird ignoriert» wenn die ungültige Kombination von •RETURN und 'ENTRY1 benutzt wird. IOC0900I I DATA VARIABLE USED FOR PROGRAM CONTROL. IOC0900I I BASED REFERENCE TO PROGRAM CONTROL DATA REFERS TO STORAGE USED BY VARIABLE d BUT IS ACCEPTED AS VALID. Die BASED-Bezugnähme auf die ProgrammSteuerdaten wird als gültig akzeptiert> bezieht sich aber auf Speicherplatz> der durch die Variable d benutzt wird. IOC0901I U OVERFLOW TEXT PAGES FÜLL. COMPILATION TERMINATED IN PHASE P. IOC0901I U IMPLEMENTATION RESTRICTION. ALL OVERFLOW TEXT PAGES FÜLL. COMPILATION TERMINATED IN PHASE P. Implementierungsbedingte Einschränkung. Alle Oberlauftextseiten sind gefüllt. Die Übersetzung wurde in Phase P abgebrochen. IOC0903I U TOO MANY SUBSCRIPTED LABELS IN THIS BLOCK. COMPILATION TERMINATED. IOC0903I U IMPLEMENTATION RESTRICTION. TOO MANY SUBSCRIPTED LABELS IN THIS BLOCK. COMPILATION TERMINATED. Implementierungsbedingte Einschränkung. Zu viele indizierte LABEL-Variablenbezugnahmen in diesem Block. Die Übersetzung wurde abgebrochen. IOC0908I W TOO MANY CALLS AND FUNCTION REFERENCES FOR OPTIMIZATION. IOC0908I W IMPLEMENTATION RESTRICTION. TOO MANY CALL STATEMENTS AND FUNCTION REFERENCES. OPTIMIZATION IS INHIBITED FOR THE PROGRAM. Implernentierungsbedingte Einschränkung. Zu viele CALL-Anweisungen und Funktionsaufrufe. Eine Optimierung kann für dieses Programm nicht vorgenommen werden. IOC0909I W TOO MANY LOCATOR LABEL OR ENTRY ASSIGNMENTS FOR OPTIMIZATION. IOC0909I W IMPLEMENTATION RESTRICTION. TOO MANY LOCATOR LABEL OR ENTRY VARIABLE ASSIGNMENTS. OPTIMIZATION IS INHIBITED FOR THE PROGRAM, Implementierungsbedingte Einschränkung. Zu viele Zeiger-» LABEL- oder ENTRYVariablen-Zuweisungen. Eine Optimierung kann für dieses Programm nicht vorgenommen werden. IOC0910I W TOO MANY BASED LOCATOR LABEL OR ENTRY ASSIGNMENTS FOR OPTIMIZATION. IOC0910I W IMPLEMENTATION RESTRICTION. TOO MANY ASSIGNMENTS WITH BASED LOCATORS LABEL OR ENTRY VARIABLES. OPTIMIZATION IS INHIBITED FOR THE PROGRAM. Implementierungsbedingte Einschränkung. Zu viele Zuweisungen an Zeiger-» LABELoder ENTRY-Variablen mit dem BASED-Attribut. Eine Optimierung kann für dieses Programm nicht vorgenommen werden. IOC0911I W TOO MANY LOCATOR TEMPORARIES ACTIVE FOR OPTIMIZATION. IOC0911I W IMPLEMENTATION RESTRICTION. TOO MANY LOCATOR TEMPORARIES ACTIVE. OPTIMIZATION IS INHIBITED FOR THE PROGRAM. Implementierungsbedingte Einschränkung. Zu viele temporäre Zeiger sind aktiv. Eine Optimierung kann für dieses Programm nicht vorgenommen werden. IOC0912I W STATEMENT MAY NEVER BE EXECUTED. IOC0912I W STATEMENT MAY NEVER BE EXECUTED. Die Anweisung kann niemals ausgeführt werden. IOC0913I W TOO MANY STATEMENT LABEL CONSTANTS FOR OPTIMIZATION. IOC0913I W IMPLEMEhTTATION RESTRICTION. TOO MANY STATEMENT LABEL CONSTANTS. OPTIMIZATION IS INHIBITED FOR THE PROGRAM. Implementierungsbedingte Einschränkung. Zu viele LABEL-Konstanten. Eine Optimierung kann für dieses Programm nicht vorgenommen werden. IOC0914I W ITEMCS) IOC091« W ITEMCS) Es kann benutzt d MAY BE UNINITIALIZED. d MAY BE UNINITIALIZED WHEN USED IN THIS BLOCK. sein, dass das Element d nicht initialisiert ist» wenn es in diesem Block wird. IOC0915I W n FLOW UNITS IN BLOCK. GLOBAL OPTIMIZATION RESTRICTED. IOC0915I W BLOCK CONTAINS n FLOW UNITS. GLOBAL OPTIMIZATION PERFORMED ONLY IN DO GROUPS. Der Block enthält n FLOW-Einheiten. Die globale Optimierung wird nur in DO-Gruppen durchgeführt. IOC0916I W GO TO d MAY PASS CONTROL OUT OF BLOCK. IOC0916I W GO TO d MAY CAUSE CONTROL TO BE PASSED OUT OF THE CURRENT BLOCK. 'GO TO D* kann veranlassen> daß die Steuerung aus dem die GOTO-Anweisung enthaltenden Block herausgeht. 129 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0917I H n VARIABLES IN PROGRAM. GLOBAL QPTIMIZATION RESTRICTED . IOC0917I W n VARIABLES IN PROGRAM. GLOBAL OPTIMIZATION PERFORMED FOR 255 VARIABLES. LOCAL OPTIMIZATION PERFORMED ON REMAINDER. Das Programm enthält n Variablen. Die globale Optimierung wird für 255 Variablen durchgeführt. Die lokale Optimierung wird für die restlichen durchgeführt. IOC0918I H n FLOH UNITS IN DO GROUP. GLOBAL OPTIMIZATION RESTRICTED. IOC0928I W DO GROUP CONTAINS n FLOH UNITS. GLOBAL OPTIMIZATION IS RESTRICTED. Die DO-Gruppe enthält n FLOW-Einheiten. Die globale Optimierung eingeschränkt. ist IOC0919I E LESS THAN n CHARACTERS OF t IN d HILL APPEAR IN DATA-DIRECTED OUTPUT, IOC0919I E QUALIFIED REFERENCE TO ELEMENT t OF STRUCTURE d HILL BE TRUNCATED TO LESS THAN n CHARACTERS IN DATA-DIRECTED OUTPUT. Die mehrstufige Bezugnahme auf das Element t der Struktur d wurde in der DATAgesteuerten Ausgabe auf weniger als n Zeichen verkürzt. IOC0921I E 'BASED1 d IS INVALID IN DATA LIST FOR DATA-DIRECTED I/O OR »CHECK1. I0C0921I E IMPLEMENTATION RESTRICTION. TYPE OF BASED 1 VARIABLE d IN DATA LIST NOT SUPPORTED FOR DATA-DIRECTED I/O OR •CHECK , ITEM IGNORED. Implementierungsbedingte Einschränkung, d ist eine BASED-Bezugnähme. Sie wird in der Datenliste für DATA-gesteuerte E/A oder 'CHECK1 nicht unterstützt. Das Listenelement wurde ignoriert. IOC0922I E 'DEFINED' d IS INVALID IN DATA LIST FOR DATA-DIRECTED I/O OR 'CHECK1. IOC0922I E IMPLEMENTATION RESTRICTION. TYPE OF DEFINED VARIABLE d IN DATA LIST NOT SUPPORTED FOR DATA-DIRECTED I/O OR "CHECK1. ITEM IGNORED. Implementierungsbedingte Einschränkung, d ist eine DEFINED-Bezugnähme. Sie wird in der Datenliste für DATA-gesteuerte E/A oder 'CHECK1 nicht unterstützt. Das Listenelement wurde ignoriert. IOC0923I H GLOBAL OPTIMIZATION RESTRICTED. IOC0923I H FLOH HITHIN BLOCK OR DO GROUP IS TÖO COMPLEX. GLOBAL OPTIMIZATION IS RESTRICTED. Der Programmablauf innerhalb des Blockes oder der DO-Gruppe ist zu komplex. Die globale Optimierung ist eingeschränkt. IOC092« S 'SIZE' RAISED HHEN CONVERTING CONSTANT TO d. IOC0924I S SIZE CONDITION RAISED HHEN CONVERTING CONSTANT TO d. RESULT OF CONVERSION UNDEFINED. Der Ausnahmezustand 'SIZE1 trat auf» als die Konstante auf die Attribute umgewandelt wurde. Das Ergebnis der Umwandlung ist Undefiniert. von d IOC0925I S 'CONVERSION1 RAISED HHEN CONVERTING CONSTANT TO d. IOC0925I S CONVERSION CONDITION RAISED HHEN CONVERTING CONSTANT TO d RESULT OF CONVERSION UNDEFINED. Der Ausnahmezustand 'CONVERSION1 trat auf» als die Konstante auf die Attribute von d umgewandelt wurde. Das Ergebnis der Umwandlung ist Undefiniert. IOC0928I E PART OF STATIC STORAGE EXCEEDS 64K BYTES. IOC0928I E IMPLEMENTATION RESTRICTION. PART OF STATIC STORAGE EXCEEDS 64K BYTES. Implementierungsbedingte Einschränkung. Ein bestimmter Teil des statischen Speichers übersteigt 6<+K Bytes. IOC0929I E LENGTH OF 'DEFINED' d EXCEEDS LENGTH OF BASE. IOC0929I E LENGTH OF VARIABLE d EXCEEDS LENGTH OF VARIABLE ON WH ICH IT IS DEFINED. THIS DEFINING HAS BEEN ACCEPTED. Die Länge der DEFINED-Variablen d übersteigt die Länge der Basis. Dieses Definieren wurde akzeptiert. IOC0930I S AGGREGATE DESCRIPTOR FOR d TOO LARGE. IOC0930I S IMPLEMENTATION RESTRICTION. AGGREGATE DESCRIPTOR FOR d TOO LARGE. RESULTS OF EXECUTION UNDEFINED. Implementierungsbedingte Einschränkung. Der Gruppierungsbeschreiber für d ist zu groß. Die Ergebnisse der Ausführung sind Undefiniert. IOC0931I H 'BASED1 d IS INVALID FOR DATA-DIRECTED I/O OR '.CHECK1. IOC0931I H IMPLEMENTATION RESTRICTION. 1TYPE OF BASED VARIABLE d NOT SUPPORTED FOR DATA-DIRECTED I/O OR «CHECK . ITEM IGNORED. Implementierungsbedingte Einschränkung. Der Typ der BASED-Variablen d wird für DATA-gesteuerte E/A oder 'CHECK* nicht unterstützt. Das Element wurde ignoriert. IOC0932I H 'DEFINED' d IS INVALID FOR DATA-DIRECTED I/O OR 'CHECK1. IOC0932I H IMPLEMENTATION RESTRICTION. 1TYPE OF DEFINED VARIABLE d NOT SUPPORTED FOR DATA-DIRECTED I/O OR 'CHECK . ITEM IGNORED. Implementierungsbedingte Einschränkung* Der Typ der DEFINED-Variablen d wird für DATA-gesteuerte E/A oder 'CHECK' nicht unterstützt. Das Element wurde ignoriert. IOC0938I H t MAY INCREASE EXECUTION TIME. IOC0958I H t CONFLICTS HITH THE OPTIMIZE OPTION. EXECUTION TIME MAY BE INCREASED. t widerspricht der Auswahlbedingung 'OPTIMIZE1. Die Ausführungszeit kann dadurch höher sein. 120 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOC0958I W GENERATED EXTERNAL NAHES MAY BE AMBIGUOUS. IOC0958I W COMPILER GENERATED EXTERNAL NAHES MAY BE AMBIGUOUS IF THE PROGRAM IS LINK-EDITED WITH A PROCEDURE OF SIMILAR NAME. Die vom Compiler erzeugten externen Namen können mehrdeutig sein» wenn das Programm mit einer Prozedur ähnlichen Namens verbunden wird. IOC0959I E EXTERNAL NAME d EXCEEDS n CHARACTERS. IOC0959I E IMPLEMENTATION RESTRIKTION. EXTERNAL NAME d TOO LONG. NAME SHORTENED TO n CHARACTERS. Implementierungsbedingte Einschränkung* Der externe Name d ist zu lang» der Name wurde auf n Zeichen gekürzt. IOC0960I W d TRUNCATED TO n CHARACTERS. IOC0960I W IMPLEMENTATION RESTRIKTION, EXTERNAL ENTRY NAME d WITH INTERLANGUAGE OPTION IS TOO LONG. NAME TRUNCATED TO FIRST n CHARACTERS. Implementierungsbedingte Einschränkung• Der EXTERNAL ENTRY-Name d» der mit einer Sprachenanpassungsoption vereinbart ist» ist zu lang. Der Name wurde auf die ersten n Zeichen verkürzt. I0C0961I S STATEMENT TOO LONG. IOC0961I S IMPLEMENTATION RESTRICTION. STATEMENT TOO LONG. RESULTS OF EXECUTION UNDEFINED. Implementierungsbedingte Einschränkung. Die Anweisung ist zu lang. Die Ergebnisse der Ausführung sind Undefiniert. IOC0970I U ERROR NUMBER n IN COMPILER PHASE P. CORRECT SOURCE AND IOC0970I U ERROR NUMBER n IN COMPILER PHASE P. COMPILER UNABLE TO SOURCE ERRORS MAY LEAD TO SUCCESSFUL COMPILATION. Fehler Nummer n in der Compiler-Phase P. Der Compiler zung fortzusetzen. Nach einer Korrektur der Fehler im zung zu wiederholen. RE-COMPILE. PROCEED. CORRECTION OF ist unfähig» die ÜbersetQuelltext ist die Überset- 121 PL1-0C Benutzungshinweise Anhang 5 Nachrichten des PL1-Optimierungscompilers 10/89 D0S-4/ES (Ausführung) IOT001I PROGRAM TERMINATED» SYSTEM CODE=sss/USER C0DE=nnnn. Programmabbruch» Systembeendigungscode=sss> Benutzerbeendigungscode-nnnn. I0T002I TASK name TERMIHATED, SYSTEM CODE=sss/USER C0DE=nnnn. Aufgabe "name11 wurde abgebrochen » Systembeendigungscode=sss» Benutzerbeendigungscpde=nnnn. IOT011I INTERRUPT DURING PL1 PROGRAM MANAGEMENT LIBRARY ROUTINES» PROGRAM TERMINATED. Unterbrechung in einer PL1-Programmverwaltungsroutine» Programmabbruch. IOT012I A PL1 TASK HAS TERMINATED ABNORMALLY. SYSTEM C0DE=sss/ USER CODE=nnnn. PROGRAM TERMINATED. Eine PL1-Aufgabe wurde anormal beendet. Systembeendigungscode=ss3> Benutzerbeendigung scode=nnnn> Programmabbruch. I0T015I NO MAIN STORAGE AVAILABLE. Kein Hauptspeicherplatz verfügbar. I0T016I PROGRAM TERMINATED. ISASIZE TOO SMALL. Programmabbruch. Anfangsspeicherbereich (ISA) zu klein. IOT030I NUMBER OF FILES AND CONTROLLED VARIABLES EXCEEDS LIMIT. Zu viele Dateien» CONTROLLED-Variablen und geladene Prozeduren. IOT031I MAIN PROCEDURE MISSING. PROGRAM NOT EXECUTABLE. Zum Programm existiert keine Hauptprozedur. Programm nicht ausführbar. IOT050I INVALID COUNT OR FLOW OPTION PARAMETER. OPTION IGNORED. Ungültige Auswahlbedingung COUNT oder FLOW. Auswahlbedingung wurde ignoriert. IOT060I VALUE OF PLIXOPT IS NOT A SEQUENCE pF VALID OPTIONS. Der Wert von PLIXOPT enthält ungültige Auswahlbedingungen. IOT061I INVALID OPTION IN PLIXOPT HAS BEEN IGNORED. Ungültige Auswahlbedingungen in PLIXOPT wurde ignoriert. IOT100I GOTO STATEMENT REFERENCES A LABEL IN AN INACTIVE BLOCK. GOTO-AnWeisung nimmt Bezug auf Marke in einem inaktiven Block. I0T110I MULTIPLE WAIT NOT SUPPORTED. Eine WAIT-Anweisung für mehrfaches Warten ist nicht unterstützt. I0T111I PROGRAM TERMINATED. WAIT STATEMENT FOR AN INACTIVE EVENT. Programmabbruch. WAIT-Anweisung für ein inaktives Ereignis. IOT120I ASSIGNMENT TO UNALLOCATED CONTROLLED VARIABLE 0N INPUT FOR FILE name. Die Eingabeanweisung für die Datei name enthält eine CONTROLLED-Variable» noch keine Speicherplatz-Zuweisung über eine ALLOCATE-Anweisung erfolgte. I0T121I ASSIGNMENT TO UNALLOCATED CONTROLLED VARIABLE IN 'GET STRING DATA1. Die GET STRING DATA-Anweisung enthälteine CONTROLLED-Variable, für Speicherplatz-Zuweisung über eine ALLOCÄTE-Anweisung erfolgte. für die die noch keine IOT200I OPERATION EXCEPTION. Programmausnahme OPERATION. IOT201I PRIVILEGED OPERATION EXCEPTION. Programmausnahme "Privilegierte Operation11. IOT202I EXECUTE EXCEPTION. Programmausnahme Befehlssubstitution. IOT203I PROTECTION EXCEPTION. Programmausnähme Speicherschutz. IOT20« ADDRESSING EXCEPTION. Programmausnahme Adressierung. I0T2Q5I SPECIFICATION EXCEPTION. Programmausnahme Spezifikation. IOT206I DATA EXCEPTION. Programmausnahme Datenfehler. I0T210I LENGTH OF DATA AGGREGATE EXCEEDS 16**6 BYTES. Länge der Datengruppierung größer als 16**6 Bytes. I0T211I ABS(VIRTUAL ORIGIN OF ARRAY) GE ABSCvirtuelle Basisadresse) des Feldes größer als IOT212I COBOL/FORTRAN MAPPING OF AGGREGATE NOT POSSIBLE. Datengruppierung kann nicht gemäß COBOL/FORTRAN-Konventionen verarbeitet werden. 122 PL1-0C Benutzungshinweise 10/89 DOS-4/ES I0T213I NON-FORTRAN DATA TYPE EXPECTED TO BE RETURNED FROM FORTRAN FUNCTION. Von der FORTRAN-Funktion wurde ein Wert gefordert> der keinem FORTRAN-Datentyp entspricht. I0T21« ITERATION NESTING LEVEL IN ARRAY INITIAL ATTRIBUTE EXCEEDS 12. Die Schachtelungstiefe im INITIAL-Attribut für das Feld übersteigt 12. I0T23QI ZERODIVIDE ON-CONDITION RAISED BY THE SIGNAL STATEMENT. ZERODIVIDE-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T231I ZERODIVIDE ON-CONDITION RAISED. ZERODIVIDE-Ausnahmezustand trat auf. I0T232I FIXEDOVERFLOW ON-CONDITION RAISED BY THE SIGNAL STATEMENT. FIXEDOVERFLOW-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. IOT233I FIXEDOVERFLOW ON-CONDITION RAISED. FIXEDOVERFLOW-Ausnahmezustand trat auf. IOT23« SIZE ON-CONDITIÖN RAISED BY THE SIGNAL STATEMENT. SIZE-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. IGT235I SIZE ON-CONDITION RAISED IN AN I/O STATEMENT. SIZE-Ausnahmezustand trat bei E/A-Anweisung auf. I0T236I SIZE ON-CONDITION RAISED. SIZE-Ausnahmezustand trat auf. IOT237I OVERFLOW ON-CONDITION RAISED BY THE SIGNAL STATEMENT. OVERFLOW-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. IOT238I OVERFLOW ON-CONDITION RAISED. OVERFLOW-Ausnahmezustand trat auf. IOT239I ÜNDERFLOW ON-CONDITION RAISED BY THE SIGNAL STATEMENT. ÜNDERFLOW-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. IOT240I ÜNDERFLOW ON-CONDITION RAISED. ÜNDERFLOW-Ausnahmezustand trat auf. I0T241I STRINGSIZE ON-CONDITION RAISED BY THE SIGNAL STATEMENT. STRINGSIZE-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. IOT242I STRINGSIZE ON-CONDITION RAISED. STRINGSIZE-Ausnahmezustand trat auf. I0T243I STRINGRANGE ON-CONDITION RAISED BY THE SIGNAL STATEMENT. STRINGRANGE-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T244I STRINGRANGE ON-CONDITION RAISED. STRINGRANGE-Ausnahmezustand trat auf. IOT250I INTERRUPT IN SORT/MERGE PROGRAM. Unterbrechung im Sortierprogramm. I0T261I POSSIBLE FAILING OF COBOL SUBROUTINE AFTER GOTO OUT OF ON-UNIT. Möglicher Fehler bei weiterer Verwendung der COBOL-Subroutine nach Einheit durch GOTO-Anweisung. Beenden der ON- I0T270I TASK TERMINATED DUE TO TERMINATION OF SUPERORDINATED BLOCK. Unteraufgabe wurde beendet aufgrund der Beendigung eines übergeordneten Blocks. I0T271I STATEMENT DUE TO TERMINATION OF LOWER TASKS. Die Anweisung führt zur Beendigung einer untergeordneten Task. I0T280I UNDEFINED ACTION AFTER NORMAL RETURN FROM I/O ON-UNIT CLOSING FILE. Unbestimmte Aktion nach normaler Beendigung der E/A-ON-Einheit> in der abgeschlossen wurde. die Datei IOT282I 'PLIRETC1 VALUE GREATER THAN 999. PLIRETC-Wert größer als 999. IOT290I UNABLE TO FIND PROCEDURE WITH ENTRY name. Prozedur mit Eingangspunkt name nicht gefunden. IOT291I PERMANENT I/O ERROR WHILE FETCHING PROCEDURE WITH EWTRY name. Permanenter E/A-Fehler beim Laden der Prozedur mit dem Eingangspunkt "name11. I0T300I x L E O IN SQRTCX). x kleiner als oder gleich 0 in SQRTCX). IOT301I x LE 0 IN LOGCX),LOG2CX)>LOG10CX). x kleiner als oder gleich 0 in LOGCX), L0G2CX), LOGlO(x). I0T302I ABS(X) TOO LARGE IN SINCX),COSCX)>TANCX),SINDCX)>COSDCX)> OR TANDCX). ABS(X) zu groß in SINCX), COSCX), TANCX), SINDCX), COSD(X) oder TANDCX). 123 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOT303I X=Y=O IN ATANCY,X) OR ATANDCY,X). X=Y=O in ATANCY,X) oder ATANDCY,X). I0T304I ABS(X) GT 1 IN ATANHCX). ABS(X) größer als 1 in ATANHCX}. I0T305I ABS(X) GT 1 IN ASINCX) OR ACOS(X). ABS(X) größer als 1 in ASINCX) oder ACOSCX). ICfT306I X=0, Y NOT POSITIVE REAL IN X**Y. X=0, Y nicht positiv reell in X**Y. I0T307I Z=+I OR -I IN ATANCZ) OR Z=+l OR -I IN ATANHCZ). Z=+I oder -I in ATANCZ) oder Z=+l oder -1 in ATANHCZ) CfUr Z mit Attribut COHPLEX). I0T310I INCORRECT SPECIFICATION IN FORMAT ITEM ECW,D,S). Spezifikationsfehler im Formatelement ECw,d,s)< I0T311I w TOO SMALL IN FORMAT ITEM FCW,D,P). w zu klein im Formatelement FCw,d,p). I0T312I INVALID VALUE TO BE ASSIGNED TO CHARACTER-5TRING PICTURE. Ungültiger Wert soll einer Zeichenketten-PICTURE-Variablen zugewiesen werden. I0T320I LEVEL OF FORMAT LIST NESTING AND/OR R-FORMAT NESTING EXCEEDS MAXIMUM, Die gemeinsame Schachtelungstiefe von Formatlisten und R-Formatelernenten übersteigt das Maximum. I0T321I NO REFEfcENCE TO R-FORMAT STATEMENT LABEL IN R-FORMAT ITEM. Der Wert der LABEL-Variablen im R-Formatelernent ist nicht die LABEL-Konstante einer FORMAT-Anweisung. IOT322I CORRESPONDING R-FORMAT STATEMENT NOT IN CURRENT BLOCK. Entsprechende FORMAT-Abweisung nicht im aktuellen Block. I0T323I INVALID R-F9RMAT ITEM IN FORMAT LIST. Die Formatliste enthält ein ungültiges R-Formatelernent. IOT340I INVALID SOURCE CHARACTER WAS NOT REPLACED IN CONVERSION ON-UNIT. Ungültiges Zeichen wurde in CONVERSION-ON-Einheit nicht ersetzt. Keine Wiederholung der Datenumwandlung. I0T400I NO OUTPUT AFTER TRANSMISSION ERROR FOR FILE name. Keine Ausgabe nach Übertragungsfehler für die Datei "name". I0T40II PAGE OR LINE OPTION ILLEGALLY USED FOR NON-PRINT FILE name. Optionen PAGE oder LINE nur für PRINT-FILE-Konstante und nicht für die FILE-Konstante "name" zugelassen. I0T402I NO PRECEDING 'READ SET1 OR 'READ INTO1 FOR *REWRITE1 OR 'DELETE1 ON FILE name. Kein READ SET oder READ INTO vor REWRITE oder DELETE für die FILE-Konstante "name". IOT403I INVALID I/O OPERATION FOR FILE name. Ungültige E/A-Operation für die FILE-Konstante "name". I0T40« UNDEFINED I/O ERROR. Undefinierter E/A-Fehler. IOT405I 'READ1 INCOMPLETE BUT 'REWRITE1 OR 'DELETE1 ATTEMPTED FOR FILE name. REWRITE oder DELETE, bevor READ für die FILE-Konstante "name" vollständig beendet wurde. I0T406I NCP VALUE REACHED. FURTHER I/O OPERATIONS CANNOT BE COMPLETED FOR FILE name. NCP-Wert erreicht, weitere E/A-Operationen können für die FILE-Konstante nicht abgeschlossen werden. "name" IOT407I ERROR ON IMPLICIT OPEN FOR FILE name. Fehler beim impliziten Eröffnen der FILE-Konstante "name11. I0T408I END OF FILE/STRING ENCOUNTERED BEFORE END OF DATA LIST. Das Ende der Datei wurde vor dem Ende der Datenliste erreicht* IOT409I ATTEMPT TO CLOSE FILE IN THE WRONG TASK FOR FILE name. Es wurde versucht, die FJLE-Konstante "name" nicht in der Aufgabe abzuschliessen, in der sie eröffnet wurde. IOT410I I/O ATTEMPTED BUT PREVIOUS READ NOT COMPLETED FOR FILE name. E/A wurde versucht» aber das vorhergehende READ für die FILE-Konstante "naTne" wurde nicht beendet. I0T41II ATTEMPT TO ACCESS RECORD LQCKED BY ANOTHER FILE IN THIS TASK FOR FILE name. Es wurde versucht, auf einen Satz zuzugreifen, der für eine andere FILE-Konstante "name" in dieser Aufgabe reserviert ist. IOT412I NO SPACE AVAILABLE TO WRITE RECORD IN DATA SET ASSOCIATED WITH FILE name. Kein Speicherplatz verfügbar, um den Satz in die Datei zu schreiben, die FILE-Konstanten "name" verbunden ist» mit der PL1-0C Benutzung«hinweise 10/89 I0T414I SEQUENCE OF I/O OPERATIONS INCORRECT FOR FILE name. Falsche Reihenfolge der E/A-Operationen zur Verarbeitung Konstante "name11. D0S-4/ES von Sätzen für die FILE- I0T419I INVALID ATTEMPT TO REPOSITION FOR SUBSEQUENT SEQUENTIAL READING. Ungültiger Versuch der Positionierung für nachfolgendes sequentielles Lesen. I0T420I 'REWRITE1 NOT PRECEDED BY 'READ SET1 OR »READ IKTO' FOR FILE name. Vor REWRITE kein READ SET oder READ INTO für die FILE-Konstante "name11. I0T422I LAST 'READ1 PRECEDING THIS 'REWRITE1 IS INCÖMPLETE FOR FILE name. Die letzte READ-Anweisung vor der jetzt gegebenen REWRITE-Anweisung für die angegebene Datei wurde nicht vollständig ausgeführt. I0T425I GET/PUT STRING STATEMENT REQUESTS DATA BEYOND STRING SIZE. Die GET/PUT STRING-Anweisung nimmt Bezug auf Daten außerhalb der Kette. I0T426I LENGTH OF STRING TO BE DISPLAYED OR REPLIED IS ZERO. Die Kettenlänge für eine durch die DISPLAY-Anweisung auszugebende oder von empfangene Kette ist gleich Null. , ihr zu I0T427I INVALID name IN STRING VALUE USED FOR GET STRING DATA STATEMENT. Ungültiger name für Kettenvariable in STRING-Option der GET STRING DATA-AnWeisung. I0T428I INVALID CONTROL FORMAT ITEM IN GET/PUT STTRING STATEMENT. Ungültiges Steuerformatelement in der GET/PUT STRING-Anweisung* I0T429I EVENT VARIABLE CANNOT BE REUSED AS LONG AS INCÖMPLETE (RECORD I/O) FOR FILE name. Die EVENT-Variable kann nicht erneut verwendet werden» solange das Ereignis (satzweise E/A) für die FILE-Konstante "name" nicht beendet ist. IOT«0I EVENT VARIABLE CANNOT BE REUSED AS LONG AS INCOMPLETE («DISPLAY1). Die EVENT-Variable kann nicht erneut verwendet werden» solange (DISPLAY) nicht beendet ist. das Ereignis IOT«1I EVENT VARIABLE CANNOT BE REUSED AS LONG AS INCOfIPLETE, USED WITH ENTRY name. Die EVENT-Variable, die mit der ENTRY-Konstanten name verbunden ist» kann nicht erneut verwendet werden» solange das Ereignis nicht beendet ist. I0T«2I ERROR ON IMPLICIT 'CLOSE1. Fehler bei der Ausführung einer impliziten CLOSE-Anweisung. IOT500I CONVERSION ON-CONDITION RAISED BY THE SIGNAL STATEMENT. CONVERSION-Ausnahmezustand durch SIGNAL-AnWeisung erzwungen. I0T501I INVALID CHARACTER FOR F-FORMAT ITEM IN 'GET STRING1 OR 'GET FILE1. 11 Ungültiges Zeichen für das F-Formatelement bei "GET STRING oder "GET FILE11 ("CONVERSION11). I0T502I INVALID CHARACTER FOR F-FORMAT ITEM IN 'GET FILE1. Ungültiges Zeichen für das F*-Formatelernent bei "GET FILE" ("CONVERSION"). I0T503I INVALID CHARACTER FOR E-FORMAT ITEM IN 'GET STRING1 OR 'GET FILE1. Ungültiges Zeichen für das E-Formatelement bei "GET STRING" oder "GET FILE" ("CONVERSION11). I0T50M INVALID CHARACTER FOR E-FORMAT ITEM IN 'GET FILE1. Ungültiges Zeichen für das E-Formatelement bei "GET TRANSMIT ("CONVERSION"). FILE" nach dem Auftreten von I0T505I INVALID CHARACTER FOR B-FÖRMAT ITEM IN 'GET STRING1 OR 'GET FILE1. Ungültiges Zeichen für das B-Formatelement bei "GET STRING" oder "GET FILE" ("CONVERSION11). I0T506I INVALID CHARACTER FOR B-FORMAT ITEM IN 'GET FILE1. Ungültiges Zeichen für das B-Formatelement bei "GET TRANSMIT ("CONVERSION"). FILE" nach dem Auftreten von I0T507I INVALID CHARACTER FROM CHARACTER STRING TO ARITHMETIC CONVERSION. Ungültiges Zeichen bei der Umwandlung vom Zeichenkettentyp in den arithmetischen Typ ("CONVERSION"). IOT508I INVALID CHARACTER TO ARITHMETIC CONVERSION IN 'GET FILE1 OR '"PUT FILE". Ungültiges Zeichen bei der Umwandlung in den arithmetischen Typ bei "GET/PUT FILE" ("CONVERSION"). I0T509I INVALID CHARACTER TO ARITHMETIC CONVERSION IN »GET FILE1. Ungültiges Zeichen bei der Umwandlung in den arithmetischen Typ bei "GET FILE" nach dem Auftreten von "TRANSMIT" ("CONVERSION"). IOT510I INVALID CHARACTER FROM CHARACTER STRING TO BIT STRING CONVERSION. Ungültiges Zeichen bei der Umwandlung vom Zeichenkettentyp in den ("CONVERSION"). Bitkettentyp I0T511I INVALID CHARACTER TO BIT STRING CONVERSION IN 'GET GET FILE 1 OR 'PUT PUT FILE F I L E1. Ungültiges Zeichen bei d der Umwandlung in den Bitkettentyp bei "GET FILE" ("CONVERSION"). "PUT FILE" ("CONVERSION") oder 125 PL1-0C Benutzungshinweise 10/89 I0T512I INVALID CHARACTER TO BIT STRING CONVERSION IN 'GET FILE 1 . Ungültiges Zeichen bei 11 der Umwandlung11 in den Bitkettentyp bei "GET FILE" Auftreten von "TRANSMIT ("CONVERSION ). DOS-4/ES nach dem I0T513I INVALID CHARACTER FOR CONVERSION TO PICTURE CHARACTER STRING. Ungültiges Zeichen bei Umwandlung in den PICTURE-Zeichenkettentyp ("CONVERSION"). I0T5I« INVALID CHARACTER TO PICTURE CONVERSION IN 'GET FILE1 OR 'PITT FILE1. Ungültiges Zeichen bei der Umwandlung in den PICTURE-Zeichenkettentyp bei "GET FILE" oder "PUT FILE" ("CONVERSION"). I0T515I INVALID CHARACTER TO PICTURE COMVERSION IN 'GET FILE1. Ungültiges Zeichen bei der Umwandlung in den PICTURE-Zeichenkettentyp bei "GET FILE" nach dem Auftreten von TRANSMIT ("CONVERSION"). I0T516I INVALID CHARACTER IN DECIMAL P-FORMAT ITEM IN ,'GET STRING1. Ungültiges Zeichen in Daten für P-Formatelernent (Dezimal) bei "GET STRING" ("CONVERSION"). I0T517I INVALID CHARACTER IN DECIMAL P-FORMAT ITEM IN "GET STRING1. Ungültiges Zeichen in Daten für P-Formatelement (Dezimal) bei "GET STRING" nach dem Auftreten von TRANSMIT ("CONVERSION"). I0T518I INVALID CHARACTER IN CHARACTER P-FORMAT ITEM FOR GET FILE STATEMENT Ungültiges Zeichen in Daten für P-Formatelement (Zeichenkette) bei "GET FILE" ("CONVERSION"). I0T519I INVALID CHARACTER IN CHARACTER P-FORMAT ITEM FOR GET FILE STATEMENT. Ungültiges Zeichen in Daten für P-Formatelement (Zeichenkette) bei "GET FILE" nach dem Auftreten von TRANSMIT ("CONVERSION"). I0T540I UNDEFINED SOURCE ATTRIBUTES. Undefinierte Quellattribute bei "GET STRING LIST/DATA" ("CONVERSION"). I0T541I UNDEFINED SOURCE ATTRIBUTES ON INPUT. Undefinierte Quellattribute bei "GET FILE LIST/DATA" ("CONVERSION"). I0T542I UNDEFINED SOURCE ATTRIBUTES ON INPUT AFTER TRANSMIT ON-CONDITION. Undefinierte Quellattribute bei "GET FILE LIST/DATA" nach Auftreten von "TRANSMIT". IOT600I SUBSCRIPTRANGE ON-CONDITION RAISED BY THE SIGNAL STATEMENT. SUBSCRIPTRANGE-Ausnahmezustand durch SIGNAL-AnWeisung erzwungen. IOT601I SUBSRIPTRANGE ON-CONDITION RAISED. SUBSCRIPTRANGE-Ausnahmezustand trat auf. I0T610I AREA ON-CONDITION RAISED BY THE SIGNAL STATEMENT. AREA-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T611I AREA VARIABLE TO SMALL, ASSIGNMENT NOT EXECUTED. AREA-Variable zu klein, Zuweisung wurde nicht ausgeführt ("AREA"). I0T612I INSUFFICIENT STORAGE IN THE AREA FOR ALLOCATION. Zu wenig freier Platz in der AREA-Variablen ("AREA"). I0T620I CONDITION ON-CONDITION RAISED BY THE SIGNAL STATEMENT, CONDITION(name) SIGNALLED. CONDITION(name)-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T621I KEY ON-CONDITION RAISED BY THE SIGNAL STATEMENT. KEY-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. IOT630I KEYED RECORD NOT FOUND. Satz mit diesem Schlüssel nicht gefunden ("KEY"). I0T631I ATTEMPT TO ADD DUPLICATE KEY. Es wurde versucht» einen Satz mit bereits vorhandenem Schlüssel einzufügen ("KEY"). IOT632I KEY SEQUENCE ERROR. Fehler in der Schlüsselfolge ("KEY"). I0T633I KEY CONVERSION ERROR. Umwandlungsfehler für Schlüssel ("KEY"). I0T634I KEY SPECIFICATION ERROR. Schlüsselangabe fehlerhaft ("KEY"). IOT635I KEY SPECIFIES POSITION OUTSIDE THE DATA SET LIMITS. Angegebener Schlüssel bezieht sich auf eine Position außerhalb der Datengrenzen ("KEY"). I0T636I INSUFFICIENT DASD SPACE TO ADD KEYED RECORD. Kein Speicherplatz für das Hinzufügen dieses Satzes ("KEY"). IOT637I KEY OF RECORD TO BE OUTSIDE OF THE RANGE(S) SPECIFIED FOR THE DATA SET. Der angegebene Schlüsselwert liegt außerhalb des Schlüsselbereichs für die Datei. 126 PL1-0C Benutzungshinweise 10/89 D0S-4/ES I0T640I RECORD ON-CONDITION RAISED BY THE SIGNAL STATEMENT. RECORD-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T641I RECORD VARIABLE SMALLER THAN RECORD SIZE. Länge der Satzvariablen kleiner als Satzlänge ("RECORD"). IOT642I RECORD VARIABLE LARGER THAN RECORD SIZE. Länge der Satzvariablen größer als Satzlänge ("RECORD11). I0T643I RECORD VARIABLE IN WRITE OR LOCATE STATEMENT HAS ZERO LENGTH. Satz der Länge Null in WRITE- oder LOCATE-Anweisung ("RECORD11). I0T644I ZERO LENGTH RECORD HAS BEEN READ FROM REGIONAL DATA SET. Satz der Länge Null wurde von der REGIONAL-Datei gelesen ("RECORD"). I0T645I RECORD VARIABLE TOO SHORT TO CONTAIN EMBEDDED KEY. Satzvariable zu klein» um den eingefügten Schlüssel zu enthalten ("RECORD11). IOT700I UNDEFINEDFILE ON-CONDITION RAISED BY THE SIGNAL STATEMENT. UNDEFINEDFILE-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T701I CONFLICTING FILE ATTRIBUTES IN DECLARE AND OPEN STATEMENT. Widerspruch zwischen Dateiattributen in DECLARE- und OPEN-Anweisung ("UNDEFINEDFILE11). I0T702I CONFLICT BETWEEN FILE ATTRIBUTES AND DEVICE TYPE. Widerspruch zwischen Dateiattributen und Gerätetyp ("UNDEFINEDFILE"). IOT703I BLOCKSIZE OR RECORD FORMAT NOT SPECIFIED. Blocklänge nicht angegeben ("UNDEFINEDFILE"). IOT705I I/O ERROR ON OPEN OF DIRECT OUTPUT REGIONAL DATA SET. E/A-Fehler beim Eröffnen der REGIONAL DIRECT OUTPUT-Datei hat fehlerhaftes Formatieren zur Folge ("UNDEFINEDFILE"). IOT706I VALUE OF LINESIZE OR PAGESIZE OPTION GREATER THAN ALLOWED MAXIMUM. Der Wert in der LINESIZE- oder PAGESIZE-Option ist größer als das implementierungsbedingte Maximum. I0T707I INCORRECT BLOCKSIZE AND/OR LOGICAL RECORD SIZE. Fehlerhafte Blocklänge und/oder Satzlänge. IOT709I PASSWORD INVALID OR NOT SPECIFIED. Fehlerhaftes oder fehlendes Kennwort (Password). I0T712I CONFLICT BETWEEN ATTRIBUTES AND PHYSICAL ORGANIZATION OF DATA SET. Widerspruch zwischen Attributen und Dateiorganisation. IOT713I KEY LENGTH NOT SPECIFIED. Schlüssellänge nicht angegeben. IOT715I INVALID KEYLOC VALUE. Ungültiger KEYLOC-Wert. IOT716I RECORD FORMAT INCOMPAT3BLE WITH FILE ORGANIZATION. Satzformat nicht mit Dateiorganisation verträglich. I0T718I CONFLICTING ENVIRONMENT OPTION VALUE AND DATA SET VALUE. Widerspruch in KEYLOC-, KEYLENGTH- und/oder RECSIZE-Werten zwischen Option und Definition der Datei. ENVIRONMENT- I0T720I ERROR ON OPEN FILE name. Fehler beim Eröffnen der FILE-Konstanten "name". I0T722I RECORD FORMAT NOT SPECIFIED Satzformat für RECORD FILE-Konstante nicht angegeben. IOT723I INVALID KEYLENGTH OPTION, KEYLENGTH IS GREATER THAN 255 OR NEGATIVE. Ungültige KEYLENGTH-Option, SchlüsseHänge größer als 255 oder negativ. IOT72« INVALID OR CONFLICTING ENVIRONMENT OPTIONS. Ungültige oder sich widersprechende ENVIRONMENT-Optionen. IOT726I 'NCP' OR "STRNO1 VALUE GREATER THAN 1. NCP- oder STRNO-Wert größer als 1. I0T740I 'CLOSE1 FAILED AFTER LAST 'OPEN1 FOR DATA SET. Nach der letzten OPEN-Anweisung für die Datei fehlte die CLOSE-Anweisung. IOT750I INVALID STACKER OPTION. Ungültiger STACK-Parameter. IOT760I ENDFILE ON-CONDITION RAISED BY THE SIGNAL STATEMENT. ENDFILE-Ausnahmezustand durch SIGNAL-Anweisung erzwungen. I0T761I ENDFILE ON-CONDITION RAISED. ENDFILE-Ausnahmezustand trat auf. 127 PL1-0C Benutzungshinweise 10/89 D0S-4/ES IOT762I ATTEMPT TO READ BEYOND THE END OF FILE. Es wurde versucht» nach Dateiende zu lesen. IOT770I TRANSMIT ON-CONDITION RAISED BY THE SIGNAL STATEMENT. TRANSMIT-Ausnahmezustand durch SIGNAL-AnWeisung erzwungen. I0T771I UNCORRECTABLE ERROR WHILE TRANSMITTING OUTPUT DATA. Nicht-korrigierbarer Fehler bei der Übertragung von Ausgabedaten. I0T772I UNCORRECTABLE ERROR WHILE TRANSMITTING INPUT DATA. Nicht-korrigierbarer Fehler bei der Übertragung von Eingabedaten. IOT777I TRANSMIT ON-CONDITION RAISED. DATA CANNOT BE READ. TRANSMIT-Ausnamhezustand trat auf. Daten können nicht gelesen werden. I0T778I name ON-CONDITION RAISED BY THE SIGNAL STATEMENT. "name"-Ausnahmezustand durch SIGNAL-AnWeisung erzwungen. 1 I0T779I INVALID ITEM IN STREAM OR INCORRECT DATA LIST FOR 'GET FILE DATA . Ungültige Daten oder Fehlerhafte Datenliste für "GET FILE DATA11. IOT800I TASK VARIABLE ALREADY ASSOCIATED WITH ACTIVE TASK W Ulf ENTRY name. TASK-Variable bereits mit aktiver Aufgabe mit dem Eingangspunkt "name11 verbunden. IOT801I EVENT VARIABLE SPECIFIED ALREADY ASSOCIATED WITH FILE name. In COMPLETION-Pseudovariable angegebene EVENT-Variable bereits mit FILE-Konstante "name11 verbunden. IOT802I ASSIGNMENT TO AN EVENT VARIABLE THAT IS ALREADY ACTIVE. Versuch der Zuordnung zu einer EVENT-Variablen, die bereits aktiv ist. I0T803I EVENT VARIABLE ALREADY ASSOCIATED WITH I/O OPERATION FOR FILE name. EVENT-Variable bereits mit E/A-Operation für FILE-Konstante "name11 verbunden. I0T804I INSUFFICIENTT MAIN STORAGE AVAILABLE FOR SUBTASK. Nicht genügend Hauptspeicherplatz für Unteraufgabe verfügbar. I0T805I NUMBER OF ACTIVE TASKS EXCEEDS MAXIMUM, TASK NOT CREATED. Anzahl der aktiven Aufgaben erreichte das Maximum, eine weitere Aufgabe wurde nicht gebildet. IOT806I 'WAIT1 IN ON-UNIT FOR EVEKT VARIABLE ALREADY ACTIVE IN TASK. WAIT-Anweisung in ON-Einheit für eine EVENT-Variable, die bereits in dieser Aufgabe im Zusammenhang mit einer E/A-Operation aktiv ist. I0T807I CONFLICTING CALL STATEMENT WITH TASK OPTION AND 'PUT FILE (SYSPRBTT)1. Widerspruch zwischen CALL-AnWeisung mit TASK-Option und "PUT FILE (SYSPRINT)"Anweisung. I0T808I CALL STATEMENT WITH TASK OPTION SPECIFIES AN UNKNOWN ENTRY POINT. CALL-Anweisung mit TASK-Option bezieht sich auf einen unbekannten Eingangspunkt. I0T809I ATTEMPT TO CALL FORTRAN OR COBOL ROUTINES IN TWO TASKS SIMULTANEOUSLY. Es wurde versucht, FORTRAN/COBOL-Routinen in zwei Aufgaben parallel zu verwenden. I0T811I EVENT VARIABLE SPECIFIED ALREADY ASSOCIATED WITH A DISPLAY STATEMEOT. In COMPLETION-Pseudovariable angegebene EVENT-Variable ist bereits mit einer DISPLAY-Anweisung verbunden. I0T812I ASSIGNMENT TO EVENT VARIABLE ALREADY ASSOCIATED WITH A 'DISPLAY1. Versuch der Zuordnung zu einer EVENT-Variablen, die bereits mit einer DISPLAY-Anweisung verbunden ist. IOT813I EVENT VARIABLE ALREADY ASSOCIATED WITH A DISPLAY STATEMENT. EVENT-Variable ist bereits mit einer DISPLAY-Aneisung verbunden. IOT81M EVENT VARIABLE SPECIFIED ALREADY ASSOCIATED WITH ENTRY name. In COMPLETION-Pseudovariable angegebene EVENT-Variable bereits mit "name1* verbunden. Eingangspunkt I0T815I ASSIGNMENT TO EVENT VARIABLE ALREADY ACTIVE AND USED WITH ENTRY name. Zuordnung zu einer EVENT-Variablen, die bereits aktiv ist und mit dem Eingangspunkt 11 name" verbunden ist. I0T816I EVENT VARIABLE ALREADY ACTIVE AND USED WITH ENTRY name. Ereignisvariable bereits aktiv und mit dem Eingangspunkt "name" verbunden* I0T830I PROGRAM HAS BEEN TERMINATED BY AN ABEND» USER CODE=nnnn. Programmabbruch durch ABEND, Benutzerbeendigungscode=nnnn. I0T831I PROGRAM HAS BEEN TERMINATED BY AN ABEND, SYSTEM CGDE=sss Programmabbruch durch ABEND, Systembbendigungscode=sss. 128 PL1-0C Benutzung sh in weise 10/89 D0S-4/ES Sachwortverzeichnis * PROCESS 6 ) ADD 12 ) DEL 12 ) END 12 ) EXC 12 ) MIX 12 ) REP 12 XINCLUDE-Anweisung KNOTE 21 ZPAGE 21 XSKIP 6> 21 Informationen (I) INCLUDE 9 INDE^ED 34 IOTGRTBB 27 IOTGTRAN 5 IS-Dateien 34 ISASIZE 17 Jobsteueranweisungen AGGREGATE 7 AGGREGATE MAP 22 ALIGN 6 Anweisungsnummer im Druckerprotokoll Argumente/Parameter 49 Assembler-Routinen 40 ATR 7 ATTRIBUTE TABLE 22 Auflistungen 21 Aufrufparameter von SORT 58 AusfUhrungshäufigkeit 8 BCD 7 Benutzerroutinen (SORT) Bibliotheken 19 Block 25 Blockniveau 9 60 CALL PLIRETC-Anweisung 18 CALLING TRACE 64 CATAL 6, 14, 20 CATALCname) 7, 20 CATALR-Anweisung 7, 20 CATMOD 7, 19, 20 CKARSET 7 CLINE 7 COMPILE 8 COMPILER DIAGHOSTICS 24 COMPILER SOURCE LISTING 21 CONSECUTIVE 26 COKTROL 8 COUNT 8, 17 CROSS REFERENCE TABLE 22 CRRCT 6, 12 CSTMT 8 CTLMCC 27 CTLSTD 27 15 Katalog isieren - von Objektmoduln 20 - von Phasen 20 - von Quellprogrammen 19 10 Langform/Kurzform der Nachrichten 9 L3BR 19» 20 LINE 9 LINECNT 9 LINK 6> 9 LIST 6, 9 Liste der - Dateigruppierungen 22 - externen Symbole 22 - Hexadezimaladressen des Objektmoduls ~ Nachrichten des Compilers 24 - Nachrichten des PL1-MakroInterpreters 21 - Nachweise der Symbole 22 - Objektmoduls 23 - Optionen 21 21 - PL1-Makrointerpreter-Eingabe - PL1-Quelltexteingabe 21 - Speicherplatz-Anforderungen 22 - STATIC IHTERNAL-Variablen 23 - Symbole 22 - Variablen des PL1-Programms 23 LISTTX 6 LMESSAGF 9 LNKEDT 14* 19, 20 LOG 6 23 MACDCK 9 MACRO 9 MACROINTERPRETER XNPUT 21 MAP 9 MARGINI 9 MIF-Anweisung 18 Moduln der PL1-Bibliothek 66 D (Satzformat) 25 Dateibeschreibung 25 Dateien 25 Dateikennsätze 25 Dateiorganisationsformen 26 DB (Satzformat) 25 DECK 6> 8 DKOI 7 Dimensionsanzahl der Felder 1 Drucker-Steuerzeichen 10» 26 DSA 41 DTF-Tabelle 26 DUMP 6 dynamischer Speicherbereich 41 effektive Programmierung 50 Elemente-Längen 7 ERRS 6 EXTERNAL SYMBOL DICTIONARY 22 EXTREF 8 F (Satzformat) 25 FB (Satzformat) 25 Fehler (E) 13 Fehlergrad 8 Fernverarbeitungsmethode TAM FILE INFORMATION 64 FLAG 8 FLOW 8, 17 FLOH ANALYSIS 65 Folgenummern 7» 9 13 39 Hexadezimaladressen (Objektmodul) Nachrichten 13, 14 Nachrichten (Ausführung) 122 Nachrichten (Übersetzung) 13, 77 Nachrichtenklassen 13 NEST 9 nichtkorrigierbare Fehler (U) 14 Niveau der Strukturbezeichnung 7 Objektmodul 13» 14 OBJECT MODULE LISTING 23 OFFSET 9 OFFSET LISTING FOR STATEMENTS OPLIST 9 OPT 9 Optimierung 9» 50 OPTION-Jobsteuerung 6 Optionen des Compilers 7* 9 OPTIONS LISTING 21 PHASE*** 15 PLICALLA 41 PLICALLB 41» 48 PLICKPT 63 PLICOWCT 13 PLJDUMP 64 PLIFLOW 13 PLIMAXN 13 PLISRTx 58 PLISTART 13p 41 PLZTABS 27 PLIXOPT 17 PL1-spezifische SteueranWeisung PREPROCESSOR DIAGNOSTICS 21 PRINT-Datei 26 PROCESS-Anweisung 6 23 € 129 PL1-0C Benutzungshinweise Programmausführung 15 Programmverbinder 14> 19> 20 Protokollierung der Verzweigungen Prozeduren (Jobsteuerung) 16 Pufferung 26 STORAGE REQUIREMEKTS 22 SUBLZB 6 SYM 6 Symbolnachweis 6, 10, 22 Symboltabelle 6, 22 Symbolverzeichnis 7 SYNTAX 10 Syntaxanalyse 10 SYSCOPY 19 SYSIN 28 SYSIPT 5, 11 SYSLIB 14 SYSLNK 5» 14 SYSLST 5 SYSPARM 6, 16 SYSPCH 5 SYSPINT 28 SYSPRINT 28 8 Quelltext als Kartenstapel 11 Quelltext im Druckerprotokoll 9 Quelltext im Eingabesatz 10 Quelltextmodifizierung 12 REGIONAL 29 REPORT 17 Resultatcpde 14> 18 Satzadressierung 29 Satzformate 25 Schachtelungstiefe 9 schwere Fehler (S) 13 SECIND-Eintrittspunkt 34 Sekundärindex 34 SEQUENCE 9 SKZP 6, 21 SORMGIN 10 SORT 58 Sortierprogrammgenerator 58 SOURCE 10 SOURCE2 10 Speicherabzug 63 Speicherausdruck 64 Speicherplatz-Anforderungen 10 Speicherplatzverwendung Spuradressierung 29 STAE 17 Standard-Steuerzeichen 27 Stapeliiber Setzung 11 Steueranweisungen für die Auflistung Steuerung des Compilers 6 STATIC INTERNAL STORAGE MAP 23 STWT 10 STORAGE 10 DQS-4/ES 10/89 Tabelle zur Speicherorganisation 9 Teilbibliothek 6 temporäre Quelltextmodifizierung 6> 12 temporäre Phase 15 TITLE-Option (OPEM-Anweisung) 26 TRAGE OF PLl CONTROL BLOCKS 65 U (Satzformat) 25 UPSI 16 USAREA 16 V (Satzformat) 25 VARIABLE STORAGE MAP 23 VB (Satzformat) 25 Verzeichnis externer Symbole Harnungen (K) Niederanlauf 13 63 21 XREF 6, 10 Zeichensatz-Auswahl Zeilennummer 7 6, 7 Literaturverzeichn is [1] [21 £3] £41 [53 C C C C C [71 [8] C 3154-0411 C 3706-0148 t6 3 130 3025-0311 3074-0312 3084-0118 3084-0315 3104-0224 C 3114-0317 Systemsteuerung Supervisormakros ISAM - Indexsequentielle Zugriffsmethode Ein- und Ausgabe-Steuersystem Sortierprogramm Hilfsprogramme TAM - Erweiterte Zugriffsmethode für Datenfernverarbeitung PLl-Optimierungscompiler Sprachbeschreibung 8