General
Application area: | Contingency processing; see "Contingency processes" |
Macro type: | Type S, MF format 1: standard/L/E form; see "S-type macros" |
Macro description
The DISCO macro is provided to stop a routine from being used as a contingency process. The contingency process definition is disabled and therefore cannot be specified in subsequent POSSIG or SOLSIG macros.
Any subsequent SOLSIG and POSSIG macros which refer to the disabled contingency definition are rejected (return information). Any SOLSIG and POSSIG requests already queued (i.e. macros which have already been issued) are not affected when the contingency definition is disabled; in other words, the contingency process is initiated when the appropriate events occur.
Macro format and description of operands
DISCO |
{{CONAME=name / CONAMAD={addr / (r)} [,CONAMLN=lengrh]} / COID={addr / (r)}} [,PARMOD=24 / 31] [,MF=L / (E,..)] |
CONAME=name
Specifies the name of the contingency process.
CONAMAD=
Specifies the address of the name of the contingency process.
addr
Symbolic address of the field containing the name.
(r)
Register containing the address.
CONAMLN=
Specifies the length in bytes of the contingency process name.
The length must be at least 1 byte and not more than 54 bytes.
If the operand is missing, the length attribute of the CONAMAD operand is assumed if CONAMAD=addr is specified; if CONAMAD=(r), the maximum length (54) is assumed.
length
Length of the contingency process name.
COID=
Specifies the ID of the contingency process. The ID is supplied to the user by means of the ENACO macro.
addr
Symbolic address of a 4-byte field containing the ID.
(r)
Register containing the address.
MF=
For a general description of the MF operand, its operand values and any subsequent operands (e.g. for a prefix), see "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).
Return information and error flags
Register R1 contains the operand list address.
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
A structured return code (aa=primary return code, bb=secondary return code) relating to the execution of the DISCO macro is transferred in register R15.
X'bb' | X'aa' | Meaning |
X'04' | X'00' | Contingency definition disabled. |
X'10' | X'04' | Invalid operands specified. No action taken. |
X'14' | X'04' | Invalid name or ID. No contingency process with the specified ID exists. No action |
For examples, see the section “Contingency processes” ("Contingency processes") and the POSSIG macro description ("POSSIG - Post signal request").