*DECK BINTOOD 
          IDENT  BINTOOD
          SST 
          ENTRY  BINTOOD
  
**        BINTOOD - CONVERT BINARY CONSTANT TO OCTAL DISPLAY CODE.
* 
*         THIS ROUTINE CALLS COD TO CONVERT A BINARY CONSTANT TO OCTAL
*         DISPLAY CODE. THIS INTERFACE TO COD IS SPECIALLY DESIGNED FOR 
*         USE BY SYMPL ROUTINES.  BINTOOD IS A FUNCTION THAT SHOULD BE
*         DECLARED IN SYMPL PROGRAMS AS:  
* 
*         XREF
*           BEGIN 
*           FUNC BINTOOD C(10); 
*           END 
* 
*         SYMPL FUNC REFERENCE FOR THIS PROGRAM:  
* 
*         BINTOOD(NUMBER,DIGITS); 
* 
*         ENTRY  A1 CONTAINS ADDRESS OF PARAMETER LIST
*                  NUMBER - RIGHT JUSTIFIED BINARY CONSTANT TO CONVERT. 
*                  DIGITS - LENGTH IN CHARACTERS OF RESULT FIELD. 
*                    MUST BE LESS THAN OR EQUAL TO 10.
* 
*         EXIT   X6 CONTAINS FUNCTION RESULT. 
*                THE FUNCTION RESULT IS A DISPLAY CODE FIELD OF LENGTH
*                "DIGITS" LEFT JUSTIFIED, BLANK FILLED IN X6 WITH 
*                LEADING ZERO SUPPRESSION.
* 
*         PROCESS - COD IS CALLED TO DO THE CONVERSION. 
* 
  
  
  
  
 BINTOOD  SUBR
          SA0    A1                SAVE PARM LIST ADDR
          SA1    X1                MOVE BINARY CONSTANT TO X1 
          SB1    1
          RJ     =XCOD
          SA2    A0+1 
          SA3    X2                X3 = DIGITS
          LX4    X3,B1             X4 = 2*DIGITS
          IX3    X3+X4             X3 = 3*DIGITS
          LX4    X3,B1             X4 = 6*DIGITS
          SB2    X4-60             B2 = -(60 - 6*DIGITS)
          SB3    -B2               B3 = 60 - 6*DIGITS 
          LX6    B3 
          EQ     BINTOODX          RETURN 
 COD      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMCCOD
          BASE   D
*         COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
 COD      SPACE  4
***       COD - CONSTANT TO OCTAL DISPLAY CODE CONVERSION.
*         G. R. MANSFIELD.  70/12/18. 
*         ADAPTED FROM SUBROUTINE *COD* IN *LIBEDIT*. 
 COD      SPACE  4
***              COD CONVERTS UP TO 10 DIGITS TO DISPLAY CODE WITH
*         LEADING ZERO SUPPRESSION.  CONVERSION CONTAINS SPACE FILL 
*         AND IS RIGHT AND LEFT JUSTIFIED.
* 
*         ENTRY  (X1) = NUMBER TO BE CONVERTED. 
*                (B1) = 1.
* 
*         EXIT   (X6) = DPC CONVERSION RIGHT JUSTIFIED. 
*                (X4) = DPC CONVERSION LEFT JUSTIFIED.
*                (B2) = 6*COUNT OF DIGITS CONVERTED.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                B - 2, 3, 4. 
*                A - 2. 
* 
*         CALLS  NONE.
  
  
 COD      PS                 ENTRY/EXIT 
          SA4    CODA        =1H
          SB3    6           (B3) = SHIFT INCREMENT 
          MX2    -3          (X2) = DIGIT MASK
          SB2    B0          CLEAR JUSTIFY COUNT
          SB4    1R0-1R      (B4) = CONVERSION COUNT
 COD1     BX7    -X2*X1      EXTRACT DIGIT
          LX4    -6          SHIFT ASSEMBLY 
          SB2    B2+B3
          SX3    X7+B4       CONVERT DIGIT
          AX1    3           SHIFT OFF DIGIT
          IX4    X4+X3       ADD DIGIT TO ASSEMBLY
          NZ     X1,COD1     LOOP TO ZERO DIGIT 
          LX4    -6          LEFT JUSTIFY ASSEMBLY
          LX6    X4,B2       RIGHT JUSTIFY ASSEMBLY 
          EQ     COD         RETURN 
  
 CODA     CON    1H 
          SPACE  4
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 COD      EQU    /COMCCOD/COD 
 QUAL$    ENDIF 
          END 
