General
Application area: | Working with virtual memory; see "Working with virtual memory" |
Macro type: | Type S, MF format 1: standard/L/E form; see "S-type macros" |
Macro description
The RELM macro releases a contiguous area of the caller's class 6 memory. Memory is released in multiples of one page (4 Kb) . It is permissible to release memory space which has not previously been requested with REQM. Memory areas previously requested by various REQM macro calls can be released by means of a single RELM call if they are contiguous.
Macro format and description of operands
RELM |
[{number / (r)}],{page / (r)} [,PARMOD=24 / 31] ,MF=S / (E,...) / L |
number
Number of pages (4 Kb) to be released.
Default value: number = 1.
(r)
Register containing “number”.
page
Page number of the first page (4 Kb) of the area to be released.
(r)
Register containing “page”.
MF=
For a general description of the MF operand, its operand values and any subsequent operands (e.g. for a prefix), see section “S-type macros”. The valid MF values are given at the start of the macro description under “Macro type” and are included in the macro format.
PARMOD=
Controls macro expansion. Either the 24-bit or the 31-bit interface is generated.
If PARMOD is not specified here, macro expansion is performed according to the specification for the GPARMOD macro or according to the default setting for the assembler (= 24-bit interface).
24
The 24-bit interface is generated. Data lists and instructions use 24-bit addresses (address space <= 16 Mb).
31
The 31-bit interface is generated. Data lists and instructions use 31-bit addresses (address space <= 2 Gb). Data lists start with the standard header.
Return information and error flags
During macro processing, register R1 contains the operand list address.
R15:
+---------------+ | | | | | |0|0|0|0|0|0|a|a| +---------------+
A return code relating to the execution of the RELM macro is transferred in register R15.
X'aa' | Meaning |
X'00' | Memory space was released |
X'04' | Function only partially executed. |
X'0C' | Function not executed.
|
If the 31-bit interface is used:
In the event of errors in the initialization of the standard header, the return codes X'0001FFFF' / X'0003FFFF' / X'0004FFFF' are additionally transferred; see the table“Standard return codes” (Standard header).
No return codes are transferred in the standard header.
Examples
Let the user program occupy pages 1 - 12.
RELM 3,10 releases three pages starting at page 10, i.e. pages 10, 11 and 12.Let the user program occupy pages 1 - 6.
RELM ,5 releases one page starting at page 5, i.e. page 5 is released.