Trailing-Edge
-
PDP-10 Archives
-
CFS_TSU04_19910205_1of1
-
update/cblsrc/p.mac
There are 20 other files named p.mac in the archive. Click here to see a list.
; UPD ID= 1634 on 6/26/84 at 4:37 PM by MCARLETON
UNIVERSAL P FOR COBOL
SUBTTL PARAMETERS FOR COBOL AL BLACKINGTON/CAM
SEARCH COPYRT
SALL
COPYRIGHT (C) 1974, 1983, 1984 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.
;EDITS
;NAME DATE COMMENTS
;
;JEH 28-MAR-85 [1570] Parse and process ref. mod. fields
; for fields which may be subscripted.
;MJC 18-JUN-84 [1540] Define OUTCHR Macro for TOPS-20
;JEH 16-May-84 [1535] Define error bit for ref. mod. op code
;JEH 18-Mar-82 [1345] Trap illegal UUO's on TOPS-10.
;V12B****************
;DAW 5-Nov-80 [1070] FIX MOVE CORRESPONDING OF ITEMS WITH SUBSCRIPTS.
;DMN 1-FEB-80 [762] IMPLEMENT AND USE D. P. FLOATING POINT LITERALS
SEARCH INTERM
.DIRECTIVE .NOBIN
%%P==5 ;EDIT NUMBER OF P.MAC ITSELF
; TO ASSURE THAT ALL ARE COMPILED WITH THE SAME VERSION OF P.MAC
%HISEG==400000 ;ORIGIN OF HIGH SEGMENT
ANS82==:ANS82
DBMS==:DBMS
DBMS6==:DBMS6
DEBUG==:DEBUG
MCS==:MCS
MPWCEX==:MPWCEX
ONESEG==:ONESEG
TOPS20==:TOPS20
XPNTST==:XPNTST
SWSET%==SWSET% ;ASSEMBLY SWITCH WORD
;ADDITIONAL FEATURE TEST FLAGS THAT CAN BE SET BY COBOL SYNTAX
;THESE USED TO BE FEATURE TEST SWITCHES SET OFF BE DEFAULT
SW.A74==SW.A74 ;ANS-74 SYNTAX WANTED
SW.A82==SW.A82 ;ANS-82 SYNTAX WANTED
SW.STB==SW.STB ;SUPPRESS TRAILING BLANKS ON WRITE
;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
IFN TOPS20,<
T1==1 ;ACCS FOR JSYS CALLS
T2==2
T3==3
>
;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
;VARIOUS COMPILER PARAMETERS
IFE ANS82,<
MAXSUB==3 ;MAXIMUM NUMBER OF SUBSCRIPTS ALLOWED
>
IFN ANS82,<
MAXSUB==^D48 ;MAXIMUM NUMBER OF SUBSCRIPTS ALLOWED
>
OPNSIZ==2 ;SIZE OF AN OPERAND IN EOPTAB (# WORDS)
OPNMAX==OPNSIZ+<OPNSIZ*MAXSUB*2> ;MAX SIZE OF OPERAND AND SUBSCRIPTS
IFE ANS82,<
MAXLIT==^D120 ;Maximum size of non-numeric literal
MAXWLT==MAXLIT/5 ;Size of maximum literal in words
>
IFN ANS82,<
MAXLIT==^D256 ;Maximum size of non-numeric literal
MAXWLT==MAXLIT/5+1 ;Size of maximum literal in words
MXLT82==^D160 ;Maximum size of non-numeric literal in ANS-82
MXLT74==^D120 ;Maximum size of non-numeric literal in ANS-74
>
MXPERF==3 ;Maximum number of perform varying's allowed
;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
>
;TOPS-20 I/O definitions
IFN TOPS20,<
;I/O files used by the compiler
;IOLIST (A,B,C,D,E) is a macro that takes the following args
;
; A is the letter mnemonic for file
; B is the buffer size in words
; C is the OPENF% byte size
; D is the LDB/DPB byte size
; E is the temp file flag (if non-zero)
DEFINE IOFILE,<
IOLIST SRC,200,^D36,7,0
IOLIST LST,200,7,7,0
IOLIST BIN,200,^D36,^D36,0
IOLIST LIB,200,^D36,7,0
IOLIST NAM,200,^D36,^D36,1
IOLIST ERA,200,^D36,^D36,1
IOLIST GEN,200,^D36,^D36,1
IOLIST CPY,200,^D36,7,1
IOLIST AS1,200,^D36,^D36,1
IOLIST AS2,200,^D36,^D36,1
IOLIST AS3,200,^D36,^D36,1
IOLIST LIT,0,^D36,^D36,1
IOLIST CRF,200,^D36,^D36,1
IOLIST SF1,200,^D36,^D36,1
IOLIST SF2,200,^D36,^D36,1
IOLIST SF3,200,^D36,^D36,1
IOLIST DMP,200,7,7
IFN DBMS,<
IOLIST DBC,200,7,7,1
IOLIST DBD,200,7,7,1
>>
>
;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
IFE TOPS20,<
ER.MSG==1B0 ;[1345] NO MONITOR MESSAGE
ER.EIJ==1B29 ;[1345] ERROR IN JOB
>
;ASCII CONTROL CHARACTERS
$HT==11
$LF==12
$VT==13
$FF==14
$CR==15
$DLE==20
$DC1==21
$DC2==22
$DC3==23
$DC4==24
$CZ==32
$ALT==33 ;ALTMODE
$QT==42 ;QUOTE
;MONITOR COMMUNICATION
$DSK==(1B1) ;DEVICE IS A DISK
$CDR==(1B2) ;DEVICE IS A CARD-READER
$LPT==(1B3) ;DEVICE IS A LINE-PRINTER
$CONSL==(1B5) ;DEVICE IS A CONSOLE
$DTA==(1B11) ;DEVICE IS A DEC-TAPE
$AVAIL==(1B12) ;DEVICE IS AVAILABLE
$MTA==(1B13) ;DEVICE IS A MAG-TAPE
$TTY==(1B14) ;DEVICE IS A TTY
$DIREC==(1B15) ;DEVICE HAS A DIRECTORY
$IN==(1B16) ;DEVICE CAN DO INPUT
$OUT==(1B17) ;DEVICE CAN DO OUTPUT
$BIN==1B23 ;DEVICE CAN WRITE BINARY
$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
;FLAGS USED IN SWITCH SCANNING
FL.LIB==1 ;FILE IS A LIBRARY
FL.REW==2 ;DEVICE NEEDS REWINDING
IFE TOPS20,<
FL.ZRO==4 ;DIRECTORY NEEDS CLEARING
>
;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.
ASCF2==200 ;[762] D. P. FLOATING POINT CONSTANT
ASCON==ASCASC!ASCSIX!ASCD1!ASCD2!ASCFLT!ASCOCT!ASCEBC!ASCF2 ;[762]
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
EVSSBT==1B9 ;Selection Subject flag for EVALUATE
EVTHRB==1B10 ;Selection object contained a 'THRU'
EVCDBT==1B11 ;Selection object is a condition-name
EVFABT==1B15 ;"False" flag for EVALUATE TRUE operator
EVSS1W==1 ;EVALUATE Selection Subject is one word long
EVSS2W==2 ;EVALUATE Selection Subject is two words long
;EVALUATE flag bits, in word EVALFL
EVIMPS==1B0 ;processing an imperative statement in EVALUATE
EVALF==1B1 ;in EVALUATE
EVOTHR==1B2 ;'OTHER' seen
EVALTF==1B3 ;processing TRUE/FALSE
EVTHRU==1B4 ;'THRU' seen
EVWHEN==1B5 ;'WHEN' seen
EVCND==1B6 ;processing a conditional
EVNOTF==1B7 ;'NOT' seen
EVNYSN==1B8 ;'ANY' seen
RFMLEN==1B9 ;Reference Modification - signifies length
RFMBTH==1B10 ;Reference Modification - length modifier follow
RFMERR==1B11 ;[1535] Reference Mod. - phase D flagged err w/ mod's
;ARG TYPES (AS OF FEB 1973 CALLING SEQUENCE)
ARG1WB==2B12 ;1-WORD BINARY
ARG2WB==11B12 ;2-WORD BINARY
ARG1FP==4B12 ;1-WORD FLOATING POINT (COMP-1)
ARGPAD==7B12 ;PROGRAM ADDRESS
ARG2FP==10B12 ;2-WORD FLOATING POINT (COMP-2)
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, DAY-OF-WEEK - ANS-74 REPLACEMENT FOR TODAY
GNDOW== 0B25
GNDATE==1B25
GNDAY== 2B25
GNTIME==3B25
;INDEXES FOR FIGURATIVE CONSTANTS - STORED IN EFLAGX IN PHASE E
IXTODY==0 ;TODAY (NOT USED)
IXSPAC==1 ;SPACE
IXZERO==2 ;ZERO
IXQUOT==3 ;QUOTE
IXHIV==4 ;HIGH VALUE
IXLOWV==5 ;LOW VALUE
IXDATE==6 ;DATE
IXDAY==7 ;DAY
IXTIME==10 ;TIME
IXDOW==11 ;DAY-OF-WEEK
IXSYCH==12 ;SYMBOLIC CHARACTER
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
GNEVSB==1B15 ;OPERAND IS EVAL. SEL SUBJ WH/ HAS BEEN RANGE TESTED
GNREFM==1B14 ;OPERAND IS REFERENCE MODIFIED
;VARIOUS OTHER FLAGS
DWFATL==1B25 ;FATAL FLAG IN DIAG WORD
DWIMBD==200000 ;DO NOT IMBED DIAGNOSTIC MESSAGE IN LISTING
;BITS SET IN SW FOR RUN-TIME USE BY GD.MAC (CVDBT. ETC)
SW.SGN==(1B1) ;SIGNED
SW.2WC==(1B2) ;2-WORD COMP
;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
IFN TOPS20,<
DEFINE OUTSTR(TEXT)<
PUSH PP,T1
HRROI T1,TEXT
PSOUT%
POP PP,T1
>
DEFINE OUTCHR(CHAR)< ;[1540] TO REPLACE UUO
PUSH PP,T1 ;[1540] SAVE T1
HRRZ T1,CHAR ;[1540] WHERE THE CHARACTER IS
PBOUT% ;[1540] TO PRIMARY OUT
POP PP,T1 ;[1540] RESTORE T1
>
DEFINE SETFAZ (X),<
INTERNAL COBOL'X
ZZ%==0 ;;INITIALIZE VARIABLE
IFE ONESEG,<IFDIF <X><B><IFDIF <X><G><ZZ%==1>>> ;;WE NEED IT FOR ALL BUT PHASES B & G
IFN ONESEG,<IFIDN <X><A><ZZ%==1>> ;;WE ONLY NEED IT FOR PHASE A
IFN ZZ%,<IFDIF <X><A>,<PORTAL .+1>> ;;ENABLE CONCEALED MODE
MOVEI TA,"'X'"
MOVEM TA,PHASEN##
IFN TOPS20,<IFDIF <X><A>,<MOVE PP,PPOINT##>> ;;ALREADY SET UP IN COBSCN FOR PHASE A
IFDIF <X><O>< EXTERNAL PURE'X> ;;THERE IS NO PUREO
IFN ZZ%,<
IFE ONESEG,<
MOVEI TA,KILL##
MOVEM TA,WEDIED##+1
>
IFE TOPS20,<
MOVEI TA,UUOKIL## ;;[1345] POINT TO ARG BLOCK
MOVEM TA,.JBINT## ;;[1345]
DMOVE TA,[4,,UUOC1## ;;[1345] LENGTH,,RETURN
EXP ER.MSG!ER.EIJ] ;;[1345] NO MONITOR MESSAGE
DMOVEM TA,UUOKIL ;;[1345]
SETZM UUOKIL+2 ;;[1345] WILL HOLD PC
SETZM UUOKIL+3 ;;[1345] WILL HOLD CAUSE OF INTERUPT
>
MOVEI TA,REDO##
HRRM TA,.JBSA##
MOVEI TA,RESTRT##
HRRM TA,.JBREN##
MOVE TA,[PUSHJ PP,UUOCAL##]
MOVEM TA,.JB41##
IFE TOPS20,<
MOVEI TA,XPNPPL##
HRRM TA,.JBAPR##
MOVEI TA,$APRF
CALLI TA,$APREN
>
>
IF2,< PURGE ZZ%>
IFN DEBUG,<EXTERNAL %'X'TIME,%R'X'TIM
IFE TOPS20,<EXTERN DDT>
IFDIF <X><A><IFDIF <X><G><IFDIF <X><B><
IFE TOPS20,<
OUTSTR [ASCIZ "PHASE X
"]
>
IFN TOPS20,<
PUSH PP,T1
HRROI T1,[ASCIZ "PHASE X
"]
PSOUT%
POP PP,T1
>
>>>
IFE TOPS20,<
CALLI TA,$TIME
MOVEM TA,%'X'TIME
MOVEI TA,0
CALLI TA,$RTIME
MOVEM TA,%R'X'TIM
>
IFN TOPS20,<
MOVEI T1,.FHSLF ;Get runtime for this fork
RUNTM% ;Get runtime and current time
MOVEM T1,%R'X'TIM ;Save runtime
MOVEM T3,%'X'TIME ;Save current time
>
>>
DEFINE ENDFAZ (X),<
IFN DEBUG,<EXTERNAL CORESW,KILL,KILLF,%'X'TIME,%R'X'TIM
IFDIF <X><G><
IFE TOPS20,<
MOVEI TA,0
CALLI TA,$RTIME
MOVEM TA,%R'X'TIM+1
CALLI TA,$TIME
MOVEM TA,%'X'TIME+1
>
IFN TOPS20,<
MOVEI T1,.FHSLF ;Get runtime for this fork
RUNTM% ;Get runtime and current time
MOVEM T1,%R'X'TIM+1 ;Save runtime
MOVEM T3,%'X'TIME+1 ;Save current time
>
MOVE TA,CORESW
TLNE TA,%KILL'X
JRST KILL
TLNE TA,%KILF'X
JRST KILLF
>>
IFIDN <X><A>< JRST COBOLB##>
IFIDN <X><B>< JRST COBOLC##>
IFIDN <X><C>< JRST COBOLD##>
IFIDN <X><D>< JRST COBOLE##>
IFIDN <X><E><
SKIPE OPTSW##
JRST COBOLO##
JRST COBOLF##>
IFIDN <X><F>< 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.
; 7 - IF TABLES IS TO BE EXPANDED IN DIFFERENT PLACES
; 0 - SOMETIMES
; 1 - ALWAYS
;EXPANDED IN COBOLA, CLEAND, IMPURE, SQUIRL, XPAND, COBOLK
;NOTE ALL NUMBERS ARE RADIX 10 WHEN EXPANDED
DEFINE TABLES,<
XLIST
TABSET NAM,900,0,NAMTAB,2,2,0
TABSET EOP,50,20,EOPTAB,2,0,0
TABSET SEC,200,10,SECTAB,2,2,0
TABSET FIL,150,50,FILTAB,1,2,1
TABSET DAT,800,600,DATAB,1,2,1
TABSET CON,50,100,CONTAB,1,2,1
TABSET LIT,500,200,LITAB,2,2,1
TABSET PRO,200,150,PROTAB,1,2,1
TABSET EXT,600,50,EXTAB,2,1,1
TABSET VAL,100,200,VALTAB,1,0,1
TABSET MNE,40,10,MNETAB,1,2,1
TABSET FLO,200,200,FLOTAB,1,2,1
TABSET CPY,30,30,CPYTAB,0,0,1
TABSET HLD,50,20,HLDTAB,1,0,1
TABSET RPW,2,200,RPWTAB,1,0,1
TABSET RCO,2,100,RCOTAB,1,0,1
TABSET USE,2,10,USETAB,1,0,1
IFN DBMS,<
TABSET DBD,600,200,DBDTAB,0,0,1
>
IFN MCS,<
TABSET CD,200,100,CDTAB,2,2,1
>
TABSET AKT,1,20,AKTTAB,2,2,1
TABSET DEB,2,10,DEBTAB,2,2,1
TABSET ALT,20,20,ALTAB,2,2,0
TABSET REN,2,10,RENTAB,1,0,1
TABSET PRG,10,10,PRGTAB,2,2,1
TABSET TAG,300,100,TAGTAB,2,1,0
TABSET RES,20,10,RESTAB,2,0,0
TABSET TEM,12,10,TEMTAB,0,0,1
TABSET CRF,2,1000,CRFTAB,0,0,0
LIST
>
;SYNTAX NODE MACRO
;USED TO DEFINE NODES IN THE SYNTAX TREE
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 INTER.(NAME)<
INTERN NAME
IFN DEBUG,<SIXBIT /NAME/>
>
DEFINE SKPNAM<
IFN DEBUG,<JRST .+2>
>
;TABLE CODES
DEFINE TABSET (A,B,C,D,E,F,G)<
IFN G,<CD.'A==ZZ
ZZ==ZZ+1>
>
ZZ==0
TABLES
CD.TAG==5
;TABLE ENTRY SIZES
SZ.FIL==^D29 ;SIZE OF FIXED PORTION OF FILE TABLE DURING COMPILATION.
SZ.DAT==7
SZ.CON==2
SZ.LIT==1
SZ.PRO==5
SZ.PR6==4 ;COBOL-68 TABLE SIZE
SZ.EXT==2
SZ.VAL==777777
SZ.MNE==2
SZ.FLO==2
SZ.OUS==^D20 ;SIZE OF USES TABLE OUTPUT
SZ.MSK==4
SZ.CPY==2
SZ.HLD==2
SZ.RPU==1 ;SIZE OF RPWTAB ENTRY FOR UPON ENTRY
SZ.RPD==14 ;SIZE OF RPWTAB ENTRY FOR EACH "RD"
SZ.RCO==4 ;SIZE OF REPORT GROUP 'CONTROL' ENTRIES (CONTROLS ARE...)
SZ.RPG==6+^D18 ;[1570] SIZE OF RPWTAB ENTRY FOR REPORT GROUP
;[1570] 18 WORDS FOR POSSIBLY SUBSCRIPTED SOURCE ITEM
.RWSRC==7 ;OFFSET IN REPORT GROUP ENTRY OF SOURCE ITEM
SZ.DOC==2
SZ.USE==1
SZ.DBD==^D9 ;[%316] CHANGED SIZE
SZ.CD==^D9
SZ.TEM==1 ; [415] NORMALLY ONE WORD PER TEMTAB ENTRY
SZ.TM2==2 ; [415] TWO WORD TEMTAB ENTRY
SZ.AKT==2 ;SIZE OF ACTUAL KEY ENTRY
SZ.DEB==2
SZ.PRG==3
SZ.SEC==2
; 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.
%%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 (obsolete)
%%LBL==3 ;NOT SPECIFIED
;CODES FOR ORGANIZATION
%ORG.S==0 ;SEQUENTIAL
%ORG.R==1 ;RELATIVE
%ORG.I==2 ;INDEXED SEQUENTIAL
%%ORG==3 ;NOT SPECIFIED
%ACC.S==0 ;SEQUENTIAL
%ACC.R==1 ;RELATIVE
%ACC.I==2 ;INDEXED SEQUENTIAL
%%ACC==3 ;NOT SPECIFIED
;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
%HL.KA==23 ;ALTERNATE RECORD KEY
%HL.PR==24 ;VALUE OF PROTECTION CODE
;HLDTAB ENTRY FLAGS FOR TYPE OF PHASE-E ENTRY:
HE%RIN==1B0 ;READ..INTO OR RETURN..INTO
HE%VLR==1B1 ;READ WITH VARIABLE LENGTH RECORD
HE%DEB==1B2 ;DEBUGGING CODE
;HLDTAB OFFSETS FOR PHASE-E ENTRY:
.HEHDR==0 ;HEADER WORD
.HERIN==1 ;READ..INTO OPERAND
.HEVLR==.HERIN+OPNSIZ+OPNMAX
.HESIZ==.HEVLR+1 ;SIZE OF HLDTAB
.HEDEB==.HEVLR+1 ;DEBUGGING OPERAND
.HESIZ==.HEDEB+1 ;SIZE OF HLDTAB ENTRY
;USETAB TYPE CODES
%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
%UT.DB==5 ;DEBUG PROCEDURE
;DEPTH OF NESTED IF'S
IF.DEP==^D24
;NESTING EVALUATE STATEMENTS
EV.SIZ==^D5 ;5 words needed for each EVALUATE verb
EV.STK==^D10 ;2 nestings allowed
EV.DEP==^D3 ;
;SYMBOLS FOR LEVEL NUMBERS USED IN PHASE C
LVL.01==01 ;LEVEL 01
LVL.10==^D10 ;LEVEL 10, HIGHEST LEGAL LEVEL IN FIPS LOW LEVEL
LVL.49==^D49 ;LEVEL 49
;THE FOLLOWING 2 ARE SPECIAL BECAUSE WE HAVE ONLY 6 BITS TO HOLD THE NUMBER 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.DS==3 ;HIGHEST DISPLAY USAGE
%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
%US.C2==11 ;COMP-2
;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
RW.MX==3 ;MAXIMUM NUMBER OF LEVELS IN REPORT SECTION
;ALPHABET-NAME
%AN.AS==1B18 ;ASCII
%AN.S1==1B18 ;STANDARD-1
%AN.EB==1B19 ;EBCDIC
%AN.S2==1B20 ;STANDARD-2
;UUO'S
OPDEF EWARNW [1B8] ;PUSHJ TO ERROR ROUTINE
OPDEF EWARNJ [2B8] ;JRST TO ERROR ROUTINE
;[1070] OFFSETS IN CORRSP (FOR "MOVE CORRESPONDING" OR "ADD CORRESPONDING")
.CORLS==13 ;[1070] LEFT OPERAND SUBSCRIPT BLOCK STARTS
.CORRS==.CORLS+<MAXSUB*4>+1 ;[1070] RIGHT OPERAND SUBSCRIPT BLOCK STARTS
.CORXX==.CORRS+<MAXSUB*4>+1 ;[1070] START OF SOMETHING NEW (FUTURE EXPANSION)
.CORSZ==.CORXX+1 ;[1070] TOTAL SIZE OF CORRSP AREA
;PJRST IN LIEU OF PUSHJ/POPJ.
OPDEF PJRST [JRST]
OPDEF PJUMPN [JUMPN]
;KL-10 INSTRUCTIONS
OPDEF ADJBP [IBP]
;EXTENDED ADDRESSING
OPDEF IFIW [1B0] ;
;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 WORD 2 OF MNETAB ENTRY
MTSW==400000 ;SWITCH
MTSON==200000 ;SWITCH ON STATUS
MTSOFF==100000 ;SWITCH OFF STATUS
MTCONS==040000 ;CONSOLE
MTCHAN==020000 ;CHANNEL
MTCODE==010000 ;CODE FOR RD ENTRY
MTALPA==004000 ;ALPHABET-NAME
MTSYMB==002000 ;SYMBOLIC CHARACTER
;FLAGS USED IN RH OF WORD 2 OF MNETAB ENTRY
MTSEBC==1B18 ;SYMBOLIC CHAR IN EBCDIC
;FLAGS USED IN RH OF WORD 3 OF MNETAB ENTRY
MTTHRU==1B18 ;THRU IN ALPHABET-NAME
MTALSO==1B19 ;ALSO IN ALPHABET-NAME
MTZERO==1B20 ;ZERO MARKER (TEMP) IN ALPHABET-NAME
;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
;BITS IN EFLAGA/B DURING CODE GENERATION
SEP.SN==(1B0) ;SEPARATE SIGN
LDN.SN==(1B1) ;LEADING SIGN
;FIPS-FLAGGER LEVELS
DEFINE FLAGAT (LEVEL)<
PUSHJ PP,TST.'LEVEL'##
>
%LV.0==0 ;NO INFORMATION
%LV.L==1 ;FIPS LOW LEVEL
%LV.LI==2 ;FIPS LOW-INTERMEDIATE LEVEL
%LV.HI==4 ;FIPS HIGH-INTERMEDIATE LEVEL
%LV.H==10 ;FIPS HIGH LEVEL
%LV.RP==20 ;REPORT WRITER
%LV.DB==40 ;DATA BASE
%LV.68==100 ;COBOL-68 LEFTOVER
%LV.IB==200 ;IBM COMPATIBILITY
%LV.VX==400 ;VAX COBOL EXTENSIONS
%LV.8==1000 ;COBOL-8x EXTENSIONS
%LV.NS==2000 ;NON-STANDARD EXTENSION
;TRACE CODE FLAGS (PHASE E AND COBDDT)
TC.DB==(1B3) ;DEBUGGING REQUIRED
TC.EP==(1B4) ;EXIT PROGRAM
TC.GB==(1B5) ;GOBACK
TC.PE==(1B7) ;PROGRAM ENTRY
TC.AE==(1B8) ;ALTERNATE ENTRY
;DEBUG PROCEDURE INDICES (PHASE E AND COBDDT)
DBP%SP==1 ;START PROGRAM
DBP%FT==2 ;FALL THROUGH
DBP%UP==3 ;USE PROCEDURE
DBP%PL==4 ;PERFORM LOOP
DBP%SI==5 ;SORT INPUT
DBP%SO==6 ;SORT OUTPUT
DBP%MO==7 ;MERGE OUTPUT
SUBTTL INTERNAL DEBUGGING VALUES
;FOR /TRACE SWITCH IN RHS OR CORESW
TRACEI==1B32 ;CORESW FLAG FOR TRACEING ID
TRACEE==1B33 ;CORESW FLAG FOR TRACEING ED
TRACED==1B34 ;CORESW FLAG FOR TRACEING DD
TRACEP==1B35 ;CORESW FLAG FOR TRACEING PD
TRACEA==TRACEI!TRACEE!TRACED!TRACEP
;FOR /K AND /F SWITCHES IN LHS OF CORESW
%KILLA==1
%KILLB==2
%KILLC==4
%KILLD==10
%KILLE==20
%KILLF==40
%KILLG==100
%KILLO==200
%KILL==%KILLA!%KILLB!%KILLC!%KILLD!%KILLE!%KILLF!%KILLG!%KILLO
%KILFA==400
%KILFB==1000
%KILFC==2000
%KILFD==4000
%KILFE==10000
%KILFF==20000
%KILFG==40000
%KILFO==100000
SUBTTL TABLE OF RESERVED WORDS
;VERBS
; 040 INITIATE
;001 ACCEPT 041
;002 ADD 042 TERMINATE
;003 ALTER 043 DELETE
;004 CLOSE 044 REWRITE
;005 COMPUTE 045 STORE
;006 COPY 046 INSERT
;007 DISPLAY 047 MODIFY
;010 DIVIDE 050 GET
;011 ELSE 051 REMOVE
;012 052 FIND
;013 ENTER 053 RECEIVE
;014 EXAMINE 054 SEND
;015 EXIT 055 DISABLE
;016 GO 056 ENABLE
;017 IF 057 TRACE
;020 MOVE 060 STRING
;021 MULTIPLY 061 UNSTRING
;022 062 RETAIN
;023 OPEN 063 FREE
;024 PERFORM 064 CALL
;025 READ 065 CANCEL
;026 RELEASE 066
;027 RETURN 067 INSPECT
;030 SEARCH 070 MERGE
;031 071 START
;032 SET,SETS 072 SUPPRESS
;033 SORT 073 CONTINUE
;034 STOP 074 EVALUATE
;035 SUBTRACT 075 INITIALIZE
;036 USE 076 PURGE
;037 WRITE 077 REPLACE
;WORDS USED ONLY BY ID & ED SCANS
;100 140 SIGN
;101 ACTUAL 141 SOURCE-COMPUTER
;102 ALTERNATE 142 SPECIAL-NAMES
;103 143 FILE-STATUS
;104 ASSIGN 144 TAPE
;105 AUTHOR 145 WORDS
;106 CONFIGURATION 146
;107 147 COMMA
;110 DATE-COMPILED 150 DECIMAL-POINT
;111 ENVIRONMENT 151 MODE
;112 FILE-CONTROL 152 RELATIVE
;113 FILE-LIMIT[S] 153 DEFERRED
;114 I-O-CONTROL 154 CHANNEL
;115 INSTALLATION 155 STANDARD-ASCII
;116 MEMORY 156
;117 MODULES 157
;120 MULTIPLE 160 RECORDING
;121 OBJECT-COMPUTER 161 DENSITY
;122 162 PARITY
;123 OPTIONAL 163 ASCII
;124 POSITION 164 SIXBIT
;125 PROCESSING 165 BINARY
;126 PROGRAM-ID 166
;127 RANDOM 167 ODD
;130 REMARKS 170 EVEN
;131 RERUN 171 BYTE
;132 RESERVE 172 APPLY
;133 SAME 173 BASIC-LOCKING
;134 SECURITY
;135 SEGMENT-LIMIT
;136 SELECT
;137 SEQUENTIAL
;WORDS WHICH CAN GO AWAY AFTER DD SCAN
;200 240 WORKING-STORAGE
;201 241
;202 BLANK[S] 242 USER-AREA
;203 BLOCK 243 LINKAGE
;204 COMP,COMPUTATIONAL 244 SUB-SCHEMA
;205 COMP-1,COMPUTATIONAL-1 245 SCHEMA
;206 CONTAINS 246 INVOKE
;207 COMP-3,COMPUTATIONAL-3 247 TYPE
;210 DATE-WRITTEN 250 RH
;211 DATABASE-KEY 251 PH
;212 DISPLAY-6 252 CH
;213 DISPLAY-7 253 DE,DETAIL
;214 FD 254 CF
;215 DISPLAY-9 255 PF
;216 IDENTIFICATION,ID 256 RF
;217 INDEX 257 COLUMN
;220 INDEXED 260 CONTROL[S]
;221 JUST,JUSTIFIED 261 COMPILE
;222 LIMIT[S] 262 FINAL
;223 LEFT 263 FOOTING
;224 OCCURS 264 GROUP
;225 OMITTED 265 HEADING
;226 PIC,PICTURE 266 INDICATE
;227 RD 267 ACCESS
;230 REDEFINES 270 NUMBER
;231 RENAMES 271
;232 RIGHT 272 PLUS
;233 SD 273 REPORT[S]
;234 COMP-2,COMPUTATIONAL-2 274 RESET
;235 SYNC,SYNCHRONIZED 275 SOURCE
;236 USAGE 276 SUM
;237 VALUE[S] 277 CODE
;WORDS USED BY ALL PHASES
;300 ADVANCING 340 KEY[S]
;301 AFTER 341 LEADING
;302 CONSOLE 342 LESS,"<"
;303 ALPHABETIC 343 LINE[S]
;304 AND 344 LOCK
;305 IS,ARE 345 NEGATIVE
;306 ASCENDING 346 NEXT
;307 AT 347 NO
;310 BEFORE 350 NOT
;311 BEGINNING 351 NUMERIC
;312 BY 352 ON
;313 COBOL 353 OR
;314 CORR,CORRESPONDING 354 OUTPUT
;315 DECLARATIVES 355 POSITIVE
;316 DEPENDING 356 PROCEED
;317 DESCENDING 357 RECORD[S]
;320 DOWN 360 REEL,UNIT
;321 ENDING 361 REPLACING
;322 EQUAL[S],"=" 362 REVERSED
;323 ERROR 363 REWIND
;324 EVERY 364 ROUNDED
;325 FILE 365 RUN
;326 FIRST 366 SECTION
;327 FOR 367 SENTENCE
;330 FROM 370 TALLYING
;331 GIVING 371 THAN
;332 GREATER,">" 372 THRU,THROUGH
;333 INPUT-OUTPUT,I-O 373 TIMES
;334 IN,OF 374 TO
;335 INPUT 375 UNTIL
;336 INTO 376 UP
;337 INVALID 377 UPON
;400 USING 440 UPDATE
;401 VARYING 441 ONLY
;402 WHEN 442 SELECTIVE
;403 WITH 443 RUN-UNIT
;404 SIZE 444 STATUS
;405 DIVISION 445 CURRENT
;406 END 446 PRIOR
;407 STANDARD 447 LAST
;410 LABEL 450 DUPLICATE[S]
;411 PROCEDURE[S] 451 WITHIN
;412 OFF 452 PRIVACY
;413 REMAINDER 453 USAGE-MODE
;414 MACRO 454 RETRIEVAL
;415 455 PROTECTED
;416 SWITCH 456 EXCLUSIVE
;417 REPORTING 457 COMMUNICATIONS
;420 TRACE 460 CD
;421 FILLER 461 INITIAL
;422 CALL 462 SYMBOLIC,NOMINAL
;423 FORTRAN 463 QUEUE
;424 CANCEL 464 SUB-QUEUE-1
;425 ENTRY 465 SUB-QUEUE-2
;426 GOBACK 466 SUB-QUEUE-3
;427 PROGRAM 467 MESSAGE
;430 OVERFLOW 470 DATE
;431 ANY 471 TIME
;432 EMPTY 472 TEXT
;433 MEMBER[S] 473 LENGTH
;434 OWNER 474 COUNT
;435 AREA 475 DEPTH
;436 CURRENCY 476 DESTINATION
;437 SUPPRESS 477 TABLE
;ANS-74 RESERVED WORDS
;500 CLASS 540 ALSO
;501 POINTER 541 BOTTOM
;502 SEGMENT 542 CODE-SET
;503 ESI 543 COLLATING
;504 EMI 544 DAY
;505 EGI 545 DEBUGGING
;506 EPI 546 DYNAMIC
;507 TERMINAL 547 EOP,END-OF-PAGE
;510 PAGE 550 EXCEPTION
;511 DATA 551 EXTEND
;511 DELIMITED 552 LINAGE
;513 DELIMITER 553 LINAGE-COUNTER
;514 VERB 554 RMS
;515 OTHER[S] 555 NATIVE
;516 ALLOWING 556 ORGANIZATION
;517 NONE 557 CHECKPOINT
;520 UNAVAILABLE 560 PRINTING
;521 READ-REWRITE 561 REFERENCE[S]
;522 READ-WRITE 562 SEPARATE
;523 FREED 563 SORT-MERGE
;524 RETAINED 564 STANDARD-1
;525 POSITIONING 565 TRAILING
;526 JOURNAL 566 CHARACTER[S]
;527 CHECK 571 EBCDIC
;530 SEQUENCE 570 TOP
;531 TRANSACTION
;532 VIA
;533 PROTECTION
;537 COMPILER-BREAK-IN-PHASE
;ANS-82 RESERVED WORDS
;600 ALPHABET
;601 ALPHABETIC-LOWER
;602 ALPHABETIC-UPPER
;603 ALPHANUMERIC
;604 ALPHANUMERIC-EDITED
;605 COMMON
;606 CONTENT
;607 CONVERSION
;610 CONVERTING
;611 DAY-OF-WEEK
;612 EXTERNAL
;613 FALSE
;614 GLOBAL
;615
;616 NUMERIC-EDITED
;617 ORDER
;620 PADDING
;621 REFERENCE-MODIFIER
;622 STANDARD-2
;623 TEST
;624 THEN
;625 TRUE
;626 UNLOCK (DEC EXTENSION FOR SMU)
;GENERIC SCOPE TERMINATORS
;677 END-xx
; END-ADD
; END-CALL
; END-COMPUTE
; END-DELETE
; END-DIVIDE
; END-EVALUATE
; END-IF
; END-MULTIPLY
; END-PERFORM
; END-READ
; END-RECEIVE
; END-RETURN
; END-REWRITE
; END-SEARCH
; END-START
; END-STRING
; END-SUBTRACT
; END-UNSTRING
; END-WRITE
; END-ENTER
; END-FREE
; END-OPEN
; END-RETAIN
;700 HIGH-VALUE,HIGH-VALUES 704
;701 LOW-VALUE,LOW-VALUES 705 ZERO,ZEROS,ZEROES
;702 QUOTE,QUOTES 706 ALL
;703 SPACE,SPACES 707 TODAY
;765 , 772 +
;766 ; 773 -
;767 ( 774 /
;770 ) 775 *
;771 . 776 **
;777 END OF SOURCE
;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
ALPHA.==600 ;ALPHABET
ALPHB.==303 ;ALPHABETIC
ALPHL.==601 ;ALPHABETIC-LOWER
ALPHU.==602 ;ALPHABETIC-UPPER
ALPHN.==603 ;ALPHANUMERIC
ALPHE.==604 ;ALPHABETIC-EDITED
ALSO.==540 ;ALSO
ALTER.==003 ;ALTER
ALTRN.==102 ;ALTERNATE
AND.==304 ;AND
ANY.==431 ;ANY
APPLY.==172 ;APPLY
ARE.==305 ;ARE
AREA.==435 ;AREA
ASCND.==306 ;ASCENDING
ASCII.==163 ;ASCII
ASSGN.==104 ;ASSIGN
AT.==307 ;AT
AUTHR.==105 ;AUTHOR
BASLK.==173 ;BASIC-LOCKING
BEFOR.==310 ;BEFORE
BEGIN.==311 ;BEGINNING
BINRY.==165 ;BINARY
BLANK.==202 ;BLANK
BLOCK.==203 ;BLOCK
BOTTO.==541 ;BOTTOM
BY.==312 ;BY
BYTE.==171 ;BYTE
CALL.==064 ;CALL
CAN.==065 ;CANCEL
CD.==460 ;CD
CF.==254 ;CF
CH.==252 ;CH
CHANN.==154 ;CHANNEL
CHARA.==566 ;CHARACTER[S]
CHECK.==527 ;CHECK
CHKPT.==557 ;CHECKPOINT
CLASS.==500 ;CLASS
CLOSE.==004 ;CLOSE
COBOL.==313 ;COBOL
CODE.==277 ;CODE
CDSET.==542 ;CODE-SET
CNTNT.==606 ;CONTENT
COLLA.==543 ;COLLATING
COL.==257 ;COLUMN
COMMA==147 ;COMMA
COMMN.==605 ;COMMON
COMM.==457 ;COMMUNICATION
COMPIL.==261 ;COMPILE
COMP.==204 ;COMPUTATIONAL
COMP1.==205 ;COMPUTATIONAL-1
COMP2.==234 ;COMPUTATIONAL-2
COMP3.==207 ;COMPUTATIONAL-3
COMPU.==005 ;COMPUTE
COMPB.==537 ;COMPILER-BREAK-IN-PHASE (FOR DEBUGGING COBOL)
CONFG.==106 ;CONFIGURATION
CONSL.==302 ;CONSOLE
CONTA.==206 ;CONTAINS
CONT.==073 ;CONTINUE
CONTR.==260 ;CONTROL[S]
CONVS.==607 ;CONVERSION
CONVT.==610 ;CONVERTING
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..==544 ;DAY
DE.==253 ;DE, DETAIL
DEBUG.==545 ;DEBUGGING
DECPN.==150 ;DECIMAL-POINT
DECLA.==315 ;DECLARATIVES
DEFER.==153 ;DEFERRED
DELET.==043 ;DELETE
DLIMD.==512 ;DELIMITED
DLIMR.==513 ;DELIMITER
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
DOW.==611 ;DAY-OF-WEEK
DOWN.==320 ;DOWN
DUPL.==450 ;DUPLICATE, DUPLICATES
DYNAM.==546 ;DYNAMIC
EBCDC.==567 ;EBCDIC
EGI.==505 ;EGI
ELSE.==011 ;ELSE
EMI.==504 ;EMI
EMPTY.==432 ;EMPTY
ENABL.==056 ;ENABLE
END.==406 ;END
ENDIN.==321 ;ENDING
ENDIT.==777 ;END-OF-FILE
ENDXX.==677 ;END- (EXPLICIT SCOPE TERMINATOR)
ENTER.==013 ;ENTER
ENTRY.==425 ;ENTRY
ENVIR.==111 ;ENVIRONMENT
EOP.==547 ;EOP, END-OF-PAGE
EPI.==506 ;EPI
EQUAL.==322 ;EQUALS
ERROR.==323 ;ERROR
ESI.==503 ;ESI
EVAL.==074 ;EVALUATE
EVEN.==170 ;EVEN
EVERY.==324 ;EVERY
EXAMI.==014 ;EXAMINE
EXCEP.==550 ;EXCEPTION
EXCL.==456 ;EXCLUSIVE
EXIT.==015 ;EXIT
EXTEN.==551 ;EXTEND
EXTER.==612 ;EXTERNAL
FALSE.==613 ;FALSE
FD.==214 ;FD
FILE.==325 ;FILE
FILEC.==112 ;FILE-CONTROL
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
FREE.==063 ;FREE
FREED.==523 ;FREED
FROM.==330 ;FROM
GEN.==041 ;GENERATE
GET.==050 ;GET
GIVIN.==331 ;GIVING
GLOBL.==614 ;GLOBAL
GO.==016 ;GO
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
INITL.==461 ;INITIAL
INITI.==075 ;INITIALIZE
INIT.==040 ;INITIATE
INPUT.==335 ;INPUT
INSRT.==046 ;INSERT
INSPC.==067 ;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[S]
LINAG.==552 ;LINAGE
LNGCO.==553 ;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.==070 ;MERGE
MODE.==151 ;MODE
MODIF.==047 ;MODIFY
MODUL.==117 ;MODULES
MOVE.==020 ;MOVE
MSG.==467 ;MESSAGE
MULTP.==120 ;MULTIPLE
MULTI.==021 ;MULTIPLY
NATIV.==555 ;NATIVE
NEGAT.==345 ;NEGATIVE
NEXT.==346 ;NEXT
NO.==347 ;NO
NONE.==517 ;NONE
NOT.==350 ;NOT
NUMBR.==270 ;NUMBER
NUMED.==616 ;NUMERIC-EDITED
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.==556 ;ORGANIZATION
ORDER.==617 ;ORDER
OTHER.==515 ;OTHER[S]
OUTPU.==354 ;OUTPUT
OVRFL.==430 ;OVERFLOW
OWNER.==434 ;OWNER
PADD.==620 ;PADDING
PAGE.==510 ;PAGE
PARIT.==162 ;PARITY
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.==560 ;PRINTING
PRVCY.==452 ;PRIVACY
PROC.==411 ;PROCEDURE[S]
PROCE.==356 ;PROCEED
PRCSS.==125 ;PROCESS
PGM.==427 ;PROGRAM
PGMID.==126 ;PROGRAM-ID
PROT.==455 ;PROTECTED
PROTC.==533 ;PROTECTION
PURG.==076 ;PURGE
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.==561 ;REFERENCES
RELAT.==152 ;RELATIVE
RELEA.==026 ;RELEASE
REMAI.==413 ;REMAINDER
REMOV.==051 ;REMOVE, REMOVAL
RENAM.==231 ;RENAMES
REPLC.==077 ;REPLACE
REPLA.==361 ;REPLACING
REPOR.==273 ;REPORT[S]
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
RFMOD.==621 ;REFERENCE-MODIFIER
RH.==250 ;RH
RIGHT.==232 ;RIGHT
RMS.==554 ;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
SGMNT.==502 ;SEGMENT
SEGME.==135 ;SEGMENT-LIMITS
SELEC.==136 ;SELECT
SELTV.==442 ;SELECTIVE
SEND.==054 ;SEND
SENT.==367 ;SENTENCE
SEPER.==562 ;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.==563 ;SORT-MERGE
SOUR.==275 ;SOURCE
SOURC.==141 ;SOURCE-COMPUTER
SPACE.==703 ;SPACE
SPECI.==142 ;SPECIAL-NAMES
STAND.==407 ;STANDARD
STND1.==564 ;STANDARD-1
STND2.==622 ;STANDARD-2
STDAS.==155 ;STANDARD-ASCII
STATU.==444 ;STATUS
START.==071 ;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.==072 ;SUPPRESS
SWTCH.==416 ;SWITCH
SYMBL.==462 ;SYMBOLIC
SYNCH.==235 ;SYNCHRONIZED
TABLE.==477 ;TABLE
TAPE.==144 ;TAPE
TERML.==507 ;TERMINAL
TERM.==042 ;TERMINATE
TEST.==623 ;TEST
TEXT.==472 ;TEXT
THEN.==624 ;THEN
TLYNG.==370 ;TALLYING
THAN.==371 ;THAN
THRU.==372 ;THROUGH
TIME..==471 ;TIME
TIMES.==373 ;TIMES
TO.==374 ;TO
TOP.==570 ;TOP
TRAC.==057 ;TRACE
TRAIL.==565 ;TRAILING
TRANS.==531 ;TRANSACTION
TRUE.==625 ;TRUE
TYPE.==247 ;TYPE
UNAVA.==520 ;UNAVAILABLE
UNIT.==360 ;UNIT
UNLOC.==626 ;UNLOCK (VERB)
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
COLON.==764 ;:
.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
ALPBN.==1022 ;ALPHABET-NAME
SYCHN.==1023 ;SYMBOLIC-CHARACTER
AMRGN.==2000 ;IN A-MARGIN
;GENFIL OPERATORS
SDELIM==136
STRNG==137
UDELIM==140
UNSDES==141
UNSTR==142
;GENFIL OPERATOR CODES
OPMOVE==001 ;MOVE A TO B,...
OPADD== 002 ;ADD A,B... (GIVING...)
OPADDT==003 ;ADD A,... (TO...)
OPSUB== 004 ;SUBTRACT A,... FROM B (GIVING...)
OPSUBF==005 ;SUBTRACT A,... (FROM...)
OPMUL== 006 ;MULTIPLY A BY B (GIVING...)
OPMULB==007 ;MULTIPLY A (BY...)
OPDIV== 010 ;DIVIDE A BY B (GIVING...)
OPRESU==011 ;GIVING (FROM,TO,BY) A,...
OPREMA==012 ;REMAINDER A
OPDIVB==013 ;DIVIDE A BY B (NO GIVING)
OPDCLS==014 ;START OF DECLARATIVES
OPDCLE==015 ;END OF DECLARATIVES
OPUSE== 016 ;USE AFTER ...
OPUSDB==017 ;USE FOR DEBUGGING
OPIF== 020 ;IF A (=, <, >) B
OPIFC== 021 ;IF CONDITION-NAME-A
OPIFT== 022 ;IF NUMERIC, POSITIVE,...
OPSPIF==023 ;AT END, INV.KEY, SIZE ERROR
OPELSE==024 ;BEGINNING OF ELSE PATH FOR CONDITIONAL
OPIFU== 025 ;IF IN PERFORM UNTIL
OPENDI==026 ;END OF CONDITIONAL
OPGO== 030 ;GO TO A
OPGODE==031 ;GO TO A,... DEPENDING ON B
OPPERF==032 ;PERFORM A [THRU B]
OPPRFT==033 ;PERFORM A [THRU B] C TIMES
OPALTE==034 ;ALTER A TO PROCEED TO B
OPSEAR==035 ;SEARCH A
OPSINC==036 ;SEARCH INCREMENT
OPSTOP==040 ;STOP RUN, STOP A
OPINSP==042 ;INSPECT A TALLYING B [REPLACING C]
OPSETT==043 ;SET A,... TO B
OPSETD==044 ;SET A,... DOWN BY B
OPSETU==045 ;SET A,... UP BY B
OPUSIN==046 ;(ENTER B) USING A,...
OPENTE==047 ;ENTER
OPCOMP==050 ;COMPUTE B=...
OPCADD==051 ;+A
OPCSUB==052 ;-A
OPCMUL==053 ;*A
OPCDIV==054 ;/A
OPCEXP==055 ;**A
OPCEND==057 ;END OF COMPUTE
OPACCE==060 ;ACCEPT A,... [FROM B]
OPDISP==061 ;DISPLAY A,... [UPON B]
OPOPEN==062 ;OPEN A
OPCLOS==063 ;CLOSE A
OPREAD==064 ;READ A
OPWRIT==065 ;WRITE A [ADVANCING B]
OPRERI==066 ;REWRITE A
OPSTRT==067 ;START A
OPLPAR==070 ;LEFT PARENTHESIS
OPRPAR==071 ;RIGHT PARENTHESIS
OPEXP== 072 ;START EXPRESSION
OPENDE==073 ;END EXPRESSION
OPJUMP==074 ;GENERATED CONTROL TRANSFER
OPERAU==075 ;ERROR USE PROCEDURE
OPCLRE==076 ;CLEAR EOPTAB
OPNTRY==077 ;ENTRY A
OPSECN==100 ;SECTION-NAME-A
OPPARN==101 ;PARAGRAPH-NAME-A
OPTAGN==102 ;SPECIAL TAG (%NNNNN)
OPSENA==103 ;REFERENCE POINT FOR SENTENCES
OPENDS==104 ;END OF SECTION
OPYECC==105 ;IGNORE ALL PRECEDING OPERANDS
OPNOOP==106 ;NOOP
OPCOLL==107 ;COLLATING SEQUENCE FOR SORT/MERGE
OPSORT==110 ;SORT A ...
OPKEY== 111 ;KEY A
OPINPR==112 ;INPUT PROCEDURE IS A [THRU B]
OPOUTP==113 ;OUTPUT PROCEDURE IS A [THRU B]
OPGIVI==114 ;GIVING A
OPUSIN==115 ;USING A
OPENDS==116 ;END OF SORT STATEMENT
OPMERG==117 ;MERGE A ...
OPRELE==120 ;RELEASE A [FROM B]
OPRETU==121 ;RETURN A [INTO B]
OPDELE==122 ;DELETE A
OPINIT==123 ;INITIATE A
OPGENR==124 ;GENERATE A
OPTERM==125 ;TERMINATE A
OPTRAC==126 ;TRACE ON/OFF
OPCANC==130 ;CANCEL A
OPIFDB==131 ;IF DATA-BASE
OPDISA==132 ;DISABLE A
OPACTC==133 ;ACCEPT COUNT
OPSEND==134 ;SEND A
OPRECV==135 ;RECEIVE A
OPSDEL==136 ;STRING DELIMITER
OPSTRN==137 ;STRING A
OPUDEL==140 ;
OPUNSD==141 ;
OPUNST==142 ;UNSTRING A
OPFENQ==143 ;FILE ENQUEUE
OPFUNA==144 ;FILE UNAVAILABLE
OPEFUN==145 ;END FILE UNAVAILABLE
OPEFEN==146 ;END FILE ENQUEUE
OPRENQ==147 ;RECORD ENQUEUE
OPEREN==150 ;END RECORD ENQUEUE
OPERUN==151 ;END RECORD UNAVAILABLE
OPRDEQ==152 ;RECORD DEQUEUE
OPERDQ==153 ;END RECORD DEQUEUE
OPENRT==154 ;END NOT RETAINED
OPINSC==155 ;INSPECT CONVERTING
OPINST==156 ;INSPECT TALLYING
OPINSR==157 ;INSPECT REPLACING
OPCBPH==160 ;COMPILER BREAK IN PHASE
OPSUPR==161 ;SUPPRESS
OPSETC==162 ;SET condition-name TO TRUE
OPSWON==163 ;SET mnemonic-name TO ON
OPSWOF==164 ;SET mnemonic-name TO OFF
OPEVAL==165 ;EVALUATE
OPITLZ==166 ;INITIALIZE
OPIPRF==167 ;In-line PERFORM
OPEPRF==170 ;End in-line PERFORM
OPTRUE==171 ;"True" or "False" for EVALUATE
OPANY==172 ;"Any" for EVALUATE
OPEVND==173 ;END EVALUATE operator
OPEVSS==174 ;End SS operator for EVALUATE
OPEVGN==175 ;Process selection subject/object for EVALUATE
OPREFM==176 ;Reference modification op code
OPADTG==177 ;ADD ... TO ... GIVING ...
OPENDI==377 ;END OF SOURCE
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
.XCREF E.'N>
RADIX 10
ZZ==0
REPEAT 800,<ERRCOD \<ZZ==ZZ+1>>
IFN ANS82,<REPEAT 100,<ERRCOD\<ZZ==ZZ+1>>>
RADIX 8
;MAX SIZE OF LOW SEGMENT (LARGEST PC ALLOWED IS THIS - 1)
MLOWSZ==400000
;FOR DEBUGGER
TXTLEN==^D80 ;MAX # CHARS IN AN INPUT LINE
END