From: Alan Cox Date: Sun, 23 Nov 2014 20:07:36 +0000 (+0000) Subject: z80pack: add shared devlpr X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=651802c6d9a510b68775cf58c4c515b7e1776e05;p=FUZIX.git z80pack: add shared devlpr --- diff --git a/Kernel/dev/z80pack/devlpr.c b/Kernel/dev/z80pack/devlpr.c new file mode 100644 index 00000000..65d8c439 --- /dev/null +++ b/Kernel/dev/z80pack/devlpr.c @@ -0,0 +1,38 @@ +#include +#include +#include +#include + +__sfr __at 0x02 lpstat; /* I/O 2 and 3 */ +__sfr __at 0x03 lpdata; + +int lpr_open(uint8_t minor, uint16_t flag) +{ + minor; flag; // shut up compiler + return 0; +} + +int lpr_close(uint8_t minor) +{ + minor; // shut up compiler + return 0; +} + +int lpr_write(uint8_t minor, uint8_t rawflag, uint8_t flag) +{ + int c = udata.u_count; + char *p = udata.u_base; + minor; rawflag; flag; // shut up compiler + + while(c) { + /* Note; on real hardware it might well be necessary to + busy wait a bit just to get acceptable performance */ + while (lpstat != 0xFF) { +// if (psleep_flags(&clocktick, flag)) +// return -1; + } + /* FIXME: tidy up ugetc and sysio checks globally */ + lpdata = ugetc(p++); + } + return (-1); +} diff --git a/Kernel/dev/z80pack/devlpr.h b/Kernel/dev/z80pack/devlpr.h new file mode 100644 index 00000000..7765c187 --- /dev/null +++ b/Kernel/dev/z80pack/devlpr.h @@ -0,0 +1,8 @@ +#ifndef __DEVLPR_DOT_H__ +#define __DEVLPR_DOT_H__ + +int lpr_open(uint8_t minor, uint16_t flag); +int lpr_close(uint8_t minor); +int lpr_write(uint8_t minor, uint8_t rawflag, uint8_t flag); + +#endif