logo                                                 logoslog

1
 

R2C - RPG II Programs to COBOL

 

RPG II Source Code

 

 U 
     U                                                                  
     H                                                                  
     H***************************************************************** 
     H*            MAINTENANCE LOG  -  PROGRAM # ABI003               * 
     H***************************************************************** 
     H*   DATE   | INIT |   DESCRIPTIVE COMMENTS                      * 
     H***************************************************************** 
     H* 10/19/98 | ANG  | CLONED FROM WFI003                          * 
     H***************************************************************** 
     FWORKIN  IPE F      25                                             
     FMASTER  IC  F    4000R 6A        KSDS                             
     FCONOUT  O   F      80            CONSOLE                          
     FWORKOT1 O   F      25                                             
     FWORKOT2 O   F      25                                             
     FREPORT  O   F     132     OF    LPRINTER                          
     FPRINT   O   F     132     OA    LPRINTER                          
     SWORKIN                               CODE  S3                     
     S                                     TYPE  S2                     
     S                                     SLOT  S1                     
     LREPORT   06 1 6012                                                
     LPRINT    06 1 6012                                                
     I*******************************                                   
     I*  TYPE 1 -- PICK RECORDS     *                                   
     I*  TYPE 2 -- RESV RECORDS     *                                   
     I*  TYPE 3 -- OS RESV RECORDS  *                                   
     I*******************************                                   
     IWORKIN  NS  01  20 C1                                             
     I       OR   02  20 C2                                             
     I       OR   03  20 C3                                             
     I                                        1   60CODE  L1            
     I                                        8  110QTY                 
     I                                        8  110QTY                 
     I                                       12  17 SLOT                
     I                                       20  200TYPE                
     IMASTER  NS  04   1 CM                                             
     I                                     35973597 BLDG                
     I                                     35983603 MSLOT               
     C*                                                                 
     C   L1                Z-ADD0         TOTQT1  50                    
     C   L1                Z-ADD0         TOTQT2  50                    
     C   L1      CODE      CHAINMASTER               50                 
     C   L1N50   BLDG      COMP 'F'                  1313               
     C*                                                                 
     C*                                                                 
     C   01N50   ITEM1     ADD  1         ITEM1   60                    
     C   02N50N13ITEM1     ADD  1         ITEM1   60                    
     C*                                                                 
     C   02N50 13ITEM2     ADD  1         ITEM2   60                    
     C   03N50   ITEM2     ADD  1         ITEM2   60                    
     C*                                                                 
     C   01N50   TOTQT1    ADD  QTY       TOTQT1                        
     C   02N50N13TOTQT1    ADD  QTY       TOTQT1                        
     C*                                                                 
     C   02N50 13TOTQT2    ADD  QTY       TOTQT2                        
     C   03N50   TOTQT2    ADD  QTY       TOTQT2                        
     C*                                                                 
     C   01 50   JUNK      ADD  1         JUNK    60                    
     C   02 50   JUNK      ADD  1         JUNK    60                    
     C   03 50   JUNK      ADD  1         JUNK    60                    
     C*                                                                 
     CL1         TOTQT1    COMP 0                    10                 
     CL1         TOTQT2    COMP 0                    20                 
     C*                                                                 
     OWORKOT1 D        01N50                                            
     O       OR        02N50                                            
     O       OR        03N50                                            
     O                         CODE       6                             
     O                         QTY       11                             
     O                         SLOT      17                             
     O                 01                20 '1'                         
     O                 02N13             20 '2'                         
     O                 02 13             20 '3'                         
     O                 03                20 '3'                         
     OWORKOT2 T        L1N50 10                                         
     O                                    1 '1'                         
     O                         CODE       7                             
     O                         TOTQT1    12                             
     O        T        L1N50 20                                         
     O                                    1 '2'                         
     O                         CODE       7                             
     O                         TOTQT2    12                             
     OPRINT   H  201   1P                                               
     O       OR        OA                                               
     O                                   15 'PROG #ABI00301'            
     O                                   21 'DATE'                      
     O                         UDATE Y   30                             
     O                                   52 '***'                       
     O                                   70 'INVENTORY NO SUCH'         
     O                                   80 'CODE LIST'                 
     O                                   84 '***'                       
     O                                  111 'PAGE'                      
     O                         PAGE  Z  115                             
     O        H  2     1P                                               
     O       OR        OA              
					51 'TYPE'               
     O                                   63 'CODE'                      
     O                                   74 'SLOT'                      
     O                                   85 'QTY'                       
     O        D  2     01                                               
     O       OR        02                                               
     O       OR        03                                               
     O                 01                51 'HOME'                      
     O                 02                51 'RESV'                      
     O                 03                51 'RESV'                      
     O                         CODE  Z   63                             
     O                 01      MSLOT     74                             
     O                 02      SLOT      74                             
     O                 03      SLOT      74                             
     O                         QTY       85 '  0 '                      
     O                 02 13            105 'OUTSIDE STORAGE'           
     O                 03               105 'OUTSIDE STORAGE'           
     O        T 2      LR                                               
     O                                   52 '***'                       
     O                                   70 'TOTAL SELECTION -'         
     O                         ITEM1 2   78                             
     O                                   82 '***'                       
     O        T 2      LR                                               
     O                                   52 '***'                       
     O                                   70 'TOTAL O-STORAGE -'         
     O                         ITEM2 2   78                             
     O                                   82 '***'                       
     O        T 2      LR                                               
     O                                   52 '***'                       
     O                                   71 'TOTAL INVALID   -'         
     O                         JUNK  2   78                             
     O                                   82 '***'                       
     OCONOUT  T 11     LR                                               
     O                                   15 'TOTAL NUMBER OF'         
     O                                   32 'SELECTION ITEMS-'        
     O                         ITEM1 2   40                           
     O        T 11     LR                                             
     O                                   15 'TOTAL NUMBER OF'         
     O                                   32 'O-STORAGE ITEMS-'        
     O                         ITEM2 2   40                           
     O        T 11     LR                                             
     O                                   15 'TOTAL NUMBER OF'         
     O                                   32 'INVALID RECORDS-'        
     O                         JUNK  2   40              

     O*       T 2      LR                                               
              WRITE REPORT-OUTPUT-RECORD                                

     O*                                  82 '***'                       

                    REPORT-RECORD(91:15)                                

     O*                03                51 'RESV'                      
           IF (03-ON)                                                   



                                                                        
                                       
                                    

COBOL Code Generated


       IDENTIFICATION DIVISION.                                         
                                                                        
      *--------------------------------------------------------------*  
      * R2C - RPG II converted to Cobol on 2019/11/18                *  
      *--------------------------------------------------------------*  
                                                                        
       PROGRAM-ID. ABI003.                                              
                                                                        
       ENVIRONMENT DIVISION.                                            
       CONFIGURATION SECTION.                                           
                                                                        
       INPUT-OUTPUT SECTION.                                            
       FILE-CONTROL.                                                    
           SELECT WORKIN-FILE   ASSIGN TO UT-S-WORKIN                   
                                ORGANIZATION IS SEQUENTIAL              
                                ACCESS IS SEQUENTIAL.                   
           SELECT MASTER-FILE   ASSIGN TO MASTER                        
                                ORGANIZATION IS INDEXED                 
                                ACCESS IS DYNAMIC                       
                                RECORD KEY IS MASTER-KEY                
                                STATUS IS MASTER-STATUS.                
           SELECT CONOUT-FILE   ASSIGN TO UT-S-CONOUT                   
                                ORGANIZATION IS SEQUENTIAL              
                                ACCESS IS SEQUENTIAL.                   
           SELECT WORKOT1-FILE  ASSIGN TO UT-S-WORKOT1                  
                                ORGANIZATION IS SEQUENTIAL              
                                ACCESS IS SEQUENTIAL.                   
           SELECT WORKOT2-FILE  ASSIGN TO UT-S-WORKOT2                  
                                ORGANIZATION IS SEQUENTIAL              
                                ACCESS IS SEQUENTIAL.                   
           SELECT REPORT-FILE   ASSIGN TO SYS020-UR-3203-REPORT.        
            SELECT PRINT-FILE    ASSIGN TO SYS020-UR-3203-PRINT.         
            SELECT SORT-WORKIN ASSIGN TO SORTWORK.                       
                                                                         
        DATA DIVISION.                                                   
        FILE SECTION.                                                    
                                                                         
       *--------------------------------------------------------------   
       *    File descriptions                                            
       *--------------------------------------------------------------   
                                                                         
                                                                         
        FD  WORKIN-FILE                                                  
            BLOCK CONTAINS 0 RECORDS                                     
            RECORDING MODE F.                                            
        01  WORKIN-RECORD                 PIC X(25).                     
                                                                         
        FD  MASTER-FILE.                                                 
        01  MASTER-RECORD.                                               
            05  MASTER-KEY                PIC X(6).                      
            05  FILLER                    PIC X(3994).                   
                                                                         
        FD  CONOUT-FILE                                                  
            BLOCK CONTAINS 0 RECORDS                                     
            RECORDING MODE F.                                            
        01  CONOUT-RECORD                 PIC X(80).                     
                                                                         
        FD  WORKOT1-FILE                                                 
            BLOCK CONTAINS 0 RECORDS                                     
            RECORDING MODE F.                                            
        01  WORKOT1-RECORD                PIC X(25).                     
                                                                         
        FD  WORKOT2-FILE                                                 
           05  FILLER                    PIC X.                         
               88  02-ON                 VALUE '1'.                     
               88  02-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  03-ON                 VALUE '1'.                     
               88  03-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  04-ON                 VALUE '1'.                     
               88  04-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  1P-ON                 VALUE '1'.                     
               88  1P-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  10-ON                 VALUE '1'.                     
               88  10-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  13-ON                 VALUE '1'.                     
               88  13-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  20-ON                 VALUE '1'.                     
               88  20-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  50-ON                 VALUE '1'.                     
               88  50-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L1-ON                 VALUE '1'.                     
               88  L1-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L2-ON                 VALUE '1'.                     
               88  L2-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L3-ON                 VALUE '1'.                     
               88  L3-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L4-ON                 VALUE '1'.                     
               88  L4-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L5-ON                 VALUE '1'.                     
               88  L5-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L6-ON                 VALUE '1'.                     
               88  L6-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L7-ON                 VALUE '1'.                     
               88  L7-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L8-ON                 VALUE '1'.                     
               88  L8-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  L9-ON                 VALUE '1'.                     
               88  L9-OFF                VALUE '0'.                     
           05  FILLER                    PIC X.                         
               88  LR-ON                 VALUE '1'.                     
               88  LR-OFF                VALUE '0'.                     
                                                                        
                                                                        
       01  COUNTERS.                                                    
           05  PRINT-PAGE-CTR            PIC 9(3)         VALUE ZERO.   
           05  PRINT-LINE-CTR            PIC 9(5)         VALUE ZERO.   
           05  REPORT-PAGE-CTR           PIC 9(3)         VALUE ZERO.   
           05  REPORT-LINE-CTR           PIC 9(5)         VALUE ZERO.   
                                                                        
                                                                        
      *--------------------------------------------------------------   
       *    Work fields for calculations                                 
       *--------------------------------------------------------------   
        01  CALCULATION-FIELDS.                                          
            05  TOTQT1                 PIC S9(5)      VALUE ZERO.        
            05  TOTQT2                 PIC S9(5)      VALUE ZERO.        
            05  ITEM1                  PIC S9(6)      VALUE ZERO.        
            05  ITEM2                  PIC S9(6)      VALUE ZERO.        
            05  JUNK                   PIC S9(6)      VALUE ZERO.        
                                                                         
        PROCEDURE DIVISION.                                              
                                                                         
        INITIAL-PROCESS SECTION.                                         
                                                                         
            MOVE ZEROES TO INDICATORS.                                   
                 SET 1P-ON TO TRUE                                       
                                                                         
            MOVE FUNCTION CURRENT-DATE TO WS-CURRENT-DATE-FIELDS.        
            MOVE WS-CURRENT-YEAR (3:2) TO UYEAR                          
            MOVE WS-CURRENT-MONTH TO UMONTH.                             
            MOVE WS-CURRENT-DAY TO UDAY.                                 
                                                                         
            MOVE UDAY   TO UDAYY                                         
            MOVE UMONTH TO UMONTHY                                       
            MOVE UYEAR  TO UYEARY                                        
                                                                         
            OPEN INPUT  WORKIN-FILE                                      
                 INPUT  MASTER-FILE                                      
                 OUTPUT CONOUT-FILE                                      
                 OUTPUT WORKOT1-FILE                                     
                 OUTPUT WORKOT2-FILE                                     
                 OUTPUT REPORT-FILE                                      
                 OUTPUT PRINT-FILE                                       
INSRT *                                                              
                                                                     
       MAIN-PROCESS SECTION.                                         
                                                                     
                                                                     
           MOVE ZEROES TO INDICATORS.                                
           RETURN SORT-WORKIN INTO WORKIN-WORK                       
             AT END                                                  
               SET WORKIN-EOF TO TRUE                                
               SET LR-ON TO TRUE                                     
               SET L1-ON TO TRUE                                     
               SET L2-ON TO TRUE                                     
               SET L3-ON TO TRUE                                     
               SET L4-ON TO TRUE                                     
               SET L5-ON TO TRUE                                     
               SET L6-ON TO TRUE                                     
               SET L7-ON TO TRUE                                     
               SET L8-ON TO TRUE                                     
               SET L9-ON TO TRUE                                     
               PERFORM END-PROCESS                                   
             NOT AT END                                              
               PERFORM INPUT-WORKIN                                  
           END-RETURN                                                
                                                                     
           PERFORM DETAIL-CALCULATIONS                               
                                                                     
           IF FIRST-PASS = 0                                         
               MOVE 1 TO FIRST-PASS                                  
           END-IF                                                    
                                                                     
           PERFORM PRINT-OUTPUT    
                                                                        
           PERFORM WORKOT1-OUTPUT                                       
                                                                        
           IF FIRST-PAGE = 0                                            
              SET 1P-OFF TO TRUE                                        
                                                                        
              MOVE 1 TO FIRST-PAGE                                      
           END-IF                                                       
           .                                                            
                                                                        
       MAIN-PROCESS-EXIT.                                               
           EXIT.                                                        
                                                                        
       END-PROCESS SECTION.                                             
                                                                        
           IF (L1-ON) AND (FIRST-PASS = 1)                              
              PERFORM TOTALING-ROUTINE                                  
              PERFORM CONOUT-TOTAL                                      
              PERFORM PRINT-TOTAL                                       
              PERFORM REPORT-TOTAL                                      
              PERFORM WORKOT2-TOTAL                                     
           END-IF                                                       
           CLOSE WORKIN-FILE                                            
                 MASTER-FILE                                            
                 CONOUT-FILE                                            
                 WORKOT1-FILE                                           
                 WORKOT2-FILE                                           
                 REPORT-FILE                                            
                 PRINT-FILE                                             
           GOBACK.                                                      
       END-PROCESS-EXIT.                                                
           EXIT.                                                        SRPRC**                                                                 
                                                                        
       INPUT-WORKIN SECTION.                                            
                                                                        
           IF WORKIN-RECORD(20:1) = '1'                                 
           OR WORKIN-RECORD(20:1) = '2'                                 
           OR WORKIN-RECORD(20:1) = '3'                                 
              SET 01-ON TO TRUE                                         
              IF FIRST-PASS = 1                                         
                 IF CODE-R2C NOT EQUAL TO CODE-R2C-BREAK                
                   SET L1-ON TO TRUE                                    
                 END-IF                                                 
              END-IF                                                    
              MOVE SORT-WORKIN-RECORD TO WORKIN-BREAK                   
           END-IF                                                       
                                                                        
           IF (L1-ON) AND (FIRST-PASS = 1)                              
              PERFORM TOTALING-ROUTINE                                  
              PERFORM CONOUT-TOTAL                                      
              PERFORM PRINT-TOTAL                                       
              PERFORM REPORT-TOTAL                                      
              PERFORM WORKOT2-TOTAL                                     
           END-IF                                                       
           IF (01-ON)                                                   
              MOVE SPACES TO WORKIN-HOLD                                
              MOVE WORKIN-WORK TO WORKIN-HOLD                           
           END-IF                                                       
           .                                                            
       INPUT-WORKIN-EXIT.                                               
           EXIT.                                                        
                                                                        
       INPUT-MASTER SECTION.                                            
                                                                                                  
           IF MASTER-RECORD(1:1) = 'M'                                  
              SET 04-ON TO TRUE                                         
           END-IF                                                       
                                                                        
           IF (04-ON)                                                   
              MOVE SPACES TO MASTER-HOLD                                
              MOVE MASTER-WORK TO MASTER-HOLD                           
           END-IF                                                       
           .                                                            
       INPUT-MASTER-EXIT.                                               
           EXIT.                                                        
                                                                        
                                                                        
       CHECK-VSAM-STATUS SECTION.                                       
                                                                        
           SEARCH ALL STATUS-VALUE                                      
              WHEN STATUS-ENTRY-ONE(STATUS-INDEX)                       
                 =  WS-VSAM-STATUS                                      
              DISPLAY STATUS-ENTRY-TWO(STATUS-INDEX)                    
              UPON SYSOUT                                               
           END-SEARCH.                                                  
       CHECK-VSAM-STATUS-EXIT.                                          
           EXIT.                                                        
                                                                        
       DETAIL-CALCULATIONS SECTION.                                     
                                                                        
           IF  FIRST-PASS = 0                                           
                 SET L1-ON TO TRUE                                      
           END-IF                                                       
     C*  L1                Z-ADD0         TOTQT1  50                    
           IF  (L1-ON)                                                  
               MOVE ZEROES TO TOTQT1                                    
           END-IF                                                       
     C*  L1                Z-ADD0         TOTQT2  50                    
           IF  (L1-ON)                                                  
               MOVE ZEROES TO TOTQT2                                    
           END-IF                                                       
     C*  L1      CODE      CHAINMASTER               50                 
           IF  (L1-ON)                                                  
              SET 50-OFF TO TRUE                                        
              MOVE CODE-R2C-HOLD TO MASTER-KEY                          
              READ  MASTER-FILE                                         
                 INTO MASTER-WORK                                       
                 KEY IS MASTER-KEY                                      
                 INVALID KEY SET 50-ON TO TRUE                          
                   MOVE MASTER-STATUS TO WS-VSAM-STATUS                 
                   PERFORM CHECK-VSAM-STATUS                            
                 NOT INVALID KEY                                        
                   SET 50-OFF TO TRUE                                   
              END-READ                                                  
              PERFORM INPUT-MASTER                                      
           END-IF                                                       
     C*  L1N50   BLDG      COMP 'F'                  1313               
           IF  (L1-ON                                                   
           AND  50-OFF)                                                 
              SET 13-OFF TO TRUE                                        
              IF BLDG-HOLD IS GREATER THAN 'F'                          
                 SET 13-ON TO TRUE                                      
              END-IF                                                    
              IF BLDG-HOLD IS LESS THAN 'F'                             
                 SET 13-ON TO TRUE                                      
              END-IF                                                    
           END-IF                                                       
      C*  01N50   ITEM1     ADD  1         ITEM1   60                    
            IF  (01-ON                                                   
            AND  50-OFF)                                                 
                COMPUTE ITEM1 =                                          
                     ITEM1 + 1                                           
            END-IF                                                       
      C*  02N50N13ITEM1     ADD  1         ITEM1                         
            IF  (02-ON                                                   
            AND  50-OFF                                                  
            AND  13-OFF)                                                 
                COMPUTE ITEM1 =                                          
                     ITEM1 + 1                                           
            END-IF                                                       
      C*  02N50 13ITEM2     ADD  1         ITEM2   60                    
            IF  (02-ON                                                   
            AND  50-OFF                                                  
            AND  13-ON)                                                  
                COMPUTE ITEM2 =                                          
                     ITEM2 + 1                                           
            END-IF                                                       
      C*  03N50   ITEM2     ADD  1         ITEM2                         
            IF  (03-ON                                                   
            AND  50-OFF)                                                 
                COMPUTE ITEM2 =                                          
                     ITEM2 + 1                                           
            END-IF                                                       
      C*  01N50   TOTQT1    ADD  QTY       TOTQT1                        
            IF  (01-ON                                                   
            AND  50-OFF)                                                 
                COMPUTE TOTQT1 =                                         
                     TOTQT1 + QTY-HOLD                                   
            END-IF                                                       
     C*  03 50   JUNK      ADD  1         JUNK                          
           IF  (03-ON                                                   
           AND  50-ON)                                                  
               COMPUTE JUNK =                                           
                    JUNK + 1                                            
           END-IF                                                       
     C*1         TOTQT1    COMP 0                    10                 
           .                                                            
       DETAIL-CALCULATIONS-EXIT.                                        
           EXIT.                                                        
                                                                        
       TOTALING-ROUTINE SECTION.                                        
           IF  (L1-ON)                                                  
              SET 10-OFF TO TRUE                                        
              IF TOTQT1 IS GREATER THAN 0                               
                 SET 10-ON TO TRUE                                      
              END-IF                                                    
           END-IF                                                       
     C*1         TOTQT2    COMP 0                    20                 
           IF  (L1-ON)                                                  
              SET 20-OFF TO TRUE                                        
              IF TOTQT2 IS GREATER THAN 0                               
                 SET 20-ON TO TRUE                                      
              END-IF                                                    
           END-IF                                                       
                                                                        
           .                                                            
       TOTALING-ROUTINE-EXIT.                                           
           EXIT.                                                        
                                                                        
     O*ORKOT1 D        01N50                                            
       WORKOT1-OUTPUT SECTION.                                          
                                                                        
           MOVE SPACES TO WORKOT1-RECORD.                               
                                                                        
           IF (01-ON                                                    
           AND 50-OFF)                                                  
     O*      OR        02N50                                            
           OR  (02-ON                                                   
           AND  50-OFF)                                                 
     O*      OR        03N50                                            
           OR  (03-ON                                                   
           AND  50-OFF)                                                 
     O*                        CODE       6                             
              MOVE CODE-R2C-HOLD TO WORK-NUMERIC4                       
              MOVE WORKFIELD4(13:6) TO WORKOT1-RECORD(1:6)              
     O*                        QTY       11                             
              MOVE QTY-HOLD TO WORK-NUMERIC4                            
              MOVE WORKFIELD4(15:4) TO WORKOT1-RECORD(8:4)              
     O*                        SLOT      17                             
              MOVE SLOT-HOLD TO WORKOT1-RECORD(12:6)                    
     O*                01                20 '1'                         
           IF (01-ON)                                                   
              MOVE '1' TO                                               
                    WORKOT1-RECORD(20:1)                                
           END-IF                                                       
     O*                02N13             20 '2'                         
           IF (02-ON                                                    
           AND 13-OFF)                                                  
              MOVE '2' TO                                               
                    WORKOT1-RECORD(20:1)                                
           END-IF                                                       
     O*                02 13             20 '3'                         
           IF (02-ON                                                
           AND 13-ON)                                               
              MOVE '3' TO                                           
                    WORKOT1-RECORD(20:1)                            
           END-IF                                                   
     O*                03                20 '3'                     
           IF (03-ON)                                               
              MOVE '3' TO                                           
                    WORKOT1-RECORD(20:1)                            
           END-IF                                                   
     O*ORKOT2 T        L1N50 10                                     
              WRITE WORKOT1-RECORD                                  
              MOVE SPACES TO WORKOT1-RECORD                         
           END-IF                                                   
                                                                    
           .                                                        
       WORKOT1-OUTPUT-EXIT.                                         
           EXIT.                                                    
                                                                    
                                                                    
       WORKOT2-TOTAL SECTION.                                       
                                                                    
           IF (L1-ON                                                
           AND 50-OFF                                               
           AND 10-ON)                                               
     O*                                   1 '1'                     
              MOVE '1' TO                                           
                    WORKOT2-RECORD(1:1)                             
     O*                        CODE       7                         
              MOVE CODE-R2C-HOLD TO WORK-NUMERIC4                   
              MOVE WORKFIELD4(13:6) TO WORKOT2-RECORD(2:6)          
     O*                        TOTQT1    12                         
              MOVE TOTQT1 TO WORK-NUMERIC4                              
              MOVE WORKFIELD4(14:5) TO WORKOT2-RECORD(8:5)              
     O*       T        L1N50 20                                         
              WRITE WORKOT2-RECORD                                      
              MOVE SPACES TO WORKOT2-RECORD                             
           END-IF                                                       
                                                                        
           IF (L1-ON                                                    
           AND 50-OFF                                                   
           AND 20-ON)                                                   
     O*                                   1 '2'                         
              MOVE '2' TO                                               
                    WORKOT2-RECORD(1:1)                                 
     O*                        CODE       7                             
              MOVE CODE-R2C-HOLD TO WORK-NUMERIC4                       
              MOVE WORKFIELD4(13:6) TO WORKOT2-RECORD(2:6)              
     O*                        TOTQT2    12                             
              MOVE TOTQT2 TO WORK-NUMERIC4                              
              MOVE WORKFIELD4(14:5) TO WORKOT2-RECORD(8:5)              
     O*RINT   H  201   1P                                               
              WRITE WORKOT2-RECORD                                      
              MOVE SPACES TO WORKOT2-RECORD                             
           .                                                            
       WORKOT2-TOTAL-EXIT.                                              
           EXIT.                                                        
                                                                        
                                                                        
       PRINT-OUTPUT SECTION.                                            
                                                                        
           MOVE SPACES TO PRINT-RECORD.                                 
                                                                        
           IF (1P-ON)                                                   
              MOVE PAGE1  TO PAGEZ                                      
              MOVE PAGEZ TO PRINT-RECORD(112:4)                         
     O*       H  2     1P                                               
              WRITE PRINT-OUTPUT-RECORD                                 
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO PRINT-LINE-CTR                                   
              MOVE SPACES TO PRINT-OUTPUT-RECORD                        
              IF PRINT-LINE-CTR IS GREATER THAN  60                     
                 SET OA-ON TO TRUE                                      
                 MOVE ZERO TO PRINT-LINE-CTR                            
              ELSE                                                      
                 SET OA-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO PRINT-RECORD                               
           END-IF                                                       
                                                                        
           IF (1P-ON)                                                   
     O*      OR        OA                                               
           OR  (OA-ON)                                                  
     O*                                  51 'TYPE'                      
              MOVE 'TYPE' TO                                            
                    PRINT-RECORD(48:4)                                  
     O*                                  63 'CODE'                      
              MOVE 'CODE' TO                                            
                    PRINT-RECORD(60:4)                                  
     O*                                  74 'SLOT'                      
              MOVE 'SLOT' TO                                            
                    PRINT-RECORD(71:4)                                  
     O*                                  85 'QTY'                       
              MOVE 'QTY' TO                                             
                    PRINT-RECORD(83:3)                                  
     O*       D  2     01 50                                            
              WRITE PRINT-OUTPUT-RECORD                                 
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO PRINT-LINE-CTR                                   
              MOVE SPACES TO PRINT-OUTPUT-RECORD                        
              IF PRINT-LINE-CTR IS GREATER THAN  60                     
                 SET OA-ON TO TRUE                                      
                 MOVE ZERO TO PRINT-LINE-CTR                            
              ELSE                                                      
                 SET OA-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO PRINT-RECORD                               
           END-IF                                                       
                                                                        
           IF (01-ON                                                    
           AND 50-ON)                                                   
     O*      OR        02 50                                            
           OR  (02-ON                                                   
           AND  50-ON)                                                  
     O*      OR        03 50                                            
           OR  (03-ON                                                   
           AND  50-ON)                                                  
     O*                01                51 'HOME'                      
           IF (01-ON)                                                   
              MOVE 'HOME' TO                                            
                    PRINT-RECORD(48:4)                                  
           END-IF                                                       
     O*                02                51 'RESV'                      
           IF (02-ON)                                                   
              MOVE 'RESV' TO                                            
                    PRINT-RECORD(48:4)                                  
           END-IF                                                       
     O*                03                51 'RESV'    
           IF (03-ON)                                                   
              MOVE 'RESV' TO                                            
                    PRINT-RECORD(48:4)                                  
           END-IF                                                       
     O*                        CODE  Z   63                             
              MOVE CODE-R2C-HOLD TO WORK-NUMERIC4                       
              MOVE WORKFIELD4(13:6) TO PRINT-RECORD(58:6)               
     O*                        SLOT      74                             
              MOVE SLOT-HOLD TO PRINT-RECORD(69:6)                      
     O*                        QTY   3   85                             
              MOVE QTY-HOLD TO WS-EDITED-C5                             
              MOVE WS-EDITED-C5(14:5)                                   
                TO PRINT-RECORD(81:5)                                   
     O*RINT   T  2     LR                                               
              WRITE PRINT-OUTPUT-RECORD                                 
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO PRINT-LINE-CTR                                   
              MOVE SPACES TO PRINT-OUTPUT-RECORD                        
              IF PRINT-LINE-CTR IS GREATER THAN  60                     
                 SET OA-ON TO TRUE                                      
                 MOVE ZERO TO PRINT-LINE-CTR                            
              ELSE                                                      
                 SET OA-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO PRINT-RECORD                               
           .                                                            
       PRINT-OUTPUT-EXIT.                                               
           EXIT.         

       PRINT-TOTAL SECTION.                                                                                        
	      iF (LR-ON)                                                   
     O*                                  65 'TOTAL RECORDS NOT'         
              MOVE 'TOTAL RECORDS NOT' TO                               
                    PRINT-RECORD(49:17)                                 
     O*                                  75 'PROCESSED'                 
              MOVE 'PROCESSED' TO                                       
                    PRINT-RECORD(67:9)                                  
     O*                        JUNK  Z   83                             
              MOVE JUNK TO WORK-NUMERIC4                                
              MOVE WORKFIELD4(13:6) TO PRINT-RECORD(78:6)          
     
     O*EPORT  H  201   1P                                               
              WRITE PRINT-OUTPUT-RECORD                                 
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO PRINT-LINE-CTR                                   
              MOVE SPACES TO PRINT-OUTPUT-RECORD                        
              IF PRINT-LINE-CTR IS GREATER THAN  60                     
                 SET OA-ON TO TRUE                                      
                 MOVE ZERO TO PRINT-LINE-CTR                            
              ELSE                                                      
                 SET OA-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO PRINT-RECORD                               
           END-IF                                                       
                                                                        
           .                                                            
       PRINT-TOTAL-EXIT.                                                
           EXIT.                                                        
                                                                        
                                                                        
       REPORT-OUTPUT SECTION.                                           
                                                                        
           MOVE SPACES TO REPORT-RECORD.                                
                                                                        
           IF (1P-ON)                                                   
     O*      OR        OF                                               
           OR  (OF-ON)                                                  
     O*                                  14 'PROG #ABI003'              
              MOVE 'PROG #ABI003' TO                                    
                    REPORT-RECORD(3:12)                                 
     O*                                  21 'DATE'                      
              MOVE 'DATE' TO                                            
                    REPORT-RECORD(18:4)                                 
     O*                        UDATE Y   30                             
              MOVE UDAY   TO UDAYY                                      
              MOVE UMONTH TO UMONTHY                                    
              MOVE UYEAR  TO UYEARY                                     
              MOVE UDATE-Y TO                                           
                    REPORT-RECORD(23:8)                                 
                                                                        
     O*                                  52 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(50:3)                                 
     O*                                  68 'INVENTORY TOTAL'           
              MOVE 'INVENTORY TOTAL' TO                                 
                    REPORT-RECORD(54:15)                                
     O*                                  79 'ITEMS LIST'                
              MOVE 'ITEMS LIST' TO                                      
                    REPORT-RECORD(70:10)                                
     O*                                  83 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(81:3)                                 
     O*                                 111 'PAGE'                      
              MOVE 'PAGE' TO                                            
                    REPORT-RECORD(108:4)                                    
     O*                        PAGE1 Z  115                             
             ADD 1 TO PAGE1                                            
             MOVE PAGE1  TO PAGEZ                                      
             MOVE PAGEZ TO REPORT-RECORD(112:4)                        
     O*       H  2     1P                                               
             WRITE REPORT-OUTPUT-RECORD                                
               AFTER  ADVANCING 2 LINES                                
             ADD 2 TO REPORT-LINE-CTR                                  
             MOVE SPACES TO REPORT-OUTPUT-RECORD                       
             IF REPORT-LINE-CTR IS GREATER THAN  60                    
                SET OF-ON TO TRUE                                      
                MOVE ZERO TO REPORT-LINE-CTR                           
             ELSE                                                      
                SET OF-OFF TO TRUE                                     
             END-IF                                                    
             MOVE SPACES TO REPORT-RECORD                              
          END-IF                                                       
                                                                       
          IF (1P-ON)                                                   
    O*      OR        OF                                               
          OR  (OF-ON)                                                  
    O*                                  51 'TYPE'                      
             MOVE 'TYPE' TO                                            
                   REPORT-RECORD(48:4)                                 
    O*                                  63 'CODE'                      
             MOVE 'CODE' TO                                            
                   REPORT-RECORD(60:4)                                 
    O*                                  74 'SLOT'                      
             MOVE 'SLOT' TO                                            
                   REPORT-RECORD(71:4)                                 
    O*                                  85 'QTY'                       
             MOVE 'QTY' TO     REPORT-RECORD(83:3)                                 
     O*       D  2     01                                               
              WRITE REPORT-OUTPUT-RECORD                                
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO REPORT-LINE-CTR                                  
              MOVE SPACES TO REPORT-OUTPUT-RECORD                       
              IF REPORT-LINE-CTR IS GREATER THAN  60                    
                 SET OF-ON TO TRUE                                      
                 MOVE ZERO TO REPORT-LINE-CTR                           
              ELSE                                                      
                 SET OF-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO REPORT-RECORD                              
           END-IF                                                       
                                                                        
           IF (01-ON)                                                   
     O*      OR        02                                               
           OR  (02-ON)                                                  
     O*      OR        03                                               
           OR  (03-ON)                                                  
     O*                01                51 'HOME'                      
           IF (01-ON)                                                   
              MOVE 'HOME' TO                                            
                    REPORT-RECORD(48:4)                                 
           END-IF                                                       
     O*                02                51 'RESV'                      
           IF (02-ON)                                                   
              MOVE 'RESV' TO                                            
                    REPORT-RECORD(48:4)        
                         
           END-IF                    
                    MOVE 'RESV' TO                                            
                    REPORT-RECORD(48:4)                                 
           END-IF                                                       
     O*                        CODE  Z   63                             
              MOVE CODE-R2C-HOLD TO WORK-NUMERIC4                       
              MOVE WORKFIELD4(13:6) TO REPORT-RECORD(58:6)              
     O*                01      MSLOT     74                             
           IF (01-ON)                                                   
              MOVE MSLOT-HOLD TO REPORT-RECORD(69:6)                    
           END-IF                                                       
     O*                02      SLOT      74                             
           IF (02-ON)                                                   
              MOVE SLOT-HOLD TO REPORT-RECORD(69:6)                     
           END-IF                                                       
     O*                03      SLOT      74                             
           IF (03-ON)                                                   
              MOVE SLOT-HOLD TO REPORT-RECORD(69:6)                     
           END-IF                                                       
     O*                        QTY   1   85                             
              MOVE QTY-HOLD TO WS-EDITED-C0                             
              MOVE WS-EDITED-C0(19:5)                                   
                TO REPORT-RECORD(81:5)                                  
     O*                02 13            105 'OUTSIDE STORAGE'           
           IF (02-ON                                                    
           AND 13-ON)                                                   
              MOVE 'OUTSIDE STORAGE' TO                                 
                    REPORT-RECORD(91:15)                                
           END-IF                                                       
     O*                03               105 'OUTSIDE STORAGE'           
           IF (03-ON)                                                   
              MOVE 'OUTSIDE STORAGE' TO  
                                          END-IF                                                       
     O*EPORT  T 2      LR                                               
              WRITE REPORT-OUTPUT-RECORD                                
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO REPORT-LINE-CTR                                  
              MOVE SPACES TO REPORT-OUTPUT-RECORD                       
              IF REPORT-LINE-CTR IS GREATER THAN  60                    
                 SET OF-ON TO TRUE                                      
                 MOVE ZERO TO REPORT-LINE-CTR                           
              ELSE                                                      
                 SET OF-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO REPORT-RECORD                              
           .                                                            
       REPORT-OUTPUT-EXIT.                                              
           EXIT.                                                        
                                                                        
                                                                        
       REPORT-TOTAL SECTION.                                            
                                                                        
           IF (LR-ON)                                                   
     O*                                  52 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(50:3)                                 
     O*                                  70 'TOTAL SELECTION -'         
              MOVE 'TOTAL SELECTION -' TO                               
                    REPORT-RECORD(54:17)                                
     O*                        ITEM1 2   78                             
              MOVE ITEM1 TO WS-EDITED-C2                                
              MOVE WS-EDITED-C2(17:8)                                   
                TO REPORT-RECORD(71:8)   
               MOVE '***' TO                                             
                    REPORT-RECORD(80:3)                                 
     O*       T 2      LR                                               
              WRITE REPORT-OUTPUT-RECORD                                
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO REPORT-LINE-CTR                                  
              MOVE SPACES TO REPORT-OUTPUT-RECORD                       
              IF REPORT-LINE-CTR IS GREATER THAN  60                    
                 SET OF-ON TO TRUE                                      
                 MOVE ZERO TO REPORT-LINE-CTR                           
              ELSE                                                      
                 SET OF-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO REPORT-RECORD                              
           END-IF                                                       
                                                                        
           IF (LR-ON)                                                   
     O*                                  52 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(50:3)                                 
     O*                                  70 'TOTAL O-STORAGE -'         
              MOVE 'TOTAL O-STORAGE -' TO                               
                    REPORT-RECORD(54:17)                                
     O*                        ITEM2 2   78                             
              MOVE ITEM2 TO WS-EDITED-C2                                
              MOVE WS-EDITED-C2(17:8)                                   
                TO REPORT-RECORD(71:8)                                  
     O*                                  82 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(80:3)      AFTER  ADVANCING 2 LINES                                
              ADD 2 TO REPORT-LINE-CTR                                  
              MOVE SPACES TO REPORT-OUTPUT-RECORD                       
              IF REPORT-LINE-CTR IS GREATER THAN  60                    
                 SET OF-ON TO TRUE                                      
                 MOVE ZERO TO REPORT-LINE-CTR                           
              ELSE                                                      
                 SET OF-OFF TO TRUE                                     
              END-IF                                                    
              MOVE SPACES TO REPORT-RECORD                              
           END-IF                                                       
                                                                        
           IF (LR-ON)                                                   
     O*                                  52 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(50:3)                                 
     O*                                  71 'TOTAL INVALID   -'         
              MOVE 'TOTAL INVALID   -' TO                               
                    REPORT-RECORD(55:17)                                
     O*                        JUNK  2   78                             
              MOVE JUNK TO WS-EDITED-C2                                 
              MOVE WS-EDITED-C2(17:8)                                   
                TO REPORT-RECORD(71:8)                                  
     O*                                  82 '***'                       
              MOVE '***' TO                                             
                    REPORT-RECORD(80:3)                                 
     O*ONOUT  T 11     LR                                               
              WRITE REPORT-OUTPUT-RECORD                                
                AFTER  ADVANCING 2 LINES                                
              ADD 2 TO REPORT-LINE-CTR                                  
              MOVE SPACES TO REPORT-OUTPUT-RECORD                       
              IF REPORT-LINE-CTR IS GREATER THAN  60    SET OF-ON TO TRUE                                      
                MOVE ZERO TO REPORT-LINE-CTR                           
             ELSE                                                      
                SET OF-OFF TO TRUE                                     
             END-IF                                                    
             MOVE SPACES TO REPORT-RECORD                              
          .                                                            
      REPORT-TOTAL-EXIT.                                               
          EXIT.                                                        
                                                                       
                                                                       
      CONOUT-TOTAL SECTION.                                            
                                                                       
          IF (LR-ON)                                                   
    O*                                  15 'TOTAL NUMBER OF'           
             MOVE 'TOTAL NUMBER OF' TO                                 
                   CONOUT-RECORD(1:15)                                 
    O*                                  32 'SELECTION ITEMS-'          
             MOVE 'SELECTION ITEMS-' TO                                
                   CONOUT-RECORD(17:16)                                
    O*                        ITEM1 2   40                             
             MOVE ITEM1 TO WS-EDITED-C2                                
             MOVE WS-EDITED-C2(17:8)                                   
               TO CONOUT-RECORD(33:8)                                  
    O*       T 11     LR                                               
             WRITE CONOUT-RECORD                                       
             MOVE SPACES TO CONOUT-RECORD                              
          END-IF                                                       
                                                                       
          IF (LR-ON)                                                   
    O*                                  15 'TOTAL NUMBER OF'           
             MOVE 'TOTAL NUMBER OF' TO     CONOUT-RECORD(1:15)                                 
    O*                                  32 'O-STORAGE ITEMS-'          
             MOVE 'O-STORAGE ITEMS-' TO                                
                   CONOUT-RECORD(17:16)                                
    O*                        ITEM2 2   40                             
             MOVE ITEM2 TO WS-EDITED-C2                                
             MOVE WS-EDITED-C2(17:8)                                   
               TO CONOUT-RECORD(33:8)                                  
    O*       T 11     LR                                               
             WRITE CONOUT-RECORD                                       
             MOVE SPACES TO CONOUT-RECORD                              
          END-IF                                                       
                                                                       
          IF (LR-ON)                                                   
    O*                                  15 'TOTAL NUMBER OF'           
             MOVE 'TOTAL NUMBER OF' TO                                 
                   CONOUT-RECORD(1:15)                                 
    O*                                  32 'INVALID RECORDS-'          
             MOVE 'INVALID RECORDS-' TO                                
                   CONOUT-RECORD(17:16)                                
    O*                        JUNK  2   40                             
             MOVE JUNK TO WS-EDITED-C2                                 
             MOVE WS-EDITED-C2(17:8)                                   
               TO CONOUT-RECORD(33:8)                                  
             WRITE CONOUT-RECORD                                       
             MOVE SPACES TO CONOUT-RECORD                              
          .                                                            
      CONOUT-TOTAL-EXIT.                                               
          EXIT.