37 lines
598 B
C
37 lines
598 B
C
|
static volatile char *data = (char *)(0x20);
|
||
|
static volatile char *control = (char *)(0x24);
|
||
|
|
||
|
extern void _outb (volatile char*, unsigned char);
|
||
|
extern unsigned char _inb (volatile char*);
|
||
|
|
||
|
static unsigned char
|
||
|
read_scc_reg (unsigned char n)
|
||
|
{
|
||
|
_outb (control, n);
|
||
|
return _inb(control);
|
||
|
}
|
||
|
|
||
|
static void write_scc_data (unsigned char n)
|
||
|
{
|
||
|
_outb (data, n);
|
||
|
}
|
||
|
|
||
|
int
|
||
|
_write (int dev, void *buf, unsigned int len)
|
||
|
{
|
||
|
int i;
|
||
|
char *string = (char*)buf;
|
||
|
|
||
|
for (i = 0; i < len; i++)
|
||
|
{
|
||
|
int j;
|
||
|
|
||
|
for (j = 0 ; j < 5000; j++)
|
||
|
;
|
||
|
write_scc_data (string[i]);
|
||
|
|
||
|
}
|
||
|
return len;
|
||
|
}
|
||
|
|