Depending on the format type, different record fields are used
for output and input. The variable x stands for the
written or read value.
%f):%i):ZRVL ... FFVL is set
(is not 0):x=RVAL&MASKRVAL=x&MASKRVAL right by
SHFT bits, compares the result with all of
ZRVL ... FFVL, and sets VAL
to the index of the first match.
MASK is initialized to NOBT 1-bits shifted
left by SHFT. If MASK==0 (because
NOBT was not set) it is ignored, i.e.
x=RVAL and RVAL=x.
ZRVL ... FFVL is set
(all are 0):x=VALVAL=x%{):x=VALVAL=x%s):VAL, one of ZRST
or FFST is written. VAL must be in the range
0 ... 15.ZRST ...
FFST, VAL is set accordingly.
Other input strings are not accepted.
During initialization, the @init handler is executed, if
present. All format converters work like in normal operation.