COMPRNS 
COMMON
          CTEXT  COMPRNS - READ NEXT SECTOR.
 RNS      SPACE  4,10 
          IF     -DEF,QUAL$,1 
          QUAL   COMPRNS
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RNS      SPACE  4,10 
***       RNS - READ NEXT SECTOR. 
*         G. R. MANSFIELD.  70/08/30. 
 RNS      SPACE  4,25 
***              RNS READS THE NEXT SECTOR OF A FILE TO A PP BUFFER.
* 
*         IF *MSR$* IS DEFINED A CALL WILL BE MADE TO *MSR* ON A
*         MASS STORAGE ERROR.  IF IT IS POSSIBLE FOR *MSR* TO CORRECT 
*         THE ERROR, IT CAN RETURN TO *RNS* WHICH WILL UPDATE T1, T6, 
*         AND T7 AND RETURN TO ITS CALLER.  IF *MSR$* IS NOT DEFINED, 
*         (A) IS NEGATIVE ON EXIT AND T1, T6, AND T7 ARE NOT UPDATED. 
* 
*         ENTRY  (A) = 6/ FLAGS FOR DRIVER, 12/ PP BUFFER ADDRESS.
*                (T5) = EST ORDINAL.
*                (T6) = TRACK.
*                (T7) = SECTOR. 
* 
*         EXIT   (A) = (T1) = WORD COUNT OF SECTOR. 
*                (T3) = ADDRESS OF PP BUFFER. 
*                (T6 - T7) ADVANCED IF NO EOI.
*                (A) .LT. 0 IF MASS STORAGE ERROR AND *MSR$* NOT
*                            DEFINED. (A) = RESPONSE FROM DRIVER. 
* 
*         USES   T3.
* 
*         CALLS  RDS. 
  
  
 RNS2     LDD    T1          RETURN WITH (A) = WORD COUNT 
  
 RNS      SUBR               ENTRY/EXIT 
          STD    T3          SET BUFFER ADDRESS 
          RJM    RDS         READ SECTOR
 MSR$     IF     DEF,MSR$ 
          PJN    RNS0        IF NO ERROR
          RJM    MSR         PROCESS MASS STORAGE READ ERROR
 RNS0     BSS    0
 MSR$     ELSE
          MJN    RNSX        IF ERROR 
 MSR$     ENDIF 
          LDM    1,T3        SET SECTOR WORD COUNT
          STD    T1 
          LDI    T3          CHECK FIRST CONTROL BYTE 
          NJN    RNS1        IF NOT EOF 
          STD    T1          CLEAR WORD COUNT 
          LDM    1,T3        CHECK NEXT CONTROL BYTE
          ZJN    RNSX        RETURN IF EOI
 RNS1     STD    T7          SET NEXT SECTOR
          SHN    6
          PJN    RNS2        IF NOT NEW TRACK 
          SHN    -6          SET NEXT TRACK 
          STD    T6 
          LDN    0           CLEAR SECTOR 
          STD    T7 
          UJN    RNS2        RETURN WITH (A) = WORD COUNT 
          SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 RNS      EQU    /COMPRNS/RNS 
 QUAL$    ENDIF 
          ENDX
