Imprimiendo en dos columnas

Se supone que formamos una serie de nombres que ocurren 108 veces. Se supone que tenemos el nombre 1-54 en la columna de la izquierda y los nombres 55-108 en la columna de la derecha. Después de haber habido 108 nombres para una página, inicializamos nuestra matriz y comenzamos de nuevo. La salida de mi código muestra los nombres 1-54 impresos y, en lugar de estar en la misma página y al lado de los nombres 1-54, los nombres 55-108 en la columna de la derecha pero después de los nombres 1-54. Cualquier pensamiento sería apreciado grandemente

Aquí está algo de mi código:

       PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
           READ NAMELIST-FILE-IN
               AT END
                   MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
               NOT AT END
                   PERFORM 200-PROCESS-ONE-RECORD
           END-READ
       END-PERFORM
       CLOSE NAMELIST-FILE-IN
       CLOSE NAMELIST-FILE-OUT
       STOP RUN.

   200-PROCESS-ONE-RECORD.
       ADD 1 TO NAME-SUB
       MOVE NAME-IN TO NAME-1 (NAME-SUB)
       PERFORM 220-MOVE-RECORDS.


   220-MOVE-RECORDS.
       IF NAME-SUB <= 54
           MOVE NAME-1 (NAME-SUB) TO LEFT-LABEL
           MOVE SPACES TO RIGHT-LABEL
       END-IF
       IF NAME-SUB >= 55
           MOVE NAME-1 (NAME-SUB) TO RIGHT-LABEL
           MOVE SPACES TO LEFT-LABEL
       END-IF
       MOVE DETAIL-LINE TO NAMELIST-RECORD-OUT
       WRITE NAMELIST-RECORD-OUT
           AFTER ADVANCING 1 LINE
       IF NAME-SUB >= 108
           MOVE SPACES TO DETAIL-LINE
           MOVE ZERO TO NAME-SUB
           PERFORM 300-WRITE-HEADING
       END-IF.

He codificado todas las entradas correctas de ALMACENAMIENTO DE TRABAJO para acomodar la información. ¿Sabe si hay algún problema con la forma en que escribo la línea de detalles o es la forma en que estoy procesando mis datos?

Respuestas a la pregunta(4)

Su respuesta a la pregunta