         SYSTEM   SIG9P                                                         
         SYSTEM   OPTIONS                                                       
         DEF      A:SDBUF                                                       
         DEF      OUTSDBUF,INSDBUF                                              
*   EXIT POINTS                                                                 
         DEF      SDBUFX3                                                       
         DO1      #SIDEBUF                                                      
         DEF      SDBUFX7,SDBUFX8                                               
         PSYS     0                                                             
OLAYFLAG EQU      'SDBF'                                                        
         SYSTEM   CPRMON                                                        
A:SDBUF  RES      0                                                             
SDBUFX3  B        GETNRT                                                        
         TITLE    'OUTPUT SIDE BUFFERING FOR UNIT RECORD PERIPHERALS'           
         DO       #SIDEBUF                                                      
* R2     DCB ADDRESS                R3       FPT ADDRESS                        
* R4     FUNCTION CODE              R7       DCT INDEX                          
* R10    BUFFER ADDRESS             R11      BYTE COUNT                         
* R13    PRIORITY                                                               
* R1     PRESERVED                                                              
*                                       RULES                                   
* * * * * * * * * * * * * * * * * * * * * * * * * *                             
*        CONDITIONS                 * 1 2 3 4 5 6 *                             
* * * * * * * * * * * * * * * * * * * * * * * * * *                             
* IS THIS A WAIT REQUEST            * N Y Y Y Y Y *                             
* IS END-ACTION VALID               * - N Y Y Y Y *                             
* IS THIS THE FIRST PASS ON TABLE   * - - Y N N N *                             
* IS BUFFER FREE  (TYC > 0)         * - - - N Y Y *                             
* IS THERE AN AVAILABLE QUEUE ENTRY * - - - - N Y *                             
* * * * * * * * * * * * * * * * * * * * * * * * * *                             
*        ACTIONS                    * 1 2 3 4 5 6 *                             
* * * * * * * * * * * * * * * * * * * * * * * * * *                             
* CLEAR TYC IN POST WORD            * - - - - - 1 *                             
* MOVE DATA TO SIDE BUFFER          * - - - - - 2 *                             
* CHANGE BYTE ADDRESS TO SIDE BUFFER* - - - - - 3 *                             
* SET UP AND CALL QUEUE             * - - - - - 4 *                             
* ENABLE  (RELEASE ALL INHIBITS)    * - - - - - 5 *                             
* SET ARS TO BYTE COUNT SUPPLIED    * - - - - - 6 *                             
* SET TYC TO OK   (1)               * - - - - - 7 *                             
* POST FPT OR DCB                   * - - - - - 8 *                             
* DO END-ACTION IF ANY              * - - - - - 9 *                             
* GO TO CHECKA                      * - - - - - A *                             
* ENABLE  (RELEASE ALL INHIBITS)    * - - 1 1 - - *                             
* CALL SERVICE DEVICE               * - - 2 2 - - *                             
* DISABLE (SET ALL INHIBITS)        * - - 3 3 - - *                             
* REPEAT THIS TABLE                 * - - 4 4 - - *                             
* ENABLE  (RELEASE ALL INHIBITS)    * - - - - 1 - *                             
* GO TO GETNRT    (SDBUFX3)         * 1 - - - 2 - *                             
* GO TO TRAPX     (SDBUFX8)         * - 1 - - - - *                             
* * * * * * * * * * * * * * * * * * * * * * * * * *                             
         PAGE                                                                   
*                                                                               
OUTSDBUF EQU      %                 ENTRY                                       
         CH,R7    DCT1              TRUE DEVICE                                 
         BG       SDBUFX3           NO                                          
         LB,R5    TCBPOINT                                                      
         LB,R5    STILMID,R5        R5= LM I.D.                                 
         CI,R5    CTLMID            IS IT THE CONTROL TASK                      
         BE       OSB05             SIDE BUFFER CONTROL TASK                    
         BIFFGD   SDBUFX3           DONT SIDE BUFFER OTHER FGD                  
         DO       #SYMB                                                         
         LB,R8    DCTSYM1,R7        GET SYMBIONT FLAGS                          
         CI,R8    DCTSYMSM          IS THIS A SYMBIONT DED DEVICE               
         BANZ     SDBUFX3           YES, DON'T SIDE BUFFER                      
         FIN      #SYMB                                                         
OSB05    RES      0                 YES, SIDE BUFFER                            
         LB,R8    DCT3,R7           GET FLAGS                                   
         CI,R8    BIT2**-24         IS DEVICE DOWN                              
         BANZ     SDBUFX3           YES, DONT SIDE BUFFER                       
*                                   NO, ITS BACKGROUND OR CONTROL TASK          
         DO       #PAX                                                          
         LW,R8    DCTMOD,R7         GET MODEL NUMBER                            
         CW,R8    MDL2310           IS IT THE PES PRINTER                       
         BE       SDBUFX3           YES, DONT SIDE BUFFER                       
         FIN      #PAX              NO                                          
*                                                                               
         LW,R8    1,R3              TEST FOR WAIT BIT IN FPT                    
         CI,R8    BIT27                                                         
         BAZ      SDBUFX3           NO WAIT, EXIT TO GETNRT                     
*                                   WAIT                                        
         CI,R0    F1                IS IT A DIAGNOSTIC WRITE                    
         BANZ     SDBUFX3           YES, DONT SIDEBUF                           
*                                                                               
         LW,R0    K:JCP1            IS THIS AN INIT REQUEST                     
         CI,R0    X'10'                                                         
         BANZ     SDBUFX3           YES, DONT SIDE BUFFER                       
*                                                                               
         LW,R8    R4                IS END ACTION VALID                         
         LI,R15   9                                                             
         BAL,R4   CKENACT                                                       
SDBUFX8  B        TRAPX             NO, EXIT TO TRAPX                           
         LW,R4    R8                                                            
* END-ACTION CONTROL WORD (IF ANY) IS IN R15 NOW                                
OSB10    ENABLE                                                                 
         PUSH     15,R1             CALL SERVICE DEVICE                         
         LW,R1    R7                                                            
         STB,R13  R1                                                            
         BAL,R2   SERDEV                                                        
         PULL     15,R1                                                         
         DISABLE                                                                
*                                                                               
         LW,R5    DCTSDBUF,R7       IS SIDE BUFFER FREE                         
         LB,R8    *R5                                                           
         DO       #ECB                                                          
         BNEZ     OSB15             YES, CAN DO                                 
*                                   NO, MUST WAIT                               
         PUSH     8,R1              SAVE REGISTERS                              
         LB,R4    TCBPOINT          GET TASK ID                                 
         PSW,R4   SDPSTACK          SAVE IT                                     
         BSO      OSB12             CANT, MUST LOOP                             
         MTB,1    STICOUNT,R4       BUMP WAIT COUNT                             
         ENABLE                                                                 
         BAL,R8   TMTRIG            WAIT HERE TILL I/O DONE                     
OSB12    RES      0                                                             
         ENABLE                                                                 
         PULL     8,R1              RESTORE REGISTERS                           
         B        OSB10             TRY AGAIN                                   
*                                                                               
OSB15    RES      0                                                             
         ELSE     NO ECBS                                                       
         BEZ      OSB10             WAIT BY LOOPING                             
         FIN      #ECB                                                          
         LB,R6    IOQ2              GET FREE IOQ HEAD                           
         LB,R6    IOQ2,R6           GET FORWARD LINK                            
         BNEZ     OSB20                                                         
         ENABLE                                                                 
         B        SDBUFX3           NOT ENOUGH, GO TO GETNRT                    
*                                                                               
OSB20    RES      0                                                             
         BIFFGD   OSB30             B IF CALLER IS FOREGROUND                   
         LB,R8    IOQ3              YES, IS THERE A BACKGROUND Q ENTRY          
         CB,R8    IOQ1                                                          
         BL       OSB30             YES                                         
         ENABLE                                                                 
         B        SDBUFX3           NO, GO TO GETNRT                            
*                                                                               
OSB30    RES      0                                                             
         LW,R8    R11               GET IBC FOR POST WORD                       
         XW,R8    0,R5                                                          
* R8 IS NOW THE POST WORD FOR THE LAST LINE OUTPUT                              
         LB,R6    R8                GET TYC                                     
         CI,R6    1                 IS IT OK                                    
         BE       OSB35             YES                                         
*                                   NO, DONT TRY ANOTHER I/O                    
         MTB,1    *R5               BUT PRETEND WE DID                          
         B        OSB50             POST THIS IO COMPLETION                     
*                                                                               
OSB35    RES      0                                                             
         PUSH     R8                                                            
         AI,R5    1                 MOVE DATA TO SIDE BUFFER                    
         SLS,R5   2                 NEW BYTE ADDRESS                            
         LW,R6    R10               OLD BYTE ADDRESS                            
         LW,R12   R11               BYTE COUNT                                  
         LW,R10   R5                NEW BYTE ADDRESS SAVED                      
*                                                                               
OSB40    LB,R0    0,R6              MOVE LOOP                                   
         STB,R0   0,R5                                                          
         AI,R6    1                                                             
         AI,R5    1                                                             
         AI,R12   -1                                                            
         BNEZ     OSB40                                                         
*                                                                               
         LI,R8    SDPOSTER          POSTING ROUTINE                             
         MTB,3    R8                BAL TYPE END ACTION                         
         LI,R9    0                                                             
         LI,R6    5                                                             
*                                                                               
         PUSH     11,R8                                                         
         LI,R2    0                                                             
         BAL,R5   QUEUE                                                         
         BAL,R14  IOINC                                                         
         PULL     11,R8                                                         
*                                                                               
         ENABLE                                                                 
         PULL     R8                                                            
OSB50    RES      0                                                             
         LB,R8    R8                GET TYC FOR LAST I/O                        
         PUSH     R8                SAVE TYC FOR TMSETERR                       
         PUSH     R15               SAVE END ACTION CONTROL WORD                
         BAL,R0   SBPOST            POST TYC AND ARS                            
         PULL     R11               GET END ACTION CONTROL WORD IN R11          
*                                                                               
         BAL,R0   SBENDAC           DO END-ACTION IF ANY                        
*                                                                               
         B        ISB50             AND EXIT                                    
         TITLE    'INPUT SIDE BUFFERING FOR THE CARD READER'                    
*                                                                               
* R2     DCB ADDRESS                R3       FPT ADDRESS                        
* R4     FUNCTION CODE              R7       DCT INDEX                          
* R10    BUFFER ADDRESS             R11      BYTE COUNT                         
* R13    PRIORITY                                                               
* R1     PRESERVED                                                              
*                                                 RULES                         
* * * * * * * * * * * * * * * * * * * * * * * * * * * *                         
*        CONDITIONS                 * 1 2 3 4 5 6 7 8 *                         
* * * * * * * * * * * * * * * * * * * * * * * * * * * *                         
* IS END-ACTION VALID IF PRESENT    * N Y Y Y Y Y Y Y *                         
* IS THIS THE FIRST TIME THROUGH    * - Y N N N N N N *                         
* HAS A CARD READ BEEN STARTED      * - - N N N Y Y Y *                         
* IS THIS A WAIT REQUEST            * - - N Y Y - - - *                         
* IS THE CARD READ DONE             * - - - - - N Y Y *                         
* IS THE CARD READER READY          * - - - N Y - N Y *                         
* * * * * * * * * * * * * * * * * * * * * * * * * * * *                         
*        ACTIONS                    * 1 2 3 4 5 6 7 8 *                         
* * * * * * * * * * * * * * * * * * * * * * * * * * * *                         
* ENABLE                            * - - 1 1 - - - - *                         
* GO TO GETNRT    (SDBUFX3)         * - - 2 2 - - - - *                         
* GO TO TRAPX     (SDBUFX8)         * 1 - - - - - - - *                         
* CLEAR POST WORD                   * - - - - - - 1 1 *                         
* MOVE DATA TO USERS BUFFER         * - - - - - - 2 2 *                         
* ENABLE                            * - - - - 1 - 3 3 *                         
* POST WITH CORRECT ARS AND TYC     * - - - - - - 4 4 *                         
* DO END-ACTION IF ANY              * - - - - - - 5 5 *                         
* QUEUE UP A CARD READ TO SIDE BUF  * - - - - 2 - - 6 *                         
* GO TO ISB50     (SDBUFX7)         * - - - - - - 6 7 *                         
* ENABLE                            * - 1 - - 3 1 - - *                         
* CALL SERVICE DEVICE               * - 2 - - 4 2 - - *                         
* DISABLE                           * - 3 - - 5 3 - - *                         
* REPEAT THIS DECISION TABLE        * - 4 - - 6 4 - - *                         
* * * * * * * * * * * * * * * * * * * * * * * * * * * *                         
         PAGE                                                                   
*                                                                               
INSDBUF  RES      0                                                             
         BIFFGD   SDBUFX3           DON'T SIDE BUFFER IF CALLER FGD             
         DO       #SYMB                                                         
         LB,R8    DCTSYM1,R7        GET SYMBIONT FLAGS                          
         CI,R8    DCTSYMSM          IS THIS A SYMBIONT DED DEVICE               
         BANZ     SDBUFX3           YES, DON'T SIDE BUFFER                      
         FIN      #SYMB             NO                                          
         LB,R8    DCT3,R7           GET DEVICE FLAGS                            
         CI,R8    BIT2**-24         IS IT DOWN                                  
         BANZ     SDBUFX3           YES, DONT SIDE BUFFER                       
*                                   NO                                          
*                                   YES, ITS BACKGROUND                         
*                                                                               
         LW,R8    R4                IS END-ACTION VALID                         
         LI,R15   9                                                             
         BAL,R4   CKENACT                                                       
         B        SDBUFX8           NO                                          
         LW,R4    R8                                                            
* R15 IS NOW THE END-ACTION CONTROL WORD (OR ZERO)                              
ISB10    ENABLE                                                                 
         PUSH     15,R1                                                         
         LW,R1    R7                                                            
         STB,R13  R1                                                            
         BAL,R2   SERDEV            CALL SERVICE DEVICE                         
         PULL     15,R1                                                         
         DISABLE                                                                
*                                                                               
         LW,R5    DCTSDBUF,R7                                                   
         LW,R9    0,R5              HAS A CARD READ BEEN STARTED                
         BNEZ     ISB30             YES                                         
*                                   NO                                          
         LW,R0    K:JCP1            IS THIS AN INIT REQUEST                     
         CI,R0    X'10'                                                         
         BANZ     ISB15             YES, DONT READ AHEAD                        
*                                                                               
         LW,R8    1,R3                                                          
         CI,R8    BIT27             IS THIS A WAIT REQUEST                      
         BANZ     ISB20             YES                                         
*                                   NO                                          
         CI,R0    F1                IS IT A DIAGNOSTIC READ                     
         BANZ     SDBUFX3           YES                                         
ISB15    ENABLE                     NO                                          
         B        SDBUFX3                                                       
********                                                                        
ISB20    BAL,R0   ISBCRCK           IS CARD READER READY (SKIP = YES)           
         B        ISB15             NO                                          
*                                   YES                                         
         BAL,R0   ISBCREAD          START A CARD READ                           
         B        ISB10             AND WAIT FOR IT                             
********                                                                        
ISB30    RES      0                                                             
         MTB,0    R9                IS CARD READ DONE                           
         DO       #ECB                                                          
         BNEZ     ISB14             YES, CAN DO                                 
*                                   NO, MUST WAIT                               
         PUSH     8,R1              SAVE REGISTERS                              
         LB,R4    TCBPOINT          GET TASK ID                                 
         PSW,R4   SDPSTACK          SAVE IT                                     
         BSO      ISB32             CANT, MUST LOOP                             
         MTB,1    STICOUNT,R4       BUMP WAIT COUNT                             
         ENABLE                                                                 
         BAL,R8   TMTRIG            WAIT HERE TILL I/O DONE                     
ISB32    RES      0                                                             
         ENABLE                                                                 
         PULL     8,R1              RESTORE REGISTERS                           
         B        ISB10             TRY AGAIN                                   
*                                                                               
ISB14    RES      0                                                             
         ELSE     NO ECBS                                                       
         BEZ      ISB10             WAIT BY LOOPING                             
         FIN      #ECB                                                          
*                                   YES                                         
         LI,R0    0                 CLEAR POST WORD                             
         STW,R0   0,R5                                                          
*                                                                               
         LB,R8    R9                GET TYC FROM R9                             
         CI,R8    TYCERR            IS IT AN ERROR                              
         BGE      ISB45             YES, CANT MOVE                              
*                                                                               
         AND,R9   M17               GET READ RECORD SIZE                        
         CW,R9    R11               COMPARE AGAINST REQUEST COUNT               
         BG       ISB35             MORE READ THAN ASKED                        
         LW,R11   R9                NO, MOVE ONLY RECORD SIZE                   
         B        ISB37                                                         
*                                                                               
ISB35    LI,R8    TYCLOST           TO LITTLE READ, SET LOST TYC                
ISB37    RES      0                 MOVE DATA INTO USERS BUFFER                 
         AI,R5    1                                                             
         SLS,R5   2                 R5 = BA(SOURCE)                             
         LW,R6    R10               R6 = BA(DESTINATION)                        
         LW,R12   R11               R12 = COUNT                                 
*                                                                               
ISB40    RES      0                 MOVE DATA TO USERS BUFFER                   
         LB,R0    0,R5                                                          
         STB,R0   0,R6                                                          
         AI,R5    1                                                             
         AI,R6    1                                                             
         BDR,R12  ISB40                                                         
*                                                                               
ISB45    RES      0                                                             
         CW,R2    XBIT0             IS THIS A CREAD                             
         BAZ      ISB49             NO, THANK GOD                               
*                                                                               
         CI,R8    TYCOK             IS THE IO OK                                
         BNE      ISB49             NO                                          
*                                                                               
         PUSH     R7                SAVE REGISTERS                              
         LW,R6    DCTSDBUF,R7       GET BUFFER ADDR                             
         AI,R6    1                 WORD ADDRESS OF BUFFER                      
         LB,R5    *R6               GET FIRST BYTE                              
         CI,R5    '!'               IS IT A BANG                                
         BNE      ISB47             NO, NOT A CONTROL CARD                      
         SLS,R6   2                 NO, R6= BYTE ADDRESS OF BUFFER              
*                                                                               
         PUSH     R4                SAVE FUNCTION CODE                          
         LI,R4    BA(CCBUF)                                                     
         LI,R14   80                80 BYTES TO MOVE                            
         BAL,R9   MOVEBYTS          MOVE RECORD TO CCBUF                        
         PULL     R4                RESTORE FUNCTION CODE                       
         LI,R7    1                                                             
         LI,R8    TYCEOF            SET TYC EOF                                 
         B        ISB48                                                         
*                                                                               
ISB47    LI,R7    0                                                             
ISB48    STW,R7   CFLAG             SET OR RESET CFLAG                          
         PULL     R7                RESTORE REGISTERS                           
*                                                                               
ISB49    RES      0                                                             
         ENABLE                                                                 
         PUSH     R8                SAVE TYC                                    
         PUSH     R15               SAVE END ACTION CONTROL WORD                
         BAL,R0   SBPOST            POST FPT OR DCB                             
         PULL     R11               GET END ACTION CONTROL WORD IN R11          
*                                                                               
         BAL,R0   SBENDAC           DO END ACTION                               
*                                                                               
         DISABLE                                                                
         LW,R0    DCTSDBUF,R7                                                   
         AI,R0    1                 POINT TO FIRST WORD OF BUFFER               
         LB,R0    *R0               GET FIRST BYTE OF LAST BUFFER READ          
         CI,R0    '!'               IS IT A BANG                                
         BE       ISB50             YES, DONT READ AHEAD                        
         CI,R0    ':'               IS IT A COLON                               
         BE       ISB50             YES, DONT READ AHEAD                        
         BAL,R0   ISBCRCK           IS CARD READER READY (SKIP = YES)           
         B        ISB50             NO, DONT READ AHEAD                         
         BAL,R0   ISBCREAD          YES, START A CARD READ                      
ISB50    ENABLE                                                                 
         PULL     R15               GET TYC AS PUSHED FROM R8                   
         BAL,R8   TMSETERR          SET R8,R10 AND PSD                          
SDBUFX7  B        CALSTDX           EXIT                                        
         PAGE                                                                   
*                                                                               
* THIS READS A CARD INTO THE SIDE BUFER                                         
*                                                                               
ISBCREAD RES      0                                                             
         PUSH     14,R2                                                         
         LI,R2    0                 R2 IS ECBID                                 
*                                   R4 IS THE FUNCTION CODE                     
         LI,R6    5                 R6 IS THE # OF RETRIES                      
*                                   R7 IS THE DCT INDEX                         
         LI,R8    SDPOSTER                                                      
         MTB,3    R8                BAL TYPE END ACTION                         
         CW,R2    XBIT0             IS THIS A CREAD                             
         BAZ      %+2                                                           
         OR,R8    XBIT8             YES, SET FLAG FOR REQCOM BANG CHECK         
         LI,R9    0                 R9 IS ZERO                                  
         LW,R10   DCTSDBUF,R7                                                   
         AI,R10   1                                                             
         SLS,R10  2                 R10 IS THE SIDE BUFFER ADDR                 
*                                                                               
         LI,R11   CPSIZE            R11 IS THE BYTE COUNT                       
         LW,R5    DCTSDBUF,R7       GET ADDR OF POST WORD                       
         STW,R11  0,R5              PUT IN IBC                                  
*                                   R13 IS THE PRIORITY                         
         BAL,R5   QUEUE             R5 IS THE LINK                              
         BAL,R14  IOINC                                                         
         PULL     14,R2                                                         
         B        *R0               RETURN FROM READ                            
         PAGE                                                                   
*                                                                               
* THIS TESTS TO SEE IF A CARD SHOULD BE READ AHEAD                              
*                                                                               
* EXIT NORMAL INDICATES NO                                                      
* SKIP EXIT INDICATES YES                                                       
*                                                                               
ISBCRCK  RES      0                                                             
         MTW,0    CFLAG             WAS LAST CARD READ A CONTROL READ           
         BNEZ     *R0               YES, DONT READ AHEAD                        
*                                                                               
         CI,R4    FCRCRAUT          WAS THIS/LAST CARD READ AUTOMATIC           
         BNE      *R0               NO, DONT READ AHEAD                         
*                                                                               
         LB,R6    IOQ2              GET FREE IOQ HEAD                           
         LB,R6    IOQ2,R6           GET ITS LINK                                
         BEZ      *R0               NOT ENOUGH, DONT READ                       
*                                                                               
         BIFFGD   ISBCROK           B IF CALLER IS FOREGROUND                   
         LB,R8    IOQ3              YES, IS THERE A BACKGROUND Q ENTRY          
         CB,R8    IOQ1                                                          
         BGE      *R0               NO, DONT READ                               
*                                                                               
ISBCROK  RES      0                 OK TO READ A CARD                           
         AI,R0    1                 SKIP                                        
         B        *R0               EXIT                                        
         PAGE                                                                   
*                                                                               
* THIS POSTS A PHONY END-ACTION FOR SIDE BUFFERED I/O                           
* R11     END ACTION CONTROL WORD                                               
*                                                                               
SBENDAC  RES      0                                                             
         CI,R11   0                 IS THERE ANY END-ACTION                     
         BEZ      *R0               NO, EXIT                                    
*                                                                               
         PUSH     8,R0                                                          
         LH,R8    DCT7,R7           CDW PTR                                     
         LI,R9    0                 TDV STATUS                                  
*                                                                               
         LI,R6    X'1000'           TIO STATUS                                  
*                                                                               
         LW,R12   DCTSDBUF,R7                                                   
         LB,R12   *R12              TYC                                         
*                                                                               
         CI,R12   TYCERR            WAS IT AN ERROR                             
         BGE      SBCRERR           YES                                         
*                                   NO                                          
         LI,R13   0                 MESSAGE PTR                                 
         LH,R5    DCT1,R7           GET DEVICE ADDR                             
         OR,R5    XBIT11            SET CE FLAG IN AIO STATUS                   
         B        SBCROK                                                        
*                                                                               
SBCRERR  LI,R13   MSG1              ERROR MESSAGE                               
         OR,R5    XBIT12            UE FLAG IN AIO STATUS                       
SBCROK   BAL,R4   ENDAC             DO END ACTION                               
         PULL     8,R0                                                          
         B        *R0                                                           
         PAGE                                                                   
*                                                                               
* THIS POSTS THE DCB OR FPT IN CASE OF SIDE BUFFERING                           
*                                                                               
* R2 IS THE DCB ADDR OR THE POST ADDR                                           
* R8 IS THE TYC TO BE POSTED                                                    
* R11 IS THE BYTE COUNT TO BE POSTED                                            
*                                                                               
SBPOST   RES      0                                                             
         PUSH     R0                                                            
         LI,R15   10                                                            
         BAL,R5   GETFPTN           GET POSTING PARAMETER                       
         B        SBDCBPST          NO PARAMETER, DCB POSTING                   
*                                                                               
         STB,R8   R11               ADD IN BYTE COUNT                           
         STW,R11  *R14              AND PUT IN POST WORD                        
         PULL     R0                                                            
         B        *R0                                                           
*                                                                               
SBDCBPST RES      0                                                             
         LW,R14   R8                                                            
         LI,R15   X'7FFF'           MASK                                        
         SLD,R14  17                                                            
         STS,R14  2,R2              POST TYC                                    
*                                                                               
         LW,R14   R11                                                           
         LI,R15   X'7FFF'                                                       
         SLD,R14  17                                                            
         STS,R14  4,R2              POST ARS                                    
*                                                                               
         LI,R14   0                                                             
         LI,R15   BIT19                                                         
         STS,R14  0,R2              RESET BUSY BIT                              
         PULL     R0                                                            
         B        *R0                                                           
*                                                                               
         ELSE                                                                   
OUTSDBUF EQU      SDBUFX3                                                       
INSDBUF  EQU      SDBUFX3                                                       
         FIN      #SIDEBUF                                                      
*                                                                               
         DO1      #PAX                                                          
MDL2310  TEXT     '2310'                                                        
*                                                                               
         OLAYEND                                                                
         END                                                                    
