*COMDECK COMFSSH
 COMFSSH  CTEXT              COMFSSH - SELECT SHIFT SUBSKEL.
  
**        **KLUGE** AT PRESENT THE QCG I. L. INPUT IS IN P2. FORMAT.
*         SO IN ORER TO ACHIEVE COMMONALITY WE SUBSTITUTE THE MICRO 
*         "TP" FOR TP IN THIS CODE. "TP" = P2 (QCG) OR TP (BRIDGE). 
*         TO FURTHER COMPLICATE THINGS SHORT CONSTANT VALUES RESIDE 
*         IN THE BIAS FIELD FOR THE BRIDGE AND THE TAG FIELD FOR QCG. 
*         WE DEFINE "BIAS" = TAG (QCG) OR BIAS (BRIDGE).
  
          SX6    =XV=SHIFV
          SA1    B5+OR.2OP
          BX7    X1 
          HX1    "TP".SHRT
          PL     X1,SUB.RET  IF NOT SHRT[TURP(3)] 
          =X3    1
          LX1    1+"TP".SHRTP-"TP"."BIAS"P
          SX1    X1          VAL = BIAS[TURP(3)]
          MI     X1,SSH1     IF VAL LT 0
          SX2    X1-100B
          PL     X2,SUB.RET  IF CON GT 77B
          SX6    =XV=SHLC    SELECT CONSTANT LEFT SHIFT 
          SA7    "GPBUF"
          EQ     SUB.RET
  
 SSH1     BX1    -X1
          SX2    X1-100B
          PL     X2,SUB.RET  IF VAL LT -77B 
          SX6    =XV=SHRC    SELECT CONSTANT RIGHT SHIFT
          MX3    1
          LX1    "TP"."BIAS"P 
          LX3    1+"TP".SHRTP 
          BX7    X1+X3
          SA7    "GPBUF"     GPBUF(1) = -VAL
          EQ     SUB.RET
          ENDX
