* KEYTOEXE.cbl *Author: Tim Corrie Jr. 10/13/2021 first COBOL program, tried to keep generic *Written for gnuCOBOL 3.1.2 may not work for earlier. IDENTIFICATION DIVISION. PROGRAM-ID. KEYTOEXE. DATA DIVISION. WORKING-STORAGE SECTION. 01 KBD-NAME EXTERNAL. 05 KBD-NAME-ARRAY OCCURS 20 TIMES PIC A(3). 01 KBD-COLOR-ARRAY EXTERNAL. 05 KBD-COLOR OCCURS 20 TIMES PIC 9(10). 01 GAX PIC S9(10)V9(8). 01 ABS-GAX PIC 9(10)V9(8). 01 GAX-INT PIC 9(10). 01 GAX-FRAC PIC V9(8). 01 GAX-SIGN PIC A. 01 GBX PIC S9(10)V9(8). 01 GFISNUMBERENTERING PIC 9(1) VALUE 0. 01 GBINOP PIC 9(2). 01 GDISPSTR PIC A(25) VALUE "". 01 GDISPSTR-INT PIC A(12). 01 GDISPSTR-FRAC PIC A(12). LINKAGE SECTION. 01 IN-ROWCOL PIC 99. PROCEDURE DIVISION USING IN-ROWCOL. EVALUATE KBD-NAME-ARRAY( IN-ROWCOL ) WHEN "0" WHEN "1" WHEN "2" WHEN "3" WHEN "4" WHEN "5" WHEN "6" WHEN "7" WHEN "8" WHEN "9" * IF 5 IF GFISNUMBERENTERING IS EQUAL TO 0 THEN MOVE KBD-NAME-ARRAY( IN-ROWCOL ) TO GDISPSTR MOVE 1 TO GFISNUMBERENTERING * ELSE 5 ELSE * IF 6 IF FUNCTION LENGTH( FUNCTION TRIM(GDISPSTR TRAILING)) IS LESS THAN 23 THEN STRING FUNCTION TRIM(GDISPSTR TRAILING) DELIMITED BY SIZE FUNCTION TRIM(KBD-NAME-ARRAY( IN-ROWCOL ) TRAILING) DELIMITED BY SIZE INTO GDISPSTR END-STRING * END-IF 6 END-IF * END-IF 5 END-IF CALL "DISPLAYSTR" USING GDISPSTR WHEN "Off" DISPLAY "O 0 0 0" STOP RUN WHEN "C" MOVE "0" TO GDISPSTR CALL "DISPLAYSTR" USING GDISPSTR MOVE "" TO GDISPSTR MOVE 0 TO GFISNUMBERENTERING WHEN "