*DECK LFGGPN
USETEXT LFGIOD,LFGHDRC,LFGIB
      PROC LFGGPN(PN,RC,MRES,ON,EOI,SUCCESS); 
      BEGIN                  # GET PARTITION NAME                      #
*IF DEF,IMS 
# 
**    LFGGPN - GET PARTITION NAME.
* 
*     M. E. VATCHER   81/02/19
* 
*     LFGGPN GETS A PARTITION NAME FROM A SYSTEM HEADER RECORD
*     AND CONVERTS THE NAME TO DISPLAY CODE.
* 
*     PROC LFGGPN(PN,RC,MRES,ON,EOI,SUCCESS)
* 
*     ENTRY  NONE.
* 
*     EXIT  PN        PARTITION NAME IN DISPLAY CODE
*           RC        MODULE COUNT FOR MEMORY RESIDENT PARTITION
*           MRES      MEMORY RESIDENT INDICATOR 
*           ON        OVERLAY NAME IN ASCII 
*           EOI       END OF INFORMATION ENCOUNTERED
*           SUCCESS   SUCCESSFUL COMPLETION INDICATOR 
* 
*     METHOD
* 
*     READ RECORD AT CURRENT FILE POSITION
*     IF EOI ENCOUNTERED
*     THEN
*       SET EOI AND RETURN
*     SET OR CLEAR MEMORY RESIDENT FLAG 
*     IF ITS NOT MEMORY RESIDENT
*     THEN
*       READ ANOTHER RECORD TO GET SYSTEM HEADER RECORD 
*     CONVERT PARTITION NAME TO DISPLAY CODE
*     IF ITS A MEMORY RESIDENT PARTITION
*     THEN
*       SET MODULE COUNT
*     ELSE
*       SET OVERLAY NAME IN ASCII 
*     IF ITS AN OVERLAY 
*     THEN
*       SKIP OVER OVERLAY AREA HEADER RECORD
*     END 
* 
# 
*ENDIF
  
# 
****  PROC LFGGPN - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        ITEM IFET U;         # FWA OF INPUT FILE FET                   #
        PROC LFGRDER;        # PRINT READ ERROR MESSAGE                #
        PROC LFGRDSR;        # READ SEQUENTIAL RECORD                  #
        END 
  
# 
****
# 
  
*CALL LFGASCI 
  
      ITEM EOI B;            # END OF INFORMATION FLAG                 #
      ITEM MRES B;           # MEMORY RESIDENT FLAG                    #
      ITEM NAME2 U;          # CONCATENATE NAME2A AND NAME2B           #
      ITEM ON U;             # OVERLAY NAME IN ASCII                   #
      ITEM PN C(6);          # PARTITION NAME                          #
      ITEM RC U;             # RECORD COUNT                            #
      ITEM STATIS U;         # STATUS RETURNED FROM READ               #
      ITEM SUCCESS B;        # SUCCESSFUL COMPLETION INDICATOR         #
  
      SUCCESS = TRUE; 
      LFGRDSR(LOC(IFET),STATIS);
      IF STATIS EQ RDEOI
      THEN
        BEGIN 
        EOI = TRUE; 
        RETURN;              # ***** EXIT *****                        #
  
        END 
      IF STATIS NQ RDEOR
      THEN
        BEGIN 
        LFGRDER(STATIS);
        SUCCESS = FALSE;
        RETURN;              # ***** EXIT *****                        #
  
        END 
      IF B<0,16>IBUF[0] EQ 0
      THEN
        MRES = TRUE;
      ELSE
        MRES = FALSE; 
      IF NOT MRES            # IF ITS AN OVERLAY PARTITION             #
      THEN                   # GET SYSTEM HEADER RECORD                #
        BEGIN 
        LFGRDSR(LOC(IFET),STATIS);
        IF STATIS NQ RDEOR
        THEN
          BEGIN 
          LFGRDER(STATIS);
          SUCCESS = FALSE;
          RETURN;            # ***** EXIT *****                        #
  
          END 
        END 
      P<HEADER> = LOC(IBUF[0]); 
      C<0,1>PN = C<NAME1,1>ASCIITAB;
      NAME2 = 0;
      B<53,3>NAME2 = NAME2A;
      B<56,4>NAME2 = NAME2B;
      C<1,1>PN = C<NAME2,1>ASCIITAB;
      C<2,1>PN = C<NAME3,1>ASCIITAB;
      C<3,1>PN = C<NAME4,1>ASCIITAB;
      C<4,1>PN = C<NAME5,1>ASCIITAB;
      C<5,1>PN = C<NAME6,1>ASCIITAB;
      IF MRES 
      THEN                   # SET NUMBER OF MODULES                   #
        RC = MCNT[0]; 
      ELSE                   # OVERLAYS HAVE ONLY ONE INPUT RECORD     #
        BEGIN 
        RC = 1; 
        ON = 0; 
        B<37,7>ON = NAME1;
        B<45,7>ON = NAME2;
        B<53,7>ON = NAME3;
        END 
      IF NOT MRES 
      THEN                   # ITS AN OVERLAY                          #
        BEGIN                # SKIP OVERLAY AREA HEADER RECORD         #
        LFGRDSR(LOC(IFET),STATIS);
        END 
  
      END TERM
