The TERMINAL feature in COBOL provides terminal input/output operations and user interface capabilities. It enables programs to handle interactive user input, manage screen displays, and create user-friendly terminal-based applications.
TERMINAL provides advanced features beyond basic DISPLAY operations.
TERMINAL operations are implemented in the PROCEDURE DIVISION using specialized constructs for terminal input/output and screen management.
123456789101112131415161718192021* Basic TERMINAL syntax examples PROCEDURE DIVISION. * Terminal output with positioning DISPLAY "Welcome to the System" AT LINE 1 COLUMN 1 DISPLAY "Enter your name: " AT LINE 3 COLUMN 1 * Terminal input with validation ACCEPT USER-NAME FROM TERMINAL IF USER-NAME = SPACES DISPLAY "Name cannot be blank" AT LINE 5 COLUMN 1 END-IF * Screen clearing and formatting DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE EOL DISPLAY "Processing..." AT LINE 10 COLUMN 30 * Cursor positioning MOVE 5 TO CURSOR-LINE MOVE 10 TO CURSOR-COLUMN DISPLAY SPACE AT LINE CURSOR-LINE COLUMN CURSOR-COLUMN
Basic TERMINAL operations for screen handling and user interaction.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596* Complete COBOL program demonstrating TERMINAL usage IDENTIFICATION DIVISION. PROGRAM-ID. TERMINAL-DEMO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 01 USER-INPUT. 05 USER-NAME PIC X(30). 05 USER-AGE PIC 9(3). 05 USER-EMAIL PIC X(50). 01 SCREEN-CONTROL. 05 CURSOR-LINE PIC 9(2). 05 CURSOR-COLUMN PIC 9(2). 05 SCREEN-STATUS PIC X. 01 MENU-CHOICE PIC X. PROCEDURE DIVISION. MAIN-LOGIC. PERFORM INITIALIZE-SCREEN PERFORM DISPLAY-MENU PERFORM PROCESS-MENU-CHOICE STOP RUN. INITIALIZE-SCREEN. * Clear screen and set up display DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "=== TERMINAL APPLICATION ===" AT LINE 1 COLUMN 20 DISPLAY "============================" AT LINE 2 COLUMN 20. DISPLAY-MENU. * Display main menu DISPLAY "1. Enter User Information" AT LINE 4 COLUMN 5 DISPLAY "2. Display User Information" AT LINE 5 COLUMN 5 DISPLAY "3. Exit" AT LINE 6 COLUMN 5 DISPLAY "Enter your choice (1-3): " AT LINE 8 COLUMN 5. PROCESS-MENU-CHOICE. * Get user choice and process ACCEPT MENU-CHOICE FROM TERMINAL EVALUATE MENU-CHOICE WHEN "1" PERFORM ENTER-USER-INFO WHEN "2" PERFORM DISPLAY-USER-INFO WHEN "3" PERFORM EXIT-PROGRAM WHEN OTHER PERFORM INVALID-CHOICE END-EVALUATE. ENTER-USER-INFO. * Clear screen for user input DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "=== USER INFORMATION ENTRY ===" AT LINE 1 COLUMN 15 * Get user name DISPLAY "Enter your name: " AT LINE 3 COLUMN 5 ACCEPT USER-NAME FROM TERMINAL * Get user age DISPLAY "Enter your age: " AT LINE 5 COLUMN 5 ACCEPT USER-AGE FROM TERMINAL * Get user email DISPLAY "Enter your email: " AT LINE 7 COLUMN 5 ACCEPT USER-EMAIL FROM TERMINAL * Confirm input DISPLAY "Information saved successfully!" AT LINE 10 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 12 COLUMN 5 ACCEPT SCREEN-STATUS FROM TERMINAL. DISPLAY-USER-INFO. * Display user information DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "=== USER INFORMATION ===" AT LINE 1 COLUMN 20 DISPLAY "Name: " USER-NAME AT LINE 3 COLUMN 5 DISPLAY "Age: " USER-AGE AT LINE 5 COLUMN 5 DISPLAY "Email: " USER-EMAIL AT LINE 7 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 10 COLUMN 5 ACCEPT SCREEN-STATUS FROM TERMINAL. INVALID-CHOICE. DISPLAY "Invalid choice. Please try again." AT LINE 10 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 12 COLUMN 5 ACCEPT SCREEN-STATUS FROM TERMINAL. EXIT-PROGRAM. DISPLAY "Thank you for using the application!" AT LINE 10 COLUMN 5 DISPLAY "Goodbye!" AT LINE 12 COLUMN 5.
The program demonstrates comprehensive terminal interaction capabilities.
123456789101112131415161718192021222324252627282930313233343536373839404142* Advanced TERMINAL usage with screen management PROCEDURE DIVISION. ADVANCED-TERMINAL-OPERATIONS. PERFORM SETUP-ADVANCED-SCREEN PERFORM HANDLE-USER-INTERACTION PERFORM CLEANUP-SCREEN. SETUP-ADVANCED-SCREEN. * Set up advanced screen layout DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "╔══════════════════════════════════════════╗" AT LINE 1 COLUMN 1 DISPLAY "║ ADVANCED TERMINAL APP ║" AT LINE 2 COLUMN 1 DISPLAY "╠══════════════════════════════════════════╣" AT LINE 3 COLUMN 1 DISPLAY "║ ║" AT LINE 4 COLUMN 1 DISPLAY "║ ║" AT LINE 5 COLUMN 1 DISPLAY "║ ║" AT LINE 6 COLUMN 1 DISPLAY "║ ║" AT LINE 7 COLUMN 1 DISPLAY "║ ║" AT LINE 8 COLUMN 1 DISPLAY "╚══════════════════════════════════════════╝" AT LINE 9 COLUMN 1. HANDLE-USER-INTERACTION. * Position cursor and get input MOVE 5 TO CURSOR-LINE MOVE 5 TO CURSOR-COLUMN DISPLAY "Enter data: " AT LINE CURSOR-LINE COLUMN CURSOR-COLUMN * Get user input with validation ACCEPT USER-INPUT FROM TERMINAL * Validate input IF USER-INPUT = SPACES DISPLAY "Error: Input cannot be blank" AT LINE 10 COLUMN 5 DISPLAY "Press any key to retry..." AT LINE 11 COLUMN 5 ACCEPT SCREEN-STATUS FROM TERMINAL PERFORM HANDLE-USER-INTERACTION END-IF. CLEANUP-SCREEN. * Clean up screen before exit DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "Application completed successfully!" AT LINE 10 COLUMN 10.
Advanced TERMINAL usage with sophisticated screen management.
TERMINAL is essential in various scenarios where interactive user interfaces and terminal-based applications are required.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253* Interactive forms using TERMINAL IDENTIFICATION DIVISION. PROGRAM-ID. INTERACTIVE-FORMS. DATA DIVISION. WORKING-STORAGE SECTION. 01 FORM-DATA. 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-ADDRESS PIC X(50). 05 CUSTOMER-PHONE PIC X(15). 05 CUSTOMER-EMAIL PIC X(40). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM DISPLAY-FORM-HEADER PERFORM GET-CUSTOMER-NAME PERFORM GET-CUSTOMER-ADDRESS PERFORM GET-CUSTOMER-PHONE PERFORM GET-CUSTOMER-EMAIL PERFORM CONFIRM-ENTRY STOP RUN. DISPLAY-FORM-HEADER. DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "=== CUSTOMER INFORMATION FORM ===" AT LINE 1 COLUMN 10 DISPLAY "==================================" AT LINE 2 COLUMN 10. GET-CUSTOMER-NAME. DISPLAY "Customer Name: " AT LINE 4 COLUMN 5 ACCEPT CUSTOMER-NAME FROM TERMINAL IF CUSTOMER-NAME = SPACES DISPLAY "Name is required!" AT LINE 15 COLUMN 5 PERFORM GET-CUSTOMER-NAME END-IF. GET-CUSTOMER-ADDRESS. DISPLAY "Customer Address: " AT LINE 6 COLUMN 5 ACCEPT CUSTOMER-ADDRESS FROM TERMINAL. GET-CUSTOMER-PHONE. DISPLAY "Customer Phone: " AT LINE 8 COLUMN 5 ACCEPT CUSTOMER-PHONE FROM TERMINAL. GET-CUSTOMER-EMAIL. DISPLAY "Customer Email: " AT LINE 10 COLUMN 5 ACCEPT CUSTOMER-EMAIL FROM TERMINAL. CONFIRM-ENTRY. DISPLAY "Review your information:" AT LINE 12 COLUMN 5 DISPLAY "Name: " CUSTOMER-NAME AT LINE 13 COLUMN 5 DISPLAY "Address: " CUSTOMER-ADDRESS AT LINE 14 COLUMN 5 DISPLAY "Phone: " CUSTOMER-PHONE AT LINE 15 COLUMN 5 DISPLAY "Email: " CUSTOMER-EMAIL AT LINE 16 COLUMN 5.
Interactive forms use TERMINAL for user data entry and validation.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374* Menu-driven application using TERMINAL IDENTIFICATION DIVISION. PROGRAM-ID. MENU-APPLICATION. DATA DIVISION. WORKING-STORAGE SECTION. 01 MENU-SELECTION PIC X. 01 CONTINUE-FLAG PIC X VALUE 'Y'. PROCEDURE DIVISION. MAIN-LOGIC. PERFORM UNTIL CONTINUE-FLAG = 'N' PERFORM DISPLAY-MAIN-MENU PERFORM GET-MENU-SELECTION PERFORM PROCESS-SELECTION END-PERFORM STOP RUN. DISPLAY-MAIN-MENU. DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "╔══════════════════════════════════════════╗" AT LINE 1 COLUMN 1 DISPLAY "║ MAIN MENU ║" AT LINE 2 COLUMN 1 DISPLAY "╠══════════════════════════════════════════╣" AT LINE 3 COLUMN 1 DISPLAY "║ 1. File Operations ║" AT LINE 4 COLUMN 1 DISPLAY "║ 2. Data Processing ║" AT LINE 5 COLUMN 1 DISPLAY "║ 3. Report Generation ║" AT LINE 6 COLUMN 1 DISPLAY "║ 4. System Configuration ║" AT LINE 7 COLUMN 1 DISPLAY "║ 5. Exit ║" AT LINE 8 COLUMN 1 DISPLAY "╚══════════════════════════════════════════╝" AT LINE 9 COLUMN 1 DISPLAY "Enter your choice (1-5): " AT LINE 11 COLUMN 5. GET-MENU-SELECTION. ACCEPT MENU-SELECTION FROM TERMINAL. PROCESS-SELECTION. EVALUATE MENU-SELECTION WHEN "1" PERFORM FILE-OPERATIONS WHEN "2" PERFORM DATA-PROCESSING WHEN "3" PERFORM REPORT-GENERATION WHEN "4" PERFORM SYSTEM-CONFIGURATION WHEN "5" MOVE 'N' TO CONTINUE-FLAG WHEN OTHER PERFORM INVALID-SELECTION END-EVALUATE. FILE-OPERATIONS. DISPLAY "File Operations selected" AT LINE 13 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 14 COLUMN 5 ACCEPT MENU-SELECTION FROM TERMINAL. DATA-PROCESSING. DISPLAY "Data Processing selected" AT LINE 13 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 14 COLUMN 5 ACCEPT MENU-SELECTION FROM TERMINAL. REPORT-GENERATION. DISPLAY "Report Generation selected" AT LINE 13 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 14 COLUMN 5 ACCEPT MENU-SELECTION FROM TERMINAL. SYSTEM-CONFIGURATION. DISPLAY "System Configuration selected" AT LINE 13 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 14 COLUMN 5 ACCEPT MENU-SELECTION FROM TERMINAL. INVALID-SELECTION. DISPLAY "Invalid selection. Please try again." AT LINE 13 COLUMN 5 DISPLAY "Press any key to continue..." AT LINE 14 COLUMN 5 ACCEPT MENU-SELECTION FROM TERMINAL.
Menu-driven applications use TERMINAL for user navigation and selection.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162* Data entry application using TERMINAL IDENTIFICATION DIVISION. PROGRAM-ID. DATA-ENTRY-APP. DATA DIVISION. WORKING-STORAGE SECTION. 01 EMPLOYEE-RECORD. 05 EMP-ID PIC 9(6). 05 EMP-NAME PIC X(30). 05 EMP-DEPT PIC X(20). 05 EMP-SALARY PIC 9(8)V99. 01 ENTRY-STATUS PIC X. PROCEDURE DIVISION. MAIN-LOGIC. PERFORM UNTIL ENTRY-STATUS = 'Q' PERFORM DISPLAY-ENTRY-SCREEN PERFORM GET-EMPLOYEE-DATA PERFORM VALIDATE-EMPLOYEE-DATA PERFORM SAVE-EMPLOYEE-DATA PERFORM ASK-CONTINUE END-PERFORM STOP RUN. DISPLAY-ENTRY-SCREEN. DISPLAY SPACES AT LINE 1 COLUMN 1 ERASE SCREEN DISPLAY "=== EMPLOYEE DATA ENTRY ===" AT LINE 1 COLUMN 15 DISPLAY "============================" AT LINE 2 COLUMN 15. GET-EMPLOYEE-DATA. DISPLAY "Employee ID: " AT LINE 4 COLUMN 5 ACCEPT EMP-ID FROM TERMINAL DISPLAY "Employee Name: " AT LINE 6 COLUMN 5 ACCEPT EMP-NAME FROM TERMINAL DISPLAY "Department: " AT LINE 8 COLUMN 5 ACCEPT EMP-DEPT FROM TERMINAL DISPLAY "Salary: " AT LINE 10 COLUMN 5 ACCEPT EMP-SALARY FROM TERMINAL. VALIDATE-EMPLOYEE-DATA. IF EMP-ID = 0 DISPLAY "Error: Invalid Employee ID" AT LINE 12 COLUMN 5 END-IF IF EMP-NAME = SPACES DISPLAY "Error: Name is required" AT LINE 13 COLUMN 5 END-IF IF EMP-SALARY <= 0 DISPLAY "Error: Invalid salary" AT LINE 14 COLUMN 5 END-IF. SAVE-EMPLOYEE-DATA. DISPLAY "Employee data saved successfully!" AT LINE 16 COLUMN 5. ASK-CONTINUE. DISPLAY "Enter another employee? (Y/N/Q): " AT LINE 18 COLUMN 5 ACCEPT ENTRY-STATUS FROM TERMINAL.
Data entry applications use TERMINAL for structured data input and validation.
Following these best practices ensures effective use of TERMINAL in COBOL applications for better user experience and interface design.
Aspect | Guideline | Example |
---|---|---|
Layout | Use consistent positioning and spacing | Labels at column 5, input at column 20 |
Headers | Clear titles and section headers | "=== CUSTOMER ENTRY FORM ===" |
Prompts | Clear, descriptive prompts | "Enter customer name: " |
Error Messages | Specific, helpful error messages | "Name cannot be blank" |
Navigation | Clear menu options and instructions | "Press any key to continue..." |
Aspect | Description | Example |
---|---|---|
Location | PROCEDURE DIVISION | In terminal I/O operations |
Output | DISPLAY with positioning | DISPLAY "Text" AT LINE 5 COLUMN 10 |
Input | ACCEPT from terminal | ACCEPT variable FROM TERMINAL |
Screen Control | Clear and format screen | DISPLAY SPACES ERASE SCREEN |
Cursor Control | Position cursor on screen | AT LINE 10 COLUMN 15 |
1. What is the primary purpose of TERMINAL in COBOL?
2. Where is TERMINAL typically used in a COBOL program?
3. What types of operations can TERMINAL handle?
4. How does TERMINAL differ from standard DISPLAY operations?
5. Which of the following is a common use of TERMINAL?
Understanding screen management in COBOL.
Designing user-friendly interfaces in COBOL.
Validating user input in COBOL applications.
Creating interactive COBOL applications.
Working with terminal operations in COBOL.