Supported RPG Features

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.