Learn about the ECHO feature in COBOL, including its usage in terminal interaction, input handling, and screen management.
ECHO is a terminal interaction feature in COBOL that controls whether characters typed during ACCEPT operations are displayed on the screen. This feature is essential for creating secure input interfaces and managing how user input is handled visually.
1234567WORKING-STORAGE SECTION. 01 USER-INPUT PIC X(20). PROCEDURE DIVISION. DISPLAY "Enter your name: " ACCEPT USER-INPUT DISPLAY "Hello, " USER-INPUT
1234567WORKING-STORAGE SECTION. 01 PASSWORD PIC X(20). PROCEDURE DIVISION. DISPLAY "Enter password: " ACCEPT PASSWORD WITH NO ECHO DISPLAY "Password accepted"
12345678910111213WORKING-STORAGE SECTION. 01 SECURE-INPUT PIC X(10). 01 DISPLAY-MASK PIC X(10). PROCEDURE DIVISION. INITIALIZE DISPLAY-MASK DISPLAY "Enter PIN: " ACCEPT SECURE-INPUT WITH NO ECHO PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > LENGTH OF SECURE-INPUT MOVE "*" TO DISPLAY-MASK(WS-I:1) END-PERFORM DISPLAY "Input received: " DISPLAY-MASK
ECHO can be used effectively with COBOL's SCREEN SECTION for more sophisticated input handling:
12345678910SCREEN SECTION. 01 LOGIN-SCREEN. 05 BLANK SCREEN. 05 LINE 5 COLUMN 10 VALUE "Username: ". 05 LINE 5 COLUMN 20 PIC X(20) USING WS-USERNAME. 05 LINE 6 COLUMN 10 VALUE "Password: ". 05 LINE 6 COLUMN 20 PIC X(20) USING WS-PASSWORD SECURE.
12345678910111213WORKING-STORAGE SECTION. 01 PUBLIC-DATA PIC X(20). 01 PRIVATE-DATA PIC X(20). PROCEDURE DIVISION. DISPLAY "Enter public info: " ACCEPT PUBLIC-DATA DISPLAY "Enter private info: " ACCEPT PRIVATE-DATA WITH NO ECHO DISPLAY "Public: " PUBLIC-DATA DISPLAY "Private data received (hidden)"
123456789101112131415161718WORKING-STORAGE SECTION. 01 WS-PASSWORD PIC X(20). 01 WS-CONFIRM PIC X(20). 01 WS-MATCH PIC X VALUE 'N'. PROCEDURE DIVISION. PERFORM UNTIL WS-MATCH = 'Y' DISPLAY "Enter password: " ACCEPT WS-PASSWORD WITH NO ECHO DISPLAY "Confirm password: " ACCEPT WS-CONFIRM WITH NO ECHO IF WS-PASSWORD = WS-CONFIRM MOVE 'Y' TO WS-MATCH DISPLAY "Passwords match" ELSE DISPLAY "Passwords do not match, try again" END-IF END-PERFORM