IDENTIFICATION DIVISION.
PROGRAM-ID. COBOL_EXAMPLE.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
WORKING-STORAGE SECTION.
*
77  RECORD-COUNT   PIC 9(5)     VALUE ZERO.
*
01  EOF-SWITCH     PIC 9(3)	COMP.
    88  EOF                     VALUE 255.
*
01  INPUT-SIZE     PIC X(4)     VALUE ZERO.
*
01  INPUT-BUFFER   PIC X(512).
*
PROCEDURE DIVISION.
*
000-HOUSE-KEEPING.
*
*	Initialize the scanner and open the output file.
*
    CALL "SCN_INIT".
*
001-MAIN.
*
*	Send request for status to the scanner until scanner is ready.
*	on SCAN-TO-COM
*
    CALL "SCN_STATUS".
*
002-PROCESS.
*
*	Set loop to get records until end-of-file (EOF) is
*	received from the scanner.
*
    PERFORM 003-CALL-SCANNER UNTIL EOF.
*
    GO TO 009-END-OF-JOB.
*
003-CALL-SCANNER.
*
    ADD 1 TO RECORD-COUNT.
    DISPLAY "Record number: ", RECORD-COUNT.
*
*	Call scanner routine, placing data in INPUT-BUFFER, and setting
*	EOF-SWITCH to 255 at END-OF-DATA.
*
    CALL "SCN_GETREC" USING BY DESCRIPTOR INPUT-BUFFER
	BY REFERENCE INPUT-SIZE, EOF-SWITCH.
*
*	<<< USER PROGRAM EDIT CHECKS HERE, IF ANY >>>
*
*	Write the record to the file if EOF is not reached.
*
    IF NOT EOF
       CALL "SCN_WRITE" USING BY DESCRIPTOR INPUT-BUFFER
	BY REFERENCE INPUT-SIZE.
*
009-END-OF-JOB.
*
*	De-initialize the scanner and close the output file.
*
    CALL "SCN_DEINIT".
*
    STOP RUN.
*
****************************** END OF PROGRAM ************************
