Trailing-Edge
-
PDP-10 Archives
-
decuslib10-06
-
43,50437/getdat.for
There are no other files named getdat.for in the archive.
SUBROUTINE GETDAT(A,EOF)
INCLUDE 'SYSREP.PRM'
INTEGER WORD
C
C --SET EOF
C
EOF = 0
C
C --GET RECORD TYPE
C
70 READ(21,END=10) WORD
TYPE = LSH(WORD,-18)
LEN = LSH(WORD,18)
LEN = LSH(LEN,-18)
IF ((TYPE .EQ. 100) .OR. (TYPE .EQ. 200) .OR. (TYPE .EQ. 300)
1.OR. (TYPE .EQ. 700)) GOTO 20
IF (TYPE .EQ. 401) GOTO 30
IF (TYPE .EQ. 402) GOTO 40
IF (TYPE .EQ. 403) GOTO 120
IF (TYPE .EQ. 601) GOTO 110
IF (TYPE .EQ. 501) GOTO 50
300 FORMAT(' TYPE ERROR. TYPE=',I5)
WRITE(5,300) TYPE
CALL PLTOUT
CALL CALLI("12,0)
C
C --HANDLE INTRODUCTORY RECORDS
C
20 REC000(1,A) = WORD
DO 60 I = 2,18
READ(21,END=10) REC000(I,A)
60 CONTINUE
GOTO 70
C
C --HANDLE GENERAL SYSTEM DATA
C
30 REC401(1,A) = WORD
DO 80 I = 2,20
READ(21,END=10) REC401(I,A)
80 CONTINUE
GOTO 70
C
C --HANDLE SCANNER DATA
C
40 REC402(1,A) = WORD
DO 90 I = 2,20
READ(21,END=10) REC402(I,A)
90 CONTINUE
GOTO 70
C
C --HANDLE DISK RECORDS
C
110 CALL HND601(A,WORD)
GOTO 70
C
C --HANDLE KL10 AND SCHEDULER RECORD
C
120 REC403(1,A) = WORD
DO 130 I = 2,10
READ(21,END=10) REC403(I,A)
130 CONTINUE
GOTO 70
C
C --HANDLE CPU DATA (LAST RECORD)
C
50 REC501(1,A) = WORD
DO 100 I =2,18
READ(21,END=10) REC501(I,A)
100 CONTINUE
RETURN
C
C --TAKE CARE OF EOF
C
10 EOF = 1
RETURN
END