Imprimindo em duas colunas

Devemos formar uma matriz de nomes que ocorrem 108 vezes. Devemos ter o nome 1-54 em uma coluna da esquerda e os nomes 55-108 em uma coluna da direita. Depois de haver 108 nomes para uma página, inicializamos nossa matriz e começamos novamente. A saída para o meu código está mostrando os nomes 1-54 impressos e, em vez de estar na mesma página e ao lado dos nomes 1-54, os nomes 55-108 na coluna da direita, mas depois dos nomes 1-54. Qualquer pensamento seria muito apreciado.

Aqui está um pouco do meu 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.

Eu codifiquei todas as entradas adequadas de WORKING-STORAGE para acomodar as informações. Você sabe se há algo errado com a maneira como estou escrevendo a linha de detalhes ou é como estou processando meus dados?

questionAnswers(4)

yourAnswerToTheQuestion