[x86 setup] Make sure AH=00h when setting a video mode

Passing a u8 into a register doesn't mean gcc will zero-extend it.
Also, don't depend on thhe register not to change.

Per bug report from Saul Tamari.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin 2007-08-23 09:28:42 -07:00
parent b015124e56
commit 71351b98b9

View File

@ -73,9 +73,10 @@ static u8 vga_set_basic_mode(void)
mode = 3;
/* Set the mode */
ax = mode;
asm volatile(INT10
: : "a" (mode)
: "ebx", "ecx", "edx", "esi", "edi");
: "+a" (ax)
: : "ebx", "ecx", "edx", "esi", "edi");
do_restore = 1;
return mode;
}