IDENTIFICATION DIVISION. PROGRAM-ID. Test_DRAW_CHARn. DATA DIVISION. WORKING-STORAGE SECTION. 77 VGA16-MODE PIC X(10) VALUE \"VGA16\". 77 TEXT-MODE PIC X(10) VALUE \"TEXT\". 77 STATUS-CODE PIC X. 01 COLOURS. 02 BLACK PIC 9(4) COMP VALUE 0. 02 DARK_BLUE PIC 9(4) COMP VALUE 1. 02 DARK_GREEN PIC 9(4) COMP VALUE 2. 02 DARK_CYAN PIC 9(4) COMP VALUE 3. 02 DARK_RED PIC 9(4) COMP VALUE 4. 02 DARK_MAGENTA PIC 9(4) COMP VALUE 5. 02 BROWN PIC 9(4) COMP VALUE 6. 02 LIGHT_GRAY PIC 9(4) COMP VALUE 7. 02 DARK_GRAY PIC 9(4) COMP VALUE 8. 02 LIGHT_BLUE PIC 9(4) COMP VALUE 9. 02 LIGHT_GREEN PIC 9(4) COMP VALUE 10. 02 LIGHT_CYAN PIC 9(4) COMP VALUE 11. 02 LIGHT_RED PIC 9(4) COMP VALUE 12. 02 LIGHT_MAGENTA PIC 9(4) COMP VALUE 13. 02 YELLOW PIC 9(4) COMP VALUE 14. 02 WHITE PIC 9(4) COMP VALUE 15. 01 PUT_PICTURE_BOOL. 02 PPB_REPLACE PIC 9(4) COMP VALUE 0. 02 PPB_AND PIC 9(4) COMP VALUE 1. 02 PPB_OR PIC 9(4) COMP VALUE 2. 02 PPB_XOR PIC 9(4) COMP VALUE 3. 77 x PIC 9(4) COMP. 77 y PIC 9(4) COMP. 77 ascii_no PIC 9(4) COMP. 77 color PIC 9(4) COMP. PROCEDURE DIVISION. MAIN. CALL \"SET_VIDEO_MODE\" USING VGA16-MODE STATUS-CODE IF STATUS-CODE = \"Y\" MOVE 30 TO x MOVE 1 TO color PERFORM VARYING ascii_no FROM 32 BY 1 UNTIL ascii_no > 127 MOVE 30 TO y CALL \"DRAW_CHAR1\" USING BY VALUE x, BY VALUE y, BY VALUE ascii_no, BY VALUE color, BY VALUE PPB_OR ADD 30 TO y CALL \"DRAW_CHAR3\" USING BY VALUE x, BY VALUE y, BY VALUE ascii_no, BY VALUE color, BY VALUE PPB_OR ADD 13 TO x IF color < 15 ADD 1 TO color ELSE MOVE 1 TO color END-IF END-PERFORM MOVE 30 TO x MOVE 1 TO color PERFORM VARYING ascii_no FROM 32 BY 1 UNTIL ascii_no > 127 MOVE 90 TO y CALL \"DRAW_CHAR2\" USING BY VALUE x, BY VALUE y, BY VALUE ascii_no, BY VALUE color, BY VALUE PPB_OR ADD 30 TO y CALL \"DRAW_CHAR4\" USING BY VALUE x, BY VALUE y, BY VALUE ascii_no, BY VALUE color, BY VALUE PPB_OR ADD 28 TO x IF color < 15 ADD 1 TO color ELSE MOVE 1 TO color END-IF END-PERFORM ACCEPT FOO CALL \"SET_VIDEO_MODE\" USING TEXT-MODE STATUS-CODE END-IF