C C OPENS -- ROUTINE TO OPEN TABLES FILES SDT NEED FOR C SYMBOLIC DEBUGGING. C C INPUTS: MAPFL MAP FILE SPEC. C C OUTPUTS: SEGADD SEGMENT DESCRIPTOR TABLE ADDRESS C SGTLNT SEGMENT DESCR. TABLE LENGTH C IERR ERROR FLAG C SUBROUTINE OPENS(MAPFL,SEGADD,SGTLNT,IERR) INTEGER*4 IREC1,IREC2,IREC3 BYTE PRG(38),VRS(38),CDE(38),MAPFL(38),CKO(38) INTEGER ALBP2,EXIT1,EXIT2,IOVLAY,SEGADD,SGTLNT,IREC COMMON /RECS/IREC1,IREC2,IREC3 COMMON /AUTO/ALBP2,EXIT1,EXIT2,IOVLAY 5 CALL STRMOV(MAPFL,1,22,PRG,1) CALL STRMOV(MAPFL,1,22,VRS,1) CALL STRMOV(MAPFL,1,22,CDE,1) CALL STRMOV(MAPFL,1,22,CKO,1) ISPOT=LSTRNG(MAPFL,1,22,'.',1,1) CALL STRMOV('.PRG',1,4,PRG,ISPOT) CALL STRMOV('.VRS',1,4,VRS,ISPOT) CALL STRMOV('.CDE',1,4,CDE,ISPOT) CALL STRMOV('.CKO',1,4,CKO,ISPOT) PRG(ISPOT+4)="0 VRS(ISPOT+4)="0 CDE(ISPOT+4)="0 CKO(ISPOT+4)="0 IERR=.FALSE. C TYPE 1,PRG,PRG C1 FORMAT(' PRG=',38A1,38(O3,1X)) OPEN(UNIT=1,NAME=PRG,TYPE='OLD',ACCESS='DIRECT', + ERR=2000,RECORDSIZE=7,ASSOCIATEVARIABLE=IREC1) OPEN(UNIT=2,NAME=VRS,TYPE='OLD',ACCESS='DIRECT', + ERR=1000,RECORDSIZE=6,ASSOCIATEVARIABLE=IREC2) OPEN(UNIT=3,NAME=CDE,TYPE='OLD',ACCESS='DIRECT', + ERR=1000,RECORDSIZE=25,ASSOCIATEVARIABLE=IREC3) OPEN(UNIT=12,NAME=CKO,TYPE='OLD',ACCESS='DIRECT', + RECORDSIZE=6,ASSOCIATEVARIABLE=IREC) IREC=1 ITRIP=.FALSE. 800 READ(12'IREC,ERR=900)IOVLAY,SEGADD,SGTLNT,ALBP2,EXIT1,EXIT2 IF(EXIT1.EQ.0.OR.EXIT2.EQ.0)GOTO900 CLOSE(UNIT=12) RETURN 900 IF(ITRIP.EQ..TRUE.)GOTO1000 IREC=0 ITRIP=.TRUE. GOTO800 1000 IERR=.TRUE. RETURN 2000 TYPE 15,MAPFL 15 FORMAT('$MAP FILE: ',30A1,' NOT FOUND. ENTER ENTIRE MAP FILE', * ' SPEC>') READ(5,20,ERR=1000)NCH,MAPFL 20 FORMAT(Q,30A1) MAPFL(NCH+1)="0 GOTO5 END