*COMDECK  RELCOM
00001                                                                    RELCOM 
00002 ******************************************************************RELCOM
00003 ******************************************************************   LV001
00004 *    THESE ROUTINES HANDLE ALL MAST2 PROCESSING                 * RELCOM
00005 ******************************************************************RELCOM
00006 ******************************************************************RELCOM
00007  REL-OPEN.                                                        RELCOM
00008      OPEN INPUT MAST2.                                            RELCOM
00009      MOVE SPACES TO REL-ARG-LIST.                                 RELCOM
00010      MOVE SPACES TO REL-LAST-ENTRY-NAME.                             CL**2
00011      MOVE ZEROES TO REL-NEXT-REC.                                    CL**2
00012  REL-OPEN-XIT.                                                    RELCOM
00013      EXIT.                                                        RELCOM
00014  REL-CLOSE.                                                       RELCOM
00015      CLOSE MAST2.                                                 RELCOM
00016  REL-CLOSE-XIT.                                                   RELCOM
00017      EXIT.                                                        RELCOM
00018 ******************************************************************RELCOM
00019 ******************************************************************RELCOM
00020 *                                                                *RELCOM
00021 *    SEARCH FOR A REFERENCE ITEM                                 *RELCOM
00022 *                                                                *RELCOM
00023 ******************************************************************RELCOM
      *    INPUT CONDITIONS - 
      *        REL-ENTRY-FUNCTION = SPACE, SEARCH FOR A POINTER 
      *                           = N, SEARCH FOR AN ENTRY FOR
      *                                REL-ENTRY-NAME 
      *    RETURN CONDITIONS -
      *        REL-RETURN-CODE = 0, REQUEST SATISFIED 
      *                        = 1, NO POINTERS FOUND 
      *                        = 2, NO ENTRY FOUND
      *                        = 9, ILLEGAL FUNCTION
00024 ******************************************************************RELCOM
00025  REL-READ.                                                        RELCOM
00026      MOVE ZERO TO REL-RETURN-CODE.                                   CL**2
00027      IF REL-ENTRY-FUNCTION EQUAL SPACE                               CL**2
00028          MOVE SPACE TO REL-ANSWER                                    CL**2
00029          MOVE ZERO TO REL-RETURN-CODE                                CL**2
00030          GO TO REL-READ-IT.                                          CL**2
00031      IF REL-ENTRY-FUNCTION NOT EQUAL "N"                          RELCOM
00032          MOVE 9 TO REL-RETURN-CODE                                   CL**2
00033          GO TO REL-READ-XIT.                                         CL**2
00034  REL-READ-IT.                                                        CL**2
00035      IF REL-ENTRY-NAME EQUAL REL-LAST-ENTRY-NAME                  RELCOM
00036          GO TO REL-READ-SEARCH.                                   RELCOM
00037      MOVE ZERO TO REL-NEXT-REC.                                      CL**2
00038      PERFORM RELALG THRU RELALG-XIT.                                 CL**2
00039      READ MAST2 INVALID KEY                                       RELCOM
00040          GO TO SEARCH-NOT-FOUND.                                  RELCOM
00043      MOVE ZERO TO REL-SUB.                                        RELCOM
00044  REL-READ-SEARCH.                                                 RELCOM
00045      IF REL-ENTRY-FUNCTION EQUAL "N"                                 CL**2
00046      PERFORM SEARCH-CHAIN-NEXT THRU SEARCH-CHAIN-NEXT-XIT.        RELCOM
00047      MOVE REL-REC-ID TO REL-LAST-ENTRY-NAME.                         CL**2
00048      MOVE REL-HDR-ALIAS TO REL-ENTRY-ALIAS.                          CL**2
00049      MOVE REL-HDR-ENTRY-TYPE TO REL-ENTRY-TYPE.                      CL**2
00050  REL-READ-XIT.                                                    RELCOM
00051      EXIT.                                                        RELCOM
00052 ******************************************************************RELCOM
00053 ******************************************************************RELCOM
00054 *                                                                *RELCOM
00055 *    SEARCH FOR THE NEXT ENTRY IN A REFERENCE CHAIN              *RELCOM
00056 *                                                                *RELCOM
00057 ******************************************************************RELCOM
00058 ******************************************************************RELCOM
00059  SEARCH-CHAIN-NEXT.                                               RELCOM
00060      ADD 1 TO REL-SUB.                                            RELCOM
00061      IF REL-SUB GREATER THAN REL-LIMIT                            RELCOM
00062          MOVE ZERO TO REL-SUB                                     RELCOM
00063          GO TO SEARCH-CHAIN-NEXT-READ.                            RELCOM
00064      IF REL-DTL-ENT-ID (REL-SUB) EQUAL SPACE                         CL**2
00065          GO TO SEARCH-CHAIN-NEXT.                                 RELCOM
00066  REL-READ-FOUND.                                                  RELCOM
00067      MOVE REL-DTL-ENT-ID (REL-SUB) TO REL-POINTER-TYPE.           RELCOM
00068      MOVE REL-DTL-CATNAME (REL-SUB) TO REL-POINTER-NAME.          RELCOM
00069      MOVE REL-DTL-ENT-PTR-ALIAS (REL-SUB) TO REL-POINTER-ALIAS.      CL**2
00070      MOVE ZERO TO REL-RETURN-CODE.                                RELCOM
00071      MOVE REL-DTL-ENT-PTR (REL-SUB) TO REL-PUSE.                  RELCOM
00072  SEARCH-CHAIN-NEXT-XIT.                                           RELCOM
00073      EXIT.                                                        RELCOM
00074  SEARCH-CHAIN-NEXT-READ.                                          RELCOM
00075      IF REL-HDR-CONT EQUAL ZERO                                      CL**2
00076          MOVE ZERO TO REL-SUB                                     RELCOM
00077          MOVE 1 TO REL-RETURN-CODE                                RELCOM
00078          GO TO SEARCH-CHAIN-NEXT-XIT.                             RELCOM
00079      ADD 1 TO REL-NEXT-REC.                                          CL**2
00080      PERFORM RELALG THRU RELALG-XIT.                                 CL**2
00081      READ MAST2 INVALID KEY                                       RELCOM
00082          GO TO SEARCH-NOT-FOUND.                                  RELCOM
00083      GO TO SEARCH-CHAIN-NEXT.                                        CL**2
00084  SEARCH-NOT-FOUND.                                                RELCOM
00085      MOVE 2 TO REL-RETURN-CODE.                                   RELCOM
00086      MOVE HIGH-VALUES TO REL-LAST-ENTRY-NAME.                        CL**2
00087      GO TO REL-READ-XIT.                                          RELCOM
00088                                                                    RELCOM 
