COMCRSB 
COMMON
          CTEXT  COMCRSB - READ SUBSYSTEM BLOCK.
          SPACE  4,10 
          IF     -DEF,QUAL$,1 
          QUAL   COMCRSB
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RSB      SPACE  4,10 
***       COMCRSB - READ SUBSYSTEM BLOCK. 
*         D. K. ELDRED.      83/02/01.
 RSB      SPACE  4,10 
***       *COMCRSB* CONTAINS CODE TO REMOVE THE WORD COUNT RESTRICTIONS 
*         OF THE *RSB* MONITOR CALL.  IT INTERNALLY BREAKS UP LARGE 
*         TRANSFERS INTO SMALLER BLOCKS.
 RSB=     SPACE  4,20 
***       RSB= - READ SUBSYSTEM BLOCK.
* 
*         ENTRY  (X1) = BUFFER TO TRANSFER DATA TO. 
*                (X2) = SUBSYSTEM ADDRESS TO TRANSFER DATA FROM.
*                (X3) = WORD COUNT. 
*                (X4) = SUBSYSTEM IDENTIFICATION. 
*                ((X1)) = *RSB* REQUEST TYPE, TO BE INSERTED AS NEEDED. 
* 
*         EXIT   (X1) .LT. 0 IF TRANSFER COMPLETED WITHOUT ERROR. 
* 
*         NOTE   BECAUSE IT STORES INTO THE BUFFER, *COMCRSB* SHOULD BE 
*                USED WITH CAUTION IF THE *SELECTIVE* (LIST) OPTION OF
*                *RSB* IS UTILIZED. 
* 
*         USES   X - 1, 2, 3, 6, 7. 
*                A - 1, 2, 6, 7.
* 
*         MACROS SYSTEM.
  
  
 RSB=     SUBR               ENTRY/EXIT 
          SX6    100B        SET INITIAL WORD COUNT 
          LX6    18 
          BX7    X6+X2       CONSTRUCT *RSB* PARAMETER
          LX7    18 
          SA2    X1          SAVE *RSB* REQUEST TYPE DATA 
          IX7    X7+X1
          BX6    X2 
          SA7    RSBA 
          SA6    RSBB 
 RSB1     ZR     X3,RSB=     IF ALL WORDS TRANSFERED
          SX3    X3-100B
          PL     X3,RSB2     IF FULL 100B WORD BLOCK AVAILABLE
          LX3    36          POSITION WORD COUNT
          IX7    X7+X3       SET WORDS REMAINING
          SX3    B0+
          SA7    A7+
 RSB2     SA2    RSBB        INSERT *RSB* REQUEST TYPE DATA INTO BUFFER 
          BX6    X2 
          SA6    X7 
          SYSTEM RSB,R,A7,X4 TRANSFER DATA FROM SUBSYSTEM TO BUFFER 
          SA1    A7+
          PL     X1,RSB=     IF ERROR DETECTED
          SA1    RSBC        INCREMENT ADDRESSES
          SA2    RSBB 
          IX7    X7+X1
          IX6    X2+X1
          SA7    A7 
          SA6    A2 
          SX1    -1          RESET NO ERROR 
          EQ     RSB1        PROCESS NEXT BLOCK 
  
 RSBA     BSS    1           *RSB* PARAMETER WORD 
 RSBB     BSS    1           FIRST WORD OF NEXT BUFFER
 RSBC     VFD    24/,18/100B,18/100B   INCREMENT
 RSB      SPACE  4,10 
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 RSB=     EQU    /COMCRSB/RSB=
 QUAL$    ENDIF 
          ENDX
