I wrote:
> [While I'm in GRUB] I can type exactly *one* character on the usb keyboard.
> When trying to
> read a second character from the keyboard, the system hangs.
I'd say this is an Apple BIOS bug.
The following INT 16, Function 0 BIOS call (GET KEYSTROKE) hangs:
(tested from DEBUG.EXE, using a Windows ME boot floppy / CD)
MOV AH, 0
INT 16
But checking with INT 16, Function 1 (CHECK FOR KEYSTROKE) and waiting until
a keystoke is available, then calling INT 16, Function 0 works just fine:
wait: MOV AH, 1
INT 16
JZ wait
MOV AH, 0
INT 16
I've modified GRUB with this patch, and now I have a working keyboard inside
GRUB:
diff -ru ../opensolaris-20060404/usr/src/grub/grub-0.95/stage2/asm.S
usr/src/grub/grub-0.95/stage2/asm.S
--- ../opensolaris-20060404/usr/src/grub/grub-0.95/stage2/asm.S 2006-04-05
23:28:21.000000000 +0200
+++ usr/src/grub/grub-0.95/stage2/asm.S 2006-04-12 19:09:52.939626580 +0200
@@ -2127,6 +2164,11 @@
ENTRY(console_getkey)
push %ebp
+wait_for_key:
+ call EXT_C(console_checkkey)
+ incl %eax
+ jz wait_for_key
+
call EXT_C(prot_to_real)
.code16
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
[email protected]