Easytrieve HIGH-VALUES Reserved Word

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.

Progress0 of 0 lessons

Reserved Word Versus Figurative Constant

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.

Two faces of HIGH-VALUES
UseAllowed on 11.6?Example
Field name in DEFINE/FILENoDEFINE HIGH-VALUES W 5 A — rename
IF testYesIF SORT-KEY HIGH-VALUES
MOVE fillYesMOVE HIGH-VALUES TO WS-KEY
TITLE literal textYes in quotesTITLE 'HIGH-VALUES REPORT' — literal safe

Version Introduced as Reserved

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.

Can HIGH-VALUES Be Used as a Variable Name?

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.

Valid Constant Syntax After Migration

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.

text
1
2
3
4
5
6
7
8
9
10
11
12
DEFINE 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.

HIGH-VALUES Versus Numeric Maximum

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.

Migration Scenarios

  • COBOL copybook field HIGH-VALUES imported into Easytrieve DEFINE—rename in Easytrieve layer.
  • Report column labeled HIGH-VALUES as field name driving masks—rename field; keep literal title if needed.
  • SQL alias HIGH-VALUES in automatic FILE—change alias in SELECT or use host variable rename.
  • Macro-generated DEFINE lines—patch macro template once for all generated programs.

Relation to LOW-VALUES Reserved Word

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.

Testing and Debugging

  1. DISPLAY field in hex after MOVE HIGH-VALUES to verify all bytes FF.
  2. Compare IF FIELD HIGH-VALUES against explicit hex reference on failing record.
  3. Retest packed fields separately—do not assume numeric validity.
  4. Recompile after rename; search for qualified references FILE:HIGH-VALUES.

Common HIGH-VALUES Mistakes

  • Using DEFINE HIGH-VALUES on 11.6.
  • Expecting largest valid wage after MOVE HIGH-VALUES to packed amount.
  • Confusing one byte FF in a field with full-field HIGH-VALUES condition.
  • Deleting IF HIGH-VALUES tests during migration instead of renaming fields only.
  • Assuming COBOL and Easytrieve rules differ for the constant—they align on X’FF’ bytes.

Explain It Like I'm Five

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.

Exercises

  1. Rename DEFINE HIGH-VALUES to WS-KEY-SENTINEL and update one IF reference.
  2. Write IF and MOVE examples using constant syntax only.
  3. Explain why MOVE HIGH-VALUES to packed salary is risky.
  4. List three migration sources that might hide field name HIGH-VALUES.
  5. Contrast identifier reservation with figurative constant usage in one paragraph.

Quiz

Test Your Knowledge

1. HIGH-VALUES as reserved word means:

  • You cannot DEFINE a field named HIGH-VALUES but can still use IF FIELD HIGH-VALUES
  • HIGH-VALUES was removed from the language
  • Only JCL may reference HIGH-VALUES
  • HIGH-VALUES is only for reports

2. Single-byte HIGH-VALUES representation is:

  • X'FF' in each byte
  • X'00'
  • EBCDIC space
  • Numeric 99999

3. MOVE HIGH-VALUES TO packed amount field:

  • May create invalid numeric data—not a typed maximum
  • Always sets largest valid business value
  • Is required at EOF
  • Converts to zero

4. Legacy DEFINE HIGH-VALUES after 11.6:

  • Must rename before compile
  • Auto-converts to constant
  • Works in JOB only
  • Ignored

5. Correct high sentinel test syntax:

  • IF KEY-FIELD HIGH-VALUES
  • IF HIGH-VALUES KEY-FIELD
  • IF EOF HIGH-VALUES
  • IF HIGH-VALUES NUMERIC
Published
Read time13 min
AuthorMainframeMaster
Reviewed by MainframeMaster teamVerified: Broadcom Easytrieve 11.6 New Reserved Words and figurative constantsSources: Broadcom Easytrieve 11.6 New Reserved Words, Symbols and Reserved Words, field-class conditionsApplies to: Easytrieve HIGH-VALUES reserved word and figurative constant