Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Program Storage (2.3)


The Program Storage screens (2.3) allow you to view and edit data areas (for Assembler), allocated variables (for PL/I and C), and linkage sections and working storage (for COBOL).

If the program was compiled with the BMC Language Processor, data names are displayed along with their contents. If the Language Processor was not used, working storage for COBOL displays in dump format. In either format, change the contents of working storage by typing over the displayed data. The dump format is not available for Assembler, C, or PL/I.

Access this screen by typing the number 3 on the Debugging Facilities Menu, or use one of the following primary commands shown as follows:

  • Defined Storage screen (DS) for Assembler
  • Variable Storage screen (VS) for C or PL/I
  • Working Storage screen (WS) for COBOL.

DS, VS, and WS all work for any of the listed languages.

Working Storage Screen (2.3) for COBOL

 ------------------------------- WORKING STORAGE (2.3) --------------------C024
COMMAND ===>                                                   SCROLL ===> CSR
 MODULE: CWDEMCB2 CSECT: CWDEMCB2          COMPILED: 09 JUN 2005 - 11.23.01


   LV ----- COBOL DATANAME ---------- -- ATTRIBUTES -- ----+---10----+---20--->
  01 EMPLOYEE-INFORMATION            GROUP
  02 FILLERA                         X(67)            JOHN T DOE1 TELEGRAPH RD
  02 FILLERB                         X(67)            JOE SCHMOE2 TELEGRAPH RD
  02 FILLERC                         X(67)            CLARK KENT3 TELEGRAPH RD
  02 FILLERD                         X(67)            MARY LAMB 4 TELEGRAPH RD
  02 FILLERE                         X(67)            THOM THUMB5 TELEGRAPH RD
  01 EMPLOYEE-INFO                   GROUP
  02 E-DETAILED-INFO                 GROUP
   OCCURS 5 TIMES                                      1
  03 E-NAME                          X(10)            JOHN T DOE
   OCCURS 5 TIMES                                      1
  03 E-ADDRESS                       X(14)            1 TELEGRAPH RD
   OCCURS 5 TIMES                                      1
  03 E-CITY                          X(11)            DETROIT, MI
   OCCURS 5 TIMES                                      1
  03 E-PHONE                         X(8)             987-6789
   OCCURS 5 TIMES                                      1
  03 E-SOC-SEC                       X(11)            123-45-6789


Locate the data on the screen with scrolling commands, the FIND command, or with the LOCATE command.

Data Display Formats

All data in variable storage can be updated. Data in the linkage section can be updated unless Code Debug CICS write-protects the field. To change data, overtype either the character or hexadecimal portions of the display.

Data in the working storage and linkage sections can be displayed in different formats. Use the following primary commands to control the format:

  • HEX
  • GROUP
  • ELEM
  • SHOW

HEX

The display can be affected by three commands:

HEX DUMP

Displays data in dump format. This is the default display for programs that have not been processed with the BMC COBOL Language Processor, and is available only for COBOL.

A hexadecimal offset can be entered in the OFFSET field, which appears below the MODULE field when the HEX DUMP mode is enabled. Entering an offset moves the display to its current position plus the specified offset. The LOCATE command can be used with the OFFSET field. LOCATE is useful when the program has not been processed with the BMC COBOL Language Processor, but a listing with a DMAP is at hand. See LOCATE (LOC, L).

HEX ON

Displays data in vertical hexadecimal format. The program must have been processed with the BMC Language Processor.

HEX OFF

The default screen display when the program has been processed by the BMC Language Processor. See Working Storage Screen (2.3) for COBOL.

Displays data in a format according to the field definition in the program. If the data does not match the field definition, Code Debug CICS displays it in hexadecimal format with an 'X indicator next to the data. The rules for changing the contents of each field definition:

COBOL only:


    • Alphanumeric field (AN): Enter any character. Excess data is truncated.
    • Numeric field (NUM or SNUM): Data must be numeric and the number of digits is limited to the number of nines. A minus sign is allowed only if the field is signed.
    • Packed or COMP-3 field (PN or PS): Data must be numeric and the number of digits is limited to the number of nines rounded up to an odd number. A minus sign is allowed only if the field is signed.
    • Binary or COMP field (BIN or SBIN): Data must be numeric. The values allowed for a field are -32768 to 32767 for 1 to 4 nines, or -2147483648 to 2147483647 for 5 to 9 nines. A minus sign is allowed only if the field is signed.
    • Hexadecimal field display: Data must be valid hex characters.
    • Floating point fields (COMP-1 and COMP-2): Data must be in scientific notation (for example, +1.2345E+6) and must be numeric except for plus and minus signs, period or comma decimal indicators, and E or e exponent delimiter. The number of input digits is “free-form”, but is adjusted to the precision of the target variable: 7 digits for COMP-1 and 16 digits for COMP-2. Plus signs are optional. The exponent delimiter is optional if the number can be represented without it.

Floating point support only applies to S/390 hex format. IEEE binary floating point numbers are not valid in COBOL or supported by Code Debug CICS.

Important

Rounding errors are inherent in floating point calculations. Values entered or displayed may not precisely reflect the values derived by the conversion algorithms used in language library routines.

PL/I only:

Important

Code Debug CICS does not support PL/I automatic variables with adjustable extents on the Variable Storage screen (2.3).


    • Alphanumeric: Any character may be entered in a CHAR field. Excess data is truncated. If the item is VARYING CHAR, you may change the length by using the HEX ON command to go into vertical hex mode. This mode provides a field for setting the length of the data.
    • Numeric fields (DEC, BIN, or FLOAT): Data must be numeric. Standard IBM conversion routines are utilized to perform the conversions if the value does not conform exactly to the data type.
    • PIC fields: PIC fields may be modified by overtyping the data to match the PIC attributes. If the PIC attributes include digits (9 or Z characters in the PIC), you may enter a valid numeric value and the conversion will be done for you.
    • BIT fields: BIT fields may consist only of the characters 0 and 1. When in HEX ON mode (vertical hex), data for BIT fields is entered in vertical hexadecimal mode (digits 0..F). If the item is VARYING BIT, you may change the length by using the HEX ON command to go into vertical hex mode. This mode provides a field for setting the length of the data.
    • Hexadecimal field display: For a field displayed in hexadecimal (preceded by 'X), data must be entered using valid hexadecimal digits (0..F).
    • Binary data: Data must be numeric and within the range specified by precision and scaling. There can be an optional plus (+) or minus (-) sign.
    • Decimal data: Data must be numeric with values limited by declared precision and scaling.
    • Floating point data: Data must be entered as a mantissa followed by an exponent. Its value is restricted by declared precision.
    • Bit data: Data must be either 0 (zero) or 1. Excess data is truncated.
    • Pointer data: Data entered must be a valid hexadecimal address. You must enter the entire address, which consists of eight hexadecimal digits.

Assembler only:

Important

Code Debug CICS supports Assembler labels with a zero duplication factor on the Defined Storage screen (2.3).


    • Alphanumeric field: Any character may be entered in a CHAR field. Excess data is truncated.
    • Numeric field (P, Z, etc.): Data must be numeric and must conform to size and data type specification. Data conversion is done for you.

Important

If the length of a packed decimal field is greater than the size of the data area in the current keep window display mode, then data is displayed in horizontal hex format. This means that up to 12 bytes of packed decimal data (24 digits) is formatted for display in the default keep window display mode, while in SHOW DATAONLY mode, where there are 40 positions for data, up to 16 bytes of packed decimal data (32 digits) is formatted for display.


    • Hexadecimal field display (preceded by ’X): Data must be entered using valid hexadecimal digits (0..F).

GROUP

(COBOL and PL/I only) Set automatically when you access working storage. For rapid scrolling with PF7 and PF8, only 01 and non-structure level (77 level for COBOL) items are displayed. Valid only in HEX ON mode.

ELEM

(COBOL and PL/I only) All items display when scrolling with PF7 and PF8 through working storage. Valid only in HEX ON mode.

SHOW

Modifies the screen format. See SHOW (SH) for details.

Input Fields

data field values

Current values of the corresponding data field. Modify this field by typing over the data.

occurs

Occurrence numbers, or bounds for PL/I, display when the data item is an array. Overtype them to see different array elements. During execution, Code Debug automatically selects the current occurrence of an array, unless you already explicitly specified an actual occurrence.

When an array data item is displayed, the DATANAME area contains an indicator specifying the number of and current bounds of the array. The data field area contains an occurrence number showing which entry in the area is being displayed. The occurrence number can be modified to any valid value within the bounds displayed. This allows you to locate to a particular occurrence of an array value.

Code Debug CICS contains a helpful feature that continuously displays the next occurrence of a table element each time you press Enter. Appending a signed integer (-1 or +1, for example) to any disassociated occurrence level number causes Code Debug CICS to increment or decrement the subscript by the specified amount. An example of this feature is illustrated as part of the Keep command on KEEP (K).

For PL/I BASED data items, -> is displayed in the DATANAME area of the screen, indicating that the value in the data field area is the actual address of the based data item’s value. This field is modifiable if the pointer is another variable.

Output Fields

LV

Level number as defined for the displayed data name. For PL/I based variables, -> appears in this field followed by the name of the pointer upon which the variable is based.

ASSEMBLER DATA LABEL, C VARIABLE, COBOL DATANAME, or PL/I VARIABLE

Name of the data field.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*