         TITLE ' PLINK MODULE IFDOLT28'                                 00010000
         TITLE 'PLINK MODULE IFDOLT28'                                  00020000
         LCLA  &T,&SPN                                            0002  00030000
.@001    ANOP                                                     0002  00040000
IFDOLT28 CSECT ,                                                  0002  00050000
         BC    15,24(0,@F)                                              00060000
         DC    C'IFDOLT28 26 DEC 73'                             0002  00070000
         ST    @E,12(0,@D)                                        0002  00080000
         STM   @0,@C,20(@D)                                       0002  00090000
         BALR  @B,0                                               0002  00100000
@PSTART  DS    0H                                                 0002  00110000
         USING @PSTART+00000,@B                                   0002  00120000
         ST    @D,@SAV001+4                                       0002  00130000
         LA    @F,@SAV001                                         0002  00140000
         ST    @F,8(0,@D)                                         0002  00150000
         LR    @D,@F                                              0002  00160000
*         GEN(USING CHASCT,2);                                          00170000
         USING CHASCT,2                                                 00180000
         DS    0H                                                       00190000
*         /************************************************************ 00200000
*         /*    REGISTER  DEFINITION                                  * 00210000
*         /************************************************************ 00220000
*         DCL R0 REG(0);                                                00230000
*         DCL R1 REG(1) PTR;                                            00240000
*         DCL R2 REG(2) PTR;                                            00250000
*         DCL R3 REG(3);                                                00260000
*         DCL R4 REG(4) PTR;                                            00270000
*         DCL R5 REG(5);                                                00280000
*         DCL R6 REG(6);                                                00290000
*         DCL R7 REG(7);                                                00300000
*         DCL R8 REG(8) PTR;                                            00310000
*         DCL R9 REG(9);                                                00320000
*         DCL R10 REG(10);                                              00330000
*         DCL R11 REG(11);                                              00340000
*         DCL R12 REG(12);                                              00350000
*         DCL R13 REG(13);                                              00360000
*         DCL R14 REG(14);                                              00370000
*         DCL R15 REG(15) PTR;                                          00380000
*         DCL R1SAVE PTR;               /* REG 1 SAVEAREA               00390000
*         /************************************************************ 00400000
*         /*    PARAMETER LIST                                        * 00410000
*         /************************************************************ 00420000
*         DCL   1 * BASED(R1SAVE),                                      00430000
*                3 * CHAR(4),                                           00440000
*                 5 * CHAR(1),           /* N/A                         00450000
*                 5 MACROLVL CHAR(1),    /* MACRO LEVEL                 00460000
*                 5 * CHAR(2),           /* N/A                         00470000
*                3 PLNKENP PTR,         /*ADDR TABLE TO RECEIVE EP ADR* 00480000
*                3 PLNCTRL CHAR(1),     /*CONTROL BYTES               * 00490000
*                 5 LOAD BIT(1),        /* LOAD OP                    * 00500000
*                 5 CLL  BIT(1),        /* N/A                        * 00510000
*                 5 NOMCPLK  BIT(1),    /* IF ON NO PLK IN MORECORE   * 00520000
*                                       /*                      X03008* 00530000
*                 5 * BIT(1),           /* N/A                        * 00540000
*                 5 DELETE BIT(1),      /* DELETE OP                  * 00550000
*                 5 RET BIT(1),         /* N/A                        * 00560000
*                 5 * BIT(1),           /* N/A                        * 00570000
*                 5 SIZE BIT(1),        /* N/A                        * 00580000
*                3 PLNKCOR CHAR(1),     /* CORE NEED IN 1K MULTIPLES  * 00590000
*                3 PLNKLOD CHAR(1),     /* # OF MODULES TO BE LOADED  * 00600000
*                3 PLNKDEL CHAR(1),     /* # OF MODULES TO BE DELETED * 00610000
*                3 PLNMODS(10) CHAR(8);  /* MODULES UP TO 10            00620000
*         /*EPLIST TABLE                                              * 00630000
*         DCL EPLSTAB(10) PTR BDY(WORD) BASED(PLNKENP);                 00640000
*         DCL INSTADR PTR BDY(WORD) BASED(R1+12);                       00650000
*         /************************************************************ 00660000
*         /*    COMMON CORE MAP                                       * 00670000
*         /************************************************************ 00680000
*         DCL PARTITEM GEND;             /* PARTITION ITEMS FOR PLINK   00690000
*         DCL   1 * BASED(ADDR(PARTITEM)),                              00700000
*                3 OLTAREA PTR,         /* POINTER TO OLT AREA        * 00710000
*                3 OLTSIZE PTR,         /* TOTAL SIZE OF OLT AREA     * 00720000
*                3 USESIZE PTR;         /* SIZE OF PLINK AREA         * 00730000
*         /************************************************************ 00740000
*         /*    LOADER PARAMETER LIST                                 * 00750000
*         /************************************************************ 00760000
*         DCL   1 LPARM BDY(WORD) CHAR(16),                             00770000
*                3 MODNAME CHAR(8),     /* NAME OF MODULE TO BE LOADED* 00780000
*                3 TARGADDR PTR,        /* TARGET ADDRESS             * 00790000
*                3 CONTROL CHAR(1),     /* CONTROL BITS               * 00800000
*                 5 PLINK BIT(1),       /* LOAD MODULE                * 00810000
*                 5 COMPUTE BIT(1),     /* COMPUTE                    * 00820000
*                 5 * BIT(6),           /* N/A                        * 00830000
*                3 * CHAR(3) INIT('000000'X);/* N/A                   * 00840000
*         DCL PLKMOR GEND;              /* COMMON AREA REF      X03008* 00850000
*         DCL 1 * BASED(ADDR(PLKMOR)),  /* NOT USED             X03008* 00860000
*               3 * CHAR(8),            /* NOT USED             X03008* 00870000
*               3 HEAD PTR;             /* POINTER TO MORE CORE AREA  * 00880000
*                                       /*                      X03008* 00890000
*        DCL  1 * BASED(R8),            /*  MORE CORE MAP       X03008* 00900000
*               3 SIZ  PTR,             /*  SIZE MORECORE       X03008* 00910000
*                5 ENDID CHAR(1),       /*  END MORECORE AREA   X03008* 00920000
*                 7 INUSE BIT(1),       /*  ACTIVE MORECORE AREA      * 00930000
*                 7 PLINKED BIT(1),     /*  IF ON A PLINK LIVES HERE  * 00940000
*                                       /*                      X03008* 00950000
*               3 NEXT PTR,             /*  ADDR NXT AREA       X03008* 00960000
*               3 MODULEID CHAR(8),     /* POSSIBLE MOD NAME    X03008* 00970000
*               3 * CHAR(4),            /* NOT REFED            X03008* 00980000
*               3 BEGINPTR PTR;         /* ACTUAL LOAD PTR      X03008* 00990000
*        DCL 1 MORELIST BDY(WORD)  CHAR(12),  /* MORECORE PARMS X03008* 01000000
*             3 * CHAR(1) INIT('00'X),  /* XMGR FLAGS           X03008* 01010000
*             3 LVL CHAR(1) INIT('02'X), /* MAC LVL             X03008* 01020000
*             3 * CHAR(2) INIT('42'),   /* MOD ID               X03008* 01030000
*             3 MAX PTR,                /* MAX CORE NEEDED      X03008* 01040000
*             3 MIN PTR;                /* MIN CORE NEEDED      X03008* 01050000
*         DCL CHASCT GEND;              /* COMMON AREA REFS     X03008* 01060000
*      DCL 1 *  BASED(OLTAREA),         /* ADDR OF OLT          X03008* 01070000
*              3  * CHAR(10),           /* NOT REFED.           X03008* 01080000
*              3  SECTPREF FIXED(15);  /* WILL HAVE DISP TO SC PREF  */ 01090000
*      DCL 1 *  BASED (R4),             /* WILL POINT TO PREF X03008*/  01100000
*              3 * CHAR(16),            /*                      X03008* 01110000
*              3 * BIT(8),              /* NOT USED             X03008* 01120000
*                5 * BIT(2),            /* NOT USED             X03008* 01130000
*                5 QUESTION BIT(1);     /* IF ON PLINK INTO MORECORE  * 01140000
*         DCL MSGMOD  PTR GEND;         /* USED TO REF MSG      X03008* 01150000
*         DCL 1 * BASED(MSGMOD),        /* NOT USED             X03008* 01160000
*               3 * CHAR(144),          /* NOT USED             X03008* 01170000
*               3 IFD253 PTR;           /* MOD NAME NOT FOUND   X03008* 01180000
*         DCL 1 * BASED(R1),       /* POINTER TO MSG IFD253I    X03008* 01190000
*             3 * CHAR(23),              /* BEGINNING OF MSG    X03008* 01200000
*             3 SUBMODID CHAR(8);    /*MODULE NAME              X03008* 01210000
*         DCL TAB28 GEND;               /* USED TO XFER OUT     X03008* 01220000
*         RESTRICT(R1,R2,R4,R5,R6,R7,R8);                               01230000
*         R1SAVE=R1;                    /*SAVE PARM LIST POINTER      * 01240000
         ST    @1,R1SAVE                                          0040  01250000
*         IF MACROLVL^='02'X THEN        /* CHECK MACRO LEVEL         * 01260000
         L     @3,R1SAVE                                          0041  01270000
         CLI   1(@3),X'02'                                        0041  01280000
*          GOTO ERRCOND4;                /* ERROR RETURN              * 01290000
         BC    07,ERRCOND4                                        0042  01300000
*         IF DELETE = '1'B THEN          /*  DELETE OPERATION ?       * 01310000
         TM    8(@3),B'00001000'                                  0043  01320000
*          GO TO RETRN;                  /* GO EXIT MOD GO SCAN       * 01330000
         BC    01,RETRN                                           0044  01340000
*         /* CHECK PARAMETER LIST                                     * 01350000
*         IF LOAD^='1'B THEN            /* LOAD OPERATION ?           * 01360000
         TM    8(@3),B'10000000'                                  0045  01370000
*          GOTO ERRCOND4;               /* NO,OTHER OPTION NOT AVAIL. * 01380000
         BC    12,ERRCOND4                                        0046  01390000
*         /************************************************************ 01400000
*         /*    LOAD OPERATION                                        * 01410000
*         /************************************************************ 01420000
* LOADCK:                               /* ENTER HERE FOR LOADS X03008* 01430000
*         R4 = OLTAREA+SECTPREF;        /* SET ADDR OF BIT      X03008* 01440000
LOADCK   L     @3,A00006                                          0047  01450000
         LH    @4,10(0,@3)                                        0047  01460000
         A     @4,A00006                                          0047  01470000
*         R5=PLNKLOD;                   /* # OF MODULES TO LOAD       * 01480000
         L     @9,R1SAVE                                          0048  01490000
         SR    @5,@5                                              0048  01500000
         IC    @5,10(0,@9)                                        0048  01510000
*         IF R5=0 THEN                  /* NO MODULES ?               * 01520000
         LTR   @5,@5                                              0049  01530000
*          GOTO ERRCOND8;               /* YES ERROR                  * 01540000
         BC    08,ERRCOND8                                        0050  01550000
*         /* IS ORIGIN WITHIN OLTAREA                                 * 01560000
*         IF PLNKENP<OLTAREA THEN       /* OUTSIDE  OLT AREA ?        * 01570000
         L     @F,A00006                                          0051  01580000
         C     @F,4(0,@9)                                         0051  01590000
*          GOTO ERRCOND8;               /* YES,ERROR                  * 01600000
         BC    02,ERRCOND8                                        0052  01610000
*         /************************************************************ 01620000
*         /*    COMPUTE MODULE LENGTH                                 * 01630000
*         /************************************************************ 01640000
*         DO R7=1 TO R5 BY 1;            /* LOOP FOR LOADING MODULES  * 01650000
         LA    @7,1                                               0053  01660000
         BC    15,@DO9FE                                          0053  01670000
*           MODNAME=PLNMODS(R7);         /*MODULE NAME FOR LOADER     * 01680000
@DO9FF   LR    @3,@7                                              0054  01690000
         BCTR  @3,0                                               0054  01700000
         SLA   @3,3                                               0054  01710000
         L     @9,R1SAVE                                          0054  01720000
         LA    @E,12(@3,@9)                                       0054  01730000
         MVC   LPARM(8),0(@E)                                     0054  01740000
*           IF NOMCPLK = '1'B THEN       /* PLK IN MORECOR?     X03008* 01750000
         TM    8(@9),B'00100000'                                  0055  01760000
*             GO TO NORMAL;              /* IF BIT ON DONOT...  X03008* 01770000
         BC    01,NORMAL                                          0056  01780000
*           IF QUESTION ^= '1'B THEN     /* IS THIS A LOAD DIR  X03008* 01790000
         TM    16(@4),B'00100000'                                 0057  01800000
*             GO TO NORMAL;              /* NO, BRANCH          X03008* 01810000
         BC    12,NORMAL                                          0058  01820000
*           R8 = HEAD;                   /* SET R8 TO MOR COR   X03008* 01830000
         L     @8,A00009+8                                        0059  01840000
*           IF R8 >= 0 THEN              /* MORCORS ACTIVE      X03008* 01850000
         LTR   @8,@8                                              0060  01860000
*                                        /* IF MINUS BRANCH     X03008* 01870000
*           GO TO KOMPUTE;               /* IF NO GO COMP       X03008* 01880000
         BC    10,KOMPUTE                                         0061  01890000
* ENDCK:                                 /* ELSE, SEARCH        X03008* 01900000
*           IF ENDID = 'EF'X THEN        /* IS THIS END OF STG  X03008* 01910000
ENDCK    CLI   0(@8),X'EF'                                        0062  01920000
*             GO TO KOMPUTE;             /* IF YES GO COMP      X03008* 01930000
         BC    08,KOMPUTE                                         0063  01940000
*           IF INUSE ^= '1'B  THEN       /* IS AREA ACTIVE      X03008* 01950000
         TM    0(@8),B'10000000'                                  0064  01960000
         BC    01,@9FB                                            0064  01970000
*             DO;                        /* IF NOT THEN         X03008* 01980000
* GETNEXT:                               /* GET NEXT MORE-      X03008* 01990000
*               R8 = NEXT;               /* CORE POINTER        X03008* 02000000
GETNEXT  L     @8,4(0,@8)                                         0066  02010000
*               GO TO ENDCK;             /* AND PROCEED         X03008* 02020000
         BC    15,ENDCK                                           0067  02030000
*             END;                       /* THRU MORCOR         X03008* 02040000
*           IF MODNAME = MODULEID &      /* ELSE, IS THIS       X03008* 02050000
*              PLINKED = '1'B THEN       /* A PLINK MODULE      X03008* 02060000
@9FB     CLC   LPARM(8),8(@8)                                     0069  02070000
         BC    07,@9FA                                            0069  02080000
         TM    0(@8),B'01000000'                                  0069  02090000
         BC    12,@9F9                                            0069  02100000
*             DO;                        /* THE MOD TO BE       X03008* 02110000
*               R1=ADDR(MODULEID);       /* LOADED              YM5418* 02120000
         LA    @1,8(0,@8)                                         0071  02130000
*               GO TO NEXTMOD;           /* IS YES SET ADDR AND X03008* 02140000
         BC    15,NEXTMOD                                         0072  02150000
*             END;                       /* GO GET NEXT PLINK   X03008* 02160000
*           GO TO GETNEXT;               /* NO MATCH, CONT      X03008* 02170000
* KOMPUTE:                               /* OBTAIN MOD SIZ      X03008* 02180000
*           CONTROL = '40'X;             /* SET COMP BIT        X03008* 02190000
KOMPUTE  MVI   LPARM+12,X'40'                                     0075  02200000
*           GEN(IFDMOD CALL='12',LIST=LPARM);   /* GO COMP      X03008* 02210000
         IFDMOD CALL='12',LIST=LPARM                                    02220000
         DS    0H                                                       02230000
*           IF R15 ^= 0 THEN             /* MOD FOUND           X03008* 02240000
         LTR   @F,@F                                              0077  02250000
*             GO TO ERRCOND;             /* IF NO ,EXIT         X03008* 02260000
         BC    07,ERRCOND                                         0078  02270000
*           MAX = R0;                    /* ELSE SET SIZ        X03008* 02280000
         ST    @0,MORELIST+4                                      0079  02290000
*           MIN = R0;                    /* OF MOD FOR XFER     X03008* 02300000
         ST    @0,MORELIST+8                                      0080  02310000
*           R15 = TAB28;                 /* SET XMGR ADDR       X03008* 02320000
         L     @F,TAB28                                           0081  02330000
*           R1 = ADDR(MORELIST);         /* SET PARM ADDR       X03008* 02340000
         LA    @1,MORELIST                                        0082  02350000
*           R14 = ADDR(MORECK);          /* SET RTN ADDR        X03008* 02360000
         LA    @E,MORECK                                          0083  02370000
*           GO TO R15;                   /* GO TO MORECORE      X03008* 02380000
         BCR   15,@F                                              0084  02390000
* MORECK:                                /* WAS IT OK           X03008* 02400000
*           IF R15 ^= 0 THEN             /* MORCOR OK?          X03008* 02410000
MORECK   LTR   @F,@F                                              0085  02420000
*             GO TO NORMAL;              /* IF NOT CONT         X03008* 02430000
         BC    07,NORMAL                                          0086  02440000
*           CONTROL = '00'X;             /* ELSE, SET LOAD      X03008* 02450000
         MVI   LPARM+12,X'00'                                     0087  02460000
*           TARGADDR   =  R1;            /* AND ADDR            X03008* 02470000
         ST    @1,LPARM+8                                         0088  02480000
*           GEN(IFDMOD CALL='12',LIST=LPARM); /* FOR LOADER     X03008* 02490000
         IFDMOD CALL='12',LIST=LPARM                                    02500000
         DS    0H                                                       02510000
*           IF R15 ^= 0 THEN             /* LOAD  OK??          X03008* 02520000
         LTR   @F,@F                                              0090  02530000
*            GO TO ERRCOND;              /* IF NO EXIT          X03008* 02540000
         BC    07,ERRCOND                                         0091  02550000
*           R8 = TARGADDR;               /* GET ADDR WHERE MOD  X03008* 02560000
         L     @8,LPARM+8                                         0092  02570000
*           R8 = R8 - 8;                 /* LOADED -8 SO TO     X03008* 02580000
         SH    @8,@D1                                             0093  02590000
*           PLINKED = '1'B;              /* SET PLINK MOD ID    X03008* 02600000
         OI    0(@8),B'01000000'                                  0094  02610000
*           GO TO NEXTMOD;               /* ELSE CONT           X03008* 02620000
         BC    15,NEXTMOD                                         0095  02630000
* NORMAL:                                /* NORMAL LOAD         X03008* 02640000
*           TARGADDR=OLTAREA;            /*ADDRESS FOR LOAD             02650000
NORMAL   MVC   LPARM+8(4),A00006                                  0096  02660000
*           CONTROL='C0'X;               /* "COMPUTE" FIRST          */ 02670000
         MVI   LPARM+12,X'C0'                                     0097  02680000
*           GEN(IFDMOD CALL='12',LIST=LPARM);                           02690000
         IFDMOD CALL='12',LIST=LPARM                                    02700000
         DS    0H                                                       02710000
*           /* ERROR                                                    02720000
*           IF R15^=0 THEN               /* YES                         02730000
         LTR   @F,@F                                              0099  02740000
*             GOTO ERRCOND;                                             02750000
         BC    07,ERRCOND                                         0100  02760000
*           /* CHECK MODULE SIZE                                        02770000
*           IF R0>OLTSIZE |                                             02780000
*             R0>USESIZE THEN            /* IF YES THEN ,ERROR          02790000
         C     @0,A00006+4                                        0101  02800000
         BC    02,@9F8                                            0101  02810000
         C     @0,A00006+8                                        0101  02820000
         BC    12,@9F7                                            0101  02830000
*             GOTO ERRCND10;                                            02840000
         BC    03,ERRCND10                                        0102  02850000
*           /********************************************************** 02860000
*           /* LOAD MODULE                                              02870000
*           /********************************************************** 02880000
*           CONTROL='80'X;               /* "LOAD" MODULE               02890000
@9F7     MVI   LPARM+12,X'80'                                     0103  02900000
*           /* CALL LOADER                                              02910000
*           GEN(IFDMOD CALL='12',LIST=LPARM);                           02920000
         IFDMOD CALL='12',LIST=LPARM                                    02930000
         DS    0H                                                       02940000
*           /* ERROR                                                    02950000
*           IF R15^=0 THEN               /* YES                         02960000
         LTR   @F,@F                                              0105  02970000
*             GOTO ERRCOND;                                             02980000
         BC    07,ERRCOND                                         0106  02990000
* NEXTMOD:                               /* ENTER HERE FROM DIR LOAD    03000000
*           EPLSTAB(R7)=INSTADR;         /*MODULE ENTRY POINT           03010000
NEXTMOD  L     @F,12(0,@1)                                        0107  03020000
         LR    @3,@7                                              0107  03030000
         BCTR  @3,0                                               0107  03040000
         SLA   @3,2                                               0107  03050000
         L     @9,R1SAVE                                          0107  03060000
         L     @9,4(0,@9)          A00000                         0107  03070000
         ST    @F,0(@3,@9)                                        0107  03080000
*         END;                                                          03090000
*         GOTO RETRN;                    /* RETURN TO CALLER            03100000
         AH    @7,@D2                                             0108  03110000
@DO9FE   CR    @7,@5                                              0108  03120000
         BC    12,@DO9FF                                          0108  03130000
         BC    15,RETRN                                           0109  03140000
*         /************************************************************ 03150000
*         /*    RETURN CODES                                          * 03160000
*         /************************************************************ 03170000
*  ERRCOND:                                                             03180000
*         /* CHECK CONDITION CODE                                     * 03190000
*         IF R15=12 THEN                /* MODULE NOT FOUND           * 03200000
ERRCOND  CH    @F,@D3                                             0110  03210000
         BC    07,@9F6                                            0110  03220000
*           DO;                         /*  ISSUE MSG 253I AND EXIT   * 03230000
*            R1 = IFD253;               /*                      X03008* 03240000
         L     @3,MSGMOD                                          0112  03250000
         L     @1,144(0,@3)                                       0112  03260000
*            SUBMODID = MODNAME;        /* GET MODULE NAME      X03008* 03270000
         MVC   23(8,@1),LPARM                                     0113  03280000
*  GENERATE;                                                            03290000
       PWTO  REG=(R1)                                                   03300000
         DS    0H                                                       03310000
*          GOTO ERRCONDC;               /* GO LOAD CONDITION CODE     * 03320000
         BC    15,ERRCONDC                                        0115  03330000
*           END;                                                        03340000
* ERRCOND4:                                                             03350000
*         R15=4;                        /* FUNCTION NOT AVAILABLE     * 03360000
@9F6     EQU   *                                                  0117  03370000
ERRCOND4 LA    @F,4                                               0117  03380000
*         GOTO RETRN1;                  /* RETURN                     * 03390000
         BC    15,RETRN1                                          0118  03400000
* ERRCOND8:                                                             03410000
*         R15=8;                        /* PARAMETER LIST INCORRECT   * 03420000
ERRCOND8 LA    @F,8                                               0119  03430000
*         GOTO RETRN1;                  /* RETURN                     * 03440000
         BC    15,RETRN1                                          0120  03450000
* ERRCONDC:                                                             03460000
*         R15=12;                       /* MODULE NOT FOUND           * 03470000
ERRCONDC LA    @F,12                                              0121  03480000
*         GOTO RETRN1;                  /* RETURN                     * 03490000
         BC    15,RETRN1                                          0122  03500000
* ERRCND10:                                                             03510000
*         R15=16;                       /* NO SPACE                   * 03520000
ERRCND10 LA    @F,16                                              0123  03530000
*         GOTO RETRN1;                  /* RETURN                     * 03540000
         BC    15,RETRN1                                          0124  03550000
*    RETRN:                                                             03560000
*         R15=0;                                                        03570000
RETRN    SR    @F,@F                                              0125  03580000
*   RETRN1:                                                             03590000
*         RETURN;                                                       03600000
*         END;                                                          03610000
@EL01    L     @D,4(0,@D)                                         0127  03620000
         L     @E,12(0,@D)                                        0127  03630000
         LM    @0,@C,20(@D)                                       0127  03640000
         BCR   15,@E                                              0127  03650000
@DATA1   EQU   *                                                        03660000
@0       EQU   00                  EQUATES FOR REGISTERS 0-15           03670000
@1       EQU   01                                                       03680000
@2       EQU   02                                                       03690000
@3       EQU   03                                                       03700000
@4       EQU   04                                                       03710000
@5       EQU   05                                                       03720000
@6       EQU   06                                                       03730000
@7       EQU   07                                                       03740000
@8       EQU   08                                                       03750000
@9       EQU   09                                                       03760000
@A       EQU   10                                                       03770000
@B       EQU   11                                                       03780000
@C       EQU   12                                                       03790000
@D       EQU   13                                                       03800000
@E       EQU   14                                                       03810000
@F       EQU   15                                                       03820000
@D1      DC    H'8'                                                     03830000
@D2      DC    H'1'                                                     03840000
@D3      DC    H'12'                                                    03850000
         DS    0F                                                       03860000
         DS    0D                                                       03870000
@DATA    EQU   *                                                        03880000
@SAV001  EQU   @DATA+00000000      72 BYTE(S) ON WORD                   03890000
R0       EQU   00000000            FULLWORD INTEGER REGISTER            03900000
R1       EQU   00000001            FULLWORD POINTER REGISTER            03910000
R2       EQU   00000002            FULLWORD POINTER REGISTER            03920000
R3       EQU   00000003            FULLWORD INTEGER REGISTER            03930000
R4       EQU   00000004            FULLWORD POINTER REGISTER            03940000
R5       EQU   00000005            FULLWORD INTEGER REGISTER            03950000
R6       EQU   00000006            FULLWORD INTEGER REGISTER            03960000
R7       EQU   00000007            FULLWORD INTEGER REGISTER            03970000
R8       EQU   00000008            FULLWORD POINTER REGISTER            03980000
R9       EQU   00000009            FULLWORD INTEGER REGISTER            03990000
R10      EQU   00000010            FULLWORD INTEGER REGISTER            04000000
R11      EQU   00000011            FULLWORD INTEGER REGISTER            04010000
R12      EQU   00000012            FULLWORD INTEGER REGISTER            04020000
R13      EQU   00000013            FULLWORD INTEGER REGISTER            04030000
R14      EQU   00000014            FULLWORD INTEGER REGISTER            04040000
R15      EQU   00000015            FULLWORD POINTER REGISTER            04050000
R1SAVE   EQU   @DATA+00000072      FULLWORD POINTER                     04060000
A00000   EQU   00000000            92 BYTE(S) ON WORD                   04070000
A00001   EQU   A00000+00000000     4 BYTE(S)                            04080000
A00002   EQU   A00000+00000000     1 BYTE(S)                            04090000
MACROLVL EQU   A00000+00000001     1 BYTE(S)                            04100000
A00003   EQU   A00000+00000002     2 BYTE(S)                            04110000
PLNKENP  EQU   A00000+00000004     FULLWORD POINTER                     04120000
PLNCTRL  EQU   A00000+00000008     1 BYTE(S)                            04130000
LOAD     EQU   A00000+00000008     1 BIT(S)                             04140000
CLL      EQU   A00000+00000008     1 BIT(S)                             04150000
NOMCPLK  EQU   A00000+00000008     1 BIT(S)                             04160000
A00004   EQU   A00000+00000008     1 BIT(S)                             04170000
DELETE   EQU   A00000+00000008     1 BIT(S)                             04180000
RET      EQU   A00000+00000008     1 BIT(S)                             04190000
A00005   EQU   A00000+00000008     1 BIT(S)                             04200000
SIZE     EQU   A00000+00000008     1 BIT(S)                             04210000
PLNKCOR  EQU   A00000+00000009     1 BYTE(S)                            04220000
PLNKLOD  EQU   A00000+00000010     1 BYTE(S)                            04230000
PLNKDEL  EQU   A00000+00000011     1 BYTE(S)                            04240000
PLNMODS  EQU   A00000+00000012     10*8 BYTE(S)                         04250000
EPLSTAB  EQU   00000000            10*FULLWORD POINTER                  04260000
INSTADR  EQU   00000012            FULLWORD POINTER                     04270000
LPARM    EQU   @DATA+00000076      16 BYTE(S) ON WORD                   04280000
MODNAME  EQU   LPARM+00000000      8 BYTE(S)                            04290000
TARGADDR EQU   LPARM+00000008      FULLWORD POINTER                     04300000
CONTROL  EQU   LPARM+00000012      1 BYTE(S)                            04310000
PLINK    EQU   LPARM+00000012      1 BIT(S)                             04320000
COMPUTE  EQU   LPARM+00000012      1 BIT(S)                             04330000
A00007   EQU   LPARM+00000012      6 BIT(S)                             04340000
         ORG   LPARM+00000013                                           04350000
A00008   EQU   *                   3 BYTE(S)                            04360000
         DC    X'000000'                                                04370000
A00011   EQU   00000000            24 BYTE(S) ON WORD                   04380000
SIZ      EQU   A00011+00000000     FULLWORD POINTER                     04390000
ENDID    EQU   A00011+00000000     1 BYTE(S)                            04400000
INUSE    EQU   A00011+00000000     1 BIT(S)                             04410000
PLINKED  EQU   A00011+00000000     1 BIT(S)                             04420000
NEXT     EQU   A00011+00000004     FULLWORD POINTER                     04430000
MODULEID EQU   A00011+00000008     8 BYTE(S)                            04440000
A00012   EQU   A00011+00000016     4 BYTE(S)                            04450000
BEGINPTR EQU   A00011+00000020     FULLWORD POINTER                     04460000
MORELIST EQU   @DATA+00000092      12 BYTE(S) ON WORD                   04470000
A00013   EQU   *                   1 BYTE(S)                            04480000
         DC    X'00'                                                    04490000
LVL      EQU   *                   1 BYTE(S)                            04500000
         DC    X'02'                                                    04510000
A00014   EQU   *                   2 BYTE(S)                            04520000
         DC    C'42'                                                    04530000
MAX      EQU   MORELIST+00000004   FULLWORD POINTER                     04540000
MIN      EQU   MORELIST+00000008   FULLWORD POINTER                     04550000
A00015   EQU   00000000            12 BYTE(S) ON WORD                   04560000
A00016   EQU   A00015+00000000     10 BYTE(S)                           04570000
SECTPREF EQU   A00015+00000010     HALFWORD INTEGER                     04580000
A00017   EQU   00000000            17 BYTE(S) ON WORD                   04590000
A00018   EQU   A00017+00000000     16 BYTE(S)                           04600000
A00019   EQU   A00017+00000016     8 BIT(S)                             04610000
A00020   EQU   A00017+00000016     2 BIT(S)                             04620000
QUESTION EQU   A00017+00000016     1 BIT(S)                             04630000
A00021   EQU   00000000            148 BYTE(S) ON WORD                  04640000
A00022   EQU   A00021+00000000     144 BYTE(S)                          04650000
IFD253   EQU   A00021+00000144     FULLWORD POINTER                     04660000
A00023   EQU   00000000            31 BYTE(S) ON WORD                   04670000
A00024   EQU   A00023+00000000     23 BYTE(S)                           04680000
SUBMODID EQU   A00023+00000023     8 BYTE(S)                            04690000
         ORG   @DATA                                                    04700000
         DS    00000108C                                                04710000
@TEMPS   DS    0F                                                       04720000
PLKCOMM  IFDCOM                                                         04730000
IFDOLT28 CSECT                                                          04740000
A00006   EQU   PARTITEM+00000000   12 BYTE(S) ON WORD                   04750000
OLTAREA  EQU   A00006+00000000     FULLWORD POINTER                     04760000
OLTSIZE  EQU   A00006+00000004     FULLWORD POINTER                     04770000
USESIZE  EQU   A00006+00000008     FULLWORD POINTER                     04780000
A00009   EQU   PLKMOR+00000000     12 BYTE(S) ON WORD                   04790000
A00010   EQU   A00009+00000000     8 BYTE(S)                            04800000
HEAD     EQU   A00009+00000008     FULLWORD POINTER                     04810000
@DATEND  EQU   *                                                        04820000
@9FA     EQU   GETNEXT                                                  04830000
@9F9     EQU   GETNEXT                                                  04840000
@9F8     EQU   ERRCND10                                                 04850000
RETRN1   EQU   @EL01                                                    04860000
         END                                                            04870000
