*COMDECK PADINTP
          NAM    PADINTP
          NLS 
*CALL    PADMXCONS
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                          PADINTP                                    * 
*                                                                     * 
*            X25 PAD SUBTIP INPUT TEXT PROCESSING STATE               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
** OVERVIEW:                                                          * 
*            TEXT PROCESSES INPUT DATA                                * 
*                                                                     * 
** INPUT   :                                                          * 
*            UPLINE IVT DATA.                                         * 
*              1) CHARACTER MODE                                      * 
*              2) TRANSPARENT MODE                                    * 
*            INPUT FLAGS.                                             * 
*              1) M-BIT (SET TO 1 OR 0)                               * 
*              2) TRANSPARENT FLAG                                    * 
*                                                                     * 
** OUTPUT  :                                                          * 
*            TEXT PROCESSED DATA.                                     * 
*              NOTE : OPS LEVEL WILL DETERMINE WHETHER TO SEND        * 
*                     THE PROCESSED DATA TO HOST OR NOT.              * 
*                                                                     * 
*              OUTPUT FLAGS.                                          * 
*                DATA-EXIST : PROCESSED COMPLETE PHYSICAL LINE        * 
*                             POSSIBLY ONE OR MORE PHYSICAL LINES     * 
*                                                                     * 
*                END-OF-LL  : END OF LOGICAL LINE                     * 
*                                                                     * 
*                XPT-FLAG   : TRANSPARENT FLAG IN THE FIRST           * 
*                             DESTINATION BUFFER(SECOND WORD)         * 
*                                                                     * 
** NOTE    :                                                          * 
*            THE INPUT STATE DOES NOT USE THE CODE TRANSLATION        * 
*            TABLE AT ALL.  THE PARITY BIT (8TH BIT) WILL BE ALWAYS   * 
*            STRIPED IF IT IS IN CHARACTER MODE OR TRANSPARENT        * 
*            MODE (EXCEPT PARITY OPTION SET TO #NONE#).  THE BIT      * 
*            WILL NOT BE STRIPED IF XPARENT MODE AND PARITY OPTION    * 
*            IS SET TO #NONE# OR #IGNORE#.                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* *                                                                 * * 
* *       X25 PAD SUBTIP INPUT TEXT PROCESSING STATE TABLES         * * 
* *                                                                 * * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XISTB1    MAC    LB 
          EQU    XS"LB"(*-XINTP1) 
          ADC    X"LB"
          EMC 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                 * 
*         INPUT STATE TABLE FOR :                 * 
*                                                 * 
*         TC = 1 (N0M33)   : M33,M35,M37,M38      * 
*         TC = 2 (N0713)   : CDC 713, 75X         * 
*         TC = 3 (N0721)   : CDC 721              * 
*         TC = 5 (N0M40)   : M40                  * 
*         TC = 6 (N0H2000) : HAZELTINE 2000       * 
*         TC = 7 (N0X364)  : X3.64                * 
*         TC = 8 (N0T4014) : TEXTRONIX 4014       * 
*                                                 * 
* * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          ADC    0
* 
          ENT    XINTP1 
* 
XINTP1    XISTB1 EOS          END OF SOURCE REACHED 
          XISTB1 BLK          START OF NEW BLOCK
          XISTB1 SPL          START OF PHYSICAL LINE
          XISTB1 XPT          START OF TRANSPARENT DATA 
          XISTB1 SOL          START OF LOGICAL LINE 
          XISTB1 GET          GET NEXT DATA 
          XISTB1 NXT          PROCESS NEXT DATA 
          XISTB1 STR          STORE INPUT DATA
          XISTB1 EOB          END OF BLOCKMODE
          XISTB1 NEB          NOT END OF BLOCKMODE
          XISTB1 ELL          END OF LOGICAL LINE 
          XISTB1 EPL          END OF PHYSICAL LINE
          XISTB1 AVPL         CHECK FOR PHYSICAL LINE BLOCK COUNT 
          XISTB1 LF           END OF PHYSICAL LINE BY EMBEDDED LF 
          XISTB1 RTN          RETURN TO OPS 
          XISTB1 XDT          PROCESS TRANSPARENT DATA
          XISTB1 XMD         PROCESS XPT DATA WITH MULTIPLE DELIMITERS
          XISTB1 XHH          XTP DELIMIT CHARACTER FOUND 
          XISTB1 TEB          RETURN TO OPS 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                         XSEOS  (STATE 0)                            * 
*                                                                     * 
*                          END OF SOURCE                              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XEOS      TSTMXF XMFMBIT,XEOS03        M - BIT = 1
          SKIP   XEOS05      -         M - BIT = 0
* 
XEOS03    RSTMXF XMFEOB      -         CAN NOT BE IN END OF BLOCK 
          SKIP   XEOS35 
* 
XEOS05    TSTMXF XMFXPT,XEOS10         TRANSPARENT INPUT
          SKIP   XEOS25      -         NON-TRANSPARENT INPUT
* 
* * * *  TRANSPARENT INPUT
* 
XEOS10    TSTMXF XMFTO,XEOS15          TIME OUT OPTION SET
          TSTMXF XMFXEND,XEOS20        LAST DATA CHAR WAS A DL CHAR 
          SKIP   XEOS35      -         PARTIAL PACKET 
* 
XEOS15    TSTMXF XMFXSTI,XEOS20        STICKY TIMEOUT LEAVES XPARENT
          SETMXF XMFXEND     -         END OF TRANSPARENT INPUT 
XEOS20    SETMXF XMFMSG      -         SEND MSG BLOCK UPLINE
          SKIP   XEOS35      -         RETURN TO OPS
* 
* * * *  NON-TRANSPARENT INPUT
* 
XEOS25    TSTMXF XMFEOB,XEOS30         THE LAST DATA IN PACKET WAS
*                                       END OF BLOCKMODE CHRACTER 
          TSTMXF XMFEOLL,XEOS27        LAST CHAR WAS EOLL 
* 
* * * *   PARTIAL PACKET EXIST
* 
          SKIP   XEOS35      -         RETURN TO OPS
* 
* * * *   END OF LOGICAL LINE CONDITION 
* 
XEOS27    TSTMXF XMFIDEV,XEOS32        KEYBOARD INPUT 
          SKIP   XEOS35      -
* 
* * * *   END OF BLOCK CONDITION
* 
* 
XEOS30    TSTMXF XMFASCII,XEOS32       IN FULL ASCII MODE 
          BKSPAC             -         BACK UP TO DELETE EOB CHAR 
* 
XEOS32    SETMXF XMFEOB+XMFEOLL        SET END OF BLOCKMODE AND END OF
*                                       LOGICAL LINE
XEOS35    TIBSWC 0,0         -         SET LCD OF BUFFER
          TPEXIT             -         RETURN TO OPS PROGRAM
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSBLK                                     * 
*                                                                     * 
*                     START OF NEW BLOCK                              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XBLK      ADDC   XCFILL      -         STORE FILL CHARACTER TO
*                                       RESERVE UPLINE DBC FIELD
          JUMP   XSSOL       -         CHANGE STATE TO XSSOL AND JUMP 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSSOL                                     * 
*                                                                     * 
*                       START OF LINE                                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XSOL      SPC3EQ             -         CHECK 3 SPECIAL CHARACTERS 
          SKIP   XSOLBS      -         PROCESS BACKSPACE
          SKIP   XSOLEB      -         PROCESS END OF BLOCK CHAR
          SKIP   XSOLEL      -         PROCESS END OF LL CHAR 
* 
          SKIP   XSOL10      -         NONE OF ABOVE CHARACTER
* 
* * * *  END OF BLOCKMODE CHARACTER SEEN
* 
* 
XSOLEB    JUMP   XSEOB,XCUTE -         CHECK FOR THE EOB CONDITION
*                                       NO CHANGE OF STATE
* 
* * * *  END OF LOGICAL LINE CHARACTER SEEN 
* 
XSOLEL    SETMXF XMFEOLL     -         SET END OF LOGICAL LINE
          STATE  XSELL       -         CHANGE STATE TO XSELL
          TSTMXF XMFASCII,XSOL05       IN FULL ASCII MODE 
          CHARNE XCLF,XSOL03 -         TEST FOR <LF> CHARACTER
          TSTMXF XMFSEDIT,XSOL05       TEST SPECIAL EDIT OPTION 
XSOL03    JUMP   CURRENT     -         NOT FULL ASCII OR SP. EDIT 
*                                       GO TO XSELL STATE 
XSOL05    JUMP   XSSTR,XCUTE -         STORE DATA SINCE IN FULL ASCII 
* 
XSOL10    CHARNE XCLF,XSOL15 -         NOT EMBEDDED LF CHARACTER
          SKIP   XSOL17      -         TEST FOR SE
* 
XSOL15    SKIP   XSOL40      -         TEST FOR DEL CHARACTER 
* 
XSOL17    TSTMXF XMFSEDIT,XSOL20       TEST SPECIAL EDIT OPTION 
          NOPR   EXIT        -         IGNORE LF CHAR GO AND GET NEXT 
*                                       DATA AND BACK INTO THIS STATE 
* 
* * * *  BACKSPACE CHARACTER SEEN 
* 
XSOLBS    TSTMXF XMFASCII,XSOL20       IN FULL ASCII MODE 
          TSTMXF XMFSEDIT,XSOL20       TEST SPECIAL EDIT OPTION 
          NOPR   EXIT        -         IGNORE BACKSPACE CHARACTER 
* 
XSOL20    STATE  XSGET       -         CHANGE STATE TO XSGET
          JUMP   XSSTR,XCUTE -         STORE DATA CHARACTER 
* 
* * * *  CHECK LEST OF CONDITIONS 
* 
XSOL40    CHARNE XCDEL,XSOL45          NOT DEL CHARACTER
          NOPR   EXIT        -         IGNORE IT, GO AND GET NEXT 
*                                       CHARACTER 
XSOL45    CHARLS XCTLCHAR,XSOL50       DATA IS ONE OF CONTROL 
*                                       CHARACTER WHICH LESS THAN 
*                                         $20(BLANK CHAR) 
          SKIPB  XSOL20      -         STORE IT 
* 
XSOL50    CHARNE XCNUL,XSOL55          NOT NUL CHARACTER
          NOPR   EXIT        -         IGNORE IT, GO AND GET NEXT 
*                                       CHARACTER 
* 
* * * *  THE FOLLOWING DATA WILL BE STORED IF IT IS IN FULL ASCII 
* * * *  MODE, DISCARDED OTHERWISE. 
* 
XSOL55    TSTMXF XMFASCII,XSOL60       CHECK FOR FULL ASCII MODE
          TSTMXF XMFIDEV,XSOL60        OR KEYBOARD INPUT MODE 
          SKIP   XSOL65      -         NOT IN FULL ASCII
XSOL60    SKIPB XSOL20       -         STORE DATA 
XSOL65    CHARNE XCSTX,XSOL70          NOT STX CHARACTER
          NOPR   EXIT        -         IGNORE IT, GO AND GET NEXT 
*                                       CHARACTER 
XSOL70    CHARNE XCETX,XSOL75          NOT ETX CHARACTER
          NOPR   EXIT        -         IGNORE IT, GO AND GET NEXT 
*                                       CHARACTER 
XSOL75    CHARNE XCEOT,XSOL80          NOT EOT CHARACTER
          NOPR   EXIT        -         IGNORE IT, GO AND GET NEXT 
*                                       CHARACTER 
          NOPR   EXIT        -         IGNORE IT, GO AND GET NEXT 
XSOL80    SKIPB  XSOL20      -         DATA WAS NOT NONE OF ABOVE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSGET                                     * 
*                                                                     * 
*                       GET NEXT DATA                                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XGET      STATE  XSNXT,EXIT  -         CHANGE STATE TO XSNXT AND
*                                       JUMP WITH NEXT DATA 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSNXT                                     * 
*                                                                     * 
*                     CHECK FOR NEXT DATA                             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XNXT      SPC3EQ             -         CHECK 3 SPECIAL CHARACTERS 
          SKIP   XNXTBS      -         PROCESS BACKSPACE CHARACTER
          SKIP   XNXTEB      -         PROCESS END OF BLOCKMODE CHAR
          SKIP   XNXTEL      -         PROCESS END OF LL CHAR 
* 
          SKIP   XNXT30      -         NONE OF ABOVE CHARACTERS 
* 
* * * *  END OF BLOCKMODE CHARACTER SEEN
* 
XNXTEB    JUMP   XSEOB,XCUTE -         CHECK FOR THE EOB CONDITION
*                                       NO CHANGE OF STATE
* 
* * * *  END OF LOGICAL LINE CHARACTER SEEN 
* 
XNXTEL    SETMXF XMFEOLL     -         SET END OF LOGICAL LINE
          STATE  XSELL       -         CHANGE STATE TO XSELL
          SKIP   XNXT50      -         CHECK FOR FULL ASCII MODE
* 
* * * *  BACKSPACE CHARACTER SEEN 
* 
XNXTBS    TSTMXF XMFASCII,XNXT05       IN FULL ASCII MODE 
          TSTMXF XMFSEDIT,XNXT05       TEST SPECIAL EDIT OPTION 
          SKIP   XNXT10      -         NOT IN FULL ASCII MODE 
* 
XNXT05    SKIP   XNXT65      -         STORE IT 
* 
XNXT10    BLCNE  XBLKCNT1,XNXT20       BEGINNING OF LOGICAL LINE
*                                       OR PHYSICAL LINE
XNXT15    NOPR   EXIT        -         GO GET NEXT DATA AND BACK
* 
XNXT20    BKSPAC             -         ACTION BACKSPACE 
          ICC    XBLKCNT1,EXIT         INCREMENT SUB-BLOCK COUNT
*                                       AND GET OUT 
* 
* * * *  CHECK LEST OF CONDITIONS 
* 
XNXT30    CHARNE XCLF,XNXT35 -         NOT LF CHARACTER 
          SKIP   XNXT40      -         CHECK FOR END OF PL BY LF
* 
XNXT35    SKIP   XNXT60      -
* 
XNXT40    TSTMXF XMFLF,XNXT45 
          STATE  XSGET       -         CHANGE STATE TO XSGET
          SKIP   XNXT50      -
* 
XNXT45    STATE  XSEPL       -         CHANGE STATE TO XSEPL
XNXT50    TSTMXF XMFASCII,XNXT55       CHECK FOR FULL ASCII MODE
          CHARNE XCLF,XNXT53 -         TEST FOR <LF>
          TSTMXF XMFSEDIT,XNXT55       TEST FOR SPECIAL EDIT OPTION 
XNXT53    JUMP   CURRENT     -
* 
XNXT55    JUMP   XSSTR,XCUTE -         STORE IT 
* 
XNXT60    TSTMXF XMFASCII,XNXT65       CHECK FOR FULL ASCII MODE
          SKIP   XNXT70      -         CHECK FOR NUL AND DEL CHARS
* 
XNXT65    STATE  XSGET       -         CHANGE STATE 
          JUMP   XSSTR,XCUTE -         STORE DATA NO CHANG OF STATE 
* 
XNXT70    CHARNE XCNUL,XNXT75          NOT NUL CHARACTER
          SKIPB  XNXT15      -         GO AND GET NEXT CHAR 
* 
XNXT75    CHARNE XCDEL,XNXT80          NOT DEL CHARACTER
          SKIPB  XNXT15      -         GE AND GET NEXT DATA 
* 
XNXT80    SKIPB  XNXT65      -         STORE IT 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSSTR                                     * 
*                                                                     * 
*                         STORE DATA                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XSTR      STORE  NOCRC       -         STORE DATA CHARACTER 
          DCC    XBLKCNT2,XSTR05       DECREMENT SUB-BLOCK COUNT
*                                       IF VALUE IS ZERO GO TO XSTR05 
          JUMP   CURRENT     -
* 
* 
* * * *  SUB-BLOCK CUONT REACHED, CHECH FOR END OF LOGICAL LINE 
* * * *  CONDITION
* 
XSTR05    TSTMXF XMFEOLL,XSTR10        CHECK FOR END OF LOGICAL 
*                                        LINE CONDITION 
          JUMP   XSEPL       -         CHANGE STATE AND JUMP
* 
XSTR10    JUMP   CURRENT     -
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSEOB                                     * 
*                                                                     * 
*                      END OF BLOCK                                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XEOB      SETMXF XMFEOB      -         SET END OF BLOCKMODE FLAG
          STORE  NOCRC       -         STORE EOB CHARACTER
          TPMARK LEVEL2      -         SAVE SOURCE AND DEST BFR PTRS
          STATE XSNEB,EXIT   -         CHANGE STATE TO XSNEB AND
*                                       IT MAY HIT END OF SOURCE
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSNEB                                     * 
*                                                                     * 
*                MORE DATA EXISTS AFTER THE EOB CHARACTER              *
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XNEB      SETMXF XMFEOLL     -         SET END OF LOGICAL LINE
          TSTMXF XMFASCII,XNEB05       IN FULL ASCII
          BKSPAC             -         BACKUP, DELETE EOB FROM DSTBFR 
XNEB05    JUMP   XSRTN       -         RETURN TO OPS
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSELL                                     * 
*                                                                     * 
*                    END OF LOGICAL LINE                              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XELL      TPMARK LEVEL2      -         CHECK FOR END OF SOURCE
*                                       IF IT IS NOT END OF SOURCE
*                                       GO BACK TO OPS
          STATE  XSRTN,EXIT  -         SET STATE TO XSRTN IN CASE OF
*                                       THERE ARE MORE DATA FOLLOWS 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSEPL                                     * 
*                                                                     * 
*                    END OF PHYSICAL LINE                             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XEPL      TSTMXF XMFLF,XEPL05          BLK-BLOCK CREATED BY LF CHAR 
          SKIP   XEPL10      -         IGNORE LF FOR BLK-BLOCK
* 
XEPL05    CHARNE XCLF,XEPL10 -         NOT LF CHARACTER 
          SETFLG XBLFEPL,CURN          SET BUFFER FLAG TO INDICATE
*                                       TO THE OPS LEVEL
* 
XEPL10   SETFLG  XBEBLK,CURN -         SET BUFFER FLAG FOR BLK
*                                       BLOCK INDICATION
          STATE  XSLF        -         CHANGE STATE TO XSLF 
*         JUMP   XSAVPL,XCUTE          CHECK FOR UPLINE BLOCK COUNT 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSAVPL                                    * 
*                                                                     * 
*                 CHECK FOR PHYSICAL LINE COUNT                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XAVPL     DCC    XPLCNT1,XAVPL2        DECREMENT AVAILABLE BLOCK CNT
          INTCC  XBLKCNT2    -         REINITIALIZE SUB-BLOCK COUNT 
          NOPR   EXIT        -         GET NEXT DATA AND JUMP TO XSLF 
* 
* * * *  REACHED UPLINE BLOCK COUNT 
* 
XAVPL2    TPMARK LEVEL2      -         REMEMBER THE POSITION OF END 
*                                       OF PHYSICAL LINE
          STATE  XSRTN,EXIT  -         MAY BE END OF SOURCEE
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSLF                                      * 
*                                                                     * 
*                END OF PHYSICAL LINE BY LF                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XLF       ALNBUF XCNEWFCD    -         GET A BUFFER FOR NEW UPLINE
*                                       BLOCK AND SET FCD 
*         JUMP   XSSPL,XCUTE -         PROCESS BEGINNING OF NEW 
*                                       PHYSICAL LINE 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSSPL                                     * 
*                                                                     * 
*                START OF PHYSICAL LINE                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XSPL      ADDC   XCFILL      -         STORE FILL CHARACTER FOR DBC 
          JUMP   XSNXT       -         CHECK DATA 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSRTN                                     * 
*                                                                     * 
*                      RETURN TO OPS                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XRTN      TPBKUP LEVEL2,SRC  -         BACKUP IT DID NOT END OF SOURCE
* 
          TIBSWC 0,0         -         SET LCD OF BUFFER
          TPEXIT             -         RETURN TO OPS
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSXPT                                     * 
*                                                                     * 
*                 START OF TRANSPARENT INPUT                          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XXPT      ADDC  XCFILL       -         STORE FILL CHARACTER FOR DBC 
          SETFLG XBXPT       -         SET BUFFER FLAG FOR TRANSPARENT
          TSTMXF XMFTCHR,XXPT05        DELIMIT BY DL CHARACTER
* 
          JUMP   XSXDT       -         START PROCESS XPT DATA 
* 
* * * *  CHECK FOR DL CHARACTER 
* 
XXPT05    TSTMXF XMFXHH,XXPT06         FIRST DL CHARACTER IS FOUND
          SKIP   XXPT07 
XXPT06    JUMP   XSXMD       -         START PROCESSING SECOND DELIMITER
XXPT07    MVCHLL XCS2CHR,XCSCHR        GET XPT FORWARDING CHARACTER 
          SPCHEQ XXPT10      -         IT IS DL CHARACTER 
          TSTMXF XMFPAI,XXPT08         SUPPOSED TO IGNORE PARITY BIT
          JUMP   XSXDT       -         START PROCESS XPT DATA 
XXPT08    SETBIT XCSCHR,XPBIT          CHECK FOR DL WITH PARITY BIT SET 
          SPCHEQ XXPT10 
          RSTBIT XCSCHR,XPBIT          CLEAR PARITY BIT FOR NEXT TIME 
* 
          JUMP   XSXDT       -         START PROCESS XPT DATA 
* 
XXPT10    JUMP   XSXHH,XCUTE -         CHECK FOR DL CHAR STATUS 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSXDT                                     * 
*                                                                     * 
*                      TRANSPARENT DATA                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XXDT      TSTMXF XMFTCHR,XXDT05        CHECK FOR DL CHARACTER 
          SKIP   XXDT15      -
* 
XXDT05    SPCHEQ XXDT10      -         IT IS DL CHARACTER 
          TSTMXF XMFPAI,XXDT07         SUPPOSED TO IGNORE PARITY BIT
          SKIP   XXDT15 
XXDT07    SETBIT XCSCHR,XPBIT          CHECK FOR DL WITH PARITY BIT SET 
          SPCHEQ XXDT10 
          RSTBIT XCSCHR,XPBIT          CLEAR PARITY BIT FOR NEXT TIME 
          SKIP   XXDT15      -
* 
XXDT10    JUMP   XSXHH,XCUTE -         CHECK FOR CONDITION OF DL CHAR 
* 
XXDT15    STORE  NOCRC       -         STORE DATA 
          DCC    XPTCNT2,XXDT20        DECREMENT XPT CHARACTER COUNT
          NOPR   EXIT        -         GO PROCESS MORE DATA 
* 
XXDT20    TSTMXF XMFMULTI,XXDT25       IN MULTI TRANSPARENT INPUT 
* 
          SETMXF XMFXEND     -         NOT IN MULTI TRANSPARENT INPUT 
*                                       END OF TRANSPARENT INPUT
XXDT25    SETMXF XMFMSG      -         SEND TRANSPARENT MSG-BLOCK 
          JUMP   XSTEB,XCUTE -         CHECK TERMINATION OF XPT INPUT 
*                                                                     * 
*                                                                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSXMD                                     * 
*                                                                     * 
*         PROCESS TRANSPARENT DATA WITH MULTIPLE DELIMITERS           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                                                                     * 
XXMD      CHARNE XCDEL,XXMD05 
          NOPR   EXIT        -         SKIP LEADING DELS
XXMD05    CHARNE XCNUL,XXMD10 
          NOPR   EXIT        -         SKIP LEADING NULLS 
XXMD10    MVCHRL XCS3CHR,XCSCHR        GET MULITI MSG DELIMITER CHAR
          RSTMXF XMFXHH      -         RESET DELIMITER FOUND FLAG 
          SPCHEQ XXMD15      -         MULTI MSG DELIMITER FOUND
          TSTMXF XMFPAI,XXMD12         SUPPOSED TO IGNORE PARITY BIT
          SKIP   XXMD13 
XXMD12    SETBIT XCSCHR,XPBIT          CHECK FOR DL WITH PARITY BIT SET 
          SPCHEQ XXMD15 
XXMD13    MVCHLL XCS2CHR,XCSCHR        RESTORE XPT FORWARDING CHAR
          JUMP   XSXDT       -         START PROCESSING XPT DATA
XXMD15    SETMXF XMFNODT     -         THIS BUFFER INDICATES TO 
*                                      OPS FOR END OF XPT INPUT 
          SETMXF XMFXEND     -         END OF TRANSPARENT INPUT 
          JUMP   XSTEB,XCUTE -         CHECK TERMINATION OF XPT INPUT 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSXHH                                     * 
*                                                                     * 
*               TRANSPARENT DEL CHARACTER CHECK                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XXHH      TSTMXF XMFMULTI,XXHH10       MULTI TRANSPARENT INPUT
          SETMXF XMFXEND     -         END OF TRANSPARENT INPUT 
XXHH05    SETMXF XMFMSG      -         SEND TRANSPARENT MSG-BLOCK 
          JUMP   XSTEB,XCUTE -         CHECK TERMINATION OF XPT INPUT 
* 
XXHH10    SETMXF XMFXHH      -         SET FLAG SINCE THIS IS FIRST 
*                                       DL CHARACTER
          SKIPB  XXHH05 
* 
* 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           XSTEB                                     * 
*                                                                     * 
*                RETURN TO OPS FROM XPT STATE                         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
XTEB      TPMARK LEVEL2      -
          STATE  XSRTN,EXIT  -         GET NEXT DATA, IT MAY HIT END
*                                       OF SOURCE CONDITION 
* 
* 
* * * *  END OF INPUT STATE PROGRAM  * * *
* 
          END 
