3 / SUBROUTINE VOCAB(ID1,ID2,INIT,V)
4 / OS/8: SUBROUTINE VOCAB(ID, INIT, V)
6 /C LOOK UP ID1:ID2 IN THE VOCABULARY (ATAB AND A2TAB)
7 /C Note: A2TAB not used on the '8
8 /C AND RETURN ITS "DEFINITION" (KTAB), OR
9 /C -1 IF NOT FOUND. IF INIT IS POSITIVE, THIS IS AN INIT CALL SETTING
10 /C UP A KEYWORD VARIABLE, AND NOT FINDING IT CONSTITUTES A BUG. IT ALSO MEANS
11 /C THAT ONLY KTAB VALUES WHICH TAKEN OVER 1000 EQUAL INIT MAY BE CONSIDERED.
12 /C (THUS "STEPS", WHICH IS A MOTION VERB AS WELL AS AN OBJECT, MAY BE LOCATED
13 /C AS AN OBJECT.) AND IT ALSO MEANS THE KTAB VALUE IS TAKEN MOD 1000.
15 / IMPLICIT INTEGER (A-Z)
16 / COMMON /VOCCOM/ KTAB,ATAB,A2TAB,TABSIZ
17 / DIMENSION KTAB(300),ATAB(300),A2TAB(300)
76 / IF(KTAB(I).EQ.-1)GOTO 2
83 / IF(INIT.GE.0.AND.KTAB(I)/1000.NE.INIT)GOTO 1
92 / IF(ATAB(I).EQ.ID1 .AND. A2TAB(I).EQ.ID2)GOTO 3
93 / OS/8: IF(ATAB(I).EQ.ID)GOTO 3
113 / IF(INIT.LT.0)RETURN
138 / IF(INIT.GE.0)V=MOD(V,1000)
149 /100 FORMAT(' KEYWORD = ',2A2)
151 #100, TEXT 'K]EYWORD = @'