home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fatal Distractions!
/
fataldistractions.bin
/
chap01
/
adventur
/
vocab.for
< prev
next >
Wrap
Text File
|
1990-11-12
|
1KB
|
33 lines
INTEGER*4 FUNCTION VOCAB(ID,INIT)
C LOOK UP ID IN THE VOCABULARY (ATAB) AND RETURN ITS "DEFINITION" (KTAB), OR
C -1 IF NOT FOUND. IF INIT IS POSITIVE, THIS IS AN INITIALISATION CALL SETTING
C UP A KEYWORD VARIABLE, AND NOT FINDING IT CONSTITUTES A BUG. IT ALSO MEANS
C THAT ONLY KTAB VALUES WHICH TAKEN OVER 1000 EQUAL INIT MAY BE CONSIDERED.
C (THUS "STEPS", WHICH IS A MOTION VERB AS WELL AS AN OBJECT, MAY BE LOCATED
C AS AN OBJECT.) AND IT ALSO MEANS THE KTAB VALUE IS TAKEN MOD 1000.
IMPLICIT INTEGER*4 (A-Z)
C INTEGER*2 KTAB,ASCVAR
COMMON /VOCCOM/KTAB,ATAB,TABSIZ
DIMENSION KTAB(300),ATAB(300)
HASH=ID
DO 1 I=1,TABSIZ
IF(KTAB(I).EQ.-1) GOTO 2
IF(INIT.GE.0.AND.KTAB(I)/1000.NE.INIT) GOTO 1
IF(ATAB(I).EQ.HASH) GOTO 3
1 CONTINUE
CALL BUG(21)
2 VOCAB=-1
IF(INIT.LT.0) RETURN
WRITE(*,100) HASH
100 FORMAT(' KEYWORD = ',A4)
CALL BUG(5)
3 VOCAB=KTAB(I)
IF(INIT.GE.0) VOCAB=MOD(VOCAB,1000)
RETURN
END