Easytrieve LOW-VALUES Reserved Word

LOW-VALUES is the low-byte figurative constant in Easytrieve—hexadecimal 00 in every byte of a field when you MOVE or test LOW-VALUES. It is not the same as spaces, which are printable EBCDIC blank characters. It is also a reserved word: you cannot name your own field LOW-VALUES when compiling for 11.6 function mode. Legacy programs that used LOW-VALUES as a column name for a status flag or a COBOL-aligned marker need renames before migration, while IF EMP-NAME NOT LOW-VALUES style logic stays in place. This page explains dual roles, migration scanning, contrast with SPACES and NULL, packed decimal cautions, and pointers to the constants tutorial for exhaustive byte rules.

Progress0 of 0 lessons

Identifier Reservation Versus Constant Syntax

The compiler parses LOW-VALUES twice in the grammar: as a reserved token in identifier tables rejecting DEFINE LOW-VALUES, and as a figurative constant object in IF and MOVE where the keyword follows or precedes a field per field-class condition rules. Migration failures happen when shops rename only half the program—constant tests compile while an overlooked COPY member still DEFINE LOW-VALUES.

LOW-VALUES usage matrix
Pattern11.6 status
DEFINE LOW-VALUES ...Compile error—rename field
IF ADDR NOT LOW-VALUESValid constant test
MOVE LOW-VALUES TO WS-SLOTValid fill with X’00’
TITLE 'LOW VALUES LIST'Literal in quotes—safe

Version and Migration List

LOW-VALUES appears on the New Reserved Words list for 6.4 to 11.6 function mode moves, paired with HIGH-VALUES. Differences Between Releases documentation repeats the warning that field names matching these tokens cause errors. Run identifier scans early; fixes are mechanical renames but easy to miss in rarely compiled archived jobs.

Can LOW-VALUES Be a Variable Name?

No. Use WS-LOW-FLAG, FL-INIT-STATUS, SLOT-EMPTY-IND, or names describing business state without the token LOW-VALUES. Even if your mainframe standard copied COBOL figurative names into data elements, Easytrieve 11.6 enforces reservation at compile time.

Constant Behavior Summary

IF FIELD LOW-VALUES is true only when every byte is X’00’. One trailing zero byte in an otherwise blank name does not qualify if other bytes hold spaces or letters. MOVE LOW-VALUES clears bytes to binary zero, which may display as blank on some terminals but is not identical to MOVE SPACES for sorting, SQL export, or audit trails.

text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DEFINE WS-NAME W 20 A DEFINE WS-SLOT W 8 A INIT-PROC. PROC MOVE LOW-VALUES TO WS-SLOT END-PROC JOB INPUT FILEA IF WS-NAME NOT LOW-VALUES PRINT NAME-RPT WS-NAME END-IF IF WS-SLOT LOW-VALUES MOVE 'EMPTY' TO STATUS-MSG END-IF STOP

LOW-VALUES Versus SPACES

Sentinel comparison
ItemLOW-VALUESSPACES / literals
Typical byteX'00' per byteX'40' EBCDIC space per byte
MeaningOften uninitialized or cleared binaryKnown blank character
IF syntaxIF FIELD LOW-VALUESCompare to literal or blank function per release
SQL exportMay differ from NULL or blank columnOften maps to blank column

Normalizing LOW-VALUES to spaces without logging destroys evidence that data was never entered versus intentionally blank. Pick one shop rule for display and document it in program headers when both sentinels appear in the same application.

LOW-VALUES Versus HIGH-VALUES Reserved Pair

Table walks sometimes initialize slots with LOW-VALUES and use HIGH-VALUES as upper sentinel. Both tokens are reserved identifiers on 11.6. Constant syntax for both remains. Migration projects should grep for both tokens in DEFINE and FILE lines in one pass.

Numeric and Packed Fields

MOVE LOW-VALUES to packed or zoned fields creates a byte pattern that may not equal numeric zero in business terms. For counters, prefer MOVE ZERO or MOVE 0 with typed fields. Use LOW-VALUES where byte semantics matter—bitmaps, flags, or character slots in mixed overlays.

Migration Checklist

  1. Grep DEFINE and FILE for token LOW-VALUES as a whole word.
  2. Review COBOL copybooks imported with DCLGEN or translator tools.
  3. Keep IF/MOVE LOW-VALUES logic unless business rules change.
  4. Retest reports that skipped records based on NOT LOW-VALUES.
  5. Update data dictionary entries that show LOW-VALUES as element name.

Common LOW-VALUES Mistakes

  • Treating NOT LOW-VALUES as not blank without hex verification.
  • Leaving DEFINE LOW-VALUES in one obsolete copybook.
  • MOVE LOW-VALUES to packed amount expecting numeric zero display.
  • Removing constant tests during migration instead of renaming fields.
  • Confusing NULL SQL concept with LOW-VALUES bytes.

Explain It Like I'm Five

LOW-VALUES means every little box in a row is filled with the emptiest possible color— darker than empty air, like switched-off pixels. Spaces are like writing a real blank with a pencil you can see. The robot has a special phrase LOW-VALUES for checking or filling that darkest color. You cannot name your lunch box LOW-VALUES anymore, but you can still ask the robot to fill a row with that darkest color when you mean it.

Exercises

  1. Rename a legacy DEFINE LOW-VALUES field and update references.
  2. Write IF tests for LOW-VALUES and NOT LOW-VALUES on a 10-byte name field.
  3. Explain in writing why LOW-VALUES differs from MOVE SPACES for a name field.
  4. List two numeric field types where MOVE LOW-VALUES is a poor choice.
  5. Pair migration grep patterns for LOW-VALUES and HIGH-VALUES in one script outline.

Quiz

Test Your Knowledge

1. LOW-VALUES reserved word blocks:

  • User field names spelled LOW-VALUES, not IF FIELD LOW-VALUES tests
  • All use of X’00’ bytes
  • MOVE SPACES only
  • BLANK test functions

2. Each byte in LOW-VALUES is:

  • X'00'
  • X'FF'
  • EBCDIC space X'40'
  • Numeric zero only

3. LOW-VALUES is the same as spaces for character fields:

  • No—spaces are X’40’ in EBCDIC, LOW-VALUES is X’00’
  • Yes always
  • Only in SQL
  • Only in reports

4. Legacy DEFINE LOW-VALUES on 11.6:

  • Requires rename
  • Maps to SPACES
  • Ignored
  • Becomes NULL

5. Typical sentinel use:

  • Mark unused table slots or detect uninitialized bytes
  • Maximum sort key
  • Page number reset
  • JCL CLASS assignment
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 LOW-VALUES reserved word and figurative constant