*COMDECK,FA=WTW 
          CTEXT  FA=WTW - WRITE WORDS FROM WORKING BUFFER 
 WTW      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   FA=WTW 
  
  
**        FA=WTW - WRITE WORDS FROM WORKING BUFFER TO SEQUENTIAL FILE.
* 
* 
*         ENTRY  (X2) = PSEUDO-FET WORD 1 
*                (A2) = PSEUDO-FET ADDRESS
*                (B6) = WSA ADDRESS 
*                (B7) = WSA LENGTH (WORDS)
* 
*         EXIT   (X2) = PSEUDO-FET WORD 1 
*                (A2) = PSEUDO-FET ADDRESS
*                (B1) = 1 
* 
*         USES   X - 1, 2, 3, 4, 6
*                A - 1, 2, 3, 4, 6
*                B - 2, 3, 6, 7 
* 
*         CALLS  MOVE, PUTW 
  
 FA=WTWA  BSS    1           STORAGE FOR (X5) 
 FA=WTWB  BSS    1           STORAGE FOR (A5) 
  
  
 FA=WTW   JP     *+4S15      ** ENTRY/EXIT ** 
  
          IF     -DEF,B1=1,1
          SB1    1
  
          IFNE   TEST,0,1 
          LT     B7,B0,*+4S15  IF LENGTH ERROR, ABORT JOB 
  
          ZR     B7,FA=WTW   IF ZERO LENGTH WRITE 
 WTW2     SA3    A2+I.IN     (X3) = HOLDING BUFFER -IN- POINTER 
          SA4    A2+I.LIMIT  (X4) = HOLDING BUFFER -LIMIT- POINTER
          SX6    X3+B7       UPDATED -IN- 
          IX1    X6-X4       DATA LENGTH .MI. EMPTY BUFFER SPACE
          MI     X1,WTW4     IF DATA WILL NOT OVERFLOW BUFFER 
  
*         FILL HOLDING BUFFER.  CALL RECORD MANAGER TO WRITE IT TO FILE.
  
          MX6    1
          SB2    A2          (B2) = PSEUDO-FET ADDRESS
          LX6    -59D+58D 
          SB3    X1          (B3) = LENGTH OF EXCESS DATA 
          BX6    X2+X6
          IX1    X4-X3
          SX2    B6 
          SA6    A2          FILE SPILLED FLAG .ON. 
          SB6    B6+X1       (B6) = FWA EXCESS DATA 
          ZR     X1,WTW3     IF ZERO LENGTH MOVE
          MOVE   X1,X2,X3 
 WTW3     SA2    B2          (X2) = FILE CONTROL WORD 
  
************************************************************************
*         NOTE THIS CRAPPY KLUDGE IS NECESSARY UNTIL 7RM FETCH IS FIXED 
*         TO OBSERVE THE F PARAMETER WHICH SPECIFIES WHICH REGISTER TO
*         USE AS THE FIT LOAD REGISTER.  IT SHOULD BE REMOVED AS SOON AS
*         SOMEONE NOTICES  THE CORRECT CODE IS BEING GENERATED.  THAT IS
*         THE FETCH DOES NOT GENERATE A SA5 INSTRUCTION 
  
  
          BX6    X5 
          SA6    FA=WTWA     SAVE (X5)
          SX6    A5 
          SA6    FA=WTWB     SAVE (A5)
  
          FETCH  X2,RT,X4,1,3,6 
  
          SA3    FA=WTWB
          SA5    X3          RESTORE (A5) 
          SA3    FA=WTWA
          BX5    X3          RESTORE (X5) 
  
*         END OF KLUGE. 
************************************************************************
  
          SA3    B2+I.LIMIT  (X3) = -LIMIT- 
          SA1    B2+B1       (X1) = -FIRST- 
          IX3    X3-X1       (X3) = HOLDING BUFFER LENGTH 
          BX6    X1 
          SA6    A1+B1       RESET -IN- = -FIRST- 
          SB7    X4-#ST#
          ZR     B7,WTW3A    IF S TYPE RECORD 
          PUTW   X2,X1,X3    WRITE HOLDING BUFFER TO FILE 
          SB7    B3          (B7) = LENGTH OF UNTRANSFERRED DATA
          JP     WTW2        CONTINUE FILLING HOLDING BUFFER
  
 WTW3A    PUTWP  X2,X1,X3 
          SB7    B3          (B7) = LENGTH OF UNTRANSFERRED DATA
          JP     WTW2        CONTINUE FILLING HOLDING BUFFER
  
*         MOVE DATA TO HOLDING BUFFER AND EXIT. 
  
 WTW4     SB2    A2          TEMP SAVE PSEUDO-FET ADDRESS 
          SX1    B7          WSA LENGTH 
          SX2    B6          WSA ADDRESS
          SA6    A3          UPDATE -IN-
          MOVE   X1,X2,X3 
          SA2    B2          RESTORE (A2), (X2) FOR EXIT
          JP     FA=WTW      EXIT 
  
  
          IF     -DEF,QUAL$,2 
          QUAL   *
 FA=WTW   EQU    /FA=WTW/FA=WTW 
          ENDX
