HIGH-VALUES plays two roles in Easytrieve that confuse beginners during 11.6 migration. As figurative constant syntax it means every byte of a field is hexadecimal FF—the collating-high pattern used for sentinel keys, end-of-table markers, and uninitialized detection in comparisons. As a reserved word it cannot be the spelling of your own field in DEFINE or FILE—even if your COBOL shop used HIGH-VALUES as a column alias for thirty years. This page focuses on reserved-word rules, migration renames, how constant usage survives migration, and when to read the dedicated constants tutorial for byte-level behavior on MIXED and DBCS fields.
Reserved word status applies to identifiers—names you declare. Figurative constant status applies to syntax in IF and MOVE where HIGH-VALUES is a keyword object, not a field you own. The compiler distinguishes IF WS-KEY HIGH-VALUES (test the pattern) from DEFINE HIGH-VALUES W 10 A (illegal on 11.6 function mode). Both uses share spelling, which is why migration guides explicitly list HIGH-VALUES next to LOW-VALUES and SET.
| Use | Allowed on 11.6? | Example |
|---|---|---|
| Field name in DEFINE/FILE | No | DEFINE HIGH-VALUES W 5 A — rename |
| IF test | Yes | IF SORT-KEY HIGH-VALUES |
| MOVE fill | Yes | MOVE HIGH-VALUES TO WS-KEY |
| TITLE literal text | Yes in quotes | TITLE 'HIGH-VALUES REPORT' — literal safe |
HIGH-VALUES appeared on Easytrieve figurative constants for decades, but 11.6 function mode New Reserved Words migration treats the token as actively reserved for identifiers. Release notes and Differences Between Releases repeat the list. Inventory before cutover especially in COBOL-to-Easytrieve conversions that mirrored figurative names literally in working storage.
No. Choose WS-HIGH-SENTINEL, FL-MAX-KEY-FILL, KEY-HI-VALUE, or dictionary names that describe business meaning without the exact token. Qualification WORK:HIGH-VALUES does not salvage the name—the base token is reserved. Procedure labels HIGH-VALUES. PROC are equally unsafe.
Field-class condition tests whether every byte matches X’FF’ for single-byte and MIXED subjects per Broadcom language reference. DBCS fields test each double byte. The condition is false if any byte differs—partial high bytes do not count as HIGH-VALUES.
123456789101112DEFINE WS-KEY W 10 A JOB INPUT MASTER IF WS-KEY HIGH-VALUES DISPLAY 'KEY STILL AT SENTINEL' END-IF IF END-KEY NOT HIGH-VALUES PRINT DETAIL-RPT END-IF FINISH MOVE HIGH-VALUES TO WS-KEY STOP
MOVE HIGH-VALUES fills all bytes with FF. That is useful for initializing a key area above normal EBCDIC data before loading a table. It is not the same as assigning the largest valid packed decimal wage or rate—packed fields interpret nibbles as digits; all FF may be invalid numerically and fail later IF NUMERIC tests.
Beginners equate high values with biggest number. In Easytrieve, HIGH-VALUES is a byte pattern independent of field type. For P packed fields, compare against a literal or computed business maximum. For binary integers, use explicit limits. For character keys, HIGH-VALUES often sorts above printable data—confirm encoding and file collating rules for your site.
LOW-VALUES is the low-byte counterpart (X’00’) and is separately reserved as an identifier. Shops often use both sentinels in the same table walk—HIGH-VALUES at top, LOW-VALUES at bottom, valid data in between. Migration must rename both if used as field names. Constant syntax IF FIELD LOW-VALUES remains valid. See the LOW-VALUES reserved word page for the low-side migration story.
HIGH-VALUES is a magic fill pattern—the darkest crayon in every square of a row. You can still ask the robot is this row all dark crayon when checking a box. But you cannot name your box HIGH-VALUES because that is the robot's name for the dark crayon trick. After the upgrade, rename your box and keep using the magic words in tests and MOVE commands.
1. HIGH-VALUES as reserved word means:
2. Single-byte HIGH-VALUES representation is:
3. MOVE HIGH-VALUES TO packed amount field:
4. Legacy DEFINE HIGH-VALUES after 11.6:
5. Correct high sentinel test syntax: