*COMDECK  IORDL 
          TITLE  IORDL - READ LINE
**        IORDL  -  READ LINE 
* 
*         ENTRY  X2 = FIT ADDRESS 
*                X3 = LINE BUFFER ADDRESS 
*                X4 = NUMBER OF CHARACTERS TO READ
*                X6 = SCATTER BUFFER ADDRESS
*                     AND UNPACK INDICATOR, 0 --> DONT UNPACK 
* 
*         EXIT  X1 = DATA TRANSFER INDICATOR
*                    0 --> TRANSFER COMPLETE
*                    1 --> END OF DATA INDICATOR
* 
 RDLLN    FIELD  0,17,14     LEVEL NUMBER IN FET
  
 IORDL    SUBR   =
  
          BX7    X3 
          SA6    RDLSBA      STORE UNPACK INDICATOR 
          SA7    RDLLBA      STORE LINE BUFFER ADDRESS
          BX7    X2 
          BX6    X4 
          SA7    RDLADR      FIT/FET ADDRESS
          SA6    RDLNCH      STORE NUMBER OF CHARACTERS 
  
 OSSC2    IFEQ   HOST,SC2 
          GETP   X2,X3,X4,RDL10,,SKIP 
  
          FETCH  X2,PTL,X4,5,6,7
 OSSC2    ELSE
  
          READC  X2,X3,V.CCCW  READ A CODED LINE
  
*         OUTPUT - X1 = TRANSFER INDICATOR 0=COMPLETE,-1=EOF,-2=EOI 
*                       IF X1=B6=EOR
*                  B6 = ADDRESS+1 OF LAST WORD TRANSFERRED
  
          NZ     X1,RDL15    INDICATE END OF DATA EXIT
  
 OSNOS    IFEQ   HOST,NOS 
  
 RDL01    BSS 
          SA1    RDLLBA      BEGINNING LINE BUFFER ADDRESS
          SA5    NOSWRDS
          NG     X5,RDL02    DONT ADD WORDS UNLESS POSITIVE 
  
          SX6    B6          ADDR+1 OF LAST WORD TRANSFERRED
          IX6    X6-X1       WORDS TRANSFERRED
          IX6    X6+X5       NEW TOTAL WORDS READ 
          SA6    A5          RESTORE NOSWRDS
 RDL02    BSS 
  
 OSNOS    ENDIF 
  
          SA4    RDLNCH      CHARACTER COUNT
 OSSC2    ENDIF 
  
          SB2    X4          NUMBER OF CHARACTERS 
          SA1    RDLLBA      CONTAINS BUFFER ADDRESS
          SA1    X1          A1 = LINE BUFFER ADDRESS 
          SA2    RDLSBA      UNPACK INDICATOR 
          ZR     X2,RDL5     NO UNPACK REQUIRED 
  
          SA2    X2          SCATTER BUFFER ADDRESS 
          MX2    0
  
 OSNOSBE  IFNE   HOST,SC2 
          RJ     =XSTRFZB 
 OSNOSBE  ENDIF 
  
          RJ     =XSTRUPS    UNPACK STRING
  
 OSSC2    IFEQ   HOST,SC2 
          RJ     =XSTRDTC5   DELETE TRAILING BLANKS 
 OSSC2    ELSE
          RJ     =XSTRDTC    DELETE TRAILING CHARACTERS 
 OSSC2    ENDIF 
  
 RDL5     BSS 
          SX1    0           RETURN TRANSFER COMPLETE INDICATOR 
          JP     IORDL       EXIT 
  
  
 OSSC2    IFEQ   HOST,SC2 
 RDL10    BSSZ   1           END OF DATA ROUTINE
          SX1    1           RETURN END OF DATA 
          JP     IORDL       EXIT 
  
 OSSC2    ELSE
  
 RDL15    BSS 
 OSNOS    IFEQ   HOST,NOS 
          NG     X1,RDL20    EOF OR EOI STATUS INDICATED
  
*         CHECK FOR LEVEL 1 EOR - INDICATES TERMINAL INPUT OF PROCEDURE 
  
          SA1    X2          READ WORD 0 OF FET 
          EX5    X1,RDLLN    LEVEL NUMBER 
          SX1    B1          =1 
          IX5    X1-X5
          ZR     X5,RDL01    IGNORE LEVEL 1 EOR - TERMINAL INPUT LINE 
  
 RDL20    BSS 
 OSNOS    ENDIF 
          SX1    1           INDICATE END OF DATA ENCOUNTERED 
          JP     IORDL       EXIT 
  
 OSSC2    ENDIF 
  
  
 RDLSBA   BSSZ   1           LOCATION FOR UNPACK INDICATOR
 RDLLBA   BSSZ   1           LOCATION FOR LINE BUFFER ADDRESS 
 RDLNCH   BSSZ   1           LOCATION FOR NUMBER OF CHARACTERS
 RDLADR   BSSZ   1           LOCATION FOR FIT/FET ADDRESS 
  
