*DECK S$GNSMH 
          IDENT  S$GNSMH
          COMMENT GENERATE SUM CODE TO OBTAIN (SUB)FIELD (TRN)
  
*CALL LBLPTR
  
**        S$GNSMH- GENERATE SUM CODE TO OBTAIN (SUB)FIELD (TRN) 
* 
*     CALLING SEQUENCE- 
*         S$GNSMH(BITOFFSET, NBITS);
* 
*     GIVEN-
*         BITOFFSET = OFFSET WITHIN TRN ENTRY OF SUM (SUB)FIELD 
*         NBITS = LENGTH OF (SUB)FIELD WITHIN TRN 
* 
*     DOES- 
*         GENERATE CODE TO- 
*                SET X3 = (SUB)FIELD WITHIN LL TRN
*                SET X5 = (SUB)FIELD WITHIN CR TRN
* 
*     GENERATED CODE EXPECTS REGISTERS- 
*         SAME AS S$GNSMA WITHOUT X2. 
* 
  
          ENTRY  S$GNSMH
 S$GNSMH  SUBR
          SB1    1           CONSTANT 1 
  
*         OBTAIN PARAMETERS 
  
          SA4    X1          X4 = BITOFFSET 
  
          SA5    A1+1 
          SA5    X5          X5= NBITS
          IX4    X4+X5       X4 = BITOFFSET+NBITS 
  
*         SET UP MASK 
  
          GEN    (MX0 0),X5 
          GEN    (LX0 0),X5            (X5 = NBITS MASK, LOW) 
  
*         LL
  
          GEN    (BX3 X4) 
          GEN    (LX3 0),X4 
          GEN    (BX3 X0*X3)           (X3 = LL (SUB)FIELD, LOW)
          GEN    (BX7 X3) 
          GEN    (SA7 "SUMSVX3")
  
*         CR
  
          GEN    (BX5 X6) 
          GEN    (LX5 0),X4 
          GEN    (BX5 X0*X5)           (X5 = CR (SUB)FIELD, LOW)
          GEN    (BX7 X5) 
          GEN    (SA7 "SUMSVX5")
  
          EXIT
          END 
