Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

RELM - Speicherbereich freigeben

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Arbeiten mit virtuellem Speicher; siehe "Arbeiten mit virtuellem Speicher"

Makrotyp:

S-Typ, MF-Format 1: Standardform/L-/E-Form;

siehe "S-Typ-Makroaufrufe"


Makrobeschreibung

Der Makro RELM gibt einen zusammenhängenden Speicherbereich des Klasse-6-Speichers des Aufrufers frei. Der Speicherbereich wird als Vielfaches von einer Seite (4 KByte) freigegeben.
Es ist erlaubt, Speicher freizugeben, der nicht vorher mit REQM angefordert wurde. Mittels mehrerer REQM-Makroaufrufe angeforderter Speicherplatz kann mit einem RELM freigegeben werden, sofern diese Bereiche zusammenhängend sind.

Makroaufrufformat und Operandenbeschreibung

RELM

[{zahl / (r)}],{seite / (r)}

[,PARMOD=24 / 31]

,MF=S / (E,...) / L

zahl
Anzahl der Seiten (4 KByte), die freigegeben werden sollen.
Voreinstellung: zahl = 1.

(r)
r = Register, das die Angabe zahl enthält.

seite
Seitennummer der ersten Seite (4 KByte) des Bereichs, der freigegeben werden soll.

(r)
r = Register, das die Seitennummer enthält.

MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.

PARMOD=

steuert die Makroauflösung. Es wird entweder die 24-Bit- oder die 31-Bit-Schnittstelle generiert.
Wird PARMOD nicht spezifiziert, so erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für den Assembler (= 24-Bit-Schnittstelle).

24
Die 24-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 24-Bit-Adressen (Adressraum <= 16 MB).

31
Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB). Datenlisten beginnen mit dem Standardheader.

Rückinformation und Fehleranzeigen

Während der Makrobearbeitung enthält Register R1 die Adresse des Datenbereichs.

R15:

+---------------+
|   |   |   |   |
|0|0|0|0|0|0|a|a|
+---------------+

Über die Ausführung des Makros RELM wird im Register R15 ein Returncode übergeben.

X'aa'

Erläuterung

X'00'

Der Speicherplatz wurde freigegeben.

X'04'

Funktion nur zum Teil ausgeführt.
Im freizugebenden Bereich sind auch nicht angeforderte Seiten enthalten. Die Adresse der
ersten nicht angeforderten Seite wird in Register R1 übergeben. Alle Seiten des Bereichs
bis zu dieser Adresse wurden freigegeben, alle Seiten danach sind im selben Zustand wie
vor dem RELM-Aufruf.

X'0C'

Funktion nicht ausgeführt.

  • Unzulässige Adresse des Datenbereichs.

  • Unzulässiger Aufbau des Datenbereichs.

  • Der freizugebende Bereich liegt (zum Teil) außerhalb des Klasse-6-Speichers.

  • Der freizugebende Bereich überschneidet sich (zum Teil) mit einem Memory Pool.

  • Der freizugebende Bereich überschneidet sich (zum Teil) mit einem FASTPAM EN-
    VIRONMENT / IOAREA POOL. Die Freigabe des Bereichs ist erst nach der entsprechenden
    FASTPAM-Disable-Funktion möglich.

  • Der freizugebende Bereich überschneidet sich (zum Teil) mit einem DIV-Fenster. Die
    Freigabe des Bereichs ist erst nach der entsprechenden DIV-Unmap-Funktion
    möglich.

bei 31-Bit-Schnittstelle:

Beispiele

  1. Das Benutzerprogramm belegt die Seiten 1 bis 12.
    Durch RELM 3,10 werden ab Seite 10 drei Seiten freigegeben, also die Seiten 10, 11 und 12.

  2. Das Benutzerprogramm belegt die Seiten 1 bis 6.
    Durch RELM ,5 wird ab Seite 5 eine Seite freigegeben, also Seite 5.