General
Application area: | Input/output of files and data records; see "Input/output" |
Macro type: | Type S, MF format 1: 24-bit interface: standard/E/L form |
The file SYSLST is a temporary (system) file created by the operating system for each task. The contents of SYSLST are output to printer on task termination, and the file is erased. The ASSIGN-SYSLST command gives users the option of assigning their own (cataloged) file, an S variable or a PLAM library element to the SYSLST file.
In contrast to the SYSLST file, the (system) files SYSLST01 to SYSLST99 are only effective when cataloged files have been assigned to them (see also the SYSFL macro).
Macro description
The user can employ the WRLST macro to write a record to the file SYSLST or to one of the files SYSLST01, ..., SYSLST99. Each macro call transfers a record to the specified file. The entry is made in the SYSLST file, provided that the NUMBER operand is not specified.
Macro format and description of operands
WRLST |
{record,error[,NUMBER=n][,PARMOD= {24 / 31}] / (1)} [,MF=(D,pre) / D / I / (E,..) / L / C / (C,pre)]] |
record
Symbolic address of the record to be written to SYSLST. The record starts with the record length field, followed by print control characters and the data to be transferred.
Format (example):
record DC Y (recend-record) DS CL2 Reserved bytes DC X'nm' Print control character data DC C'data-record' Record to be written recend EQU *
Note
The print control character specifies the type of paper feed desired on the printer. The valid print control characters are listed below:
X'4n' | Advance n lines before printing and 1 line after printing. The range of n |
X'0n' | Advance n lines after printing. The range of n is (0 - F)16 representing a |
X'Cn' | Skip immediately to channel n of the printer carriage control tape. The |
X'8n' | Print and skip to channel n of the printer carriage control tape. The range |
error
Symbolic address to be branched to if one of the following errors occurs during execution of the WRLST macro (see Return information):
unrecoverable error
operand error
truncation error
memory space saturation
In the event of an error, register R14 contains the address of the next instruction after the WRLST macro call. The error code is transferred in register R15.
31-bit interface: If error=0 (address X'00..0') is specified, the program is continued with the instruction following the WRLST macro.
NUMBER=
Specifies one of the files SYSLST01 to SYSLST99.
n
(2-digit) number in the range (01,02, ..., 99).
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.
(1)
Register R1 contains the operand list address. The list must be aligned on a word boundary.
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.
A prefix (pre = 1..3 letters) can be specified in the D form of the macro, as shown in the macro format. There is no default value.
The standard header is initialized with MF=I.
If MF=E is specified, the standard header of the operand list is not automatically initialized. The operand list address must be transferred in register R1 and must be aligned on a word boundary. The layout is given below.
Layout of the data area:
Addressing | Byte | Contents |
24-bit mode | 0 | SYSLSTn (n = number of the SYSLST file). |
1-3 | Address of the record to be written (operand “record”). | |
4-7 | Address to be branched to in the event of errors (operand “error”). | |
31-bit mode | 0-7 | Standard header; format: |
8-11 | Address to be branched to in the event of errors (operand “error”). | |
12-15 | Address of the record to be written (operand “record”). | |
16 | SYSLSTn (number of SYSLST file; operand NUMBER) |
Notes on the macro call
On normal termination, processing is continued with the instruction following the macro expansion. Truncation occurs when the length of the record exceeds 137 or 165 bytes (4-byte length field + 1 byte print control + 132 or 160 characters) in accordance with the printer type specified in the SYSFL macro. Register R14 contains the address of the instruction following the macro. Register R15 is unchanged when no error occurs.
If SYSLST was not cataloged, the following occurs: SYSLST is output to a printer after job termination. After output, the SYSLST file is erased.
If SYSLST or SYSLSTn is assigned to a cataloged file, the file can also be processed on a long-term basis. In this case, the user is responsible for printing or erasing the file.
Return information and error flags
R15:
+---------------+ | | | | | |0|0|0|0|0|0|a|a| +---------------+
A return code relating to the execution of the WRLST macro is transferred in register R15.
X'aa' | Meaning |
X'04' | Unrecoverable error. |
X'08' | Operand error. |
X'0C' | The record to be written is truncated. Record contents (without record length field) overflow |
X'10' | No more memory space for the file assigned to SYSLSTn. The last PAM page has been |
31-bit interface:
No return code is transferred in the standard header. A user dump is produced if the UNIT field of the standard header is supplied with incorrect values.
The two leftmost bytes of register R15 are not used.
If SYSLST is assigned to a cataloged file that does not allow secondary memory space requests (S-ALLOC=0 in the file catalog) and no more memory space is available in this file, the return code X'10' is issued.