      INTEGER INF,STATE(4)
      INTEGER GFNARG,OPEN,DOFILE
      INTEGER PATH(128)
      INTEGER AAAAA0
      INTEGER AAAAB0
      STATE(1)=1
10000   AAAAA0=GFNARG(PATH,STATE)
        GOTO 10001
10002     INF=OPEN(PATH,1)
          IF((INF.NE.-3))GOTO 10003
            CALL PRINT(-15,'*s: can''t open*n.',PATH)
            GOTO 10004
10003       IF((DOFILE(INF).NE.-3))GOTO 10005
              CALL PRINT(-15,'*s: bad object file*n.',PATH)
10005       CALL CLOSE(INF)
10004   GOTO 10006
10007     CALL PRINT(-15,'*s: can''t open*n.',PATH)
        GOTO 10006
10008     GOTO 10009
10001   AAAAB0=AAAAA0+4
        GOTO(10007,10002,10008),AAAAB0
10006 CONTINUE
      GOTO 10000
10009 CALL SWT
      END
      INTEGER FUNCTION DOFILE(FD)
      INTEGER FD
      INTEGER COUNT,BT,BS,INBUF(256)
      INTEGER RDBIN
      COUNT=RDBIN(FD,INBUF,256)
      GOTO 10012
10010 COUNT=RDBIN(FD,INBUF,256)
10012 IF((COUNT.EQ.-1))GOTO 10011
      IF((COUNT.EQ.0))GOTO 10011
        BT=RS(INBUF(1),12)
        BS=RT(INBUF(1),8)
        IF((COUNT.LT.0))GOTO 10014
        IF((COUNT.NE.BS))GOTO 10014
        IF((BT.EQ.:12))GOTO 10015
        IF((BT.EQ.:11))GOTO 10015
        IF((BT.EQ.:13))GOTO 10015
        GOTO 10014
10015   GOTO 10013
10014     DOFILE=-3
          RETURN
10013   CALL INTER0(INBUF,BS)
      GOTO 10010
10011 DOFILE=-2
      RETURN
      END
      SUBROUTINE INTER0(BUF,COUNT)
      INTEGER BUF(1),COUNT
      INTEGER GT,GS,I
      I=2
      GOTO 10018
10016 I=I+(GS+1)
10018 IF((I.GT.COUNT))GOTO 10017
        GT=RS(BUF(I),8)
        GS=RT(BUF(I),8)
        CALL INTES0(GT,BUF(I+1),GS)
      GOTO 10016
10017 RETURN
      END
      SUBROUTINE INTES0(GT,BUF,GS)
      INTEGER GT,BUF(1),GS
      INTEGER STR(102),NAME(102)
      SAVE NAME
      INTEGER AAAAC0
      INTEGER AAAAD0(6)
      INTEGER AAAAE0
      DATA AAAAD0/164,205,193,201,206,0/
      AAAAC0=GT
      GOTO 10019
10020   IF((GT.NE.43))GOTO 10021
          CALL PTOC(BUF,160,NAME,GS*2+1)
          GOTO 10022
10021     CALL PTOC(BUF(2),160,NAME,GS*2-1)
10022   CALL MAPSTR(NAME,1)
      GOTO 10023
10024   CALL PTOC(BUF(2),160,STR,(GS-1)*2+1)
        CALL MAPSTR(STR,1)
        CALL PRINT(-11,'*s *s*n.',NAME,STR)
      GOTO 10023
10025   CALL PTOC(BUF,160,STR,GS*2+1)
        CALL MAPSTR(STR,1)
        CALL PRINT(-11,'*s *s*n.',NAME,STR)
      GOTO 10023
10026   CALL CTOC(AAAAD0,NAME,102)
      GOTO 10023
10019 AAAAE0=AAAAC0-1
      GOTO(10020,10020,10027,10027,10027,10027,10027,10027,10027,10027,1
     *0027,10024),AAAAE0
      AAAAE0=AAAAC0-29
      GOTO(10026,10020,10020,10027,10027,10025,10027,10027,10027,10027,1
     *0027,10027,10027,10020),AAAAE0
10027 CONTINUE
10023 RETURN
      END
      INTEGER FUNCTION RDBIN(FD,BUF,COUNT)
      INTEGER FD,BUF(1),COUNT
      INTEGER CT
      INTEGER * 4 POS
      INTEGER READF,SEEKF
      RDBIN=-1
      IF((READF(CT,1,FD).EQ.1))GOTO 10028
        RETURN
10028 IF((CT.LE.COUNT))GOTO 10029
        POS=CT-COUNT
        CALL PRINT(-15,'block size (*i) exceeds buffer space*n.',CT)
        CT=COUNT
        GOTO 10030
10029   POS=0
10030 IF((READF(BUF,CT,FD).EQ.CT))GOTO 10031
        RETURN
10031 IF((POS.EQ.0))GOTO 10032
      IF((SEEKF(POS,FD,1).EQ.-2))GOTO 10032
        RETURN
10032 RDBIN=CT
      RETURN
      END
C ---- Long Name Map ----
C interpretgroup                 intes0
C interpretblock                 inter0
