Mit der Anweisung @UNLOAD können Ladeeinheiten oder einzelne Module, die mit @USE oder @RUN geladen wurden, wieder entladen werden. Gleichzeitig werden Anweisungsroutinen, die der entladenen Einheit zugewiesen sind, deaktiviert und deren Benutzeranweisungssymbole ungültig gesetzt.
Operation | Operanden | F-Modus, L-Modus |
@UNLOAD | { UNIT=entry | MODULE=entry | (name) } |
UNIT=entry | Die Ladeeinheit ( |
MODULE=entry | |
Der Modul mit dem Namen | |
name | Name des Moduls, der entladen werden soll. Dieses Format wird nur noch |
Wenn die Anweisung @UNLOAD zum Entladen einer Ladeeinheit bzw. eines Moduls geführt hat, bereinigt der EDT anschließend die Liste der vereinbarten Anweisungsroutinen. Dabei wird eine Anweisungsroutine nur über die bei entry
bzw. name
angegebene Zeichenkette identifiziert, ohne die Ladestruktur zu berücksichtigen. Alle Anweisungsroutinen mit dem angegebenen Namen werden deaktiviert und deren Benutzeranweisungssymbole werden ungültig gesetzt. Anweisungsroutinen, die mit @USE ...,ENTRY=* definiert
wurden, werden dabei nicht berücksichtigt, d.h. das entsprechende Benutzeranweisungssymbol bleibt gültig und die entladene Ladeeinheit wird beim nächsten Aufruf mit dem entsprechenden Einsprungpunkt ggf. neu geladen.
Die Anweisung @UNLOAD gehört zu den sicherheitsrelevanten Anweisungen des EDT (siehe hierzu auch Abschnitt „Zugriffsschutz“). In nichtunterbrechbaren Systemprozeduren im Dialog und bei Eingabe von einer Datei (Lesen mit RDATA
von SYSDTA
ungleich SYSCMD
, Abarbeiten einer Start-Prozedur) wird die Anweisung abgewiesen.
Der Versuch, Module zu entladen, die intern vom EDT nachgeladen wurden, wird mit der Meldung EDT1907
abgewiesen.
Die gleiche Meldung wird auch ausgegeben, wenn der Modul aus anderen Gründen nicht entladen werden kann. Mögliche Ursachen sind ein falscher Modulname, die Angabe eines Moduls, der mehrfach benutzbar geladen ist sowie die Angabe eines CSECT
- oder ENTRY-
Namens, der bei der @USE-bzw. @RUN-Anweisung nicht zu einem Ladevorgang geführt hat.
Hinweis
Bei Angabe von entry
sind bis zu 32 Zeichen lange Namen erlaubt, Groß-und Kleinschreibung wird unterschieden. Für name
sind nur 8 Zeichen erlaubt, eingegebene Kleinbuchstaben werden in Großbuchstaben umgewandelt.
Achtung
Der EDT löscht bei @UNLOAD nur die Benutzeranweisungssymbole, denen die angegebene Ladeeinheit bzw. der angegebene Modul direkt zugewiesen war. Benutzeranweisungssymbole, die sich auf andere Einsprungpunkte (ENTRY
) innerhalb der Ladeeinheit beziehen, bleiben erhalten und verweisen anschließend auf ungültige Adressen. Der Anwender ist selbst dafür verantwortlich, dass derartige Benutzeranweisungssymbole nach dem Entladen nicht mehr verwendet werden.