Rational Developer for System z
Enterprise COBOL for z/OS, Version 4.1, Programming Guide


Example: program initialization code

A listing of the program initialization code gives you information about the characteristics of the COBOL source program. Interpret the program signature information bytes to verify characteristics of your program.

    (1)      (2)                     (3)                            (4)
   000000           IMIN           DS    0H                      PROGRAM:IMIN
                                   USING *,15
   000000  47F0 F028               B     40(,15)                 BYPASS CONSTANTS. BRANCH TO @STM
   000004  00                      DC    AL1(0)                  ZERO NAME LENGTH FOR DUMPS
   000005  C3C5C5                  DC    CL3'CEE'                CEE EYE CATCHER                       (5)
   000008  00000110                DC    X'00000110'             STACK FRAME SIZE
   00000C  00000014                DC    A(@PPA1-IMIN)           OFFSET TO PPA1 FROM PRIMARY ENTRY
   000010  47F0 F001               B     1(,15)                  RESERVED
   000014                 @PPA1    DS    0H                      PPA1 STARTS HERE
   000014  98                      DC    X'98'                   OFFSET TO LENGTH OF NAME FROM PPA1
   000015  CE                      DC    X'CE'                   CEL SIGNATURE
   000016  AC                      DC    X'AC'                   CEL FLAGS: '10101100'B
   000017  00                      DC    X'00'                   MEMBER FLAGS FOR COBOL
   000018  000000B6                DC    A(@PPA2)                ADDRESS OF PPA2
   00001C  00000000                DC    F'0'                    OFFSET TO THE BDI (NONE)
   000020  00000000                DC    F'0'                    ADDRESS OF ENTRY POINT DESCRIPTORS
   000024  0000                    DC    X'0000'                 RESERVED
   000026  00                      DC    X'00'                   DSA FPR 8-15 SAVE AREA OFFSET/16
   000027  00                      DC    X'00'                   DSA FPR 8-15 SAVE AREA BIT MASK
   000028                 @STM     DS    0H                      STM STARTS HERE
   000028  90EC D00C               STM   14,12,12(13)      @STM: SAVE CALLER'S REGISTERS
   00002C  4110 F038               LA    1,56(,15)               GET ADDRESS OF PARMLIST INTO R1
   000030  98EF F04C               LM    14,15,76(15)            LOAD ADDRESSES FROM @BRVAL
   000034  07FF                    BR    15                      DO ANY NECESSARY INITIALIZATION
   000036  0000                    DC    AL2'0'                  AVAILABLE HALF-WORD
   000038                 @MAINENT DS    0H                      PRIMARY ENTRY POINT ADDRESS
   000038  00000000                DC    A(IMIN)         @PARMS: 1) PRIMARY ENTRY POINT ADDRESS
   00003C  00000000                DC    AL4'0'                  2) Available
   000040  000003C0                DC    A(DAB)                  3) DAB ADDRESS                        (6)
   000044  000000AE                DC    A(@EPNAM)               4) ENTRY POINT NAME ADDRESS
   000048  00000000                DC    A(IMIN)                 5) CURRENT ENTRY POINT ADDRESS
   00004C  00000272                DC    A(START)        @BRVAL: 6) PROCEDURE CODE ADDRESS
   000050  00000000                DC    V(IGZCBSO)              7) INITIALIZATION ROUTINE
   000054  000000CA                DC    A(@CEEPARM)             8) ADDRESS OF PARM LIST FOR CEEINT
   000058  00104001                DC    X'00104001'             DSA WORD 0 CONSTANT
   00005C  00000000                DC    AL4'0'                  AVAILABLE WORD
   000060  00000000                DC    AL4'0'                  AVAILABLE WORD
   000064  00000000                DC    AL4'0'                  AVAILABLE WORD
   000068  F2F0F0F7                DC    CL4'2007'     @TIMEVRS: YEAR OF COMPILATION                   (7)
   00006C  F0F9F3F0                DC    CL4'0930'               MONTH/DAY OF COMPILATION              (8)
   000070  F1F0F4F8                DC    CL4'1048'               HOURS/MINUTES OF COMPILATION          (9)
   000074  F1F6                    DC    CL2'16'                 SECONDS FOR COMPILATION DATE
   000076  F0F4F0F1F0F0            DC    CL6'040100'             VERSION/RELEASE/MOD LEVEL OF PROD     (10)
   00007C  0474                    DC    X'0474'                 UNSIGNED BINARY CODE PAGE CCSID VALUE (11)
   00007E  0000                    DC    AL2'0'                  AVAILABLE HALF-WORD
   000080  0000                    DC    X'0000'                 INFO. BYTES 28-29                     (12)
   000082  076C                    DC    X'076C'                 SIGNED BINARY YEARWINDOW OPTION VALUE
   000084  A0487C4C2000            DC    X'A0487C4C2000'         INFO. BYTES 1-6
   00008A  000000080000            DC    X'000000080000'         INFO. BYTES 7-12
   000090  000000000800            DC    X'000000000800'         INFO. BYTES 13-18                     (12)
   000096  0000000000              DC    X'0000000000'           INFO. BYTES 19-23
   00009B  00                      DC    X'00'                   COBOL SIGNATURE LEVEL
   00009C  00000001                DC    X'00000001'             # DATA DIVISION STATEMENTS            (13)
   0000A0  00000003                DC    X'00000003'             # PROCEDURE DIVISION STATEMENTS       (14)
   0000A4  000080                  DC    X'000080'               INFO. BYTES 24-26                     (12)
   0000A7  00                      DC    X'00'                   INFO. BYTE 27
   0000A8  40404040                DC    C'    '                 USER LEVEL INFO (LVLINFO)             (15)
   0000AC  0004                    DC    X'0004'                 LENGTH OF PROGRAM NAME
   0000AE                 @EPNAM   DS    0H                      ENTRY POINT NAME
   0000AE  C9D4C9D540404040        DC    C'IMIN    '             PROGRAM NAME                          (16)
   0000B6                 @PPA2    DS    0H                      PPA2 STARTS HERE
   0000B6  05                      DC    X'05'                   CEL MEMBER IDENTIFIER
   0000B7  00                      DC    X'00'                   CEL MEMBER SUB-IDENTIFIER
   0000B8  00                      DC    X'00'                   CEL MEMBER DEFINED BYTE
   0000B9  01                      DC    X'01'                   CONTROL LEVEL OF PROLOG
   0000BA  00000000                DC    V(CEESTART)             VCON FOR LOAD MODULE
   0000BE  00000000                DC    F'0'                    OFFSET TO THE CDI (NONE)
   0000C2  FFFFFFB2                DC    A(@TIMEVRS-@PPA2)       OFFSET TO TIMESTAMP/VERSION INFO
   0000C6  00000000                DC    A(IMIN)                 ADDRESS OF CU PRIMARY ENTRY POINT
   0000CA                 @CEEPARM DS    0H                      PARM LIST FOR CEEINT
   0000CA  00000038                DC    A(@MAINENT)             POINTER TO PRIMARY ENTRY PT ADDR
   0000CE  00000008                DC    A(@PARMCEE-@CEEPARM)    OFFSET TO PARAMETERS FOR CEEINT
   0000D2                 @PARMCEE DS    0H                      PARAMETERS FOR CEEINT
   0000D2  00000006                DC    F'6'                    1) NUMBER OF ENTRIES IN PARM LIST
   0000D6  00000038                DC    A(@MAINENT)             2) POINTER TO PRIMARY ENTRY PT ADDR
   0000DA  00000000                DC    V(CEESTART)             3) ADDRESS OF CEESTART
   0000DE  00000000                DC    V(CEEBETBL)             4) ADDRESS OF CEEBETBL
   0000E2  00000005                DC    F'5'                    5) CEL MEMBER IDENTIFIER
   0000E6  00000000                DC    F'0'                    6) FOR CEL MEMBER USE
   . . .
(1)
Offset from the start of the COBOL program.
(2)
Hexadecimal representation of assembler instructions.
(3)
Pseudoassembler code generated for the COBOL program.
(4)
Comments that explain the assembler code.
(5)
Eye-catcher indicating that the COBOL compiler is Language Environment-enabled.
(6)
Address of the task global table (TGT), or the address of the dynamic access block (DAB) if the program is reentrant.
(7)
Four-digit year when the program was compiled.
(8)
Month and the day when the program was compiled.
(9)
Time when the program was compiled.
(10)
Version, release, and modification level of the COBOL compiler used to compile this program (each represented in two digits).
(11)
Code page CCSID value (from CODEPAGE compiler option).
(12)
Program signature information bytes. These provide information about these elements of the program:
  • Compiler options
  • DATA DIVISION
  • ENVIRONMENT DIVISION
  • PROCEDURE DIVISION
(13)
Number of statements in the DATA DIVISION.
(14)
Number of statements in the PROCEDURE DIVISION.
(15)
4-byte user-controlled level information field. The value of this field is controlled by the LVLINFO.
(16)
Program-name as used in the IDENTIFICATION DIVISION.

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)