The following COBOL85 program fragment demonstrates the use of CRCR and STOQ events in a WAIT statement. This example performs the same functions as the preceding ALGOL example.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STOQALPHA.
03 STOQ-QUEUE PIC X(6).
03 STOQ-SUBQ-LENGTH PIC 9(2) COMP VALUE 6.
03 STOQ-SUBQ PIC X(6).
03 STOQ-DATA-LENGTH PIC 9(4) COMP.
03 STOQ-DATA PIC X(9999).
01 STOQBETA.
03 STOQ-QUEUE PIC X(6).
03 STOQ-SUBQ-LENGTH PIC 9(2) COMP VALUE 6.
03 STOQ-SUBQ PIC X(6).
03 STOQ-DATA-LENGTH PIC 9(4) COMP.
03 STOQ-DATA PIC X(9999).
77 DONE BINARY PIC 9(11).
77 PROGNAME PIC X(256).
77 EVT REAL.
77 EVORDER BINARY PIC 9(11).
77 DELTA-INPUT PIC X(2000).
77 PROGNAME-OUTPUT PIC X(2000).PROCEDURE DIVISION.
WAITLOOP SECTION.
P1.
* The statements to initialize the STOQ blocks STOQALPHA & STOQBETA
* are omitted from this example
MOVE 0 TO DONE.
WAIT UNTIL CRCR-INPUT “OBJECT/DELTA”
CRCR-OUTPUT PROGNAME
STOQ-INPUT STOQALPHA
STOQ-OUTPUT STOQBETA
ATTRIBUTE ACCEPTEVENT OF MYSELF
USING EVORDER
GIVING EVT.IF EVT = 1 RECEIVE “OBJECT/DELTA” INTO DELTA-INPUT ELSE IF EVT = 2 THEN SEND PROGNAME FROM PROGNAME-OUTPUT ELSE IF EVT = 3 THEN RECEIVE FROM TOP STOQALPHA ELSE IF EVT = 4 THEN SEND TO TOP STOQBETA ELSE MOVE 1 TO DONE END-IF.
COMPUTE EVORDER = EVORDER + 1. IF EVORDER IS > 1 MOVE 1 TO EVORDER END-IF. IF DONE IS = 0 THEN GO WAITLOOP. STOP RUN.

