blob: 51350812c3a7b3f962db98c4f4f29dfff1bef6ae [file] [log] [blame]
/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (C) Hewlett-Packard (Paul Bame) paul_bame@hp.com
*/
#include <asm/pdc.h>
#include "bootloader.h"
#undef PAGE0
#define PAGE0 ((struct zeropage *)0x00000000)
/* don't wait for a character -- return 0 if none is currently available */
int
getchar(void)
{
char buf;
int count;
count = pdc_iodc_cin(&buf, 1);
if (count > 0)
{
return buf;
}
else
{
return 0; /* got nothing, or error */
}
}
int
puts(const char *s)
{
const char *nuline = s;
while ((nuline = strchr(s, '\n')) != NULL)
{
if (nuline != s)
pdc_iodc_cout(s, nuline - s);
pdc_iodc_cout("\r\n", 2);
s = nuline + 1;
}
if (*s != '\0')
pdc_iodc_cout(s, strlen(s));
return 0;
}
int
putchar(int c)
{
char buf[2];
buf[0] = c;
buf[1] = '\0';
puts(buf);
return c;
}
int printf(const char *fmt, ...)
{
char buf[4096];
va_list args;
int i;
if (fmt == 0 || fmt[0] == 0)
asm("\nprintf_test1: b,n .");
va_start(args, fmt);
i = vsprintf(buf, fmt, args);
va_end(args);
puts(buf);
return i;
}