SPL,L,O 
!     NAME:   MR..
!     SOURCE: 92067-18212 
!     RELOC:  92067-16185 
!     PGMR:   G.A.A.
! 
!  ***************************************************************
!  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
!  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
!  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
!  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
!  ***************************************************************
! 
      NAME MR..(8) "92067-16185 REV.1903 760621"
! 
! 
! 
!     THIS PORTION OF THE FILE MANAGER RESTORES 
!     A FILE TO THE SYSTEM LOAD AND GO AREA.
! 
! 
!     THE COMMAND IS: 
! 
!     LG,NAMR 
! 
! 
!     W H E R E:
! 
!     NAMR     IS THE FILE NAME WHICH MAY CONTAIN THE:
!     CR       IS ITS CARTRIDGE ID (OPTIONAL).
!     SC       IS ITS SECURITY CODE (OPTIONAL). 
! 
! 
!     ARRAY DECLARATIONS: 
! 
      LET O.BUF,I.BUF,BUF.,N.OPL   BE INTEGER,EXTERNAL
! 
!     DECLARE THE ERROR WORD LOCATION 
! 
      LET .E.R.     BE INTEGER,EXTERNAL 
! 
      LET SECT2 BE CONSTANT (1757K) 
      LET SECT3 BE CONSTANT (1760K) 
      LET LGCO  BE CONSTANT (1766K) 
      LET LGOTK BE CONSTANT (1765K) 
! 
      LET LGMS,LGMS2 BE INTEGER 
      INITIALIZE LGMS,LGMS2 TO "LG, " 
! 
! 
!     EXTERNAL SUBROUTINE DECLARATIONS: 
! 
      LET CK.SM,READF,OPEN.,\ 
          CNUMD, \
          MSS.,EXEC,        \ 
          IER.               BE SUBROUTINE,EXTERNAL 
      LET JER.,.DFER    BE SUBROUTINE,EXTERNAL,DIRECT 
      LET WRLG.,EFLG.,MESSS BE FUNCTION,EXTERNAL
! 
! 
MR..: SUBROUTINE(NCAM,PLIST,MSNO)GLOBAL 
      IFNOT NCAM THEN[MSNO_50;RETURN] 
      OPEN.(I.BUF,$(@PLIST+1),N.OPL,301K) !NON-EXCLUSIVE OPEN 
      IF $LGOTK AND 177K THEN GO TO LG0     !IF LG AREA DEFINED DO IT 
      IFNOT [SZ_$SECT3] THEN SZ_$SECT2      !SET SIZE OF LG DISC
      FSZ_$([TYP_ @I.BUF+2]+3)               !GET FILE DATA FROM DCB
      IFNOT $TYP THEN [SZ_4;GO TO ASLG]     !IF TYPE 0 USE FOUR TRACKS
      SZ_FSZ/SZ +2                          !ELSE 2 PLUS ESTIMATE (GENEROUS)
ASLG: CALL .DFER(O.BUF,LGMS)                !SET UP MESSAGE 
      CALL CNUMD(SZ,$(@O.BUF+2))            !PUT IN THE NUMBER
      IF MESSS(O.BUF,10) THEN[              \IF NO LG TRACKS
NOTR: MSNO_58;RETURN]                       !RETURN AN ERROR
! 
LG0:  FLG_0 
LG1:  READF(I.BUF,.E.R.,BUF.,64,L) !READ A RECORD 
      JER.
      IF L<1 THEN GOTO LG2
      CK.SM(BUF.,1)?[MSNO_7;RETURN] 
      FLG_1 
      IF WRLG.(BUF.,(BUF.-<8),O.BUF) THEN GO TO NOTR
      IFNOT($(@BUF.+1) AND 160000K) = 120000K THEN\ 
          GOTO LG1, ELSE[FLG_0;\
                      IF EFLG.(L) THEN GO TO NOTR; \
                      GO TO LG1]
! 
LG2:  IF FLG THEN[MSS.(2006);EXEC(7);GOTO LG1]
      IFNOT L THEN GO TO LG1
      RETURN
      END 
      END 
      END$
                                                                                                                                                      