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$