*COMDECK CKININF
          EJECT 
**        CKININF - CHECK INDEFINITE OR INFINITE. 
* 
*              THIS ROUTINE CHECKS THE FIRST TWO (2) ARGUMENST FOR
*         INDEFINITE OR INFINITE AND RETURNS 0, 1, OR 2 IN THE THIRD
*         ARGUMENT.  (I.E., THE THIRD ARGUMENT IS RETURNED = 0 IF 
*         NO ERRORS.) 
  
  
          ENTRY  CKININF
 CKININF  JP     *+1S17      ENTRY / EXIT 
          SB1    1
          SA2    A1+B1
          MX6    0           (X6) = ERROR COUNT 
          SA1    X1          (X1) = 1ST ARGUMENT
          SA3    A2+B1       (B7) = ADDRESS OF 3RD ARGUMENT 
          SA2    X2          (X2) = 2ND ARGUMENT
          SB7    X3 
          MX4    60-10       (X4) = 50/10 MASK
  
*         CHECK 1ST ARGUMENT, COMMENT FIELD SHOWS ALL POSSIBLE VALUES 
*         FOR THE ILLEGAL CASES; ANYTHING ELSE WILL NOT YIELD ZERO
*         AT THE END. 
  
          AX1    48          00000000000000001777, 77777777777777776000 
                             00000000000000003777, 77777777777777774000 
          BX7    X1 
          AX7    11          +0, -0 
          BX3    X7-X1       00000000000000001777, 00000000000000003777 
          BX3    -X4*X3      00000000000000001777 
          BX7    -X4-X3      00000000000000000000 
          NZ     X7,CKININF1  IF 1ST OK 
          SX6    X6+B1       BUMP ERROR COUNT 
  
*         CHECK 2ND ARGUMENT. 
  
 CKININF1 AX2    48 
          BX7    X2 
          AX7    11 
          BX3    X7-X2
          BX3    -X4*X3 
          BX7    -X4-X3 
          SA1    ERRININF    (A1) = ADR OF *DIAG* CALLING SEQUENCE
          NZ     X7,CKININF2 IF 2ND OK
          SX6    X6+B1       BUMP ERROR COUNT 
  
*         STORE ERROR COUNT IN 3RD ARGUMENT.
  
 CKININF2 SA6    B7          STORE ERROR COUNT
          ZR     X6,CKININF  IF BOTH ARGS OK
          RJ     =XDIAG      ISSUE DIAGNOSTIC 
          EQ     CKININF     RETURN 
  
 ERRININF VFD    42/0,18/DIAG357
 DIAG357  CON    357         CODE FOR INDEFINITE OR INFINITE OPERAND
*      ******           END OF COMMON DECK CKININF      ***** 
