$NOFLOATCALLS
$STORAGE: 2
        SUBROUTINE FVLDGT(ID1,ID2,IVAL)
C
C FVLDGT - RETURN FVLD BYTE GIVEN 2 DIMS OF ITS "LOCATION"
        INTEGER*2 ID1,ID2,ID
        CHARACTER*1 IVAL
C NEXT BITMAPS IMPLEMENT FVLD
        CHARACTER*1 FV1(2258),FV2(2258),FV4(2258)
C	EXTERNAL INDEX
	INTEGER*2 FVG1,FVG2
	EXTERNAL FVG1,FVG2
        CHARACTER*1 LBITS(8)
        COMMON/BITS/LBITS
        COMMON/FVLDM/FV1,FV2,FV4
C THE FOLLOWING BITMAP IS FOR TYPE ARRAY, AND INTEGER ARRAY IS FOR
C TYPES OF AC'S STORAGE:
        CHARACTER*1 ITYP(2258)
        INTEGER*2 IATYP(27)
        COMMON/TYP/IATYP,ITYP
	INTEGER*2 ICREF,IRREF
	COMMON/MIRROR/ICREF,IRREF
C
C NEXT ARE BUFFERS FOR HOLDING VALUES, AND MEMORY OCCUPANCY WORDS
C FOR EACH GIVING THE BLK # IN USE FOR THESE TABLES
C FORMAT BLOCK (ONE ONLY, 512 BYTES, BUT ORGANIZED AS 76 FORMAT
C AREAS WITH DATA.
        CHARACTER*1 FMTDAT(9,76)
        COMMON/FMTBFR/FMTDAT
	IF(ID2.GT.0)GOTO 2000
C TRICK ENTRY USING ID IN FIRST ARG, 0 IN 2ND ARG...
C TELL XVBLST/XVBLGT ABOUT FV4 STATE (SET BY CALL WITH -4 BYTE ON FVLDST)
	ID=ID1
C	IF(ID.GT.18060)GOTO 1080
	IVAL=CHAR(FVG1(ID))
	RETURN
C1080	CONTINUE
C	IVAL=0
C	RETURN
2000	CONTINUE
C REFLECT ALL BACK TO PRIME STORAGE REGION
C        ID=(ID2-1)*60+ID1
	IF(ID2.EQ.1.AND.ID1.LE.18060)GOTO 7806
	CALL REFLEC(ID2,ID1,ID)
	GOTO 7807
7806	CONTINUE
	ID=ID1
7807    CONTINUE
C	IF(ID.LE.0)GOTO 1080
C NOTE WE DO THIS STUFF IN ASSEMBLY LANGUAGE NOW FOR SPEED...
	IVAL=CHAR(FVG2(ID))
CC READS OFF FVLD BYTE FROM 3 BITS, HIGH ONE IS SIGN. TREAT AS SIGN-
CC MAGNITUDE NUMBER IN RANGE -3 TO +3,
        RETURN
        END


