      * ROUTINE TO DISPLAY A MULTIPLICATION GRID.
       IDENTIFICATION DIVISION.
       PROGRAM-ID.  HELLO3.
       AUTHOR.      cHArRiOTt.
      *
       ENVIRONMENT DIVISION.
      *
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  X-SCREEN-DFT    PIC 99 VALUE  10.
       01  Y-SCREEN-DFT    PIC 99 VALUE  05.
       01  Y-ROW           PIC 99.
       01  X-COLUMN        PIC 99.
       01  X-POS           PIC 99.
       01  Y-POS           PIC 99.
       01  XY-PRODUCT      PIC 9(3).
       01  ws-limit        pic 99 value 0.
      *
      *
       PROCEDURE DIVISION.
       001-MAIN.
           DISPLAY (1 , 10)
           "Routine to CALCULATE and DISPLAY a MULTIPLICATION TABLE".
           display (3 , 10) "Enter maximum table size <limit 10> :".
           accept (3, 48) ws-limit.
           if ws-limit > 1 and ws-limit < 11  then
              MOVE 1 TO Y-ROW
              PERFORM 002-ROWS               UNTIL Y-ROW > ws-limit
           else
              display (4 , 10) "Ending early, table outside range".
           STOP RUN.
      *
      *
       002-ROWS.
           MOVE 1 TO X-COLUMN.
           PERFORM 003-COLUMNS              
               VARYING X-COLUMN FROM 1 BY 1 UNTIL X-COLUMN > ws-limit.
           ADD 1 TO Y-ROW.
           
      *
      *
       003-COLUMNS.
           MOVE ZEROS TO X-POS.
           MULTIPLY X-COLUMN BY 5 GIVING    X-POS.
           ADD X-SCREEN-DFT TO X-POS.
      * 
           MOVE ZEROS TO Y-POS.
           MOVE Y-ROW TO Y-POS.
           ADD Y-SCREEN-DFT TO Y-POS.
      *
           MULTIPLY Y-ROW BY X-COLUMN 
                          GIVING    XY-PRODUCT.
           PERFORM 004-DISPLAY-PRODUCT.
      *
      *                                                                
       004-DISPLAY-PRODUCT.
           MOVE Y-POS  TO LIN.
           MOVE X-POS  TO COL.
           DISPLAY (LIN , COL) XY-PRODUCT.
      *
      *
      *****END*******************************************Š   
