Google
 

Trailing-Edge - PDP-10 Archives - ap-c800d-sb - p.mac
There are 20 other files named p.mac in the archive. Click here to see a list.
; UPD ID= 1931 on 6/15/79 at 4:07 PM by N:<NIXON>
UNIVERSAL P FOR COBOL
SUBTTL	PARAMETERS FOR COBOL 			AL BLACKINGTON/CAM



;COPYRIGHT (C) 1974, 1979 BY
;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
;
;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.
SEARCH	INTERM

VEDIT==726
VERSION==1201
%%P==3		;EDIT NUMBER OF P.MAC ITSELF
;		TO ASSURE THAT ALL ARE COMPILED WITH THE SAME VERSION
;		OF P.MAC


DEBUG==:DEBUG
SERCH==:SERCH
RPW==:RPW
ISAM==:ISAM
DBMS6==:DBMS6
DBMS4==:DBMS4
DBMS==:DBMS
MCS==:MCS
STRING==:STRING
ONESEG==:ONESEG
EBCMP.==:EBCMP.
MPWCEX==:MPWCEX
BIS==:BIS
BISCMP==:BISCMP
TOPS20==:TOPS20
ANS68==:ANS68
ANS74==:ANS74
TCS==:TCS
CSTATS==:CSTATS

SWSET%==SWSET%	;ASSEMBLY SWITCH WORD

;HISTORY:	COBOL V1 -- SEP 1970 (LIBOL V1)
;		COBOL V2 -- JAN 1971 (LIBOL V2)
;		COBOL V2B - JUL 1971 (LIBOL V3)
;		COBOL V3 -- JAN 1972 (LIBOL V4)
;		COBOL V4 -- AUG 1972 (LIBOL V5)
;		COBOL V5 -- MAR 1973 (LIBOL V6)
;		COBOL V5A - OCT 1973 (LIBOL V6A)
;		COBOL V6 -- NOV 1974 (LIBOL V7)
;		COBOL V6A - MAR 1975 (LIBOL V7A)
;		COBOL V10 - JAN 1976 (LIBOL V10)
;		COBOL V11 - JUL 1977 (LIBOL V11)
;		COBOL-68 V12 - JUN 1978
;		COBOL-74 V12 - JAN 1979
;		COBOL-68/74 V12A - SEP 1979
;*** EDITS BELOW WILL BE IN COBOL-68/74 VERSION 12A RELEASE

;[726]	DMN	21-AUG-79	GETITM
;	FIX COPY REPLACING WHEN MULTIPLE OF SIX CHARS.
;[725]	DMN	21-AUG-79	COBOLF
;	MAKE SURE FFATAL IS ON IF FATAL ERRORS EXIST.
;[724]	DMN	14-AUG-79	MOVGEN
;	FIX ERROR IN EDIT 722
;[723]	DMN	 8-AUG-79	COBOLC
;	FIX EDIT 706 TO POINT TO CORRECT RECORD.
;[722]	DMN	26-JUL-79	IMPURE	CMNGEN	MOVGEN
;	FIX COBOL-74 MOVE HIGH/LOW-VALUES WITH PROGRAM COLLATING SEQUENCE.
;[721]	DMN	24-JUL-79	CMNGEN
;	FIX COBOL-74 SUBSCRIPTED IF WITH PROGRAM COLLATING SEQUENCE.
;[720]	DMN	23-JULY-79	IFGEN
;	FIX COBOL-74 COMPARE TO SPACES WITH PROGRAM COLLATING SEQUENCE.
;[717]	MFY	16-JUL-79	IFGEN
;	FIX IF A NOT = SPACES FOR A ALPHANUMERIC AND LONGER THAN 2040 CHARACTERS.
;[716]	DAW	22-JUN-79	CMNGEN
;	FIX BAD CHECK FOR EBCDIC MODE IN SUBSCRIPTING.
;[715]	CLRH	 5-JUN-79	MATGEN
;	CORRECT EDIT 566.
;[714]	MFY	 3-JUN-79	DTREE
;	BREAK UP LONG LINES DUE TO SIRUS BUG.
;[713]	CLRH	31-MAY-79	COBOLA
;	DO TMPCOR UUO IN THE RIGHT ADDRESS IF CORE UUO IS NEEDED.
;[712]	CLRH	24-MAY-79	PMATCH
;	NOT REQUIRED, IN 12A IN DIFFERENT FORM.
;[711]	DAW	22-MAY-79	COBOLC
	;FIX EDIT 674 FOR INDEX ITEMS.
;[710]	DMN	16-MAY-79	COBOLC
	;SET FLAG SHOWING WORKING-STORAGE SEEN.
;[707]	DAW	7-MAY-79	COBOLD
	;FIX EDIT 670 - IT BROKE NESTED IFS.
;[706]	CLRH	 3-MAY-79	COBOLC	DIAGS
	;CHECK RECORD CONTAINS CLAUSE AGAINST MAX. RECORD SIZE.
;[705]	CLRH	 2-MAY-79	DTREE
	;PUT OUT "PERIOD ASSUMED" MESSAGE IN RIGHT PLACE
;[704]	DMN	30-APR-79	GETITM
	;FIX MULTIPLE COPY REPLACING ORDERING BUG.
;[703]	CLRH	30-APR-79	SRTGEN
	;BAD CODE GENERATED FOR SIXBIT SORT WHERE KEY STARTS
	;ONE CHARACTER INTO A WORD (NON-BIS CASE ONLY).
;[702]	DMN	30-APR-79	COBOLB	GETITM
	;LIST COMMENTS IN DATE-COMPILED PARAGRAPH.
;[701]	DAW	26-APR-79	PMATCH
	;DON'T DO IMPROPER OPTIMIZATIONS - FIX TO "SAMACM" ROUTINE
;[700]	DAW	27-APR-79	COBOLC
	;FIX UNDESERVED ERROR FOR COMP-1 ITEMS WITH EDIT 674
;[677]	DAW	23-APR-79	CLEAND
	;TABLES EXPANDING MAY CAUSE DBMS USE PROCEDURES TO GET MESSED UP
;[676]	DMN	17-APR-79	COBOLF
	;FIX EDIT 517, GET LISTING RIGHT WHEN SPACE IN COLUMN 7
;[675]	DMN	 4-APR-79	COBOLD
	;CHECK FIND RSE 3 SYNTAX THAT COULD LOOK LIKE FIND RSE 5
;[674]	CLRH	 3-APR-79	COBOLC	IMPURE
	;GENERATE ERROR FOR BAD VALUE CLAUSE OF 88 LEVEL ITEM
;[673]	DMN	 2-APR-79	CMNGEN	MOVGEN
	;FIX QUAD-WORD ROUNDING PROBLEM.
;[672]	DAW	29-MAR-79	COBOLC	MATGEN
	;FIX ILL MEM REF WHEN SOMEONE DEFINES A DATANAME "TALLY".
;[671]	DAW	28-MAR-79	CMNGEN
	;FIX PROBLEM WITH LINKAGE SECTION SUBSCRIPTS
;[670]	JSM	28-MAR-79	COBOLD	IMPURE	SQUIRL
	;FIX NESTED IF . ELSE PROBLEM
;[667]	MFY	22-MAR-79	SRTGEN
	;WRONG CODE FOR EBCDIC KEYS WITH 2 BYTES IN LAST WORD
;[666]	DAW	22-MAR-79	CMNGEN
	;FIX EDIT 661 (LABEL BADSB4 WAS ALREADY DEFINED IN MAINTENANCE SOURCES)
;[665]	DMN	20-MAR-79	COBOLD
	;RECOVER CORRECTLY FROM PROCEDURE DIVISION MIS-SPELLED
;[664]	DAW	19-MAR-79	MOVGEN
	;FIX MULTIPLY WITH 4-WORD INTERMEDIATE PROBLEM
;[663]	DMN	16-MAR-79	PMATCH
	;FIX SKIPA OPTIMIZATION IF PREV. INST. IS JRST .+3
;[662]	DMN	13-MAR-79	IMPURE
	;FIX EDIT 557, DEFINE PICNXT COMMON TO PHASES B, C, AND D
;[661]	DAW	12-MAR-79	CMNGEN	DIAGS
	;GIVE ERROR MESSAGE RATHER THAN GENERATING BAD CODE FOR COMP-1 SUBSCRIPTS.
;[660]	DAW	12-MAR-79	CMNGEN
	;FIX ERROR MESSAGE POINTS TO WRONG PLACE FOR "WRONG NUMBER OF SUBSCRIPTS".
;[657]	DMN	 9-MAR-79	GETITM	IMPURE
	;FIX PROBLEM WITH LOOKAHEAD IN COPY REPLACING INTEGER.
;[656]	DAW	 8-MAR-79	COBOLE	IMPURE
	;FIX PROBLEMS WITH DBMS USE PROCEDURES
;[655]	DMN	 6-MAR-79	GETITM
	;CHECK FOR PREMATURE EOF ON LIBRARY FILE
;[654]	DAW	 6-MAR-79	MOVGEN
	;FIX BAD CODE GENERATED SOMETIMES FOR MOVE OF ITEM WITH TWO OR MORE SUBSCRIPTS.
;[653]	DMN	 6-MAR-79	COBOLG
	;TURN ON FFATAL ON ASSEMBLY ERRORS IN PHASE G
;[652]	DAW	 6-MAR-79	DTREE
	;ALLOW NULL PARAGRAPH PROCEEDING "END DECLARATIVES"
;[651]	DMN	 6-MAR-79	COBOLE	TABLES
	;WRONG BYTE POINTER USE IN RPW CONTROL FOOTER CODE
;[650]	DAW	 5-MAR-79	COBOLE
	;FIX ILL MEM REF WHEN COMPILER EXPANDS TABLES FOR DBMS PROGRAM WITH USE PROCEDURES
;[647]	DMN	 1-MAR-79	SRTGEN
	;WRONG CODE GENERATED FOR FILLER X(5), KEY X(8) IN SIXBIT
;[646]	DAW	 1-MAR-79	STRGEN
	;FIX ERROR MESSAGE ALWAYS POINTS TO LINE 371 IF ERROR WAS IN
	;SUBSCRIPTED "COUNT" ITEM IN UNSTRING STATEMENT
;[645]	DAW	28-FEB-79	COBOLD
	;FIX ERROR RECOVERY IN SORT STATEMENT
	;ALSO ADD RESTRICTION TO "MERGE" STATEMENT TO NOT ALLOW SUBSCRIPTING
;[644]	DMN	28-FEB-79	CLEANC
	;MORE ERROR RECOVERY FOR 88 LEVEL WHERE 01 IS NOT DEFINED UNIQUELY
;[643]	DAW	27-FEB-79	CMNGEN
	;FIX "?SIZTE RETURNED 0"
;[642]	DAW	27-FEB-79	DTREE
	;FIX "MOVE CURRENCY STATUS OF RUN-UNIT TO SUBSCRIPTED-ITEM"
;[641]	DMN	27-FEB-79	EXPGEN
	;FIX INCORRECT TEST FOR OPERAND IS ACC AT LASTOP IN EXPGEN
;[640]	DAW	26-FEB-79	XPAND
	;FIX ILL MEM REF WHEN EXPANDING TABLES IN PHASE O
;[637]	DAW	23-FEB-79	EXPGEN	COBOLE
	;FIX COMPUTE WITH COMP-1 RESULT
;[636]	DMN	21-FEB-79	COBCOM	MOVGEN	CMNGEN
	;FIX VARIOUS ERRORS WHEN COMPILING PROGRAMS WITH FATAL ERRORS
;[635]	DAW	21-FEB-79	COBOLC
	;FIX SIZE ALLOCATION FOR AN ITEM WHICH RENAMES ITEM-1 THRU ITEM-2
;[634]	DAW	19-FEB-79	MOVGEN	CMNGEN	PURE	COMUNI
	;FIX PROBLEMS WITH 4-WORD COMP ARITHMETIC
;[633]	DMN	 9-FEB-79	IMPURE	PUTCPY	COBOLF
	;GIVE BETTER WARNING ON LINE NUMBER WRAP-AROUND
;[632]	MFY	 1-FEB-79	IPCGEN
	;REMOVE SECOND (WRONG) DEFINITION OF ARGSGN
;[631]	DMN	28-JAN-79	COBOLD
	;DON'T USE ARG2 AT PA258. THUS PREVENTING CATASTROPHIE IN PHASE D
;[630]	MFY	27-JAN-79	IFGEN
	;FIX EDIT 562 FOR NON-BIS CASE
;[627]	DMN	27-JAN-79	SRTGEN
	;WRONG CODE GENERATED FOR EBCDIC 8 BYTE KEY WITH 1 OR 3 BYTES IN FIRST WORD
;[626]	DMN	22-JAN-79	MOVGEN
	;FIX MOVE OF 3 CHAR EBCDIC FIG-CONST (COBOL-68 ONLY)
;[625]	DMN	16-JAN-79	CMNGEN
	;FIX BAD TEST FOR TWO WORD TEMP IN PUTEMP
;[624]	DMN	 5-JAN-79	COBOLC	DIAGS
	;RECORD SIZE MUST MATCH RECORD CONTAINS IN F MODE FILE
;[623]	DMN	29-DEC-78	SRTGEN	DIAGS
	;GIVE ERROR IF SORT KEY CONTAINS OCCURS CLAUSE
;[622]	DMN	29-DEC-78	SRTGEN
	;WRONG CODE GENERATED FOR FILLER X, KEY X(9) IN SIXBIT
;[621]	DMN	 4-JAN-79	MOVGEN	CMNGEN
	;GIVE ERROR ON "MOVE ALL" <DIGIT> TO NUMERIC
;[620]	DMN	18-DEC-78	GETITM
	;STORE SEQ. NO. CORRECTLY FOR DATE-COMPILED PARAGRAPH.
;[617]	DMN	15-DEC-78	GETITM
	;IF FGTPER IS ON DON'T TEST FOR REPLACEMENT
;[616]	DMN	13-DEC-78	PMATCH
	;FIX SUBI/ADDI OPTIMIZATION IN LINKAGE SECTION
;[615]	DMN	12-DEC-78	SRTGEN
	;PUT REMAINING FIXES FROM BWR FILE INTO OFFICIAL SOURCES
;[614]	DMN	12-DEC-78	PMATCH
	;DECREMENT TAG COUNT CORRECTLY FOR IF  D.P. TEST (THIS WAS IN .BWR FILE)
;[613]	DMN	12-DEC-79	DTREE
	;MAKE IT POSSIBLE TO BUILD COMPILER WITH DBMS=0 (THIS WAS IN .BWR FILE)
;[612]	DMN	12-DEC-78	COBOLD
	;INITIALIZE FNOSUB AT THE START OF PHASE D (THIS WAS IN THE BWR FILE)
;[611]	DMN	12-DEC-78	IFGEN
	;FIX IF DBMS-STATEMENT TO GENERATE CORRECT CODE (THIS WAS IN BWR FILE)
;[610]	DMN	11-DEC-78	CMNGEN
	;FIX INCORRECT CODE GENERATED IN ARRAY WHERE TOP LEVEL IS COMP IS REFERENCED
	;VIA CONSTANT SUBSCRIPT
;[607]	DAW	 7-DEC-78	PMATCH
	;FIX "?NPCIN BECAME NEGATIVE" WHEN DELETING CODE THAT CAN'T BE REACHED
;[606]	DMN	 7-DEC-78	CMNGEN
	;FIX ?INTERNAL COMPILER ERROR IF 01 ITEM OCCURS USAGE IS NON-DISPLAY
;[605]	DMN	 1-DEC-78	IMPURE	PURE	IFGEN	IOGEN
	;MAKE VARIABLE LENGTH READS WORK USEFULLY
;[604]	DMN	29-NOV-78	STRGEN
	;PUT OUT CORRECT ERROR MESSAGE ON STRING OF NON-NUMERIC TO NUMERIC.
;[603]	DMN	28-NOV-78	COBOLC
	;FIX ILL UUO WHEN "CONTROL" IN "RD" REFERS TO EDITED ITEM.
;[602]	DMN	28-NOV-78	DTREE
	;ALLOW NULL SECTION IN PROCEDURE DIVISION.
;*** EDITS BELOW WILL BE IN COBOL-74 VERSION 12 RELEASE

;[601]	MFY	 8-NOV-78	MATGEN
	;CORRECT EDIT 546
;[600]	DMN	31-OCT-78	IFGEN
	;ADJUST D.P. OF "A" IN ACCS IF LESS THAN D.P. OF "B"
;[577]	DMN	31-OCT-78	CMNGEN
	;FIX SET DOWN BY 262144 (I.E. <-1,,0>)
;[576]	DAW	12-OCT-78	MESGEN
	;FIX "?BAD LITAB CODE" - IN "ENABLE" STMT CODE GEN.
;[575]	DAW	11-OCT-78	MOVGEN
	;FIX "MOVE ALL 'A' TO DISPLAY-ITEM (SUBSCRIPTED)".
;[574]	DAW	11-OCT-78	COBOLD
	;DON'T SET BIT 1 FOR USER-NAME EXTERNAL ENTRY (BIT WENT AWAY)
;[573]	DMN	 4-OCT-78	DTREE
	;ALLOW NULL PARAGRAPHS IN DECLARATIVES.
;[572]	DMN	 9-OCT-78	P
	;MAKE TABLES BE SIZE 1 IF DBMS OR MSC/TCS TURNED OFF
;[571]	DMN	 9-OCT-78	PUTCPY
	;FINALLY FIX 531 & 517
;[570]	DMN	 6-OCT-78	COMUNI	PURE	CMNGEN
	;ADD QUAD-WORD ROUNDING FUNCTION
;[567]	DMN	 6-OCT-78	MOVGEN
	;FIX DECIMAL POINT ALLIGNMENT IN QUAD-WORD MULTIPLIES
;[566]	DMN	 4-OCT-78	IMPURE	MATGEN
	;FLOAT OPERANDS WHEN TARGET IS COMP-1
;[565]	DAW	 4-OCT-78	IPCGEN
	;PASS NUMERIC EDITED FIELDS TO A SUBROUTINE CORRECTLY
;[564]	DAW	 4-OCT-78	MOVGEN
	;FIX BUG IN EDIT 537 - NON-BIS ONLY PROBLEM
;[563]	DMN	 4-OCT-78	SRTGEN
	;ILL. MEM. REF. FOR FILLER X(3) OR X(4), KEY X(8) IN ASCII.
;[562]	DMN	 2-OCT-78	IFGEN	OPCTAB
	;FIX SIXBIT 6 CHAR FIG-CON COMPARE WHEN SIGN GETS IN THE WAY
;[561]	DAW	28-SEP-78	XFRGEN	OPCTAB
	;FIX "GO DEPENDING" - /O PROBLEM
;[560]	DMN	25-SEP-78	SRTGEN
	;WRONG CODE GENERATED FOR FILLER X(3), KEY X(7) IN SIXBIT.
;[557]	DMN	19-SEP-78	GETITM	IMPURE	DIAGS
	;FIX VARIOUS COPY REPLACING BUGS
;[556]	DMN	19-SEP-78	COBOLA
	;FIX GETTAB 135 IF FILDAEMON IS TURNED OFF
;[555]	EHM	17-SEP-78	SRTGEN
	;FIX MISCELLANEOUS PROBLEMS WITH SORT & COBOL
;[554]	EHM	17-SEP-78	SRTGEN	DIAGS
	;GIVE ERROR MESSAGE IF KEY IN SORT STATEMENT IS FOR THE WRONG FILE
;[553]	EHM	17-SEP-78	IMPURE	COBOLB	DIAGS
	;GIVE WARNING IF RECORDS/RERUN TOO LARGE
;[552]	EHM	17-SEP-78	CLEAND	DIAGS	COBOLD
	;GIVE ERROR IF DECLAR. & NO END DECLARITIVES
;[551]	EHM	16-SEP-78	CMNGEN	COBCOM
	;FIX CATASTROPHIE IN PHASE E
;[550]	EHM	16-SEP-78	IFGEN
	;FIX IF SUBSCRIPTED ITEM IS ALPHABETIC
;[547]	EHM	16-SEP-78	MSCGEN	IFGEN
	;FIX EXAMINE REPLACING HIGH-VALUES BY
;[546]	EHM	16-SEP-78	MATGEN
	;FIX MULTIPLY -1 BY X GENERATES A SETZM
;[545]	EHM	15-SEP-78	MATGEN
	;FIX STATEMENT AFTER SUBTRACT 1 IS COMPILED WRONG
;[544]	EHM	14-SEP-78	IFGEN
	;FIX HIGH-VALUES COMPARES FOR SIXBIT VARIABLES
;[543]	EHM	12-SEP-78	CMNGEN
	;FIX ACCEPT INTO A DISPLAY-6 ITEM
;[542]	EHM	12-SEP-78	IFGEN
	;FIX NUMERIC COMPARE OF FIELD WITH DECIMAL PLACES WITH EXPRESSION
	;WITH NO DECIMAL PLACES
;[541]	EHM	 3-AUG-78	SRTGEN
	;FIX CATASTROPHIE IN PHASE O IF NULL INPUT OR OUTPUT PROCEDURES.
;[540]	EHM	23-JUN-78	RPWGEN
	;FIX CONTROL HEADING PRINTED PAST LINE SPECIFIED AS LAST DETAIL LINE.
;[537]	13-JUN-78	MOVGEN
	;FIX "SUBSCRIPTED MOVE WITH "A" IN ACS!!"
;[536]	EHM	12-JUN-78	MOVGEN
	;FIX MOVE OF COMP ITEM TO DISPLAY TO ONLY MOVE THE NUMBER OF CHARACTERS
	;IN THE COMP PIC
;[535]	EHM	 4-MAY-78	COBOLD
	;FIX EDIT 273 FOR IF SET NOT EMPTY
;[534]	EHM	14-APR-78	EXPGEN	MATGEN
	;FIX COMPUTE GETS ANSWER FROM WRONG AC
;[533]	EHM	 6-APR-78	DTREE
	;MAKE STOP RUN WORK FOR WHEN IN SEARCH
;[532]	EHM	29-MAR-78	COBOLD
	;FIX EDIT 511 TO PROCESS ERRORS CORRECTLY
;[531]	EHM	21-MAR-78	COBOLF	PUTCPY
	;FIX EDIT 517 TO COMPILE COPIES CORRECTLY
;[517]	MPL	 4-OCT-77	COBOLF	PUTCPY
	;IMPROVE READABILITY OF .LST FILE
;*** EDITS BELOW WILL BE IN VERSION 12 RELEASE
;
;EDIT 530 FIX COMMAND SCANNER TO LOOK FOR NUL FILE  IF USER TYPES   =FILE.
;EDIT 527 FIX CATASTROPHIE WHEN REPORT WRITER VALUE IS MESSED UP
;EDIT 526 IGNORE EDITS PAGE MARKS SO CONTINUATION WORKS
;EDIT 525 FIX SUBSCRIPT EXPRESSION AND NON COMP
;EDIT 524 FIX UNSTRING INTO RECEIVING FIELD WITH  DECIMAL PLACES.
;EDIT 523 FIX "OPEN JOUR" STATEMENT FOR EXCL. UPDATE
;EDIT 522 FIX ROUNDING FOR LARGE DIFFERENCES IN NUMBER OF DECIMAL PLACES.
;EDIT 520 CORRECT ERROR HANDLING FOR UNDEFINED DATA ITEMS IN A USING CLAUSE.
;EDIT 516 ALLOW ENTRY AFTER EXIT PROGRAM BUT NOT AFTER EXIT (PARAGRAPH).
;	ADDED KEYWORDS FOR DBMS-V6: TRANSACTION, VIA, MEMBERS
;EDIT 515 CHECK SOURCE-COMPUTER CORRECTLY
;EDIT 514 FIX CONVERSION OF ASCII TO EBCDIC
;EDIT 513 IF INVALID DBMS PRIVACY KEY, GIVE FATAL
;	AND BEGIN PROCESSING AFTER SCHEMA SECTION.
;EDIT 512 CHECK FOR COMP ITEM AT 01 LEVEL WHEN DOING A BINARY WRITE
;EDIT 511 MAKE NESTED SEARCH STATMENTS WORK
;EDIT 510 PREVENT CATASTROPHE IN PHASE E WHEN COPY
;	TO LINKAGE SECTION IS INCORRECT SUCH THAT THERE
;	IS NO LINK SET UP TO THE 01 LEVEL GRANDFATHER.
;EDIT 507 TO BUILD COBOL WITH DBMS==0, DBMS4==0
;	WHEN EDIT 476 IS INSTALLED
;EDIT 506 MAKE NEW EXIT QUITS WHICH RETURNS TO
;	COBOLA WITHOUT GOING TO COBOLK
;EDIT 505 ADD CHECKS SO "KEY" TYPE MATCHES ACCESS MODE
;EDIT 504 ALLOW "STRING" VERBS TO BEGIN IN A-MARGIN
;	LIKE OTHER VERBS AND CATCH MORE CASES OF
;	IMPROPER SYNTAX SUCH AS "STRING DELIMITED...".
;EDIT 503 TO BUILD COBOL WITH DBMS==0, DBMS4==0
;EDIT 501 ENFORCE NO PRINTER CHANNEL GREATER THAN 8
;EDIT 500 FIX "SET X(1)  X(2) UP" TO STOP LOOPING
;EDIT 477 DO BETTER RECOVERY FROM LIBARY NOT FOUND
;EDIT 476 CHECK FOR PROPER SEQUENCE OF SECTION
;	NAMES AND PROPER ALLOCATION OF DATA STORAGE
;EDIT 475 PASS NUMERIC AND SIGN BITS TO MACRO SUBROUTINE CORRECTLY
;EDIT 474 PUT OUT ERROR MESSAGE WHEN TRYING TO DO A
;	"READ INTO"   ON A RECORD OF ZERO SIZE.
;EDIT 471 GIVE APPROPRIATE ERROR MESSAGE WHEN OCCURS
;	MAXIMUM EXCEEDED.
;EDIT 470 BE MORE AWARE WHEN "DECIMAL-POINT IS COMMA"
;EDIT 467 SET LN, CP AND RIGHT DIAG. MESSAGE FOR
;	STATEMENT: "GO TO -(NUMBER)"
;EDIT 466 FIX COMPUTE FLOATING DIVIDES WHEN ANSWER ROUNDED.
;EDIT 465 LOCATE TOO LARGE DATA ITEM DEFINED BY
;	OCCURS FOLLOWED BY OCCURS. GIVE FATAL ERROR.
;EDIT 464 ALLOW DIGITS TO BE LEXICALLY ORDERED BEFORE LETTERS.
;
;EDIT 461 FIX TALLY FOR RECORD-NAME IN WRITE CAUSES CRASH
;EDIT 460 FIX INCORRECT ERROR MESSAGE AFTER SEARCH ALL 'THIS STATEMENT
;	CANNOT BE REACHED.' ROUTINE COBOLD.
;EDIT 457 GIVE FATAL ERROR MESSAGE FOR ENTRY FOLLOWING EXIT IN THE SAME
;	PARAGRAPH. ROUTINE DTREE.
;EDIT 456 GIVE WARNING DIAGNOSTIC IF ROUNDING IS USED INCORRECTLY.
;	ROUTINES CMNGEN, EXPGEN, DIAGS.
;EDIT 455 FLAGS SORT KEYS NOT DEFINED IN SD STATEMENT. ROUTINE COBOLD.
;EDIT 454 RECOVER FROM USER SYNTAX ERROR FOR CONDITIONAL NAME WHICH CAN
;	CAUSE CATASTROPHIE IN PHASE C. ROUTINE CLEANC.
;EDIT 453 ALLOW DBMS PROGRAMS IN STANDARD (/S) FORMAT. ROUTINES DBGETF,
;	COBOLC, GETITM.
;EDIT 452 FIX KEY CODE FOR CORE EXPANSION FOR SORTING IN LARGE COBOL
;	PROGRAMS. ROUTINE SRTGEN.
;EDIT 451 GIVE ERROR MESSAGE LINKAGE SECTION MUST COME AFTER WORKING-
;	STORAGE IF THERE IS A SCHEMA SECTION OR A COMMUNICATION SECTION.
;	ROUTINE COBOLC.
;EDIT 450 FIX RENAMES THRU FOR DATA-NAME IN LINKAGE SECTION. ROUTINE
;	COBOLC
;EDIT 447 GIVE WARNING WHEN ATTEMPTING TO ACCEPT MORE THAN 1023 CHARACTERS
;	INTO AN AREA. ROUTINE IOGEN.
;*** EDITS BELOW ARE IN VERSION 11 RELEASE

;EDIT 446 TEST FOR ERROR BEFORE PUSHJ TO LNKSET FOR CATASTROPHE IN PHASE
;	E.  ROUTINE IFGEN
;EDIT 445 FIX CATASTROPHE IN PHASE E IF VARIABLE FROM LINKAGE SECTION IS
;	SUBSCRIPTED THAT CANNOT BE SUBSCRIPTED. ROUTINE IFGEN.
;EDIT 444 ADDED WARNING IF MAXIMUM COMPARE LENGTH FOR IF STATEMENT IS
;	EXCEEDED.  ROUTINES COBOLE AND DIAGS.
;EDIT 443 FIX INCORRECT RESULT WHEN ATTEMPTING TO NEGATE A VARIABLE VIA
;	COMPUTE (I.E. COMPUTE BLAH = - BLAH ).  ROUTINE EXPGEN.
;EDIT 442 ILLEGAL MEMORY REFERENCE REFERENCE CATASTROPHE IN PHASE C IF
;	COMMUNICATIONS SECTION IS AFTER WORKING-STORAGE. ROUTINE COBOLC.
;EDIT 441 ADDED IF OP0 TEST FOR NON-NUMERIC DATA.  NEEDS EDIT 455 TO 
;	LIBOL.  ROUTINES PURE, IFGEN
;EDIT 440 FIX XPAND GETTING CORE BUT LEAVING NAMADR WITH OLD CORE LOCATION.
;	ROUTINES XPAND, NAMADR
;EDIT 437 FIX DBMS 'IF' IF THE LITERAL TABLE OVERFLOWES ONTO THE DISK.
;	ROUTINE IFGEN
;EDIT 436 FIX DBMS 'IF' STATEMENTS IN SEGMENTED SECTIONS. ROUTINE IFGEN
;EDIT 435 FIX DECLARITIVES IN DBMS PROGRAM SO THAT DBMS SECTION GOES
;	AROUND IT. ROUTINE COBOLD, DTREE, CLEAND, IMPURE, COBOLE, XFRGEN
;EDIT 434 HANDLE SUM COUNTERS OF GREATER THAN 10 DIGITS PROPERLY FOR
;	REPORT WRITER. ROUTINE CLEANC
;EDIT 433 NO SUCH EDIT.
;EDIT 432 PASS NUMERIC ARGUMENTS TO A SUBROUTINE CORRECTLY. ROUTINE IPCGEN
;EDIT 431 FIX 'UUO CONVENTION ERROR' MESSAGE WITH SORT GIVING ON LARGE-SIZE
;	ASCII FILES. ROUTINES CMNGEN, SRTGEN
;EDIT 430 FIX 'ACCEPT' WHEN ARGUMENT HAS A FAULTY SUBSCRIPT. ROUTINE IOGEN
;EDIT 427 FIX FIELD SIZE FOR EXAMINE REPLACING. ROUTINE MSCGEN
;EDIT 426 FIX ZERO TESTING OF FIELDS WITH PICTURE SIZES OF 6 OR FEWER.
;	ROUTINE IFGEN
;EDIT 425 FIX STRING/UNSTRING AND MCS VERBS TO WORK IN NON-RESIDENT
;	SECTIONS. ROUTINES MESGEN, XFRGEN
;EDIT 424 DON'T ATTEMPT TO MAKE LITERALS OF ZERO SIZE. ROUTINES CMNGEN,
;	MOVGEN
;EDIT 423 DON'T ATTEMPT TO MAKE CONTROL ID PREVIOUS IF ID IS ERROR.
;	ROUTINE COBOLC
;EDIT 422 FIX LOSS OF FIRST CHARACTER IN 'DATE-COMPILED' OR 'SOURCE-COMPUTER'
;	STATEMENTS. ROUTINE COBOLB
;EDIT 421 FIX 'EXAMINE REPLACING' BY 'HIGH-VALUES' FOR A SIXBIT ITEM.
;	ROUTINE MSCGEN
;EDIT 420 FIX FOR MISSING PERIOD ON 'OPEN' STATEMENT. ROUTINE COBOLD
;EDIT 417 MAKE SURE RESTYP IS DEFINED SO ARITHMETIC OPERATIONS DON'T GET
;	'BAD RESTYP' MESSAGE. ROUTINE MATGEN
;EDIT 416 FIX MOVES OF SUBSCRIPTED OR LINKAGE SECTION ITEMS. ROUTINE
;	MOVGEN
;EDIT 415 FIX THE CONTROL ID COUNT IN REPORT WRITER. ROUTINE RPWGEN
;EDIT 414 HANDLE NEGATIVE EXPRESSIONS IN 'IF' STATEMENTS. ROUTINE IFGEN
;EDIT 413 FIX PERIOD HANDLING FOR NESTED 'IF' AND 'SEARCH' STATEMENTS.
;	ROUTINE COBOLD
;EDIT 412 PREVENT COMMUNICATION SECTION AND SCHEMA SECTION FROM OVERLAYING
;	EACH OTHER. ROUTINE COBOLC
;EDIT 411 CORRECT PARAMETER WORD SETTING FOR SUBSCRIPTED ARGUMENTS TO
;	'ENTER' OR 'CALL'. ROUTINE IPCGEN
;EDIT 410 FIX 'SEND WITH' DATA-NAME FOR MCS. ROUTINE MESGEN
;EDIT 407 FIX WRITE BEFORE/AFTER FOR STANDARD ASCII FILES. ROUTINES
;	CLEAND, IOGEN
;EDIT 406 SET ERROR RETURN FROM SETOPN IF DATA ITEM HAS ERROR BIT SET.
;	ROUTINE CMNGEN
;EDIT 405 FIX QUALIFICATION OF SUBSCRIPTS. ROUTINES COBOLD, DIAGS
;EDIT 404 FIX COUNT OF ALLOWABLE CHARACTERS IN AN EDITED PICTURE.
;	ROUTINE PSCAN
;EDIT 403 FIX ERRONEOUS 'CLAUSE DUPLICATED' DIAGNOSTIC FOR EDITED NUMERIC
;	FIELDS WITH NO 9S AND A 'BLANK WHEN ZERO' CLAUSE. ROUTINE COBOLC
;EDIT 402 ALLOW INDEX REGISTER AND INDIRECT ADDRESSING FOR ARGUMENT TO 
;	LIBOL. ROUTINES CMNGEN, COBOLG
;EDIT 401 FIX HANDELING OF USE PROCEEDURE IN A DBMS PROGRAM. 
;	ROUTINES CTREE, COBOLG, CLEAND, IMPURE
;EDIT 400 REPLACED BY EDIT 435.
;EDIT 377 FIX MULTIPLE ITEMS IN A GIVING CLAUSE. ROUTINE MATGEN
;EDIT 376 FIX ERROR RECOVERY FOR ERROR IN DIVIDE STATMENT. ROUTINE DTREE
;EDIT 375 FIX LITERAL OVERFLOW IN DBMS 'IF' STATEMENTS. ROUTINE IFGEN
;EDIT 374 FLAG ERROR WHEN SIXBIT LITERAL HAS A NON-SIXBIT CHARACTER IN IT.
;	 ROUTINES IFGEN, CMNGEN, IMPURE, ASCSIX
;EDIT 373 FIX MULTIPLY DEFINED DATANAMES (QUALIFIED) TO ALLOW ALL NEW
;	DEFINITIONS TO BE MARKED. ROUTINE COBOLC
;EDIT 372 MAKE SURE %PARAM IS PUT INTO AS1 FILE FOR DBMS 'IF' STATEMENTS.
;	ROUTINE IFGEN
;EDIT 371 FIX MOVE OF 'TODAY'. ROUTINE MOVGEN
;*** EDITS BELOW ARE IN VERSION 10 RELEASE
; EDIT 370 FIX RETURN FATAL ERROR IN EXPRESSION - EXPGEN -
; EDIT 367 FIX THE MISSING OF LISTING OF ".", "," OR ";" THAT IS IN A
;	LIBARY - EXPGEN -
; EDIT 366 FIX DISPLAY OF DISPLAY-7 ITEMS SO NO EXTRA <CR-LF> IS DONE
;	- IOGEN -
; EDIT 365 FIX MULTIPLE CALLS TO SETOPN FOR TALLY - CMNGEN -
; EDIT 364 DBMS FIX - MAKE ONLY ONE CALL TO DBGETF BECAUSE
;	ONLY ONE INVOKE STATEMENT ALLOWED. - GETITM -
; EDIT 363 FIX RECOVERY IF TOO MANY LEVELS OF SUBSCRIPTING - COBOLD -
; EDIT 362 RECOVER FROM ERROR IN SEARCH STATEMENT - COBOLD -
; EDIT 361 NOT IN V10.
; EDIT 360 FIX EDIT 320 FOR SIMPLE COMPUTE X = -A OR (-A) - IMPURE,
;	EXPGEN -
; EDIT 357 FIX RECOVERY IF RECORD NAME IS NOT DEFINED IN READ
;	INTO STATEMENTS - IOGEN -
; EDIT 356 ALLOW LOWER CASE LETTERS FOR VALUE OF ID - COBOLC -
; EDIT 355 ALLOW FOR 1 BUFFER, ALSO CHECK FOR MAC OF 62 ALTERNATE
;	AREAS - COBOLB, DIAGS -
; EDIT 354 FIX TO HANDLE SOURCE CHAR COUNTER - GETITM -
; EDIT 353 IN DBMS COMPILER AN UNDEFINED IF VARIABLE WAS NOT
;	FLAGED IN THE RIGHT PLACE - COBOLD - (NO SPR)
; EDIT 352 FIX "I/O TO UNASSIGNED CHANNEL" IF A COPY STATEMENT IS THE
;	VERY LAST ONE IN THE SOURCE FILE - GETITM - (SPR 16821)
; EDIT 351 FIX RANDOM CHARACTERS IN HEADING OF LISTING FILE - COBOLF -
;	(SPR 16825)
; EDIT 350 FOR SET OR COMPUTE STATEMENST WHICH ARE KNOWN BY THE COMPILER
;	TO GIVE A ZERO RESULT BE SURE ZERO FLAG IS TURNED OFF -
;	MATGEN, EXPGEN - (NO SPR)
; EDIT 347 MAKE SURE THAT A DUMPED FILE HAS A DIRECTORY NAME -
;	COBOLK - (SPR 16617)
; EDIT 346 FIX BAD TAG LOCATION E.G. ADDRESSES IN FILE TABLES -
;	XFRGEN - (SPR 16493)
; EDIT 345 FIX NO ADVANCING OPTION FOR DISPLAY OF SUBSCRIPTED DISPLAY-7
;	ITEMS - IOGEN - (SPR 16532)
; EDIT 344 FIX "?DSK IS  NOT THE DSK" PROBLEM IF A COBOL COMMAND FILE
;	IS MISSING - COBOLA - (SPR 16515)
; EDIT 343 FIX RECOVERY IF AN "RD" STATEMENT IS IMPROPERLY TERMINATED -
;	CTREE - (SPR 16437)
; EDIT 342 REPORT WRITER FIXES:
;	1.  CHECK TO SEE THAT USER HAS A "LINE" CLAUSE IN A REPORT GROUP.
;	2.  FOR "LINE NEXT PAGE" CLAUSE GOES TO LINE BASED ON REPORT
;		LINE TYPE AND LINE SPECIFICATION IN PAGE LIMIT CLAUSE.
;	- DIAGS, IMPURE, RPWGEN - (SPR 16437)
; EDIT 341 FIX MOVES OF SUBSCRIPTED OR LINKAGE SECTION ITEMS > 2047
;	CHARACTERS - MOVGEN (NO EDIT NUMBERS IN IT) - (SPR 16306)
; EDIT 340 FIX STRING/UNSTRING STATEMENTS IN A SUBPROGRAM AND FOLLOWS
;	AN ENTRY STATEMENT - IMPURE, STRGEN (THIS EDIT NOT IN V10,
;	STRING/UNSTRING WAS REWRITTEN) - (SPR 16265)
; EDIT 337 FIX CTREE TO MAKE THE WORD 'USAGE' BE OPTIONAL IN FRONT OF
;	THE WORD 'DATABASE-KEY' - CTREE.
; EDIT 336 IN COBOLD AT PA283, FIX RECORD NAMES LONGER THAN 12 CHARS
;	CAUSING BAD ARG BLOCK FOR FIND5 DBMS STATEMENT WITHOUT THE
;	OPTIONAL WORD 'RECORD' - COBOLD.
; EDIT 335 FIX RECOVERY IF REPORT ID IS NOT LEGAL - IMPURE, RPWGEN,
;	COBOLC, CTREE, CLEANC - (SPR 16027)
; EDIT 334 FIX UNSTRING STATEMENTS TO ALLOW POINTER AND TALLYING ID
;	TO BE > 9 DIGITS - STRGEN (THIS EDIT NOT IN V10,
;	STRING/UNSTRING WAS REWRITTEN) - (SPR 16175)
; EDIT 333 FIX ADDITIVE FOR TALLY SUBSCRIPT E.G. MOVE A TO X(TALLY+1) -
;	COBOLD, CMNGEN - (NO SPR)

;DEVELOPMENT EDITS
;NAME	DATE		COMMENTS
;DBT	1/17/75		SEARCH INTERM.UNV - COBOL AND LIBOL SWITCH
;			DEFAULT RESOLUTION UNIVERSAL
;
;			ADD  FUUOIC  FLAG TO SW FOR CODE GENERATION
;			PHASE

;
;DBT	12/1/74		REDEFINE REGO TO BE  400000+.JBHSA  THE REAL
;			STARTING ADDRESS
;ACK	12-JAN-75	ADD CAPABILITY TO HAVE DIAGS UP TO 1023.
;SSC	6-FEB-75	MAKE CHANGES FOR THE NEW DBDML MODULE
;			(1) 3 SIMUL CHANNELS
;			(2) NO RECORD TABLE
;GPS	12/23/74	INSERT NEW KEYWORDS FOR SIMULTANEOUS UPDATE
;DBT	4/16/75		FIX IT SO THAT MCS AND DBMS TABLES WORK WITH
;			ANY VARIATION OF SWITCH SETTINGS
;SSC	29-JUL-76	TO ADD KEYWORDS TO COBOL MUST TOUCH HERE AND COBOLA
;			ADD JOURNAL
;SSC	28-SEPT-77	ADD VIA. & TRANS. TO SUPPORT DBMS-V6 ENHANCEMENTS
;	********** VERSION 6A RELEASE **********
; EDIT 332 FIX COBOLE TO CORRECTLY BUILD ARG BLOCK FOR DBMS USE
;		STATEMENT
; EDIT 331 CHECK FOR SCHEMA SECTION BEFORE FILE SECTION OR AFTER ANY
;		OTHER SECTION. IF IT IS OUTPUT ERROR MSG 470
; EDIT 330 FIX CODE TO SKIP OVER DUMMY ARGS IN A CALLED SUBPROGRAM.
;	ROUTINES- CMNGEN,IPCGEN
;	ALSO SKIP ARGUMENT CODE GENERATION IF A FATAL ERROR IN THE PROGRAM
;	(NO SPR)
; EDIT 327 FIX "GO TO" IN AN UNNAMED PARAGRAPH AFTER THE DECLARATIVES. ROUTINE COBOLD.
;	(SPR 13088).
; EDIT 326 MAKE ERROR OR WARNING RELATING TO A "SUM" CONTROL FOOTING LINE POINT TO THE CORRECT SOURCE LINE. ROUTINE RPWGEN
;	(SPR 15917)
; EDIT 325 RECOVER IN A DIVIDE STATEMENT IF THE "GIVING" ITEM IS UNDEFINED. ROUTINE MATGEN.
;	SPR 15932
; EDIT 324 JUMP AROUND DECLARATVES IN AN ENTRY OF A SUBPROGRAM ENTERED AT PROCEDURE DIVISION. ROUTINES COBOLD,IPCGEN,IMPURE
;	(SPR 15824)
; EDIT 323 ALLOW "ALL" AS A DEVICE IN A "SELECT" STATEMENT. ROUTINES GETITM, BTREE
;	(NO SPR)
;EDIT  322 FIX "IF" CONDITIONAL SO THAT ".. COMPILER ERROR" MESSAGE DOES NOT OCCUR BECAUSE OF AN ERROR IN
; 	THE STATEMENT BEFORE. ROUTINE- IFGEN
;	(SPR 15550)
; EDIT 321  FIX RECOVERY WHEN A DATE-NAME IS NOT PROPERLY QUALIFIED IN AN EXPRESSION
;	OF AN "IF" OR "COMPUTE" STATEMENT- ROUTINE EXPGEN
;	(SPR 13825)
; EDIT 320 FIX COMPUTE C = - (EXPR)  ; ROUTINE EXPGEN
;	(NO SPR)
; EDIT 317 FIX ADD GIVING X1,X2,.. WHERE ANY OF GIVING DATA MAY BE EDITED- ROUTINE- MATGEN
;	(SPR 15552)


; [%316] /SSC CLEANUP THE COBOL/DBMS INTERFACE IN A NUMBER OF WAYS:
;	(1) REDO DBDML USING DBCS-LIKE LOGIC RATHER THAN SEQUENTIAL ACCESS
;		INVOLVED ADDING ROUTINES DMLVOK,DMLVIO,DMLIO,DMLERR,GENCOD
;		AND UNIVERSALS GENDCL,DBSDCL,CMLSYM
;		ALSO IT MAKES USER OF STRLIB WITH (HIGH==0)
;		IMPORTANT: THESE ROUTINES ARE ALSO USED BY FORDML
;		THE CONTROL IS PROVIDED BY CMLSYM WHICH SETS $COB==1
;		FOR FORDML THERE IS AN ANALOGOUS FILE FMLSYM.
;	(2) ADD ACCESS STATEMENT--(SIMILAR TO INVOKE).
;		CHANGED CTREE,COBOLC, AND COBOLA AND P
;	(3) ALLOW 30-CHAR SUB-SCHEMA NAMES--CHANGED COBOLC
;	(4) MODIFIED SYNTAX TO ALLOW ONE INVOKE/ACCESS PER RUN-UNIT AND NO PPN'S
; EDIT 315 REPORT WRITER FIXES
; EDIT 314 FIX RECOVERY FROM AN UNDEFINED VARIABLE IN A COMPUTE STATEMENT
;	SPR 15184
; EDIT 313 FIX ERROR MESSAGE FOR UNDEFINED VARIABLE THAT OCCURS
;    IMMEDIATELY AFTER AN "IF". THIS PROBLEM OCCURS ONLY IN A DBMS COMPILER
;	SPR 15299
; EDIT 312 FIX SO THAT ERROR 410 PRINTOUT WORKS FOR ALL ASSEMBLIES OF THE COMPILER.
;	FIX ERROR RECOVERY WHEN AN ALTERABLE PARAGRAPH
;	HAS EXECUTABLE STATEMENTS FOLLOWING THE GO TO.
;	SPR 15196
; EDIT 311 FIX ERROR HANDLING OF ATTMEPTED USE OF STRING AS A PARAGRAPH NAME
;	SPR 15215
; EDIT 310 FIX ERROR CHECKING OF PIC CLAUSES.
;	SPR 15199.
; EDIT 307 FIX CANCEL STATMENT SO THAT "BAD GENFIL " COMPILER MSG DOES NOT OCCUR.
; EDIT 306 FIX SUBSCIPT OF COMP AND INDEX ITEM IN AN ASCII RECORD
;	SPR 14973
; EDIT 305 FIX LINE SPACING PROBLEM IN REPORT WRITER- REQIRES
;	LIBOL EDIT 404 SPR 14927
;EDIT 304 FIX ILL MEM REF IN COMPILER DUMP IN COBOLK
;	SPR 14894
; EDIT 303 FIX MOVES OF NUMERIC LITERALS
;	NO SPR
;EDIT 302 FIX DATE 75 PROBLEM OF SOURCE FILE DATE IN LISTING
; EDIT 301 FIX MOVE OF SINGLE-WORD LITERAL TO 2-WORD SUBSCRIPTED COMP ITEM
;	SPR 14658
; EDIT 300 CHECK FOR RECORD KEY/SYMBOLIC KEY IN LINKAGE SECTION-FLAG AS ERROR IF SO
;	SPR 14657
; EDIT 277 FIX TO HANDLE LC LETTERS FOR OBJECT/ SOURCE COMPUTER STATEMENTS
;	SPR 14640
; EDIT 276 CHECK THAT DATA NAME IS A RECORD LEVEL FOR WRITE/REWRITE/DELETE/RELEASE STATMENTS
;	SPR 14559
; EDIT 275 RECOVER FROM A LIBARY READIN PROPERLY
;	SPR 14580
; EDIT 274 MAKE CMNGEN IN COBOLE RECOVER CORRECTLY IF A LITERAL SUBSCRIPT IS TOO LARGE
;	NO SPR.
; EDIT 273 FIX BAD LITAB CODE CAUSED BY DBMS IF STATEMENT PROCESSING
;          FIXED IN COBOLD(PA265A) AND IFGEN(IFDBGN).  /DPL
; EDIT 272 REMOVE LINPAG DEFINITION FROM COBOLK.MAC
; EDIT 271 FIX PHASE D CATASTROPHIE IF NO PARA NAME IMMEDIATELY AFTER SECTION NAME
;EDIT 270 PREVENT EXTRA ERROR MESSAGE IF VALUE OF IS UNDEFINED
;	SPR 14462
;EDIT 267 FIX ILL MEM REF IN NAMTAB TABLE SEARCH
;	SPR 14462
;EDIT 266 SHUT OFF USERS CONTROL O EFFECT FOR ERROR SUMMARY LINE AND COMMAND "*" PROMPT
;	SPR 14380
; EDIT 265 ALLOW FIGURATIVE CONSTANT "ZERO" IN "BY" AND "FROM"  PARM IN "PERFORM" STATEMENT
; 	SPR 14378
; EDIT 264  FIX ILL MEM REF IN PHASE C IF ACTUAL KEY FOR RANDOM FILE IS UNDEFINED
; 	SPR 14318
; EDIT 263 MAKE LISTING RECOGNIZE TALLY FOR DIAGNOSTIC MESSAGES
;	SPR 14252
; EDIT 262 FIX HANDLING OF UNDEFINED SUBSCRIPT TO AVOID COMPILER-TYPE ERROR MESSAGES.
;	SPR NONE
;EDIT 261  FIX ILL MEM REF FOR NAMTAB TABLE SEARCHES- FOR ENTRY STATEMENTS USUALLY
; 	SPR 14181
; EDIT 260 FIX 01 DATAN ..
;	SPR 14181
; EDIT 257  FIX RELEASE AND RETURN SO THAT PARMS ARE ONLY IN SORT FILE 
; SPR 14002
;EDIT 256 REVERSE ORDER OF LOOKUP FOR SOURCE AND LIBARY FILES
;	SO THAT .CBL (.LIB) IS LOOKED FOR FIRST
;  SPR 14203
; EDIT 255 FIX TO ALWAYS ACCEPT LC LETTERS IN COMMAND STRING
;	SPR 14176
; EDIT 254 PREVENT INDIRECT BIT BEING TURNED FOR COMP USING ARG AT WRONG TIME
;	SPR 14174
; EDIT 253  FIXES A RENAMES B.
;	SPR 14164
; EDIT 252 FIXES POSSIBLE PUSHDOWN LIST PROBLEM OF EDIT 122
;	SPR 14254
; EDIT 251 RECOVERS PROPERLY IN PHASE E IF A SUBSCIPT IS SUBSCRIPTED
;	SPR 12798
; EDIT 250 FIX SO THAT TALLY CAN BE USED FOR ARITH AND SET OPERATIONS
;	AND ALSO ALLOWS TALLY TO A USED AS A SUBSCRIPT SPR 13392.
; EDIT 247 FLAGS ATTEMPT TO USE SUBSCIPTED ITEMS IN REPORT WRITER
;  SPR 13795
; EDIT 246 FIXES MULTIPLE CALLS TO SUBPROGRAMS OF FORM CALL "SUB"
;	COBOLD SPR 13377.
; EDIT 245 FIXES READ INTO SO INTO WORKS IF GENERATE STMT PART
;	OF AT END OR INVALID PATH SPR 13682
;EDIT 244 FIXES TO DETECT AS AN ERROR AN ELSE AFTER A PERIOD
;	SPR 13684
; EDIT 243  FIXES OCCURS 0 TO N. ALLOWS THE 0. SPR 13672
; EDIT 242 ALLOWS SUBSCRIPTING OF ITEMS QUALIFIED BY FILE NAME
;	SPR 13634
; EDIT 241 FIXES REPORTING OF GROUP INDICATE SOURCE ITEMS; DOES NOT
;	FIX GI VALUE ITEMS (COMPLEX). IN RPWGEN. SPR 11071.
; EDIT 240 SEARCH  FIXES SEARCH ID WITH QUALIFIER CAUSE CRASH IN PHASE E
;	COBOLD
; SPR 13669
;[237] /JEF	COBOLC .MAC, DIAGS.MAC	QAR-2918
;		IDENTIFIERS GIVEN IN THE CONTROL CLAUSE MUST BE
;		DEFINED ONLY IN THE FILE AND WORKING STORAGE SECTIONS.
;******* THOSE BELOW WILL BE IN RELEASE VERSION 6.

;[222] /ACK	IN COBOLD.MAC @ PA1., PA47., PA96., PA98., PA99.,
;		  PA100., PA200. AND IN IMPURE.MAC @ THE DEFINITION OF
;		  VARBLK.
;	FIX THE NULL TABLE LINK PROBLEM FOR THE CORRESPONDING OPTION
;	  AND PERFORM VARYING'S.
;[221] /ACK	IN DTREE.MAC @ PD1035
;	ALLOW SUBSCRIPTED VARYING ON SEARCHES.
;[220] /ACK	IN COBOLC.MAC @ DA110A+3 AND DIAGS.MAC ADD ERROR 151.
;	GENERATE AN ERROR IF A MINOR KEY IS THE SUBJECT OF AN
;	 OCCURS.
;[217] /ACK	IN IFGEN.MAC @ IFCG20+13
;	FIX FATAL DIAG PRODUCED IN A VALID PROGRAM.
;[216] /ACK	IN CTREE.MAC @ $ DD205G
;	PREVENT SKIPPING EVERYTHING IF AN RD IS TERMINATED WITH A DOUBLE
;	 PERIOD.
;215 /JEF	COBOLC/DIAGS ERROR IF HEADING < FIRST-DETAIL < LAST-DETAIL < FOOTING.
;214	COBOLD - CHANGE FATAL TO WARNING IF MORE THAN 6 CHARS IN SUBPROGRAM NAME
;213	DISALLOW COPY IN LIBARY; FIX LITERAL TOO MANY CHARS MSG
;212	"CANCEL IS NOT IMPLEMENTED YET..."
; EDIT 202 REPORT WRITER FIX OF GENERATE STATEMENT CAUSING RUN TIME
;	ILLEGAL UUO, RPWGEN
; SPR 13390

;ACCUMULATORS

SW=0		;SWITCHES
LN=1		;ASSIGNED SOURCE LINE NUMBER
CP=2		;CHARACTER POSITION WITHIN SOURCE LINE
DT=3		;ADDRESS OF A TABLE ENTRY
CH=4		;I/O CHARACTER
DW==CH		;DIAGNOSTIC WORD

W1=6		;FIRST OUTPUT WORD FROM I/O
W2=7		;SECOND OUTPUT WORD FROM I/O

TE=12		;TEMP
TD=13		;TEMP
TC=14		;TEMP
TB=15		;TEMP
TA=16		;TEMP

PP=17		;PUSH-DOWN POINTER



;ACCUMULATORS USED BY PHASE A

DA==LN		;ADDRESS OF A DEVICE TABLE
DC==CP		;A DEVICE CHANNEL NUMBER

I0==5		;UUO TO BE EXECUTED
I1==6		;UUO PARAMETER
I2==I1+1	;UUO PARAMETER
I3==I2+1	;UUO PARAMETER
I4==I3+1	;UUO PARAMETER



;ACCUMULATORS USED BY "GET SOURCE" ROUTINES

CT=10		;CHARACTER COUNTER IN "GETWRD"; TYPE CODE FROM "GETITM"
LC=11		;LITERAL CHARACTER COUNTER IN "GETWRD"
PA==TA		;BYTE POINTER USED IN "GETWRD"
PB==TB		;BYTE POINTER USED IN "GETWRD"
;ACCUMULATORS USED BY PHASES B, C, D

NODPTR==3	;INTEGRITY GUARANTEED
SAVPTR==5	;INTEGRITY GUARANTEED
TYPE==10	;GETITM OUTPUT TYPE CODE
NODE==TB
NSONS==TC
SON==TD
SONADR==TE



;ACCUMULATORS USED BY PHASE E

EACA=DT
EACB=5
EACC=10
EACD=11



;ACCUMULATORS USED DURING PHASE G

OP=5		;POINTS TO AN ENTRY IN THE OP-TABLE
RB=CP		;BYTE POINTER TO NEXT PLACE TO PUT RELOCATION BITS
GP=LN		;IOWD TO NEXT LOCATION TO STASH A BINARY OUTPUT WORD
PC=11		;PROGRAM COUNTER
;I/O CHANNEL NUMBERS
TTY==1		;USER'S CONSOLE
SRC==2		;SOURCE
LST==3		;LISTING
BIN==4		;BINARY
LIB==5		;LIBRARY FOR COPY VERB

NAM==6		;NAMFIL
ERA==7		;ERAFIL
GEN==10		;GENFIL
CPY==11		;CPYFIL
AS1==12		;AS1FIL
AS2==13		;AS2FIL
AS3==14		;AS3FIL
LIT==15		;LITFIL
CRF==16		;CRFFIL

FSC==NAM	;FIRST SCRATCH CHANNEL
LSC==CRF	;LAST SCRATCH CHANNEL
ASY==AS1

COM==17		;COMMAND FILE ON DISK

SF1==SRC	;SCRATCH FILE FOR CREF SORT
SF2==BIN	;SCRATCH FILE FOR CREF SORT
SF3==LIB	;SCRATCH FILE FOR CREF SORT

;[%316] THE DBMS CHANNELS (DB NAMES REFFED IN COBOLD)

	IFN DBMS,<
DBCHAN==0		;DBMS CHANNEL!!!
DBCHN2==1		;SECOND DBMS CHANNEL
SKECHN==0		;[%316] SCHEMA CHANNEL (INPUT)
RELCHN==1		;[%316] FILE THAT GETS (ASCII) PROCED. CODE
VOKCHN==AS3		;[%316] FOR DCL'S
	>

;UUO'S USED

$RESET==0	;RESET
$DEVCH==4	;DEVCHR
$WAIT==10	;WAIT FOR I/O
$CORE==11	;CORE
$EXIT==12	;EXIT
IFE TOPS20,<
$CLEAR==13	;UTPCLR
>
$DATE==14	;DATE
$APREN==16	;APRENB
$TIME==23	;MSTIME
$RTIME==27	;RUNTIM
$PJOB==30	;PJOB
$RUN==35	;RUN
$GTSEG==40	;GETSEG
$TMPCR==44	;TMPCOR
;MONITOR COMMUNICATION

$BIN==1B23	;DEVICE CAN WRITE BINARY

$OUT==1		;DEVICE CAN DO OUTPUT
$IN==2		;DEVICE CAN DO INPUT
$DIREC==4	;DEVICE HAS A DIRECTORY
$TTY==10	;DEVICE IS A TTY
$MTA==100	;DEVICE IS A MAG-TAPE
$DTA==100	;DEVICE IS A DEC-TAPE
$LPT==40000	;DEVICE IS A LINE-PRINTER
$CDR==100000	;DEVICE IS A CARD-READER
$DSK==200000	;DEVICE IS A DISK
$AVAIL==40	;DEVICE IS AVAILABLE
$CONSL==10000	;DEVICE IS A CONSOLE

$REW==1		;REWIND MTA
$ERAS==740000	;DEVICE ERROR FLAGS
$EOT==2000	;END OF MAG-TAPE

$PPOVF==200000	;ENABLE PUSH-DOWN OVERFLOW TRAP
$ILMEM==20000	;ENABLE ILLEGAL MEMORY REFERENCE TRAP
$NONEX==10000	;ENABLE NON-EXISTENT MEMORY TRAP

$APRF==$PPOVF!$ILMEM!$NONEX

$CLS40==40	;CLOSE DISCARDING NEW FILE, KEEPING OLD
;FLAGS SET IN ACCUMULATOR "SW"

FTERA==1B0		;TYPE ERRORS ON CONSOLE
FCOPY==1B1		;"COPY REPLACEMENT" IN PROGRESS
FNOLST==1B2		;NO LISTING
FRLIB==1B3		;WE ARE READING LIBRARY FILE
FOBJEC==1B4		;LIST OBJECT CODE IF 0
FFATAL==1B5		;THERE IS A FATAL ERROR
FMAP==1B6		;MAPS REQUESTED
FEOF==1B7		;END OF SOURCE
FESRC==1B8		;NO MORE SOURCE FILES IN THIS COMMAND
FECOM==1B9		;END OF COMMAND FILE
FSYNER==1B10		;ERROR OCCURRED IN SYNTAX
FECOPY==1B11		;FINISH UP COPY FILE
FREENT==1B12		;OBJECT PROGRAM IS TO BE RE-ENTRANT
FSEQ==1B13		;SOURCE IS SEQUENCED
FNOCPY==1B14		;DO NOT PUT OUT CPYFIL CHARACTER
FDSKC==1B15		;COMMANDS TAKEN FROM DISK
FDEBUG==1B16		;ACTIVATE "EXHIBIT"
FNDTRC==1B16		;TRACE SYNTAX NODES
FLTTY==1B17		;LISTING FILE IS TTY



;BITS IN RH USED BY COMMAND SCANNER

FCOMCH==1B18		;REGET A COMMAND CHARACTER
FCOMWD==1B19		;REGET A COMMAND WORD
FHELP==1B20		;TYPE HELP MESSAGE



;BITS IN RH OF "SW" USED BY "GET SOURCE" ROUTINES

FREGCH==1B18		;REGET PREVIOUS SOURCE CHARACTER
FREGWD==1B19		;REGET PREVIOUS SOURCE WORD
FGTPER==1B20		;GETWRD RETURNS A PERIOD
FLETTR==1B21		;WORD CONTAINS A NON-DIGIT
FGTMIN==1B22		;GETWRD RETURNS A MINUS OR HYPHEN
FNCOFF==1B23		;TURNED OFF FNOCPY SWITCH
FRTST==1B24		;MAKING TEST FOR REPLACEMENT MATCH
FARITH==1B25		;ARITHMETIC EXPRESSIONS ARE LEGAL
FALIT==1B26		;WE ARE PROCESSING AN ALPHA LITERAL
FPERWD==1B27		;RETURN A NON-EXISTENT PERIOD
FNEEDS==1B28		;A SPACE IS REQUIRED ON SOURCE

FGETST==FPERWD!FREGWD!FGTPER!FGTMIN
;BITS IN RIGHT-HALF OF "SW" USED BY ID&ED SCANS

FOBJCP==1B31		;OBJECT-COMPUTER PARAGRAPH SEEN
FOPT==1B32		;THIS FILE IS OPTIONAL
FSAME==1B33		;PARSING A "SAME RECORD AREA"
FSTAT==1B34		;PARSING A "SWITCH ON STATUS"
FSPNAM==1B35		;SPECIAL-NAME PARAGRAPH ENCOUNTERED



;BITS IN RIGHT-HALF OF "SW" USED BY DD SCAN

FFILSC==1B29		;CURRENTLY PROCESSING FILE SECTION
ELITEM==1B30		;ALLOCATING AN ELEMENTARY ITEM
CONVRT==ELITEM
FSIGN==1B30		;PICTURE HAS A SIGN
FFLOAT==1B31		;PICTURE CONTAINS FLOATING
FEDIT==1B32		;PICTURE HAS EDITING SYMBOLS
FBWZ==1B33		;PICTURE HAS FLOATING OR SUPPRESSION AFTER POINT

			;THE FOLLOWING TWO FLAGS MUST BE IN 34&35
FCLAS1==1B34		;ITEM HAS NUMERIC CHARACTERS
FCLAS2==1B35		;ITEM HAS ALPHABETIC CHARACTERS
;BITS IN RIGHT-HALF OF "SW" USED BY PD SCAN

FNOSUB==1B31	;NO SUBSCRIPTS ALLOWED
FEXPR==1B32	;CURRENTLY PROCESSING AN EXPRESSION
UNCONT==1B33	;LAST STATEMENT WAS AN UNCONDITIONAL TRANSFER
FNOTF==1B34	;"NOT" FLAG FOR CONDITIONALS
INDECL==1B35	;CURRENTLY INSIDE DECLARATIVES



;BITS IN RIGHT-HALF OF "SW" USED BY CODE GENERATOR

FAS3==1B18	;WE ARE GENERATING CODE FOR A NON-RESIDENT SECTION
FUUOIC==1B19	;UUO TO BE CONVERTED HAS AN INCREMENT FOLLOWING
FADJDV==1B20	;SHIFT DIVIDE OPERANDS TO MATCH RESULT
FBIGCV==1B21	;CONVERT TO FLOATING POINT IF NUMBER TOO BIG
FSZERA==1B22	;SIZE ERROR
FROUND==1B23	;ROUND THE RESULT

FAINAC==1B24	;"A" IS CURRENTLY IN THE AC'S
FSDAT==1B25	;SUBSCRIPT HAS OTHER THAN NUMERIC LITERALS
FALWY0==1B26	;ACCUMULATOR CONTAINS ZEROES
FASIGN==1B27	;"A" OPERAND IS SIGNED
FBSIGN==1B28	;"B" OPERAND IS SIGNED
FANUM==1B29	;"A" OPERAND IS NUMERIC
FBNUM==1B30	;"B" OPERAND IS NUMERIC
FASUB==1B31	;"A" OPERAND IS SUBSCRIPTED
FBSUB==1B32	;"B" OPERAND IS SUBSCRIPTED
FLNEG==1B33	;LITERAL IS NEGATIVE
FLITDP==1B34	;LITERAL HAS A DECIMAL POINT
FERROR==1B35	;A FATAL ERROR HAS OCCURRED

FEOFF1==377777	;FLAGS TURNED OFF AT START OF EACH GENERATOR
FEOFF2==FALWY0!FLNEG!FLITDP!FERROR



;BITS IN RIGHT-HALF OF "SW" USED BY LISTING PHASE

FERALN==1B18	;CURRENT LINE HAS DIAGNOSTICS
FLWARN==1B19	;WE ARE PUTTING OUT WARNING DIAGS AT END



;BITS IN RIGHT-HALF OF "SW" USED BY ASSEMBLER

FASPAR==1B18	;A PARAGRAPH NAME HAS BEEN PRINTED FOR CURRENT LOCATION
FASSEG==1B19	;CURRENTLY PROCESSING NON-RESIDENT SEGMENT

FASEXT==1B21	;CURRENTLY LISTING AN EXTERNAL-NAME
FGDEC==1B22	;DECIMAL INCREMENTS ALLOWED
FRELOC==1B23	;ASSEMBLING CODE FOR RELOCATABLE SECTION OF PROGRAM
FSRTIO==1B24	;THERE ARE SOME CREF SORT FILES OPEN
FGNEG==1B25	;NEGATIVE INCREMENT POSSIBLE
;FLAGS IN LEFT HALF OF "W1" DURING ASSEMBLY (WORD 1 OF ASYFIL)

ASINC==200000	;INCREMENT WORD FOLLOWS OPERATOR
ASCASC==40000	;ASCII CONSTANT
ASCSIX==20000	;SIXBIT CONSTANT
ASCD1==10000	;1-WORD DECIMAL CONSTANT
ASCD2==4000	;2-WORD ASCII CONSTANT
ASCFLT==2000	;FLOATING POINT CONSTANT
ASCOCT==1000	;OCTAL CONSTANT
ASCEBC==400	;EBCDIC CONSTANT.
ASCON==ASCASC!ASCSIX!ASCD1!ASCD2!ASCFLT!ASCOCT!ASCEBC

ASPARN==40000	;MISCELLANEOUS IS PARAGRAPH OR SECTION NAME
ASTAGN==20000	;       "      IS TAG NAME
ASREL==10000	;       "      IS "RELOC"
ASENTN==4000	;	"      IS ENTRY POINT
ASSMSC==2000	;	"      IS A SPECIAL MISCELLANEOUS ITEM.
ASACS==1000	;	"	IS ALTERNATE CODE SET


ASMACS==700000+ASACS		;PUT IN ASY FILE TO SIGNAL NEXT INST IS ALTERNATE



;FLAGS USED IN BITS 0-8 OF "W1" DURING "GETSRC"

GWNOT==1B18		;NOT IN NAMTAB
GWLIT==1B19		;DATUM IS A LITERAL
GWRESV==1B20		;DATUM IS A RESERVED WORD
GWSIGN==1B21		;LITERAL HAS A LEADING SIGN
GWDP==1B22		;LITERAL HAS A DECIMAL POINT
GWNLIT==1B23		;LITERAL IS NUMERIC
GWHYF==1B24		;WORD HAS A HYPHEN
GWALL==1B25		;ALL  (SET OUTSIDE OF GETWRD)
GWFIGC==1B26		;FIGURATIVE CONSTANT  (SET OUTSIDE OF GETWRD)
GWASCI==1B20		;LITERAL CONTAINS CHARACTER NOT IN SIXBIT RANGE



;FLAGS USED IN "W2" DURING "GETITM" AND "PUTCRF"

GWDEF==1B18	;THIS IS A DEFINITION (LEFT-HALF)



;FLAGS IN LH OF "W2" DURING PD SCAN

GWFLO==1B18		;THERE IS A FLOTAB ENTRY FOR THIS ITEM (SET OUTSIDE OF GETWRD)
;ACCUMULATORS FOR CODE GENERATION

AC0==0B30
AC1==1B30
AC2==2B30
AC3==3B30
AC4==4B30
AC5==5B30
AC6==6B30
AC7==7B30
AC10==10B30
AC11==11B30
AC12==12B30
AC13==13B30
AC14==14B30
AC15==15B30
AC16==16B30
AC17==17B30

SAC==AC12	;DEFAULT AC FOR SUBSCRIPTING
SXR==12		;INDEX USED FOR SUBSCRIPTING
KAC==AC2	;ACCUMULATOR USED TO HOLD A FIG. CONST.

;MISC OPERATOR FLAGS FOR CODE GENERATOR (LEFT HF OF W1)

GWFL9==1B9
GWFL10==1B10
GWFL11==1B11
GWFL12==1B12
GWFL13==1B13
GWFL14==1B14
GWFL15==1B15

;ARG TYPES (AS OF FEB 1973 CALLING SEQUENCE)

ARG1WB==2B12	;1-WORD BINARY
ARG2WB==11B12	;2-WORD BINARY
ARG1FP==4B12	;1-WORD FLOATING POINT
ARGPAD==7B12	;PROGRAM ADDRESS
ARGBSD==15B12	;BYTE STRING DESCRIPTOR
ARGHWA==20B12	;HALF-WORD ARRAY DESCRIPTOR
;FLAGS IN FIRST WORD OF NAMTAB ENTRY

NAMRSV==1B2



;FLAGS IN LH OF FIRST WORD OF LITERAL OPERAND FOR GENFIL

GNLIT==1B19
GNNUM==1B20
GNFIGC==1B21
GNTODY==1B26
GNTALY==1B27
GNFCS==1B28
GNFCZ==1B29
GNFCQ==1B30
GNFCHV==1B31
GNFCLV==1B32
GNALL==1B33
GNFCFL==GNTODY!GNTALY!GNFCS!GNFCZ!GNFCQ!GNFCHV!GNFCLV

;INDEX FOR DATE, DAY, TIME - ANS-74 REPLACEMENT FOR TODAY
GNDATE==1B25
GNDAY== 2B25
GNTIME==3B25

GNOPNM==1B<^D18+7>	;NON-LITERAL IS NUMERIC
GNNOTD==1B<^D18+5>	;ITEM IS NOT A DATA-NAME (LH OF SECOND WORD)
GNROUN==1B19	;ROUND RESULT (IN LH OF WORD 2 OF OPERAND)
GNSERA==1B28	;SIZE ERROR (IN LH OF WORD 1 OF OPERATOR)

;GENFIL OPERAND FLAGS

LKSFLG==1B9	;OPERAND IS IN LINKAGE SECTION



;VARIOUS OTHER FLAGS

DWFATL==1B25		;FATAL FLAG IN DIAG WORD
DWIMBD==200000		;DO NOT IMBED DIAGNOSTIC MESSAGE IN LISTING
;GENERAL MACRO CALLS

;GENERAL "SW" TESTER

	DEFINE SWTEST (A,B),<
	IFLE A-777777,<TR'B SW,A>
	IFG A-777777,<
	IFE A&777777,<TL'B SW,(A)>
	IFN A&777777,<TD'B SW,[A]>
	>
	>

DEFINE SWON (A),<SWTEST A,O>	;TURN ON FLAGS
DEFINE SWOFF (A),<SWTEST A,Z>	;TURN OFF FLAGS
DEFINE TSWC (A),<SWTEST A,C>	;COMPLEMENT FLAG
DEFINE TSWF (A),<SWTEST A,NE>	;TEST FLAG AND SKIP IF OFF
DEFINE TSWT (A),<SWTEST A,NN>	;TEST FLAG AND SKIP IF ON
DEFINE TSWFZ (A),<SWTEST A,ZE>	;CLEAR FLAG, SKIP IF IT WAS OFF
DEFINE TSWTZ (A),<SWTEST A,ZN>	;CLEAR FLAG, SKIP IF IT WAS ON
DEFINE TSWFS (A),<SWTEST A,OE>	;SET FLAG, SKIP IF IT WAS OFF
DEFINE TSWTS (A),<SWTEST A,ON>	;SET FLAG, SKIP IF IT WAS ON
DEFINE TSWFC (A),<SWTEST A,CE>	;COMPLEMENT FLAG, SKIP IF IT WAS OFF
DEFINE TSWTC (A),<SWTEST A,CN>	;COMPLEMENT FLAG, SKIP IF IT WAS ON
DEFINE SWONS (A),<SWTEST A,OA>	;SET FLAG AND ALWAYS SKIP
DEFINE SWOFFS (A),<SWTEST A,ZA>	;CLEAR FLAG AND ALWAYS SKIP

	DEFINE REGO <.JBHSA##+400000>	;STARTING ADDRESS

	DEFINE SETFAZ (X),<
		INTERNAL COBOL'X
	MOVEI	TA,"'X'"
	MOVEM	TA,PHASEN
	MOVE	PP,PPOINT
	EXTERNAL PHASEN, PPOINT, IMPURE
	IFDIF <X><O>< EXTERNAL PURE'X> ;THERE IS NO PUREO



IFDIF <X><B><IFDIF <X><G><
	EXTERNAL KILL,REDO,RESTRT,WEDIED,XPNPPL,UUOCAL

	MOVEI	TA,KILL
	MOVEM	TA,WEDIED+1
	MOVEI	TA,REDO
	HRRM	TA,.JBSA##
	MOVEI	TA,RESTRT
	HRRM	TA,.JBREN##
	MOVE	TA,[PUSHJ PP,UUOCAL]
	MOVEM	TA,.JB41##
	MOVEI	TA,XPNPPL
	HRRM	TA,.JBAPR##
	MOVEI	TA,$APRF
	CALLI	TA,$APREN
	>>

	IFN DEBUG,<EXTERNAL %'X'TIME,%R'X'TIM
	IFE TOPS20,<EXTERN	DDT>
	IFDIF <X><A><IFDIF <X><G><IFDIF <X><B><
	TTCALL	3,[ASCIZ "PHASE X
"]
>>>
	CALLI	TA,$TIME
	MOVEM	TA,%'X'TIME
	MOVEI	TA,0
	CALLI	TA,$RTIME
	MOVEM	TA,%R'X'TIM
>>
DEFINE ENDFAZ (X),<

	IFN DEBUG,<EXTERNAL CORESW,KILL,KILLF,%'X'TIME,%R'X'TIM

	IFDIF <X><O>,< EXTERNAL %KILL'X,%KILF'X>

	IFDIF <X><G><
	MOVEI	TA,0
	CALLI	TA,$RTIME
	MOVEM	TA,%R'X'TIM+1
	CALLI	TA,$TIME
	MOVEM	TA,%'X'TIME+1
	IFDIF <X><O><
	MOVE	TA,CORESW
	TLNE	TA,%KILL'X
	JRST	KILL
	TLNE	TA,%KILF'X
	JRST	KILLF
	>>>

	IFIDN <X><A><EXTERNAL COBOLB
	JRST	COBOLB>
	IFIDN <X><B><EXTERNAL COBOLC
	JRST	COBOLC>
	IFIDN <X><C><EXTERNAL COBOLD
	JRST	COBOLD>
	IFIDN <X><D><EXTERNAL COBOLE
	JRST	COBOLE>
	IFIDN <X><E><EXTERNAL COBOLF
	SKIPN	OPTSW##
	 JRST	COBOLF
	JRST	COBOLO##>
	IFIDN <X><F><EXTERNAL COBOLG
	JRST	COBOLG>
	;NOTE THAT THERE IS NO ENTRY FOR "G", THAT'S TAKEN CARE OF IN COBOLG
	;NOTE THAT THERE IS NO ENTRY FOR "O" -- TAKEN CARE OF IN COBOLO
	>

;TABLE DEFINITIONS

;PARAMETER 1 -  MNEMONIC FOR A TABLE
;	   2 -  INITIAL TABLE SIZE
;	   3 -  AMOUNT TO EXPAND, IF NECCESSARY
;	   4 -  NAME, FOR LISTING PURPOSES
;	   5 -  CODES FOR CLEANING TABLES AFTER PHASE D:
;		0 - LEAVE TABLE EMPTY
;		1 - THROW AWAY EMPTY WORDS
;		2 - LEAVE TABLE AS IS
;	   6 - CODES FOR CLEANING TABLES AT START OF PHASE F
;		SAME AS PARAMETER 5.

	DEFINE TABLES,<
	XLIST
	TABSET NAM,900,0,NAMTAB,2,2
	TABSET SEC,200,10,SECTAB,2,2
	TABSET DAT,800,600,DATAB,1,2
	TABSET PRO,200,150,PROTAB,1,2
	TABSET FIL,150,50,FILTAB,1,2
	TABSET MNE,40,10,MNETAB,1,2
	TABSET CON,50,100,CONTAB,1,2
	TABSET RPW,2,100,RPWTAB,1,0
	TABSET EOP,50,20,EOPTAB,2,0
	TABSET ALT,20,20,ALTAB,2,2
	TABSET EXT,500,50,EXTAB,2,1
	TABSET VAL,100,200,VALTAB,1,0
	TABSET LIT,500,200,LITAB,2,2
	TABSET TAG,300,100,TAGTAB,2,1
	TABSET TEM,12,10,TEMTAB,0,0
	TABSET FLO,200,200,FLOTAB,1,2
	TABSET RES,20,10,RESTAB,2,0
	TABSET CPY,30,30,CPYTAB,0,0
	TABSET HLD,50,20,HLDTAB,1,0
IFN DBMS,<
	TABSET USE,2,10,USETAB,1,0
	TABSET DBD,^D600,^D200,DBDTAB,0,0
	>
IFE DBMS,<
	TABSET USE,1,1,USETAB,1,0	;;[572] MAKE SIZE NON-ZERO
	TABSET DBD,1,1,DBDTAB,0,0	;;[572] MAKE SIZE NON-ZERO
	>
IFN MCS!TCS,<
	TABSET CD,200,100,CDTAB,2,2
	>
IFE MCS!TCS,<
	TABSET CD,1,1,CDTAB,2,2		;;[572] MAKE SIZE NON-ZERO
	>
	TABSET CRF,2,1000,CRFTAB,0,0
	LIST

	>
;SYNTAX NODE MACRO
;USED TO DEFINE NODES IN THE SYNTAX TREE

IFN ANS68,<
DEFINE	$68(NAME,ACTION,ITMTYP,PD,AMARGN,SONS)<
$ (NAME,ACTION,ITMTYP,PD,AMARGN,SONS)
>
DEFINE	$74(NAME,ACTION,ITMTYP,PD,AMARGN,SONS)<>
>
IFN ANS74,<
DEFINE	$68(NAME,ACTION,ITMTYP,PD,AMARGN,SONS)<>
DEFINE	$74(NAME,ACTION,ITMTYP,PD,AMARGN,SONS)<
$ (NAME,ACTION,ITMTYP,PD,AMARGN,SONS)
>
>

DEFINE $ (NAME,ACTION,ITMTYP,PD,AMARGN,SONS)<
IFE PD,<
IFDIF <ACTION><0>,<IFNDEF ACTION,<EXTERN ACTION>>
	>
NS.==-1
IRP SONS<NS.==NS.+1>
IFE NS.,<
IFIDN <SONS><0><NS.==-1>
	>
	INTER. NAME
IFN DEBUG,<XLIST>
NAME':	XWD ACTION,NS.*1B23+'PD'*1B24+'AMARGN'*1B25+'ITMTYP
	XLIST
IFGE NS.,<BYTE	(18)SONS>
	LIST
	>

DEFINE	WERRS(PHASE,N1,N2)<
ERRNO.==N1
REPEAT N2'-'N1'+1,<
	WERR	PHASE,ERRNO.,\ERRNO.
ERRNO.==ERRNO.+1
	>
	>

DEFINE	WERR(PHASE,N,NUMBER)<
PHASE'E'NUMBER'.==:N	;DIAGNOSTIC NUMBER (INTERN)
	>
;
;DEFINE	ENTR.(NAME)<
;ENTRY	NAME
;IFN DEBUG,<SIXBIT /NAME/>
;	>

DEFINE	INTER.(NAME)<
INTERN	NAME
IFN DEBUG,<SIXBIT /NAME/>
	>

DEFINE	SKPNAM<
IFN DEBUG,<JRST	.+2>
	>
;TABLE CODES

CD.FIL==0
CD.DAT==1
CD.CON==2
CD.LIT==3
CD.PRO==4
CD.EXT==5
CD.VAL==6
CD.MNE==7
CD.FLO==10
CD.IMP==0
CD.TAG==5
CD.CPY==11
CD.HLD==12
CD.RPW==13
IFN DBMS,<
CD.USE==14
CD.DBD==15		;[%316] TABLE NUMS MUST BE CONSECUTIVE
>
IFN MCS!TCS,<
CD.CD==16
>

CD.TEM==17		; [415] USE TEMTAB TABLE
;TABLE ENTRY SIZES

IFN ANS68,<
SZ.FIL==30	;SIZE OF FIXED PORTION OF FILE TABLE DURING COMPILATION.
>
IFN ANS74,<
SZ.FIL==31
>
SZ.DAT==7
SZ.CON==2
SZ.LIT==1
IFN ANS68,<SZ.PRO==4>
IFN ANS74,<SZ.PRO==5>
SZ.EXT==2
SZ.VAL==777777
SZ.MNE==2
SZ.FLO==2
SZ.DEV==40	;SIZE OF CHANNEL TABLE IN OBJECT CODE.
SZ.OFT==37	;SIZE OF FIXED PORTION OF FILE TABLE IN OBJECT CODE.
SZ.OUS==17
SZ.MSK==4
SZ.CPY==2
SZ.HLD==2
SZ.RPD==13
SZ.RPC==3
SZ.RPG==5
SZ.DOC==2
SZ.USE==1
SZ.DBD==^D9			;[%316] CHANGED SIZE
;[%316] (MADE A COMMENT) SZ.DBR==13
SZ.CD==^D8
SZ.TEM==1		; [415] NORMALLY ONE WORD PER TEMTAB ENTRY
SZ.TM2==2		; [415] TWO WORD TEMTAB ENTRY
; FILTAB ENTRY CODES

;CODES FOR RECORDING MODE

%RM.6B==0	;SIXBIT
%RM.BN==1	;BINARY
%RM.7B==2	;ASCII
%RM.EB==3	;EBCDIC
%RM.SA==4	;STANDARD (8 BIT) ASCII.

;EXTERNAL RECORDING MODE FLAG

%RM.DC==1	;RECORDING MODE HAS BEEN DECLARED

;INTERNAL RECORDING MODE

%%RM==7		;NOT YET DECLARED

;CODES FOR RECORDING DENSITY

%RD.2==1	;200 BPI
%RD.5==2	;556 BPI
%RD.8==3	;800 BPI
%RD.16==4	;1600 BPI
%RD.62==5	;6250 BPI

;CODES FOR RECORDING PARITY

%RP.OD==1	;ODD
%RP.EV==2	;EVEN

;CODES FOR TYPE OF LABELS

%LBL.O==0	;OMITTED
%LBL.S==1	;STANDARD
%LBL.N==2	;NON-STANDARD
%%LBL==3	;NOT SPECIFIED

;CODES FOR ORGANIZATION MODE

%ACC.S==0	;SEQUENTIAL
%ACC.R==1	;RANDOM
%ACC.I==2	;INDEXED SEQUENTIAL
%%ACC==3	;NOT SPECIFIED

;[74] CODES FOR ACCESS MODE

%FAM.U==0	;NOT SPECIFIED (CHANGED TO %FAM.S IN CLEANC)
%FAM.S==1	;SEQUENTIAL
%FAM.R==2	;RANDOM
%FAM.D==3	;DYNAMIC
%%FAM==3	;MASK
;HLDTAB ENTRY-TYPE CODES

%HL.AK==1	;ACTUAL KEY
%HL.VI==2	;VALUE OF IDENTIFICATION
%HL.VD==3	;VALUE OF DATE-WRITTEN
%HL.VP==4	;VALUE OF PROJECT-PROGRAMMER
%HL.LL==5	;LOW FILE-LIMIT
%HL.HL==6	;HIGH FILE LIMIT
%HL.DP==7	;'DEPENDING' FOR OCCURS
%HL.KY==10	;'ASCENDING KEY' FOR OCCURS
%HL.SL==11	;SUM IDENTIFIER (LH)
%HL.SR==12	;SUM IDENTIFIER (RH)
%HL.UP==13	;UPON DATA-NAME
%HL.SC==14	;BUILD A SUM CTR FOR DATAB ITEM WITH THIS LINK
%HL.SY==15	;SYMBOLIC KEY
%HL.RC==16	;RECORD KEY
%HL.DY==17	;'DESCENDING KEY' FOR OCCURS
%HL.IX==20	;INDEX FOR DATAB ITEM
%HL.ER==21	;DATA NAME WHICH OCCURED IN FILE STATUS CLAUSE.

%HL.GI==22	; [315] GROUP INDICATE ITEM WITH VALUE CLAUSE

%UT.IO==0	;I-O ERROR
%UT.OP==1	;OPEN ERROR
%UT.LB==2	;LABEL PROCEDURE
%UT.RP==3	;REPORT ITEM PROCEDURE
%UT.ES==4	;ERROR-STATUS


;DEPTH OF NESTED IF'S

IFN ANS68,<IF.DEP==^D12>
IFN ANS74,<IF.DEP==^D24>

;SYMBOLS FOR LEVEL NUMBERS USED IN PHASE C

LVL.01==01	;LEVEL 01
LVL.49==^D49	;LEVEL 49

;THE FOLLOWING 2 ARE SPECIAL BECAUSE WE HAVE ONLY 6 BITS TO HOLD THE NUNBER IN

LVL.66==76	;LEVEL 66
LVL.77==77	;LEVEL 77
; DATTAB ENTRY CODES

;CODES FOR CLASS

%CL.AN==0	;ALPHANUMERIC
%CL.AB==1	;ALPHABETIC
%CL.NU==2	;NUMERIC
%%CL==3		;NOT SPECIFIED

;CODES FOR USAGE

%%US==0		;NOT SPECIFIED
%US.D6==1	;DISPLAY-6
%US.D7==2	;DISPLAY-7
%US.EB==3	;EBCDIC (DISPLAY-9)
%US.1C==4	;1-WORD COMP
%US.2C==5	;2-WORD COMP
%US.C1==6	;COMP-1
%US.IN==7	;INDEX
%US.C3==10	;COMP-3


;REPORT GROUP ENTRY CODES

;LINE CLAUSE CODES

%RG.NP==1	;NEXT PAGE
%RG.LN==2	;LINE NUMBER
%RG.PI==3	;PLUS INTEGER

;TYPE CODES

%RG.RH==1	;REPORT HEADING
%RG.PH==2	;PAGE HEADING
%RG.CH==3	;CONTROL HEADING
%RG.DE==4	;DETAIL
%RG.CF==5	;CONTROL FOOTING
%RG.PF==6	;PAGE FOOTING
%RG.RF==7	;REPORT FOOTING

;SOURCE CODES

%RG.SR==1	;SOURCE
%RG.SM==2	;SUM
%RG.VL==3	;VALUE

;ALPHABET-NAME

%AN.AS==1B18		;ASCII OR STANDARD-1
%AN.EB==1B19		;EBCDIC

;UUO'S

OPDEF	EWARNW	[1B8]		;PUSHJ TO ERROR ROUTINE
OPDEF	EWARNJ	[2B8]		;JRST TO ERROR ROUTINE
;PJRST IN LIEU OF PUSHJ/POPJ.

OPDEF	PJRST	[JRST]
OPDEF	PJUMPN	[JUMPN]
;KL-10 INSTRUCTIONS

OPDEF	ADJBP	[IBP]

;EXTENDED INSTRUCTION SET OP CODES

OPDEF	EXTEND	[123B8]		;EXTENDED INSTRUCTION
OPDEF	CMPSL	[001B8]		;COMPARE STRINGS, SKIP IF LESS
OPDEF	CMPSE	[002B8]		;COMPARE STRINGS, SKIP IF EQUAL
OPDEF	CMPSLE	[003B8]		;COMPARE STRINGS, SKIP IF LESS OR EQUAL
OPDEF	CMPSGE	[005B8]		;COMPARE STRINGS, SKIP IF GREATER OF EWQUAL
OPDEF	CMPSN	[006B8]		;COMPARE STRINGS, SKIP IF NOT EQUAL
OPDEF	CMPSG	[007B8]		;COMPARE STRINGS, SKIP IF GREATER

OPDEF	EDIT	[004B8]		;PROCESS STRING ACCORDING TO MINI-PROGRAM PATTERN

OPDEF	CVTBO	[010B8]		;CONVERT DECIMAL TO BINARY BY OFFSET
OPDEF	CVTDBT	[011B8]		;CONVERT DECIMAL TO BINARY BY TRANSLATION
OPDEF	CVTBDO	[012B8]		;CONVERT BINARY TO DECIMAL BY OFFSET
OPDEF	CVTBDT	[013B8]		;CONVERT BINARY TO DECIMAL BY TRANSLATION

OPDEF	MOVSO	[014B8]		;MOVE STRING WITH BYTE OFFSET
OPDEF	MOVST	[015B8]		;MOVE STRING WITH BYTE TRANSLATION
OPDEF	MOVSLJ	[016B8]		;LEFT JUSTIFIED
OPDEF	MOVSRJ	[017B8]		;RIGHT JUSTIFIED

;FLAGS IN PROTAB ENTRY

PTSECT==1B25	;SECTION (0) OR PARAGRAPH (1)
PTEXIT==1B26	;EXIT REQUIRED
PTDEF==1B27	;ITEM IS DEFINED
PTALT==1B28	;PARA IS ALTERABLE
PTRES==1B29	;OBJECT OF AN ALTER IS IN CURRENT OR RESIDENT SEGMENT
PTNRES==1B30	;OBJECT OF AN ALTER IS IN ANOTHER NON-RESIDENT SEGMENT
PTUSE==1B31	;REFERENCED IN A USE PROCEDURE
PTDECL==1B32	;DEFINED IN THE DECLARATIVES SECTION
PTMULD==1B33	;PROCEDURE NAME IS MULTIPLY DEFINED
PTXFER==1B34	;PROCEDURE ENDS WITH AN UNCONDITIONAL TRANSFER


;FLAGS USED IN LH OF MNETAB ENTRY

MTSW==400000	;SWITCH
MTSON==200000	;SWITCH ON STATUS
MTSOFF==100000	;SWITCH OFF STATUS
MTCONS==040000	;CONSOLE
MTCHAN==020000	;CHANNEL


;BITS IN LH OF WORD 6 OF FILTAB

FTINP==020000	;THERE ARE INPUT OPENS FOR THIS FILE
FTOUTP==010000	;THERE ARE OUTPUT OPENS FOR THIS FILE
FTIO==004000	;THERE ARE INPUT-OUTPUT OPENS FOR THIS FILE
FTWADV==002000	;THERE ARE "WRITE ADVANCING" STATEMENTS
FTVARL==000400	;RECORDS ARE OF VARIABLE LENGTH
FTREOR==000200	;RERUN ON END-OF-REEL
FTRCNT==000100	;RERUN ON COUNT
FTDEF==000040	;FD OR SD IS PRESENT FOR THIS FILE
FTOPT==000020	;FILE IS OPTIONAL
FTARAN==000001	;ACCESS MODE IS RANDOM


;BITS IN INPUT FLAG WORD FOR SUBSCRIPT ROUTINE

SSBYTP== 1B35	;GENERATE A BYTE POINTER
SSADDR== 1B34	;GENERATE AN ADDRESS

;FLAGS IN EXTAB FOR NON-RESIDENT SECTION EXTERNAL REFERENCES

NR.EXT==(1B0)	;EXTERNAL REQUEST
NR.IND==(1B1)	;NEEDS @ BIT ON
;ITEM TYPES USED IN SYNTAX TREES


ACCEP.==001	;ACCEPT
ACCES.==267	;ACCESS
ACTUA.==101	;ACTUAL
ADD.==002	;ADD
ADVAN.==300	;ADVANCING
AFTER.==301	;AFTER
ALL.==706	;ALL
ALLOW.==516	;ALLOWING
ALPHB.==303	;ALPHABETIC
ALPHN.==201	;ALPHANUMERIC
ALSO.==600	;ALSO
ALTER.==003	;ALTER
ALTRN.==102	;ALTERNATE
AND.==304	;AND
ANY.==431	;ANY
ANY.==431	;ANY
ARE.==305	;ARE
AREA.==435	;AREA
ASCND.==306	;ASCENDING
ASCII.==163	;ASCII
ASSGN.==104	;ASSIGN
AT.==307	;AT
AUTHR.==105	;AUTHOR
BEFOR.==310	;BEFORE
BEGIN.==311	;BEGINNING
BINRY.==165	;BINARY
BLANK.==202	;BLANK
BLOCK.==203	;BLOCK
BOTTO.==601	;BOTTOM
BY.==312	;BY
BYTE.==171	;BYTE
CALL.==422	;CALL
CAN.==424	;CANCEL
CD.==460	;CD
CF.==254	;CF
CH.==252	;CH
CHANN.==154	;CHANNEL
IFN ANS68,<
CHARA.==241	;CHARACTERS
>
IFN ANS74,<
CHARA.==642	;CHARACTER, CHARACTERS
>
CHECK.==527	;CHECK
CHKPT.==631	;CHECKPOINT
CLASS.==500	;CLASS
CLCKU.==602	;CLOCK-UNIT
CLOSE.==004	;CLOSE
COBOL.==313	;COBOL
CODE.==277	;CODE
CDSET.==603	;CODE-SET
COL.==257	;COLUMN
COLLA.==604	;COLLATING 
COMM.==457	;COMMUNICATION
COMMA==147	;COMMA
COMPIL.==261	;COMPILE
COMP.==204	;COMPUTATIONAL
COMP1.==205	;COMPUTATIONAL-1
COMP3.==207	;COMPUTATIONAL-3
COMPU.==005	;COMPUTE
CONFG.==106	;CONFIGURATION
CONSL.==302	;CONSOLE
CONTA.==206	;CONTAINS
CONTR.==260	;CONTROL, CONTROLS
COPY.==006	;COPY
CORR.==314	;CORRESPONDING
COUNT.==474	;COUNT
CURR.==436	;CURRENCY
CURNT.==445	;CURRENT
DATA.==511	;DATA
DATE..==470	;DATE
DBKEY.==211	;DATABASE-KEY
DATEC.==110	;DATE-COMPILED
DATEW.==210	;DATE-WRITTEN
DAY..==605	;DAY
DE.==253	;DE, DETAIL
DBCON.==606	;DEBUG-CONTENTS
DBITM.==607	;DEBUG-ITEM
DBLIN.==610	;DEBUG-LINE
DBNAM.==611	;DEBUG-NAME
DBSB1.==612	;DEBUG-SUB-1
DBSB2.==613	;DEBUG-SUB-2
DBSB3.==614	;DEBUG-SUB-3
DEBUG.==615	;DEBUGGING
DECPN.==150	;DECIMAL-POINT
DECLA.==315	;DECLARATIVES
DEFER.==153	;DEFERRED
DELET.==043	;DELETE
DLIMD.==512	;DELIMITED
DLIMR.==513	;DELIMITER
DEC20.==166	;DECSYSTEM-20
DENSIT==161	;DENSITY
DEPEN.==316	;DEPENDING
DEPTH.==475	;DEPTH
DESCN.==317	;DESCENDING
DEST.==476	;DESTINATION
DISAB.==055	;DISABLE
DISPL.==007	;DISPLAY
DSPL6.==212	;DISPLAY-6
DSPL7.==213	;DISPLAY-7
DSPL9.==215	;DISPLAY-9
DIVID.==010	;DIVIDE
DIVIS.==405	;DIVISION
DOWN.==320	;DOWN
DUPL.==450	;DUPLICATE, DUPLICATES
DYNAM.==616	;DYNAMIC
EBCDC.==643	;EBCDIC
EGI.==505	;EGI
ELSE.==011	;ELSE
EMI.==504	;EMI
EMPTY.==432	;EMPTY
ENABL.==056	;ENABLE
END.==406	;END
EOP.==617	;EOP, END-OF-PAGE
ENDIN.==321	;ENDING
ENDIT.=777	;END-OF-FILE
ENTER.==013	;ENTER
ENTRY.==425	;ENTRY
ENVIR.==111	;ENVIRONMENT
EPI.==506	;EPI
EQUAL.==322	;EQUALS
ERROR.==323	;ERROR
ESI.==503	;ESI
EVEN.==170	;EVEN
EVERY.==324	;EVERY
EXAMI.==014	;EXAMINE
EXCEP.==620	;EXCEPTION
EXCL.==456	;EXCLUSIVE
EXIT.==015	;EXIT
EXTEN.==621	;EXTEND
FD.==214	;FD
FILE.==325	;FILE
FILEC.==112	;FILE-CONTROL
FILEL.==113	;FILE-LIMITS
FILST.==143	;FILE-STATUS
FILLE.==421	;FILLER
FINAL.==262	;FINAL
FIND.==052	;FIND
FIRST.==326	;FIRST
FOOT.==263	;FOOTING
FOR.==327	;FOR
F10.==423	;FORTRAN
FORTR.==415	;FORTRAN-IV
FREE.==063	;FREE
FREED.==523	;FREED
FROM.==330	;FROM
GEN.==041	;GENERATE
GET.==050	;GET
GIVIN.==331	;GIVING
GO.==016	;GO
GOBAK.==426	;GOBACK
GREAT.==332	;GREATER
GROUP.==264	;GROUP
HEADG.==265	;HEADING
HIVAL.==700	;HIGH-VALUES
IO.==333	;IO,INPUT-OUTPUT
IOCON.==114	;I-O-CONTROL
ID.==216	;IDENTIFICATION
IF.==017	;IF
IN.==334	;IN
INDEX.==217	;INDEX
INDIC.==266	;INDICATE
INDXD.==220	;INDEXED
INIT.==040	;INITIATE
INITL.==461	;INITIAL
INPUT.==335	;INPUT
INSRT.==046	;INSERT
INSPC.==622	;INSPECT
INSTA.==115	;INSTALLATION
INTO.==336	;INTO
INVAL.==337	;INVALID
INVOK.==246	;INVOKE
IS.==305	;IS
JOURN.==526	;JOURNAL
JUST.==221	;JUSTIFIED
KEY==340	;KEY
LABEL.==410	;LABEL
LAST.==447	;LAST
LEAD.==341	;LEADING
LEFT.==223	;LEFT
LNGTH.==473	;LENGTH
LESS.=342	;LESS
LIM.==222	;LIMIT, LIMITS
LINAG.==623	;LINAGE
LNGCO.==624	;LINAGE-COUNTER
LINE.==343	;LINE
LINKG.==243	;LINKAGE
LOCK.==344	;LOCK
LOVAL.==701	;LOW-VALUES
MACRO.==414	;MACRO
MEMBR.==433	;MEMBER
MEMOR.==116	;MEMORY
MERG.==626	;MERGE

IFN CSTATS,<
METJS.==064	;METER--JSYS
METNG.==172	;METER--ING
>
MODE.==151	;MODE
MODIF.==047	;MODIFY
MODUL.==117	;MODULES
MOVE.==020	;MOVE
MSG.==467	;MESSAGE
MULTP.==120	;MULTIPLE
MULTI.==021	;MULTIPLY
NATIV.==627	;NATIVE
NEGAT.==345	;NEGATIVE
NEXT.==346	;NEXT
NO.==347	;NO
NONE.==517	;NONE
NOT.==350	;NOT
NOTE.==022	;NOTE
NUMBR.==270	;NUMBER
NUMER.==351	;NUMERIC
OBJEC.==121	;OBJECT-COMPUTER
OCCUR.==224	;OCCURS
ODD.==167	;ODD
OF.==334	;OF, IN
OFF.==412	;OFF
OMITT.==225	;OMITTED
ON.==352	;ON
ONLY.==441	;ONLY
OPEN.==023	;OPEN
OPTIO.==123	;OPTIONAL
OR.==353	;OR
ORGAN.==630	;ORGANIZATION
OTHER.==515	;OTHERS
OUTPU.==354	;OUTPUT
OVRFL.==430	;OVERFLOW
OWNER.==434	;OWNER
PAGE.==510	;PAGE
PARIT.==162	;PARITY
PDP10.==157	;PDP-10, DECSYSTEM-10
PERFO.==024	;PERFORM
PF.==255	;PF
PH.==251	;PH
PIC.==226	;PICTURE
PLS.==272	;PLUS
PNTR.==501	;POINTER
PSTN.==124	;POSITION
PSTNG.==525	;POSITIONING
PSTV.==355	;POSITIVE
PRIOR.==446	;PRIOR
PRINT.==632	;PRINTING
PRVCY.==452	;PRIVACY
PROC.==411	;PROCEDURE, PROCEDURES
PROCE.==356	;PROCEED
PRCSS.==125	;PROCESS
PGM.==427	;PROGRAM
PGMID.==126	;PROGRAM-ID
PROT.==455	;PROTECTED
QUEUE.==463	;QUEUE
QUOTE.==702	;QUOTE
RAND.==127	;RANDOM
RD.==227	;RD
READ.==025	;READ
READR.==521	;READ-REWRITE
READW.==522	;READ-WRITE
RECEV.==053	;RECIEVE
REC.==357	;RECORD
RECRDG==160	;RECORDING
REDEF.==230	;REDEFINES
REEL.==360	;REEL
REFER.==633	;REFERENCES
RELAT.==152	;RELATIVE
RELEA.==026	;RELEASE
REMAI.==413	;REMAINDER
REMAR.==130	;REMARKS
REMOV.==051	;REMOVE, REMOVAL
RENAM.==231	;RENAMES
REPLA.==361	;REPLACING
REPOR.==273	;REPORT, REPORTS
REPTG.==417	;REPORTING
RERUN.==131	;RERUN
RESER.==132	;RESERVE
RESET.==274	;RESET
RETAD.==524	;RETAINED
RETAI.==062	;RETAIN
RETR.==454	;RETRIEVAL
RETUR.==027	;RETURN
REVER.==362	;REVERSED
REWIN.==363	;REWIND
REWRT.==044	;REWRITE
RF.==256	;RF
RH.==250	;RH
RIGHT.==232	;RIGHT
RMS.==625	;RMS
ROUND.==364	;ROUNDED
RUN.==365	;RUN
RNUNT.==443	;RUN-UNIT
SAME.==133	;SAME
SCHEM.==245	;SCHEMA
SD.==233	;SD
SEARC.==030	;SEARCH
SECT.==366	;SECTION
SECUR.==134	;SECURITY
SEEK.==031	;SEEK
SGMNT.==502	;SEGMENT
SEGME.==135	;SEGMENT-LIMITS
SELEC.==136	;SELECT
SELTV.==442	;SELECTIVE
SEND.==054	;SEND
SENT.==367	;SENTENCE
SEPER.==634	;SEPERATE
SEQCE.==530	;SEQUENCE
SEQU.==137	;SEQUENTIAL
SET.==032	;SET
SHAR.==527	;SHARED
SIGN.==140	;SIGN
SIXBT.==164	;SIXBIT
SIZE.==404	;SIZE
SORT.==033	;SORT
SRTMG.==636	;SORT-MERGE
SOUR.==275	;SOURCE
SOURC.==141	;SOURCE-COMPUTER
SPACE.==703	;SPACE
SPECI.==142	;SPECIAL-NAMES
STAND.==407	;STANDARD
STND1.==637	;STANDARD-1
STDAS.==155	;STANDARD-ASCII
STATU.==444	;STATUS
START.==640	;START
STOP==034	;STOP
STORE.==45	;STORE
STRIN.==060	;STRING
SBSCH.==244	;SUB-SCHEMA
SUBQ1.==464	;SUB-QUEUE-1
SUBQ2.==465	;SUB-QUEUE-2
SUBQ3.==466	;SUB-QUEUE-3
SUBTR.==035	;SUBTRACT
SUM.==276	;SUM
SUPPR.==437	;SUPPRESS
SWTCH.==416	;SWITCH
SYMBL.==462	;SYMBOLIC
SYNCH.==235	;SYNCHRONIZED
TABLE.==477	;TABLE
TALLY==704	;TALLY
TERML.==507	;TERMINAL
TERM.==042	;TERMINATE
TEXT.==472	;TEXT
TLYNG.==370	;TALLYING
TAPE.==144	;TAPE
THAN.==371	;THAN
THRU.==372	;THROUGH
TIME..==471	;TIME
TIMES.==373	;TIMES
TO.==374	;TO
TODAY==707	;TODAY
TOP.==642	;TOP
TRAC.==420	;TRACE
TRAIL.==641	;TRAILING
TRANS.==531	;TRANSACTION
TYPE.==247	;TYPE
UNAVA.==520	;UNAVAILABLE
UNIT.==360	;UNIT
UNSTR.==061	;UNSTRING
UNTIL.==375	;UNTIL
UP.==376	;UP
UPDAT.==440	;UPDATE
UPON.==377	;UPON
USAGE.==236	;USAGE
USGMD.==453	;USAGE-MODE
USE.==036	;USE
PPN.==242	;USER-NUMBER
USING.==400	;USING
VALUE.==237	;VALUE
VARYI.==401	;VARYING
VERB.==514	;VERB
VIA.==532	;VIA
WHEN.==402	;WHEN
WITH.==403	;WITH
WITHN.==451	;WITHIN
WORDS.==145	;WORDS
WORKI.==240	;WORKING-STORAGE
WRITE.==037	;WRITE
ZERO.==705	;ZERO

.COMMA==765	;,
SEMIC.==766	;;
LPREN.==767	;(
RPREN.==770	;)
PRIOD.==771	;.
PLUS.==772	;+
MINUS.==773	;-
SLASH.==774	;/
ASTER.==775	;*
EXPON.==776	;**

USERN.==1000	;USER-NAME
FILEN.==1001	;FILE-NAME
MNEMO.==1002	;MNEMONIC-DEVICE-NAME
SPECN.==1003	;SPECIAL-NAME
CONDI.==1004	;CONDITION-NAME
EXTNA.==1005	;EXTERNA.-NAME
PRONM.==1006	;PROCEDURE-NAME
FIGCN.==1010	;FIGURATIVE-CONSTANT
INTGR.==1011	;INTEGER
NLIT.==1012	;NUMERIC-LITERAL
LITER.==1013	;LITERAL
INDNA.==1014	;INDEX-NAME
RECNA.==1015	;RECORD-NAME
GNAME.==1016	;GROUP-NAME
DATAN.==1017	;DATA-NAME
RPNAM.==1020	;REPORT-NAME
CDNAM.==1021	;CD-NAME

AMRGN.==2000	;IN A-MARGIN
;GENFIL OPERATORS

SDELIM==136
STRNG==137
UDELIM==140
UNSDES==141
UNSTR==142


	LIST
	SALL

;PARAMETERS FOR OPTIMIZER

IPI==5		;AC USED TO POINT TO IPTAB

NBACK==^D10	;# INSTRUCTIONS TO KEEP BEFORE CURRENT INSTR.
NWINDO==^D10	;WINDOW SIZE (THE LARGER THIS IS, THE FASTER THE
		; OPTIMIZER WILL GO, BECAUSE IT MUST DO A "BLT"
		; EVERY NWINDO INSTRUCTIONS)
NFRONT==^D20	;# INSTRUCTIONS TO KEEP AFTER CURRENT INSTR.
MAXINX== NBACK*2+NWINDO+NFRONT ;MAX # INSTRUCTIONS IN IPTAB

GCLEN== MAXINX*3	;MAX # WORDS NEEDED TO HOLD MAXINX INSTRUCTIONS

;ERROR CODES USED BY ALL PHASES

DEFINE ERRCOD(N)<E.'N==:N>
RADIX 10
ZZ==0
REPEAT 700,<ERRCOD \<ZZ==ZZ+1>>
IFN ANS74,<REPEAT 100,<ERRCOD\<ZZ==ZZ+1>>>
RADIX 8


;MAX SIZE OF LOW SEGMENT (LARGEST PC ALLOWED IS THIS - 1)

MLOWSZ==400000

END