| Value | Description |
|---|---|
*ON / *OFF |
Indicator true/false |
*YES / *NO |
Boolean synonyms for *ON/*OFF |
*ZERO / *ZEROS |
Numeric zero or character '0..0' |
*BLANK / *BLANKS |
Character blank-fill |
*NULL |
Null pointer |
*HIVAL |
Highest value for the field's type (packed, zoned, integer, date, time, timestamp, character). On a character field this is every byte x'FF', filling the declared width |
*LOVAL |
Lowest value for the field's type; on a character field every byte x'00' |
*ALL'pattern' |
Character field filled by repeating the pattern to the field length |
The three width-sensitive constants above - *HIVAL and *LOVAL on a character
field, and *ALL'pattern' - fill the target's declared width, and they do so
identically whether the target is a standalone field or a subfield of a data
structure:
DCL-DS rec;
hi CHAR(5) POS(1) INZ(*HIVAL); // x'FFFFFFFFFF'
lo CHAR(5) POS(6) INZ(*LOVAL); // x'0000000000'
pt CHAR(5) POS(11) INZ(*ALL'AB'); // "ABABA", not "AB "
END-DS;
A VARYING field is the exception: it has no declared width to fill, so the
constant is its whole value and %LEN follows from that.
Date format codes (*USA, *ISO, *EUR, *JIS, *MDY, *DMY, *YMD, *JUL, *CYMD, *CMDY, *CDMY, *MDYY, *DMYY, *YYMD, *LONGJUL, *LONGJOBRUN and their separator-less 0 variants), time format codes (*HMS, *ISO, *USA, *EUR, *JIS), and duration codes (*DAYS, *MONTHS, *YEARS, *HOURS, *MINUTES, *SECONDS, *MSECONDS) are supported as BIF and opcode arguments.