         TITLE ' RETAIN/370 MESSAGE HANDLER IFDOLT55'                   00010000
         TITLE 'RETAIN/370 MESSAGE HANDLER IFDOLT55'                    00020000
         LCLA  &T,&SPN                                            0002  00030000
.@001    ANOP                                                     0002  00040000
IFDOLT55 CSECT ,                                                  0002  00050000
         BC    15,24(0,@F)                                              00060000
         DC    C'IFDOLT55 15 APR 74'                             0002  00070000
         STM   @E,@C,12(@D)                                       0002  00080000
         BALR  @B,0                                               0002  00090000
@PSTART  DS    0H                                                 0002  00100000
         USING @PSTART+00000,@B                                   0002  00110000
         ST    @D,@SAV001+4                                       0002  00120000
         LA    @F,@SAV001                                         0002  00130000
         ST    @F,8(0,@D)                                         0002  00140000
         LR    @D,@F                                              0002  00150000
*         GEN(USING  CHASCT,2);                                         00160000
         USING  CHASCT,2                                                00170000
         DS    0H                                                       00180000
*  GENERATE DATA;                                                       00190000
*         DCL CCWWRIN CHAR(8) GENERATED;                                00200000
*         DCL 1 WWRIN CHAR(8) BASED(ADDR(CCWWRIN)),                     00210000
*              3 * CHAR(6),                                             00220000
*              3 DISP PTR(15);          /* CCW CHARACTER COUNT        * 00230000
*         DCL CCWWREOT CHAR(8) GENERATED;                               00240000
*         DCL CCWRDI CHAR(8) GENERATED;                                 00250000
*         DCL CCWWRRSP CHAR(8) GENERATED;                               00260000
*  GEN(EJECT);                                                          00270000
         EJECT                                                          00280000
         DS    0H                                                       00290000
*  /******************************************************************* 00300000
*  /*              REGISTERS                                          * 00310000
*  /******************************************************************* 00320000
*         DCL R0 REG(0) PTR;                                            00330000
*         DCL R1 REG(1) PTR;                                            00340000
*         DCL R2 REG(2) PTR;                                            00350000
*         DCL R3 REG(3);                                                00360000
*         DCL R4 REG(4);                                                00370000
*         DCL R5 REG(5);                                                00380000
*         DCL R6 REG(6);                                                00390000
*         DCL R7 REG(7);                                                00400000
*         DCL R8 REG(8) PTR;                                            00410000
*         DCL R9 REG(9);                                                00420000
*         DCL R10 REG(10);                                              00430000
*         DCL R11 REG(11);                                              00440000
*         DCL R12 REG(12);                                              00450000
*         DCL R13 REG(13);                                              00460000
*         DCL R14 REG(14);                                              00470000
*         DCL R15 REG(15);                                              00480000
*         RESTRICT (2,3,4,5,6,7,8,9);                                   00490000
*         DCL R1SAVE PTR;               /* REG 1 SAVE AREA            * 00500000
*  /******************************************************************* 00510000
*  /* LABELS AND POINTERS FOR INDIRECT ADDRESSING OF THE FREE PWTOR   * 00520000
*  /* SECTION AND THE EXCP SECTION                                    * 00530000
*  /******************************************************************* 00540000
*         DCL OUTSTD LABEL;             /* OUTSTANDING PWTOR'S        * 00550000
*         DCL RPLIMD LABEL;             /* IMMEDIATE PWTOR'S          * 00560000
*         DCL FREEPTR PTR;              /* RETURN AREA POINTER        * 00570000
*         DCL FREERTRN LABEL BASED(FREEPTR); /*RETURN LABEL           * 00580000
*  /*                                                                 * 00590000
*         DCL AA LABEL;                  /* RETURN LABEL              * 00600000
*         DCL BB LABEL;                  /* RETURN LABEL              * 00610000
*         DCL CONTEN LABEL;             /* RETURN LABEL               * 00620000
*         DCL EXCPPTR PTR;               /* RETURN LABEL POINTER      * 00630000
*         DCL EXCPRTRN LABEL BASED(EXCPPTR); /* ADDR OF RETURN LABEL  * 00640000
*  /******************************************************************* 00650000
*  /*                RETAIN/370 IOB                                   * 00660000
*  /******************************************************************* 00670000
*         GEN(ENTRY REIOB);                                             00680000
         ENTRY REIOB                                                    00690000
         DS    0H                                                       00700000
*         DCL 1 REIOB CHAR(52) BDY(WORD), /* IOB                      * 00710000
*             2 REIOB1 CHAR(32),                                        00720000
*              3 FLAGS BIT(8),                                          00730000
*               5 DCH BIT(1),           /* DATA CHAINING              * 00740000
*               5 CCH BIT(1),           /* COMMAND CHAINING           * 00750000
*               5 * BIT(6),             /*                            * 00760000
*              3 * BIT(24),             /*                            * 00770000
*              3 ECBC BIT(8),           /* ECB CODE                   * 00780000
*              3 ECBA PTR(24),          /* ECB ADDRESS                * 00790000
*              3 CSW BIT(64),           /* CSW                        * 00800000
*               5 * BIT(32),            /*                            * 00810000
*               5 CEDEUE BIT(8),        /*                            * 00820000
*                7 CE BIT(1),           /* CHANNEL END BIT            * 00830000
*                7 DE BIT(1),           /* DEVICE  END BIT            * 00840000
*                7 * BIT(1),            /*                            * 00850000
*                7 UE BIT(1),           /* UNIT EXCEPTION BIT         * 00860000
*                7 * BIT(4),            /*                            * 00870000
*               5 * BIT(24),            /*                            * 00880000
*              3 * BIT(8),              /*                            * 00890000
*              3 CPA PTR(24),           /* CHANNEL PROGRAM ADDRESS    * 00900000
*              3 * BIT(8),              /*                            * 00910000
*              3 DCBA PTR(24),          /* DCB ADDRESS                * 00920000
*              3 * BIT(8),                                              00930000
*              3 * CHAR(8),                                             00940000
*             2 ERPWORK PTR(31) INIT(ADDR(CCWWORK)),  /* ERP WORK AREA* 00950000
*             2 EOTRESP PTR(31) INIT(ADDR(EOT)), /*PTR TO END OF TRANS* 00960000
*             2 NEGRESP PTR(31) INIT(ADDR(NEG)), /*PTR TO NEGATIVE RSP* 00970000
*             2 REMINPTR PTR(31) INIT(ADDR(REMINBUF)); /*IN BUFFER PTR* 00980000
*  /******************************************************************* 00990000
*  /* ERP'S CCW WORK AREA                                             * 01000000
*  /******************************************************************* 01010000
*       DCL 1 CCWWORK CHAR(48) BDY(DWORD),   /*                  M4502* 01020000
*            2 CCWS(6) CHAR(8) INIT((6)'0000000000000000'X);   /*M4502* 01030000
*  /******************************************************************* 01040000
*  /*     RETAIN/370 DCB                                              * 01050000
*  /******************************************************************* 01060000
*         GEN(ENTRY REIDCB);                                            01070000
         ENTRY REIDCB                                                   01080000
         DS    0H                                                       01090000
*         DCL 1 REIDCB BDY(WORD),                                       01100000
*               3 *(18) FIXED INIT((18)0),   /*                  M4502* 01110000
*               3 *(5) FIXED,                /*                  M4502* 01120000
*                5 * PTR INIT(ADDR(RETRN)),  /*                  M4502* 01130000
*                5 * PTR INIT(ADDR(RETRN)),  /*                  M4502* 01140000
*                5 * PTR INIT(ADDR(RETRN)),  /*                  M4502* 01150000
*                5 * PTR INIT(ADDR(RETRN)),  /*                  M4502* 01160000
*                5 * PTR INIT(ADDR(RETRN)),  /*                  M4502* 01170000
*               3 RETRN CHAR(2) INIT('07FE'X); /*                M4502* 01180000
*  /******************************************************************* 01190000
*  /*     RETAIN/370 UCB                                              * 01200000
*  /******************************************************************* 01210000
*         DCL REIUCB PTR GENERATED;     /* UCB                        * 01220000
*  /******************************************************************* 01230000
*  /*  E B C D I C  TO  TRANSMISSION CODE TRANSLATE TABLE             * 01240000
*  /******************************************************************* 01250000
*  DECLARE               /* 0 1 2 3 4 5 6 7 8 9 A B C D E F           * 01260000
*  OUTTBL  BIT(128)  INIT('81E2E4E7E8EBEDEEF0F3A0768493E187'X),  /* C * 01270000
*  OUTTBL1 BIT(128)  INIT('61C3C5C6C9CACCCFD1D2D757909587F6'X),  /* D * 01280000
*  OUTTBL2 BIT(128)  INIT('4023A5A6A9AAACAFB1B281378BC08EA3'X),  /* E * 01290000
*  OUTTBL3 BIT(128)  INIT('15020407080B0D0E10138816208D8296'X);  /* F * 01300000
*  /******************************************************************* 01310000
*  /*  TRANSMISSION CODE TO E B C D I C  TRANSLATE TABLE              * 01320000
*  /******************************************************************* 01330000
*  DECLARE                                                              01340000
*   INTBL  CHAR(16)  INIT(' 1234567890#    '),                          01350000
*   INTBL1 CHAR(16)  INIT('@/STUVWXYZ ,    '),                          01360000
*   INTBL2 CHAR(16)  INIT('-JKLMNOPQR $    '),                          01370000
*   INTBL3 CHAR(16)  INIT('&ABCDEFGHI .    '),                          01380000
*   INTBL4 CHAR(16)  INIT(' =<;:% >*()"    '),                          01390000
*   INTBL5 CHAR(16)  INIT(' ?STUVWXYZ |    '),                          01400000
*   INTBL6 CHAR(16)  INIT('_JKLMNOPQR      '),                          01410000
*   INTBL7 CHAR(16)  INIT('+ABCDEFGHI ^    ');                          01420000
*  /******************************************************************* 01430000
*  /* DEDICATED BUFFER FOR ONSITE TO REMOTE COMMUNICATIONS            * 01440000
*  /******************************************************************* 01450000
*         GEN(ENTRY DEDBUF);                                            01460000
         ENTRY DEDBUF                                                   01470000
         DS    0H                                                       01480000
*         DCL DEDBUF CHAR(72) BDY(WORD) INIT((72)'40'X);                01490000
*  /******************************************************************* 01500000
*  /* BUFFER FOR RECEIVING IMMEDIATE RESPONSES FROM REMOTE            * 01510000
*  /******************************************************************* 01520000
*         DCL   RESPBUF PTR GENERATED;                                  01530000
*         DCL 1 RSPBUF CHAR(4) BASED(ADDR(RESPBUF)),                    01540000
*              3 RSPCNT CHAR(1),                                        01550000
*              3 RSPADR CHAR(3);                                        01560000
*  /******************************************************************* 01570000
*  /*     REMOTE ECB                                                  * 01580000
*  /******************************************************************* 01590000
*         DCL   REIECB FIXED GENERATED; /* REMOTE ECB                 * 01600000
*         DCL 1 RECB FIXED BASED(ADDR(REIECB)), /* REMOTE ECB         * 01610000
*              3 COMPCODE BIT(8),               /* COMPLETION CODE    * 01620000
*              3 * BIT(24);                                             01630000
*  /******************************************************************* 01640000
*  /* BUFFER FOR OUTPUTTING MESSAGES TO REMOTE                        * 01650000
*  /******************************************************************* 01660000
*         DCL 1 ROUTBUF CHAR(130) BDY(WORD), /*OUTPUT BUFFER     M1373* 01670000
*              3 EOA CHAR(1) INIT('16'X),       /* END OF ADDRESS     * 01680000
*              3 OUTTEXT CHAR(125);          /*TEXT              M1373* 01690000
*  /******************************************************************* 01700000
*  /* FOLLOWING IS THE '*0X '  IN TRANSMISSION CODE,TO BE ATTACHED    * 01710000
*  /* TO MESSAGES REQUIRING A REPLY.'X'WILL CONTAIN THE CODE (0-4)    * 01720000
*  /******************************************************************* 01730000
*         DCL 1 SENDCODE CHAR(4) INIT('90158181'X),  /*ATTACHED TO    * 01740000
*                                       /*                       M4502* 01750000
*              3 * CHAR(2),                     /* REPLY TYPE MESSAGES* 01760000
*                                       /*                       M4502* 01770000
*              3 SCD CHAR(1),                   /* REPLY CODE         * 01780000
*              3 * CHAR(1);                                             01790000
*  /******************************************************************* 01800000
*  /* 2955 LINE CONTROL CHARACTERS                                    * 01810000
*  /******************************************************************* 01820000
*  /*                                                                 * 01830000
*         DCL EOT CHAR(1) INIT('1F'X);  /* END OF TRANS      X02008*/   01840000
*         DCL POS CHAR(1) INIT('76'X);  /* POSITIVE RESPONSE   X02008   01850000
*         DCL NEG CHAR(1) INIT('40'X);  /* NEGATIVE RESPONSE   X02008   01860000
*  /******************************************************************* 01870000
*  /* MESSAGE FOR REMOTE INDICATING ILLEGAL REPLY CODE                * 01880000
*  /******************************************************************* 01890000
*         DCL 1 ILLRPL CHAR(29) BDY(WORD)  /* MSG FOR REMOTE INDICAT- * 01900000
*                                        /*                      M5049* 01910000
*         INIT('IFD173I REPLY    NOT VERIFIED'), /* ING ILLEGAL  M5049* 01920000
*               5 * CHAR(14),            /* REPLY CODE           M5049* 01930000
*              5 ILRC CHAR(2),                                          01940000
*              5 * CHAR(13);                                            01950000
*                                                                       01960000
*         /*    PURGE PARAMETER LIST FOR SVC 16                 Y02008* 01970000
*                                                                       01980000
*         DCL 1 PURGELST CHAR(16) BDY(WORD), /* PURGE PARMLST   Y02008* 01990000
*           3 PPLDSID CHAR(4),         /* DSID INFORMATION      Y02008* 02000000
*             5 PPLOPT1 CHAR(1) INIT('E4'X),  /* OPTION BYTE    Y02008* 02010000
*             5 PPLDSIDA PTR(24),      /* ADDR OF REI DEB       Y02008* 02020000
*           3 * CHAR(12);              /* N A                   Y02008* 02030000
*                                                                       02040000
*                                                                       02050000
*  /******************************************************************* 02060000
*  /* ON-SITE ECBS ASSOCIATED WITH OUTSTANDING OLT AND OLTEP MESSAGES * 02070000
*  /* ALSO BUFFERS AND COUNTS ASSOCIATED WITH SAME                    * 02080000
*  /******************************************************************* 02090000
*         DCL   ECB3 FIXED GENERATED;              /*ECB FOR OUTSTAND-* 02100000
*         DCL 1 RECB3 FIXED BASED(ADDR(ECB3)),     /*ING OLTEP MESSAGE* 02110000
*              2 ECB3C CHAR(1),          /* COMPLETION CODE           * 02120000
*              2 * CHAR(3);              /* NA                        * 02130000
*         DCL   DYNCOM CHAR(1) GENERATED;          /*BUFFER FOR SAME  * 02140000
*         DCL   RDYNCOM CHAR(1) BASED(ADDR(DYNCOM));                    02150000
*  /*                                                                 * 02160000
*         DCL   ECB37 FIXED GENERATED;             /*ECB FOR OUTSTAND-* 02170000
*         DCL 1 RECB37 FIXED BASED(ADDR(ECB37)),   /*ING CECOM MESSAGE* 02180000
*              2 ECB37C CHAR(1),         /* COMPLETION CODE           * 02190000
*              2 * CHAR(3);             /* NA                         * 02200000
*         DCL   REPLY37 CHAR(72)  GENERATED;       /*BUFFER FOR SAME  * 02210000
*         DCL   RREPLY37 CHAR(72)  BASED(ADDR(REPLY37));                02220000
*         DCL   CNT37 CHAR(1) GENERATED;           /*BYTE COUNT FOR   * 02230000
*         DCL   RCNT37 CHAR(1) BASED(ADDR(CNT37)); /* SAME            * 02240000
*  /*                                                                 * 02250000
*         DCL 1 ECB01 FIXED BASED(R1SAVE), /*ECB FOR LOCAL D/T/O/ MSG * 02260000
*              2 ECB01C CHAR(1),         /* COMPLETION CODE           * 02270000
*              2 * CHAR(3);              /* NA                        * 02280000
*  /******************************************************************* 02290000
*  /* SVC 59 CALLING SEQUENCE FOR FREEING OUTSTANDING LOCAL ECBS      * 02300000
*  /******************************************************************* 02310000
*         DCL   WKSVC PTR GENERATED;                                    02320000
*         DCL   ROPT CHAR(8)  GENERATED;                                02330000
*         DCL  1 * BASED(ADDR(ROPT)),              /*SVC 59 CALLING   * 02340000
*               3 ROPT4 PTR,                       /* SEQUENCE        * 02350000
*               3 ROPT8 PTR;                                            02360000
*         DCL   MODID BASED(ADDR(WKSVC));                               02370000
*         DCL   MSGMOD PTR GENERATED;    /* MESSAGE MODULE ADDRESS    * 02380000
*         DCL 1 * BASED(MSGMOD),                                        02390000
*               3 *(19) PTR(31),         /* SPACE TO APPROPRIATE MSGS.* 02400000
*               3 WTORANS  PTR(31);      /*REMOTE HAS RESPONDED TO MSG* 02410000
*         DCL 1 * BASED(WTORANS),        /*REMOTE HAS RESPONDED TO XX * 02420000
*               3 * CHAR(4),            /* USED BY WTO                * 02430000
*               3 * CHAR(16),            /*                           * 02440000
*               3 MID CHAR(2);           /* MESSAGE ID FOR ANSWERED   * 02450000
*                                        /* MESSAGE.                  * 02460000
*         DCL 1 WKWDID CHAR(4) BDY(WORD),/* RETURN ID WORK AREA       * 02470000
*               3 * CHAR(2),             /*                           * 02480000
*               3 DUMID CHAR(2);         /* SYSTEM ASSIGNED ID        * 02490000
*  /******************************************************************* 02500000
*  /* STIMER MACRO CALLING SEQUENCE                                   * 02510000
*  /******************************************************************* 02520000
*         DCL TIMEOUT PTR GENERATED;                                    02530000
*         DCL SAVE2(18) FIXED;          /* TIMEOUT SAVEAREA           * 02540000
*         DCL TIME10 CHAR(8) BDY(DWORD) /* TEN MINUTES ON WAIT        * 02550000
*           INIT('F0F0F1F0F0F0F0C0'X);                                  02560000
*  /******************************************************************* 02570000
*  /* REMOTE INPUT BUFFER AND SETUP FOR WTO                           * 02580000
*  /******************************************************************* 02590000
*         GEN(ENTRY REMINBUF);                                          02600000
         ENTRY REMINBUF                                                 02610000
         DS    0H                                                       02620000
*         DCL 1 WTOBUF CHAR(130) BDY(WORD),  /* WRITE TO OP  X02008   * 02630000
*              2 WTOCNT CHAR(2),        /* WTO COUNT                  * 02640000
*              2 WTOFLG BIT(16) INIT('1000000000000000'B),/* WTO FLAGS* 02650000
*              2 MSGID CHAR(122),       /* MSG ID            X02008   * 02660000
*               3 * CHAR(2),            /* NA                         * 02670000
*               3 REMINBUF CHAR(120),   /* REMOTE IN BUF     X02008   * 02680000
*                5 REPLY CHAR(4),       /* REPLY CODE R XX            * 02690000
*                 7 * CHAR(3),          /* R X PORTION                * 02700000
*                 7 CODE CHAR(1),       /* X PORTION                  * 02710000
*                5 * CHAR(2),           /* COMMA AND APOSTROPHE       * 02720000
*                5 INTEXT CHAR(72),     /* MESSAGE TEXT               * 02730000
*              2 RTEDSC CHAR(4) INIT('02000040'X); /* RTE&DSC CODES   * 02740000
*  /*                                                                 * 02750000
*         DCL WTOID CHAR(8) INIT('IFD255I '); /*COMMUNICATION MSG ID  * 02760000
*  /*                                                                 * 02770000
*         DCL 1 WRKCNT CHAR(4) BDY(WORD), /* WTO COUNT WORK AREA      * 02780000
*              3 * CHAR(2),             /* NA                         * 02790000
*              3 COUNT CHAR(2);         /*  WTO COUNT                 * 02800000
*  /******************************************************************* 02810000
*  /* COMMON AREA AND COMMON AREA SWITCHES FOR RETAIN                 * 02820000
*  /******************************************************************* 02830000
*         DCL   CHASCT CHAR(116) GENERATED;                             02840000
*  /*                                                                 * 02850000
*         DCL   CESWTR BIT(8) GENERATED; /* RETAIN SWITCHES           * 02860000
*         DCL 1 SWTR BIT(8) BASED(ADDR(CESWTR)),                        02870000
*              3 RETAINAC BIT(1),   /* INTERFACE ACTIVE      N/A      * 02880000
*              3 REMERR BIT(1),     /* PERMANENT ERROR                * 02890000
*              3 REMNOMSG BIT(1),   /* DATA PROTECTION       N/A      * 02900000
*              3 CENOMSG BIT(1),    /* CE DOES NOT GET MSG            * 02910000
*              3 PRTNOMSG BIT(1),   /* MSG. NOT PRINTED               * 02920000
*              3 IMRESP BIT(1),     /* IMMEDIATE RESPONSE MSG. ISSUED * 02930000
*              3 EXECOUT BIT(1),    /* FORCE COMMUNICATIONS MSG.ISSUED* 02940000
*              3 CECOMOUT BIT(1);   /* OUTSTANDING MSG. ISSUED        * 02950000
*  /*                                                                 * 02960000
*         DCL   CESWTR1 BIT(8) GENERATED; /*RETAIN SWITCHES           * 02970000
*         DCL 1 SWTR1 BIT(8) BASED(ADDR(CESWTR1)),                      02980000
*              3 ILLRESP BIT(1),    /* ILLEGAL RESPONSE               * 02990000
*              3 EXECANS BIT(1),    /* FORCE COMMUNICATION RESPONSE   * 03000000
*              3 CECOMANS BIT(1),   /* OUSTANDING MSG. RESPONSE       * 03010000
*              3 INFOMSG BIT(1),    /* 'TALK' RESPONSE                * 03020000
*              3 RETRIEVE BIT(1),   /* 1=RETRIEVE MSG, 0=SEND MSG     * 03030000
*              3 REMANS BIT(1),     /*                                * 03040000
*              3 EDTOMSG BIT(1),                                        03050000
*              3 MSGHND BIT(1);         /* IFDOLT55 IN CONTROL SWTCH  * 03060000
*  /*                                                                 * 03070000
*         DCL   CESWTR2 BIT(8) GENERATED;    /* RETAIN SWITCHES       * 03080000
*         DCL 1 SWTR2 BIT(8) BASED(ADDR(CESWTR2)),                      03090000
*              3 REPLY00 BIT(1),             /*TYPE OF MSG=DEV/TEST/OP* 03100000
*              3 REPLY02 BIT(1),             /*TYPE OF MSG=OUTST CECOM* 03110000
*              3 ONCOMM BIT(1),             /*ONSITE WILL ANSWER D/T/O* 03120000
*              3 COMMLOOP BIT(1),        /*E D/T/O/ MSG NO REPLY CODE * 03130000
*              3 WAIT3 BIT(1),          /* N/A               X02008   * 03140000
*              3 OPTERR BIT(1),         /* N/A               X02008   * 03150000
*              3 PRTONLY BIT(1),        /* PRINT ONLY FLG    X02008   * 03160000
*              3 DPMSG BIT(1);     /*DP MESSAGE FLAG            X02008* 03170000
*  /*                                                                 * 03180000
*         DCL PRTBUFR CHAR(120) GENERATED;         /* PRINT BUFFER    * 03190000
*  /*                                                                 * 03200000
*         DCL 1 SWTSAVE BIT(8),         /* SWITCH SAVE AREA      M4502* 03210000
*              2 SWT1 BIT(1),           /*                       M4502* 03220000
*              2 SWT2 BIT(1),           /*                       M4502* 03230000
*              2 SWT3 BIT(1),           /*                       M4502* 03240000
*              2 SWT4 BIT(1),           /*                       M4502* 03250000
*              2 SWT5 BIT(1),           /*                       M4502* 03260000
*              2 SWT6 BIT(1),           /*                       M4502* 03270000
*              2 SWT7 BIT(1),           /*                       M4502* 03280000
*              2 SWT8 BIT(1);           /*                       M4502* 03290000
*                                                                       03300000
*                                                                       03310000
*         /************************************************************ 03320000
*         /*  ADDRESS OF CVT                                            03330000
*         DCL CVTADPTR PTR INIT(16);                                    03340000
*         DCL CVTADDR PTR BASED(CVTADPTR);                              03350000
*         DCL   1 CVT BASED(CVTADDR),    /* CVT                         03360000
*                3 * CHAR(40),                                          03370000
*                3 CVTILK2 PTR,          /* PTR TO UCB LOOKUP TABLE  */ 03380000
*                3 * CHAR(284),          /* N.A. IN CVT         X03008* 03390000
*                3 CVTEXT2 PTR;          /* PTR TO CVT EXTENSIONX03008* 03400000
*         DCL CVTOLTEP BASED(CVTEXT2+28) PTR; /* OLTEP PTR,CVT  X03008* 03410000
*         DCL 1 OLTEPTAB CHAR(24) BASED(CVTOLTEP), /* OLTEP TAB X03008* 03420000
*                3 DIEHEAD CHAR(4),     /* HEAD OF DIE MODULE   Y02008* 03430000
*                3 REIDEBAD PTR,        /* PTR OLTEPS REI DEB   Y02008* 03440000
*                3 * CHAR(20),          /* PTRS FOR DIE USE     Y02008* 03450000
*                3 OLTEPUCB PTR,        /* OLTEP UCBS FOR TEST  X03008* 03460000
*                3 REIUCBAD PTR,        /* DEV UCB ADDRESS      X03008* 03470000
*                3 * CHAR(4),           /* N A                  Y02008* 03480000
*                3 IOSGENTBL (18) FIXED;/* IOS WORK AREA        X03008* 03490000
*  /******************************************************************* 03500000
*  /* DETERMINE IF SEND OR RECEIVE OPERATION                          * 03510000
*  /******************************************************************* 03520000
*         R1SAVE=R1;                    /* SAVE REG 1                 * 03530000
         ST    @1,R1SAVE                                          0100  03540000
*         GEN(TTIMER CANCEL);           /* CANCEL TIMER               * 03550000
         TTIMER CANCEL                                                  03560000
         DS    0H                                                       03570000
*         MSGHND='1'B;                  /*SET IFDOLT55 IN CTRL SWT ON * 03580000
         OI    SWTR1,B'00000001'                                  0102  03590000
*         SWTSAVE=CESWTR;               /* SAVE SWITCHES         M5049* 03600000
         MVC   SWTSAVE(1),CESWTR                                  0103  03610000
*         IF RETRIEVE='1'B THEN GOTO RECEIVE;/* GO IF RECIEVE OPER.   * 03620000
         TM    SWTR1,B'00001000'                                  0104  03630000
         BC    01,RECEIVE                                         0105  03640000
*                                                                       03650000
*         PPLDSIDA=REIDEBAD;            /* ADDRESS DEB FOR CHKS Y02008* 03660000
         L     @1,CVTADPTR                                        0106  03670000
         L     @1,0(0,@1)          CVTADDR                        0106  03680000
         L     @1,328(0,@1)        CVT                            0106  03690000
         L     @1,28(0,@1)         CVTOLTEP                       0106  03700000
         MVC   PURGELST+1(3),5(@1)                                0106  03710000
*         R1=ADDR(PURGELST);       /* ADDRESS PURGE PARM LIST   Y02008* 03720000
         LA    @1,PURGELST                                        0107  03730000
*         GEN;                     /* PURGE READ INIT. CHANNEL PROG   * 03740000
HIORDINT SVC   16                 * HIO ON READ INITIAL CHANNEL PROG    03750000
         DS    0H                                                       03760000
*         R7=ADDR(PRTBUFR)+1;           /* GET ADDRESS OF MESSAGE     * 03770000
         LA    @7,PRTBUFR+1                                       0109  03780000
*  /******************************************************************* 03790000
*  /* DETERMINE REPLY CODE TO ATTACH TO MESSAGE                       * 03800000
*  /******************************************************************* 03810000
*  CHKRPL:R6 = ADDR(OUTTEXT);       /* ADDRESS OF OUTPUT BUFFER       * 03820000
CHKRPL   LA    @6,ROUTBUF+1                                       0110  03830000
*         IF REMANS = '0'B THEN GOTO CHKRP1;/*ONSITE WILL ANSWER      * 03840000
         TM    SWTR1,B'00000100'                                  0111  03850000
         BC    08,CHKRP1                                          0112  03860000
*         IF COMMLOOP='1'B THEN GOTO CHKRP1; /* COMM   MSG NO REPLY CD* 03870000
         TM    SWTR2,B'00010000'                                  0113  03880000
         BC    01,CHKRP1                                          0114  03890000
*         IF DPMSG='1'B THEN       /*IS THIS A DP MESSAGE       X02008* 03900000
         TM    SWTR2,B'00000001'                                  0115  03910000
*           GOTO CHKRP1;           /* YES                       X02008* 03920000
         BC    01,CHKRP1                                          0116  03930000
*         IF REPLY00 = '1'B THEN    /* TO FORCE COMMUNICATIONS MSG ?  * 03940000
         TM    SWTR2,B'10000000'                                  0117  03950000
         BC    12,@9FF                                            0117  03960000
*                                       /*                       M4502* 03970000
*           DO;                     /* YES                       M4502* 03980000
*         SCD = '15'X;                  /* REPLY CODE = 0 ADDAPTER CD * 03990000
         MVI   SENDCODE+2,X'15'                                   0119  04000000
*                                       /*                       M4502* 04010000
*         GOTO BCDCN;               /* CONVERT IT                M4502* 04020000
         BC    15,BCDCN                                           0120  04030000
*         END;                          /*                       M4502* 04040000
*           ELSE;                       /*                       M4502* 04050000
@9FF     EQU   *                                                  0122  04060000
*         IF ONCOMM='1'B THEN GOTO CHKRP1; /*ONSITE WILL ANSWER D/T/O/* 04070000
@9FE     TM    SWTR2,B'00100000'                                  0123  04080000
         BC    01,CHKRP1                                          0124  04090000
*         IF EDTOMSG = '1'B THEN        /*ENTER D/T/O MSG ?      M5049* 04100000
         TM    SWTR1,B'00000010'                                  0125  04110000
         BC    12,@9FD                                            0125  04120000
*           DO;                         /* YES                   M5049* 04130000
*         SCD = '02'X;                  /* REPLY CODE = 1 ADDAPTER CD * 04140000
         MVI   SENDCODE+2,X'02'                                   0127  04150000
*         GOTO BCDCN;               /* CONVERT IT                     * 04160000
         BC    15,BCDCN                                           0128  04170000
*         END;                                                          04180000
*           ELSE;                                                       04190000
@9FD     EQU   *                                                  0130  04200000
*         IF IMRESP = '1'B THEN     /* IMMEDIATE RESPONSE MESSAGE     * 04210000
@9FC     TM    SWTR,B'00000100'                                   0131  04220000
         BC    12,@9FB                                            0131  04230000
*           DO;                     /* YES                            * 04240000
*         SCD = '08'X;                  /* REPLY CODE = 4 ADDAPTER CD * 04250000
         MVI   SENDCODE+2,X'08'                                   0133  04260000
*         GOTO BCDCN;               /* CONVERT IT                     * 04270000
         BC    15,BCDCN                                           0134  04280000
*         END;                                                          04290000
*           ELSE;                                                       04300000
@9FB     EQU   *                                                  0136  04310000
*         IF REPLY02 = '1'B THEN    /* OUTSTANDING OLT MESSAGE ?      * 04320000
@9FA     TM    SWTR2,B'01000000'                                  0137  04330000
         BC    12,@9F9                                            0137  04340000
*           DO;                     /* YES                            * 04350000
*         SCD = '04'X;                  /* REPLY CODE = 2 ADDAPTER CD * 04360000
         MVI   SENDCODE+2,X'04'                                   0139  04370000
*         GOTO  BCDCN;              /* CONVERT IT                     * 04380000
         BC    15,BCDCN                                           0140  04390000
*         END;                                                          04400000
*           ELSE;                                                       04410000
@9F9     EQU   *                                                  0142  04420000
*  CHKRP1:R8=1;                         /* NO REPLY CODE TO ATTACH    * 04430000
@9F8     EQU   *                                                  0143  04440000
CHKRP1   LA    @8,1                                               0143  04450000
*                                       /*                       M4502* 04460000
*         GEN(MVI  OUTTEXT,X'81');      /* MOVE IN BLANK FOR OFFSET   * 04470000
         MVI  OUTTEXT,X'81'                                             04480000
         DS    0H                                                       04490000
*                                       /*                       M4502* 04500000
*         GOTO BCDCN1;                  /* CONVERT MESSAGE            * 04510000
         BC    15,BCDCN1                                          0145  04520000
*  /******************************************************************* 04530000
*  /* MOVE REPLY CODE ON MESSAGE AND CONVERT MESSAGE TO TRANS CODE    * 04540000
*  /******************************************************************* 04550000
*   BCDCN:OUTTEXT(1:4) = SENDCODE(1:4); /* MOVE REPLY CODE ON MESSAGE * 04560000
BCDCN    MVC   ROUTBUF+1(4),SENDCODE                              0146  04570000
*                                       /*                       M4502* 04580000
*         R8=4;                         /* DISPLACMENT FOR REPLY CODE * 04590000
         LA    @8,4                                               0147  04600000
*                                       /*                       M4502* 04610000
*  BCDCN1:R6=R6+R8;                     /* ADD DISPLACEMENT TO ADDR   * 04620000
BCDCN1   AR    @6,@8                                              0148  04630000
*         R1=R1SAVE;                    /* RESTORE REG 1              * 04640000
         L     @1,R1SAVE                                          0149  04650000
*         IF R1 > 120 THEN R1 = 120;    /* MAX OF 120 CHARS ALLOWED   * 04660000
         CH    @1,@D1                                             0150  04670000
         BC    12,@9F7                                            0150  04680000
         LA    @1,120                                             0151  04690000
*         R3=R1-1;                      /* MINUS 1 FOR EXECUTE        * 04700000
@9F7     LH    @3,@D2                                             0152  04710000
         AR    @3,@1                                              0152  04720000
*         GEN;                                                          04730000
         MVI   0(R6),X'3F'              MOVE TO FIRST BYTE IN OUTPUT    04740000
         EX    R3,BCDCN2                * PROPAGATE IT                  04750000
         EX    R3,BCDCN3                * AND OFF 0&1 BITS FROM INPUT   04760000
         EX    R3,BCDCN4                * TRANSLATE TO TRANS  CODE      04770000
         B     BCDCN5                   * SET UP TO SEND MESSAGE        04780000
BCDCN2   MVC   1(0,R6),0(R6)           * PROPAGATE                      04790000
BCDCN3   NC    0(0,R6),0(R7)           * AND OFF 0&1 BITS               04800000
BCDCN4   TR    0(0,R6),OUTTBL          * TRANSLATE                      04810000
         DS    0H                                                       04820000
*  BCDCN5:R8=R8+R1+1;                   /* 1ST BYTE FOLLOWING DATA    * 04830000
BCDCN5   LA    @F,1                                               0154  04840000
         AR    @F,@1                                              0154  04850000
         AR    @8,@F                                              0154  04860000
*         OUTTEXT(R8)='3D'X;            /*MOVE EOB ON MSG        M1373* 04870000
         LR    @1,@8                                              0155  04880000
         LA    @A,ROUTBUF(@1)                                     0155  04890000
         MVI   0(@A),X'3D'                                        0155  04900000
*         DISP=R8+1;                    /*ADD EOA CCW CNT    X02008     04910000
         LA    @F,1                                               0156  04920000
         AR    @F,@8                                              0156  04930000
         ST    @F,@TEMP4                                          0156  04940000
         MVC   WWRIN+6(2),@TEMP4+2                                0156  04950000
*  /******************************************************************* 04960000
*  /* WRITE MESSAGE AND                                               * 04970000
*  /* BRING READ INITIAL BACK UP                                      * 04980000
*  /******************************************************************* 04990000
*         REIOB1=REIOB1&&REIOB1;        /* INITIALIZE IOB             * 05000000
         XC    REIOB(32),REIOB                                    0157  05010000
*         RECB=0;                       /* AND THE ECB                * 05020000
         SR    @F,@F                                              0158  05030000
         ST    @F,RECB                                            0158  05040000
*         FLAGS='42'X;                  /* INDICATE CCW CHAINING      * 05050000
         MVI   REIOB,X'42'                                        0159  05060000
*         CPA=ADDR(CCWWRIN);            /* WRITE INITIAL              * 05070000
         LA    @F,CCWWRIN                                         0160  05080000
         ST    @F,@TEMP4                                          0160  05090000
         MVC   REIOB+17(3),@TEMP4+1                               0160  05100000
*         EXCPPTR=ADDR(AA);              /* RETURN TO ADDRESS         * 05110000
         LA    @F,AA                                              0161  05120000
         ST    @F,EXCPPTR                                         0161  05130000
*         GOTO CPINIT;                   /* EXCP                      * 05140000
         BC    15,CPINIT                                          0162  05150000
*      AA:CPA=ADDR(CCWWREOT);           /* WRITE EOT                  * 05160000
AA       LA    @F,CCWWREOT                                        0163  05170000
         ST    @F,@TEMP4                                          0163  05180000
         MVC   REIOB+17(3),@TEMP4+1                               0163  05190000
*         FLAGS='42'X;               /* UNRELATED,CMND-CHN CCWS Y02008* 05200000
         MVI   REIOB,X'42'                                        0164  05210000
*         EXCPPTR=ADDR(CONTEN);         /* RETURN TO ADDRESS          * 05220000
         LA    @F,CONTEN                                          0165  05230000
         ST    @F,EXCPPTR                                         0165  05240000
*         GOTO CPINIT;                   /* EXCP                      * 05250000
         BC    15,CPINIT                                          0166  05260000
*  CONTEN:CPA=ADDR(CCWRDI);             /* READ INITIAL               * 05270000
CONTEN   LA    @F,CCWRDI                                          0167  05280000
         ST    @F,@TEMP4                                          0167  05290000
         MVC   REIOB+17(3),@TEMP4+1                               0167  05300000
*         FLAGS='42'X;                  /*INDICATE CCW CHAINING       * 05310000
         MVI   REIOB,X'42'                                        0168  05320000
*         ECBA = ADDR(RECB);            /* ADDRESS OF ECB INTO IOB    * 05330000
         LA    @F,RECB                                            0169  05340000
         ST    @F,@TEMP4                                          0169  05350000
         MVC   REIOB+5(3),@TEMP4+1                                0169  05360000
*         DCBA = ADDR(REIDCB);          /* LIKEWISE THE DCB ADDR      * 05370000
         LA    @F,REIDCB                                          0170  05380000
         ST    @F,@TEMP4                                          0170  05390000
         MVC   REIOB+21(3),@TEMP4+1                               0170  05400000
*         GEN;                                                          05410000
RDINITRS EXCP  REIOB                                                    05420000
STRTCLOK STIMER REAL,TIMEOUT,DINTVL=TIME10                              05430000
         DS    0H                                                       05440000
*    FINI:IF SWT3='1'B THEN REMNOMSG='1'B; /* RESTORE REMNOMSG SWT    * 05450000
FINI     TM    SWTSAVE,B'00100000'                                0172  05460000
         BC    12,@9F6                                            0172  05470000
         OI    SWTR,B'00100000'                                   0173  05480000
*                                       /*                       M4502* 05490000
*         MSGHND='0'B;                  /* TURN OFF '55' IN CONTROL SW* 05500000
@9F6     NI    SWTR1,B'11111110'                                  0174  05510000
*                                       /*                       M4502* 05520000
*         RETURN;                                                       05530000
         BC    15,@EL01                                           0175  05540000
*  /******************************************************************* 05550000
*  /* RECEIVE OPERATION,TRANSLATE REMOTE RESPONSE                     * 05560000
*  /******************************************************************* 05570000
*  RECEIVE:IF COMPCODE^='7F'X THEN GOTO ERROR; /*ERROR ON READ?       * 05580000
RECEIVE  CLI   RECB,X'7F'                                         0176  05590000
         BC    07,ERROR                                           0177  05600000
*         R3=0;                         /* ZERO REG                   * 05610000
         SR    @3,@3                                              0178  05620000
*         R5=120;                       /* TOTAL SIZE        X02008   * 05630000
         LA    @5,120                                             0179  05640000
*         R4=ADDR(REMINBUF);            /* ADDRESS OF INPUT AND OUTPUT* 05650000
         LA    @4,WTOBUF+6                                        0180  05660000
*         R4=R4+R5-1;                   /* END OF BUFFER ADDRESS      * 05670000
         LH    @F,@D2                                             0181  05680000
         AR    @F,@5                                              0181  05690000
         AR    @4,@F                                              0181  05700000
*         GEN;                                                          05710000
SHIFT1   IC    R3,0(R4)                 * GET A CHARACTER               05720000
         SRL   R3,1                     * SHIFT OFF 'C' BIT             05730000
         STC   R3,0(R4)                 * PUT IT BACK                   05740000
         BCTR  R4,0                     * DECREMENT DATA ADDRESS        05750000
         BCT   R5,SHIFT1                * DECR COUNT,LOOP TILL DONE     05760000
         DS    0H                                                       05770000
*         GEN(TR    REMINBUF(120),INTBL); /*TRANS MSG        X02008   * 05780000
         TR    REMINBUF(120),INTBL                                      05790000
         DS    0H                                                       05800000
*  /******************************************************************* 05810000
*  /* THE FOLLOWING CHECKS THE REPLY CODE AND DETERMINES LEGALITY     * 05820000
*  /* AS WELL AS PERFORMING ANY PRELIMINARY FUNCTIONS                 * 05830000
*  /******************************************************************* 05840000
*         IF REMINBUF(1)='7B'X THEN     /* CHECK FOR EOA CHAR IN      * 05850000
         CLI   WTOBUF+6,X'7B'                                     0184  05860000
         BC    07,@9F5                                            0184  05870000
*                                       /*                       M4502* 05880000
*           REMINBUF(1:119)=REMINBUF(2:120); /*ADJUST MSG    X02008   * 05890000
         MVC   WTOBUF+6(119),WTOBUF+7                             0185  05900000
*         IF REMINBUF(1)='@' THEN            /* PRINT ONLY?  X02008   * 05910000
@9F5     CLI   WTOBUF+6,C'@'                                      0186  05920000
         BC    07,@9F4                                            0186  05930000
*           DO;                              /* YES          X02008   * 05940000
*              WTOBUF(5:124)=REMINBUF(1:120);/* MOVE TO PRT  X02008   * 05950000
         MVC   WTOBUF+4(120),WTOBUF+6                             0188  05960000
*              WTOBUF(125:128)=RTEDSC(1:4);  /* RTE&DSC      X02008   * 05970000
         MVC   WTOBUF+124(4),WTOBUF+126                           0189  05980000
*              INFOMSG='1'B;                 /*INFO MSG      X02008   * 05990000
         OI    SWTR1,B'00010000'                                  0190  06000000
*              PRTONLY='1'B;                 /*PRT ONLY      X02008   * 06010000
         OI    SWTR2,B'00000010'                                  0191  06020000
*              R9=120;                       /*MSG SIZE      X02008   * 06030000
         LA    @9,120                                             0192  06040000
*              GOTO MOVIT3;                  /*MOVE MSG      X02008   * 06050000
         BC    15,MOVIT3                                          0193  06060000
*              END;                          /*              X02008   * 06070000
*                                       /*                       M4502* 06080000
*         IF REMINBUF(3)^='0'           /*CHK 1ST CHAR RPLY CODE FOR 0* 06090000
*            | REMINBUF(5)^=',' THEN    /*CHK 5TH CHAR FOR COMMA      * 06100000
@9F4     CLI   WTOBUF+8,C'0'                                      0195  06110000
         BC    07,@9F3                                            0195  06120000
         CLI   WTOBUF+10,C','                                     0195  06130000
         BC    08,@9F2                                            0195  06140000
*         GOTO UNVER;                   /* UNVERIFIED RESPONSE        * 06150000
         BC    07,UNVER                                           0196  06160000
*         IF REMANS='0'B THEN GOTO RPLCD3; /*IF YES ONLY 03 ACCEPTED  * 06170000
@9F2     TM    SWTR1,B'00000100'                                  0197  06180000
         BC    08,RPLCD3                                          0198  06190000
*         IF EDTOMSG ='1'B THEN GOTO RPLCD1;  /*DO WE EXPECT D/T/O MSG* 06200000
         TM    SWTR1,B'00000010'                                  0199  06210000
         BC    01,RPLCD1                                          0200  06220000
*         IF IMRESP='1'B THEN GOTO RPLCD4;    /*NO,HOW ABOUT AN IMMED * 06230000
         TM    SWTR,B'00000100'                                   0201  06240000
         BC    01,RPLCD4                                          0202  06250000
*         IF CODE^='0' THEN GOTO RPLCD2; /*OUTSTANDING OLTEP RESPONSE?* 06260000
         CLI   WTOBUF+9,C'0'                                      0203  06270000
         BC    07,RPLCD2                                          0204  06280000
*         IF EXECOUT^='1'B THEN GOTO UNVER; /*YES,CAN WE ACCEPT IT ?  * 06290000
         TM    SWTR,B'00000010'                                   0205  06300000
         BC    12,UNVER                                           0206  06310000
*         IF ECB3C='40'X THEN GOTO UNVER; /*YES,HAS CE ANSWERED IT?   * 06320000
         CLI   RECB3,X'40'                                        0207  06330000
         BC    08,UNVER                                           0208  06340000
*         ROPT4=ADDR(ECB3);             /*NO,SETUP TO FREE LOCAL ECB  * 06350000
         LA    @F,ECB3                                            0209  06360000
         ST    @F,A00027                                          0209  06370000
*         FREEPTR=ADDR(OUTSTD);         /* RETURN ADDRESS             * 06380000
         LA    @F,OUTSTD                                          0210  06390000
         ST    @F,FREEPTR                                         0210  06400000
*         GOTO FREE;                    /* FREE PWTOR                 * 06410000
         BC    15,FREE                                            0211  06420000
*  OUTSTD:EXECANS='1'B;                 /*SET FLAG FOR OUTST OLTEP RSP* 06430000
OUTSTD   OI    SWTR1,B'01000000'                                  0212  06440000
*         R3=1;                         /*CHAR COUNT OF EXPECTED MSG  * 06450000
         LA    @3,1                                               0213  06460000
*         R4=ADDR(DYNCOM);              /*ADDR OF APPROPRIATE OLTEP BF* 06470000
         LA    @4,DYNCOM                                          0214  06480000
*         GOTO MOVIT;                   /*MOVE TO BUFR & WRITE TO CE  * 06490000
         BC    15,MOVIT                                           0215  06500000
*  RPLCD1:IF CODE^='1' THEN GOTO RPLCD2; /*ENTER DEV/TEST/OPT MESSAGE?* 06510000
RPLCD1   CLI   WTOBUF+9,C'1'                                      0216  06520000
         BC    07,RPLCD2                                          0217  06530000
*  CHKECB:IF ECB01C='40'X THEN GOTO UNVER; /* HAS CE ANSWERED MSG     * 06540000
CHKECB   L     @1,R1SAVE                                          0218  06550000
         CLI   0(@1),X'40'                                        0218  06560000
         BC    08,UNVER                                           0219  06570000
*                                       /*                       M4502* 06580000
*         ROPT4=R1SAVE;                 /* NO,SETUP TO FREE LOCAL ECB * 06590000
         MVC   A00027(4),R1SAVE                                   0220  06600000
*         FREEPTR=ADDR(RPLIMD);         /* RETURN ADDRESS             * 06610000
         LA    @F,RPLIMD                                          0221  06620000
         ST    @F,FREEPTR                                         0221  06630000
*         GOTO FREE;                    /* FREE PWTOR                 * 06640000
         BC    15,FREE                                            0222  06650000
*  RPLIMD:R3=RSPCNT;                     /*YES,GET EXPECTED CHAR COUNT* 06660000
RPLIMD   SR    @3,@3                                              0223  06670000
         IC    @3,RSPBUF                                          0223  06680000
*         R4=RSPADR;                     /*ADDRESS OF OLTEP RESP BUFF * 06690000
         MVC   @TEMP3+1(3),RSPBUF+1                               0224  06700000
         L     @4,@TEMP3                                          0224  06710000
*         GOTO MOVIT;                    /*MOVE TO BUFR & WRITE TO CE * 06720000
         BC    15,MOVIT                                           0225  06730000
*  RPLCD2:IF CODE^='2' THEN GOTO RPLCD3; /*OUTSTANDING OLT MESSAGE ?  * 06740000
RPLCD2   CLI   WTOBUF+9,C'2'                                      0226  06750000
         BC    07,RPLCD3                                          0227  06760000
*         IF CECOMOUT^='1'B THEN GOTO UNVER; /*CAN WE ACCEPT IT       * 06770000
         TM    SWTR,B'00000001'                                   0228  06780000
         BC    12,UNVER                                           0229  06790000
*         IF ECB37C='40'X THEN GOTO UNVER; /*YES,HAS CE ANSWERED MSG  * 06800000
         CLI   RECB37,X'40'                                       0230  06810000
         BC    08,UNVER                                           0231  06820000
*         CECOMANS='1'B;                 /*SET FLAG FOR OUTST CECOM AN* 06830000
         OI    SWTR1,B'00100000'                                  0232  06840000
*         R3=RCNT37;                     /*GET EXPECTED CHAR COUNT    * 06850000
         SR    @3,@3                                              0233  06860000
         IC    @3,RCNT37                                          0233  06870000
*         R4=ADDR(RREPLY37);             /*ADDR OF REPLY BUFFER       * 06880000
         LA    @4,RREPLY37                                        0234  06890000
*         GOTO MOVIT;                    /*MOVE TO BUFR & WRITE TO CE * 06900000
         BC    15,MOVIT                                           0235  06910000
*  RPLCD3:IF CODE^='3' THEN GOTO UNVER;  /* COMMUNICATIONS RESPONSE?  * 06920000
RPLCD3   CLI   WTOBUF+9,C'3'                                      0236  06930000
         BC    07,UNVER                                           0237  06940000
*         INFOMSG='1'B;                  /*YES,SET FLAG FOR OLTEP     * 06950000
         OI    SWTR1,B'00010000'                                  0238  06960000
*         GOTO  MOVIT1;                  /*WRITE MESSAGE TO CE        * 06970000
         BC    15,MOVIT1                                          0239  06980000
*  RPLCD4:IF CODE^= '4' THEN GOTO RPLCD3;/* IMMEDIATE OLT RESPONSE ?  * 06990000
RPLCD4   CLI   WTOBUF+9,C'4'                                      0240  07000000
         BC    07,RPLCD3                                          0241  07010000
*                                       /*                       M4502* 07020000
*         IF DPMSG='0'B &               /* NOT DP MOD MSG       YM2273* 07030000
*           REMNOMSG='0'B THEN          /* NO MSG TO REMOTE     YM2273* 07040000
         TM    SWTR2,B'00000001'                                  0242  07050000
         BC    05,@9F1                                            0242  07060000
         TM    SWTR,B'00100000'                                   0242  07070000
*           GO TO CHKECB;               /* CHECK ECB FOR CMPLTN YM2273* 07080000
         BC    10,CHKECB                                          0243  07090000
*                                                                       07100000
*                                       /*                       M4502* 07110000
*   UNVER:ILLRPL(15:16)=REMINBUF(3:4);  /*ILL REP CODE TO MSG    M5049* 07120000
@9F0     EQU   *                                                  0244  07130000
@9F1     EQU   *                                                  0244  07140000
UNVER    MVC   ILLRPL+14(2),WTOBUF+8                              0244  07150000
*         ILLRESP='1'B;                  /*SET ILL RESP FLAG FOR OLTEP* 07160000
         OI    SWTR1,B'10000000'                                  0245  07170000
*         GOTO INITIN;                   /*GO TELL REMOTE             * 07180000
         BC    15,INITIN                                          0246  07190000
*  /******************************************************************* 07200000
*  /* THIS SECTION FREES LOCAL 'UNANSWERED' PWTOR'S WHEN ANSWERED BY  * 07210000
*  /* REMOTE                                                          * 07220000
*  /******************************************************************* 07230000
*    FREE:WKSVC='F0F0'X;                /* MODULE ID                  * 07240000
FREE     MVC   WKSVC(4),@X19                                      0247  07250000
*         R1 = '00'X;                    /* SET CALL CODE PARM  Y02008* 07260000
         LA    @1,X'00'                                           0248  07270000
*         R0 = ADDR(ROPT);               /* SET PARAMETER LIST ADDRESS* 07280000
         LA    @0,ROPT                                            0249  07290000
*     GEN(SVC   59);                     /* FREE WTOR                 * 07300000
         SVC   59                                                       07310000
         DS    0H                                                       07320000
*         WKWDID=R0;                    /* SAVE ID                    * 07330000
         ST    @0,WKWDID                                          0251  07340000
*         MID=DUMID;                     /* SET ID IN MESSAGE         * 07350000
         L     @1,MSGMOD                                          0252  07360000
         L     @1,76(0,@1)         A00028                         0252  07370000
         MVC   20(2,@1),WKWDID+2                                  0252  07380000
*         R1=WTORANS;                    /* ADDRESS OF MESSAGE        * 07390000
         L     @C,MSGMOD                                          0253  07400000
         L     @1,76(0,@C)                                        0253  07410000
*         REMNOMSG='1'B;                 /* REMOTE DOES NOT GET MSG   * 07420000
         OI    SWTR,B'00100000'                                   0254  07430000
*         GEN(PWTO  REG=(1));                                           07440000
         PWTO  REG=(1)                                                  07450000
         DS    0H                                                       07460000
*         REMNOMSG='0'B;                 /* RESTORE SWITCH            * 07470000
         NI    SWTR,B'11011111'                                   0256  07480000
*         GOTO FREERTRN;                /* RETURN                     * 07490000
         L     @1,FREEPTR                                         0257  07500000
         BCR   15,@1                                              0257  07510000
*  /******************************************************************* 07520000
*  /* MOVE MESSAGE TO APPROPRIATE OLTEP BUFFER                        * 07530000
*  /******************************************************************* 07540000
*   MOVIT:GEN;                                                          07550000
MOVIT    EQU   *                                                  0258  07560000
         BCTR  R3,0                    * SUB ONE FROM COUNT FOR EXECUTE 07570000
         LA    R5,INTEXT(R3)           GET A INPUT BYTE         SA52876 07580000
         CLI   0(R5),X'40'             IS IT A BLANK            SA52876 07590000
         BE    MOVIT                   YES,GET NEXT BYTE        SA52876 07600000
         EX    R3,MOVE                 * MOVE DATA TO BUFFER            07610000
         B     INITIN                                                   07620000
MOVE     MVC   0(0,R4),INTEXT          * MOVE DATA FROM INPUT BUFFER    07630000
         DS    0H                                                       07640000
*  /******************************************************************* 07650000
*  /* COMMUNICATION MESSAGE SET UP FOR WTO                            * 07660000
*  /******************************************************************* 07670000
*  MOVIT1:DO R9=84 BY -1 TO 1;                                          07680000
MOVIT1   LA    @9,84                                              0259  07690000
*         IF WTOBUF(R9)^=' ' THEN       /*SCAN FOR END OF MESSAGE     * 07700000
@DO9EF   LR    @1,@9                                              0260  07710000
         LA    @A,WTOBUF-1(@1)                                    0260  07720000
         CLI   0(@A),C' '                                         0260  07730000
         BC    08,@9EB                                            0260  07740000
*           DO;                                                         07750000
*  MOVIT2:MSGID(1:8)=WTOID(1:8);        /* MOVE WTO ID ON MESSAGE     * 07760000
MOVIT2   MVC   WTOBUF+4(8),WTOID                                  0262  07770000
*         WTOBUF(R9+1:R9+4)=            /* MOVE ROUTING AND DESCRIPTOR* 07780000
*         RTEDSC(1:4);                  /* CODES ON MESSAGE FOR PWTO  * 07790000
         LA    @E,WTOBUF+126                                      0263  07800000
         LA    @1,4                                               0263  07810000
         AR    @1,@9                                              0263  07820000
         LA    @C,1                                               0263  07830000
         AR    @C,@9                                              0263  07840000
         SR    @1,@C                                              0263  07850000
         LA    @A,WTOBUF-1(@C)                                    0263  07860000
         EX    @1,@MVC                                            0263  07870000
*  MOVIT3:                              /*                   X02008   * 07880000
*  MOVIT3:                              /*                   X02008   * 07890000
*         WRKCNT=R9;                    /* MOVE COUNT INTO WORK AREA  * 07900000
MOVIT3   ST    @9,WRKCNT                                          0264  07910000
*         WTOCNT=COUNT;                 /* COUNT INTO WTO             * 07920000
         MVC   WTOBUF(2),WRKCNT+2                                 0265  07930000
*         REMNOMSG='1'B;                /* REMOTE DOES NOT GET MSG    * 07940000
         OI    SWTR,B'00100000'                                   0266  07950000
*         R1=ADDR(WTOBUF);              /* POINT TO MESSAGE           * 07960000
         LA    @1,WTOBUF                                          0267  07970000
*         GEN(PWTO  REG=(1));           /* ISSUE MESSAGE              * 07980000
         PWTO  REG=(1)                                                  07990000
         DS    0H                                                       08000000
*         REMNOMSG='0'B;                /* RESTORE SWITCH             * 08010000
         NI    SWTR,B'11011111'                                   0269  08020000
*         PRTONLY='0'B;                 /*PRT FLG OFF        X02008   * 08030000
         NI    SWTR2,B'11111101'                                  0270  08040000
*         GOTO  INITIN;                                                 08050000
         BC    15,INITIN                                          0271  08060000
*         END;                                                          08070000
*           ELSE;                                                       08080000
@9EB     EQU   *                                                  0273  08090000
*         END MOVIT1;                                                   08100000
*  /******************************************************************* 08110000
*  /* WRITE RESPONSE TO REMOTE                                        * 08120000
*  /* SET UP TO WRITE Y AND READ EOT                                  * 08130000
*  /******************************************************************* 08140000
*  INITIN:REMINBUF=REMINBUF&&REMINBUF;  /* ZERO THE INPUT BUFFER      * 08150000
@9EA     BCT   @9,@DO9EF                                          0274  08160000
INITIN   XC    WTOBUF+6(120),WTOBUF+6                             0275  08170000
*         FLAGS='42'X;                  /*SET IOB FLAGS FOR CCW CHAIN * 08180000
         MVI   REIOB,X'42'                                        0276  08190000
*         CPA=ADDR(CCWWRRSP);           /* WRITE Y READ EOT           * 08200000
         LA    @F,CCWWRRSP                                        0277  08210000
         ST    @F,@TEMP4                                          0277  08220000
         MVC   REIOB+17(3),@TEMP4+1                               0277  08230000
*         EXCPPTR=ADDR(BB);              /* RETURN TO ADDRESS         * 08240000
         LA    @F,BB                                              0278  08250000
         ST    @F,EXCPPTR                                         0278  08260000
*         GOTO CPINIT;                   /* EXCP                      * 08270000
         BC    15,CPINIT                                          0279  08280000
*      BB:IF ILLRESP^='1'B THEN              /*IF RESPONSE OK,GO BACK * 08290000
BB       TM    SWTR1,B'10000000'                                  0280  08300000
*         GOTO CONTEN;                                                  08310000
         BC    12,CONTEN                                          0281  08320000
*  /******************************************************************* 08330000
*  /* RESPONSE ILLEGAL SEND REMOTE THE MESSAGE                        * 08340000
*  /******************************************************************* 08350000
*         R6=ADDR(OUTTEXT);             /* ADDRESS OF TRANSMIT BUFFER * 08360000
         LA    @6,ROUTBUF+1                                       0282  08370000
*         R1SAVE=29;                    /*CHAR COUNT OF MSG      M5049* 08380000
         LA    @F,29                                              0283  08390000
         ST    @F,R1SAVE                                          0283  08400000
*         R7=ADDR(ILLRPL);              /* ADDRESS OF ERROR MESSAGE   * 08410000
         LA    @7,ILLRPL                                          0284  08420000
*         GOTO CHKRP1;                  /* SEND MESSAGE               * 08430000
         BC    15,CHKRP1                                          0285  08440000
*  /******************************************************************* 08450000
*  /*THIS  SECTION  ISSUES THE EXCP AND WAIT,CHECK FOR PERMANENT ERROR* 08460000
*  /*AND REINITIALIZES BLOCKS ASSOCIATED WITH THE EXCP MACRO          * 08470000
*  /******************************************************************* 08480000
*  CPINIT:ECBA = ADDR(RECB);                  /*ADDR OF ECB INTO IOB  * 08490000
CPINIT   LA    @F,RECB                                            0286  08500000
         ST    @F,@TEMP4                                          0286  08510000
         MVC   REIOB+5(3),@TEMP4+1                                0286  08520000
*         DCBA = ADDR(REIDCB);                /*LIKEWISE THE DCB      * 08530000
         LA    @F,REIDCB                                          0287  08540000
         ST    @F,@TEMP4                                          0287  08550000
         MVC   REIOB+21(3),@TEMP4+1                               0287  08560000
*         GEN;                                                          08570000
EXECUTE  EXCP  REIOB                                                    08580000
STRTCLK1 STIMER REAL,TIMEOUT,DINTVL=TIME10  *                     M4502 08590000
WAITCP   WAIT  ECB=RECB                                                 08600000
STOPCLK1 TTIMER CANCEL                                                  08610000
         DS    0H                                                       08620000
*         IF COMPCODE='7F'X THEN GOTO CONTIN; /* GO IF SUCCESSFUL     * 08630000
         CLI   RECB,X'7F'                                         0289  08640000
         BC    08,CONTIN                                          0290  08650000
*   ERROR:REMERR='1'B;                        /* SET PERM ERROR FLAG  * 08660000
ERROR    OI    SWTR,B'01000000'                                   0291  08670000
*         GEN;                                                          08680000
         IFDMOD CALL='56'                                               08690000
         IFDMOD DELETE='56'                                             08700000
         DS    0H                                                       08710000
*         GOTO FINI;                          /* GO BACK TO OLTEP     * 08720000
         BC    15,FINI                                            0293  08730000
*  CONTIN:REIOB1=REIOB1&&REIOB1;        /* INITIALIZE IOB             * 08740000
CONTIN   XC    REIOB(32),REIOB                                    0294  08750000
*         RECB=0;                             /* ZERO THE ECB         * 08760000
         SR    @F,@F                                              0295  08770000
         ST    @F,RECB                                            0295  08780000
*         GOTO EXCPRTRN;                 /* RETURN                    * 08790000
         L     @1,EXCPPTR                                         0296  08800000
         BCR   15,@1                                              0296  08810000
*  /******************************************************************* 08820000
*  /* STIMER EXIT ROUTINE-10 MINUTE INTERRUPT                    M4502* 08830000
*  /******************************************************************* 08840000
*         GENERATE;                                                     08850000
TIMEOUT  STM   R14,R12,12(R13)         * SAVE CALLERS REGS              08860000
         BALR  R11,0                   * SET                            08870000
         LA    R15,TIMEOUT-IFDOLT55    *     UP                         08880000
         SR    R11,R15                 *        BASE REGISTER           08890000
         ST    R13,SAVE2+4             * SAVE @ OF CALLERS SAVEAREA     08900000
         LA    R15,SAVE2               * GET @ OF OWN SAVEAREA          08910000
         ST    R15,8(R13)              * SAVE IN CALLERS SAVEAREA       08920000
         LR    R13,R15                 * PUT IT IN SAVE REG (13)        08930000
POSTECB  POST  RECB,256                *POST 100 COMPLETION CODE        08940000
         DS    0H                                                       08950000
*         RETURN;                                                       08960000
*         END IFDOLT55;                                                 08970000
@EL01    L     @D,4(0,@D)                                         0299  08980000
         LM    @E,@C,12(@D)                                       0299  08990000
         BCR   15,@E                                              0299  09000000
@DATA1   EQU   *                                                        09010000
@0       EQU   00                  EQUATES FOR REGISTERS 0-15           09020000
@1       EQU   01                                                       09030000
@2       EQU   02                                                       09040000
@3       EQU   03                                                       09050000
@4       EQU   04                                                       09060000
@5       EQU   05                                                       09070000
@6       EQU   06                                                       09080000
@7       EQU   07                                                       09090000
@8       EQU   08                                                       09100000
@9       EQU   09                                                       09110000
@A       EQU   10                                                       09120000
@B       EQU   11                                                       09130000
@C       EQU   12                                                       09140000
@D       EQU   13                                                       09150000
@E       EQU   14                                                       09160000
@F       EQU   15                                                       09170000
@D1      DC    H'120'                                                   09180000
@D2      DC    H'-1'                                                    09190000
@MVC     MVC   0(1,@A),0(@E)                                            09200000
         DS    0F                                                       09210000
@X19     DC    X'0000F0F0'                                              09220000
         DS    0D                                                       09230000
@DATA    EQU   *                                                        09240000
@SAV001  EQU   @DATA+00000000      72 BYTE(S) ON WORD                   09250000
R0       EQU   00000000            FULLWORD POINTER REGISTER            09260000
R1       EQU   00000001            FULLWORD POINTER REGISTER            09270000
R2       EQU   00000002            FULLWORD POINTER REGISTER            09280000
R3       EQU   00000003            FULLWORD INTEGER REGISTER            09290000
R4       EQU   00000004            FULLWORD INTEGER REGISTER            09300000
R5       EQU   00000005            FULLWORD INTEGER REGISTER            09310000
R6       EQU   00000006            FULLWORD INTEGER REGISTER            09320000
R7       EQU   00000007            FULLWORD INTEGER REGISTER            09330000
R8       EQU   00000008            FULLWORD POINTER REGISTER            09340000
R9       EQU   00000009            FULLWORD INTEGER REGISTER            09350000
R10      EQU   00000010            FULLWORD INTEGER REGISTER            09360000
R11      EQU   00000011            FULLWORD INTEGER REGISTER            09370000
R12      EQU   00000012            FULLWORD INTEGER REGISTER            09380000
R13      EQU   00000013            FULLWORD INTEGER REGISTER            09390000
R14      EQU   00000014            FULLWORD INTEGER REGISTER            09400000
R15      EQU   00000015            FULLWORD INTEGER REGISTER            09410000
R1SAVE   EQU   @DATA+00000072      FULLWORD POINTER                     09420000
FREEPTR  EQU   @DATA+00000076      FULLWORD POINTER                     09430000
EXCPPTR  EQU   @DATA+00000080      FULLWORD POINTER                     09440000
REIOB    EQU   @DATA+00000084      52 BYTE(S) ON WORD                   09450000
REIOB1   EQU   REIOB+00000000      32 BYTE(S)                           09460000
FLAGS    EQU   REIOB+00000000      8 BIT(S)                             09470000
DCH      EQU   REIOB+00000000      1 BIT(S)                             09480000
CCH      EQU   REIOB+00000000      1 BIT(S)                             09490000
A00001   EQU   REIOB+00000000      6 BIT(S)                             09500000
A00002   EQU   REIOB+00000001      24 BIT(S)                            09510000
ECBC     EQU   REIOB+00000004      8 BIT(S)                             09520000
ECBA     EQU   REIOB+00000005      3  BYTE  POINTER                     09530000
CSW      EQU   REIOB+00000008      64 BIT(S)                            09540000
A00003   EQU   REIOB+00000008      32 BIT(S)                            09550000
CEDEUE   EQU   REIOB+00000012      8 BIT(S)                             09560000
CE       EQU   REIOB+00000012      1 BIT(S)                             09570000
DE       EQU   REIOB+00000012      1 BIT(S)                             09580000
A00004   EQU   REIOB+00000012      1 BIT(S)                             09590000
UE       EQU   REIOB+00000012      1 BIT(S)                             09600000
A00005   EQU   REIOB+00000012      4 BIT(S)                             09610000
A00006   EQU   REIOB+00000013      24 BIT(S)                            09620000
A00007   EQU   REIOB+00000016      8 BIT(S)                             09630000
CPA      EQU   REIOB+00000017      3  BYTE  POINTER                     09640000
A00008   EQU   REIOB+00000020      8 BIT(S)                             09650000
DCBA     EQU   REIOB+00000021      3  BYTE  POINTER                     09660000
A00009   EQU   REIOB+00000024      8 BIT(S)                             09670000
A00010   EQU   REIOB+00000025      8 BYTE(S)                            09680000
         ORG   REIOB+00000032                                           09690000
ERPWORK  EQU   *                   FULLWORD POINTER                     09700000
         DC    AL4(CCWWORK)                                             09710000
EOTRESP  EQU   *                   FULLWORD POINTER                     09720000
         DC    AL4(EOT)                                                 09730000
NEGRESP  EQU   *                   FULLWORD POINTER                     09740000
         DC    AL4(NEG)                                                 09750000
REMINPTR EQU   *                   FULLWORD POINTER                     09760000
         DC    AL4(REMINBUF)                                            09770000
CCWWORK  EQU   @DATA+00000136      48 BYTE(S) ON DWORD                  09780000
         ORG   CCWWORK+00000000                                         09790000
CCWS     EQU   *                   6*8 BYTE(S)                          09800000
         DC    00006X'0000000000000000'                                 09810000
REIDCB   EQU   @DATA+00000184      108 BYTE(S) ON WORD                  09820000
A00011   EQU   *                   18*FULLWORD INTEGER                  09830000
         DC    00018FL4'0'                                              09840000
A00012   EQU   REIDCB+00000072     5*FULLWORD INTEGER                   09850000
A00013   EQU   *                   FULLWORD POINTER                     09860000
         DC    AL4(RETRN)                                               09870000
A00014   EQU   *                   FULLWORD POINTER                     09880000
         DC    AL4(RETRN)                                               09890000
A00015   EQU   *                   FULLWORD POINTER                     09900000
         DC    AL4(RETRN)                                               09910000
A00016   EQU   *                   FULLWORD POINTER                     09920000
         DC    AL4(RETRN)                                               09930000
A00017   EQU   *                   FULLWORD POINTER                     09940000
         DC    AL4(RETRN)                                               09950000
RETRN    EQU   *                   2 BYTE(S)                            09960000
         DC    X'07FE'                                                  09970000
         ORG   @DATA+00000292                                           09980000
OUTTBL   EQU   *                   128 BIT(S) ON BYTE                   09990000
         DC    X'81E2E4E7E8EBEDEEF0F3A0768493E187'                      10000000
OUTTBL1  EQU   *                   128 BIT(S) ON BYTE                   10010000
         DC    X'61C3C5C6C9CACCCFD1D2D757909587F6'                      10020000
OUTTBL2  EQU   *                   128 BIT(S) ON BYTE                   10030000
         DC    X'4023A5A6A9AAACAFB1B281378BC08EA3'                      10040000
OUTTBL3  EQU   *                   128 BIT(S) ON BYTE                   10050000
         DC    X'15020407080B0D0E10138816208D8296'                      10060000
INTBL    EQU   *                   16 BYTE(S)                           10070000
         DC    C' 1234567890#    '                                      10080000
INTBL1   EQU   *                   16 BYTE(S)                           10090000
         DC    C'@/STUVWXYZ ,    '                                      10100000
INTBL2   EQU   *                   16 BYTE(S)                           10110000
         DC    C'-JKLMNOPQR $    '                                      10120000
INTBL3   EQU   *                   16 BYTE(S)                           10130000
         DC    C'&&ABCDEFGHI .    '                                     10140000
INTBL4   EQU   *                   16 BYTE(S)                           10150000
         DC    C' =<;:% >*()"    '                                      10160000
INTBL5   EQU   *                   16 BYTE(S)                           10170000
         DC    C' ?STUVWXYZ |    '                                      10180000
INTBL6   EQU   *                   16 BYTE(S)                           10190000
         DC    C'_JKLMNOPQR      '                                      10200000
INTBL7   EQU   *                   16 BYTE(S)                           10210000
         DC    C'+ABCDEFGHI ^    '                                      10220000
DEDBUF   EQU   *                   72 BYTE(S) ON WORD                   10230000
&T       SETA  00001                                                    10240000
.L099997 ANOP                                                           10250000
         DC    X'40'                                                    10260000
         DC    00071X'40'                                               10270000
ROUTBUF  EQU   @DATA+00000556      130 BYTE(S) ON WORD                  10280000
EOA      EQU   *                   1 BYTE(S)                            10290000
         DC    X'16'                                                    10300000
OUTTEXT  EQU   ROUTBUF+00000001    125 BYTE(S)                          10310000
         ORG   @DATA+00000686                                           10320000
SENDCODE EQU   *                   4 BYTE(S)                            10330000
         DC    X'90158181'                                              10340000
A00019   EQU   SENDCODE+00000000   2 BYTE(S)                            10350000
SCD      EQU   SENDCODE+00000002   1 BYTE(S)                            10360000
A00020   EQU   SENDCODE+00000003   1 BYTE(S)                            10370000
EOT      EQU   *                   1 BYTE(S)                            10380000
         DC    X'1F'                                                    10390000
POS      EQU   *                   1 BYTE(S)                            10400000
         DC    X'76'                                                    10410000
NEG      EQU   *                   1 BYTE(S)                            10420000
         DC    X'40'                                                    10430000
         ORG   @DATA+00000696                                           10440000
ILLRPL   EQU   *                   29 BYTE(S) ON WORD                   10450000
         DC    C'IFD173I REPLY    NOT VERIFIED'                         10460000
A00021   EQU   ILLRPL+00000000     14 BYTE(S)                           10470000
ILRC     EQU   ILLRPL+00000014     2 BYTE(S)                            10480000
A00022   EQU   ILLRPL+00000016     13 BYTE(S)                           10490000
PURGELST EQU   @DATA+00000728      16 BYTE(S) ON WORD                   10500000
PPLDSID  EQU   PURGELST+00000000   4 BYTE(S)                            10510000
         ORG   PURGELST+00000000                                        10520000
PPLOPT1  EQU   *                   1 BYTE(S)                            10530000
         DC    X'E4'                                                    10540000
PPLDSIDA EQU   PURGELST+00000001   3  BYTE  POINTER                     10550000
A00023   EQU   PURGELST+00000004   12 BYTE(S)                           10560000
ECB01    EQU   00000000            FULLWORD INTEGER                     10570000
ECB01C   EQU   ECB01+00000000      1 BYTE(S)                            10580000
A00026   EQU   ECB01+00000001      3 BYTE(S)                            10590000
A00028   EQU   00000000            80 BYTE(S) ON WORD                   10600000
A00029   EQU   A00028+00000000     19*FULLWORD POINTER                  10610000
WTORANS  EQU   A00028+00000076     FULLWORD POINTER                     10620000
A00030   EQU   00000000            22 BYTE(S) ON WORD                   10630000
A00031   EQU   A00030+00000000     4 BYTE(S)                            10640000
A00032   EQU   A00030+00000004     16 BYTE(S)                           10650000
MID      EQU   A00030+00000020     2 BYTE(S)                            10660000
WKWDID   EQU   @DATA+00000744      4 BYTE(S) ON WORD                    10670000
A00033   EQU   WKWDID+00000000     2 BYTE(S)                            10680000
DUMID    EQU   WKWDID+00000002     2 BYTE(S)                            10690000
SAVE2    EQU   @DATA+00000748      18*FULLWORD INTEGER                  10700000
         ORG   @DATA+00000824                                           10710000
TIME10   EQU   *                   8 BYTE(S) ON DWORD                   10720000
         DC    X'F0F0F1F0F0F0F0C0'                                      10730000
WTOBUF   EQU   @DATA+00000832      130 BYTE(S) ON WORD                  10740000
WTOCNT   EQU   WTOBUF+00000000     2 BYTE(S)                            10750000
         ORG   WTOBUF+00000002                                          10760000
WTOFLG   EQU   *                   16 BIT(S) ON BYTE                    10770000
         DC    B'1000000000000000'                                      10780000
MSGID    EQU   WTOBUF+00000004     122 BYTE(S)                          10790000
A00034   EQU   WTOBUF+00000004     2 BYTE(S)                            10800000
REMINBUF EQU   WTOBUF+00000006     120 BYTE(S)                          10810000
REPLY    EQU   WTOBUF+00000006     4 BYTE(S)                            10820000
A00035   EQU   WTOBUF+00000006     3 BYTE(S)                            10830000
CODE     EQU   WTOBUF+00000009     1 BYTE(S)                            10840000
A00036   EQU   WTOBUF+00000010     2 BYTE(S)                            10850000
INTEXT   EQU   WTOBUF+00000012     72 BYTE(S)                           10860000
         ORG   WTOBUF+00000126                                          10870000
RTEDSC   EQU   *                   4 BYTE(S)                            10880000
         DC    X'02000040'                                              10890000
WTOID    EQU   *                   8 BYTE(S)                            10900000
         DC    C'IFD255I '                                              10910000
WRKCNT   EQU   @DATA+00000972      4 BYTE(S) ON WORD                    10920000
A00037   EQU   WRKCNT+00000000     2 BYTE(S)                            10930000
COUNT    EQU   WRKCNT+00000002     2 BYTE(S)                            10940000
SWTSAVE  EQU   @DATA+00000976      8 BIT(S) ON BYTE                     10950000
SWT1     EQU   SWTSAVE+00000000    1 BIT(S)                             10960000
SWT2     EQU   SWTSAVE+00000000    1 BIT(S)                             10970000
SWT3     EQU   SWTSAVE+00000000    1 BIT(S)                             10980000
SWT4     EQU   SWTSAVE+00000000    1 BIT(S)                             10990000
SWT5     EQU   SWTSAVE+00000000    1 BIT(S)                             11000000
SWT6     EQU   SWTSAVE+00000000    1 BIT(S)                             11010000
SWT7     EQU   SWTSAVE+00000000    1 BIT(S)                             11020000
SWT8     EQU   SWTSAVE+00000000    1 BIT(S)                             11030000
         ORG   @DATA+00000980                                           11040000
CVTADPTR EQU   *                   FULLWORD POINTER                     11050000
         DC    AL4(16)                                                  11060000
CVTADDR  EQU   00000000            FULLWORD POINTER                     11070000
CVT      EQU   00000000            332 BYTE(S) ON WORD                  11080000
A00038   EQU   CVT+00000000        40 BYTE(S)                           11090000
CVTILK2  EQU   CVT+00000040        FULLWORD POINTER                     11100000
A00039   EQU   CVT+00000044        284 BYTE(S)                          11110000
CVTEXT2  EQU   CVT+00000328        FULLWORD POINTER                     11120000
CVTOLTEP EQU   00000028            FULLWORD POINTER                     11130000
OLTEPTAB EQU   00000000            24 BYTE(S)                           11140000
DIEHEAD  EQU   OLTEPTAB+00000000   4 BYTE(S)                            11150000
REIDEBAD EQU   OLTEPTAB+00000004   4  BYTE  POINTER                     11160000
A00040   EQU   OLTEPTAB+00000008   20 BYTE(S)                           11170000
OLTEPUCB EQU   OLTEPTAB+00000028   4  BYTE  POINTER                     11180000
REIUCBAD EQU   OLTEPTAB+00000032   4  BYTE  POINTER                     11190000
A00041   EQU   OLTEPTAB+00000036   4 BYTE(S)                            11200000
IOSGENTB EQU   OLTEPTAB+00000040   18*4  BYTE  INTEGER                  11210000
         ORG   @DATA                                                    11220000
         DS    00000984C                                                11230000
@TEMPS   DS    0F                                                       11240000
@TEMP3   DC    F'0'                                                     11250000
@TEMP4   DC    F'0'                                                     11260000
* WRITE INITIAL                                                         11270000
CCWWRIN  CCW   1,ROUTBUF,X'60',0       * WRITE DATA               M4502 11280000
CCWWRIN1 CCW   2,REMINBUF,X'20',1           * READ RESPONSE   X02008    11290000
         SPACE                                                          11300000
* WRITE END OF TRANSMISSION (C)                                   M4502 11310000
CCWWREOT CCW   1,EOT,X'20',1                * WRITE EOT       X02008    11320000
         SPACE                                                          11330000
* READ INITIAL                                                    M4502 11340000
CCWRDI   CCW   6,0,X'60',1             * PREPARE                  M4502 11350000
CCWRDI1  CCW   2,REMINBUF,X'20',120         * READ DATA       X02008    11360000
         SPACE                                                          11370000
* WRITE Y READ EOT                                                M4502 11380000
CCWWRRSP CCW   1,POS,X'60',1                * WRITE RESPONSE  X02008    11390000
CCWRDEOT CCW   2,REMINBUF,X'20',1           * READ EOT        X02008    11400000
OPTCOMM  IFDCOM                                                         11410000
IFDOLT55 CSECT                                                          11420000
WWRIN    EQU   CCWWRIN+00000000    8 BYTE(S)                            11430000
A00000   EQU   WWRIN+00000000      6 BYTE(S)                            11440000
DISP     EQU   WWRIN+00000006      2  BYTE  POINTER                     11450000
RSPBUF   EQU   RESPBUF+00000000    4 BYTE(S)                            11460000
RSPCNT   EQU   RSPBUF+00000000     1 BYTE(S)                            11470000
RSPADR   EQU   RSPBUF+00000001     3 BYTE(S)                            11480000
RECB     EQU   REIECB+00000000     FULLWORD INTEGER                     11490000
COMPCODE EQU   RECB+00000000       8 BIT(S)                             11500000
A00018   EQU   RECB+00000001       24 BIT(S)                            11510000
RECB3    EQU   ECB3+00000000       FULLWORD INTEGER                     11520000
ECB3C    EQU   RECB3+00000000      1 BYTE(S)                            11530000
A00024   EQU   RECB3+00000001      3 BYTE(S)                            11540000
RDYNCOM  EQU   DYNCOM+00000000     1 BYTE(S)                            11550000
RECB37   EQU   ECB37+00000000      FULLWORD INTEGER                     11560000
ECB37C   EQU   RECB37+00000000     1 BYTE(S)                            11570000
A00025   EQU   RECB37+00000001     3 BYTE(S)                            11580000
RREPLY37 EQU   REPLY37+00000000    72 BYTE(S)                           11590000
RCNT37   EQU   CNT37+00000000      1 BYTE(S)                            11600000
A00027   EQU   ROPT+00000000       8 BYTE(S) ON WORD                    11610000
ROPT4    EQU   A00027+00000000     FULLWORD POINTER                     11620000
ROPT8    EQU   A00027+00000004     FULLWORD POINTER                     11630000
MODID    EQU   WKSVC+00000000      FULLWORD INTEGER                     11640000
SWTR     EQU   CESWTR+00000000     8 BIT(S) ON BYTE                     11650000
RETAINAC EQU   SWTR+00000000       1 BIT(S)                             11660000
REMERR   EQU   SWTR+00000000       1 BIT(S)                             11670000
REMNOMSG EQU   SWTR+00000000       1 BIT(S)                             11680000
CENOMSG  EQU   SWTR+00000000       1 BIT(S)                             11690000
PRTNOMSG EQU   SWTR+00000000       1 BIT(S)                             11700000
IMRESP   EQU   SWTR+00000000       1 BIT(S)                             11710000
EXECOUT  EQU   SWTR+00000000       1 BIT(S)                             11720000
CECOMOUT EQU   SWTR+00000000       1 BIT(S)                             11730000
SWTR1    EQU   CESWTR1+00000000    8 BIT(S) ON BYTE                     11740000
ILLRESP  EQU   SWTR1+00000000      1 BIT(S)                             11750000
EXECANS  EQU   SWTR1+00000000      1 BIT(S)                             11760000
CECOMANS EQU   SWTR1+00000000      1 BIT(S)                             11770000
INFOMSG  EQU   SWTR1+00000000      1 BIT(S)                             11780000
RETRIEVE EQU   SWTR1+00000000      1 BIT(S)                             11790000
REMANS   EQU   SWTR1+00000000      1 BIT(S)                             11800000
EDTOMSG  EQU   SWTR1+00000000      1 BIT(S)                             11810000
MSGHND   EQU   SWTR1+00000000      1 BIT(S)                             11820000
SWTR2    EQU   CESWTR2+00000000    8 BIT(S) ON BYTE                     11830000
REPLY00  EQU   SWTR2+00000000      1 BIT(S)                             11840000
REPLY02  EQU   SWTR2+00000000      1 BIT(S)                             11850000
ONCOMM   EQU   SWTR2+00000000      1 BIT(S)                             11860000
COMMLOOP EQU   SWTR2+00000000      1 BIT(S)                             11870000
WAIT3    EQU   SWTR2+00000000      1 BIT(S)                             11880000
OPTERR   EQU   SWTR2+00000000      1 BIT(S)                             11890000
PRTONLY  EQU   SWTR2+00000000      1 BIT(S)                             11900000
DPMSG    EQU   SWTR2+00000000      1 BIT(S)                             11910000
@DATEND  EQU   *                                                        11920000
@9F3     EQU   UNVER                                                    11930000
         END   IFDOLT55                                                 11940000
