*COMDECK FA=RDH 
          CTEXT  FA=RDH - READ CODED LINE, -H- FORMAT 
 RDH      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   FA=RDH 
  
  
**        FA=RDH - READ ONE CODED LINE FROM FILE, IN -H- FORMAT 
* 
* 
*         ENTRY  (X2) = PSEUDO-FET WORD 1.
*                (A2) = PSEUDO-FET ADDRESS. 
*                (B6) = WSA ADDRESS.
*                (B7) = WSA LENGTH (WORDS). 
* 
*         EXIT   (X1) = 0 FOR TRANSFER COMPLETE.
*                (X1) = -1 IF EOP/EOI DETECTED ON FILE. 
*                (X1) = (B6) IF EOS DETECTED ON FILE BEFORE TRANSFER
*                            WAS COMPLETED. 
*                (X2) = ADDRESS OF FIT FOR FILE.
*                (B1) = 1 
*                (B6) = ADDRESS PLUS ONE OF LAST WORD TRANSFERRED TO
*                            WORKING STORAGE AREA.
* 
*         USES   X -
*                A -
*                B -
* 
*         CALLS 
  
  
 FA=RDHA  BSS    1           STORAGE FOR (X5) 
 FA=RDHB  BSS    1           STORAGE FOR (A5) 
 FA=RDH   JP     *+4S15      ** ENTRY/EXIT ** 
  
          IF     -DEF,B1=1,1
          SB1    1
  
          IFNE   TEST,0,1 
          LE     B7,B0,*+4S15      IF LENGTH ERROR, ABORT JOB 
  
          SX3    B6          (X3) = WSA ADDRESS 
          SX4    B7          (X4) = WSA LENGTH
          GETW   X2,X3,X4,RDH2
          SB6    B6+X4       (B6) = LWA+1 OF TRANSFER 
          SB3    X4          NO WORDS READ
          MX1    0           *TRANSFER COMPLETE* STATUS 
          SX7    X4-9 
          PL     X7,FA=RDH   IF CARD GR 80 CHARS DON"T HAVE TO PAD
          AX4    18D         (X4) = UNUSED BIT COUNT
          SA3    B6-B1       LAST WORD OF LINE
          MX6    1
          SB2    X4-59D 
          MX7    0
          AX4    X6,-B2 
          SA5    =10H 
          BX6    X4*X3       MASK OFF UNUSED BITS 
          BX7    -X4*X5 
          IX6    X6+X7       APPEND BLANKS TO LAST WORD 
          SA6    A3 
          SB5    9
          SB5    B5-B3       NO WORDS TO BLANK FILL 
          BX7    X5 
          SB6    B6+B5       (B6) = LWA + 1 OF TRANSFER 
 AA       EQ     B5,FA=RDH   NO MORE WORDS TO BLANK FILL
          SA7    A3+B5
          SB5    B5-B1
          EQ     AA 
  
*         HERE IF END-OF-DATA ENCOUNTERED.
  
 RDH2     JP     *+4S15 
  
************************************************************************
*         NOTE THIS CRAPPY KLUDGE IS NECESSARY UNTIL 7RM FETCH IS FIXED 
*         TO OBSERVE THE F PARAMETER WHICH SPECIFIES WHICH REGISTER TO
*         USE AS THE FIT LOAD REGISTER.  IT SHOULD BE REMOVED AS SOON AS
*         SOMEONE NOTICES  THE CORRECT CODE IS BEING GENERATED.  THAT IS
*         THE FETCH DOES NOT GENERATE A SA5 INSTRUCTION 
  
          BX6    X5 
          SA6    FA=RDHA     SAVE (X5)
          SX6    A5 
          SA6    FA=RDHB     SAVE (A5)
  
          FETCH  X2,FP,X3,1 
  
          SA1    FA=RDHB
          SA5    X1          RESTORE (A5) 
          SA1    FA=RDHA
          BX5    X1          RESTORE (X5) 
  
*         END OF KLUDGE 
************************************************************************
  
          SX3    X3-#EOS# 
          SB6    B6+X4       (B6) = LWA+1 OF TRANSFER 
          SX1    B6          TO RETURN *EOS* STATUS 
          ZR     X3,FA=RDH   IF EOS, EXIT 
          MX1    -1          RETURN EOP/EOI STATUS
          JP     FA=RDH      EXIT 
  
  
          IF     -DEF,QUAL$,2 
          QUAL   *
 FA=RDH   EQU    /FA=RDH/FA=RDH 
          ENDX
