program-id. a.\x0d ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.\x0d data division.FILE SECTION.FD SYSIN.\x0d 1 i PIC 99.\x0d WORKING-STORAGE SECTION.\x0d 1 S PIC X(99).\x0d 1 A PIC X(99) VALUE ALL "*".\x0d 1 n pic 99.\x0d 1 l pic 99.\x0d 1 m pic 99.\x0d procedure division.OPEN INPUT SYSIN\x0d READ SYSIN\x0d MOVE i TO m\x0d COMPUTE m=FUNCTION NUMVAL(m)\x0d perform varying n from 1 by 2 until n>=m + m - 1\x0d compute l=(m + m - n) / 2\x0d move A(1:n) to S(l:)\x0d display S(1:l + n - 1)\x0d move all " " to S\x0d end-perform.\x0d move "COBOL" to S(m - 3:)\x0d display S(1:m + 1)\x0d STOP RUN.
Note that non-ascii characters in the above source code will be escaped (such as \x9f).