*COMDECK HASPITXP 
          NAM    HPRUIT 
          NLS 
*CALL MUXMACROS 
          LST 
          EJT 
*CALL HASPIEQU
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         THERE IS A STATES-TABLE FOR:                                * 
*                                                                     * 
*                BATCH NON-XPT                                        * 
*                INTERACTIVE / BATCH-XPT                              * 
*                                                                     * 
*         BEFORE ENTERING THIS PROCESS:                               * 
*                THE APPROPRIATE STATES TABLE ADDRESS IS SET UP       * 
*                THE DEFAULT TRANSLATION TABLE ADDRESS IS SET UP      * 
*                MXJOB IS SET IF JOB CARD IS EXPECTED.                * 
*                MX26, MX63, MXXPT REFLECT 26/29 CODE-SET,            * 
*                63/64 CHARACTER-SET AND TRANSPARENT-INPUT.           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          EJT 
********************************************* 
*                                           * 
* HASP INPUT STATE PROGRAMS (2ND PASS)      * 
*                                           * 
*         BATCH                             * 
*                                           * 
********************************************* 
          SPC    1
H2BST     MAC    LB,P2       -    MACRO TO CREATE 2ND PASS INPST TABLE
          IFC    "P2",EQ, 
          EQU    HS2"LB"(*-H2BTCH+0)
          EIF 
          ADC    H2"LB" 
          EMC 
          SPC    1
          EQU    H2BTCH(*)
          ENT    H2BTCH 
          SPC    1
          H2BST  B000,*      -    00  END OF SOURCE 
          H2BST  BRESERV,*   -    01  NOT USED
          H2BST  BRESERV,*   -    02  NOT USED
          H2BST  BRESERV,*   -    03  NOT USED
          H2BST  B010,*      -    INITIAL ENTRY PROCESS RCB 
          H2BST  B020        -    PROCESS SRCB
          H2BST  B990        -    SUBSEQUENT RCB-S, CONTINUE OR TPEXIT
*                            -    ORDER OF STATES 0-6 MATCHES H2IST 
          H2BST  B030        -    PROCESS 1ST SCB 
          H2BST  B040        -    SLASH,789 (EOR,EOI) 
          H2BST  B050        -    ASTERISK
          H2BST  B060        -    CHECK E 
          H2BST  B070        -    CHECK O 
          H2BST  B080        -    CHECK R OR I
          H2BST  B100        -    BYPASS EOR, EOI 
          H2BST  B110        -    EOR, EOI BYPASS NON-COMPRESSED
          H2BST  B120        -    EOR, EOI BYPASS COMPRESSED NON-BLANKS 
          H2BST  B160        -    LEVEL NUMBER 1ST CHARACTER
          H2BST  B170        -    LEVEL NUMBER 2ND CHARACTER
          H2BST  B180        -    SCB FOR LEVEL NUMBER 1ST CHARACTER
          H2BST  B210        -    COMPRESSED LEVEL NUMBER 1ST CHARACTER 
          H2BST  B220        -    SCB FOR LEVEL NUMBER 2ND CHARACTER
          H2BST  B230        -    COMPRESSED LEVEL NUMBER 2ND CHARACTER 
          H2BST  B250        -    SCB POST LEVEL NUMBER 
          H2BST  B260        -    SAVE COMPRESSED NON-BLANK 
          H2BST  B300        -    SAVE NON-COMPRESSED 
          H2BST  B500        -    EMBEDDED SCB
          H2BST  B550        -    NON-COMPRESSED STRING 
          H2BST  B600        -    COMPRESSED NON-BLANKS 
          H2BST  B650        -    SUPPRESS TRAILING BLANKS
          H2BST  B700        -    UNCOMPRESSED FOLLOWING COMP. BLANKS 
          H2BST  B750        -    COMP. NON-BLANK FOLLOWING COMP. BLANK 
          H2BST  B800        -    PROCESS COMPRESSED BLANKS 
          H2BST  B820        -    EXPAND BLANKS 
          H2BST  B900        -    CHECK COLON (64 CHAR SET RTN.)
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* END OF SOURCE                                                       * 
*                                                                     * 
*         HS2B000 - END OF SOURCE REACHED.                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B000    TIBSWC 0           -    FORCE LCD IN LAST DESTINATION 
          TPEXIT             -    EXIT FROM TEXT PROCESSING 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* INITIAL ENTRY PROCESS RCB                                           * 
*                                                                     * 
*         HS2B010 - JOB CARD IS EXPECTED INITIALLY                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B010    RSTBIT NCUOPS,MBEOR     RESET EOR FLAG
          TPMOVE TPCURC,TPLRCB    SAVE THE CURRENT RCB
          CHARNE HCZERO,H2B012    SKIP IF NON ZERO RCB
          TPMARK LEVEL2      -    BYPASS THE ZERO RCB IN SOURCE 
          NOPR   EXIT        -    IGNORE ZERO RCBS (END-OF-XMIT-BLOCK)
H2B012    ADDC   HCZERO      -    ALLOW FOR INSERTION OF DBC BY BIP 
          TPSUBR TPCREC,TPCREC    CLEAR RECORD COUNTER
          STATE  HS2B020
          TSTMXF MXXPT,H2B014     SKIP IF TRANSPARENT INPUT 
          SETRAN EXIT 
H2B014    SETFLG BFXPT,FRST  -    SET XPARENT FLAG IN FIRST BUFFER
          RSTRAN EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS SRCB                                                        * 
*                                                                     * 
*         HS2B020 - SETUP TO PROCESS THE NEW RECORD.                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B020    TPSUBR TPCCCARD,TPCCCARD  ZERO CARD CHARACTER COUNT 
          TPMARK LEVEL1      -    SAVE CURRENT SRC POINTER
          STATE  HS2B030,EXIT     DISCARD SRCB
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS 1ST SCB                                                     * 
*                                                                     * 
*         HS2B030 - THIS IS THE FIRST SCB IN THE CARD.                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B030    CHARNE HCZERO,H2B034    SKIP IF SCB NOT ZERO
          SETMXF MXEOF+MXEOI+MXEOR END-OF-FILE DETECTED 
          TSTMXF MXJOB,H2B032     SKIP IF JOB CARD EXPECTED 
          SETFLG BFEOI,FRST  -    JOB CARD SEEN, TREAT EOF AS EOI 
H2B032    JUMP   HS2B990     -    MARK NEXT RCB AND EXIT TP 
H2B034    CHARLS HNONCMP,H2B036   SKIP IF SCB COMPRESSED
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B040,EXIT     GO CHECK SLASH, 789 
H2B036    SKIP   H2B150      -    GO CHECK TYPE OF COMPRESSION
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SLASH, 789 (EOR, EOI)                                               * 
*                                                                     * 
*         HS2B040 - CHECK IF FIRST CHARACTER IS A SLASH OR 789 PUNCH. * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B040    CHARNE HCSLASH,H2B042   NOT /*EOR OR /*EOI
          DCC    CC1,H2B044  -    SKIP IF END OF CHARACTER STRING 
          STATE  HS2B050,EXIT     GO LOOK FOR ASTERISK
H2B042    CHARNE HC789,H2B044     SKIP IF NOT 789 PUNCH 
          TPLDR  NCCNT1,TPCCCARD  SET CARD CHARACTER COUNT
          SKIP   H2B090      -    PROCESS AS EOR
H2B044    TPBKUP LEVEL1,SRC  -    BACKUP TO START OF STRING (SCB) 
          STATE  HS2B500,EXIT     PROCESS STRING NORMALLY 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* ASTERISK                                                            * 
*                                                                     * 
*         HS2B050 - LOOK FOR AN ASTERISK TO FOLLOW THE SLASH.         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B050    CHARNE HCASTER,H2B052   SKIP IF NOT AN ASTERISK 
          DCC    CC1,H2B052  -    SKIP IF END OF CHARACTER STRING 
          STATE  HS2B060,EXIT     GO LOOK FOR E 
H2B052    TPBKUP LEVEL1,SRC  -    BACKUP TO START OF STRING (SCB) 
          STATE  HS2B500,EXIT     PROCESS STRING NORMALLY 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* CHECK E                                                             * 
*                                                                     * 
*         HS2B060 - LOOK FOR AN E TO FOLLOW /*.                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B060    CHARNE HCEE,H2B062 -    SKIP IF NOT E 
          DCC    CC1,H2B062  -    DECREMENT STRING COUNT
          STATE  HS2B070,EXIT     GO LOOK FOR O 
H2B062    TPBKUP LEVEL1,SRC  -    BACKUP TO START OF STRING (SCB) 
          STATE  HS2B500,EXIT     PROCESS STRING NORMALLY 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* CHECK O                                                             * 
*                                                                     * 
*         HS2B070 - LOOK FOR AN O TO FOLLOW /*E.                      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B070    CHARNE HCOO,H2B072 -    SKIP IF NOT O 
          DCC    CC1,H2B072  -    DECREMENT STRING COUNT
          STATE  HS2B080,EXIT     GO LOOK FOR R OR I
H2B072    TPBKUP LEVEL1,SRC  -    BACKUP TO START OF STRING (SCB) 
          STATE  HS2B500,EXIT     PROCESS STRING NORMALLY 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* CHECK R OR I                                                        * 
*                                                                     * 
*         HS2B080 - LAST TEST TO DETERMINE /*EOR OR /*EOI.            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B080    CHARNE HCRR,H2B082 -    SKIP IF NOT R 
          SKIP   H2B090      -    GO PROCESS EOR
H2B082    CHARNE HCII,H2B086 -    SKIP IF NOT I 
          TSTMXF MXJOB,H2B084     SKIP IF JOB CARD EXPECTED 
          SETFLG BFEOI,FRST  -    SET EOI FLAG IN BUFFER
          SETMXF MXEOI+MXEOR+MXJOB SET MUX EOI AND JOB FLAGS
          TPINCR TPCREC,1    -    INCREMENT RECORD COUNT NOW
H2B084    JUMP   HS2B110     -    GO BYPASS THE REST OF THE CARD
H2B086    TPBKUP LEVEL1,SRC  -    BACK TO START OF STRING (SCB) 
          STATE  HS2B500,EXIT     PROCESS STRING NORMALLY 
          SPC    4
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* * * *  EOR CARD DETERMINED. IF JOB CARD EXPECTED, IGNORE EOR.       * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1
H2B090    TSTMXF MXJOB,H2B092     SKIP IF JOB CARD EXPECTED 
          SKIP   H2B096      -    GO PROCESS THE EOR
H2B092    JUMP   HS2B110     -    GO BYPASS THE REST OF THE CARD
H2B096    TPINCR TPCREC,1    -    INCREMENT RECORD COUNT NOW
          ALNBUF HFCDATA     -    ALLOCATE NEW BUFFER 
          SETFLG BFEOR,FRST  -    SET EOR FLAG IN FIRST BUFFER
          SETBIT NCUOPS,MBEOR     SET EOR FLAG IN TPCB
          DCC    CC1,H2B098  -    DECREMENT STRING COUNT
          STATE  HS2B160,EXIT     GO GET LEVEL NUMBER 
H2B098    STATE  HS2B180,EXIT     GO GET SCB FOR LEVEL NUMBER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* BYPASS EOR, EOI                                                     * 
*                                                                     * 
*         HS2B100 - IF THE EOR, EOI CARD IS VALID, THE APPROPRIATE    * 
*                  FLAGS WERE SET BEFORE ENTERING THIS STATE AND THE  * 
*                  REMAINDER OF THE CARD IS SKIMMED THROUGH. BUT IF   * 
*                  THE JOB CARD IS EXPECTED THE ENTIRE EOR, EOI       * 
*                  CARD IS BYPASSED.                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B100    CHARNE HCZERO,H2B102    SKIP IF SCB NOT ZERO
          JUMP   HS2B990     -    MARK NEXT POSSIBLE RCB
H2B102    CHARLS HNONCMP,H2B104   SKIP IF SCB COMPRESSED
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B110,EXIT     GO BYPASS CHARACTERS
H2B104    CHARLS HCMPNBLNK,H2B106 SKIP IF COMPRESSED BLANKS 
          STATE  HS2B120,EXIT     GO BYPASS COMPRESSED NON-BLANK
H2B106    STATE  HS2B100,EXIT     GO GET NEXT SCB 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* EOR, EOI BYPASS NON-COMPRESSED                                      * 
*                                                                     * 
*         HS2B110 - THIS ROUTINE IS JUST GOING THROUGH THE CHARACTERS * 
*                   TO GET TO THE END OF THIS STRING.                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B110    DCC    CC1,H2B112,EXIT  SKIP IF END OF STRING 
H2B112    STATE  HS2B100,EXIT     GO PROCESS NEXT SCB 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* EOR, EOI BYPASS COMPRESSED NON-BLANKS                               * 
*                                                                     * 
*         HS2B120 - THE SPECIFIED COMPRESSED CHARACTER IS BYPASSED    * 
*                   AND CONTROL IS PASSED BACK TO CHECK THE NEXT SCB. * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B120    STATE  HS2B100,EXIT     GO PROCESS NEXT SCB 
          EJT 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* * * *  COMPRESSED SCB.                                              * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1                                                    * 
H2B150    CHARLS HCMPNBLNK,H2B152 SKIP IF SCB COMPRESSED BLANKS 
          CHRCC  CC1,HMCNBMSK     SET STRING COUNT
          STATE  HS2B600     -    COMPRESSED NON-BLANKS 
          SKIP   H2B890      -    INCREMENT CARD CHARACTER COUNT
H2B152    TPMARK LEVEL2      -    SAVE SOURCE POINTERS
          STATE  HS2B650,EXIT     GO CHECK TRAILING BLANKS
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* LEVEL NUMBER 1ST CHARACTER                                          * 
*                                                                     * 
*         HS2B160 - STORE THE FIRST NUMBER FOR LEVEL NUMBER.          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B160    DCC    CC1,H2B162  -    DECREMENT STRING COUNT
          STATE  HS2B170,STOREXIT GO GET 2ND CHAR FOR LEVEL NUMBER
H2B162    STATE  HS2B220,STOREXIT GO DO SCB FOR 2ND CHARACTER 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* LEVEL NUMBER 2ND CHARACTER                                          * 
*                                                                     * 
*         HS2B170 - STORE THE SECOND NUMBER FOR LEVEL NUMBER          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B170    STORE              -    STORE SECOND CHAR OF LEVEL NUBER
          DCC    CC1,H2B172  -    DECREMENT STRING COUNT
          STATE  HS2B300,EXIT     GO FINISH OUT CARD
H2B172    STATE  HS2B250,EXIT     GO FINISH CARD CHECKING NEXT SCB
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SCB FOR LEVEL NUMBER 1ST CHARACTER                                  * 
*                                                                     * 
*         HS2B180 - A SCB HAS TO BE CHECKED BEFORE GETTING THE FIRST  * 
*                   CHARACTER OF THE LEVEL NUMBER.                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B180    CHARNE HCZERO,H2B184    SKIP IF NOT END OF RECORD SCB 
          RCHAR  HCBLNK      -    REPLACE CURRENT CHAR WITH BLANK 
          STORE              -    STORE 2 BLANKS AS 
          STORE              -    DEFAULT LEVEL NUMBER
          TPMARK LEVEL2      -    MARK TO NEXT POSSIBLE RCB 
          STATE  HS2B990,EXIT     GO PROCESS NEXT RCB 
* 
H2B184    CHARLS HNONCMP,H2B188   SKIP IF COMPRESSION SCB 
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B160,EXIT     GO PROCESS 1ST LEVEL NUMBER 
H2B188    CHARLS HCMPNBLNK,H2B190 SKIP IF COMPRESSED BLANKS 
          CHRCC  CC1,HMCNBMSK     SET STRING COUNT
          STATE  HS2B210,EXIT     GO PROCESS COMPRESSED LEVEL NUMBER
H2B190    CHRCC  CC1,HMCBMSK -    SET STRING COUNT
          STATE  HS2B210     -    PROCESS COMPRESSED LEVEL NUMBER 
*         SKIP   H2B200      -    FALL THRU TO H2B200 
          SPC    4
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* CHARACTER COUNT FOR BLANKS.                                         * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1
H2B200    TPSUBR TPSAVE,TPSAVE    ZERO INTERIM FIELD
          TPLDR  NCCNT1,TPSAVE    ADD STRING COUNT TO 
          TPADDR TPSAVE,TPCCCARD  TOTAL CARD CHARACTER COUNT
          RCHAR  HCBLNK      -    MAKE CURRENT CHARACTER A BLANK
          RTRN               -    JUMP TO CURRENT STATE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* COMPRESSED LEVEL NUMBER FIRST CHARACTER                             * 
*                                                                     * 
*         HS2B210 - SCB HAS INDICATED THE LEVEL NUMBER TO BE          * 
*                   COMPRESSED. THIS ROUTINE EXPANDS THE FIRST        * 
*                   CHARACTER.                                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B210    DCC    CC1,H2B212  -    DECREMENT STRING COUNT
          STORE              -    STORE 1ST CHARACTER 
          JUMP   HS2B230     -    GO PROCESS COMP. LEV. NO. 2ND CHAR. 
H2B212    STATE  HS2B220,STOREXIT GO PROCESS NEXT SCB 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SCB FOR LEVEL NUMBER 2ND CHARACTER                                  * 
*                                                                     * 
*         HS2B220 - ANOTHER SCB HAS TO BE DETERMINED INORDER TO GET   * 
*                   THE 2ND CHARACTER FOR LEVEL NUMBER.               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B220    CHARNE HCZERO,H2B222    SKIP IF NOT END OF RECORD SCB 
          RPLACE HCBLNK      -    BLANK SECOND CHARACTER OF LEVEL NR
          TPMARK LEVEL2      -    MARK TO NEXT POSSIBLE RCB 
          STATE  HS2B990,EXIT     GO PROCESS NEXT RCB 
* 
H2B222    CHARLS HNONCMP,H2B224   SKIP IF COMPRESSED SCB
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B170     -    PROCESS 2ND CHARACTER LEVEL NUMBER
          SKIP   H2B890      -    INCREMENT CARD CHARACTER COUNT
H2B224    CHARLS HCMPNBLNK,H2B226 SKIP IF COMPRESSED BLANKS 
          CHRCC  CC1,HMCNBMSK     SET STRING COUNT
          STATE  HS2B230     -    COMPRESSED LEVEL NUMBER 2ND CHAR
          SKIP   H2B890      -    INCREMENT CARD CHARACTER COUNT
H2B226    STATE  HS2B230     -    COMPRESSED LEVEL NUMBER 2ND CHAR
          CHRCC  CC1,HMCNBMSK     SET STRING COUNT
          SKIP   H2B200      -    ADJUST BLANK CHARACTER COUNT
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* COMPRESSED LEVEL NUMBER 2ND CHARACTER                               * 
*                                                                     * 
*         HS2B230 - THE SECOND CHARACTER FOR LEVEL NUMBER IS          * 
*                   COMPRESSED.                                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B230    STATE  HS2B250,STOREXIT GO PROCESS NEXT SCB 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SCB POST LEVEL NUMBER                                               * 
*                                                                     * 
*         HS2B250 - THE REST OF THE CARD IS BYPASSED,                 * 
*                   BUT KEEPING TRACK OF LAST AND NEXT-TO-LAST        * 
*                   CHARACTERS FOR CODE TRANSLATION IN                * 
*                   COLUMNS 79 + 80.                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B250    CHARNE HCZERO,H2B252    SKIP IF NOT ZERO
          TPMARK LEVEL2      -    SAVE SOURCE POINTERS
          SKIP   H2B270      -    GO CHECK COLUMNS 79 + 80
H2B252    CHARLS HNONCMP,H2B254   SKIP IF COMPRESSED
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B300,EXIT     GO SAVE NON-COMPRESSED CHARACTER
H2B254    CHARLS HCMPNBLNK,H2B256 SKIP IF COMPRESSED BLANKS 
          STATE  HS2B260,EXIT     GO SAVE COMPRESSED NON-BLANK
H2B256    TPSUBR TPCURC,TPCURC    CLEAR CURRENT CHARACTER 
*         SKIP   H2B260      -    GO SAVE COMPRESSED BLANK
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SAVE COMPRESSED NON-BLANK                                           * 
*                                                                     * 
*         HS2B260 - THIS ROUTINE SAVES THE LAST-CHARACTER AND         * 
*                   THE NEXT-TO-LAST CHARACTER.                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B260    TPMOVE TPLAST,TPNXTL    PUSH LAST TO NEXT-TO-LAST 
          TPMOVE TPCURC,TPLAST    SAVE CURRENT AS LAST
          STATE  HS2B250,EXIT     GO PROCESS NEXT SCB 
          EJT 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* CHECK COLUMNS 79 + 80. THE TRANSLATION TABLE ADDRESS IS INDICATED   * 
*         BY THE CONTENTS OF THESE COLS. FOR THE DATA CARDS FOLLOWING.* 
*         #TR# IS ACCEPTED ONLY IN THE EOR CARD.                      * 
*         #26# OR #29# IS ACCEPTED IN THE EOR CARD OR THE JOB CARD.   * 
*         64 CHARACTER SET ROUTINE.                                   * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1
H2B270    TPRSTR TPNXTL      -    LOAD NEXT-TO-LAST CHARACTER (COL 79)
          CHARNE HCTWO,H2B272     SKIP IF NOT A #2# 
          TPRSTR TPLAST      -    LOAD LAST CHARACTER (COL 80)
          CHARNE HCSIX,H2B276     SKIP IF NOT A #6# 
          SETMXF MX26+MXEOR  -    SET #26# FLAG, FORCE EXIT FROM TP 
          STATE  HS2B990,EXIT 
H2B272    CHARNE HCTT,H2B274 -    SKIP IF NOT A #T# (NO CHANGE IN XLAT) 
          TSTMXF MXEOR,H2B280     SKIP IF THIS IS EOR (NOT JOB-CARD)
H2B274    STATE  HS2B990,EXIT     DONT ALLOW #TR# ON JOB CARD 
H2B276    CHARNE HCNINE,H2B278    SKIP IF NOT A #9# 
          RSTBIT NCUOPS,MB26 -    RESET #26# FLAG 
          SETBIT NCUOPS,MBEOR     FORCE EXIT FROM TP (TO SET NEW XLATE) 
H2B278    STATE  HS2B990,EXIT     NO #26# OR #29# FOUND IN 79 + 80
H2B280    TPRSTR TPLAST      -    LOAD LAST CHARACTER 
          CHARNE HCRR,H2B282 -    SKIP IF NOT #R# 
          SETMXF MXXPT+MXEOR -    SET MUX XPT FLAG, FORCE EXIT FROM TP
H2B282    STATE  HS2B990,EXIT     GO CHECK NEXT RCB 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SAVE NON-COMPRESSED                                                 * 
*                                                                     * 
*         HS2B300 - LAST CHARACTER IS SHIFTED TO NEXT-TO-LAST.        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B300    TPMOVE TPLAST,TPNXTL    PUSH LAST TO NEXT-TO-LAST 
          TPMOVE TPCURC,TPLAST    SAVE CURRENT AS LAST CHARACTER
          DCC    CC1,H2B302,EXIT  DECREMENT STRING COUNT
H2B302    STATE  HS2B250,EXIT     GO CHECK NEXT SCB 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* EMBEDDED SCB                                                        * 
*                                                                     * 
*         HS2B500 - NORMAL SCB CHECKING WITHIN THE CARD.              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B500    CHARNE HCZERO,H2B511    SKIP IF SCB IS NOT ZERO 
          JUMP   HS2B900     -    GO CHECK CARD BOUNDARIES
H2B511    CHARLS HNONCMP,H2B515   SKIP IF SCB IS COMPRESSED 
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B550     -    NON-COMPRESSED STRING 
          SKIP   H2B890      -    INCREMENT CARD CHARACTER COUNT
H2B515    SKIP   H2B150      -    CHECK COMPRESSSED SCB 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* NON-COMPRESSED STRING                                               * 
*                                                                     * 
*         HS2B550 - NORMAL STRING PROCESSING.                         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B550    TPMOVE TPLAST,TPNXTL    PUSH LAST TO NEXT-TO-LAST 
          TPMOVE TPCURC,TPLAST    SAVE CURRENT CHARACTER AS LAST
          DCC    CC1,H2B560,STOREXIT  STORE UNTIL STRING EXHAUSTED
H2B560    STATE  HS2B500,STOREXIT START NEW STRING
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* COMPRESSED NON-BLANKS                                               * 
*                                                                     * 
*         HS2B600 - EXPAND NON-BLANK CHARACTERS.                      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B600    TPMOVE TPCURC,TPLAST    SAVE CHARACTER AS LAST
          TPMOVE TPCURC,TPNXTL    AND NEXT-TO-LAST
          CHRPT              -    EXPAND THE CHARACTER
          STATE  HS2B500,EXIT     START NEW STRING
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SUPPRESS TRAILING BLANKS                                            * 
*                                                                     * 
*         HS2B650 - BLANKS AT THE END OF THE CARD ARE DROPPED OFF.    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B650    CHARNE HCZERO,H2B665    SKIP IF NOT ZERO SCB
          SKIP   H2B850      -    GO CHECK FOR BLANK CARD 
H2B665    CHARLS HNONCMP,H2B670   SKIP IF SCB COMPRESSED
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2B700,EXIT     GO CHECK FOR UNCOMPRESSED BLANKS
H2B670    CHARLS HCMPNBLNK,H2B675 SKIP IF COMPRESSED BLANKS 
          STATE  HS2B750,EXIT     GO CHECK BLANKS ANYWAY
H2B675    NOPR   EXIT        -    COMPRESSED BLANKS, EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* UNCOMPRESSED FOLLOWING COMPRESSED BLANKS                            * 
*                                                                     * 
*         HS2B700 - IF THIS IS A NON-BLANK CHARACTER THEN BACKUP      * 
*                   AND STORE THE BLANKS THAT WERE BYPASSED.          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B700    CHARNE HCBLNK,H2B710    SKIP IF CHARACTER NOT BLANK 
          DCC    CC1,H2B705,EXIT  DECREMENT STRING COUNT + EXIT 
H2B705    STATE  HS2B650,EXIT     CONTINUE BLANK SUPPRESS 
H2B710    TPBKUP LEVEL2,SRC  -    FOUND NON-BLANK, BACKUP 
          JUMP   HS2B800     -    PROCESS THE BLANKS
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* COMPRESSED NON-BLANK FOLLOWING COMPRESSED BLANKS                    * 
*                                                                     * 
*         HS2B750 - IF A NON-BLANK FOUND THEN BACKUP AND STORE        * 
*                   THE BLANK JUST BYPASSED.                          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B750    CHARNE HCBLNK,H2B755    SKIP IF CHARACTER NOT BLANK 
          STATE  HS2B650,EXIT     CONTINUE BLANK SUPPRESS 
H2B755    TPBKUP LEVEL2,SRC  -    FOUND NON-BLANK, BACKUP 
          JUMP   HS2B800     -    PROCESS THE BLANKS
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS COMPRESSED BLANKS                                           * 
*                                                                     * 
*         HS2B800 - STARTING WITH THE FIRST SCB PREVIOUSLY BYPASSED.  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B800    CHARLS HCMPNBLNK,H2B810 SKIP IF SCB IS BLANK COMPRESSION
          JUMP   HS2B500     -    GO PROCESS NORMAL STRING
H2B810    CHRCC  CC1,HMCBMSK -    SET STRING COUNT
          STATE  HS2B820     -    EXPAND THE BLANKS 
          SKIP   H2B200      -    ADJUST CHARACTER COUNT FOR BLANKS 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* EXPAND BLANKS                                                       * 
*                                                                     * 
*         HS2B820 - STORING THE BLANKS PREVIOUSLY BYPASSED.           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B820    TPMOVE TPCURC,TPLAST    SAVE CURRENT AS LAST
          TPMOVE TPCURC,TPNXTL    SAVE CURRENT AS NEXT-TO-LAST
          CHRPT              -    EXPAND THE BLANKS 
          STATE  HS2B500,EXIT     GO PROCESS A NORMAL STRING
          SPC    4
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* CHECK BLANK CARD. IF THE CARD IS TOTALLY BLANK STORE ONE BLANK      * 
*                   AND END THIS CARD UNLESS A JOB CARD IS EXPECTED.  * 
*                   IN THE LATTER CASE, BYPASS THIS CARD.             * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1
H2B850    TPRSTR TPCCCARD    -    LOAD CARD CHARACTER COUNT 
          CHARNE HCZERO,H2B852    SKIP IF CARD NOT TOTALLY BLANK
          TSTMXF MXJOB,H2B854     SKIP IF JOB CARD EXPECTED 
          RPLACE HCBLNK      -    MAKE CHARACTER A BLANK
          TPMOVE TPCURC,TPLAST    SAVE CURRENT AS LAST CHARACTER
          TPINCR TPCCCARD,1  -    INCREMENT CARD CHARACTER COUNT
H2B852    JUMP   HS2B900     -    GO CHECK CARD BOUNDARIES
H2B854    JUMP   HS2B990     -    MARK AND PROCESS NEXT POSSIBLE RCB
          SPC    4
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* INCREMENT CARD CHARACTER COUNT.                                     * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1
H2B890    TPSUBR TPSAVE,TPSAVE    ZERO INTERIM FIELD
          TPLDR  NCCNT1,TPSAVE    PUT IN STRING COUNT 
          TPADDR TPSAVE,TPCCCARD  ADD TO TOTAL CARD CHARACTER COUNT 
          NOPR   EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* CHECK FOR COLON                                                     * 
*                                                                     * 
*         HS2B900 - THIS ROUTINE IS USED FOR THE 64 CHARACTER CODE    * 
*                   SET. IF THE LAST CHARACTER IS A COLON IT IS       * 
*                   PROTECTED BY PLACING A BLANK AFTER IT.            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B900    TPMARK LEVEL2      -    SAVE SOURCE POINTERS
          TSTMXF MX63,H2B920 -    SKIP IF 63 CHARACTER SET
          TPRSTR TPLAST      -    LOAD LAST CHARACTER AS CURRENT
          CHARNE HCCOLON,H2B920   SKIP IF CHARACTER NOT A COLON 
          RPLACE HCBLNK      -    MAKE CURRENT CHARACTER A BLANK
          TPINCR TPCCCARD,1  -    INCREMENT CARD CHARACTER COUNT
          SPC    2
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
*                                                                     * 
* CARD BOUNDARY. THE CARD MUST END ON EVEN COLUMN. A BLANK IS USED    * 
*                TO PAD IF NECESSARY. TWO TO ELEVEN ZEROS ARE PADDED  * 
*                TO ALLIGN THE END OF CARD AT MODULO 10 BOUNDARY      * 
*                                                                     * 
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 
          SPC    1
H2B920    TPINCR TPCREC,1    -    INCREMENT RECORD COUNT
          TPST   TPCCCARD,NCCNT2  GET CARD CHAR COUNTER 
          ICC    CC2         -    ADD 1 TO CHAR COUNTER 
          TSTMSK NCCNT2,1,H2B930  SKIP IF ODD (WAS EVEN CHAR BOUNDARY)
          RPLACE HCBLNK      -    STORE BLANK TO MAKE EVEN
          ICC    CC2         -    ADD BLANK TO CHARACTER COUNTER
H2B930    MODCC  CC2,10      -    MODULO 10 OF CHAR COUNTER 
          TPLD   NCCNT2,TPHOLD    RESULT (0..9) IN TPHOLD 
          TPMOVE TPTEN,TPSAVE     INITIALIZE REGISTER TO A VALUE OF 10
          TPSUBR TPHOLD,TPSAVE    GET AMOUNT OF ZEROS TO PAD
          TPINCR TPSAVE,1    -    STORE AT LEAST TWO ZEROS
          TPSTR  TPSAVE,NCCNT1    LOAD CTR W/AMOUNT OF ZEROS NEEDED 
          RSTRAN             -    TURN OFF TRANSLATION FOR -RADDC-
          RADDC  HCZERO      -    STORE ZEROS IN DESTINATION BUFFER 
          SETRAN             -    TURN ON TRANSLATION 
H2B942    TSTMXF MXJOB,H2B944     SKIP IF THIS IS JOB CARD
          STATE  HS2B990,EXIT     GO CHECK NEXT RCB 
H2B944    RSTBIT NCUOPS,MBJOB     CLEAR JOB CARD EXPECTED FLAG
          SKIP   H2B270      -    GO CHECK COLS. 79 + 80
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* CONTINUE OR TPEXIT                                                  * 
*                                                                     * 
*         HS2B990 - TEXT PROCESSING CONTINUES UNLESS:                 * 
*                   AN EOI/EOR OR JOB-CARD WITH 26/29 DETECTED        * 
*                   A DIFFERENT RCB HAS BEEN DETERMINED               * 
*                   OR                                                * 
*                   A PREDEFINED NR OF DESTINATION BUFFER USED.       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2B990    CHARNE HCZERO,H2B992    SKIP IF NOT A ZERO RCB
          TPMARK LEVEL2      -    SKIP THE ZERO RCB 
          NOPR   EXIT        -    GET THE NEXT ONE
H2B992    TSTMXF MXEOR,H2B996     GO EXIT TEXT PROCESSING 
          TPCMPR TPCURC,TPLRCB    CHECK IF SAME RCB AS LAST RECORD
          SKIP   H2B996      -    < NO - EXIT TEXT PROCESSING 
          SKIP   H2B994      -    = CHECK RECORD COUNT
          SKIP   H2B996      -    > NO - EXIT TEXT PROCESSING 
H2B994    TPLDL  NCBLCNT,TPSAVE   GET NR OF DESTINATION BUFFERS 
          TPRSTR TPSAVE      -    INTO CURRENT CHARACTER
          CHARLS HCMAXBUF,H2B998  SKIP IF LESS THAN MAXIMUM 
H2B996    TPBKUP LEVEL2,SRC  -    BACKUP TO RCB 
          TIBSWC 0           -    FORCE LCD IN LAST BUFFER
          TPEXIT             -    EXIT FROM TEXT PROCESSING 
* 
H2B998    STATE  HS2B020,EXIT     GO PROCESS THE SRCB 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         THE INTERACTIVE ROUTINES ARE USED FOR TRANSPARENT BATCH     * 
*                PROCESSING AS WELL. THE ONLY DIFFERENCE BETWEEN      * 
*                THE TWO IS CHECKING FOR N RECORDS MAXIMUM TO         * 
*                BE PROCESSED FOR TRANSPARENT DATA.                   * 
*                INTERACTIVE RECORDS ARE PROCESSED ONE AT THE TIME.   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    4
********************************************* 
*                                           * 
* HASP INPUT STATE PROGRAMS (2ND PASS)      * 
*                                           * 
*         INTERACTIVE / TRANSPARENT-BATCH   * 
*                                           * 
********************************************* 
          SPC    1
H2IST     MAC    LB,P2       -    MACRO TO CREATE 2ND PASS INPST TABLE
          IFC    "P2",EQ, 
          EQU    HS2"LB"(*-H2INT) 
          EIF 
          ADC    H2"LB" 
          EMC 
          SPC    1
          ENT    H2INT
          EQU    H2INT(*) 
          SPC    1
          H2IST  B000,*      -    00  END OF SOURCE 
          H2IST  BRESERV,*   -    01  NOT USED
          H2IST  BRESERV,*   -    02  NOT USED
          H2IST  BRESERV,*   -    03  NOT USED
          H2IST  B010,*      -    INITIAL ENTRY PROCESS RCB 
          H2IST  I110,*      -    PROCESS SRCB
          H2IST  B990,* 
*                            -    ORDER OF STATES 0-6 MATCHES H2BST 
          H2IST  I200        -    PROCESS FIRST SCB 
          H2IST  I300        -    PROCESS SUBSEQUENT SCB-S
          H2IST  I400        -    NON-COMPRESSED CHARACTERS 
          H2IST  I500        -    EXPAND COMPRESSED CHARACTER 
          H2IST  I600        -    SUBSEQUENT RCBS 
          H2IST  I700        -    SIGNON CARD RECORD
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS SRCB                                                        * 
*                                                                     * 
*         HS2I110 - THIS IS FOR THE INTERACTIVE SRCB.                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I110    CHARNE HCSIGNON,H2I120  SKIP IF THIS IS NOT A SIGNON RECORD 
          STATE  HS2I700,EXIT     GO PROCESS SIGNON CARD RECORD 
H2I120    STATE  HS2I200,EXIT     GO PROCESS THE FIRST SCB
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS FIRST INTERACTIVE/TRANSPARENT SCB                           * 
*                                                                     * 
*         HS2I200 - TEST FOR END-OF-FILE OR EMPTY INTERACTIVE RECORD  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I200    CHARNE HCZERO,H2I210    SKIP IF NOT EOF 
          SETFLG BFEOI,FRST  -    SET EOI FLAG IN FIRST BUFFER
          SETMXF MXEOF+MXEOI+MXEOR END-OF-FILE IS IMPLIED EOI 
          TPMARK LEVEL2      -    SET SOURCE TO NEXT RCB
          STATE  HS2I600,EXIT     SKIP POSSIBLE ZERO RCB(S) 
H2I210    SKIP   H2I310      -    CONTINUE WITH NON-ZERO SCB
* 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SCB INTERACTIVE                                                     * 
*                                                                     * 
*         HS2I300 - DETERMINE TYPE OF SCB FOR INTERACTIVE.            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I300    CHARNE HCZERO,H2I310    SKIP IF SCB NOT ZERO
          TPMARK LEVEL2      -    SAVE SOURCE POINTERS
          STATE  HS2I600,EXIT     GO PROCESS RCB
* 
* * * *   PROCESS ALL NON-ZERO SCB-S HERE 
* 
H2I310    CHARLS HNONCMP,H2I320   SKIP IF COMPRESSED SCB
          CHRCC  CC1,HMNCMSK -    SET STRING COUNT
          STATE  HS2I400,EXIT     PROCESS NON-COMPRESSED
H2I320    CHARLS HCMPNBLNK,H2I330 SKIP IF BLANK COMPRESSION 
          CHRCC  CC1,HMCNBMSK     SET STRING COUNT
          STATE  HS2I500,EXIT     GO EXPAND COMPRESSED NON-BLANK
H2I330    CHRCC  CC1,HMCBMSK -    SET STRING COUNT
          RCHAR  HCBLNK      -    MAKE CURRENT CHARACTER A BLANK
          SKIP   H2I500      -    GO EXPAND THE BLANK 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* NON-COMPRESSED CHARACTERS                                           * 
*                                                                     * 
*         HS2I400 - STORE THE STRING OF CHARACTERS.                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I400    DCC    CC1,H2I420,STOREXIT  DECREMENT STRING COUNT
H2I420    STATE  HS2I300,STOREXIT PROCESS NEXT SCB
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* EXPAND COMPRESSED CHARACTER                                         * 
*                                                                     * 
*         HS2I500 - CHARACTER MAY BE BLANK OR NON-BLANK.              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I500    CHRPT              -    EXPAND CHARACTER USING COUNTER 1
          STATE  HS2I300,EXIT     GO PROCESS NEXT SCB 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* SUBSEQUENT RCBS                                                     * 
*                                                                     * 
*         HS2I600 - PROCESS SUBSEQUENT RCB, SET EOR FOR INTERACTIVE   * 
*                   TO FORCE EXIT FROM TP ON EACH RECORD.             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I600    TPINCR TPCREC,1         BUMP RECORD COUNTER 
          TSTMXF MXXPT,H2I610     SKIP IF TRANSPARENT DATA
          SETMXF MXEOR+MXEOI -    FORCE EXIT WITH SINGLE IA RECORD
H2I610    JUMP   HS2B990     -    PROCESS NEXT RCB
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS A GENERAL CONTROL RECORD (SIGNON CARD)                      * 
*                                                                     * 
*         HS2I700 - RECEIVE TEXT OF A GENERAL CONTROL RECORD.         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2I700    CHARNE HCZERO,H2I710    SKIP IF NOT END OF GENERAL CONTROL REC
          JUMP   HS2B990     -    GO MARK NEXT POSSIBLE RCB 
H2I710    NOPR   STOREXIT    -    STORE CHARACTER AND GET NEXT ONE
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* RESERVED STATES                                                     * 
*                                                                     * 
*         HS2BRESERV  -  MUST NEVER HAPPEN, HANG TP IF                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
H2BRESER  TPEXIT             -    EXIT TEXT PROCESSING
          SPC    4
          END 
