*COMDECK /FLSHDWA/
          TITLE     FLSH$WA 
 FLSH$WA  BSS       0 
*#
*     13.  IF THE LAST OPERATION WAS A WRITE, AND WE ARE GOING
*          TO READ STUFF IN, WE HAVE TO FLUSH WHAT WAS PUT
*          THERE LAST TIME. 
*         IF COMM$WA SPEC CASE CALL, WE FLUSH UNCONDITIONALLY.
*#
          F.RM      CPRU,3
          SB4       59-52          FLSH IF SPEC CASE
          LX1       B4,X0 
          NG        X1,FLSH 
          ZR        X3,NOFLSHR     IF CPRU=0, EXIT
*#
*     13.2 FIND IF IN IS AT A PRU BOUNDARY. IF NOT, SET IT
*          UP THERE.
*#
 FLSH     BSS       0 
          F.RM      FIRST,1,B4                              AX0123,B1235
          SB2    B2-B4
          SX1    B2+63
          AX1    6
          LX1    6
          SB2    X1+B4
*#
*     13.4 WAIT FOR ANY PREVIOUS I/O
*#
          BX5       X2             SAVE X2 FOR AWILE
*#
*     13.6 DETECT AN EXISTING SYSTEM ERROR RETURN.
*#
          SA1       A0
          SX7       36000B         ERROR STATUS FIELD MASK
          BX7       X7*X1 
          SX2       B1             INDICATE A WRITE 
          NZ        X7,CIOERR      IF ERROR STATUS
 KRONOS   IFC       EQ,/KRONOS/"OS.NAME"/ 
          LX2       29
          BX6       X3+X2          SET W BIT
          SET.RM    PRUNO,X6       STORE PRU NO FOR REWRITE 
 KRONOS   ELSE
          SET.RM    PRUNO,X3       STORE PRU NO FOR WRITE 
 KRONOS   ENDIF 
          F.RM      FIRST,X2
          SB4       X2             SAVE OUT FOR NOREWRIT
          SET.RM    OUT,X2         OUT=FIRST
          SX6       B2
          SX4       B4-B2          COMPARE IN AND OUT 
          LX3       6 
          SET.RM    IN,X6          IN 
          SX7       77B 
          ZR        X4,OUTAHERE    EXIT IF IN=OUT,THERE WILL BE NO O/P
          IX3       X3-X7 
          F.RM      EOIWA,X4
          IX1       X3-X4          CWA-EOIWA
          IX3       X6-X2          IN-FIRST 
          PL        X1,NOREWRIT    IF CWA GT EOIWA, JUST EXTEND FILE
          IX3       X3+X1          (IN-FIRST)+(CWA-EOIWA)=AMT PAST EOI
          SET.RM PAE,0                                                  T39A 174
          SYSY      214B,RCL
 NOREWRIT BSS    0                                                      T39A 185
          SET.RM    PRUNO,0 
*                                                                       T39A 188
*         SET EOIWA TO WORD ADDRESS CORRESPONDING TO IN POINTER.        T39A 189
*                                                                       T39A 190
          ZR        X3,OUTAHERE    WRITE JUST UP TO EOI (NOT PAST)
          NG        X3,OUTAHERE    IF <EOI
          IX4       X4+X3          EOIWA + INC
          SET.RM    EOIWA,X4
          AX3       6 
          INC.RM    CPRU,X3 
          MX4       1 
          LX4       58+1
          BX0       -X4*X0
          SET.RM    PAE,1 
          F.RM      OUT,B4
          EQ        B2,B4,OUTAHERE ALL WRITEN 
*                                                                       T39A 195
*         ISSUE A WRITE TO GET US UP TO EOI.                            T39A 196
*                                                                       T39A 197
          SYSY      14B,RCL 
 OUTAHERE BSS       0                                                   T39A 210
          BX2       X5             RESTORE X2 
          JP        B6
* 
* END /FLSHDWA/ 
