COMPRSS 
COMMON
          CTEXT  COMPRSS - READ SYSTEM SECTOR.
 COMPRSS  SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   COMPRSS
 QUAL$    ENDIF 
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RSS      SPACE  4
***       RSS - READ SYSTEM SECTOR. 
*         G. R. MANSFIELD.  70/11/24. 
 RSS      SPACE  4
***              RSS IS USED TO READ AND VERIFY THE SYSTEM SECTOR FOR 
*         A FILE. 
* 
*         IF *RIS$* IS DEFINED, THE EXISTING VALUE OF *T7* IS USED
*         AS THE SECTOR NUMBER.  OTHERWISE, T7 IS SET TO ZERO.
* 
*         AFTER THE SECTOR IS READ, THE DISK IS POSITIONED TO 
*         THE FIRST DATA SECTOR OF THE FILE.  IF RIS$ IS DEFINED, 
*         THIS SECTOR IS IDENTIFIED BY THE NEXT SECTOR/TRACK
*         POINTER FOUND IN *NSSS*.
* 
*         ENTRY  (A) = ADDRESS OF FILE NAME FOR VERIFY. 
*                IF (A) = 0, NO FILE NAME VERIFY WILL BE MADE.
*                (T5) = EST ORDINAL.
*                (T6) = FIRST TRACK.
*                (T7) = FIRST SECTOR (IF *RIS$* DEFINED). 
* 
*         EXIT   (A) .LT. 0, IF READ ERROR. (A)= RESPONSE FROM DRIVER.
*                (A) = 0, IF READ SUCCESSFUL AND ALL DATA VERIFIES. 
*                    = 1, IF ERROR IN *NSSS* (AND RIS$ DEFINED).
*                    = 2, IF ERROR IN LINKAGE BYTES.
*                    = 3, IF ERROR IN FILE NAME.
*                (T7) = FIRST DATA SECTOR.
*                (T6) = TRACK FOR FIRST DATA SECTOR.
*                DISK POSITIONED TO DATA SECTOR IF NO ERROR.
*                *ENDMS* PERFORMED IF ERROR.
* 
*         USES   T1, T3, T6, T7.
* 
*         CALLS  RDS. 
* 
*         MACROS ENDMS. 
  
  
 RSS8     ENDMS 
          LDN    2
  
 RSS      SUBR               ENTRY/EXIT 
          STD    T3          SET ADDRESS OF NAME
  
 RIS$     IF     -DEF,RIS$
  
*         SET SECTOR ADDRESS. 
  
          LDN    0           SET FIRST SECTOR 
          STD    T7 
 RIS$     ENDIF 
  
*         READ SECTOR.
  
          LDC    BFMS        READ SECTOR
          RJM    RDS
          MJN    RSSX        IF READ ERROR
  
*         CHECK CONTROL INFORMATION.
  
          AOD    T7 
          ERRNZ  FSMS-1      CODE DEPENDS ON *FSMS* = 1 
          LDM    BFMS 
          LMC    3777 
          NJN    RSS8        IF ERROR IN FIRST LINKAGE BYTE 
          LDM    BFMS+1 
          LMN    77 
          NJN    RSS8        IF ERROR IN SECOND LINKAGE BYTE
          LDM    FTSS        CHECK TRACK
          LMD    T6 
          NJN    RSS8        IF ERROR IN TRACK
          STD    T1 
          LDD    T3 
          ZJN    RSS4        IF NO FILE NAME VERIFY 
  
*         VERIFY FILE NAME. 
  
 RSS2     LDM    FNSS,T1
          LMI    T3 
          NJN    RSS3        IF FILE NAME ERROR 
          AOD    T3 
          AOD    T1 
          LMN    3
          NJN    RSS2        IF NOT END OF NAME 
          LDM    FNSS+3 
          LMI    T3 
          SCN    77 
          ZJN    RSS4        IF NO ERROR IN NAME
 RSS3     ENDMS              END MASS STORAGE OPERATION 
          LDN    3
 RIS$     IF     -DEF,RIS$
 RSS4     LJM    RSSX        RETURN 
  
 RIS$     ELSE
          UJN    RSS7        RETURN 
  
 RSS4     LDD    T7          CHECK FOR NEW TRACK
          LMM    SLM
          NJN    RSS5        IF NOT END OF TRACK
          STD    T7          RESET SECTOR 
          LDM    NSSS        RESET TRACK
          STD    T6 
          SHN    -13
          LMN    1
          UJN    RSS6        RETURN 
  
 RSS5     LDM    NSSS        CHECK FOR CORRECT SECTOR 
          LMD    T7 
 RSS6     ZJN    RSS7        IF NO ERROR
          ENDMS 
          LDN    1
 RSS7     LJM    RSSX        RETURN 
 RIS$     ENDIF 
          SPACE  4
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 RSS      EQU    /COMPRSS/RSS 
 QUAL$    ENDIF 
          ENDX
