SCREEN COBOL - REQUESTER PROGRAM
IDENTIFICATION DIVISION.
PROGRAM-ID. EXAMPLE-SCREEN-PROGRAM.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. T16.
OBJECT-COMPUTER. T16,
TERMINAL IS T16-6520.
SPECIAL-NAMES.
F1-KEY IS F1, F2-KEY IS F2, F15-KEY IS F15, F16-KEY IS F16
SF1-KEY IS SF1, SF16-KEY IS SF16, ATTENTION IS REVERSE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS.
02 ERROR-MSG PIC X(64).
01 EXIT-FLAG PIC 9 VALUE 0.
88 EXIT-PROGRAM VALUE 1.
01 SEND-ERROR-FLAG PIC 99.
01 ENTRY-MSG.
02 PW-HEADER.
04 REPLY-CODE PIC S9(4) COMP.
04 FUNCTION-CODE PIC XX.
02 MESSAGE-NUMBER PIC 9.
01 ENTRY-REPLY.
02 PW-HEADER.
04 REPLY-CODE PIC S9(4) COMP.
04 FILLER PIC X(2).
02 SERVER-RECORD PIC X(64).
01 ERROR-REPLY.
02 REPLY-CODE PIC 9(4) COMP.
02 FILLER PIC X(2).
02 ERROR-CODE PIC 999 COMP.
SCREEN SECTION.
01 EXAMPLE-SCREEN BASE SIZE 24, 80.
03 FILLER AT 1, 20 VALUE "EXAMPLE SCREEN COBOL PROGRAM".
03 FILLER AT 10, 1 VALUE "MESSAGE NUMBER :".
03 MESSAGE-NUMBER AT 10, * + 2 PIC 9,
USING MESSAGE-NUMBER OF ENTRY-MSG.
03 MESSAGE-TEXT AT 12, 1 PIC X(64) FROM SERVER-RECORD OF ENTRY-REPLY.
03 FILLER AT 21, 15 VALUE "F1 - READ F16 - EXIT PROGRAM".
03 ERROR-MSG AT 24, 2 PIC X(64) ADVISORY FROM ERROR-MSG OF WS.
PROCEDURE DIVISION.
A-MAIN.
DISPLAY BASE EXAMPLE-SCREEN.
MOVE 0 TO MESSAGE-NUMBER OF ENTRY-MSG.
DISPLAY MESSAGE-NUMBER OF EXAMPLE-SCREEN.
PERFORM CASE-MANAGER UNTIL EXIT-PROGRAM.
A-EXIT.
EXIT PROGRAM.
CASE-MANAGER.
ACCEPT MESSAGE-NUMBER OF EXAMPLE-SCREEN
UNTIL F1-KEY ESCAPE ON F16-KEY (F2-KEY THROUGH F15-KEY, SF1-KEY THROUGH SF16-KEY).
PERFORM ONE OF READ-MESSAGE,
SET-EXIT,
KEY-NOT-SUPPORTED
DEPENDING ON TERMINATION-STATUS.
READ-MESSAGE.
MOVE "01" TO FUNCTION-CODE OF ENTRY-MSG.
PERFORM SEND-DATA.
SET-EXIT.
MOVE 1 TO EXIT-FLAG.
KEY-NOT-SUPPORTED.
MOVE "FUNCTION KEY NOT SUPPORTED" TO ERROR-MSG OF WS.
PERFORM DISPLAY-ADVISORY.
SEND-DATA.
MOVE 0 TO SEND-ERROR-FLAG.
SEND ENTRY-MSG TO "EXAMPLE-SERVER"
REPLY CODE 0 YIELDS ENTRY-REPLY
CODE 999 YIELDS ERROR-REPLY ON ERROR PERFORM
SEND-ERROR.
IF SEND-ERROR-FLAG = 99
DISPLAY TEMP "SEND ERROR" IN ERROR-MSG OF EXAMPLE-SCREEN
ELSE
PERFORM ONE OF PARA-1 PARA-2 DEPENDING ON TERMINATION-STATUS.
PARA-1.
MOVE SPACES TO ERROR-MSG OF WS
DISPLAY MESSAGE-TEXT OF EXAMPLE-SCREEN, ERROR-MSG OF EXAMPLE-SCREEN.
PARA-2.
PERFORM SETUP-SERVER-ERROR
PERFORM DISPLAY-ADVISORY.
SEND-ERROR.
MOVE 99 TO SEND-ERROR-FLAG.
SETUP-SERVER-ERROR.
IF ERROR-CODE = 1
MOVE "SERVER FUNCTION NOT SUPPORTED" TO ERROR-MSG OF WS
ELSE
IF ERROR-CODE = 2
MOVE "MESSAGE DOES NOT EXIST FOR SPECIFIED NUMBER" TO ERROR-MSG OF WS
ELSE
MOVE "UNKNOWN SERVER ERROR" TO ERROR-MSG OF WS.
DISPLAY-ADVISORY.
DISPLAY TEMP ERROR-MSG OF EXAMPLE-SCREEN.
TURN TEMP ATTENTION IN ERROR-MSG OF EXAMPLE-SCREEN.