Diese Subanweisungen gelten für Elemente vom Basistyp R, C und L und müssen direkt auf die MODIFY-ELEMENT-Anweisung folgen. Sie werden bis zur MODIFY-ELEMENT-Subanweisung END-MODIFY aus dem Anweisungsstrom gelesen.
Die MODIFY-ELEMENT-Subanweisungen führen Änderungen in Bindemodulen, Phasen und Bindelademodulen durch.
LMS sammelt zunächst diese Subanweisungen und führt sie erst nach Eingabe der Subanweisung END-MODIFY aus.
Übersicht der MODIFY-ELEMENT-Subanweisungen
Diese Subanweisungen sind abhängig vom gewählten Elementtyp und nur für Elemente der Typen R, C oder L erlaubt.
MODIFY-ELEMENT-Subanweisung | Elementtyp | Funktion |
ADD-REP-RECORD | R | Erzeugen von REP-Sätzen |
ADD-TEXT-MODIFICATION | R,C,L | Ändern von Textsätzen |
DELETE-RECORD-TYPE | R,C,L | Löschen von Satzarten |
END-MODIFY | R,C,L | Beenden der Änderungen |
MODIFY-CSECT-ATTRIBUTES | R | Ändern der CSECT-Attribute |
MODIFY-MODIFICATION- DEFAULTS | R,C,L | Festlegen der globalen Parameter in der |
REMOVE-MODIFICATION | R,C,L | Zurücknehmen von Korrekturen |
RENAME-SYMBOLS | R | Umbenennen von CSECT-, ENTRY-, |
Hinweis
Als MODIFY-ELEMENT-Subanweisungen sind auch die SDF-Standardanweisungen (siehe "SDF-Standardanweisungen für LMS") zulässig.
ADD-REP-RECORD
REP-Sätze erzeugen
Die MODIFY-ELEMENT-Subanweisung ADD-REP-RECORD fügt REP-Sätze in den Bindemodul ein. Diese REP-Sätze wertet der Dynamische Bindelader (DBL) aus.
ADD-REP-RECORD ist nur für Bindemodule (Elemente des Typs R) zulässig.
ADD-REP-RECORD | ||||||||||||||||
|
ADDRESS = <x-string 1..8>(...)
Angabe der Adresse, an der das durch MODIFY-ELEMENT gewählte Element geändert werden soll.
BASE-ADDRESS = *MODIFICATION-DEFAULT / <x-string 1..8>
Basisadresse. BASE-ADDRESS wird auf ADDRESS addiert. Die so entstehende Korrekturadresse muss bei Großmoduln großmodul-relativ (nicht CSECT-relativ) sein.
NEW-CONTENTS = <x-string 1..100> / <c-string 1..50 with-low>
Ersetzungstext, der zeichenweise oder sedezimal angegeben wird.
Wird der Text zeichenweise angegeben, darf er höchstens 50 Zeichen lang sein. Ein Hochkomma im Text muss doppelt angegeben werden.
Wird der Text sedezimal angegeben, darf er höchstens 100 Zeichen lang sein.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0230 | Syntaxfehler |
ADD-TEXT-MODIFICATION
Textsätze ändern
Die MODIFY-ELEMENT-Subanweisung ADD-TEXT-MODIFICATION korrigiert Textsätze eines Bindelademoduls und Phasen. Die Subanweisung erzeugt einen Korrekturjournalsatz (TXTP-Satz), der den ursprünglichen Inhalt des Textbereiches enthält.
Mit der Anweisung MODIFY-MODIFICATION-DEFAULTS kann eingestellt werden, dass kein Korrekturjournalsatz erzeugt wird. Korrekturen ohne Korrekturjournalsatz sind über die Subanweisung REMOVE-MODIFICATION nicht rückgängig zu machen.
Sie ist für Elemente der Typen R, C und L zulässig.
ADD-TEXT-MODIFICATION | ||||||||||||||||||||||||||||||||||||
|
ADDRESS = <x-string 1..8>(...)
Angabe der Adresse, an der das durch MODIFY-ELEMENT gewählte Element geändert werden soll.
BASE-ADDRESS = *MODIFICATION-DEFAULT / <x-string 1..8>
Basisadresse.
Die Basisadresse wird auf ADDRESS addiert. Die so entstehende Korrekturadresse ist:
bei ... | relativ zu: |
Moduln | CSECT-Anfang |
Phasen | Phasen-Anfang |
LLMs | CSECT-Anfang, wenn ein CSECT angegeben wurde |
SUB-LLM-Anfang, wenn ein Sub-LLM angegeben wurde (der gewünschte | |
SLICE-Anfang, wenn eine SLICE angegeben wurde (die gewünschte | |
LLM-Anfang, wenn nichts angegeben wurde und das LLM nur aus einem |
NEW-CONTENTS = <x-string 1..100>(...) / <c-string 1..50 with-low>(...)
Ersetzungstext, der zeichenweise oder sedezimal angegeben wird.
OLD-CONTENTS = *ANY / <x-string 1..100> / <c-string 1..50 with-low>
Originaltext des Elementes. Der Originaltext muss immer in der Länge des Ersetzungstextes angegeben werden.
MODIFICATION-ID = *MODIFICATION-DEFAULT / *SPACES / <c-string 1..12 with-low>
Identifikation, die im Änderungsjournalsatz (TXTP-Satz) gehalten wird. Wird SPACES angegeben, so werden als Identifikation Blanks verwendet.
Für Elementtyp R und C sind nur 8 Zeichen erlaubt.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0230 | Syntaxfehler |
DELETE-RECORD-TYPE
Löschen von Satzarten
Die MODIFY-ELEMENT-Subanweisung DELETE-RECORD-TYPE schließt aus dem Eingabeelement folgende Satzarten aus:
ISD-Sätze (gilt nur für Typ R Elemente)
LSD-Sätze (gilt nur für Typ R Elemente)
REP-Sätze (gilt nur für Typ R Elemente)
INCLUDE-Sätze (gilt nur für Typ R Elemente)
TXTP-Sätze (gilt für Typ R, C und L Elemente)
DSDD-Sätze (gilt nur für Typ R Elemente)
Sie ist für Elemente der Typen R, C und L zulässig.
DELETE-RECORD-TYPE | ||||||||||||
|
TYPE = *TXTP(...) / list-poss(5): *ISD / *LSD / *REP / *DSDD / *INCLUDE
Legt die Satzart fest, die nicht vom Eingabeelement ins Ausgabeelement übernommen werden soll.
MODIFICATION-ID = *ALL / *SPACES / <c-string 1..12 with-low>
Es werden nur die TXTP-Sätze mit der angegebenen Identifizierung gelöscht.Für Elementtyp R und C sind nur 8 Zeichen erlaubt.
Diese Identifizierung gilt nur für dieses DELETE-RECORD-TYPE.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0230 | Syntaxfehler |
Hinweis
Gelöschte Satzarten sind unwiderruflich verloren.
END-MODIFY
Beenden der MODIFY-ELEMENT-Subanweisungen für Elementtypen R, C und L
END-MODIFY schließt die Folge der MODIFY-ELEMENT-Subanweisungen ab. Anschließend prüft LMS alle Anweisungen auf Durchführbarkeit und führt die Anweisungsfolge aus.
END-MODIFY |
Diese Subanweisung besitzt keine Operanden.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
2 | 0 | LMS1002 | Anweisung abgebrochen durch Benutzer |
1 | CMD0230 | Syntaxfehler | |
32 | LMS1002 | Interner Fehler | |
64 | LMS1003 | Fehler während Mengenverarbeitung (Wildcard) bei mindestens einem Element oder einer Datei | |
64 | LMS1004 | Sonstige Fehler | |
130 | LMS0041 | Systemadressraum erschöpft |
MODIFY-CSECT-ATTRIBUTES
Verändern von Programmabschnittsmerkmalen
Die MODIFY-ELEMENT-Subanweisung MODIFY-CSECT-ATTRIBUTES verändert Programmabschnittsmerkmale.
Sie ist nur für Bindemodule (Elemente des Typs R) zulässig.
MODIFY-CSECT-ATTRIBUTES |
NAME = *ALL / <c-string 1..8 with-low> / <text 1..8> ,VISIBLE = *UNCHANGED / *YES / *NO ,READ-ONLY = *UNCHANGED / *YES / *NO ,PAGE-ALIGNMENT = *UNCHANGED / *YES / *NO ,RESIDENCY-MODE = *UNCHANGED / 24 / *ANY ,ADDRESSING-MODE = *UNCHANGED / 24 / 31 / *ANY |
Zu Beginn der Anweisung MODIFY-ELEMENT sind die Operanden mit dem unmittelbar auf *UNCHANGED folgenden Wert voreingestellt.
NAME = *ALL / <c-string 1..8 with-low> / <text 1..8>
Name des CSECTs, dessen Attribute geändert werden sollen. Es können alle CSECTs oder ein spezielles CSECT angegeben werden.
VISIBLE = *UNCHANGED / *YES / *NO
Maskierung (Sichtbarkeit) der Programmabschnitte.
VISIBLE = *YES
Die angegebenen Programmabschnitte werden nicht maskiert (siehe [5]).
Für diese Abschnitte wird ein Sekundärnamenssatz angelegt und die Namen werden im Sekundärnamensverzeichnis eingetragen.
VISIBLE = *NO
Die angegebenen Programmabschnitte werden maskiert. Für sie wird weder ein Sekundärnamenssatz angelegt noch werden die Namen im Sekundärnamensverzeichnis eingetragen. Ein eventuell vorhandener Sekundärnamenssatz wird gelöscht.
Werden alle Programmabschnitte eines Bindemoduls maskiert, wird ein Bibliothekselement ohne Sekundärnamenseintrag erzeugt. Dieser Bindemodul ist nur über Primärnamen auffindbar.
Der Modulname kann jedoch aus dem ersten Programmabschnittsnamen mit Hilfe aller ESD-Sätze abgeleitet werden, da dazu auch maskierte Programmabschnitte verwendet werden.
Hinweis
Bindemodule, die nur maskierte Programmabschnitte besitzen, kann der Binder nicht bearbeiten, z.B. Ausschließen eines Bindemoduls bei der Autolink-Funktion.
Der Operand VISIBLE ist auch auf ENTRYs anwendbar.
READ-ONLY = *UNCHANGED / *YES / *NO
Schreibschutz
READ-ONLY = *YES
Legt fest, dass die angegebenen Programmabschnitte zur Ablaufzeit des Programms nur gelesen werden dürfen.
READ-ONLY = *NO
Erlaubt, dass während des Programmlaufs auch in die angegebenen Programmabschnitte geschrieben werden darf.
PAGE-ALIGNMENT = *UNCHANGED / *YES / *NO
Seitenausrichtung
PAGE-ALIGNMENT = *YES
Legt fest, dass die angegebenen Programmabschnitte auf Seitengrenze ausgerichtet werden sollen, d.h. die Ladeadresse soll ein Vielfaches von dezimal 4096 bzw. sedezimal 1000 sein.
PAGE-ALIGNMENT = *NO
Lässt Seitengrenzen unberücksichtigt. Die Programmabschnitte beginnen jeweils bei der nächsten Doppelwortadresse, die sich beim Binden ergibt.
RESIDENCY-MODE = *UNCHANGED / 24 / *ANY
Lademodus
RESIDENCY-MODE = 24
Legt fest, dass die angegebenen Programmabschnitte in den Adressraum unterhalb der 16 MB Grenze zu laden sind.
RESIDENCY-MODE = *ANY
Es existiert keine Einschränkung.
ADDRESSING-MODE = *UNCHANGED / 24 / 31 / *ANY
Ablaufmodus
ADDRESSING-MODE = 24
Legt fest, dass die angegebenen Programmabschnitte im 24-Bit-Modus ablauffähig sein sollen.
ADDRESSING-MODE = 31
Legt fest, dass die angegebenen Programmabschnitte im 31-Bit-Modus ablauffähig sein sollen.
ADDRESSING-MODE = *ANY Der Ablaufmodus ist beliebig.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0230 | Syntaxfehler |
MODIFY-MODIFICATION-DEFAULTS
Festlegen von globalen Parametern
Die MODIFY-ELEMENT-Subanweisung MODIFY-MODIFICATION-DEFAULTS legt innerhalb der MODIFY-ELEMENT-Anweisung die globalen Defaultwerte fest.
Sie ist für Elemente der Typen R, C und L zulässig.
MODIFY-MODIFICATION-DEFAULTS | ||||||||||||||||||||||||||||||||||||||||||||
|
Zu Beginn der Anweisung MODIFY-ELEMENT sind die Operanden mit dem unmittelbar auf *UNCHANGED folgenden Wert voreingestellt.
CSECT-NAME = *UNCHANGED / *NONE / <c-string 1..32 with-low> / <text 1..32>
Name des zu korrigierenden CSECTs. (Nur relevant für Typ R und L.)
CSECT-NAME = *NONE
Wird kein CSECT-Name angegeben, wird bei R-Moduln der erste CSECT-Name verwendet.
PHASE-SEGMENT = *UNCHANGED / *ROOT / <name 1..8>
Angabe des Phasen-Segmentes, das korrigiert werden soll. Wird kein Segment angegeben, wird das erste Segment (*ROOT) verwendet.
LLM-PART = *UNCHANGED / *NONE / *SLICE(...) / *SUB-LLM(...)
Wird kein LLM-Teil angegeben, wird der gesamte LLM genommen.
LLM-PART = *SLICE(...)
Angabe der SLICE, die korrigiert werden soll.
NAME = <structured-name 1..32>
Name der SLICE, die korrigiert werden soll.
LLM-PART = *SUB-LLM(...)
Angabe des SUB-LLM, der korrigiert werden soll.
PATH-NAME = <c-string 1..255 with-low> / <text 1..255>
Der zu korrigierende SUB-LLM wird durch seinen Pfadnamen bestimmt.
MODIFICATION-LOGGING = *UNCHANGED / *YES(...) / *NO
Bestimmt die Erzeugung der TXTP-Sätze.
MODIFICATION-LOGGING = *YES(...) Es sollen TXTP-Sätze erzeugt werden.
MODIFICATION-ID = *UNCHANGED / *SPACES / <c-string 1..12 with-low>Identifikation, die im Änderungsjournalsatz (TXTP-Satz) gehalten wird. Wird SPACES angegeben, so werden als Identifikation Blanks verwendet.
Für Elementtyp R und C sind nur 8 Zeichen erlaubt
MODIFICATION-LOGGING = *NO
Es sollen keine TXTP-Sätze erzeugt werden.
BASE-ADDRESS = *UNCHANGED / <x-string 1..8>
Sedezimale Angabe der Basisadresse. Zu Beginn der Anweisung MODIFY-ELEMENT ist die Basisadresse 0 eingestellt.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0230 | Syntaxfehler |
REMOVE-MODIFICATION
Rückgängigmachen von Korrekturen
Die MODIFY-ELEMENT-Subanweisung REMOVE-MODIFICATION macht Korrekturen aus einem früheren Korrekturlauf unter den folgenden Voraussetzungen rückgängig:
Es wurde ein Korrekturjournalsatz mit der MODIFY-ELEMENT-Subanweisung ADD-TEXT-MODIFICATION erstellt, d.h. der Operand MODIFICATION-LOGGING=*YES (siehe "MODIFY-ELEMENT-Subanweisungen für Elementtypen R, C und L") war gesetzt.
Sie ist für Elemente der Typen R, C und L zulässig.
REMOVE-MODIFICATION |
MODIFICATION-ID = *ALL / *SPACES / <c-string 1..12 with-low> |
MODIFICATION-ID = *ALL / *SPACES / <c-string 1..12 with-low>
Für Elementtyp R und C sind nur 8 Zeichen erlaubt.
Es werden nur die Korrekturen mit der angegebenen Identifikation rückgängig gemacht. Wird eine Identifikation angegeben, müssen dafür Korrekturjournalsätze existieren. Wird keine Identifikation (*ALL) angegeben, werden alle Korrekturen, für die ein Korrekturjournalsatz vorliegt, rückgängig gemacht.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
RENAME-SYMBOLS
Umbenennen von Symbolen
Die MODIFY-ELEMENT-Subanweisung RENAME-SYMBOLS ändert den Namen von einer CSECT, einem ENTRY, COMMON, EXTRN, WXTRN oder einer V-Konstante. Jede Umbenennung verursacht eine Änderung von ESD-Sätzen. LMS prüft die Eindeutigkeit der Namen innerhalb aller ESD-Sätze und weist eine Umbenennung zurück, wenn der neue
Name bereits existiert.
In LSD-Sätzen wird eine Umbenennung nicht durchgeführt. Deswegen kann mit AID (siehe [13]) nach einer Änderung des CSECT-Namens nicht mehr symbolisch getestet werden. Wird maschinennah getestet, müssen bei Qualifikationen in AID die neuen Namen verwendet werden.
Die MODIFY-ELEMENT-Subanweisung RENAME-SYMBOLS ist nur für Bindemodule (Elemente des Typs R) zulässig.
RENAME-SYMBOLS |
SYMBOL-NAME = <text 1..8> ,SYMBOL-TYPE = *CSECT / *ENTRY / *COMMON / *EXTRN / *VCON / *WXTRN ,NEW-NAME = <text 1..8> |
SYMBOL-NAME = <text 1..8>
Legt den Symbolnamen fest, der umbenannt werden soll.
SYMBOL-TYPE = *CSECT / *ENTRY / *COMMON / *EXTRN / *VCON / *WXTRNLegt den Typ des Symbols fest, dessen Name geändert werden soll.
NEW-NAME = <text 1..8>
Neuer Symbolname.
Der Name sollte den BINDER-Konventionen für den Sonderdatentyp <symbol> genügen (siehe [5]). Allerdings prüft LMS nicht auf diese Konvention.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0230 | Syntaxfehler |
Hinweis
Auch maskierte (invisible) CSECT/ENTRY-Namen können umbenannt werden.