37 lines
651 B
C
37 lines
651 B
C
#include <stdio.h>
|
|
|
|
#include <Gigatron.h>
|
|
|
|
#define N 26
|
|
|
|
struct _stdout {
|
|
FILE iobuf;
|
|
char buffer[N-1];
|
|
};
|
|
|
|
static int _flush_stdout(int c, FILE *stream);
|
|
|
|
struct _stdout _stdout = {
|
|
{
|
|
_stdout.buffer, // _ptr
|
|
N, // _n -> how much can be added to buffer
|
|
&_flush_stdout, // _flush
|
|
_iowrite, // _flags
|
|
}
|
|
};
|
|
|
|
static int _flush_stdout(int c, FILE *stream)
|
|
{
|
|
int n = N - 1 - stream->_n;
|
|
int i;
|
|
|
|
stream->_n = N;
|
|
stream->_ptr = ((struct _stdout*)stream)->buffer;
|
|
|
|
for (i=0; i<n; i++)
|
|
PutChar(stream->_ptr[i]);
|
|
if (c >= 0)
|
|
PutChar(c);
|
|
return 0;
|
|
}
|