SUBTTL PURE CONSTANTS BOB CURRIER ;WITH DUE CREDIT TO A.BLACKINGTON/CAM/SEB FOR THEIR COBOL PURE CODE ; WHICH I USED (MOSTLY THE PHASE A STUFF) ; [201] ADDED EXTERNAL COBST. DEFINE .TITLE (X), TWOSEG RELOC 400000 ;THIS SOURCE IS IDENTICAL FOR PROGRAMS PURAB, PUREC, PURED, PUREE & PURFG ; EXCEPT FOR THE VALUE OF MLOAD. ;ASSEMBLE WITH THE APPROPRIATE PARAMETER FILE PURAB.MAC, ; PUREC.MAC, PURED.MAC, PUREE.MAC, OR PURFG.MAC TO MAKE THE ; CORRESPONDING REL FILE A.==1 B.==2 C.==4 D.==10 E.==20 F.==40 G.==100 AB.==A.!B. ABC.==A.!B.!C. ABCD.==A.!B.!C.!D. ABCDE.==A.!B.!C.!D.!E. ADEFG.==A.!D.!E.!F.!G. CDE.==C.!D.!E. BC.==B.!C. BCE.==B.!C.!E. BCD.==B.!C.!D. BCDE.==B.!C.!D.!E. BCDEFG==B.!C.!D.!E.!F.!G. BDE.==B.!D.!E. CD.==C.!D. CDEFG.==C.!D.!E.!F.!G. DE.==D.!E. DEFG.==D.!E.!F.!G.! EG.==E.!G. FG.==F.!G. IFNDEF %MLOAD,< %MLOAD=="A"> ;GIVE THIS A VALUE FOR ONE-SEG COMPILER IFE %MLOAD-"A",<MLOAD==A.!B.> IFE %MLOAD-"C",<MLOAD==C.> IFE %MLOAD-"D",<MLOAD==D.> IFE %MLOAD-"E",<MLOAD==E.> IFE %MLOAD-"F",<MLOAD==F.!G.> IFN MLOAD&AB., <.TITLE PURAB SUBTTL CONSTANTS USED BY PHASE A & B ENTRY PUREA PUREA: ENTRY PUREB PUREB: > IFN MLOAD&C., <.TITLE PUREC SUBTTL CONSTANTS USED BY PHASE C ENTRY PUREC PUREC: > IFN MLOAD&D., <.TITLE PURED SUBTTL CONSTANTS USED BY PHASE D ENTRY PURED PURED:> IFN MLOAD&E., <.TITLE PUREE SUBTTL CONSTANTS USED BY PHASE E ENTRY PUREE PUREE:> IFN MLOAD&FG., <.TITLE PURFG SUBTTL CONSTANTS USED BY PHASES F & G ENTRY PUREF PUREF: ENTRY PUREG PUREG: > INTERNAL MLOAD1 MLOAD1=="B" ;HIGHEST PHASE IN FIRST MACHINE LOAD ;GET NEXT MACHINE LOAD IFE ONESEG,< IFN MLOAD&AB.,<INTERNAL RPGIIC RPGIIC: MOVE TA,[SIXBIT "RPGIIC"] JRST GETFAZ > IFN MLOAD&ABC.,<INTERNAL RPGIID RPGIID: SKIPA TA,[SIXBIT "RPGIID"] > IFN MLOAD&ABCD.,<INTERNAL RPGIIE RPGIIE: MOVE TA,[SIXBIT "RPGIIE"] > IFN MLOAD&E.,<INTERNAL RPGIIF RPGIIF: MOVE TA,[SIXBIT "RPGIIF"] > IFN MLOAD&ABCDE.,<EXTERNAL GETFAZ JRST GETFAZ >> DEFINE SETUP (A,B), < INTERNAL A A: B > DEFINE SETVAL (A,B), < INTERNAL A A==B> ;CONSTANTS USED BY ALL PHASES SETUP ERAPOS,<POINT 7,DW,21>; CHARACTER POSITION FIELD IN DIAG WORD SETUP ERALN,<POINT 13,DW,14>; LINE NUMBER FIELD IN DIAG WORD SETUP ERANUM,<POINT 9,DW,35>; DIAG NUMBER FIELD IN DIAG WORD SETUP ERAFAZ,<POINT 4,DW,25>; PHASE NUMBER FIELD IN DIAG WORD SETUP OUTBOP,<OUTBUF 2>; OUTBUF UUO SETUP INBOP,<INBUF 2>; INBUF UUO SETVAL LINPAG,^D56; ;LINES PER PRINTED PAGE SETVAL CPMAXN,^D104 ;CHARACTERS PER PRINTED LINE SETVAL ENDCL,CPMAXN-^D32 ;LAST POSITION IN WHICH A COPIED WORD CAN START SETVAL MAXWSS,777777 ;SIZE OF LARGEST ALLOWED ITEM IN WORKING-STORAGE SETVAL MAXFSS,7777 ;SIZE OF LARGEST ALLOWED ITEM IN FILE SECTION SETVAL MAXOCC,77777 ;GREATEST NUMBER OF OCCURENCES ALLOWED SETVAL WRKSIZ,^D10*2000 ;SIZE OF IMPURE AREA SETVAL NAMCST,2 ;A CONSTANT USED BY TRYNAM&BLDNAM EXTERNAL PPSIZE,PPLIST SETUP PPOINT,<XWD PPSIZE,PPLIST-1> ;PARAMETERS USED WHEN PLAYING WITH TABLE LINKS SETUP LNKCOD,<POINT 3,TA,20> ;CODE IN A TABLE LINK SETVAL LMASKB,77777 ;MASK OF LINK BITS FOR TABLE-LINK OF BIG TABLE SETVAL LMASKS,77777 ;SAME FOR SMALL TABLE DEFINE TABVAL (NAME,CODE),< INTERNAL TB.'NAME,TC.'NAME,TM.'NAME TB.'NAME==CODE TC.'NAME==CODE'*100000 TM.'NAME==77777 > TABVAL FIL,0 TABVAL DAT,1 TABVAL LIT,2 TABVAL VAL,3 TABVAL PRO,4 TABVAL EXT,5 TABVAL ICH,6 TABVAL IND,7 SETVAL TM.TAG,77777 ;CONSTANTS USED BY PHASE A IFN MLOAD&A.!ONESEG,< SETUP ENTROP,<ENTER I1>; ENTER UUO ;QUANTUM VALUES FOR SIZES OF NM1TAB&NM2TAB. ;SEE 'NTNSIZ' IN IMPURE FOR NUMBER OF ENTRIES. SETVAL NTSIZE,. DEC 1009 DEC 1499 DEC 1999 DEC 2503 DEC 3001 DEC 3499 DEC 4001 DEC 4507 DEC 5003 DEC 5501 DEC 6007 DEC 6491 DEC 7001 DEC 7499 DEC 8009 DEC 8501 DEC 9001 DEC 9497 DEC 10007 > ;CONSTANTS USED BY PHASES A,B,C,D IFN MLOAD&ABCDE.!ONESEG,< SETUP I0CHAN,<POINT 4,I0,12>; AC FIELD OF "I0" SETUP OPENOP,<OPEN I1>; OPEN UUO SETUP LOOKOP,<LOOKUP I1>; LOOKUP UUO SETUP ALLSPC,SIXBIT/ / ; WORD OF ALL SPACES FOR COMPARISON WITH PROGRAM ID SETVAL TRACEI,1B32 ;CORESW FLAG FOR TRACEING ID SETVAL TRACEE,1B33 ;CORESW FLAG FOR TRACEING ED SETVAL TRACED,1B34 ;CORESW FLAG FOR TRACEING DD SETVAL TRACEP,1B35 ;CORESW FLAG FOR TRACEING PD SETUP NAMVAL,<POINT 15,(TA),17>;VALUE OF RESERVED WORD IN NAMTAB ENTRY SETUP KASC,<SIXBIT/ASCII/> SETUP KBUF,<SIXBIT/BUFOF/> ;CONSTANTS USED BY FI SCAN > IFN MLOAD&DE.!ONESEG,< ;GENFIL OPERATOR CODES SETVAL OPADD, 001 ; ADD 2 TO 1 SETVAL OPZADD, 002 ; CLEAR R, ADD 2 SETVAL OPSUB, 003 ; SUBTRACT 2 FROM 1 SETVAL OPZSUB, 004 ; CLEAR R, SUBTRACT 2 SETVAL OPMULT, 005 ; MULTIPLY 1 BY 2 SETVAL OPDIV, 006 ; DIVIDE 1 BY 2 SETVAL OPMVR, 007 ; MOVE REMAINDER TO R SETVAL OPXFOT, 010 ; SUM ARRAY ELEMENTS INTO R SETVAL OPSQRT, 011 ; DERIVE SQUARE ROOT OF 2 SETVAL OPMOVE, 012 ; MOVE 2 TO R, RIGHT JUSTIFIED SETVAL OPMOVL, 013 ; MOVE 2 TO R, LEFT JUSTIFIED SETVAL OPMLLZ, 014 ; MOVE ZONE OF LOW 2 TO LOW R SETVAL OPMHHZ, 015 ; MOVE ZONE OF HIGH 2 TO HIGH R SETVAL OPMLHZ, 016 ; MOVE ZONE OF LOW 2 TO HIGH R SETVAL OPMHLZ, 017 ; MOVE ZONE OF HIGH 2 TO LOW R SETVAL OPCOMP, 020 ; COMPARE FACTOR 1 TO 2 SETVAL OPTSTZ, 021 ; IDENTIFY ZONE OF R SETVAL OPBITN, 022 ; SET ON SPECIFIED BITS SETVAL OPBITF, 023 ; SET OFF SPECIFIED BITS SETVAL OPTSTB, 024 ; TEST SPECIFIED BITS SETVAL OPSETN, 025 ; SET ON SPECIFIED INDICATORS SETVAL OPSETF, 026 ; SET OFF SPECIFIED INDICATORS SETVAL OPGOTO, 027 ; BRANCH SETVAL OPTAG, 030 ; DEFINE TAG SETVAL OPEXIT, 031 ; BRANCH TO EXTERNAL ROUTINE SETVAL OPRLAB, 032 ; TRANSFER DATA TO EXTERNAL ROUTINE SETVAL OPTLOK, 033 ; TABLE LOOKUP SETVAL OPALOK, 034 ; ARRAY LOOKUP SETVAL OPBGSR, 035 ; BEGIN SUBROUTINE SETVAL OPENSR, 036 ; END SUBROUTINE SETVAL OPEXSR, 037 ; CALL SUBROUTINE SETVAL OPFORC, 040 ; FORCE I/O SETVAL OPXCPT, 041 ; FORCE OUTPUT PRINTING SETVAL OPDSPL, 042 ; GET/PUT DATA ON USER TTY SETVAL OPREAD, 043 ; READ FROM DEMAND FILE SETVAL OPCHAN, 044 ; CHAIN SETVAL OPDBUG, 045 ; DUMP DEBUG DATA SETVAL OPDET, 046 ; DETAIL ESCAPE SETVAL OPCAL, 047 ; TOTAL ESCAPE SETVAL OPMOVA, 050 ; MOVE ALL SETVAL OPTIME, 051 ; GET TIME OF DAY > DEFINE D.PNTR (TBLNAM,TBLID),< DEFINE TBLID'.ITM (ITMID,WRDNO,LFTBIT,RTBIT),< INTERNAL TBLID'.'ITMID TBLID'.'ITMID: POINT RTBIT-LFTBIT+1,WRDNO-1(TA),RTBIT > DEFINE TBLID'.FLG (FLGID,WRDNO,BITNO),< INTERNAL TBLID'.'FLGID TBLID'.'FLGID: POINT 1,WRDNO-1(TA),BITNO > > RADIX 10 ;FILTAB DEFINITIONS IFN MLOAD&BCDEFG!ONESEG,< D.PNTR FILTAB,FI FI.ITM NAM,1,3,17; NAMTAB LINK FI.ITM TYP,1,18,20; FILE TYPE FI.ITM DES,1,21,23; FILE DESIGNATION FI.ITM PRO,1,24,26; PROCESSING MODE FI.ITM ORG,1,27,28; FILE ORGANIZATION FI.ITM RAF,1,29,30; RECORD ADDRESS FORMAT FI.ITM DEV,1,31,34; DEVICE NAME SETVAL .FIMF1,0; MFCU1 SETVAL .FIMF2,1; MFCU2 SETVAL .FICDR,2; READ01 SETVAL .FILPT,3; PRINTER SETVAL .FILP2,4; PRINTR2 (obsolete) SETVAL .FITTY,5; CONSOLE SETVAL .FIDSK,6; DISK SETVAL .FIMTA,7; TAPE0-TAPE9 FI.FLG EOF,1,35; END OF FILE PROCESSING FI.ITM KYP,2,0,11; KEY POSITION FI.ITM BKL,2,12,23; BLOCK LENGTH FI.ITM RCL,2,24,35; RECORD LENGTH FI.ITM SEQ,3,0,1; SEQUENCE CHECKING FI.ITM BUF,3,2,8; TAPE BUFFER OFFSET FI.FLG AST,3,9; ASCII TAPE OPTION FI.ITM REW,3,10,11; TAPE REWIND OPTION FI.ITM EXT,3,12,17; NUMBER OF EXTENTS FI.ITM ADD,3,18,19; FILE ADDITION FI.ITM OVI,3,20,27; OVERFLOW INDICATOR FI.FLG ADF,3,28; RA LINK FLAG FI.ITM LPP,3,29,35; LINES PER PAGE FI.ITM OVL,4,0,5; OVERFLOW LINE FI.ITM UNT,4,6,9; unit number for mag-tapes FI.ITM KYL,4,12,16; LENGTH OF KEY FIELD FI.ITM EXI,4,17,24; EXTERNAL INDICATOR FI.ITM COR,5,0,17; CORE INDEX SIZE FI.ITM ADL,5,18,35; LINK TO ADDROUT OR LIMIT FILE FI.ITM DAT,6,0,17; LINK TO DATAB FI.ITM LIN,6,18,29; LINE NUMBER OF FILE SPEC FI.ITM PHY,7,0,35; PHYSICAL NAME OF FILE FI.ITM OTF,8,0,17; link to corresponding OTFTAB item > ;DATAB DEFINITIONS IFN MLOAD&BCDEFG!ONESEG,< D.PNTR DATTAB,DA DA.ITM NAM,1,3,17; NAMTAB LINK DA.ITM MAJ,1,18,35; LINK TO NEXT MAJOR ITEM DA.ITM BRO,2,0,17; LINK TO NEXT MINOR ITEM DA.ITM IND,2,18,35; LINK TO INDICATORS DA.ITM VAL,3,0,17; LINK TO VALUE DA.ITM COR,3,18,35; LINK TO CORE LOCATION DA.ITM NPS,4,0,1; NUMBER OF ENTRIES/SEQ TYPE DA.FLG RTR,4,2; RECORD TYPE REQUIRED DA.FLG TRA,4,3; TRAILER ITEM DA.FLG LHI,4,4; LOOK-AHEAD ITEM DA.ITM STS,4,5,7; STACKER SELECT DA.ITM FLD,4,8,9; FIELD TYPE DA.ITM SIZ,4,10,21; FIELD SIZE DA.ITM DEC,4,22,25; DECIMAL POSITIONS DA.FLG PRI,4,26; PRINT & PUNCH DA.FLG PRO,4,27; PRINT ONLY DA.FLG STR,4,28; STIRLING SIGN DA.ITM RES,4,29,34; BYTE RESIDUE FOR CORE POINTER DA.FLG IMD,4,35; IMMEDIATE INDEX DA.ITM RII,5,0,7; RECORD IDENTIFYING INDICATOR DA.ITM CLI,5,8,15; CONTROL LEVEL INDICATOR DA.ITM FPL,5,16,23; POSITIVE FIELD INDICATOR DA.ITM STP,5,24,35; STIRLING POSITION DA.ITM ORT,6,0,1; OUTPUT RECORD TYPE DA.FLG ARC,6,2; ADD RECORD DA.FLG FOV,6,3; FETCH OVERFLOW DA.ITM SPA,6,4,5; SPACE AFTER DA.ITM SKA,6,6,12; SKIP AFTER DA.ITM EDT,6,13,16; EDIT CODE DA.FLG BLA,6,17; BLANK AFTER DA.ITM SPB,6,18,19; SPACE BEFORE DA.ITM END,6,20,31; END POSITION DA.FLG LDC,6,32; LOAD AT COMPILE TIME DA.FLG LDR,6,33; LOAD AT PRE-EXECUTION TIME DA.FLG LDE,6,34; LOAD AT EXECUTION DA.FLG DMP,6,35; DUMP AT END OF JOB DA.ITM OCC,7,0,14; NUMBER OF OCCURS DA.FLG ALT,7,15; ALTERNATE TABLE DA.FLG INF,7,16; INPUT SECTION FLAG DA.FLG RND,7,17; ROUND THE RESULT (HALF-ADJUST) DA.ITM ALL,7,18,35; TABLE LINK TO ALT TABLE DA.ITM EPR,8,0,9; ENTRIES/RECORD DA.ITM SEQ,8,10,11; SEQUENCE CHECKING DA.FLG ARE,8,12; ARRAY ENTRY DA.FLG ADD,8,13; ADD RECORD DA.ITM FMT,8,14,17; FIELD FORMAT (IE SIXBIT, ASCII,EBCDIC) DA.ITM LDP,8,18,35; POINTER TO FILE THIS LOADS FROM DA.ITM DPP,9,0,17; POINTER TO FILE THIS DUMPS TO DA.ITM SNM,9,18,35; LINK TO ITEM WITH SAME NAME DA.ITM FRP,10,0,11; FROM POINTER DA.ITM TOP,10,12,23; TO POINTER DA.ITM MAT,10,24,31; MATCHING RECORD INDICATOR DA.FLG TAB,10,32; TABLE FLAG (VALID FOR OCHTAB ITEMS ONLY) DA.ITM FMN,11,0,7; NEGATIVE FIELD INDICATOR DA.ITM FBZ,11,8,15; BLANK OR ZERO FIELD INDICATOR DA.ITM SKB,11,16,22; SKIP BEFORE DA.ITM FRR,11,23,30; FIELD RECORD RELATION DA.FLG DUN,11,31; ITEM SEEN DA.FLG NDF,11,32; NOT FULLY DEFINED DA.FLG FLS,11,33; defined in file section DA.ITM ICH,12,0,17; ICHTAB POINTER DA.ITM ARP,12,18,35; POINTER TO ARRAY DA.ITM INP,13,0,17; POINTER TO INDEX DA.ITM LIN,13,18,30; LINE NUMBER DA.FLG LTF,13,31; LITERAL FLAG DA.ITM RSV,13,32,35; RESERVED WORD FLAG/CODE DA.ITM ISZ,14,0,11; input size > ;EXTAB DEFINITIONS IFN MLOAD&BCDEFG!ONESEG.,< D.PNTR EXTTAB,EX EX.ITM NAM,1,3,17 ;NAMTAB LINK EX.FLG NRS,2,0; USED BY NON-RESIDENT SEGMENT EX.FLG USN,2,1; OPSYS OR USER NAME EX.FLG PID,2,2; PROGRAM-ID ENTRY EX.FLG ENT,2,3 ;ENTRY ENTRY EX.FLG CAL,2,4 ;REFERENCED BY A CALL EX.ITM CNT,2,15,17 ;COUNT OF EXTRA WORDS ALLOCATED EX.ITM HLD,2,18,35 ;MISC USES (INCL HLDTAB LNK FOR CANCEL) > ;PROTAB DEFINITIONS IFN MLOAD&BCDEFG!ONESEG,< D.PNTR PROTAB,PR PR.ITM ID,1,0,2; TABLE ID PR.ITM NAM,1,3,17; NAMTAB LINK PR.ITM LNK,1,18,35; LINK TO ASSIGNED CORE LOCATION PR.FLG SEG,2,0; SEGMENT FLAG PR.FLG BSR,2,1; BEGSR FLAG > ;OTFTAB DEFINITIONS IFN MLOAD&EG.!ONESEG,< D.PNTR OTFTAB,OT OT.ITM COR,1,0,17; POINTER TO CORE INDEX * OT.ITM ADP,1,18,35; POINTER TO ADDROUT * OT.ITM BFP,2,0,17; POINTER TO RECORD BUFFER* OT.ITM OPC,2,18,35; POINTER TO OUTPUT CHAIN * OT.ITM IPC,3,0,17; POINTER TO INPUT CHAIN * OT.ITM FTB,3,18,35; POINTER TO FTBTAB ENTRY * OT.ITM NAM,4,0,35; PHYSICAL NAME OT.ITM TYP,5,0,2; FILE TYPE OT.ITM DES,5,3,5; FILE DESCRIPTION OT.ITM PRO,5,6,8; PROCESSING MODE OT.ITM ORG,5,9,10; ORGANIZATION OT.ITM RAF,5,11,12; RECORD ADDRESS FORMAT OT.ITM DEV,5,13,16; DEVICE OT.FLG EOF,5,17; EOF PROCESSING FLAG OT.ITM BLK,5,18,35; BLOCKING FACTOR OT.ITM KYP,6,0,11; KEY POSITION OT.ITM SEQ,6,12,13; SEQUENCE CHECKING OT.ITM BUF,6,14,19; BUFFER OFFSET OT.FLG AST,6,20; ASCII TAPE OPTION OT.ITM REW,6,21,22; REWIND OPTION OT.ITM EXT,6,23,28; NUMBER OF EXTENTS OT.ITM ADD,6,29,30; FILE ADDITION OPTION OT.ITM KYL,6,31,35; LENGTH OF KEY FIELD OT.ITM OVI,7,0,7; OVERFLOW INDICATOR OT.ITM EXI,7,8,15; EXTERNAL INDICATOR OT.ITM OVL,7,16,21; OVERFLOW LINE OT.ITM CHN,7,28,31; CURRENT CHANNEL OT.ITM CHI,7,32,35; INDEX CHANNEL OT.ITM CRS,8,0,17; CORE INDEX SIZE OT.ITM BSZ,8,18,35; BUFFER SIZE (WORDS) OT.ITM BSC,9,0,17; BUFFER SIZE (CHARACTERS) OT.FLG LAS,9,18; I AM LAST OT.ITM LPP,9,19,25; LINES PER PAGE OTFSIZ==:^D9; SIZE OF OTFTAB ENTRY > ;OCHTAB DEFINITIONS IFN MLOAD&EG.!ONESEG,< D.PNTR OCHTAB,OC OC.ITM IDX,1,0,17; POINTER TO INDEX * OC.ITM NXR,1,18,35; NEXT RECORD * OC.ITM NXF,2,0,17; NEXT FIELD * OC.ITM IND,2,18,35; INDTAB POINTER * OC.ITM SRC,3,0,35; SOURCE POINTER * OC.ITM FLD,4,0,1; FIELD TYPE OC.ITM SIZ,4,2,13; SIZE OC.ITM DEC,4,14,17; DECIMAL POSITIONS OC.ITM STP,4,18,29; STERLING POSITION OC.FLG PRI,4,30; MFCU PRINT & PUNCH OC.FLG PRO,4,31; MFCU PRINT ONLY OC.FLG STR,4,32; STERLING SIGN OC.ITM ORT,4,33,34; OUTPUT RECORD TYPE OC.FLG ADD,4,35; ADD A RECORD OC.FLG FOV,5,0; FORCED OVERFLOW OC.ITM SKB,5,1,7; SKIP BEFORE OC.ITM SKA,5,8,14; SKIP AFTER OC.ITM SPB,5,15,16; SPACE BEFORE OC.ITM SPA,5,17,18; SPACE AFTER OC.ITM END,5,19,30; END POSITION OC.ITM STS,5,31,34; STACKER SELECT OC.FLG IMD,5,35; INDEX IMMEDIATE OC.ITM OCC,6,0,14; OCCURS OC.ITM EDT,6,15,18; EDIT CODE OC.FLG LTF,6,19; LITERAL OUTPUT FLAG OC.ITM LSZ,6,20,28; SIZE OF LITERAL OC.ITM RSV,6,29,32; RESERVED WORD OC.FLG BLA,6,33; BLANK AFTER OC.FLG TAB,6,34; TABLE FLAG OC.ITM ARP,7,0,17; ARRAY POINTER * OC.ITM EDP,7,18,35; EDIT WORD/LITERAL PNTR * > ;ICHTAB DEFINITIONS IFN MLOAD&EG.!ONESEG,< D.PNTR ICHTAB,IC IC.ITM DES,1,0,35; ASSIGNED CORE LOC * IC.ITM RII,2,0,17; POINTER TO IDTTAB RII * IC.ITM NXF,2,18,35; NEXT FIELD * IC.ITM NXR,3,0,17; NEXT RECORD * IC.ITM ARP,3,18,35; POINTER TO ARRAY * IC.ITM INP,4,0,17; POINTER TO INDEX * IC.ITM FMN,5,0,7; MINUS INDICATOR IC.ITM FBZ,5,8,15; BLANK/ZERO INDICATOR IC.ITM FPL,5,16,23; PLUS INDICATOR IC.ITM CLI,5,24,31; CONTROL LEVEL INDICATOR IC.ITM NPS,5,32,33; NUMBER PER SEQUENCE IC.ITM FLD,5,34,35; FIELD TYPE IC.ITM FRR,6,0,7; FIELD RECORD RELATION IC.ITM MAT,6,8,15; MATCHING INDICATOR IC.FLG RTR,6,16; RECORD TYPE REQUIRED IC.FLG LHI,6,17; LOOK AHEAD ITEM IC.ITM STS,6,18,20; STACKER SELECT IC.ITM SIZ,6,21,32; SIZE IC.ITM SEQ,6,33,34; SEQUENCE CHECK IC.FLG IMD,6,35; IMMEDIATE IC.ITM SRC,7,0,11; CHARACTER POSITION IS SOURCE IC.ITM OCC,7,12,26; OCCURS IC.ITM FMT,7,27,31; DATA FORMAT > ;INDTAB DEFINITIONS IFN MLOAD&CDEFG.!ONESEG,< D.PNTR IDTTAB,ID ID.FLG OR,1,0; OR/AND FLAG ID.FLG NOT,1,1; NOT FLAG ID.ITM IND,1,2,9; INDICATOR/CHARACTER ID.ITM POS,1,10,21; POSITION ID.FLG END,1,22; END FLAG ID.ITM RII,1,23,30; RII (OR LINE ONLY) ID.ITM SEQ,1,31,35; ASSIGNED SEQ NUMBER (OR LINE ONLY) ID.ITM SPB,1,18,19; [357] space before ID.ITM SKB,1,20,26; [357] skip before ID.ITM SPA,1,27,28; [357] space after ID.ITM SKA,1,29,35; [357] skip after > ;FTBTAB DEFINITIONS IFN MLOAD&EG.!ONESEG,< D.PNTR FTBTAB,FT FT.ITM FNM,1,0,35; FILE NAME FT.ITM CVR,6,0,5; COMPILER VERSION NUMBER FT.FLG BLC,6,6; BUFFER LOCATION IS ASSIGNED FT.FLG SDF,6,7; SORT DESCRIPTOR FLAG FT.ITM NOD,6,8,17; NUMBER OF DEVICES FT.ITM DNM,6,18,35; ADDR OF FIRST DEVICE NAME FT.ITM NFL,7,0,4; NUMBER OF FILE LIMITS FT.ITM PMT,7,5,17; FILE POSITION ON MAG-TAPE FT.ITM NFT,7,18,35; NEXT FILE TABLE FT.ITM NAB,8,0,4; NUMBER OF ALTERNATE BUFFERS FT.ITM MRS,8,5,17; MAXIMUM RECORD SIZE (CHARACTERS) FT.ITM RRC,8,18,35; RECORDS BETWEEN RERUN DUMP FT.FLG VLR,9,0; VARIABLE LENGTH EBCDIC RECORDS FT.FLG NSL,9,2; NON-STANDARD LABELS FT.FLG STL,9,3; STANDARD LABELS FT.FLG IOF,9,6; INPUT/OUTPUT FILE FT.ITM DDM,9,7,9; DEVICE DATA MODE FT.FLG RRE,9,10; RERUN DUMP AT END-OF-REEL FT.FLG RCR,9,11; RERUN ON RECORD COUNT FT.FLG OPT,9,13; FILE IS OPTIONAL FT.ITM CDM,9,14,15; CORE DATA MODE FT.ITM MOD,9,16,17; I/O MODE FT.ITM REC,9,18,35; ADDRESS OF RECORD AREA FT.ITM NLS,10,0,17; NON-STANDARD LABEL SIZE FT.ITM FSD,10,18,35; LINK TO FILE THAT SHARES DEVICE FT.ITM BKF,11,6,17; BLOCKING FACTOR FT.ITM ACK,11,18,35; ADDRESS OF ACTUAL KEY TABLE FT.ITM VID,12,0,35; BYTE POINTER TO VALUE-OF-ID FT.ITM VDW,13,0,35; BYTE POINTER TO VALUE-OF-DATE-WRITTEN FT.ITM SBA,14,0,17; LINK TO FILE THAT SHARES BUFFER AREA FT.ITM EUP,14,18,35; ADDRESS OF ERROR-USE PROCEDURE FT.ITM BBR,15,0,17; ADDRESS OF BEFORE-BEGINNING-REEL PROCEDURE FT.ITM BBF,15,18,35; ADDRESS OF BEFORE-BEGINNING-FILE PROCEDURE FT.ITM ABR,16,0,17; ADDRESS OF AFTER-BEGINNING-REEL PROCEDURE FT.ITM ABF,16,18,35; ADDRESS OF AFTER-BEGINNING-FILE PROCEDURE FT.ITM BER,17,0,17; ADDRESS OF BEFORE-ENDING-REEL PROCEDURE FT.ITM BEF,17,18,35; ADDRESS OF BEFORE-ENDING-FILE PROCEDURE FT.ITM AER,18,0,18; ADDRESS OF AFTER-ENDING-REEL PROCEDURE FT.ITM AEF,18,18,35; ADDRESS OF AFTER-ENDING-FILE PROCEDURE FT.ITM DNS,19,0,2; MAGTAPE DENSITY FT.FLG PAR,19,4; MAGTAPE PARITY FT.FLG OUP,19,5; OPEN USE-PROCEDURE WHEN ENTER FAILS FT.ITM PPN,19,18,35; POINTER TO PPN FT.ITM BSK,20,0,35; BYTE POINTER TO SYMBOLIC KEY FT.ITM BRK,21,0,35; BYTE POINTER TO RECORD KEY FT.ITM KTY,22,15,17; ISAM KEY TYPE FT.FLG KSG,22,20; ISAM KEY IS SIGNED FT.ITM KLB,22,24,35; ISAM KEY LENGTH IN BYTES FT.ITM OWA,23,0,8; OWNER WRITE ACCESS FOR ISAM FT.ITM OTA,23,9,17; OTHER WRITE ACCESS FOR ISAM FT.ITM RTC,23,18,35; ISAM RETAINED RECORD COUNT FT.ITM PFS,24,0,35; POINTER TO FILE-STATUS DATA ITEM FT.ITM PEN,25,0,35; POINTER TO ERROR-NUMBER DATA-ITEM FT.ITM PAC,26,0,35; POINTER TO ACTION-CODE DATA ITEM FT.ITM PID,27,0,35; POINTER TO VALUE-OF-ID DATA ITEM FT.ITM PBN,28,0,35; POINTER TO BLOCK-NUMBER DATA ITEM FT.ITM PRN,29,0,35; POINTER TO RECORD-NUMBER DATA ITEM FT.ITM PFN,30,0,35; POINTER TO FILE-NAME DATA ITEM FT.ITM PFT,31,0,35; POINTER TO FILE-TABLE DATA ITEM FT.ITM LHL,32,0,35; POINTER TO LOW,,HIGH FILE LIMIT > ;ARRTAB definitions IFN MLOAD&E.!ONESEG,< D.PNTR ARRTAB,AR AR.ITM PNT,1,0,35; pointer to array AR.ITM SIZ,2,0,9; size of array entry AR.ITM OCC,2,10,19; number of array entries AR.ITM EPR,2,20,29; number of entries/record AR.FLG LDM,2,30; is 1 if dump, 0 if load AR.FLG LAS,2,31; this is the last item AR.ITM FIL,3,0,17; link to OTFTAB item for file AR.ITM ASZ,3,18,27; size of alternating item AR.ITM ALT,4,0,35; pointer to alternating array > ;FLAGS AND BITS IN GENFIL OPERATORS IFN MLOAD&DE.!ONESEG,< EXTERNAL OPRTR OBIT9: POINT 1,OPRTR,9 OBIT10: POINT 1,OPRTR,10 OBIT11: POINT 1,OPRTR,11 OBIT12: POINT 1,OPRTR,12 OBIT13: POINT 1,OPRTR,13 OBIT14: POINT 1,OPRTR,14 OBIT15: POINT 1,OPRTR,15 DEFINE OPBIT (X,Y),<SETVAL OP.'X,OBIT'Y> DEFINE OPFLD (W,X,Y,Z),<SETUP OP.'W,<POINT X,OPRTR+Z,Y>> ;FIELDS IN OPRTR WORD OPFLD LN,13,28,0 ; LINE NUMBER OPFLD OP,8,8,0 ; OP-CODE OPFLD OPR,1,0,0 ; OPERAND FLAG OPFLD LIT,1,1,0 ; LITERAL FLAG OPFLD AC,1,2,0 ; TEMP/AC FLAG OPFLD LNK,18,35,0 ; TABLE LINK OPFLD NUM,1,2,0 ; NUMERIC/ALPHA FLAG OPFLD FIG,1,3,0 ; FIGURATIVE CONSTANT FLAG > RADIX 8 ;CONSTANTS USED BY B,C,D,E,F,G IFN MLOAD&BCDEFG!ONESEG,< SETUP TABCOD,<POINT 3,0(DT),2> ;TABLE CODE IN MAJOR TABLES SETVAL FTFLAG,5 ;FILTAB WORD WHICH CONTAINS FLAGS SETUP FTBLOK,<POINT 7,4(DT),11> ;BLOCKING FACTOR FOR FILE SETUP FTDEVC,<POINT 6,3(DT),17> ;NUMBER OF DEVICES FOR THE FILE SETUP FTCMOD,<POINT 2,5(DT),15> ;CORE MODE (0=SIXBIT,2=ASCII) SETUP FTRSIZ,<POINT 12,6(DT),17> ;RECORD SIZE IN FILE-TABLE SETUP FTAMOD,<POINT 2,5(DT),17> ;ACCESS MODE IN FILTAB SETUP FTRMOD,<POINT 2,5(DT),1> ;RECORDING MODE IN FILTAB SETUP FTLABL,<POINT 2,5(DT),3> ;LABEL DEFINITION IN FILTAB SETUP FTRECD,<POINT 18,6(DT),35>;LOCATION OF "DATA RECORD" LINK IN FILE-TABLE SETUP FTDBAS,<POINT 18,^D15(DT),35>;BASE ADDRESS FOR ASSOCIATED DATA ENTRIES SETUP PTSEGN,<POINT 1,1(DT),0> ;SEGMENT NUMBER FOR PROTAB SETVAL PTFLAG,2 ;PROTAB WORD WHICH CONTAINS FLAGS > ;ASSEMBLY CODES IFN MLOAD&BCDEFG!ONESEG,< SETVAL AC.CNS,0 ;ADDRESS IS A CONSTANT .LT. 100000 SETVAL AC.ICH,1 ;ADDRESS IS AN ICHTAB ENTRY SETVAL AC.PRO,2 ;ADDRESS IS A PROCEDURE NAME SETVAL AC.EXT,3 ;ADDRESS IS AN EXTERNAL NAME SETVAL AC.FTB,4 ;ADDRESS IS AN FTBTAB ENTRY SETVAL AC.OCH,5 ;ADDRESS IS AN OCHTAB ENTRY SETVAL AC.CNB,6 ;ADDRESS IS A CONSTANT .GT. 77777 SETVAL AC.MSC,7 ;ADDRESS IS MISCELLANEOUS SETVAL AS.CNS,<AC.CNS*1B20> SETVAL AS.ICH,<AC.ICH*1B20> SETVAL AS.PRO,<AC.PRO*1B20> SETVAL AS.EXT,<AC.EXT*1B20> SETVAL AS.FTB,<AC.FTB*1B20> SETVAL AS.OCH,<AC.OCH*1B20> SETVAL AS.CNB,<AC.CNB*1B20> SETVAL AS.MSC,<AC.MSC*1B20> SETVAL AC.ABS,0 ;INCREMENT IS ABSOLUTE NUMBER SETVAL AC.OTB,1 ;INCREMENT TO %OTF SETVAL AC.OCB,2 ;OCHBAS SETVAL AC.LIT,3 ;INCREMENT TO %LIT SETVAL AC.ICB,4 ;ICHBAS SETVAL AC.DOT,5 ;CURRENT PC SETVAL AC.TMP,6 ;INCREMENT TO %TEMP SETVAL AC.DAT,7 ;DATBAS SETVAL AS.ABS,<AC.ABS*1B20> SETVAL AS.OTB,<AC.OTB*1B20> SETVAL AS.OCB,<AC.OCB*1B20> SETVAL AS.LIT,<AC.LIT*1B20> SETVAL AS.ICB,<AC.ICB*1B20> SETVAL AS.DOT,<AC.DOT*1B20> SETVAL AS.TMP,<AC.TMP*1B20> SETVAL AS.DAT,<AC.DAT*1B20> SETVAL AS.BYT,4B20 ;BYTE POINTER SETVAL AS.XWD,5B20 ;XWD SETVAL AS.ASC,6B20+1B21 ;ASCII SETVAL AS.SIX,6B20+1B22 ;SIXBIT SETVAL AS.D1,6B20+1B23 ;1-WORD DECIMAL SETVAL AS.D2,6B20+1B24 ;2-WORD DECIMAL SETVAL AS.FLT,6B20+1B25 ;COMP-1 SETVAL AS.OCT,6B20+1B26 ;OCTAL SETVAL AS.PN,7B20+1B21 ;PROCEDURE NAME SETVAL AS.%X,7B20+1B22 ;TAG DEFINITION SETVAL AS.REL,7B20+1B23 ;RELOC SETVAL AS.ENT,7B20+1B24 ;ENTRY > ;TABLE OF PRESET EXTERNAL NAMES IFN MLOAD&ADEFG.!ONESEG,< NUMEXT==0 USRNO==0 USRFLG==0 DEFINE EXTAB (X),< IFN MLOAD&A.!ONESEG,< SIXBIT "X" > IFN MLOAD&E.!ONESEG,< SETVAL X,NUMEXT*2+AS.EXT+1 > NUMEXT==NUMEXT+1 IFN USRFLG,<USRNO==USRNO+1> > DEFINE EXTMCS(EXTRTN),< EXTAB EXTRTN IFN MLOAD&EG.!ONESEG,<%'EXTRTN==:300000+NUMEXT*2-1> > EXTNAM: EXTAB RESET. IFN MLOAD&G.!ONESEG,<RESET==:300000+NUMEXT*2-1> ;PHASE G ADDR OF RESET. EXTAB FUNCT. IFN MLOAD&G.!ONESEG,<%FUNCT.==:NUMEXT-1> ; THIS IS ACTUALLY AN INTERNAL. ;THE FOLLOWING ONES MUST BE LAST, THEY ARE TREATED AS USER EXTERNALS FIXLST: EXTAB MEMRY. EXTAB .OTFBS USR: USRFLG==1 EXTAB RPGST. IFN MLOAD&G.!ONESEG,<RPGSTR==:300000+NUMEXT*2-1> ; PHASE G ADDR OF RPGST. DEFINE EXTABN(DBROUT),< EXTAB DBROUT IFN MLOAD&D.!ONESEG,<%'DBROUT==:500000+NUMEXT*2-1> > IFN MLOAD&A.!ONESEG,< SETUP EXTPTR,<XWD -NUMEXT,EXTNAM> > SETVAL NUMEXT,<<NUMEXT-USRNO>*2> > ;CONSTANTS USED BY PHASE F IFN MLOAD&F.!ONESEG,< SETUP ERALNA,<POINT 14,DW,14>; LINE NUMBER IN "DW" PLUS "IMBED" BIT > ;CONSTANTS USED BY PHASE G IFN MLOAD&G.!ONESEG, < SETUP ASOP,<POINT 7,W1,8>; INSTRUCTION OP-CODE SETUP INCTYP,<POINT 3,W2,20>; INCREMENT CODE TYPE SETUP ADRTYP,<POINT 3,W1,20>; ADDRESS CODE TYPE > END