IDENTIFICATION DIVISION. PROGRAM-ID. "WOPO-CNF". ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CONFIG ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS CONFIG-KEY. SELECT USERS ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS USER-NAME. SELECT CHANNELS ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD CONFIG. 01 CONFIG-RECORD. 03 CONFIG-KEY PIC X(16). 03 CONFIG-VALUE PIC X(64). FD USERS. 01 USER-RECORD. 03 USER-NAME PIC X(16). 03 USER-LEVEL PIC 9(2). FD CHANNELS. 01 CHANNEL-RECORD. 03 CHANNEL-NAME PIC X(50). WORKING-STORAGE SECTION. 01 STATE PIC 9(2) VALUE 0. 88 DONE VALUE 10. PROCEDURE DIVISION. DISPLAY "WOPO CONFIGURATION PROGRAM". DISPLAY "BLANK ENTRY TO EXIT SECTION". DISPLAY "WRITING CONFIGURATION ENTRIES:". OPEN OUTPUT CONFIG. PERFORM WRITE-CONFIG-ENTRY UNTIL DONE. MOVE 0 TO STATE. CLOSE CONFIG. DISPLAY "WRITING USER ENTRIES:" OPEN OUTPUT USERS. PERFORM WRITE-USER-ENTRY UNTIL DONE. MOVE 0 TO STATE. CLOSE USERS. OPEN OUTPUT CHANNELS. DISPLAY "WRITING CHANNEL AUTOJOINS:" PERFORM WRITE-CHANNEL-ENTRY UNTIL DONE. MOVE 0 TO STATE. CLOSE CHANNELS. CALL "PRINT-CONFIG". STOP RUN. WRITE-CONFIG-ENTRY. DISPLAY "KEY?" ACCEPT CONFIG-KEY. DISPLAY "VALUE?" ACCEPT CONFIG-VALUE. IF CONFIG-KEY EQUALS SPACES OR CONFIG-VALUE EQUALS SPACES THEN MOVE 10 TO STATE ELSE WRITE CONFIG-RECORD. WRITE-USER-ENTRY. DISPLAY "USER?" ACCEPT USER-NAME. DISPLAY "LEVEL?" ACCEPT USER-LEVEL. IF USER-NAME EQUALS SPACES OR USER-LEVEL EQUALS 0 THEN MOVE 10 TO STATE ELSE WRITE USER-RECORD. WRITE-CHANNEL-ENTRY. DISPLAY "CHANNEL?" ACCEPT CHANNEL-NAME. IF CHANNEL-NAME EQUALS SPACES THEN MOVE 10 TO STATE ELSE WRITE CHANNEL-RECORD.