*COMDECK  COMCRDC 
          CTEXT  COMCRDC - READ CODED LINE, -C- FORMAT. 
 RDC      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMCRDC
          BASE   D
*         COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
 RDC      SPACE  4
***       RDC - READ CODED LINE, -C- FORMAT.
*         G. R. MANSFIELD.  70/10/09. 
 RDC      SPACE  4
***              RDC READS 1 CODED LINE FROM A CIO BUFFER TO A
*         WORKING BUFFER. 
* 
*         ENTRY  (X2) = ADDRESS OF FET FOR FILE.
*                (B6) = FWA WORKING BUFFER. 
*                (B7) = WORD COUNT OF WORKING BUFFER. 
* 
*         EXIT   (X1) = 0 FOR TRANSFER COMPLETE.
*                (X1) = -1 IF EOF DETECTED ON FILE. 
*                (X1) = ADDRESS OF LAST WORD TRANSFERRED INTO WORKING 
*                            BUFFER IF EOR DETECTED ON FILE BEFORE
*                            TRANSFER WAS COMPLETED.
*                (B6) = ADDRESS OF LAST WORD TRANSFERRED TO WORKING 
*                            BUFFER.
*                (X2) = ADDRESS OF FET FOR FILE.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 2, 3, 4, 6, 7.
* 
*         CALLS  LCB=, RXT=.
  
  
 +        EQ     RDC1 
  
 RDC=     PS                 ENTRY/EXIT 
          SA4    *-1         SET RETURN ADDRESS 
  
          IF     -DEF,B1=1,1
          SB1    1
  
          SA1    X2+4        (B5) = LIMIT 
          SA3    X2+B1       (X3) = FIRST 
          SB7    B6+B7       (B7) = LWA+1 WORKING BUFFER
          MX4    -12         (X4) = BYTE MASK 
          SB5    X1 
  
*         INITIALIZE REGISTERS FOR TRANSFER.
  
 RDC1     SA1    A3+B1       (B3) = IN
          SA2    A1+B1       (B4) = OUT 
          SB3    X1 
          SB4    X2 
  
*         TRANSFER DATA FROM CIRCULAR BUFFER TO WORKING BUFFER. 
  
 RDC2     EQ     B4,B3,=XLCB= LOAD CIRCULAR BUFFER IF OUT = IN
          SA1    B4          READ WORD
          BX6    X1 
          SB4    B4+B1       (OUT+1)
          NE     B4,B5,RDC3  IF (OUT+1) " LIMIT 
          SB4    X3          (OUT+1) = FIRST
 RDC3     SA6    B6          STORE WORD 
          BX7    -X4*X6      CHECK LOWER BYTE 
          SB6    B6+B1       ADVANCE WORKING BUFFER 
          ZR     X7,=XRDX=   EXIT IF END OF LINE
          NE     B6,B7,RDC2  LOOP TO FILL WORKING BUFFER
          BX6    X4*X6       CLEAR LAST BYTE
          SA6    A6 
          EQ     =XRDX=      EXIT 
          SPACE  4
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 RDC=     EQU    /COMCRDC/RDC=
 QUAL$    ENDIF 
          ENDX
