    PUTC(III)                    6/12/72                    PUTC(III)

    NAME
         putc, putw, fcreat, fflush  -  buffered output

    SYNOPSIS
         mov  $filename,r0
         jsr  r5,fcreat; iobuf

         fcreat(file, iobuf)
         char *file;
         struct buf *iobuf;

         (get byte in r0)
         jsr  r5,putc; iobuf

         putc(c, iobuf)
         int c;
         struct buf *iobuf;

         (get word in r0)
         jsr  r5,putw; iobuf

         putw(w, iobuf);
         int w;
         struct buf *iobuf;

         jsr  r5,flush; iobuf

         fflush(iobuf)
         struct buf *iobuf;

    DESCRIPTION
         Fcreat  creates  the  given  file (mode 666) and sets up the
         buffer iobuf (size 518 bytes); putc and putw write a byte or
         word  respectively  onto the file; flush forces the contents
         of the buffer to be written, but does not  close  the  file.
         The structure of the buffer is:
         struct buf {
              int fildes;    /* File descriptor */
              int nunused;   /* Remaining slots */
              char *xfree;   /* Ptr to next free slot */
              char buff[512];     /* The buffer */
         };

         Before terminating, a program should call flush to force out
         the last of the output (fflush from C).

         The user must supply iobuf, which should  begin  on  a  word
         boundary.

         To  write  a  new file using the same buffer, it suffices to
         call [f]flush, close the file, and call fcreat again.

                                  - 1 -

    PUTC(III)                    6/12/72                    PUTC(III)

    SEE ALSO
         creat(II), write(II), getc(III)

    DIAGNOSTICS
         Fcreat sets the error  bit  (c-bit)  if  the  file  creation
         failed  (from  C,  returns  -1).  Putc and putw return their
         character (word) argument.  In all calls errno is set appro-
         priately to 0 or to a system error number.  See introduction
         (II).

    BUGS

                                  - 2 -