SUBROUTINE MPRPM (NREC) C***************************************************************************** C C Description : Routine to initialize settings for a specified menu C This routine is reserved for MPR-subroutines only C C Arguments : NREC = INTEGER record number of menu name-record C C Author : F.A.Minkema C AKZO PHARMA, Oss Holland C dept. SDA C C Version : V1.0 Date : 1-nov-1982 C C Module name : MPRPM.FTN C C Package : TRAMP C C Compilation/Linking : FOR/F4P/TR:NONE MPRPM C C Updates : name version C C description : C C***************************************************************************** C BYTE CLRSTR,ERLSTR,CLRVAT,FLSVAT,FNPPOS,FNGPOS,FLSPOS, 1 MESPAT,GENVAT,GENLAT,MENPAT,FUNTAB,TYPTAB,MFTTAB COMMON/MPRCOM/ISCR,NUNIT,IBTFLG,IMESFL,MAXBUF,LMAR, 1 MSTACK,ISTACK(8),NRMMR,NRNRCM,NRFUN, 2 NRFFLR,NRLFLR,NRTTAB(12), 3 CLRSTR(8),ERLSTR(4),CLRVAT(6),FLSVAT(8), 4 FNPPOS(8),FNGPOS(8),FLSPOS(8),MESPAT(14), 5 GENVAT(8),GENLAT(4,2),MENPAT(10), 6 FUNTAB(6,12),TYPTAB(12),MFTTAB(7,12) C C menu name-record BYTE MENAM(8) C MENAM ! menu name C NRNXMR ! rec.nr. next menu name record C NRFFLR ! rec.nr. first function-list record C NRLFLR ! rec.nr. last function-list record C C function-list data record BYTE MREC(40),FUNKEY(6),FUNTYP(2),FUNPTG(8),FUNSTG(8) EQUIVALENCE (FUNKEY,MREC(1)) ! key-characters EQUIVALENCE (FUNTYP,MREC(7)) ! function type (M/F/S) EQUIVALENCE (FUNPTG,MREC(9)) ! primary target EQUIVALENCE (FUNSTG,MREC(17)) ! secondary target EQUIVALENCE (NRMTG ,MREC(25)) ! rec.nr. of menu target EQUIVALENCE (NRTR ,MREC(27)) ! number of text records C BYTE PROG(6) DATA PROG /'M','P','R','P','M',0/ C C read name-record of specified menu C IF (NREC.LT.NRMMR) GOTO 9000 IF (NREC.EQ.NRNRCM) GOTO 99 READ (NUNIT'NREC,ERR=9010) MENAM,NRNXMR,NRFFLR,NRLFLR NRNRCM=NREC C C fill function tables C NRFUN=0 IREC=NRFFLR 10 IF (IREC.GT.NRLFLR) GOTO 99 READ (NUNIT'IREC,ERR=9020) MREC ! get function-list data rec. NRFUN=NRFUN+1 CALL SCOPY(FUNKEY,FUNTAB(1,NRFUN)) TYPTAB(NRFUN)=FUNTYP(1) CALL SCOPY(FUNPTG,MFTTAB(1,NRFUN)) NRTTAB(NRFUN)=NRMTG IREC=IREC+NRTR+1 GOTO 10 C C go back to calling routine C 99 RETURN C C errors C 9000 CALL FATAL(PROG,'Invalid record number') 9010 CALL FATAL(PROG,'READ-error menu-name record') 9020 CALL FATAL(PROG,'READ-error function-list data record') END