*COMDECK COMFRNC
 COMFRNC  CTEXT  COMFRNC - READ NEXT CARD.
 RNC      SPACE  4,8
          IF     -DEF,QUAL$,1 
          QUAL   COMFRNC
 RNC      SPACE  4,8
**        RNC - READ NEXT CARD. 
* 
* 
*                READS A SINGLE SOURCE LINE FROM THE INPUT BUFFER *F.IN*
*         TO THE SOURCE LINE IMAGE AREA *CP.CARD*.  ALSO GUARANTEES 
*         THAT, ON EXIT, THE EOL MARK IS ON A WORD BOUNDARY BY
*         APPROPRIATELY BLANK FILLING THE LAST WORD OF THE LINE IMAGE 
*         AND STORING A FULL ZERO WORD EOL MARK AFTER IT. 
* 
*         ENTRY  (B1)     =  1
*                CIO ONLY - INITIAL *READ* ISSUED 
*                RM  ONLY - FILE TABLES INITIALIZED 
*                (CP.IFMT)=  +0 IF NORMAL UNCOMPRESSED INPUT
*                         =   1 IF MODIFY COMPRESSED INPUT (UNSUPPORTED)
*                         =   2 IF UPDATE COMPRESSED INPUT (UNSUPPORTED)
* 
*         EXIT   (B1)     =  1
*                (B4)     =  FWA OF SOURCE LINE IMAGE, *CP.CARD*
*                (B5)     =  1
*                (B6)     =  LWA OF SOURCE LINE IMAGE,
*                              I.E. (B6) POINTS TO FULL WORD EOL MARK 
*                (B7)     =  NR OF USEABLE WORDS IN LINE IMAGE, 
*                              I.E. DOES NOT INCLUDE FULL WORD EOL MARK 
*                (X1)     =  .NZ. IF EOR/EOF/EOI ENCOUNTERED, ELSE .ZR. 
*                (CP.CARD) = .ZR. IF EOR/EOF/EOI ENCOUNTERED, ELSE 1ST
*                              WORD OF SOURCE LINE IMAGE
*                (L.CARD) =  NR OF WORDS IN SOURCE LINE IMAGE 
*                              I.E. INCLUDES FULL ZERO WORD EOL MARK
*                (X7)     =  (L.CARD) = (B7)+1
* 
*         USES   ALL BUT A0,X0,A5,X5  (INCLUDES ALL CALLS)
* 
*         CALLS  READC
  
  
 RNC      SUBR               ** ENTRY/EXIT ** 
          SA1    =XCARDS
          SA2    =XCP.IFMT
          SX6    X1+B1
          SA6    A1          UPDATE LINE COUNT
          NZ     X2,*+4S15   IF COMPRESSED INPUT (UPDATE OR MODIFY) 
          READC  =XF.IN,=XCP.CARD,16
          SB4    CP.CARD
          SA2    B6-B1       (A2,X2) = A+C OF LAST WORD OF LINE IMAGE 
          SB7    B0 
          NZ     X1,RNC5     IF EOR/EOF/EOI ENCOUNTERED 
  
*         CHECK FOR AND PROCESS FULL WORD OR 11 CHARACTER EOL MARK. 
  
          NZ     X2,RNC2     IF NOT A FULL WORD EOL MARK
          SA2    A2-B1
          MX3    -CHAR
          SB6    B6-B1
          BX4    -X3*X2      EXTRACT LAST CHARACTER 
          NZ     X4,RNC3     IF NOT 11 CHAR EOL MARK
          SX6    1R 
          IX7    X2+X6
          SA7    A2 
          EQ     RNC3 
  
*         PROCESS 2 THRU 8 CHARACTER (12 THRU 48 BIT) EOL MARK, 
*           BLANK FILL LAST WORD OF SOURCE LINE IMAGE.
  
 RNC2     MX7    -1 
          IX4    X2+X7       BORROW RIPPLES LEFT TO 1ST NON-ZERO BIT
          SA3    =40404040404040404040B 
          BX4    -X2*X4      (X4) = ALL TRAILING 0 BITS IN (X2) = 1 BITS
          SB5    60-5        (B5) = RIGHT CIRCULAR SHIFT 5 BITS 
          BX4    X3*X4       (X4) = 40B WHERE TRAILING 00B WERE 
          LX6    X4,B5       (X6) = 01B WHERE TRAILING 00B WERE 
          IX7    X4-X6       (X7) = 37B WHERE TRAILING 00B WERE 
          SA3    =10H 
          BX4    X4+X7       (X4) = 77B WHERE TRAILING 00B WERE 
          BX6    X4*X3       (X6) = 55B WHERE TRAILING 00B WERE 
          IX7    X2+X6       TRAILING 00B BECOMES TRAILING 55B
          SA7    A2 
  
*         CHECK FOR (AND TRUNCATE) LONG LINE (.GT. *L.MAXCD* WORDS).
  
 RNC3     SA2    B4          (A2,X2) = A+C OF 1ST WORD OF SOURCE LINE 
          SB7    B6-B4       (B7) = NR OF USEABLE WORDS IN SOURCE LINE
          SB5    =XL.MAXCD-1
          LE     B7,B5,RNC4  IF LINE LENGTH OK
          SB7    B5          SET TO *MAX NR OF WDS IN LINE IS /L.MAXCD/*
          SB6    B4+B5
  
*         CHECK FOR AND PROCESS FALSE EOR/EOF (TELEX BLANK LINE ONLY).
  
 RNC4     NZ     X2,RNC5     IF NO FALSE EOR/EOF
          SA3    =10H 
          SB6    B4+B1
          SB7    B1          (B7) = NR OF USEABLE WORDS = 1 
          BX6    X3 
          SA6    B4 
  
*         FINAL PROCESSING AND EXIT.
  
 RNC5     BX6    X6-X6
          SX7    B7+B1       (X7) = NR OF WORDS IN SOURCE LINE IMAGE
          SA6    B6          MARK FULL WORD EOL 
          SB5    B1 
          SA7    =XL.CARD 
          EQ     EXIT.
 RNC      SPACE  4,8
          IF     -DEF,QUAL$,2 
          QUAL   *
 RNC      =      /COMFRNC/RNC 
          ENDX
