TITLE IMPURE FOR RPGII 1(3) SUBTTL DEFINITION OF IMPURE AREA BOB CURRIER/CAM/SEB ; IMPURE FOR RPGII %1 ; ; BOB CURRIER JUNE 25, 1975 21:02:49 ; ; THIS SEGMENT OF THE COMPILER CONTAINS ALL DEFINITIONS ; OF STORAGE AREAS IN THE IMPURE SEGMENT. IT SHOULD BE ; NOTED THAT MODIFICATIONS TO THIS SEGMENT WILL PROBABLY ; NECESSITATE RELOADING ALL PHASES OF THE COMPILER, SINCE ; MANY AREAS ARE SHARED BETWEEN THE PHASES. ; ; CREDIT IS DUE TO AL BLACKINGTON AND ALL THE OTHER DEC ; COBOL PEOPLE, SINCE MUCH OF THIS IS LIFTED FROM THE COBOL ; IMPURE AREA. SUCH IS LIFE. ; ; ALL RIGHTS RESERVED, R. B. CURRIER ; IMPURE: ENTRY IMPURE DEFINE DEFIN (A,B), DEFINE SETVAL (A,B), IFN FTSCAN,< SEARCH SCNMAC > ;ENTRY POINT FOR "KILL" DEFIN WEDIED,2; ;GET NEXT PHASE ;ENTER WITH PHASE NAME IN GETFNM+1, STARTING ADDRESS IN GETFST, ; ADDRESS OF GETFNM IN TA. ;FOR A DESCRIPTION OF LOAD ROUTINE, SEE RPGIIA. ;THE FOLLOWING ROUTINE IS COPIED FROM HI-SEGMENT BY RPGIIA. DEFIN GETLOD,^D16-1 ;THE LOAD ROUTINE IFE DEBUG,< DEFIN DDTSTP,1 ;(JRST @GETFST) > IFN DEBUG,< DDTSTP=:. ;PLACE FOR BREAKPOINT AFTER LOADING SEGMT JRST @GETFST > DEFIN GETFNM,6 ;THE LOAD PARAMETERS DEFIN GETFST,1 ;STARTING ADDRESS DEFIN CANTGO,6 ;ERROR ROUTINE FOR "REENT" COMMAND GETEND=:.-1 ;WORKING STORAGE DEFIN COMBH,3; ;BUFFER HEADER IF COMMANDS FROM DISK OR TMPCOR DEFIN TTYBHO,3; ;TTY OUTPUT BUFFER HEADER DEFIN TTYBHI,3; ;TTY INPUT BUFFER HEADER DEFIN TTYBUF,1 ;START OF TTY BUFFERS DEFIN PPLIST,^D60; ;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 RPGII RUN COMMAND DEFIN RUNDEV,1 ;DEVICE OF RPGII 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 %FTIME,2; DEFIN %RFTIM,2; DEFIN %GTIME,2; DEFIN %RGTIM,2; DEFIN %TTIME,1; DEFIN %RTIME,1; DEFIN IMPAT,10; for patching > ;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,.; IFN FTSCAN,< ;Define area used by SCAN ; ; ; DEFIN CCLF1,1 ; CCL entry flag DEFIN INICOR,1 ; initial .JBREL DEFIN INIFF,1 ; initial .JBFF ;SCAN blocks SETVAL SCNFWA,. ; first loc DEFIN SCNLOC,1 ; pointer to last input scan block DEFIN SCNPTR,1 ; wild-card scan pointer DEFIN SINCOR,1 ; LH=.JBFF, RH=.JBREL at start of file DEFIN SCNFIR,1 ; start of scan parameter area DEFIN FINI,1 ; initial F setting DEFIN FINIM,1 ; mask for FINI SETVAL SCMFWA,. ; start of scan switches DEFIN SCNASM,1 ; /ASSEMBLY switch DEFIN SCNCRF,1 ; /CREF switch DEFIN SCNERO,1 ; /ERRORSONLY switch DEFIN SCNMAP,1 ; /MAP switch DEFIN SCNNER,1 ; /NOERROR switch DEFIN SCNPDL,1 ; /PDLSIZE switch DEFIN SCNPRD,1 ; /PRODUCTION switch DEFIN SCNREE,1 ; /REENTRANT switch SETVAL SCMLWA,.-1 ; end of SCAN switches DEFIN SCNREL,.FXLEN ; REL file parameter block DEFIN SCNLST,.FXLEN ; LST file parameter block DEFIN OPNBLK,3 ; input OPEN block SETVAL SCNLWA,.-1 ; last entry SETVAL FILFWA,. DEFIN LKPBLK,7 ; lookup block DEFIN OPNOUT,3 ; OPEN block DEFIN ENTBLK,11 ; extended enter block SETVAL FILLWA,.-1 DEFIN OUTPTR,1 ; pointer to output parameters > ; end of IFN FTSCAN DEFIN STDATE,2 ;STARTING DATE (DD-MMM-YY) DEFIN STTIME,1 ;STARTING TIME (HH:MM) DEFIN OTFBAS,1 ;STARTING LOCATION FOR OBJECT TIME FILE TABLES DEFIN OCHBAS,1 ;STARTING LOCATION OF OUTPUT CHAIN TABLE DEFIN ICHBAS,1 ;STARTING LOCATION OF INPUT CHAIN TABLE DEFIN INDBAS,1 ;STARTING LOCATION OF INDICATOR CHAIN DEFIN FTBBAS,1 ;STARTING LOCATION OF FILE TABLE DEFIN IMPPAR,1 ;STARTING LOCATION OF OBJECT PARAMS IN IMPURE AREA DEFIN DATBAS,1 ;START OF DATA DEFIN TEMBAS,1 ;START OF TEMPORARIES DEFIN LITBAS,1 ;BASE OF LITERAL TABLE DEFIN ARRBAS,1 ;start of ARRTAB DEFIN USEBAS,1 ;START OF USE TABLE DEFIN TAGCNT,1 ;NEXT SPECIAL TAG NUMBER TO USE DEFIN PROGST,1 ;TABLE LINK TO FIRST EXECUTED ITEM DEFIN RESDNT,1 ;STARTING LOCATION OF TOTAL CALCS DEFIN NONRES,1 ;STARTING LOCATION OF DETAIL CALCS DEFIN HILOC,1 ;HIGHEST LOC IN RUNTIME IMPURE AREA DEFIN HPLOC,1 ;HIGHEST LOC IN RUNTIME RESIDENT SEGMENT DEFIN RPGVER,1 ;ADDR OF ARGUMENTS FOR SELOTS CALL DEFIN OBJSIZ,1 ;MAX OBJECT PROGRAM SIZE (WORDS) DEFIN RETPTR,1 ;%PARAM ADDR OF RETURN PTR FOR PROGRAM DEFIN UUOBIT,^D10 ;BITS FOR THOSE OP-SYS ROUTINES USED DEFIN EAS1PC,1 ;PROGRAM COUNTER FOR DATA AREA DEFIN EAS2PC,1 ;PROGRAM COUNTER FOR TOTAL CALCS DEFIN EAS3PC,1 ;PROGRAM COUNTER FOR DETAIL CALCS DEFIN GENWRD,1 ;NEXT RELATIVE WORD TO BE WRITTEN ONTO GENFIL DEFIN PRGENT,1 ;PROGRAM-ID ENTRY POINT DEFIN OPRTR,6 ; [315] OP TEMP STORAGE DEFIN FLNKHL,1 ;PLACE TO STASH FILTAB LINK DEFIN DLNKHL,1 ;PLACE TO STASH DATAB LINK DEFIN LINE,1 ;CURRENT LINE NUMBER DEFIN PAGEN,1 ;CURRENT PAGE NUMBER DEFIN BADCNT,1 ;COUNT OF BAD CARDS ;DATA SET UP BY PHASE B DEFIN CORSIZ,1 ;MAXIMUM AMOUNT OF CORE AT EXECUTION DEFIN INVPRT,1 ;INVERTED PRINT OPTION DEFIN NOPRNT,1 ;LH # 0 IF SUPRESS MFCU LEADING ZEROES ;RH # 0 IF HALT ON NON-PRINTING CHARACTERS DEFIN SHR.IO,1 ;= -1 IF I/O AREA TO BE SHARED DEFIN PRGID,1 ;PROGRAM ID DEFIN .EFLG,1 ;EOF flag DEFIN ARRPNT,1; ;ARRAY POINTER DEFIN SAVEAC,20; ;SAVE AC's DEFIN SAVELN,1 ;CURRENT DIAGNOSTIC LINE DEFIN PAGCNT,1 ;COUNT OF LINES PER PAGE FOR LISTING DEFIN HDRPAG,1 ;PAGE NUMBER FOR LISTING DEFIN CREFSW,1 ;NON-ZERO IF '/C' IN COMMAND STRING DEFIN PRODSW,1 ;NON-ZERO IF '/P' IN COMMAND STRING SETVAL NTNSIZ,-^D19 ;NUMBER OF ENTRIES IN SIZTAB (NEGATIVE) DEFIN SIZTAB,^D19 ;TABLE OF QUANTUMSIZES FOR NM1TAB,NM2TAB DEFIN NAMWRD,5 ; INPUT FOR "TRYNAM" DEFIN SAVNAM,5 ; STORAGE FOR "TRYNAM" DEFIN OP1DEC,1 ;DECIMAL PLACES IN OPERAND 1 DEFIN OP2DEC,1 ;DECIMAL PLACES IN OPERAND 2 DEFIN OP1SIZ,1 ;SIZE OF OPERAND 1 DEFIN OP2SIZ,1 ;SIZE OF OPERAND 2 DEFIN OP1BSZ,1 ;BYTE SIZE OF OPERAND 1 DEFIN OP2BSZ,1 ;BYTE SIZE OF OPERAND 2 DEFIN OP1BYT,1 ;BYTE POINTER TO OPERAND 1 DEFIN OP2BYT,1 ;BYTE POINTER TO OPERAND 2 DEFIN OPFLDX,1 ; field type DEFIN CRDBUF,^D80/5 ; buffer for card image DEFIN FRMTYP,1 ; form type DEFIN COMMNT,1 ; contents of comment column DEFIN ARRLIN,1 ; line number for array specs DEFIN OPHLD,1 ; temporary operator storage DEFIN .STLST,1 ; pointer to first stacker OTFTAB entry DEFINE TABSET (A,B,C,E,F,G), < IFIDN < 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 RPGIIA) 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 ;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 IFE C-1 IFE C-2 > IOLIST SRC,1; IOLIST LST,1; IOLIST BIN,1; IOLIST CAL,2; 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 DEVSZ,7 ; [316] SIZE OF SRC, LST & BIN ENTRIES DEFIN IOSRCS,DEVSZ*^D11 ; [316] 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 SETVAL SRCTOP,SRCDEV+DEVSZ-1 ; [316] LAST LOC IN SRC AREA OVLAY==. ;AREA USED BY PHASES B, C & D WHICH MAY BE OVERLAYED BY PHASE E RELOC OVLAY DEFIN LASTDV,1; ;LAST DEVICE SEEN IN COMAND STRING DEFIN PRICNT,1 ;TEMPORARY COUNTER OF NUMBER OF PRIMARY FILE DEFINED DEFIN CALLIN,1 ;STARTING LINE NUMBER IN CALFIL DEFIN FRMPRO,1 ;PROCESSING MODE OF "FROM" FILE DEFIN FRMRCL,1 ;RECORD LENGTH OF "FROM" FILE DEFIN FILLNK,1 ;LINK TO "FROM" FILE DEFIN FILDLK,1 ;LINK TO DUMP FILE DEFIN ALTEPR,1 ;RECORDS PER ENTRY OF ALTERNATING TABLE DEFIN ALTOCC,1 ;NUMBER OF OCCURS OF ALTERNATING TABLE DEFIN DATLNK,1 ;LINK INTO DATAB HIGHB==. ;AREA USED BY PHASE C WHICH MAY BE OVERLAYED BY PHASE D RELOC HIGHB DEFIN OLDSEQ,1 ;USED FOR SEQUENCE ENTRY CHECKING DEFIN ARRENT,1 ;ARRAY ENTRY DEFIN INSIZ,1 ;SIZE OF ARRAY DEFIN INOCC,1 ;NUMBER OF OCCURANCES DEFIN MAJLNK,1 ;TEMP MAJOR LINK DEFIN HIEND,1 ;HIGHEST END POSITION ENCOUNTERED DEFIN HLDLNK,1 ;TEMP REPOSITORY FOR A LINK DEFIN PLCBAS,1 ;BASE FOR *PLACE ADDRESS MODIFICATION HIGHC==. ;AREA USED BY PHASE D WHICH MAY BE OVERLAYED BY PHASE E RELOC HIGHB DEFIN F1LINK,1 ; FACTOR 1 LINK DEFIN F2LINK,1 ; FACTOR 2 LINK DEFIN F1INDX,1 ; FACTOR 1 INDEX DEFIN F2INDX,1 ; FACTOR 2 INDEX DEFIN RELINK,1 ; RESULT LINK DEFIN REINDX,1 ; RESULT INDEX DEFIN VRBNUM,1 ; CURRENT OP-CODE DEFIN INDLNK,1 ; TEMP INDTAB LINK DEFIN VALLNK,1 ; TEMP VALTAB LINK DEFIN SAVESZ,4 ; TEMPORARY SIZE STORAGE DEFIN .INSR,1 ; INSIDE SR FLAG 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 PCREM,1 ; PC REMAINDER WORD DEFIN HISIZ,1 ; HIGHEST FIELD SIZE ENCOUNTERED DEFIN CURFLD,1 ; CURRENT FIELD DEFIN CURREC,1 ; CURRENT RECORD DEFIN CURMAJ,1 ; CURRENT MAJOR RECORD DEFIN ELITPC,1 ; PC FOR LITFIL DEFIN ETEMAX,1 ; LARGEST TEMP AREA REQUIRED DEFIN PREPOT,6 ; PREPROCESSOR TEMP STORAGE DEFIN TAGNUM,1 ; CURRENT TAG NUMBER DEFIN EAC,1 ; CURRENT AC DEFIN EDEC,1 ; CURRENT DECIMAL COUNT DEFIN ESIZ,1 ; CURRENT FIELD SIZE DEFIN ESAVAC,1 ; GENERAL STASH DEFIN RPWR10,^D11 ; RUNTIME LOC'S OF ROUNDING FACTORS DEFIN PWR10,^D10 ; RUNTIME LOC'S OF POWERS OF TEN DEFIN REMDEC,1 ; DECIMALS IN REMAINDER DEFIN REMSIZ,1 ; SIZE OF REMAINDER DEFIN RESDEC,1 ; NUMBER OF DECIMAL PLACES IN RESULT DEFIN LKOCC,1 ; NUMBER OF OCCURS FOR LOOKUP TABLE DEFIN LK%AE,1 ; TAG NUMBER FOR %AE: DEFIN LK%D,1 ; TAG NUMBER FOR %D: DEFIN LK%E,1 ; TAG NUMBER FOR %E: DEFIN LK%I,1 ; TAG NUMBER FOR %I: DEFIN LK%T,1 ; TAG NUMBER FOR %T: DEFIN LK%NI,1 ; TAG NUMBER FOR %NI: DEFIN LK%ND,1 ; TAG NUMBER FOR %ND: DEFIN OP1LIT,1 ; LOCATION OF OP1 POINTER DEFIN OP2LIT,1 ; LOCATION OF OP2 POINTER DEFIN WL%AE,1 ; TAG NUMBER FOR %TAG2: DEFIN WL%L,1 ; TAG NUMBER FOR %TAG: DEFIN WHOSIZ,1 ; SIZE OF WHOLE ARRAY DEFIN WHOLOC,1 ; RELATIVE LITAB LOCATION OF WHOLE ARRAY TEMP DEFIN FTBNUM,1 ; Number of FTBTAB entries we have output + 1 DEFIN OP2CNT,1 ; op2 increment count DEFIN LHLLIT,2 ; limits literal DEFIN FLTCN.,1 ; hold floating constant DEFIN LDCIND,1 ; index for LDCTAB DEFIN LDCTAB,^D20 ; table of compile time arrays DEFIN TEMBUF,1 ; temp buffer for array load DEFIN TM2BUF,1 ; temp buffer for array load DEFIN TEMCNT,1 ; counter for array load DEFIN TM2CNT,1 ; counter for array load DEFIN CURARP,1 ; current pointer for array load DEFIN SAVAC2,17 ; another AC save area DEFIN .STEXT,1 ; stacker extension DEFIN REPCNT,1 ; count of replaceable edit characters 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 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 ;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,1 ;MANTISSA OF FLOATING POINT CONSTANT 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 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; IFN CREF,< DEFIN CRFERA,1 ;CONTENTS OF 'PP' WHEN 'CREF' ENTERED IN RPGIIG (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 GREATER 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 HIGHF==. END