*COMDECK  CCLSSV
          TITLE  CCLSSV  -  SET SYMBOLIC VALUE
**        CCLSSV  -  SET SYMBOL TO VALUE
* 
*         CALLED BY THE SET VERB PROCESSOR
* 
*         ENTRY  X1  = LEFT JUSTIFIED NAME TO BE SET
*                X6  = VALUE
* 
*         EXIT   X5  = RETURN CODE, 1= VALUE SET, 0= NOT SET
* 
  
 CCLSSV   SUBR   =
  
*         SPECIAL CASE IF PS (PAGE SIZE) AND PL (PAGE LENGTH) 
*         SYMBOLS.  IN THIS CASE, IF THE VALUE FOR ONE SYMBOL 
*         IS STORED, THEN STORE THE VALUE FOR THE OTHER SYMBOL. 
* 
*         OTHERWISE, SEARCH TABLE AND STORE VALUES FOR THE OTHER
*         SYMBOLS.
  
          SA4    =0LPS
          BX0    X1-X4
          NZ     X0,SSV0.1   NOT PS SYMBOL
  
          SA2    SNVJPL      STORE PS VALUE IN PL 
          JP     SSV0.2      STORE PS VALUE 
  
 SSV0.1   BSS    0
          SA4    =0LPL
          BX0    X1-X4
          NZ     X0,SSV0.9   NOT A PL SYMBOL
  
          SA2    SNVJPS      STORE PL VALUE IN PS 
  
 SSV0.2   BSS    0
          BX4    X6 
          OX7    X2,X4,SNVVAL 
          SA7    A2 
  
 SSV0.9   BSS    0
          SA2    SNVT 
          MX0    N.SNVNAM 
          ERRNZ  59-S.SNVNAM
          SX5    B0          RETURN CODE= NOT SET 
 SSV1     BSS 
          BX7    X0*X2       EXTRACT NAME 
          BX4    X2 
          SA2    A2+B1       GET NEXT ENTRY 
          BX7    X1-X7
          ZR     X4,CCLSSV   EXIT IF END OF TABLE 
  
          NZ     X7,SSV1     CONTINUE IF NO MATCH 
  
          SB7    SNVSET 
          SB6    A2-B1
          MX0    -N.SNVVAL
          GE     B6,B7,CCLSSV   EXIT IF NOT SETABLE 
  
          BX2    -X0*X4      EXTRACT POSSIBLE OFFSET
          BX7    X0*X4       CLEAR OLD VALUE
          LX4    59-S.SNVOFF
          SX5    B1          RETURN CODE = SET
          NG     X4,SSV2     IF VALUE IS IN SNVWRD
  
          BX6    -X0*X6 
          BX6    X6+X7
          SA6    A2-B1       RESET ENTRY WITH NEW VALUE 
          JP     CCLSSV      EXIT 
  
 SSV2     BSS 
          SA6    SNVWRD+X2   STORE VALUE
          JP     CCLSSV      EXIT 
