t
PERCON is to be called as a subprogram by a COBOL main program. The PERCON statements are supplied by the program.
Source listing
IDENTIFICATION DIVISION. PROGRAM-ID. PERCONCO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. TERMINAL IS SYSOUT. DATA DIVISION. WORKING-STORAGE SECTION. 01 PARAM. (1) 02 STMT-INDICATOR PIC S9(5) COMP SYNC VALUE 132. (2) 02 STATEMENT-1 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 45. (3) 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(41) VALUE (4) "MODIFY-PERCON-OPTIONS SYSOUT-LOGGING=*ALL". 02 STATEMENT-2 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 38. 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(34) VALUE "ASSIGN-INPUT-FILE LINK-NAME=PCIN". 02 STATEMENT-3 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 38. 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(34) VALUE "ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT". 02 STATEMENT-4 SYNC. 03 STMT-LENGTH PIC S99 COMP VALUE 7. 03 FILLER PIC S99 COMP VALUE 0. 03 STMT PIC X(3) VALUE "END".
(1) | Symbolic address of the parameter area. |
(2) | Byte 4 contains the identifier indicating the way in which the statements are transferred. X’84’: the PERCON statements are transferred by the main program in the form of variable-length records. |
(3) | The record length field of the statement is defined by means of STMT-LENGTH and FILLER. |
(4) | The field for the record contents of the statement is defined by means of STMT. |
01 RETCODE. (5) 02 DMS-CODE PIC S9(5) COMP SYNC. (6) 02 MESSAGE-ID. (7) 03 BYTE-1-2 PIC 9(4) COMP. 03 BYTEAN-1-2 REDEFINES BYTE-1-2. 04 BYTEAN-1 PIC X. 04 FILLER PIC X. 03 BYTES-REST PIC X(10). 01 RESERVED. 02 FILLER PIC S9(5) COMP. 02 FILLER PIC S9(5) COMP. 77 BIT-2 PIC 9. PROCEDURE DIVISION. AUFRUF-PERCON SECTION. AR-1. CALL "PERCONU" USING PARAM RETCODE RESERVED. (8) SUBTRACT 32768 FROM BYTE-1-2. IF BYTEAN-1 NOT < SPACE MOVE 1 TO BIT-2 ELSE MOVE ZERO TO BIT-2. IF BIT-2 = 0 DISPLAY "PERCON RUN SUCCESSFUL" UPON SYSOUT ELSE DISPLAY "PERCON RUN ERRONEOUS" UPON SYSOUT. STOP RUN.
(5) | Symbolic address of the area for return information. |
(6) | PERCON supplies the DMS-CODE field with the last DMS message. |
(7) | This area is reserved for the PERCON messages. |
(8) | PERCON is called. PERCONU is the entry point. The following data is transferred:
|
Compiling, linking and calling the program (tracer listing)
/DELETE-SYSTEM-FILE FILE-NAME=*OMF /START-COBOL2000-COMPILER SOURCE=PERCONCO.SRC - &*———————————————————— (9) / ,MONJV=#MONJV % BLS0500 PROGRAM 'COBOL2000', VERSION '01.6A11' OF '2020-04-02' LOADED % CBL9000 COPYRIGHT (C) 2020 Fujitsu Technology Solutions GmbH. ALL RIGHTS RESERVED % CBL9017 COMPILATION INITIATED, VERSION IS V01.6A11 % CBL9095 SAVLST FILE :2OS6:$WKST.OPTLST.COBOL.PERCONCO CREATED AND CLOSED % CBL9095 SAVLST FILE :2OS6:$WKST.SRCLST.COBOL.PERCONCO CREATED AND CLOSED % CBL9095 SAVLST FILE :2OS6:$WKST.ERRFIL.COBOL.PERCONCO CREATED AND CLOSED % CBL9097 COMPILATION COMPLETED WITHOUT ERRORS % CBL9004 COMPILATION OF PERCONCO USED 0.0631 CPU SECONDS /START-BINDER &* —————————————————————————————————————————————————————— (10) //START-LLM-CREATION INTERNAL-NAME=COBPROG1 &* ———————————————————————— (11) //INCLUDE-MODULES LIBRARY=*OMF,ELEMENT=*ALL //RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.PERCON.030 &* —————————————————— (12) //RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.CRTE //SAVE-LLM LIBRARY=COB.PROG.LIB % BND3101 SOME EXTERNAL REFERENCES UNRESOLVED % BND3102 SOME WEAK EXTERNS UNRESOLVED % BND1501 LLM FORMAT: '1' //END % BND1101 BINDER NORMALLY TERMINATED. SEVERITY CLASS: 'UNRESOLVED EXTERNAL'
(9) | The COBOL compiler is called. The SOURCE parameter assigns the file PERCONCO.SRC as the input file. |
(10) | The BINDER is called. |
(11) | The name of the program is defined. |
(12) | The object module library SYSLNK.PERCON.030 and the runtime system SYSLNK.CRTE are assigned. |
/ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (13) / FILE-NAME=PERS.TAB,- / LINK-NAME=PCIN /CREATE-FILE FILE-NAME=PERS.SEL /ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (14) / FILE-NAME=PERS.SEL,- / ACCESS-METHOD=*SAM,- / LINK-NAME=PCOUT /START-EXECUTABLE-PROGRAM - &*——————————————————————————————————————————— (15) / FROM-FILE=*LIBRARY-ELEMENT(LIBRARY=COB.PROG.LIB,ELEMENT-OR-SYMBOL=COBPROG1) %ASSIGN-INPUT-FILE LINK-NAME=PCIN —————————————————————————————————————— (16) %ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT %END % PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCIN' (FILE=:2OS6:$WKST.PERS.TAB): 12 ——————————— (17) % PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCOUT' (FILE=:2OS6:$WKST.PERS.SEL): 12 % PER0031 PERCON TERMINATED NORMALLY PERCON RUN SUCCESSFUL ——————————————————————————————————————————————————— (18)
(13) | The input file PERS.TAB is assigned with the link name PCIN. |
(13) | The output file PERS.SEL is assigned with the link name PCOUT and its file attributes. |
(14) | The program which has just been linked is loaded and started. |
(15) | The following statements are provided by the COBOL program and logged here. |
(16) | Messages from PERCON as a subprogram. |
(17) | Output from the main program. |