*COMDECK HASPINPS 
          NAM   HPRUIS
          NLS 
*CALL MUXMACROS 
          LST 
          EJT 
*CALL HASPIEQU
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HASP INPUT STATE PROGRAMS (1ST PASS)                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HSINST    MAC    NM 
          EQU    HS"NM"(*-HINSPT) 
          ADC    H"NM"
          EMC 
          SPC    1
          EQU    HINSPT(*)
          ENT    HINSPT 
          SPC    1
          HSINST CLASTAT     -    CLA STATUS HANDLER
          HSINST DCDNOT      -    DATA-CARRIER-DETECT DROPPED 
          HSINST OVERUN      -    TOO MANY BUFFERS
          HSINST BUTHR       -    BUFFER-THRESHOLD REACHED
          HSINST SYNC        -    RECEIVE SECOND SYNC CHARACTER 
          HSINST DATA        -    WAIT FOR SOH, DLE OR NAK
          HSINST SOH         -    PROCESS CHAR FOLLOWING SOH
          HSINST DLE         -    PROCESS CHAR FOLLOWING DLE
          HSINST NXPT        -    STORE NON-TRANSPARENT DATA
          HSINST XPT1        -    STORE TRANSPARENT DATA-1
          HSINST XPT2        -    STORE TRANSPARENT DATA-2
          HSINST CRCL        -    PROCESS LEFT CRC
          HSINST CRCR        -    PROCESS RIGHT CRC 
          HSINST SWLE        -    SEND WLE TO OPS LEVEL TIP 
          HSINST ERROR       -    PROCESS INPUT ERROR 
          HSINST IDLE        -    SET LINE TO IDLE AFTER INPUT DONE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSCLASTAT - CLA STATUS HANDLER                              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HCLASTAT  NOPR   EXIT        -    IGNORE STATUS 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSDCDNOT - DATA-CARRIER-DETECT DROPPED                      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HDCDNOT   EQU    HDCDNOT(*) 
*         JUMP   HSERROR,RTN -    TREAT AS ERROR IF INPUT (FALL TRHOUGH)
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSOVERUN - TOO MANY BUFFERS                                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HOVERUN   JUMP   HSERROR,RTN -    GOTO STATE ERROR REMEMBER CUR STATE 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSBUTHR - BUFFER-THRESHOLD REACHED IN SYSTEM                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HBUTHR    TIBWL  MMBUTCH     -    SEND BUF THR WLE TO PMWOLP
          TIBSWC HWKBTH      -    AND SEND ONE TO THE HASPTIP 
          JUMP   HSSWLE      -    TERMINATE INPUT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS SECOND SYNC CHARACTER                                       * 
*                                                                     * 
*         HSSYNC - INITIAL INPUT STATE.                               * 
*                  RECEIVE THE SECOND SYNC CHARACTER.                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HSYNC     CHARNE HCSYN,HSYNC1     IS CHARACTER A SYNC 
          INTCRC ZCRC        -    INITIALIZE THE CRC TO ZERO
          STATE  HSDATA,EXIT -    CHANGE STATE TO DATA ARRIVAL
* 
HSYNC1    RESYNC EXIT        -    NO SYNC - RESYNC CLA
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS CHARACTER(S) FOLLOWING SYNCHRONIZATION                      * 
*                                                                     * 
*         HSDATA - LOOK FOR SOH, DLE OR NAK                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HDATA     CHARNE HCSYN,HDATA1     IS CHARACTER A SYNC 
          NOPR   EXIT        -    YES - IGNORE
* 
HDATA1    CHARNE HCSOH,HDATA2     IS CHARACTER A SOH
          STATE  HSSOH,EXIT  -    YES - EXPECT AN ENQ OR NON-XPT DATA 
* 
HDATA2    CHARNE HCDLE,HDATA3     IS CHARACTER A DLE
          STATE  HSDLE,EXIT  -    YES - EXPECT AN ACK OR XPT DATA 
* 
HDATA3    CHARNE HCNAK,HDATA4     IS CHARACTER A NAK
          TIBSWC HWKNAK      -    YES - SEND NAK WLE TO TIP 
          JUMP   HSSWLE      -    SEND WLE TO OPS LEVEL TIP 
* 
HDATA4    JUMP   HSSYNC      -    BAD START OF TEXT, RESYNC LINE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS CHARACTER FOLLOWING A SOH                                   * 
*                                                                     * 
*         HSSOH  - CHECK FOR AN ENQ CONTROL BLOCK OR THE BSC          * 
*                  START-OF-TEXT CHARACTER FOR NON-TRANSPARENT DATA.  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HSOH      CHARNE HCSYN,HSOH1 -    IS CHARACTER A SYNC 
          NOPR   EXIT        -    YES - IGNORE
* 
HSOH1     CHARNE HCENQ,HSOH2 -    IS CHARACTER AN ENQ 
          TIBSWC HWKENQ      -    YES - SEND ENQ WLE TO TIP 
          JUMP   HSSWLE      -    SEND WLE TO OPS LEVEL TIP 
* 
HSOH2     CHARNE HCSTX,HSOH3 -    IS CHARACTER A STX
          RSTIME HTHREE      -    RESTART TIME-OUT TIMER
          ADDC   HCZERO      -    YES - ALLIGN NEW BUFFER TO RIGHT CHAR 
          STATE  HSNXPT,CRCEXIT   CHANGE TO STORE NON-TRANS 
* 
HSOH3     JUMP   HSSYNC      -    NOT SYNC/ENQ/STX, RESYNC THE LINE 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS CHARACTER FOLLOWING DLE                                     * 
*                                                                     * 
*         HSDLE  - CHECK FOR ACK CONTROL BLOCK OR THE BSC             * 
*                  START-OF-TEXT CHARACTER FOR TRANSPARENT DATA.      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HDLE      CHARNE HCSYN,HDLE1 -    IS CHARACTER A SYNC 
          NOPR   EXIT        -    YES - IGNORE
* 
HDLE1     CHARNE HCACK,HDLE2 -    IS CHARACTER AN ACK 
          TIBSWC HWKACK      -    YES - SEND ACK WLE TO TIP 
          JUMP   HSSWLE      -    SEND WLE TO OPS LEVEL TIP 
* 
HDLE2     CHARNE HCSTX,HDLE3 -    IS CHARACTER A STX
          ADDC   HCZERO      -    YES - ALLIGN NEW BUFFER TO RIGHT CHAR 
          SETFLG BFXPT,CURN  -    SET XPT FLAG IN THE NEW BUFFER
          STATE  HSXPT1,EXIT -    START RECEIVING TRANSPARENT DATA
* 
HDLE3     JUMP   HSSYNC      -    RESYNC THE LINE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS NON-TRANSPARENT DATA                                        * 
*                                                                     * 
*         HSNXPT - STORE THE DATA IN THE DESTINATION BUFFER UNTIL     * 
*                  AN ETB CHARACTER IS FOUND                          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HNXPT     CHARNE HCSYN,HNXPT1     IS CHARACTER A SYNC 
          RSTIME HTHREE,EXIT -    YES - RESET TIMEOUT TIMER AND EXIT
* 
HNXPT1    CHARNE HCETB,HNXPT2     IS CHARACTER AN ETB 
          STATE  HSCRCL,CRCEXIT   YES - CHANGE STATE TO DO-CRC
* 
HNXPT2    NOPR   CRCSTOREX   -    ACCUMULATE CRC, STORE CHARACTER 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS TRANSPARENT DATA                                            * 
*                                                                     * 
*         HSSTR1 - STORE THE DATA IN THE DESTINATION BUFFER UNTIL     * 
*                  A DLE CHARACTER IS FOUND                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HXPT1     CHARNE HCDLE,HXPT11     IS CHARACTER A DLE
          STATE  HSXPT2,EXIT -    YES - CHANGE TO STORE TRANS-2 
* 
HXPT11    NOPR   CRCSTOREX   -    ACCUMULATE CRC, STORE CHARACTER 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* PROCESS TRANSPARENT DATA CHARACTER PRECEDED BY A DLE                * 
*                                                                     * 
*         HSSTR2 - PREVIOUS CHARACTER WAS A DLE, STORE THIS ONE       * 
*                  UNLESS THE CHARACTER IS ETB OR SYNC                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HXPT2     CHARNE HCSYN,HXPT21     IS CHARACTER A SYNC 
          RSTIME HTHREE      -    YES - RESET TIME OUT TIMER
          STATE  HSXPT1,EXIT -          IGNORE SYNC, CONTINUE 
* 
HXPT21    CHARNE HCETB,HXPT22     IS CHARACTER AN ETB 
          STATE  HSCRCL,CRCEXIT   YES - CHANGE STATE TO DO-CRC
* 
HXPT22    STATE  HSXPT1,CRCSTOREX ACCUMULATE CRC,STORE CHARACTER
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* DO-CRC                                                              * 
*                                                                     * 
*         HSCRCL - PROCESS LEFT CRC                                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HCRCL     STATE  HSCRCR,CRCEXIT   SET FOR RIGHT CRC ,CRC AND EXIT 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSCRCR - PROCESS RIGHT CRC                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HCRCR     CRCEQ  B8,HCRCR1   -    CRC EQUAL 
          JUMP   HSERROR,RTN -    NO, ERROR 
* 
HCRCR1    TIBSWC HWKMSG      -    YES- WLE TO TIP 
*         JUMP   HSSWLE      -    SEND WLE TO OPS LEVEL TIP (FALL THRU) 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSSWLE - END OF INPUT, SEND WLE TO OPS LEVEL TIP            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HSWLE     RSTIME HTRESET     -    TURN OFF TIMER
          BLDWL  ,,,HWORK1   -    MAKE WLE WITH SAVED WORKCODE
          JUMP   HSIDLE      -    WAIT AT IDLE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSERROR - ERROR DETECTED DURING INPUT                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HERROR    STATLS HSNXPT,HERR1     NO BUFFER ASSIGNED, RESYNC AND RETRY
          STATLS HSIDLE,HERR2     ARE WE AT IDLE STATE
          JUMP   HSIDLE      -    YES - WL ALREADY PASSED, IGNORE 
* 
HERR1     RCHAR  0           -    MAKE INPUT CHAR NON-SYNC
          JUMP   HSSYNC      -    RESYNC LINE AND TRY INPUT AGAIN 
* 
HERR2     TIBSWC HWKERR      -    GIVE TIP AN ERROR WLE 
          JUMP   HSSWLE      -    TERMINATE INPUT 
          SPC    4
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         HSIDLE - ALL DONE, IGNORE ANY ARRIVING DATA                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
HIDLE     RESYNC EXIT        -    RESYNC CLA
          SPC    4
          END 
