*COMDECK SASTP
          NAM    SASTP
          NLS 
*CALL MUXMACROS 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         LOCALLY DEFINED EQUATES                                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* * *  WORK CODES FROM INPUT STATES TO PASCAL 
* 
          EQU    SASOHENQ(A0WK1)  $21 - SOH ENQ RECEIVED
          EQU    SAENQ(A0WK2)     $22   ENQ RUCEIVED
          EQU    SAACK0(A0WK3)    $23 - ACK0 RECEIVED 
          EQU    SAWACK(A0WK4)    $24 - WACK RECEIVED 
          EQU    SANAK(A0WK5)     $25   NAK RECEIVED
* 
* * *  EBCDIC CHARACTER CODES 
* 
          EQU    BCACK0($70) -    ACK0
          EQU    BCDLE($10)  -    DLE 
          EQU    BCNAK($3D)  -    NAK 
          EQU    BCWACK($6B) -    WACK
          EQU    BCSOH($01)  -    SOH 
          EQU    BCSYN($32)  -    SYNC
          EQU    BCSYNC(BCSYN)
          EQU    BCENQ($2D)  -    ENQ 
          EQU    BCGRAPHIC($40)   GRAPHICS START
* 
* * *  MISCELLANEOUS EQUATES
* 
          EQU    CCGRAPHICS($01)  LEADING GRAPHICS COUNT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         AUTO-RECOGNITION INPUT STATE PROGRAMS TABLE                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* * * MACRO TO DEFINE STATE PROGRAM TABLE 
* 
STTB      MAC    LB 
          EQU    SS"LB"(*-SASTP)
          ADC    SP"LB" 
          EMC 
  
          ENT    SASTP
SASTP     EQU    SASTP(*) 
  
          STTB   CLASTAT     -    CLA STATUS HANDLER
          STTB   DCDNOT      -    DCD DROPPED 
          STTB   OVERUN      -    TOO MANY BUFFERS USED 
          STTB   BUTHR       -    BUFFER THRESHOLD
          STTB   ENTRY       -    ENTRY - LOOK FOR SYNC 
          STTB   E010        -    RESYNC - TRY AGAIN
          STTB   0020        -    LOOK FOR SOH,DLE,ENQ
          STTB   0040        -    LOOK FOR WACK,ACK0 AFTER DLE
          STTB   0050        -    LOOK FOR ENQ AFTER SOH
          STTB   TERM        -    TERMINATE INPUT 
          STTB   IDLE        -    IDLE STATE
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SSENTRY - ENTRY STATE -- WAIT FOR SYNC                      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SPENTRY   CHARNE BCSYN,SPE010     SKIP IF NOT SYNC
          INTCC  CCGRAPHICS  -    INITIALIZE LEADING GRAPHICS CNTR
          STATE  SS0020,EXIT -    SET STATE TO LOOK FOR ENQ OR DLE
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SS0010 - RESYNC,TRY AGAIN                                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SPE010    RESYNC             -    RESYNC CLA
          STATE  SSENTRY,EXIT     SET STATE TO KEEP TRYING
  
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SS0020 - LOOK FOR SOH OR DLE OR ENQ OR NAK                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SP0020    CHARNE BCSYN,SP0022     SKIP IF NOT SYNC
          NOPR   EXIT        -    DISCARD SYNCS 
SP0022    CHARNE BCSOH,SP0024     SKIP IF NOT SOH 
          STATE  SS0050,EXIT -    LOOK FOR ENQ AFTER SOH
SP0024    CHARNE BCDLE,SP0026     SKIP IF NOT DLE 
          STATE  SS0040,EXIT -    SET STATE TO LOOK FOR WACK/ACK
SP0026    CHARNE BCENQ,SP0028     SKIP IF NOT ENQ 
          TIBSWC SAENQ       -    MAKE ENQ WLE
          JUMP   SSTERM      -    GO TERMINATE INPUT
SP0028    CHARNE BCNAK,SP0030     SKIP IF NOT NAK 
          TIBSWC SANAK       -    MAKE NAK WLE
          JUMP   SSTERM      -    GO TERMINATE INPUT
SP0030    CHARLS BCGRAPHICS,SP0032  SKIP IF NOT GRAPHICS CHARACTER
          DCC    CCGRAPHICS,SP0032,EXIT  DISCARD LEADING GRAPHICS 
*                                         UNTIL COUNT EXCEEDED
SP0032    JUMP   SSE010      -    GO RESYNC CLA AND TRY AGAIN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SS0040 - LOOK FOR WACK OR ACK FOLLOWING DLE                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SP0040    CHARNE BCWACK,SP0042    SKIP IF NOT WACK
          TIBSWC SAWACK      -    MAKE WACK WLE 
          JUMP   SSTERM      -    GO TERMINATE INPUT
SP0042    CHARNE BCACK0,SP0044    SKIP IF NOT ACK0
          TIBSWC SAACK0      -    MAKE ACK0 WLE 
          JUMP   SSTERM      -    GO TERMINATE INPUT
SP0044    JUMP   SSE010      -    GO RESYNC CLA AND TRY AGAIN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SS0050 - LOOK FOR ENQ AFTER SOH                             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SP0050    CHARNE BCSYN,SP0052     SKIP IF NOT SYNC
          NOPR   EXIT        -    DISCARD SYNCS 
SP0052    CHARNE BCENQ,SP0054     SKIP IF NOT ENQ 
          TIBSWC SASOHENQ    -    MAKE SOHENQ WLE 
          JUMP   SSTERM      -    GO TERMINATE INPUT
SP0054    JUMP   SSE010      -    GO RESYNC CLA AND TRY AGAIN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                                                                     * 
*         SSCLASTA - CLA STATUS RECEIVED (IGNORE IT)                  * 
*         SSDCDNOT - DCD DROPPED (IGNORE IT)                          * 
*         SSOVERUN - TOO MANY BUFFERS USED (IMPOSSIBLE)               * 
*         SSBUTHR - BUFFER THRESHOLD REACHED (IMPOSSIBLE)             * 
*                                                                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SPCLASTA  EQU    SPCLASTA(*)
SPDCDNOT  EQU    SPDCDNOT(*)
SPOVERUN  EQU    SPOVERUN(*)
SPBUTHR   NOPR   EXIT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SSTERM - TERMINATE INPUT                                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SPTERM    RSTIME 0           -    TURN OFF LINE TIMER 
          BLDWL  ,,,SAWLCB   -    BUILD WL ENTRY
          JUMP   SSIDLE      -    LEAVE INPUT STATES IDLE 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SSIDLE - IGNORE INPUT AND RESYNC CLA                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
SPIDLE    RESYNC EXIT        -    DO NOTHING
  
  
  
            ENT    SANAKM 
  
  
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         SYNC-AUTORECOGNITION CANNED MESSAGES                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* * * *  NAK MESSAGE
* 
SANAKM    NUM    $0B04       -     LCD,FCD
          NUM    $9900       -     BUFFER FLAG WORD 
          NUM    $3232       -     SYNC, SYNC 
          NUM    $3232       -     SYNC, SYNC 
          NUM    $3DFF       -     NAK,  PAD
          NUM    $FFFF       -     PAD,  PAD
          END 
