C C Title: QIOSYM file reader C C Routine Name: QIOSYM C C File Name: QIOSYM.FTN C C Author: E.D.Willink C C Description: C This subroutine looks up a record in LB:[1,2]QIOSYM.MSG and outputs it C to a message LUN. C Output format C C TT2 -- XXXXXXXXXXXXXXXXXXXXXXXXX C C Issue:1.A Date: 26-JUN-81 C C Modification List: C 1.A Date: 26-JUN-81 ORIGINAL C C Restrictions: C C Calling Sequence: C C CALL QIOSYM(LUNMSG,LUNERR,NUMBER) C C External Routines called: None C C Parameter List: C Inputs : C LUNMSG INTEGER*2 LUN on which to output message C LUNERR INTEGER*2 LUN to use to open LB:[1,2]QIOSYM.MSG C NUMBER INTEGER*2 Record number to look up C C Outputs: None C CEND SUBROUTINE QIOSYM(LUNMSG,LUNERR,NUMBER) LOGICAL*1 TEXT(64),TSKNAM(6) INTEGER*2 TSKBUF(16) EQUIVALENCE (TSKNAM(1),TSKBUF(10)) DATA MINREC/1/ DATA MAXREC/227/ C C Get task name for messages C CALL GETTSK(TSKBUF) CALL R50ASC(6,TSKBUF,TSKNAM) C C Validate input record number C IF(NUMBER.GE.MINREC.AND.NUMBER.LE.MAXREC)GOTO 110 WRITE(LUNMSG,1000)(TSKNAM(I),I=1,6) 1000 FORMAT(' '6A1' -- Nonsense error number') RETURN C C Access file C 110 CALL ASSIGN(LUNERR,'LB:[1,2]QIOSYM.MSG') CALL FDBSET(LUNERR,'READONLY') DEFINE FILE LUNERR(400,32,U,NDUMMY) C C Read record C READ(LUNERR'NUMBER,ERR=998) (TEXT(I),I=1,64) C C Get length of record by finding trailing null C LEN=0 DO 120 I=1,64 IF(TEXT(I).EQ.0)GOTO 130 120 LEN=I C C Output message, creating our own undefined message C 130 IF(LEN.NE.0)WRITE(LUNMSG,1300) + (TSKNAM(I),I=1,6),(TEXT(I),I=1,LEN) 1300 FORMAT(' '6A1' -- ',64A1) IF(LEN.EQ.0)WRITE(LUNMSG,1400) + (TSKNAM(I),I=1,6) 1400 FORMAT(' '6A1' -- Message not defined') C C Close file and exit C 998 CALL CLOSE(LUNERR) RETURN END