boot2: need to expand tab output and mask getchar

The BIOS ouput char function does not expand tab.
Mask getchar with 0xFF.

Sponsored by:	Netflix, Klara Inc.
This commit is contained in:
Toomas Soome 2020-06-16 20:35:00 +00:00
parent e9de7669c3
commit 6469d2b422

View File

@ -53,12 +53,38 @@ xputc(int c)
sio_putc(c); sio_putc(c);
} }
static void
getcursor(int *row, int *col)
{
v86.ctl = V86_FLAGS;
v86.addr = 0x10;
v86.eax = 0x300;
v86.ebx = 0x7;
v86int();
if (row != NULL)
*row = v86.edx >> 8;
if (col != NULL)
*col = v86.edx & 0xff;
}
void void
putchar(int c) putchar(int c)
{ {
int i, col;
if (c == '\n') switch (c) {
case '\n':
xputc('\r'); xputc('\r');
break;
case '\t':
col = 0;
getcursor(NULL, &col);
col = 8 - (col % 8);
for (i = 0; i < col; i++)
xputc(' ');
return;
}
xputc(c); xputc(c);
} }
@ -100,7 +126,7 @@ int
getchar(void) getchar(void)
{ {
return (xgetc(0)); return (xgetc(0) & 0xff);
} }
int int