summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/i386/stand/libsa/bioscons.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/sys/arch/i386/stand/libsa/bioscons.c b/sys/arch/i386/stand/libsa/bioscons.c
index a365453bc74..68ba53d37d1 100644
--- a/sys/arch/i386/stand/libsa/bioscons.c
+++ b/sys/arch/i386/stand/libsa/bioscons.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bioscons.c,v 1.1 1997/08/12 21:39:01 mickey Exp $ */
+/* $OpenBSD: bioscons.c,v 1.2 1997/08/12 23:34:21 mickey Exp $ */
/*
* Copyright (c) 1997 Michael Shalayeff
@@ -66,19 +66,18 @@ kbd_getc(dev)
dev_t dev;
{
u_int8_t rv;
- __asm volatile("movb $1, %%ah\n\t"
- DOINT(0x16) "\n\t"
- "setz %%al"
- : "=a" (rv) :: "%ecx", "%edx", "cc" );
- if (rv)
- return 0;
- if (minor(dev) & 0x80)
- return 1;
+ if (dev & 0x80) {
+ __asm volatile("movb $1, %%ah\n\t"
+ DOINT(0x16) "\n\t"
+ "setnz %%al"
+ : "=a" (rv) :: "%ecx", "%edx", "cc" );
+ return rv;
+ }
- __asm volatile("xorl %%eax, %%eax\n\t"
- DOINT(0x16) "\n\t"
- : "=a" (rv) :: "%ecx", "edx", "cc" );
+ __asm __volatile("xorl %%eax, %%eax\n\t"
+ DOINT(0x16)
+ : "=a" (rv) :: "%ecx", "edx", "cc" );
return rv;
}
@@ -87,10 +86,9 @@ kbd_putc(dev, c)
dev_t dev;
int c;
{
- __asm volatile("movb $0x0e, %%ah\n\t"
- "movl $0, %%ebx\n\t"
+ __asm __volatile("movb $0x0e, %%ah\n\t"
DOINT(0x10)
- :: "a" (c) : "%ecx", "%edx", "cc" );
+ :: "a" (c), "b" (0) : "%ecx", "%edx", "cc" );
}
void
@@ -98,7 +96,7 @@ com_probe(cn)
struct consdev *cn;
{
register int i, n;
- __asm volatile(DOINT(0x11) "\n\t" /* get equipment (9-11 # of coms) */
+ __asm __volatile(DOINT(0x11) "\n\t" /* get equipment (9-11 # of coms) */
: "=a" (n) :: "%ecx", "%edx", "cc");
n >>= 9;
n &= 7;