Google
 

Trailing-Edge - PDP-10 Archives - fortv11 - ioflg.bli
There are 12 other files named ioflg.bli in the archive. Click here to see a list.
!COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1974, 1987
!ALL RIGHTS RESERVED.
!
!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
!ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
!INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
!COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
!OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
!TRANSFERRED.
!
!THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
!AND  SHOULD  NOT  BE  CONSTRUED  AS A COMMITMENT BY DIGITAL EQUIPMENT
!CORPORATION.
!
!DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
!SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.

!AUTHOR: */SJW/TFV/DCE/CDM/AHM/AlB/MEM

GLOBAL BIND IOFLGV = #11^24 + 0^18 + #4542;	! Version Date:	25-Jun-86

%(

***** Begin Revision History *****

1	-----	-----	REMOVE EOP AND FIRSTSTATEMENT FLAGS

2	-----	-----	ADD THE PROGTYP, MULTENT, AND LABLDUM FLAGS

3	-----	-----	REMOVE THOSE FLAGS THAT I DON'T BELIEVE ARE USED 
			AND NAME ONE THAT I THOUGHT WASN'T BUT WAS
			OUT - WILDLSTFIL,WILDOBJFIL,TAPEND,WIND,ZERO
			IN - EOCS ( END OF COMMAND STRING FLAG )

4	-----	-----	ADD ININCLUDE AND CHANNEL ICL

5	-----	-----	MODIFY FLAGREGISTER BITS

			1. REMOVE DEBUG FLAG
			2. ADD THE NEW DEBUG SWITCH FLAGS
				DBGDIMN
				DBGINDX
				DBGLABL
				DBGTRAC

				BOUNDS REMAINS THE SAME

6	-----	-----	PUT IN COMPILE TIME FTTENEX

7	-----	-----	SET UP SECONDARY FLAG REGISTER - NO MORE ROOM
			IN FLGREG

8	-----	-----	OBTAIN THE FTTENEX SWITCH FROM A REQUIRE FILE
			TO FACILITATE 10/20 CONTROL FILE PRODUCTON
9	467	VER5	REMOVE "REQUIRE FORSWI.REQ": PUT FT1SEG AND
			  FTTENEX SWITCHES INTO SEPARATE REQUIRE FILES
			  REQUIRED ONLY BY THOSE MODULES THAT USE THEM
10	476	QA754	CHANGE STATFLG TO MAPFLG IN FLGREG TO MAKE
			  LINE NUMBER/OCTAL LOCATION MAP OPTIONAL

***** Begin Version 5A *****

11	573	-----	PUT DBUGIT BIND INTO A SEPARATE FILE REQUIRED BY
			  ONLY THOSE MODULES THAT USE IT, (SJW)

***** Begin Version 5B *****

12	677	25573	REPLACE PEEPFL WHICH IS THOUGHT TO BE UNUSED
			BY DBGPAR AS BIT 25 IN FLGREG., (RDH)

***** Begin Version 6 *****

13	750	TFV	1-Jan-80	------
	Remove Debug:parameters (edit 677)

14	761	TFV	1-Mar-80	------
	Add /GFLOATING flag to FLAGS2 to tell type of DP numbers in use

15	767	DCE	20-May-80	-----
	CREATE SECONDARY SWITCH REGISTER F2
	ADD /F77 FLAG TO F2 TO INDICATE F77 STANDARD REQUESTED
	ALSO MOVE /GFLOATING FLAG INTO F2

16	1133	TFV	28-Sep-81	------
	Add /STATISTICS flag to F2 for in-house performance measurement.
	It is disabled in the released V6.

***** Begin Version 6A *****

1160	EGM	14-Jun-82
	Add definition of 'fatal errors this compile command' switch

***** Begin Version 7 *****

17	1437	CDM	16-Dec-81
	Add code for /DEBUG:ARGUMENTS

18	1456	CKS	11-Jan-82
	Add IOINPT flag in statement descriptor block.  It means statement
	is an IO statement which does input (and hence modifies the variables
	in its IO list).

19	1467	CDM	1-Feb-82
	Add SAVEALL and  SAVELOCAL global  flags to F2  for SAVE  statement
	processing.

1504	AHM	26-Feb-82
	Add EXTENDFLAG field and EXTENDED macro for extended addressing.

1511	CDM	17-Mar-82
	Remove edit 1467, Global variables are used instead of F2.

1577	RVM	9-Jul-82
	Set aside a bit in FLAGS2 to be used as the /ABORT flag.

1613	CDM	13-Aug-82
	Change /DEBUG:PARAMETERS to /DEBUG:ARGUMENTS.


***** Begin Version 10 *********

2246	AlB	20-Dec-83
	Add flag bits CFLGANSI and CFLGVAX to F2 for Compatibility flagging.
	These bits are set/reset by the new command switches /FLAG and /NOFLAG.

2442	RVM	4-Aug-84
	Get a bit for /EXTEND:CODE

2447	PLB	10-Aug-84
	Add definitions for nested INCLUDE files.

2455	MEM	30-Aug-30
	Replace all occurrences of VAX with VMS.

***** End V10 Development *****

***** End Revision History *****

***** Begin Version 11 *****

4513	CDM	12-Sep-85
	Improvements to /STATISTICS for reporting symbol table size
	and COMMON block size.
	Improve commenting.

4527	CDM	1-Jan-86
	VMS Long symbols phase II.  Convert all internal symbols from
	one word of Sixbit to [length,,pointer].

4530	MEM	3-April-86
	Long symbol support; add SYM6THCHAR.

4542	CDM	26-Jun-86
	Remove KA10 and CKA10.  No one uses these.  Pretty up some.

ENDV11
)%


EXTERNAL  BUGOUT;
	% BUGOUT CONTAINS THE OCTAL VALUE OF THE /BU: SWITCH
		BIT	MEANS
		1	OUTPUT LISTING BUFFERS IMMEDIATELY
		2	TRACE OF ROUTINE LEXICAL STATES
		3	DISPLAY THE CLASSIFICATION OF EACH STATEMENT
		4	DISPLAY THE LEXEME TYPE AS IT IS RETURNED FROM LEXICAL
	%



BIND
%2447%	TBLMAX=16,		!CHANNELS 1..#17 ARE USED
	TBLSIZ=10;
STRUCTURE
	MATRIX[I,J]=[I*J](.MATRIX+(.I-1)*TBLSIZ+.J);
EXTERNAL MATRIX CHNLTBL[TBLMAX,TBLSIZ];
BIND	BIN=1,
	LST=2,
	SRC=3,
	ICL = 4,
%2447%	INCLMAX = #17 - ICL + 1;	!NUMBER OF INCLUDE LEVELS

MACRO	STATUS(I)=CHNLTBL[I,0]$,
	DEVICE(I)=CHNLTBL[I,1]$,
	BUFFERS(I)=CHNLTBL[I,2]$,
	BUFHDR(I)=CHNLTBL[I,3]$,
	BUFPNT(I)=CHNLTBL[I,4]$,
	BUFCNT(I)=CHNLTBL[I,5]$,
	FILENAME(I)=CHNLTBL[I,6]$,
		EXTENSION(I)=CHNLTBL[I,7]<18,18>$,
		DSKERR(I)=CHNLTBL[I,7]<0,18>$,
		PROT(I)=CHNLTBL[I,8]<27,9>$,
	DIRECTORY(I)=CHNLTBL[I,9]$;

MACRO	XDEVJFN(I)=CHNLTBL[I,0]<RIGHT>$,
	XWORDCNT(I)=CHNLTBL[I,1]$;

BIND	XSINSIZ = 128,
	XSOUTSIZ = 512;


!**********************************************************************
! Global flags in FLGREG.  Set for each compileable program unit.
!
! BEFORE MESSING ABOUT WITH THESE FLAGS CHECK USAGE IN COMMAN.MAC
! and CMND20.MAC
!**********************************************************************

MACRO	FOUNDFLG	= 35,1$,
	TTYDEV		= 34,1$,
	NOWARNING	= 33,1$,
	BLKDATA		= 32,1$,
	LIBARITH	= 31,1$,
	BOUNDS		= 30,1$,	! /DEBUG:BOUNDS
	DBGBOUNBR 	= 30$,
	PROGTYP		= 28,2$,	! Type of program unit being compiled
			MAPROG = 0$,	! Main program
			FNPROG = 1$,	! FUNCTION
			SUPROG = 2$,	! SUBROUTINE
			BKPROG = 3$,	! BLOCK DATA
	LABLDUM		= 27,1$,	! There are label formal arguments to a
					! function or subroutine
	FATALERR	= 26,1$,
%1613%	DBGARGMNTS	= 25,1$,	! /DEBUG:ARGUMENTS
%1613%	DBGARGMBR 	= 25$,
	BTTMSTFL	= 24,1$,
	!<not used>	= 23,1$,
	SYNONLY		= 22,1$,	! Syntax only
	ERRSW		= 21,1$,
	MULTENT		= 20,1$,	! There are multiple entry points
	MAPFLG		= 19,1$,
	FELFLG		= 18,1$,
	WARNGERR	= 17,1$,
	ENDFILE		= 16,1$,
	DBGDIMN		= 15,1$,	! /DEBUG:DIMENSIONS
	DBGDIMNBR 	= 15$,
	INIOLIST	= 14,1$,
	OBJECT		= 13,1$,
	ININCLUD	= 12,1$,
	!<not used>	= 11,1$,
	LISTING		= 10,1$,	! /LIST
	DBGINDX		= 9,1$,		! /DEBUG:INDEX
	DBGINDXBR 	= 9$,
	DBGLABL		= 8,1$,		! /DEBUG:LABELS
	DBGLABLBR 	= 8$,
%677%	EOCS		= 7,1$,
	CROSSREF	= 6,1$,		! /CROSSREF
	DBGTRAC		= 5,1$,		! /DEBUG:TRACE
	DBGTRACBR 	= 5$,
	EXPAND		= 4,1$,
	INCLUDE		= 3,1$,
	MACROCODE	= 2,1$,		! /MACRO
	NOERRORS	= 1,1$,
	OPTIMIZE	= 0,1$;		! /OPTIMIZE

%1437%	REGISTER FLGREG = 0;	!Use register 0 for the flag register


	! Secondary FLGREG

	EXTERNAL  FLAGS2;

MACRO
	TTYINPUT	= 35,1 $,	!Input device is a TTY
%1160%	GFMCOK		= 34,1 $,	!GFloating microcode present
%1160%	FTLCOM		= 33,1 $,	!Fatal compile errors - this command
%1577%	ABORTSW		= 32,1 $;	!Do an abort if fatal errors occur

	! Secondary switch register - used to hold user settable
	! switches.

%767%	EXTERNAL F2;

MACRO
%767%	GFL		= 35,1 $,		! Use GFloating DP
%767%	GFLOAT		= F2<GFL>$,		! /GFLOATING flag
%767%	F77FL		= 34,1 $,		! Use F77 standard
%767%	F77		= .F2<F77FL> $,		! For ease of use in compiler
%767%	F66		= NOT .F2<F77FL> $,	! Ditto
%1133%	STA		= 33,1 $,		! /STATISTICS
%1504%	EXTENDFLAG	= 32,1$,		! /EXTEND
%2246%	EXTENDED	= .F2<EXTENDFLAG> $,	! IF EXTENDED THEN ...
%2246%	CFLGANSI	= 31,1$,		! /FLAG:STANDARD
%2246%	FLAGANSI	= .F2<CFLGANSI>$,	! IF FLAGANSI THEN ...
%2455%	CFLGVMS		= 30,1$,		! /FLAG:VMS
%2455%	FLAGVMS 	= .F2<CFLGVMS>$,	! IF FLAGVMS THEN ...
%2246%	FLAGEITHER	= .F2<30,2> NEQ 0$,	! To test for either
%2442%	EXTENDCF	= 29,1$,		! /EXTEND:CODE
%2442%	EXTENDCODE	= .F2<EXTENDCF>$;	! IF EXTENDCODE THEN ...


!**********************************************************************
! Macros which reference the statement description block,
! given the address of it.  The address is normally in STMNDESC

MACRO	STMNROUTINE (DESC) = (DESC)<RIGHT> $,	! ROUTINE ADDRESS
	KEYWRD (DESC)  =  (DESC + 1) $,		! KEY WORD, TERMINATED BY ZERO,
						! PRECEEDED BY A BLANK
	ORDERCODE (DESC) = (DESC)<18,4> $,	! STATEMENT ORDER CODE
	BADIFOBJ (DESC)  =  (DESC)<22,1> $,	! IF SET THIS STATEMENT CANNOT
						! BE THE OBJECT OF A LOGICAL IF
	BADOTERM (DESC)  =  (DESC)<23,1> $,	! IF SET THIS STATEMENT CANNOT
						! TERMINATE A DO LOOP
	LABOK (DESC) = (DESC)<24,2> $,		! IF SET TO:
						! 0 THIS STATEMENT MAY HAVE A
						!	LABEL
						! 1 IT MAY NOT BE LABLED
						! 2 PROCESSING IS DELAYED UNTIL
						!	SEMANTICS
%1456%	IOINPT (DESC) = (DESC)<26,1> $,		! STATEMENT DOES INPUT INTO AN
						! IO LIST
	SYNOW (DESC) =  (DESC)<27,9> $;		! IF NON-ZERO SYNTAX FOR THE
						! STATEMENT.  CAN BE EXECUTED
						! IN THE DRIVER BEFORE CALLING
						! THE SEMANTIC ROUTINE.  THE
						! CONTENTS OF THE FIELD
						! CONTAIN THE SYNTAX TABLE
						! ENTRY POINT INDEX


%4527%	! Macros to look into single word [length,,pointer] to Sixbit
%4527%	! symbols.  These are used in any other definitions (ie symbol
%4527%	! table entries).  These macros must be here due to some modules
%4527%	! which do not REQUIRE FIRST.BLI, but do REQUIRE this file.

MACRO
%4527%	SYMLENGTH	= LEFT$,	! Length of symbol
%4527%	SYMPOINTER	= RIGHT$,	! Pointer to Sixbit symbol
%4527%	SYM1STCHAR	= 30,6$,	! First character of symbol
%4530% 	SYM6THCHAR	= 0,6$,		! Sixth character of symbol
%4527%	SYMPRV1STCHAR	= 36,6$;	! Previous to first character of
%4527%					! symbol (for use with ILDB,IDPB).