SUBROUTINE INIT (BLK, ISUB, IBEG, IREC, PC) C C ROBERT WATSON C CISCO, INC. C (918)665-2110 C 4135 S. 100TH E. AVE. C TULSA OK 74145 C C THIS PROGRAM HAS BEEN DONATED TO THE PUBLIC DOMAIN C AND IS NOT TO BE COPYRIGHTED. C INTEGER*4 IBEG, PC, RO INTEGER*2 BLK(256), ROREC IREC = 1 CALL FILL (BLK, IREC, ISUB, PC) IF (BLK(76) .EQ. 0) GO TO 10 !PC OF READONLY SECTION OF TASK RO = BLK(76) RO = (RO .AND. "177777) ROREC = BLK(75) + IREC !REC. NO. OF 1ST RO BLOCK ISUB = -1 !CODE TO INITIALIZE RO PTRS CALL FILL (BLK, ROREC, ISUB, RO) ISUB = 0 IF (IBEG .LT. RO) GO TO 10 !WAS A RO ADDR. REQUESTED? PC = RO IREC = IREC + BLK(75) CALL FILL (BLK, IREC, ISUB, PC) !POSITION ON 1ST RO WORD IF (IBEG .EQ. PC) RETURN PC = IBEG IBEG = (IBEG - RO) + 2 !OFFSET TO REQUESTED ADDR. GO TO 20 10 IREC = BLK(70) CALL FILL (BLK, IREC, ISUB, PC) IZERO = (BLK(62) * 32) + 1 !SUBSCR. OF VIR. ZERO WD 20 INO = IBEG / 512 !NO. FULL BLKS BEFORE IBEG IF (INO .LE. 0) GO TO 30 IREC = IREC + INO CALL FILL (BLK, IREC, ISUB, PC) 30 INO = (IBEG .AND. "777) !BYTE DISPL. IN THIS BLK INO = INO / 2 !WD DISPL. ISUB = IZERO + INO !SUBSCR. OF IBEG IF (ISUB .LE. 256) RETURN !DISPL. TO VIR. ZERO COULD OVERFLOW INO = ISUB - 256 !SAVE DIFFERENCE IREC = IREC + 1 CALL FILL (BLK, IREC, ISUB, PC) ISUB = INO RETURN END