Trailing-Edge
-
PDP-10 Archives
-
BB-H580C-SB_1981
-
impure.mac
There are 23 other files named impure.mac in the archive. Click here to see a list.
; UPD ID= 3529 on 5/7/81 at 11:01 AM by WRIGHT
TITLE IMPURE FOR COBOL V12B
SUBTTL DEFINITION OF IMPURE AREA /CAM
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1974, 1981 BY DIGITAL EQUIPMENT CORPORATION
SEARCH P
%%P==:%%P
MCS==:MCS
TCS==:TCS
DBMS4==:DBMS4
DBMS==:DBMS
DEBUG==:DEBUG
ONESEG==:ONESEG
TOPS20==:TOPS20
;EDITS
;NAME DATE COMMENTS
;V12B****************
;DAW 18-Nov-80 [1077] "?ILL MEM REF" in PHASE E
;DAW 5-Nov-80 [1070] FIX MOVE CORRESPONDING WITH SUBSCRIPTED ITEMS
;DAW 31-OCT-80 [1067] ADD ESAVBI AREA FOR "IF NUMERIC = NON-NUMERIC"
;JSM 2-SEP-80 [1051] GET MCS FLAG WORDS OUT OF OVLAY AREA
;DMN 26-JUN-80 [1031] ADD VARIABLES FOR DBMS VERSION 6.
;JEH 24-JUN-80 [1027] BUILD RECORD NAME TABLE IF NESTED READS
;DMN 29-MAY-80 [1023] ADD FLAG FOR MULTIPLE WORDS IN COPY REPLACING TEST.
;DMN 22-APR-80 [1013] FIX LOOP IF MISSING == ON COPY REPLACING.
;DMN 1-APR-80 [1004] MAKE ASCII & EBCDIC COLLATING SEQUENCES WORK.
;DAW 31-JAN-81 [765] MORE SPACE FOR SUBSCRIPTS IN "STRSAV"
;DMN 30-JAN-80 [763] CHECK FOR DUPLICATE LINKAGE AND REPORT SECTIONS
;DMN 1-FEB-80 [762] IMPLEMENT AND USE D. P. FLOATING POINT LITERALS
;V12A****************
;MFY 3-Jul-79 [717] ADD ECNTA FOR "IF A NOT = SPACES" PROBLEM
;CLRH 3-APR-79 [674] GENERATE ERROR FOR BAD VALUE CLAUSE OF 88 LEVEL ITEM
;JSM 28-MAR-79 [670] FIX NESTED IF . ELSE PROBLEM
;DMN 13-MAR-79 [662] FIX EDIT 557, DEFINE PICNXT COMMON TO PHASES B, C, AND D
;DMN 9-MAR-79 [657] FIX PROBLEM WITH LOOKAHEAD IN COPY REPLACING INTEGER.
;DAW 8-MAR-79 [656] FIX PROBLEMS WITH DBMS USE PROCEDURES
;DMN 9-FEB-79 [633] GIVE BETTER WARNING ON LINE NUMBER WRAP-AROUND
;DMN 1-DEC-78 [605] MAKE VARIABLE LENGTH READS WORK USEFULLY
;V12*****************
;DMN 5-OCT-78 [566] SET FLAG WHEN TARGET OF DIVIDE IS COMP-1.
;DMN 19-SEP-78 [557] VARIOUS COPY REPLACING BUGS
;EHM 17-SEP-78 [553] GIVE ERROR IF RECORDS PER RERUN TOO LARGE
;V10*****************
;EHM 11-APR-77 [466] FIX COMPUTE FLOATING DIVIDE WITH ROUNDING
; 10-AUG-76 [435] ADD DCLTAG, ENDCLR
; 4-APR-76 [415] REPORT WRITER CLEANUP IN CLEANC
; 01/29/76 [401] ADD DBONLY FOR DBMS USE PROCS BEING THE ONLY ONES
;JEC 19/01/76 [374] ADD LITERR ERROR IN CONVERSION OF LITERAL
;GPS 12/23/74 ADD TEMPS FOR SIMULTANEOUS UPDATE
;ACK 12-JAN-75 1. ADD LOC FOR "/X" VALUE
; 2. ADD 2 LOC'S FOR OBJECT TIME PDL SIZE.
;SSC 6-FEB-75 ALTER THE DBMS PART OF COBOLC'S LOW SEG FOR THE
; CHANGES MADE TO DBDML MODULE.
;ACK 10-MAR-75 ADD LOC FOR CONVERSION INDEX FOR LITERALS.
;ACK 22-APR-75 ADD LOC'S FOR RUNTIME ADDRESSES OF EBCDIC
; FIGURATIVE CONSTANTS.
;DBT 5/5/75 ADD PICSAV AND MSKTMP FOR PICTURE PROCESSING
;SSC 11/10/75 FINISHED DATA CHANGES (UNDER DBMS4 SWIT) FOR V.4+DBMS INTERFACE
;********************
; EDIT 360 ADD NEGCMP
; EDIT 342 ADD RWSV10
; EDIT 340 - NOT DONE STRING/UNSTRING WAS REWRITTEN FOR V10.
; EDIT 335 ADD RPWERR
; EDIT 324 ADD DECLR.
; EDIT 315 ADDED HLDSRC AND HLDNAM AND LASCOL AND SAVDAT
; EDIT 306 ADD ESAVMD SAVE MODE OF FATHER.
; EDIT 305 ADD RWSAV9 INTRA GROUP REPORT LINE CNT
;EDIT 245 ADDED EINTR
;**EDIT 222 INCREASE THE SIZE OF VARBLK FROM ^D81 TO ^D135.
;**EDIT 167 ADD CURSIZ SIZE OF LITERAL
SALL
IMPURE: ENTRY IMPURE
DEFINE DEFIN (A,B),<INTERNAL A
A: BLOCK B>
DEFINE SETVAL (A,B),<INTERNAL A
A==B>
;ENTRY POINT FOR "KILL"
DEFIN WEDIED,2;
;GET NEXT PHASE
;ENTER WITH PHASE NAME IN GETFNM+1, STARTING ADDRESS INCREMENT IN GETFST,
; ADDRESS OF GETFNM IN TA.
;FOR A DESCRIPTION OF LOAD ROUTINE, SEE COBOLA.
;THE FOLLOWING ROUTINE IS COPIED FROM HI-SEGMENT BY COBOLA.
;IF COBOLA IS CHANGED THEN THESE DEFINITIONS MUST BE CHANGED ALSO
IFE ONESEG,<
DEFIN CANTGO,7 ;ERROR ROUTINE FOR "REENT" COMMAND
DEFIN GETLOD,^D14 ;THE LOAD ROUTINE ADDRESS
IFN DEBUG,<
BLOCK 1 ;CLEAR .JBSYM
>
IFE DEBUG,<
DEFIN DDTSTP,1 ;(JRST COBEXO)
>
IFN DEBUG,<
DDTSTP=:. ;PLACE FOR BREAKPOINT AFTER LOADING SEGMT
JRST COBEXO##
>
GETEND=:.-1
>;END IFE ONESEG
DEFIN GETFNM,6 ;THE LOAD PARAMETERS
IFE TOPS20,<
DEFIN GETPTH,9 ;ARG FOR LOAD PATH TO SFD
>
DEFIN GETFST,1 ;STARTING ADDRESS INCREMENT
;WORKING STORAGE
DEFIN COMBH,3; ;BUFFER HEADER IF COMMANDS FROM DISK OR TMPCOR
DEFIN PPLIST,^D80; ;[%316] ADDED 20 WORDS -- PUSH-DOWN LIST
SETVAL PPSIZE,PPLIST-.
DEFIN PHASEN,1; ;CURRENT PHASE NUMBER
DEFIN TOPLOC,1; ;LOCATION AFTER HIGHEST LOC IN IMPURE AREA
DEFIN SAVJFF,1; ;FIRST LOCATION AFTER COMMAND BUFFER
DEFIN VERZUN,4 ;VERSION NUMBER (IN ASCII)
DEFIN COMEXT,1 ;EXTENSION FOR INDIRECT COMMAND FILE (IN RH)
DEFIN RUNPPN,1 ;PPN OF COBOL RUN COMMAND
DEFIN RUNDEV,1 ;DEVICE OF COBOL RUN COMMAND
DEFIN SRCFIL,3 ;SOURCE FILE INFO FOR LISTING
IFN DEBUG,<
DEFIN %ATIME,2;
DEFIN %RATIM,2;
DEFIN %BTIME,2;
DEFIN %RBTIM,2;
DEFIN %CTIME,2;
DEFIN %RCTIM,2;
DEFIN %DTIME,2;
DEFIN %RDTIM,2;
DEFIN %ETIME,2;
DEFIN %RETIM,2;
DEFIN %OTIME,2;
DEFIN %ROTIM,2;
DEFIN %FTIME,2;
DEFIN %RFTIM,2;
DEFIN %GTIME,2;
DEFIN %RGTIM,2;
DEFIN %TTIME,1;
DEFIN %RTIME,1;
SETVAL %KILLA,1;
SETVAL %KILLB,2;
SETVAL %KILLC,4;
SETVAL %KILLD,10;
SETVAL %KILLE,20;
SETVAL %KILLF,40;
SETVAL %KILLG,100;
%KILL=:%KILLA!%KILLB!%KILLC!%KILLD!%KILLE!%KILLF!%KILLG
SETVAL %KILFA,200;
SETVAL %KILFB,400;
SETVAL %KILFC,1000;
SETVAL %KILFD,2000;
SETVAL %KILFE,4000;
SETVAL %KILFF,10000;
SETVAL %KILFG,20000;
DEFIN IMPAT.,24 ;FOR PATCHING
;FOR HANDAN
DEFIN TXTBUF,<TXTLEN/5+1>
DEFIN ATMBUF,<TXTLEN/5+1>
DEFIN DEBC0,^D16 ;SAVED ACS FOR DEBUGGER
IFN TOPS20,<
DEFIN NOIBLK,2 ;NOISE BLOCK
DEFIN CMDBLK,^D10 ;COMMAND JSYS BLOCK
>;END IFN TOPS20
IFE TOPS20,<
DEFIN PRSBBP,1 ;SAVED BP TO PARSE LINE
DEFIN TXTBBP,1 ; (AND ANOTHER)
DEFIN HLPTXT,1 ;ADDRESS OF ASCII HELP TEXT
DEFIN PRSCHR,1 ;SAVED PARSE CHARACTER
>;END IFE TOPS20
>;END OF IFN DEBUG
;LOCATIONS USED BY "KILL"
DEFIN KILLAC,20; ;SAVE AC'S FOR KILL
DEFIN KBHO,3; ;BUFFER HEADER FOR DUMP OUTPUT
DEFIN KBHI,3; ;BUFFER HEADER FOR SCRATCH INPUT
DEFIN KILLPL,20; ;PUSH-DOWN LIST
DEFIN KBUFI,0; ;START OF INPUT BUFFER
SETVAL KDATA,KBUFI+406 ;HOLDS A PAGE OF DATA
;FIRST LOCATION TO BE CLEARED UPON INITIALIZATION
SETVAL FSTCLR,.;
DEFIN COBVER,1 ;ADDR OF ARGUMENTS FOR SELOTS CALL
DEFIN SUBPRG,1 ;0=MAIN PROGRAM, -1=SUBPROGRAM
DEFIN SLASHJ,1 ;0=/J NOT USED, -1=/J ON
DEFIN DEFDSP,1 ;DEFAULT DISPLAY MODE
DEFIN DEFSGN,1 ;DEFAULT NUMERIC SIGN POSITION
DEFIN OJPPSZ,2 ;SIZE OF THE OBJECT TIME PDL.
DEFIN RETPTR,1 ;%PARAM ADDR OF RETURN PTR FOR PROGRAM
DEFIN PRGENT,1 ;PROGRAM-ID ENTRY POINT
DEFIN PCHOLD,1 ;STORE FOR EAS1PC WHILE DOING LINKAGE SECTION
DEFIN SEQIN,1 ;NON-ZERO IF INPUT HAS SEQUENCE NUMBERS
DEFIN PAGCNT,1; ;COUNT OF LINES PER PAGE FOR LISTING
DEFIN PROGID,1; ;PROGRAM-ID
DEFIN PIDLNK,1 ;LINK TO EXTAB ENTRY FOR PROGRAM-ID
DEFIN OBJSIZ,1; ;SIZE OF CORE, IN WORDS
DEFIN SEGLIM,1; ;THE SEGMENT LIMIT
DEFIN STDATE,2; ;STARTING DATE (DD-MMM-YY)
DEFIN STTIME,1; ;STARTING TIME (HH:MM)
DEFIN DCPNT.,1; ;CHARACTER FOR DECIMAL POINT
DEFIN COMA.,1; ;CHARACTER FOR COMMA
DEFIN DOLLR.,1; ;CHARACTER FOR CURRENCY SIGN
DEFIN SAVEAC,20; ;SAVE AC'S
DEFIN FILTBL,1 ;STARTING LOCATION FOR OBJECT FILE TABLES
DEFIN IMPPAR,1; ;STARTING LOCATION OF OBJECT PARAMS IN IMPURE AREA
IFN RPW,<
DEFIN RPWPRS,1 ;PHASE D: # OF PARAMS USED FOR RPW
;PHASE E: %PARAM OFFSET FOR RPW PARAMS
>;END IFN RPW
DEFIN ALTBAS,1 ;STARTING LOCATION FOR OBJECT ALTER TABLE
DEFIN A50BAS,1 ;STARTING LOCATION FOR ALTER TABLE FOR >49
DEFIN DATBAS,1 ;START OF DATA DIVISION
DEFIN TEMBAS,1 ;START OF TEMPORARIES
DEFIN USEBAS,1 ;BASE OF USE TABLE
DEFIN RESDNT,1 ;STARTING LOCATION FOR OBJECT RESIDENT CODING
DEFIN NONRES,1; ;STARTING LOCATION FOR NON-RESIDENT OBJECT CODING
DEFIN TAGCNT,1 ;NEXT SPECIAL TAG NUMBER TO USE
DEFIN PROGST,1 ;TABLE-LINK TO FIRST EXECUTED PROCEDURE-NAME
IFN ANS74,<
DEFIN PROGLN,1 ;LINE NUMBER OF PROCEDURE-NAME IN PROGST
>
DEFIN DECLR.,1 ; [324] IF NON-ZERO PROGRAM HAS DECLARITIVES
DEFIN RPWERR,1 ;[335] IF NON-ZERO FATAL ERROR IN REPORT GENERATION
DEFIN HDRPAG,1 ;PAGE NUMBER FOR LISTING
DEFIN ARGSTR,1
; ** NEW STRING/UNSTRING LOCS **
DEFIN STFLGS,1 ; FLAGS FOR RH OF FIRST WORD OF STRING ARGS
DEFIN STSSO,1 ;STRING SOURCE-SERIES OFFSET IN TEMTAB
DEFIN STPTO,1 ;IF POINTER ITEM, POINTS TO TEMTAB WHERE
; POINTER ITEM IS STORED.
DEFIN SDSTIN,1 ;STRING DEST. INFO (BSI.DEST)
DEFIN NSTRSE,1 ;# OF SOURCE-SERIES
DEFIN STSEST,1 ;START OF STRING-SERIES IN EOPTAB
DEFIN STSELS,1 ;LAST OPERAND SEEN IN STRING-SERIES
DEFIN STSENS,1 ;# SOURCES IN THIS STRING-SERIES
DEFIN STSENX,1 ;REL ADDR IN EOPTAB OF START OF NEXT
; STRING-SERIES
DEFIN STSETP,1 ;POINTER TO TEMTAB ENTRY OF FIRST STRING-SERIES
DEFIN CURSSE,1 ;PTR INTO TEMTAB FOR CURRENT SS ENTRY
DEFIN CURSRE,1 ;PTR INTO TEMTAB FOR CURRENT SOURCE ENTRY
DEFIN UNSNMF,1 ;-1 IF UNSTRING SENDING ITEM IS NUMERIC, ELSE 0
DEFIN USENII,1 ;LH= MAX SIZE OF SENDING ITEM
;RH = BSI OF SENDING ITEM
DEFIN UNSFLG,1 ;RH= UNSTRING FLAGS
DEFIN UNSTLY,1 ;LH = TAG OF ROUTINE TO STORE TALLY VALUE
;RH = PTR IN TEMTAB OF TALLY OPERAND
DEFIN UNSDLE,1 ;PTR TO FIRST DELIM ENTRY IN TEMTAB
DEFIN CURDE,1 ;CURRENT DELIM ENTRY PTR IN TEMTAB
DEFIN CURUS,1 ;CURRENT UNSTRING-SERIES ENTRY PTR IN TEMTAB
;[765] STRSAV IS THE SAVED INFORMATION OF A PARSED ITEM, POSSIBLY
;[765] WITH SUBSCRIPTS. THE FIRST TWO WORDS IS THE ITEM ITSELF,
;[765] AND STRSAV+2 CONTAINS THE NUMBER OF SUBSCRIPTS. STARTING AT
;[765] STRSAV+3 THERE IS ROOM FOR SUBSCRIPTS, FOUR WORDS FOR EACH (TWO
;[765] FOR THE ITEM AND TWO FOR AN ADDITIVE).
DEFIN STRSAV,3+<MAXSUB*4> ;[765] TEMP STORAGE FOR STRING SUBSCPT STUFF
; ** END OF NEW STRING/UNSTRING LOCS **
IFN MCS!TCS,<
DEFIN M.IARG,1 ;ADDR OF ARG LIST FOR MCS INIT ROUTINE
DEFIN M.AFLG,1 ;FLAG WORD FOR SEND GENERATOR
DEFIN CSSEEN,1 ;NON-ZERO IF COMMUN. SECTION SEEN ;[1051]
DEFIN FINITL,1 ;"INITIAL" SEEN FLAG ;[1051]
>
; THE FOLLOWING ARE USED BY STRGEN AS WELL AS MCS!TCS GENERATORS
DEFIN M.ARG1,1 ;PTR TO ARG1
DEFIN M.ARG2,1
DEFIN M.ARG3,1
DEFIN M.ARG4,1
DEFIN M.ARG5,1
IFN DBMS,<DEFIN SCHSEC,1 ;NON-ZERO IF SCHEMA SECTION SEEN
DEFIN DBONLY,1 ;[401] =0 IF ONLY USE PROC IS DBMS, =-1 OTHERWISE
DEFIN DBUSES,1> ;ADDR OF ARG LIST FOR DBMS INITDB ROUTINE
DEFIN EAS1PC,1 ;PROGRAM COUNTER FOR DATA AREA
DEFIN EAS2PC,1 ;PROGRAM COUNTER FOR RESIDENT SEGMENT
DEFIN GENWRD,1 ;NEXT RELATIVE WORD TO BE WRITTEN ONTO GENFIL
DEFIN HILOC,1 ;LIGHEST LOC IN RUN-TIME IMPURE AREA
DEFIN HPLOC,1 ;HIGHEST LOC IN RUN-TIME RESIDENT SEGMENT
DEFIN SEGFLG,1 ;NON-ZERO IF WE HAVE OVERLAY SEGMENTS
IFN DEBUG,<DEFIN CORESW,1 ;FLAGS USED TO HELP IN NODE TRACING
DEFIN TRCLN1,1 ;LOWER BOUND OF TRACE
DEFIN TRCLN2,1> ;UPPER BOUND OF TRACE
DEFIN CREFSW,1 ;NON-ZERO IF '/C' IN COMMAND STRING
DEFIN OPTSW,1 ;NON-ZERO IF '/O' TYPED IN COMMAND STRING
DEFIN PRODSW,1 ;NON-ZERO IF '/P' TYPED IN COMMAND STRING
DEFIN QUIKSW,1 ;NON-ZERO IF '/Q' TYPED IN COMMAND STRING
IFN TOPS20,<
DEFIN RENSW,1 ;-1 IF /R SEEN ON TOPS-20
; GIVES 2-SEG CODE BUT NON-SHAREABLE OTS
>
DEFIN INDELC,1 ;# INSTRUCTIONS DELETED BY PHASE O
DEFIN TAGDLC,1 ;# TAGS DELETED BY O AND G
IFN ANS74,<
DEFIN RELKEY,1 ;-1 IF RELATIVE KEY CONVERSION REQUIRED
DEFIN COLSEQ,1 ;PROGRAM COLLATING SEQUENCE ALPHABET-NAME PTR
;[1004] LHS = -1, IF RHS = ASCII OR EBCDIC
DEFIN COLSCP,1 ;[1004] -1 IF SPECIAL ACTION REQUIRED IN SUBSCRIPTOR FOR COLL. SEQ.
DEFIN COLNCP,1 ;STORES LN,,CP FOR ALPHABET-NAME INCASE OF ERROR
DEFIN DEBSW,1 ;-1 IF DEBUG CODE TO BE GENERATED
DEFIN FLGSW,1 ;-1 IF EXTENSIONS TO ANS-74 ARE TO BE FLAGGED
DEFIN DEBALP,1 ;-1 IF USE ON DEBUGGING ALL PROCEDURES WAS SEEN
DEFIN DBPARM,1 ;HOLDS %PARAM+N FOR DEBUGGING USE PROCEDURE
>
DEFIN DWLNCP,1 ;HOLDS LN,,CP OF SOME ITEM WHICH IS PRESERVED
; OVER CALLS TO GETITM. NOW USED JUST FOR
;"START.." STATEMENT TO FLAG START USED AS
; A PARAGRAPH NAME.
SETVAL NTNSIZ,-^D19 ;NUMBER OF ENTRIES IN SIZTAB (NEGATIVE)
DEFIN SIZTAB,^D19 ;TABLE OF QUANTUM SIZES FOR NM1TAB,NM2TAB
DEFIN NRESSN,1 ;-1 IF NON-RESIDENT SECTION SEEN (USED BY EXIT)
IFN CSTATS,<
DEFIN METRSW,1 ;-1 if "WITH METER--ING"
>
IFE TOPS20,<
DEFIN MYPATH,2 ;FIRST PART OF DEFAULT PATH
>
DEFIN MYPPN,1 ;LOGGED IN PPN
IFE TOPS20,<
DEFIN MYSFD,6 ;REST OF DEFAULT PATH
>
DEFIN WRAPNO,1 ;[633] NUMBER OF TIMES LINE NUMBER WRAP-AROUND HAS OCCURED
DEFIN RVBLT,3 ;IMPLEMENT REVERSE BLT USING TE
IFN FT68274,<
DEFIN CVTRWM,1 ;NON-ZERO IF RESERVED WORD IN "NAMWRD" WAS BEEN MODIFIED
DEFIN CVTXLC,1 ;CONTAINS CODE IF SPECIAL EXTRA LINES HAVE TO BE GENERATED
DEFIN CVTTLY,1 ;LN & CP OF GENERATED TALLY (ZERO IF ACTUALLY REQUIRED)
DEFIN CVTPLF,1 ;NON-ZERO IF CVTPLB CONTAINS VALID INFO
DEFIN CVTCPF,1 ;NON-ZERO IF PREVIOUS LINE SHOULD BE COMMENTED
DEFIN CVTCCF,1 ;NON-ZERO IF CURRENT LINE SHOULD BE COMMENTED
DEFIN CVTCAL,1 ;NON-ZERO IF ALL FOLLOWING LINES SHOULD BE COMMENTED
DEFIN CVTSCP,1 ;WHERE TO SAVE VALUE OF CVTBFP FOR CURRENT WORD
DEFIN CVTSNP,1 ;WHERE TO SAVE VALUE OF CVTBFP FOR NEXT WORD
DEFIN CVTBFC,1 ;COUNT OF CHAR LEFT IN LINE BUFFER
DEFIN CVTBFP,1 ;DEPOSIT BYTE POINTER TO LINE BUFFER
DEFIN CVTPXC,1 ;EXTRA CHARACTERS IN PREVIOUS LINE
DEFIN CVTCXC,1 ;EXTRA CHARACTERS IN CURRENT LINE
DEFIN CVTW1,1 ;W1 WHEN CVTLIT IS STORED (INCASE ITS NOT A LIT)
DEFIN CVTLIT,1 ;1 CHARACTER LITERAL FOR EXAMINE/INSPECT CONVERSION
DEFIN CVTSEQ,1 ;HOLD CURRENT SOS LINE SEQ. NO. IF IN COPY LIBRARY
SETVAL CVTLBZ,<^D132/5+1> ;LENGTH OF LINE BUFFER
DEFIN CVTPLB,CVTLBZ ;PREVIOUS LINE BUFFER FOR CONVERSION
DEFIN CVTLBF,CVTLBZ ;LINE BUFFER FOR CONVERSION
>
DEFIN EBASEA,1 ;TABLE-LINK TO "A" OPERAND (RH)
SETVAL ERESA,EBASEA ;RESIDUE FOR "A" (LH)
DEFIN EINCRA,1 ;CURRENT INCREMENT FOR "A" OPERAND
DEFIN ESIZEA,1 ;SIZE OF "A"
DEFIN EMODEA,1 ;USAGE OF "A"
DEFIN EDPLA,1 ;DECIMAL PLACES IN "A" OPERAND
DEFIN EBYTEA,1 ;BYTE POINTER TO LITERAL VALUE
DEFIN ETABLA,1 ;TABLE LINK TO ITEM
DEFIN EFLAGA,1 ;VARIOUS FLAGS FOR "A"
DEFIN EBASEB,1 ;TABLE-LINK TO "B" OPERAND (RH)
SETVAL ERESB,EBASEB ;RESIDUE FOR "B" (LH)
DEFIN EINCRB,1 ;INCREMENT FOR "B"
DEFIN ESIZEB,1 ;SIZE OF "B"
DEFIN EMODEB,1 ;USAGE OF "B"
DEFIN EDPLB,1 ;DECIMAL PLACES OF "B"
DEFIN EBYTEB,1 ;BYTE POINTER TO LITERAL VALUE
DEFIN ETABLB,1 ;TABLE LINK TO "B"
DEFIN EFLAGB,1 ;VARIOUS FLAGS FOR "B"
SETVAL EBASEX,0;
SETVAL ERESX,0;
SETVAL EINCRX,1;
SETVAL ESIZEX,2;
SETVAL EMODEX,3;
SETVAL EDPLX,4;
SETVAL EBYTEX,5;
SETVAL ETABLX,6;
SETVAL EFLAGX,7;
DEFINE TABSET (A,B,C,E,F,G,H), <
IFIDN <NAM><A><
SETVAL NAMPSZ,^D'B
SETVAL NAMNSZ,-NAMPSZ>
DEFIN A'LOC,1;
DEFIN A'NXT,1;
DEFIN CUR'A,1;
>
TABLES
DEFIN ENDFT,1 ;END OF FILE TABLES (SET TO ZERO BY COBOLA)
IFN XPNTST,<
DEFIN TYPXPN,1; ;SET TO NON-ZERO WHEN DEBUGGING AND
; WANT TO WATCH THE TABLES EXPAND
>
DEFIN FREESP,1; ;NUMBER OF FREE WORDS IN LH, FIRST FREE WORD IN RH
;NM1TAB, NM2TAB
IFN DEBUG,<
DEFIN NAMCT0,1 ;USED AS A COUNTER IN TRYNAM
DEFIN NAMCT1,1 ;COUNT OF THE NUMBER OF CALLS TO TRYNAM
DEFIN NAMCT2,1 ;COUNT OF THE NUMBER OF ITERATIONS IN TRYNAM
DEFIN NAMCT3,1 ;COUNT OF THE NUMBER OF ENTRIES IN NAMTAB
SETVAL DISTSZ,13 ;SIZE OF NAMDIS
DEFIN NAMDIS,DISTSZ ;A TABLE OF SEARCH DISTRIBUTIONS
>
SETVAL NM1SIZ,^D1499;
SETVAL NAMBAS,2*NM1SIZ+NAMPSZ+2;
DEFIN NM1LOC,1 ;ADDRESS OF FIRST WORD OF NM1TAB
DEFIN NM2LOC,1 ;ADDRESS OF FIRST WORD OF NM2TAB
DEFIN NM12SZ,1 ;SIZE OF BOTH NM1TAB AND NM2TAB
DEFIN NSZPTR,1 ;POINTER TO SIZE TABLE FOR NAMTAB
DEFIN NAMIOL,2 ;I/O LIST TO READ/WRITE NAMTAB
DEFIN FTOOBG,1 ;-1 IF LOW SEG GOT TOO BIG
IFN ANS74,<
DEFIN USP.I,1 ; ADDRESS OF AT END USE PROCEDURE FOR INPUT
DEFIN USP.O,1 ; ... FOR OUTPUT
DEFIN USP.IO,1 ; ... FOR INPUT-OUTPUT
DEFIN USP.X,1 ; ... FOR EXTEND
DEFIN PRGCOL,400 ;PROGRAM COLLATING SEQUENCE
PRGZRL==:.-1 ;LAST LOCATION TO INITIALIZE
DEFIN ILCSIX,1 ;COUNT OF ILLEGAL SIXBIT CHARS. SEEN SO FAR IN PRG COL SEQ
DEFIN EXCEBC,1 ;COUNT OF EBCDIC ONLY CHARS. SEEN SO FAR IN PRG COL SEQ
DEFIN COHVLV,6 ;HIGH-VALUE & LOW-VALUE IN PROG COL SEQ
>
DEFIN RMSFLS,1 ;-1 IF RMS FILES ARE USED IN THE PROGRAM
DEFIN NFILES,1 ;# OF FILES USED IN THE PROGRAM MODULE
;I/O DATA TABLE
DEFINE IOLIST (A,C), <
DEFIN A'DEV,1
DEFIN A'HDR,2
DEFIN A'BLK,1
DEFIN A'BUF,1
IFE C-1 <DEFIN A'PP,1
DEFIN A'SWS,1>
IFE C-1 <DEFIN A'BH,3>
IFE C-2 <DEFIN A'BHI,3
DEFIN A'BHO,3>
IFE TOPS20,<IFE C-1,<DEFIN A'PTH,9>>
>
IOLIST SRC,1;
IOLIST LST,1;
IOLIST BIN,1;
IOLIST LIB,1;
IOLIST NAM,2;
IOLIST ERA,2;
IOLIST GEN,2;
IOLIST CPY,2;
IOLIST AS1,2;
IOLIST AS2,2;
IOLIST AS3,2;
IOLIST LIT,2;
IOLIST CRF,2;
;STORAGE FOR ADDITIONAL FILES
SETVAL DEVSIZ,7 ;SIZE OF SRC, LST, BIN & LIB ENTRIES
DEFIN IOSRCS,DEVSIZ*^D11 ;ADDITIONAL ENTRIES
DEFIN SRCEND,1 ;ADDRESS OF FIRST EMPTY "IOSRCS" ENTRY
;VALUES USED TO ADDRESS WORDS OF AN ENTRY
SETVAL DEVDEV,0 ;DEVICE NAME
SETVAL DEVFIL,1 ;FILE NAME
SETVAL DEVEXT,2 ;EXTENSION
SETVAL DEVTIM,3 ;CREATION TIME OF FILE
SETVAL DEVBLK,3 ;SEGMENT COUNT DURING READ/WRITE
SETVAL DEVBUF,4 ;STARTING LOCATION FOR BUFFERS
SETVAL DEVPP,5 ;PROJECT-PROGRAMMER NUMBER
SETVAL DEVSW,6 ;SWITCHES SEEN WHEN SCANNING COMMAND
SETVAL DEVBH,7 ;3-WORD BUFFER CONTROL FOR ONE-WAY DEVICE
SETVAL DEVBHI,5 ;3-WORD BUFFER CONTROL FOR INPUT SIDE
SETVAL DEVBHO,10;3-WORD CONTROL FOR OUTPUT SIDE
IFE TOPS20,<
SETVAL DEVPTH,12;START OF PATH BLOCK
SETVAL DEVDIR,14;PPN
SETVAL DEVSFD,15;START OF SFD LIST
>
SETVAL LIBTOP,LIBDEV+DEVSIZ-1 ;LAST LOC IN LIB AREA
SETVAL SRCTOP,SRCDEV+DEVSIZ-1 ;LAST LOC IN SRC AREA
OVLAY==.
;AREA USED BY PHASES B, C & D WHICH MAY BE OVERLAYED BY PHASE E
RELOC OVLAY
;Note, do not split the following xxxxLN and xxxxCP word pairs.
;They are used by DMOVE/DMOVEM instructions.
DEFIN SAVELN,1 ;"LN" SAVED IN "GETCH"
DEFIN SAVECP,1 ;"CP" SAVED IN "GETCH"
DEFIN SAVLN1,1 ;"LN" SAVED IN "GETWRD"
DEFIN SAVCP1,1 ;"CP" SAVED IN "GETWRD"
DEFIN WORDLN,1 ;"LN" FOR FIRST CHAR OF DATUM
DEFIN WORDCP,1 ;"CP" FOR FIRST CHARACTER OF DATUM
DEFIN SAVPLN,1 ;[553] 'LN' FOR INTEGER ON SAVPTR STACK
DEFIN SAVPCP,1 ;[553] AND 'CP'
DEFIN BLNKLN,1 ;LINE NUMBER OF A SERIES OF BLANKS
DEFIN BLNKCP,1 ;CHARACTER POSITION OF FIRST OF A SERIES OF BLANKS
DEFIN SAVBLN,1 ;SAVE FOR BLNKLN
DEFIN SAVBCP,1 ;SAVE FOR BLNKCP
DEFIN SAVECH,1 ;TERMINATING PUNCTUATION OF A WORD
DEFIN SAVSEQ,2 ;SAVE SEQUENCE NUMBER
DEFIN SRCCOL,1 ;INPUT COLUMN (SAME AS INPTCP UNLESS TABS)
DEFIN NAMWRD,5 ;INPUT FOR "TRYNAM"
DEFIN SAVNAM,5 ;SAVE 'NAMWRD' DURING NAMTAB EXPANSION
DEFIN HLDSRC,3 ; [315] HOLD W1,W2 AND CT FOR LATER REGET
DEFIN HLDNAM,5 ; [315] HOLD NAMWRD FOR LATER REGET
DEFIN SAVDAT,1 ; [315] SAVES CURRENT DATAB ADDRESS OF ITEM FOR RPWDAT
DEFIN LITVAL,30 ;HOLDS A LITERAL OUT OF "GETWRD"
DEFIN INPTCP,1 ;INPUT CHARACTER POSITION FOR SEQUENCED SOURCE
DEFIN INPTST,1 ;FIRST INPUT CHAR POSITION FOR ITEM
DEFIN LASTDV,1 ;LAST DEVICE SEEN ON A COMMAND STRING
DEFIN NXTNAM,1 ;PLACE FOR NEXT NAMTAB ENTRY
DEFIN SAVEWD,3 ;TO SAVE "W1" & "W2"
DEFIN ITEMCT,1 ;TO SAVE "CT"
DEFIN NOCONT,1 ;IF NON-ZERO, CONTINUATION CARDS ARE ILLEGAL
DEFIN LIBNAM,2 ;A LIBRARY NAME
DEFIN CPYCP,1 ;CHARACTER POSITION OF WORD FOLLOWING COPY STATEMENT
DEFIN CPYW2,1 ;SAVE "W2" DURING COPY
DEFIN PRVTOK,1 ; [670] TO HOLD PREVIOUS TOKEN
IFN DEBUG,<DEFIN TRACFL,1> ;SYNTAX SCAN TRACE FLAG
DEFIN EOLKAR,1 ;END-OF-LINE CHARACTER FOR LAST LINE
DEFIN REGKAR,1 ;A CHARACTER FROM SRCFIL, SAVED UPON ENTERING SETLIB
DEFIN SAVAS1,1
DEFIN FSTIDX,1
DEFIN TERMQ,1 ;CHARACTER DELIMITING ALPHA LITERAL
DEFIN LSTW77,1 ;IF THE LAST LEVEL NUMBER SEEN WAS 77, 0 OTHERWISE -1.
DEFIN SAVETA,1
DEFIN CTR,1
DEFIN PNTR,1
DEFIN TBLOCK,25
DEFIN NODLST,100
SETVAL NDLNTH,.-NODLST
SETVAL NNDLNT,-NDLNTH
DEFIN NEWENT,1
DEFIN NEWTYP,1
DEFIN SLNK,1
DEFIN SAVE1,1
DEFIN CFLM,1
DEFIN NAMADR,1
DEFIN VALADR,1
DEFIN ESIZE,1
DEFIN LSIZE,1
DEFIN MNETYP,1
DEFIN LSTFIL,1
DEFIN NDEV,1
;DO NOT CHANGE ORDER OF OPRTR, ARG1, ARG2, ARG3
DEFIN OPRTR,2
DEFIN ARG1,2
DEFIN ARG2,2
DEFIN ARG3,2
DEFIN NSBSC1,1
DEFIN SBSCR1,MAXSUB*4
DEFIN NSBSC2,1
DEFIN SBSCR2,MAXSUB*4
DEFIN NSBSC3,1
DEFIN SBSCR3,MAXSUB*4
DEFIN LSTPRI,1
DEFIN PRIOR,1
DEFIN CURPAR,1
DEFIN GOTQUA,1
DEFIN NQUAL,1
DEFIN QUALT,^D102
DEFIN CURQUA,1
DEFIN FILSEC,1 ;FILE SECTION HAS BEEN SEEN
DEFIN SAVLST,100
SETVAL SVLNTH,.-SAVLST
SETVAL NSVLNT,-SVLNTH
;NOTE ... ARGL2 MUST IMMEDIATELY FOLLOW ARGLST
DEFIN ARGLST,IF.DEP
SETVAL ARGLSZ,ARGLST-.
DEFIN ARGL2,IF.DEP
SETVAL ARG2SZ,ARGL2-.
DEFIN SAMSRT,1 ;FLAG TO INDICATE 'SAME SORT' CLAUSE IN EFFECT
DEFIN WASERC,1 ;NON-ZERO IF PREVIOUS SOURCE WORD WAS 'SEARCH'
DEFIN RSSEEN,1 ;NON-ZERO IF REPORT SECTION SEEN
DEFIN COMSEC,1 ;COMMUNICATION SECTION ACTIVE FLAG
DEFIN DBNODE,1 ;SAVE NODE PTR HERE
DEFIN FINVD,1 ;NON-ZERO IF PHASE D IS TO PERFORM DBMS STUFF
DEFIN FINVOK,1 ;NON-ZERO IF WE ARE IN AN INVOKE STATEMENT
IFN DBMS,<
;;; STUFF THAT REMAINS FROM BEFORE V. 2A
DEFIN DB.PPN,1 ;WORD TO HOLD PPN IN INVOKE
DEFIN DBCNTC,1 ;COUNT OF INVOKES IN PHASE C
DEFIN DBCNTD,1 ;COUNT IF INVOKES PROCESSED IN D
;[%316] REMOVE OLD OPN,BUF, L/E BLKS
;[%316] DELETE MISCEL UNNEEDED DCL
DEFIN SBUFF1,204 ;SCHEMA FILE BUFFER
DEFIN DBUFF1,204 ;DBMS BUFFER RING
;[%316] MORE UNNEEDED STUFF
DEFIN INVLN,1 ;STORAGE FOR "INVOKE" LINE.
DEFIN INVCP,1 ;SAME FOR CHAR POS
DEFIN SCHASC,1 ;[%316]TO MAKE DMLVOK SIMPLER PROCESS IN ASCII
;[%316]EXTRA SPACE IS TO CONVERT "IN PLACE"
DEFIN SCHEMA,1 ;SAVE AREA FOR SCHEMA NAME
DEFIN SSASC,1 ;[%316]
DEFIN S.SCH,5 ;[%316] CAN BE 30 CHARS ...AND SUB-SCHEMA
DEFIN PKASC,1 ;[%316]
DEFIN PKEY,1 ;AND PRIVACY KEY.
DEFIN DBBUFH,3 ;INPUT BUFFER HEADER
DEFIN DBDEV,1 ;DEVICE NAME [DSK]
DEFIN DBBLCK,4 ;LOOKUP BLOCK
DEFIN DBOPBK,3 ;OPEN BLOCK
;[%316] THE NEW DECLARATIONS FOLLOW
;;; STUFF REFFED AS EXTERN'S FROM BOTH HOSTS
DEFIN INVSEE,1 ;[%316] SEEN AN INVOKE
DEFIN ACCSEE,1 ;[%316] SEEN AN ACCESS
IFN DBMS4,<
DEFIN(SYM.TB,^D31)
DEFIN(SYMTAB,1)
>
;;; SCHIO REPLACES DMLVIO, V.4 & LATER
;;; IT DOES SCHEMA I/O FOR EVERYONE,
;;; INCLUDING DBCS, WHICH MEANS IT CAN HAVE NO STAT LOWSEG
IFE DBMS4,<
DEFIN (AAA,^D8) ;FOR OPEND COMPAT
DEFIN (E.CNT,1)
DEFIN (SAVCC,1) ;DBCSF COMPAT
DEFIN (SBUF,1)
DEFIN (SSBUF,7)
DEFIN (RBUF,^D14)
DEFIN (DBUF,^D18)
DEFIN (CBUF,7)
DEFIN (MBUF,3)
DEFIN (OBUF,7)
DEFIN (TBUF,^D22)
DEFIN (WBUF,1) ;DUMMIES--NOT USED
DEFIN (ABUF,1)
DEFIN (CURRDBK,^D13) ;FOR SET OF SAME INDEX, CURRENT OF SET
DEFIN (NEXTDBK,^D13) ;DITTO FOR NEXT
DEFIN (PAGIOWD,2) ;FOR DUMP MODE I/O
DEFIN (GETPTR,1) ;PTS INTO BUFFER AT RUNCUR
DEFIN (GETTYP,1) ;DITTO BUT RECTYP
DEFIN (LRIDX,1) ;LEAST RECENTLY USED IDX
DEFIN (ADDBUF,2)
DEFIN (USEBUF,2)
DEFIN (PAGBUF,2)
>;END IFE DBMS4
;;; FOR DMLIO
DEFIN(OBJAREA,^D14) ;STORAGE FOR .FOR LINES
DEFIN(VOKAREA,^D14)
DEFIN(TEMPBP,2) ;USED IN WRITE
DEFIN(BUF.CP,2) ;ARG TO CHKSTR IN WRITE
DEFIN(LINCHK,2) ;DITTO FOR OBJOUT
DEFIN(NLEFT,1) ;FOR CHKSTR, IN OBJOUT
DEFIN(NN,1)
DEFIN(BUF.CN,1) ;DITTO FOR WRITE
DEFIN(B.OR.L,1) ;BUF OR LINE
;;; DMLVOK IS CHANGED BY USE OF SCHIO
;;; AND BY FUNCTIONAL EXPANSIONS OF V.4--AND CLEANUP
IFE DBMS4,<
DEFIN(CMNAREA,4)
DEFIN(SIZAREA,4)
DEFIN(CURAREA,6)
DEFIN(FORAREA,3)
DEFIN(TMPNAM,2) ;FOR DUPLIC SYMBOLS
DEFIN(DATTYP,2)
DEFIN(UNWIND,1) ;FOR HANDLING FATAL ERRORS
DEFIN(SYMDB,1) ;TABLE DESCRIPTOR FOR DUPLIC SYM
DEFIN(DBS.TB,3) ;HASH VECTOR FO DUPLIC
DEFIN(FILENM,1)
DEFIN(DASH,1)
DEFIN(NUMWRD,1)
DEFIN(UNDIDX,1)
DEFIN(PSUNYM,1)
DEFIN(NULLREC,1)
>;END IFE DBMS4
IFN DBMS4,<
DEFIN(SIZAREA,2)
DEFIN(TMPNAM,2) ;FOR DUPLIC SYMBOLS
DEFIN(UNWIND,1) ;FOR HANDLING FATAL ERRORS
DEFIN(FILENM,1)
DEFIN(DASH,1)
DEFIN(UNDIDX,1)
DEFIN(PSUNYM,1)
DEFIN(NULLREC,1)
DEFIN(TXTIDX,1)
DEFIN(LEVNO,2) ;STRING PTR, WILL CONTAIN 01 OR 02
DEFIN(PICBP,2) ;DITTO FOR PICTURE
DEFIN(CURN2,2) ;REALLY CURNAM, BUT COBOL ALREADY USES
;PTS AT CURR REC,AREA,DAT,ETC. NAME
IFN DBMS6,<
DEFIN(CURREC,2) ;[1031] RECORD NAME FOR QUALIFIED REFERENCES
DEFIN(VOKFLG,1) ;[1031] FLAG FOR NBUF DATANAME
>
DEFIN(A.TMP1,1) ;FOR CALLING STRLIB
DEFIN(A.TMP2,1) ;DITTO
>;END IFN DBMS4
;;; FOR DMLERR
DEFIN(ARG.T1,1)
DEFIN(ERRAREA,16)
;[%316] THESE DECLARATIONS MUST BE CONSECUTIVE AND AS ORDERED
;[%316] NON-ZERO VALUES ARE BLTED FROM HISEG
BL.NZ:: ;BEGIN BLT
DEFIN(RELCHAN,4) ;RESPEC BINDS AND SUCH; DECLARATIONS
DEFIN(RELHDR,4)
DEFIN(VOKCHAN,4)
DEFIN(VOKHDR,4)
DEFIN(RELOPN,3)
DEFIN(VOKOPN,3)
DEFIN(RELENT,5)
DEFIN(VOKENT,5)
DEFIN(OBJPTR,2)
DEFIN(VOKPTR,2)
DEFIN(FILLER,1) ;ARG CNT WORD
DEFIN(ARGWRI,5)
DEFIN(WRIFILL,^D8)
DEFIN(SCH.PT,2)
DEFIN(SS.PT,2)
DEFIN(KEY.PT,2)
IFE DBMS4,<DEFIN(SIZTXT,2)>
DEFIN(SIZONL,2)
IFE DBMS4,<DEFIN(CURN2,2)> ;MACRO TABSET PUTS OUT A CURNAM
DEFIN(ERRPTR,2)
EL.NZ==:.-1
>;END IFN DBMS
IFN MCS!TCS,<
IFN ANS68,<
DEFIN IFMSGF,1 ;FLAG FOR "IF MESSAGE"
>
DEFIN DATSAV,1 ;SAVE AREA FOR LEVEL 1 DATAB PTR
DEFIN HLDSAV,1 ;SAVE AREA FOR CURHLD
DEFIN CDBLK,^D11
DEFIN CDINDX,1 ;INDEX INTO CD BLK
DEFIN FILLNM,1 ;ADDRESS OF FILLER IN NAMTAB
>
DEFIN MCSCTR,1 ;NUMBER OF ARGS FOR SEND
DEFIN $LFPTR,1 ;DBP TO EOL CHAR IN PUTCPY
IFN ANS74!FT68274,<
DEFIN NOIDHY,1 ;-1 IF NO HYPHEN CONT. IN ID DIV.
>
IFN ANS74,<
DEFIN $LFCNT,1 ;CPYBHO+2 WHEN EOL STORED
DEFIN DCCFLG,1 ;-1 IF IN DATE-COMPILED COMMENT FIELD.
;<0,,-1> IF LINE SHOULD BE IGNORED
>
;THESE ARE FOR COBOL-74 COPY SYNTAX
DEFIN LIBDV,1 ;ACTUAL DEVICE SPECIFIED FOR COPY
SETVAL PSTLEN,^D1000 ;MAX. NUMBER OF CHAR. IN PSEUDO-TEXT
DEFIN RPLFLG,1 ;FLAGS STORED BEFORE COPY REPLACING
DEFIN CPYFLG,1 ;STORE STATUS OF FSEQ DURING COPY
DEFIN NCPYSW,1 ;-1 IF FNOCPY WAS SET EXTERNALLY
DEFIN RPLCP,1 ;STORE CP SO WE CAN BACKUP
DEFIN RPLICP,1 ;DITTO FOR INPUT COUNT
DEFIN RPLCST,1 ;INPTST STORED ON FIRST REPLACEMENT
DEFIN RPLBLK,1 ;CURRENT LIBRARY BLOCK NUMBER
DEFIN RPLLOC,1 ;POINTER TO START OF REPLACEMENT LIST
DEFIN RPLNXT,1 ;POINTER TO NEXT REPLACEMENT ITEM
DEFIN RPLNXW,1 ;POINTER TO NEXT REPLACEMENT WORD
DEFIN RPLCNT,1 ;COUNT OF REPLACEMENTS
DEFIN RPLBH,3 ;STORE BUFFER HEADER INFO
DEFIN PADCNT,1 ;NO. OF SPACES TO OUTPUT
DEFIN PARCNT,1 ;NO. OF PARENS SEEN DURING REPLACEMENT TEST
DEFIN TERSCN,1 ;[657] IF NON-ZERO TERMINATE CHAR. SCAN IF SAME CHARACTER
DEFIN PICNXT,1 ;[662] [557] -1 WHEN NEXT DATUM IS, OR COULD BE, A PICTURE STRING
DEFIN CPYRMW,1 ;[1023] -1 IF COPY REPLACING READ MULTIPLE WORDS
DEFIN SRCBFC,1 ;SOURCE BUFFER COUNT
DEFIN L1BH0,1 ;BLOCK NO. OF LIBRARY BEFORE
DEFIN L1BH1,1 ;BYTE PTR
DEFIN L1BH2,1 ;CHAR. COUNT
DEFIN L1CPO,1 ;OUTPUT CHAR POS.
DEFIN L1CPI,1 ;INPUT CHAR POS.
DEFIN L2BH0,1 ;BLOCK NO. OF LIBRARY IFTER
DEFIN L2BH1,1 ;BYTE PTR
DEFIN L2BH2,1 ;CHAR. COUNT
DEFIN L2CPO,1 ;OUTPUT CHAR POS.
DEFIN L2CPI,1 ;INPUT CHAR POS.
DEFIN R1LNO,1 ;[1013] OUTPUT LINE NUMBER
DEFIN R1CPO,1 ;OUTPUT CHAR POS.
DEFIN R1CPI,1 ;INPUT CHAR POS.
DEFIN R2BH0,1 ;SRC BUFFER COUNT
DEFIN R2BH1,1 ;SRC BYTE PTR
DEFIN R2BH2,1 ;SRC BYTE COUNT
DEFIN R2CPO,1 ;OUTPUT CHAR POS.
DEFIN R2CPI,1 ;INPUT CHAR POS.
;SAVE FIRST SPACE AT GETKAR
DEFIN R3BH0,1 ;SRC BUFFER COUNT
DEFIN R3BH1,1 ;SRC BYTE PTR
DEFIN R3BH2,1 ;SRC BYTE COUNT
DEFIN R3CPO,1 ;OUTPUT CHAR POS.
DEFIN R3CPI,1 ;INPUT CHAR POS.
;SAVE PERIOD BEFORE CALL TO GETKAR
DEFIN R4BH0,1 ;SRC BUFFER COUNT
DEFIN R4BH1,1 ;SRC BYTE PTR
DEFIN R4BH2,1 ;SRC BYTE COUNT
DEFIN R4CPO,1 ;OUTPUT CHAR POS.
DEFIN R4CPI,1 ;INPUT CHAR POS.
DEFIN PSTBUF,PSTLEN/5 ;PSEUDO-TEXT
IFN ANS74,<
DEFIN MAXDBC,1 ;MAXIMUM SIZE OF DEBUG-CONTENTS REQUIRED IF DEBUGGING MODE IS ON
>
HIGHB==.
;AREA USED BY PHASE B WHICH MAY BE OVERLAYED BY PHASE C
DEFIN SEENRU ;FLAG TO INDICATE WE HAVE SEEN /R OR /U
;/R = -1, /U = +1
IFN ANS74,<
DEFIN CURLNC,1 ;LN AND CP OF CURRENT CLAUSE FOR FIPS FLAGGER
DEFIN CURORG,1 ;HOLD FILE ORGANIZATION FOR VARIOUS FIPS FLAGGING ACTIONS
DEFIN RSLNCP,1 ;LN AND CP OF [RESERVE N AREAS] FOR FIPS FLAGGER
DEFIN SAMLNC,1 ;LN AND CP OF "SAME AREA" FOR FIPS FLAGGER
DEFIN SRALNC,1 ;LN AND CP OF "SAME RECORD AREA" FOR FIPS FLAGGER
DEFIN ASLNCP,1 ;LN AND CP OF ASSIGN CLAUSE FOR FIPS FLAGGER
>
;AREA USED BY PHASE C WHICH MAY BE OVERLAYED BY PHASE D
RELOC HIGHB
IFN RPW,<
DEFIN RPTSRT,0 ; [415] START OF REPORT WRITER CLEANC ITEMS
DEFIN RPTRPT,1 ; [415] CURRENT RD FOR SUM COUNTERS
DEFIN RPTNEW,1 ; [415] NEW RD FOUND TO PROCESS SUM COUNTERS
DEFIN RPTCID,1 ; [415] CID POINTER IN RD IN PROCESSES
DEFIN RPTNID,1 ; [415] NUMBER OF CID IN THIS RD
DEFIN RPTRHT,1 ; [415] REL,REAL TEMTAB LOC FOR CURREMT RD HEADER
DEFIN RPTNHT,1 ; [415] REL,REAL TEMTAB LOC FOR NEW RD HEADER
DEFIN RPTCIT,1 ; [415] TEMTAB LINK FOR 1ST ID IN RD,,0
DEFIN RPTFIN,0 ; [415] LAST LOACTION OF REPORT WRITER DATA
>;END IFN RPW
DEFIN DPSIZE,1 ;NUMBER OF DECIMAL PLACES IN A DATA ITEM
DEFIN EXSIZE,1 ;EXTERNAL SIZE OF DATA ITEM
DEFIN INSIZE,1 ;INTERNAL SIZE OF DATA ITEM
DEFIN MSKSIZ,1 ;NUMBER OF WORDS NEEDED TO CONTAIN MASK
DEFIN MSKWRD,4 ;CONTAINS MASK
DEFIN PICSAV,1 ;SAVE LOOKAHEAD PICTURE CHARACTER
DEFIN PNTS,1;
DEFIN PNTS2,1;
DEFIN LEVEL,1;
DEFIN NPADL,1;
DEFIN NPADR,1;
DEFIN ITMLOC,1;
DEFIN ITMRES,1;
DEFIN NCHITM,1;
DEFIN NCHLIT,1;
DEFIN NCHLI2,1;
DEFIN PADCHR,1;
DEFIN SVDWRD,1;
DEFIN SVDADR,1;
DEFIN NCHWRD,1;
DEFIN BYTEPT,1;
DEFIN BYTEP2,1;
DEFIN SIGNED,1;
DEFIN NLEADZ,1;
DEFIN NTRALZ,1;
DEFIN NINTGD,1;
DEFIN NFRACD,1;
DEFIN VALUE1,1;
DEFIN VALUE2,1;
DEFIN CONVR2,1; ;CONVERSION INDEX FOR DISPLAY LITERALS.
; 0 ASCII TO COMP-3
; 1 ASCII TO SIXBIT
; 2 ASCII TO ASCII (ACTUALLY NO CONVERSION)
; 3 ASCII TO EBCDIC
IFN ANS74,<
DEFIN SEPSGN,1; ;=1 IF SIGN IS SEPARATE CHARACTER
DEFIN LDNSGN,1; ;=1 IF SIGN IS LEADING
>
DEFIN RENAM1,1;
DEFIN RENAM2,1;
DEFIN RNREC1,1;
DEFIN RNREC2,1;
DEFIN RDFLVL,1 ;LEVEL COUNTER FOR 'RDEFPC' STACK
DEFIN RDEFPC,^D12 ;LAST SEEN PC FOR REDEFINES NESTING
SETVAL RDFSIZ,^D12 ;SIZE OF RDEFPC TABLE
DEFIN DATLVL,1 ;INDEX INTO 'LSTDAT' AND 'RDFDAT'
DEFIN RDFDAT,^D50 ;LAST REDEFINING ITEM AT A GIVEN LEVEL
DEFIN LSTDAT,^D50 ;LAST ITEM AT A GIVEN LEVEL WITHOUT REDEFINES CLAUSE
DEFIN IDXLST,1;
DEFIN WSAS1P,1;
DEFIN RUSAGE,1 ;USAGE OF CURRENT RECORD
DEFIN REPSEC,1 ;NON-ZERO IF WE ARE IN REPORT SECTION
DEFIN LNKSEC,1 ;NON-ZERO IF WE ARE IN LINKAGE SECTION
DEFIN LNKSSN,1 ;[763] NON-ZERO IF LINKAGE SECTION SEEN
DEFIN REPSSN,1 ;[763] NON-ZERO IF REPORT SECTION SEEN
DEFIN SIXHLD,1 ;6-DIGIT SIXBIT NUMBER
DEFIN SAVCOL,1 ;LAST 'COLUMN' SEEN
DEFIN RPWRDL,1 ;SAVE FOR CURRPW TO RD
DEFIN RWLCS.,1 ;A LINE CLAUSE WAS SEEN FOR THIS REPORT GROUP.
DEFIN RWCCS.,1 ;A COLUMN CLAUSE WAS SEEN FOR THIS REPORT GROUP.
DEFIN LASTYP,1 ;LAST 'TYPE' CODE SEEN IN RPW ITEM
DEFIN LASCOL,1 ; [315] LAST HIGHEST COLUMN IN REPORT LINE
DEFIN THSCTL,1 ;CONTROL ENTRY FOR CURRENT RPW GROUP
DEFIN LAST01,1 ;DATAB LINK TO LAST LEVEL-01 ITEM
DEFIN LASTRD,1 ;LAST RD ENTRY IN RPWTAB
DEFIN FLOTBZ,1 ;-1 IMPLIES ALL DIGITS REPRESENTED BY FLOAT CHARS
DEFIN WRKSEC,1 ;-1 MEANS WORKING-STORAGE SECTION SEEN
DEFIN PICPTR,1 ;POINTER TO SAVE PIC CHARS.
DEFIN PICBUF,7 ;WHERE PIC CHARS. ARE SAVED
DEFIN LNK1PC,1 ;SAVE EAS1PC DURING LINKAGE SECTION
DEFIN FLG88,1 ;[674] FLAG FOR AN 88 LEVEL LITERAL
DEFIN CURDTT,1 ;SAVED CURDAT WHEN PARSING SUBSCRIPTS
HIGHC==.
;AREA USED BY PHASE D WHICH MAY BE OVERLAYED BY PHASE E
RELOC HIGHB
DEFIN IFLVL,1;
DEFIN SPFLVL,1;
DEFIN SPFNIO,1;; ;FLAG - SPECIAL IF, NOT I-O
DEFIN CLEVEL,1;
DEFIN ELEVEL,1;
SETVAL USES.L,^D27
DEFIN USES,USES.L
DEFIN TRMLVL,1;
DEFIN TOPLVL,1;
DEFIN NXTSNT,1;
DEFIN IMPLOP,2;
DEFIN CORRSP,.CORSZ; ;[1070]
DEFIN MVARY,1;
DEFIN NVARY,1;
DEFIN VARBLK,^D135; ;[222] SIZE WAS ^D81
DEFIN VARTAG,7;
DEFIN SAVPRF,6;
DEFIN UNTTAG,2;
DEFIN HROUND,1 ;ARG2 SAVED (FOR 'ROUND' FLAG) DURING CORRESPONDING
DEFIN REINTO,1 ;NON-ZERO IF 'READ INTO' SEEN
DEFIN BUFCTR,1 ;COUNTER FOR # OF ENTRIES IN "OPEN" TBL
DEFIN BUFFER,^D160 ;BUFFER FOR OPEN AREA AND OPEN FILE NAMES.
DEFIN SU8FLG,1; THIS AND THE NEXT 9 ENTRIES ARE FOR SIMULTANEOUS UPDATE
DEFIN SU41TP,1; TEMP FOR ACTION PASU41
DEFIN SU8CNT,1
DEFIN SU8SVC,1
DEFIN SU8SVA,1
DEFIN SU8SVB,1
DEFIN SU30F1,1
DEFIN SU30F2,1
DEFIN SU30FG,1
DEFIN PASU4T,1
DEFIN SURRTM,1 ;SPACE REQUIRED IN THE RETAINED
;RECORDS TABLE BY THE CURRENT STATEMENT
DEFIN SURRT.,1 ;SPACE REQUIRED IN THE RETAINED RECORDS
;TABLE BY THIS COMPILE UNIT
DEFIN SUEQTM,1 ;SPACE REQUIRED IN EACH OF THE ENQ/DEQ
;TABLES BY THIS RETAIN STATEMENT
DEFIN SUEQT.,1 ;SPACE REQUIRED IN EACH OF THE ENQ/DEQ
;TABLES BY THIS COMPILE UNIT
DEFIN SUFBT.,1 ;SPACE REQUIRED IN THE FILL/FLUSH
;BUFFER TABLE FOR THIS COMPILE UNIT
DEFIN SUFBTM,1 ;SPACE REQUIRED IN THE FILL/FLUSH
;BUFFER TABLE FOR THIS RETAIN STATEMENT
IFN ANS74,<
DEFIN SVINSP,2 ;HOLD DATA ITEM ON TYPE 3 INSPECT
DEFIN SVINSO,1 ; OP CODE FOR INSPECT TALLYING/ REPLACING
DEFIN IFPERF,1 ;SET TO -1 WHEN IF IS IN PERFORM CONTROL LOGIC
>
DEFIN INNOR,1 ;IF A COMPLEX CONDITION, SAW:
; NOT ( ... OR
;TO ALLOW US TO REPLACE "OR" WITH ") OR ("
DEFIN SWHEN,1 ;SAW "WHEN" AT END OF SENTENCE IF -1
DEFIN PERLNC,1 ;DIDN'T SEE WHEN-- STORE LN AND CP INCASE
IFN ANS74,<
DEFIN SRTMRG,1 ;0 IF IN SORT, -1 IF MERGE; FOR FIPS FLAGGER
>
; NEXT THING IS WHEN
DEFIN INUPRG,1 ;IN USE PROCEDURE REPORT GROUP - RPWTAB LINK
DEFIN ERSKIP,1 ;If set to -1, means syntax error
;while parsing a statement which caused a skip
;to next period.
HIGHD==.
;AREA USED BY PHASE E WHICH MAY BE OVERLAYED BY PHASE F
RELOC OVLAY
SETVAL EINITL,. ;FIRST PHASE E WORK LOC TO CLEAR UPON INITIALIZATION
DEFIN LITNN,1 ;ADDRESS OF 1ST ARG
DEFIN M.ARGP,1 ;CURRENT MCS ARGUMENT
DEFIN M.SIXL,1 ;0=ASCII LITERAL, ELSE=SIXBIT LITERAL
DEFIN M.STR,1 ;NON-0 IF SPECIAL STRING/UNSTRING ITEM
; E.G., STRING SOURCE-ITEM OR DELIMITER
; WHICH GET SPECIAL SUBSCRIPT TREATMENT
DEFIN SSU.FL,1 ;FLAGS TO BE PUT INTO SUBSCRIPT BLOCK
; FOR SPECIAL STRING/UNSTRING ITEMS.
DEFIN SSU.MD,1 ;PLACE TO SAVE MODE WHILE DOING MXAC.
DEFIN SSU.CT,1 ;COUNT OF SUBSCRIPTS THAT NEED SPECIAL
; HANDLING.
DEFIN SSU.PT,3 ;POINTERS TO THE PARAMETERS FOR
; SUBSCRIPTS THAT GET HANDLED SPECIAL.
DEFIN NODPPF,1 ;FLAG TO INDICATE THAT THIS DATANAME MAY
; NOT HAVE ANY DECIMAL PLACES OR BE P-SHIFTED
DEFIN UUOSV%,1 ;SAVE UUO FOR CONVERSION TO PUSHJ
DEFIN UUINC%,1 ;SAVE UUO INCREMENT FOR CONVERSION
DEFIN LITASY,1 ;IF -1 LITERAL TABLE BEING COPIED TO ASY
DEFIN MSKTMP,4 ;AREA TO BUILD EDIT MASK TO DISPLAY
;NUMERIC DATA ITEMS
DEFIN CURSIZ,1 ;CURRENT SIZE OF LITERAL [167]
DEFIN LITERR,1 ; [374] IF NON-ZERO ELITERAL TO BE CONVERTED OUT OF BOUNDS FOR CONVERSION
DEFIN XWDRH,1 ;USED BY XWDGEN
DEFIN EPSECT,1 ;TABLE-LINK TO PREVIOUS SECTION
DEFIN EPPARA,1 ;TABLE-LINK TO PREVIOUS PARAGRAPH
DEFIN ESIZEZ,1 ;SIZE OF OPERAND BEING USED IN A "MOVE" SUB-GENERATOR
DEFIN EWORDB,1 ;NUMBER OF FULL WORDS IN OPERAND
DEFIN EREMAN,1 ;REMAINING CHARACTERS NOT INCLUDED IN EWORDB
DEFIN EMASK,1 ;A MASK BEING CREATED BY "MOVE" SUB-GENERATOR
DEFIN OPERND,1 ;LH HAS "A" OPERAND, RH HAS "B" OPERAND DURING "MOVE"
DEFIN EIMPPC,1 ;PC FOR RUN-TIME IMPURE PARAMETERS
DEFIN EALTPC,1 ;PC FOR RUN-TIME ALTER TABLE
DEFIN EALTMX,1 ;SIZE OF RUN-TIME AREA FOR ALTERS OF SEGS > 49
DEFIN ETEMPC,1 ;PC FOR RUN-TIME TEMPS
DEFIN ETEMAX,1 ;SIZE OF RUN-TIME TEMPORARY AREA
DEFIN EAC,1 ;CURRENT ACCUMULATOR BEING USED BY GENERATED CODE
DEFIN LITHLD,20 ;[FCCTS NC105] TO HOLD A NUMERIC LITERAL DURING CONVERSION
DEFIN ERESDP,1 ;NUMBER OF DECIMAL PLACES IN ARITHMETIC RESULT
DEFIN ESAVDP,1 ;[466] NUMBER OF DECIMAL PLACES SHIFTED FOR COMPUTATION.
DEFIN ESAVAC,4 ;TO HOLD AC'S WHEN CALLING MOVGEN
DEFIN EINTO,<OPNSIZ+OPNMAX> ;OPERANDS FOR READ..INTO OR RETURN..INTO
DEFIN EINTR,2 ;[245] INTO FOR RPWGEN
DEFIN PTRHLD,1 ;[1027] POINTS TO CURRENT ENTRY IN READ INTO TABLE
DEFIN THISPH,1 ;CURRENT OFFSET INTO PTRHLD
DEFIN EDEPFT,1 ;[605] STORE FILE-TABLE POINTER IF WE NEED TO RESTORE DEPENDING ITEM
DEFIN NEGCMP,1 ; [360] NEGATE FINAL OUTPUT FOR COMPUTE SW
DEFIN ESZERA,1 ;TO SAVE SPECIAL TAG FOR TRUE PATH OF SIZE ERROR
DEFIN ENDIFT,1 ;THE TAG TO GENERATE AT "ENDIF"
DEFIN ESAVEA,EFLAGX+1 ;TO SAVE "A" PARAMETERS
DEFIN ESAVEB,EFLAGX+1 ;TO SAVE "B" PARAMETERS
DEFIN ESAVES,2*EFLAGX+2 ;TO SAVE PARAMETERS DURING SUBSCRIPT GENERATION
DEFIN ESAVER,EFLAGX+1 ;TO HOLD "B" PARAMETER DURING "RESULT"
DEFIN ESAVMA,2*EFLAGX+2 ;TO SAVE PARAMETERS DURING MOVES
DEFIN ESAVRW,EFLAGX+1 ;TO HOLD 'B' PARAM FOR RPW
IFN ANS74,<
SETVAL ESAVDV,ESAVRW ;TO HOLD "B" DURING DIVIDE INTO SERIES
>
DEFIN ESAVSC,2*EFLAGX+2 ;TO SAVE EBASEA&EBASEB DURING 'SEARCH'
DEFIN ESAVTT,EFLAGX+1 ;TO SAVE 'A' PARAMETERS DURING 'MOVE A TO B1,B2'
DEFIN ESAVBI,EFLAGX+1 ;[1067] TO SAVE 'B' PARAMETERS DURING 'IF'
DEFIN AINTEM,1 ;-1 IF ESAVTT HAS 'A' PARAMETERS FOR MOVE
DEFIN SAVEPP,1 ;TO HOLD PUSHDOWN POINTER AT START OF EXPRESSION
DEFIN ELITLO,1 ;LOW-ORDER WORD OF A 2-WORD LITERAL
DEFIN ELITHI,1 ;HI-ORDER WORD " " "
DEFIN EOPHLD,1 ;TO HOLD LN&CP OF OPERATOR DURING EXPRESSIONS
DEFIN ECARRY,1 ;NUMBER OF CARRIES INTO HI-ORDER DIGIT IN ARITHMETICS
DEFIN OPLINE,1 ;LN&CP OF OPERATOR
DEFIN ECTRUE,1 ;TAG ADDRESS FOR TRUE PATH OF "IFC"
DEFIN ECFALS,1 ;TAG ADDRESS FOR FALSE PATH OF "IFC"
DEFIN ECNAME,2 ;HOLDS 2-WORD OPERAND FOR DUMMY "B" OF "IFC"
DEFIN EXPBEG,1 ;RELATIVE LOC OF EOPNXT WHEN EXPRESSION STARTED
DEFIN ARGCTR,1 ;COUNTER FOR CALL ARGS
DEFIN SUBLST,1 ;LITERAL ADDR OF LIST OF SUBPROGRAMS CALLED
DEFIN ENTAGS,1 ;ENTRY POINT JRST TAG
DEFIN ARGPTR,1 ;%PARAM ADDR OF CALLER'S ARG PTR
DEFIN ELNKSF,1 ;FLAG SET IF CURRENT OPERAND IS IN LINKAGE SECTION
DEFIN HLDEOP,1 ;HOLD CUREOP WHILE WORKING ON SUBSCRIPTS
DEFIN CONCTR,1 ;COUNTER FOR CONDITION NAME VALUES
DEFIN ECNBP,1 ;BYTE POINTER TO NEXT CONTAB HALF-WORD
DEFIN ECSTEP,1 ;A TAG ADDRESS FOR INTERMEDIATE BRANCH OF COMPLEX "IFC"
DEFIN ECXTRA,1 ;A TAG ADDRESS FOR INSTRUCTION FOLLOWING COMPLEX "IFC"
DEFIN TAGTRU,1 ;%TAG TO WHICH TO GO IF CONDITION TRUE
DEFIN ESAVOP,1;
DEFIN ENOCC1,1 ;COUNTER USED BY SUBSCRIPT GENERATOR
DEFIN ENOCC2,1 ;ANOTHER COUNTER USED BY SUBSCRIPT GENERATOR
DEFIN SUBNUM,1 ;NUMBER OF SUBSCRIPTS
IFN CSTATS,<
DEFIN NACMP,1 ;SET TO -1 IF NOT ALL SUBSCRIPTS ARE COMP
>
;; USED BY INLINE SUBSCRIPT GENERATOR:
DEFIN SSMODE,1 ;USAGE MODE OF THE VARIABLE BEING SUBSCRIPTED
DEFIN BASITM,1 ;XWD EINCR,EBASE OF ITEM BEING SUBSCRIPTED
; (IF USAGE IS COMP)
DEFIN SUBNM1,1 ;NUMBER OF THE SUBSCRIPT WE'RE LOOKING AT
DEFIN DEPITM,1 ;DEPENDING ITEM INFO (OR 0)
DEFIN SUBITM,1 ;SUBSCRIPT ITEM INFO
DEFIN SSMACV,1 ;SIMULATED RUNTIME AC VALUE
DEFIN SSMACF,1 ;FLAG (-1 = SIMULATING, VALUE IN SSMACV), ELSE 0
DEFIN NOIDVF,1 ;-1 IF NO IDIVI NEEDED
DEFIN ZEROSB,1 ;-1 IF NO SUBSCRIPTS
;; END OF AREA USED BY INLINE SUBSCRIPT GENERATOR
DEFIN SUBCON,1 ;INPUT CONSTANT FOR SUBSCRIPT GENERATOR
DEFIN USE510,1 ;-1 IF SUBSC ROUTINE SHOULD LEAVE BYTE PTRS IN
;ACS 5,10
DEFIN SUSEAC,1 ;AC VALUE TO PUT SUBSCRIPT IN (OR 0)
DEFIN IBPFLG,1 ;-1 IF BYTE PTR LEFT BY SUBSCRIPT GENERATOR
;WILL BE ILDB'D OR IDPB'D.
DEFIN MAKBPB,1 ;-1 TO TELL MBYTPA AND MBYTPB TO PUT A BYTE PTR IN
;LITAB THAT CAN BE "LDB'D" FROM.
DEFIN PCXPTR,1 ;XWD <LOC OF "A" PTR>,<LOC OF "B" PTR>
; USED BY MOVGEN,CMNGEN,IFGEN FOR MOVE/COMPARE
; OF 1 BYTE.
;;USED BY GETNB ROUTINE AND FRIENDS FOR THE "USE LARGER BYTES"
; OPTIMIZATION
DEFIN USENBT,1 ;-1 IF SUBSCR SHOULD USE LARGER BYTES
; (MULTIPLY # BITS BY C(NBYTES).)
DEFIN NBYTES,1 ;VALUE RETURNED BY GETNB
DEFIN ONLYEX,1 ;-1 TO TELL SUBSCR TO NOT GENERATE ANY CODE
;AND RETURN VALUE IN S1SIZ
DEFIN ALSTMP,1 ;-1 TO TELL SUBSCR TO PUT ALL SUBSCRIPTS INTO %TEMP,
; EVEN IF THEY ARE COMP.
DEFIN S1SIZ,1 ;SIZE (SMALL BYTES) OF ELEMENTARY SUBSCRIPTED ITEM
DEFIN NCHARS,1 ;NUMBER OF CHARACTERS BEING MOVED (INPUT TO GETNB)
;; END OF AREA USED BY GETNB...
DEFIN MOVEDN,1 ;FOR LONG MOVES, -1 IF ALL MOVE CODE GENERATED
; THAT IS NECESSARY
DEFIN INDIND,1 ;FOR LONG MOVES, THIS IS THE INCREMENT WHICH
; IS ADDED TO THE STARTING INCREMENT
DEFIN SAVENW,1 ;FOR LONG MOVES, # OF FULL WORDS BEING MOVED IN THE
; "MIDDLE PART" OF THE MOVE
DEFIN USEXJR,1 ;FLAG FOR XFRGEN TO USE "XJRST" INSTEAD OF "JRST"
; SO OPTIMIZER DOESN'T TRY TO FIDDLE WITH THEM
DEFIN HRRIFL,1 ;GEN "HRRI" NOT "HRRZI" AT GMOV7B
;
DEFIN DPITM,1 ;FOR CMNGEN ROUTINE "SZDPVA" AND "SZDPVB"
DEFIN DPLNK,1 ; FOR LNKSET TO DEPENDING VARIABLE
DEFIN DPVAR,1 ; SIZE OF DEPENDING VARIABLE
DEFIN DEPVB,1 ; SET TO AC USED IF SIZE WAS SETUP, ELSE SET TO -1
DEFIN CONVSV,1 ;IF NON-ZERO, MUST PRESERVE THIS RUNTIME AC
DEFIN SAVPR0,1 ;-1 IF SZDPV? MUST PRESERVE %PARAM+0
; THIS IS ALWAYS RESET TO 0 BY SZDPV?
;
DEFIN NODEPV,1 ;SET TO -1 IF DEPENDING VARIABLE NOT ALLOWED FOR
; THIS ITEM (SEE MSCGEN)
DEFIN WDPITM,1 ;LH = -1 IF WE MUST PRESERVE %PARAM+0
;RH = LINK TO DEPENDING ITEM AT WRITE. UUO, 0 IF NONE
DEFIN SUBINP,1 ;SET TO -1 TO TELL B1PAR THAT THE GENERATED PARAMETER
; MUST NOT BE PUT INTO LITTAB, BECAUSE IT WILL BE
; MODIFIED AT RUNTIME
DEFIN ERCNT,1 ;COUNT OF NUMBER OF RESULTS
DEFIN ETEMPR,2 ;USED BY RESULT GENERATOR--CONTAINS ADDRESS OF TEMP
DEFIN RESTYP,1 ;RESULT TYPE
DEFIN ESMAX,1 ;MAXIMUM NUMBER OF SUBSCRIPTS ALLOWED FOR AN ITEM
DEFIN REMPAR,1 ;PARAMETERS FOR "REMAINDER"
DEFIN ADDTMP,1 ;USED TO KEEP TRACK OF SIZE OF INTERMEDIATE TEMP IN ADD SO WE CAN USE D.P. IF REQUIRED
; THE FOLLOWING ARE USED WHEN DIVISION IS BOTH ROUNDED AND HAS REMAINDER
DEFIN REMRND,1 ;ADDRESS OF EXTRA TEMP IF REMAINDER AND ROUNDING BOTH
DEFIN REMRN1,1 ; AND INCREMENT IF ROUNDING & REMAINDER
DEFIN SGNREM,1 ;REMAINDER MAY BE NEGATIVE
DEFIN SGNDIV,1 ;DIVISOR MAY BE NEGATIVE
; (END)
DEFIN EMULSZ,1 ;IF NON-ZERO, THERE ARE MULTIPLE RESULTS WITH SIZE ERROR
DEFIN EMOVHL,1 ;CONTAINS INSTRUCTION TO MOVE HIGH OR LOW VALUE TO MEMORY
DEFIN ECONLJ,1 ;CONTAINS AC WHICH CONTAINS AN ASCII CONSTANT, LEFT JUST
DEFIN ECONRJ,1 ;CONTAINS AC WHICH CONTAINS AN ASCII CONSTANT, RIGHT JUST
DEFIN ESAVSW,1 ;SAVE "SW" (USED BY SUBSCRIPTOR)
DEFIN ESAVDT,1 ;SAVE "DT" (USED BY SUBSCRIPTOR)
DEFIN ESAVAD,1 ;SAVE INCREMENT FOR SUBSCRIPT OUTPUT
DEFIN ESAVMD,1 ; SAVE MODE OF FATHER FOR SUBSCRIPTING.
DEFIN EDITW1,1 ;FIRST OF TWO WORDS TO HOLD "XWD" DURING EDITED MOVES
DEFIN EDITW2,1 ;SECOND "
DEFIN EDITW3,1 ;TO HOLD OP-CODE AND ADDRESS DURING EDITED MOVE
DEFIN ERECSZ,1 ;SIZE OF AN OUTPUT RECORD (FOR WRITE)
DEFIN EREM0,1 ;FIRST ADDRESS OF DIVIDE 'RESULT' OPERAND
DEFIN EREM1,1 ;LAST ADDDRESS OF DIVIDE 'RESULT' OPERAND
DEFIN EREM2,1 ;FIRST WORD OF DIVIDE 'RESULT' OPERATOR
DEFIN EREM3,1 ;LAST ADDRESS OF FIRST OPERAND AFTER DIVIDE 'RESULT'
DEFIN EREM4,1 ;FIRST WORD OF FIRST OPERATOR AFTER DIVIDE 'RESULT'
DEFIN CUROPP,1 ; 0 NORMALLY, OR POINTER TO OPERAND WHEN OPERND
;MAY NOT BE SETUP CORRECTLY (E.G., WHEN MOVING
;AN OPERAND TO TEMP)
IFN DBMS, DEFIN DBLITP,1 ;[656] HOLDS POINTER TO LITERAL IN DBARGS (COBOLE)
SETVAL ESORTL,. ;FIRST LOCATION ZEROES UPON SEEING "SORT"
DEFIN ESUSE,2 ;"USING" OPERAND FOR SORT
DEFIN ESGIV,2 ;"GIVING" OPERAND FOR SORT
DEFIN ESORTF,2 ;OPERAND OF "SORT" OPERATOR
DEFIN ESINP,4 ;LIKEWISE FOR "INPUT PROC" (SECOND FOR "THRU")
DEFIN ESOUTP,4 ;LIKEWISE FOR "OTTPUT PROC"
DEFIN ESTAG1,1 ;%TAG NUMBER FOR START OF "BUILD KEY" ROUTINE
DEFIN ESTAG2,1 ;%TAG NUMBER FOR FIBST INST AFTER "BUILD KEY"
DEFIN ESTAG3,1 ;%TAG NUMBER FOR "READ" IN "USING" CODE
DEFIN ESTAG4,1 ;%TAG NUMBER FOR "AT END" CODE FOR "USING"
DEFIN ESTAG5,1 ;%TAG NUMBER FOR "WRITE" IN "GIVING" CODE
DEFIN EKEYSZ,1 ;NUMBER OF WORDS TO CONTAIN SORT KEYS
DEFIN EKEYLC,1 ;LOCATION, RELATIVE TO IMPPAR, TO CONTAIN NEXT KEY
DEFIN EKEYNO,1 ;NUMBER OF KEYS SEEN
DEFIN EUSENO,1 ;NUMBER OF USING FILES SEEN
IFN ANS74,<
DEFIN ESMAXR,1 ;MAX. RECORD SIZE OF SORT FILE IN SD
DEFIN ESCOLS,1 ;ADDRESS OF SORT/MERGE COLLATING SEQUENCE
>
DEFIN EKREPF,1 ;REPEAT CURRENT KEY UNTIL FULLY BUILT
SETVAL ESORTH,.-1 ;LAST LOCATION ZEROED UPON SEEING "SORT"
DEFIN EMRGFL,1 ;-1 IF MERGE, 0 IF SORT
DEFIN ESAFLG,1 ;-1 LEAVE RESULT IN ACC AND SET EAC TO POINT TO IT
IFN ANS74,<
DEFIN ESRTSN,1 ;-1 IF SORT SEEN, NEEDED FOR FIPS FLAGGER
>
DEFIN RWSAV1,1 ;COUNT OF REMAINING CONTROL IDENTIFIERS
DEFIN RWSAV2,1 ;LOCATION OF NEXT CONTROL IDENTIFIER
DEFIN RWSAV3,1 ;LH CONTAINS COL# OF LAST ITEM, RH CONTAINS SIZE
DEFIN RWSAV4,1 ;CONTAINS OFFSET FOR CURRENT LINE
DEFIN RWSAV5,1 ;BYTE POINTER TO SUM IDENTIFIER LINK
DEFIN RWSAV6,1 ;COUNT OF REMAINING SUM IDENTIFIER LINKS
DEFIN RWSAV7,1 ;CONTAINS CALL TO EITHER LINE.C OR LINE.D
DEFIN RWSAV8,1 ;IDENTIFIER REFERENCED BY 'SUM'
DEFIN RWSAV9,1 ; INTRA-GROUP CNTR.
DEFIN RWSV10,1 ; [342] LINE INDICATOR
DEFIN RWSV11,1 ;A SUPPRESS CONTROL TAG
DEFIN RWSV12,1 ;SAVED REL LOC OF RPWTAB CF GROUP
DEFIN RPWLIN,1 ;CURRENT ABSOLUTE LINE NUMBER
DEFIN RWBRKC,1 ;%PARAM ADDRESS OF 'BREAK COUNT' FOR AN 'RD'
DEFIN RWMBRK,1 ;%TAG FOR MINOR BREAK ROUTINE FOR 'RD'
DEFIN EIOOP,1 ;I/O OP-CODE (IN RH)
SETVAL SRCFST,. ;FIRST LOC TO CLEAR DURING 'SEARCH'
DEFIN SRCLUP,1 ;TAG OF FIRST LOC OF A SEARCH LOOP
DEFIN SRCAE,1 ;TAG FOR 'AT END' PATH OF SEARCH
DEFIN SRCWHN,1 ;TAG OF 'WHEN' CLAUSE OF SEARCH
DEFIN SRCIDX,1 ;DATAB LINK TO SEARCH INDEX
DEFIN SRCIDN,1 ;DATAB LINK TO SEARCH TABLE
DEFIN SRCALL,1 ;NON-ZERO IF SEARCH IS 'ALL'
DEFIN SRCFLG,1 ;NON-ZERO IF NOT ALL KEYS SPECIFIED
DEFIN SRC%I,1 ;TAG OF 'INCRMENT' CODE
DEFIN SRC%E,1 ;TAG OF END OF CONDITION TEST
DEFIN SRCNOC,1 ;NUMBER OF OCCURENCES OF TABLE BEING SEARCHED
DEFIN SRCPAR,1 ;%PARAM LOC HOLDING INCRMENT FOR BINARY SEARCH
DEFIN SRCKYN,1 ;NUMBER OF KEYS FOR SEARCHED ITEM
DEFIN SRCKYL,1 ;BYTE-POINTER TO NEXT KEY TABLE-LINK
DEFIN SRCOPN,1 ;NUMBER OF OPERANDS IN 'WHEN' FOR 'SEARCH ALL'
SETVAL SRCLST,.-1 ;LAST LOC CLEARED BY 'SEARCH' GENERATOR
DEFIN DCLTAG,1 ;[435] SAVE JUMP TO TAG TO GO AROUND DECLARITIVES
DEFIN INDCLR,1 ;SET TO -1 WHEN IN DECLARATIVES
DEFIN INPERF,1 ;SET TO -1 WHEN IN PERFORM CONTROL LOGIC
DEFIN ESUCNT,1 ;COUNT OF FILES OR RECORDS BEING ENQUEUEED
DEFIN ESUCT2,1 ;ANOTHER COUNTER USED BY SIMULTANEOUS UPDATE
DEFIN ESUTAG,1 ;TAG FOR THE OPEN STATEMENT
DEFIN ESAVW1,1 ;USED TO SAVE W1
DEFIN ESUFN1,1 ;SAVED FILE NAME POINTER
DEFIN ESUFN2,1
DEFIN ESUTC,1 ;SAVED TC
DEFIN EUNSTK,20 ;STACK FOR STORAGE OF UNAVAILABLE EXITS
DEFIN EUNSPT,1 ;COUNT OF ENTRIES ON ABOVE STACK
IFN ANS74,<
DEFIN ESUCVT,1 ;IF NON-ZERO, F-T ADDRESS: CONVERSION WAS DONE
; IN THIS RETAIN OR FREE STMT BECAUSE KEY
; WAS NOT COMP.
>;END IFN ANS74
BISZRF==:. ;FIRST LOCATION TO ZERO AT BEGINNING OF EDIT.B
;CALL GENERATION
DEFIN BISMIN,1 ;MINUS FLAG. THE FLAG IS SET TO -1 WHEN
; EXTRA CODE NEEDS TO BE GENERATED TO TEST
; FOR AND THEN INSERT A LEADING MINUS.
; FLAG IS NORMALLY ZERO.
DEFIN BISBW0,1 ;BLANK WHEN ZERO FLAG. FLAG IS NORMALLY ZERO.
; IS SET TO THE NUMBER OF CHARACTERS
; WHEN IT IS NECESSARY TO BLANK FILL
; LEADING CHARACTERS OF DESTINATION STRING.
DEFIN BISDST,1 ;DESTINATION BYTE POINTER. NORMALLY ZERO.
; CONTAINS THE ADDRESS OF THE SAVED DESTINATION
; BYTE POINTER FOR LEADING SIGN AND BWZ FILL.
DEFIN BISCNT,1 ;CURRENT CHARACTER COUNTER
DEFIN BISBFS,1 ;NUMBER OF CHARACTERS BEFORE SIGNIFICANCE WAS TURNED OFF.
;THIS IS NEEDED FOR BWZ.
DEFIN BISASS,1 ;NUMBER OF CHARACTERS AFTER SIGNIFICANCE
;IS TURNED ON BUT BEFORE DECIMAL POINT. ALSO NEEDED
;FOR BWZ.
DEFIN BISDOT,1 ;SET TO 1 IF AN EXPLICIT DECIMAL POINT IS
;ENCOUNTERED AND A SIGSET WAS ISSUED. MOST OF TTHESE
;SPECIAL COUNTERS ARE NEEDED TO REMEMBER THE LOCATION
;OF THE DEICMAL POINT FOR BWZ "*".
DEFIN BISFLT,1 ;FLOAT CHARACTER IN ASCII 0R 0.
DEFIN BISGOT,1 ;SET TO -1 AFTER 1ST PLACE HOLDER IN BOUTPUT FIELD
;HAS BEEN ENCOUNTERED.
;USED TO DETECT LEADING OR TRAILING SIGNS
DEFIN BISSGN,1 ;INSERT SIGN CODE: 0=NONE, +1=LEADING, OR -1=TRAILING
DEFIN BISALP,1 ;0=ALPHABETIC/ALPHANUMERIC EDIT, -1=NUMERIC
; NOTE THAT BWZ FOR A NON-EDITED FIELD IS
; DONE AS AN ALPHANUMERIC EDIT SO THAT NONE
; OF THE OVERPUNCH SIGNS GET CONVERTED
BISZRL==:.-1 ;LAST LOCATION TO ZERO
DEFIN BISSIG,1 ;-1=SIGNIFICANCE ON BUT NO SIGSET YET, 0=OFF, AND
;1=ON AGAIN BAFTER SIGSET
DEFIN BISFIL,1 ;SET TO "*" IF * SUPPRESSION AND 0 OTHERWISE
DEFIN PRGEAD,1 ;POINTER TO MAIN ENTRY POINTE EXTAB ENTRY
DEFIN GODPOV,1 ;FLAG. TURNED ON BY THE GO DEPENDING
; GENERATOR IF IT HAS TO WORRY ABOUT
; DISPATCHING INTO ANOTHER SEGMENT.
DEFIN GRPFLG,1 ; SET TO -1 TO FORCE GROUP MOVE
DEFIN IFEAC,1 ;HOLD ACC FOR "A" IF IN ACCS DURING IF
DEFIN SUBFLG,1 ;[***] EXTRA FLAGS TO SET IN SUBSCRIPTOR
IFN ANS74,<
DEFIN STEMPC,1 ;SAVE %TEMP PC BETWEEN OPERANDS
; (ETEMPC IS SET TO ZERO IN COBOLE
; AT EVERY OPERAND)
DEFIN INSPSL,1 ;WHERE THE INSPECT BYTE PTR IS...
DEFIN IARG11,1 ; FIRST WORD OF INSPECT ARG LIST
;LH= -NUM ARGS, RH= FLAGS
DEFIN INARGP,1 ;POINTER INTO TEMTAB TO FIRST INSPECT ARGUMENT
; HEAD OF LINKED LIST. SEE MSCGEN FOR FORMAT.
DEFIN ITLPTR,1 ;POINTER INTO TEMTAB FOR ITEMS TO ADD AFTER
; INSPECT GENERATION IS DONE
DEFIN INSPTF,1 ;-1 IF TALLYING ARG LAST SEEN, 0 IF REPLACING
DEFIN CURIRG,1 ;POINTER INTO TEMTAB FOR CURRENT ARGUMENT
DEFIN IOPFLG,1 ;OPERAND FLAGS FOR INSPECT ARG
DEFIN SERSIZ,1 ;INSPECT SEARCH STRING SIZE
SETVAL INSPLT,MSKTMP ;4 WORDS TO HOLD LITERALS IN INSPECT [ANS74]
DEFIN TEMADP,1 ;RELATIVE LOCATION IN TEMTAB OF SAVED OPERAND
; USED BY MATGEN TO GET POINTER TO OPERAND
; TO STORE INSPECT TALLYING ARG IN
DEFIN CMPLVL,1 ;NO. OF DATUMS BEFORE = IN COMPUTE SERIES
DEFIN CMPTMP,1 ;TEMP USED TO HOLD VALUE IN COMPUTE SERIES
DEFIN CMPEOP,1 ;LOC OF VALUE IN EOPTAB IN COMP SERIES
DEFIN COLSQS,1 ;SIXBIT COLLATING SEQUENCE
DEFIN COLSQA,1 ;ASCII COLLATING SEQUENCE
DEFIN COLSQE,1 ;EBCDIC COLLATING SEQUENCE
DEFIN COLTMP,400 ;TABLE TO BUILD COLLATING SEQUENCE
COLZRL==:.-1 ;LAST LOC TO ZERO
DEFIN PREVW1,1 ;HOLDS W1 (LINE NUMBER) OF PREVIOUS OPERATOR
DEFIN PERFCD,1 ;DEBUG CODE FOR PERFORM (COULD BE SORT ETC)
DEFIN DBSPIF,2 ;TABLE-LINK,,DEBUG-ROUTINE IF CODE TO BE GENERATED AFTER SPIF.
;W1 (I.E. LINE NUMBER) FOR DEBUG STUFF
DEFIN GDEBSW,1 ;IF NON-ZERO LOOK AT DEBTAB TO GENERATE CODE
DEFIN EDEBDA,1 ;DEBUG INFO FOR DATAB "A"
DEFIN EDEBPA,1 ;PARAMS FOR ABOVE
DEFIN EDEBGA,1 ;PARAM,,<USE-PROCEDURE>
DEFIN EDEBDB,1 ;DEBUG INFO FOR DATAB "B"
DEFIN EDEBPB,1 ;PARAMS FOR ABOVE
DEFIN EDEBGB,1 ;PARAM,,<USE-PROCEDURE>
SETVAL EDEBDX,0
SETVAL EDEBPX,1
SETVAL EDEBGX,2
DEFIN SUBPBL,1 ;ADDR OF %PARAM BLOCK FOR THIS SUBSCR. ITEM
DEFIN CURXSQ,1 ;SEQUENCE # OF EXPRESSIONS, USED BY FIPS FLAGGER
DEFIN LSTXSQ,1 ;SEQUENCE # OF EXPRESSIONS AT LAST "IF".
DEFIN EXPLNC,1 ;LN & CP (W1) OF LAST EXPRESSION
DEFIN DIVSRS,1 ;NO. OF OPERANDS IN DIVIDE INTO SERIES
DEFIN DIVTMP,1 ;ADDRESS OF TEMP HOLDING "A" OPERAND IN DIVIDE SERIES
>
DEFIN ADCRLF,1 ;ADD CR-LF NUL TO LITERAL FOR DISPLAY
DEFIN OVFLFL,1 ;CLEARED WHEN OVFLO. CLEARED, SET BY DIVIDE
DEFIN IMCONS,1 ;CREATE IMMEDIATE MODE CONSTANT AND RETURN VALUE HERE
DEFIN FLTDIV,1 ;[566] SET TO -1 WHEN RESULT OF DIVIDE IS COMP-1
DEFIN NOFLOT,1 ;SET TO -1 TO PREVENT FLOATING EXPONENT IN CEXP
DEFIN ECNTA,1 ;[717] COUNT OF STRING PIECES IN "A" OPERAND
DEFIN IOFLGS,1 ;FLAGS FOR I/O ARG LIST (V12B AND LATER)
DEFIN LPCSAV,1 ;SAVED LITERAL PC, WHEN GENERATING MULTI-WORD
; LITERALS THAT MAY BE POOLED
DEFIN C2MANT,3 ;MANTISSA OF COMP-2 LITERAL IN PHASE E
DEFIN NMAKYS,1 ;NUMBER OF ALTERNATE KEYS IN THIS FILE
DEFIN KEYREF,1 ;KEY OF REFERENCE FOR AN ISAM READ
DEFIN KEYRLN,1 ;LENGTH OF KEY OF REFERENCE (FOR RMS START)
DEFIN KEYADR,1 ;ADDRESS OF KEY BUFFER (FOR RMS $GET)
DEFIN ROUCAL,1 ;(LIBOL) ROUTINE TO CALL..
IFN ANS74,<
DEFIN NOTLN,1 ;LN OF "NOT" FOR FIPS FLAGGER
DEFIN NOTCP,1 ;CP OF "NOT"
>
IFN FT68274,<
DEFIN CVTSAL,1 ;SIZE OF SMALLEST "ALL LITERAL" IN UNSTRING
>
SETVAL EINITH,.-1 ;LAST PHASE E WORK LOC CLEARED UPON INTIALIZATION
SETVAL ESAVAX,ESAVEA+EFLAGX
SETVAL ESAVBX,ESAVEB+EFLAGX
SETVAL EBASBX,EBASEB+EFLAGX
SETVAL EBASAX,EBASEA+EFLAGX
SETVAL ESAVSX,ESAVSB+EFLAGX
SETVAL ESAVRX,ESAVER+EFLAGX
SETVAL ESVMAX,ESAVMA+EFLAGX
SETVAL ESAVMB,ESAVMA+EFLAGX+1
SETVAL ESVMBX,ESAVMB+EFLAGX
SETVAL ESVSCX,2*EFLAGX+ESAVSC
SETVAL ESAVTX,ESAVTT+EFLAGX
SETVAL ESVIBX,ESAVBI+EFLAGX ;[1067]
SETVAL ESAVSB,ESAVES+EFLAGX+1
IFN ANS74,<
SETVAL ESVDVX,ESAVDV+EFLAGX
>
;THE FOLLOWING PHASE E LOCATIONS ARE ZEROED AT EACH SEGMENT BREAK.
SETVAL EZEROL,.;
DEFIN ESMASK,1 ;ADDRESS OF DUMMY MASK USED FOR "MOVE" CONVERSIONS
DEFIN EAS3PC,1 ;PROGRAM COUNTER FOR NON-RESIDENT AREA
DEFIN ELITPC,1 ;RUN-TIME ADDRESS OF NEXT LITERAL FOR POOL
DEFIN EASRJ,1 ;RUN-TIME ADDRESS OF ASCII CONSTANT " "
DEFIN EAZRJ,1 ;RUN-TIME ADDRESS OF ASCII CONSTANT "00000"
DEFIN EAQRJ,1 ;RUN-TIME ADDRESS OF ASCII CONSTANT '"""""'
DEFIN ESQUOT,1 ;RUN-TIME ADDRESS OF SIXBIT CONSTANT '""""""'
DEFIN ESZERO,1 ;RUN-TIME ADDRESS OF SIXBIT CONSTANT '000000'
DEFIN EESPCE,1 ;RUN-TIME ADDRESS OF EBCDIC CONSTANT ' '
DEFIN EEZERO,1 ;RUN-TIME ADDRESS OF EBCIDC CONSTANT '0000'
DEFIN EEQUOT,1 ;RUN-TIME ADDRESS OF EBCDIC CONSTANT '""""'
DEFIN EEHIGH,1 ;RUN-TIME ADDRESS OF XWD 377377,377377 (EBCDIC HIGH VALUES.)
DEFIN C3ZERO,1 ;RUNTIME ADDRESS OF A COMP-3 ZERO PIC S9(18).
DEFIN C3HIVL,1 ;RUNTIME ADDRESS OF A COMP-3 HIGH-VALUES PIC S9(18).
DEFIN C3LOVL,1 ;RUNTIME ADDRESS OF A COMP-3 LOW-VALUES PIC S9(18).
DEFIN EPWR10,^D36 ;RUN-TIME ADDRESSES OF POWERS OF 10
DEFIN RPWR10,^D10 ;RUN-TIME ADDRESS OF ROUNDING VALUES
DEFIN EFPCNV,^D21 ;RUN-TIME ADDRESS OF FLOATING-POINT POWERS OF 10
DEFIN EF2CNV,^D21 ;RUN-TIME ADDRESS OF D.P. FLOATING-POINT POWERS OF 10
DEFIN CF2CNV,1 ;RUNTIME ADDRESS OF COMP-2 TO COMP-1 CONVERSION CONSTANT
DEFIN EHIVAL,1 ;RUN-TIME ADDRESS OF HI-VALUE LITERAL
DEFIN ELOVAL,1 ;RUN-TIME ADDRESS OF LO-VALUE LITERAL
DEFIN EFPLOV,1 ;RUN-TIME ADDRESS OF LO-VALUE FOR FL. PT.
DEFIN EAHRJ,1 ;RUNTIME ADDRESS OF ASCII HIGH-VALUES
DEFIN EALRJ,1 ;RUNTIME ADDRESS OF ASCII LOW-VALUES
IFN ANS74,<
DEFIN ESHIVL,1 ;[722] RUNTIME ADDRESS OF SIXBIT HIGH-VALUES
DEFIN ESLOVL,1 ;[722] RUNTIME ADDRESS OF SIXBIT LOW-VALUES
DEFIN EELOW,1 ;[722] RUNTIME ADDRESS OF EBCDIC LOW-VALUES
>
DEFIN ALITSV,1 ;[1077] ADDRESS OF LITERAL BYTE PTR TO SAVE
;[1077] WHEN LITTAB EXPANDS
DEFIN PLITPC,1 ;ADDRESS OF POOLED LITERAL
DEFIN PLITCT,1 ;COUNT OF LITERALS IN BLOCK TO POOL
DEFIN PLITPT,1 ;POINTER TO STORE LITERALS IN BLOCK TO POOL
DEFIN PLITOF,1 ;OFFSET INTO LITERAL POOL FOR FIRST COMPARE
SETVAL PLITSZ,^D100 ;NUMBER OF LITERALS TO BUFFER
DEFIN PLITBF,PLITSZ ;BUFFER OF LITERALS TO POOL
SETVAL EZEROH,.-1;
HIGHE==.
;AREA USED BY PHASES F & G
RELOC OVLAY
DEFIN EXTCNT,1 ;NUMBER OF XWD'S FOR NON-RESIDENT GLOBALS
DEFIN HEADER,30 ;HEADING LINE FOR LISTING
DEFIN HEADR2,7 ;HEADER FOR SECOND LINE OF LISTING
DEFIN COUNTW,1 ;COUNT OF WARNING DIAGS
DEFIN COUNTF,1 ;COUNT OF FATAL DIAGS
IFN ANS74,<
DEFIN COUNTV,1 ;COUNT OF FLAGGER VIOLATIONS
>
DEFIN FIXEDS,1 ;SIZE OF EXTRA CODE GENERATED IN RESIDENT SEGMENT
DEFIN SUBPAG,1 ;SUB-PAGE NUMBER
;AREA USED BY PHASE F WHICH MAY BE OVERLAYED
DEFIN ERATAB,1; ;IOWD TO WORK AREA TO HOLD DIAGS
DEFIN FAKERA,7 ;DIAG MESSAGE FOR BAD DIAG NUMBER
DEFIN GMAXCP,1 ;LARGEST CHARACTER POSITION ALLOWED ON LISTING
DEFIN RDATLK,1; ;Saved Link to a DATAB item
;AREA USED BY PHASE G WHICH MAY BE OVERLAYED
DEFIN SAVTAG,1 ;SAVE A SPECIAL TAG TO BE PRINTED
DEFIN TAGOUT,1 ;NUMBER OF TAGS LISTED FOR CURRENT LINE, LESS 1
DEFIN DECSEG,1 ;CURRENT SECTION NUMBER RELATIVE TO START OF PROGRAM
SETVAL ASYFIL,AS1HDR ;NAME OF ASYFIL CURRENTLY BEING USED
DEFIN DATGRP,^D20 ;TO HOLD WORDS WHICH WILL BE WRITTEN ON A BINARY FILE
DEFIN FLTC1,1 ;EXPONENT OF FLOATING POINT CONSTANT
DEFIN FLTC2,3 ;[762] MANTISSA OF FLOATING POINT CONSTANT
;[762] SECOND & THIRD WORDS ARE FOR DOUBLE PRECISION
DEFIN CURREL,1 ;RELOCATION FACTOR FOR CURRENT SEGMENT
DEFIN SYMLC1,1 ;ADDRESS OF NEXT FREE ENTRY IN SYMGRP
DEFIN SYMREL,1 ;BYTE POINTER TO RELOCATION BITS IN SYMGRP
DEFIN SYMGRP,^D20 ;TEMPORARY STORAGE AREA FOR SYMBOLS FOR BINFIL
DEFIN LITBAS,1 ;STARTING LOCATION OF OBJECT LITERALS
DEFIN T4BASE,1 ;RUN-TIME LOCATION OF "GOTO.."
DEFIN GAERAS,1 ;NUMBER OF ASSEMBLY ERRORS
DEFIN GHOLD,^D15 ;TO HOLD SIXBIT OR ASCII CONSTANT
DEFIN OVRWRD,1 ;WORD COUNT FOR "OVR" FILE
DEFIN GCREFC,1 ;COUNT OF NUMBERS LEFT TO GO IN CREF PRINT LINE
DEFIN GCREFN,6 ;TO HOLD NAME & LINE NUMBER TO BE LISTED IN CREF
DEFIN OLDCNM,5 ;NAME OF LAST ITEM PUT ONTO CREF LISTING
DEFIN SF1BUF,1;
DEFIN SF2BUF,1;
DEFIN SF3BUF,1;
DEFIN SF1BHO,3;
DEFIN SF2BHO,3;
DEFIN SF3BHO,3;
DEFIN SF1BHI,3;
DEFIN SF2BHI,3;
DEFIN SF3BHI,3;
DEFIN CRFERA,1 ;CONTENTS OF 'PP' WHEN 'CREF' ENTERED IN COBOLG (FOR ERRORS)
DEFIN CRFEOS,3 ;NON-ZERO WHEN A FILE IS AT END-OF-STRING
DEFIN CRFTS,3 ;NUMBER OF STRINGS ON EACH CREF SORT SCRATCH FILE
DEFIN CRFSTA,3 ;NUMBER OF STRINGS TO BE ADDED TO A SORT FILE
DEFIN CRFLOW,1 ;POINTER TO SORT TABLE FOR 'LOWEST' RECORD NOT WRITTEN
DEFIN CRFPWR,1 ;FIRST POWER OF 2 > THAN SORT TABLE SIZE
DEFIN CRFTAB,1 ;ADDRESS OF FIRST ENTRY IN SORT TABLE
DEFIN CRFTEN,1 ;NUMBER OF USED ENTRIES IN SORT TABLE
DEFIN CRFCUR,1 ;NUMBER OF CURRENT OUTPUT FILE (SF1=0, ETC.
DEFIN CRFSIZ,1 ;NUMBER OF ENTRIES IN SORT TABLE
DEFIN CRFNE,1 ;NUMBER OF EMPTY SORT FILES
DEFIN END.PC,1 ;SAVED PC AT END OF RESIDENT
DEFIN BLKTYP,1 ;BLOCK TYPE FOR 'PUTDAT'
DEFIN SAVBIN,1 ;PLACE TO SAVE BINDEV IF OVR FILE WRITTEN
DEFIN NM.PC,1 ;VALUE AND LOCATION OF NAMTAB
DEFIN DT.PC,1 ;VALUE AND LOCATION OF DATAB
DEFIN PR.PC,1 ;VALUE AND LOCATION OF PROTAB
DEFIN %ES.PC,1 ;END OF SYMBOL TABLE
DEFIN ACSFLG,1 ;ALTERNATE CODE SET FLAG
DEFIN INDFLG,1 ;NEXT INST TO BE INDENTED TO SHOW THAT THIS ONE SKIPS
;USED ONLY BY PHASE O
SETVAL OBEG,.;
DEFIN IPTAB0,1 ;ALWAYS HOLDS A 0
DEFIN IPTAB,NBACK*2 ;# INSTRUCTIONS BEFORE CURRENT ONE
DEFIN IPCUR,NWINDO ;"CURRENT INSTRUCTION" IS
; SOMEWHERE IN THIS BLOCK
DEFIN IPAFT,NFRONT ;MIN # INSTRUCTIONS AFTER CURRENT ONE
DEFIN IPTAB1,1 ;ALWAYS HOLDS A 0
DEFIN INSTBF,400 ;BUFFER OF AS2 FILE - POINTED TO BY IPTAB
SETVAL INSEND,.-1 ;LAST LOC TO USE IN INSTBF
DEFIN GCBUF,GCLEN ;GARBAGE COLLECT BUFFER
DEFIN NXTIP,1 ;POINTS TO NEXT PLACE TO PUT AN INSTRUCTION
DEFIN THISIP,1 ;POINTS TO LAST INSTRUCTION WE PUT IN BUFFER
DEFIN BIPTR,1 ;POINTS TO "END" OF INSTBF (LAST UNUSED SPOT)
DEFIN WANTG1,1 ;TAG # WE WANT (PUT A NEW TAG AT TAG+1)
DEFIN NPCIN,1 ;NUMBER OF PC LOCATIONS IN IPTAB AT THIS MOMENT
DEFIN OTEMP,4 ;SOME TEMP LOCS FOR PMATCH TO USE
DEFIN SAWENT,1 ;-1=COBOLO SAW THE MAIN ENTRY POINT
IFN DEBUG,<
DEFIN TAGLFT,1 ;NO. OF TAGS STILL TO OUTPUT
DEFIN TAGCOL,3 ;AOBJN POINTERS TO COLUMNS
DEFIN TAGOFF,3 ;OFFSET TO ROWS
>
SETVAL OEND,.-1;
HIGHF==.
.XXLST==HIGHE ;ASSUME "E" IS BIGGEST LOWSEG
IFL <.XXLST-HIGHF>,.XXLST==HIGHF ;NO, "F" IS
IFL <.XXLST-HIGHD>,.XXLST==HIGHD ;NO, "D" IS
IFL <.XXLST-HIGHC>,.XXLST==HIGHC ;NO, "C" IS
SETVAL LSTCLR,.XXLST-1 ;SET LAST LOCATION TO CLEAR ON STARTUP
END