*DECK WOTEXT
          IDENT WOTEXT
          TITLE  WOTEXT -  WRITE OTEXT FILE (ZZZZZ48) 
  
          MACHINE  ANY,I
          COMMENT  WRITE OTEXT FILE (ZZZZZ48) 
          SST 
*CALL     COBIOM
          SPACE  4
**        WOTEXT -  WRITE OTEXT FILE (ZZZZZ48)
* 
*         CONTAINS: 
* 
*                INITOTX   - INITIATE OTEXT FILE ACTION 
*                FLUSHOT   - FLUSH OTEXT WORKING STORAGE AREA 
*                CLOSOTX   - CLOSE OTEXT FILE 
  
*CALL SYMCOMP 
  
  
*      THE FOLLOWING ENTRIES ARE SUBROUTINE ENTRIES FROM CGEN 
          ENTRY  INITOTX
          ENTRY  FLUSHOT
          ENTRY  CLOSOTX
  
*      THE FOLLOWING ENTRIES ARE BUFFERS FOR USE BY CGEN
          ENTRY  OTEXTWS
          ENTRY  WSLENGT
          ENTRY  WSLIMIT
  
*      THIS CODE INITIALIZES FILE ZZZZZ48, THE OTEXT FILE 
 INITOTX  DATA   0
          REWND  ZZZZZ48
          MX6    0                      * SET WORK-STORAGE LENGTH TO
          SA6    WSLENGT                *   INDICATE NO RECORDS IN AREA 
          EQ     INITOTX
  
*      THIS CODE WRITES FILE ZZZZZ48
 FLUSHOT  DATA   0
          SA5    WSLENGT                * EXIT IF NO RECORDS
          ZR     X5,FLUSHOT             *   WORKING-STORAGE AREA
          MX6    0                      * CLEAR WORK-STORAGE LENGTH TO
          SA6    A5                     *  INDICATE NO RECORD IN AREA 
          SB3    X5 
          PUTSQ  ZZZZZ48,OTEXTWS,B3     * WRITE OUT RECORD
          EQ     FLUSHOT
  
*      THIS CODE CLOSES FILE ZZZZZ48
 CLOSOTX  DATA   0
          PUTSQ  ZZZZZ48,0,0 FLUSH THE BUFFER 
          REWIND ZZZZZ48
          EQ     CLOSOTX
*      USED BY GENTABLES
          ENTRY  OTEXTOP
          ENTRY  OTEXTWR
 OTEXTOP  EQU    INITOTX
* 
*         THIS ROUTINE IS CALLED TO WRITE OTEXT 
*         CALL BY OTEXTWR (A)  WHERE A IS THE NUMBER OF WORDS 
 OTEXTWR  DATA   0
          SB1    1
          SA1    X1          GET NUMBER OF WORDS
          BX6    X1 
          SA6    WSLENGT
          RJ     FLUSHOT     DO WRITE 
          MX6    0
          SB6    OTEXTWS+OTEXTLE-1
          SB5    OTEXTWS-1
 CLRLP    BSS    0           CLEAR WSA
          SA6    B6 
          SB6    B6-B1
          NE     B5,B6,CLRLP
          EQ     OTEXTWR
* 
*         THESE ROUTINES ARE USED BY THE ASSEMBLER
* 
          ENTRY  GETINST
          ENTRY  INITIN 
          ENTRY  INSTEOF
          ENTRY  WSA
* 
*         OPEN THE OTEXT FILE FOR INPUT 
* 
 INITIN   BSS    1
          READ   ZZZZZ48
          EQ     INITIN 
* 
*         READ THE OTEXT FILE - RECORD LENGTH RETURNED IN PARAMETER 
* 
 GETINST  BSS    1
          BX6    X1 
          SA6    RECL 
          GETSQ  ZZZZZ48,OTEXTWS,B7,EOF,X1
          SA1    RECL        GET ADDRESS OF RETURN RL 
          SA4    X1          GET RL STORED BY GETSQ 
          SX5    1S20/10+1
          IX6    X4*X5
          AX6    20          CHARACTERS CHANGED TO WORDS
          SA6    X1 
          EQ     GETINST
 EOF      BSS    0
          SX6    1
          SA6    INSTEOF
          RETRN  ZZZZZ48
          EQ     GETINST
 INSTEOF  BSSZ   1
 RECL     BSS    1
*      THIS CODE DEFINES THE BUFFER, FET, AND FILE ZZZZZ48
          ENTRY  ZZZZZ48
*CALL DEFOTEXT
  
  
*      THIS CODE DEFINES THE WORKING-STORAGE AREA 
 OTEXTWS  BSSZ   OTEXTLE           * WORKING STORAGE AREA 
 WSA      EQU    OTEXTWS
 WSLENGT  BSS    1                      * CHAR. RECORD LENGTH TO BE WRIT
 WSLIMIT  CON    OTEXTLE           * MAX RECORD LENGTH IN WORDS 
          END    INITIN 
