[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:
parent
b015124e56
commit
71351b98b9
1 changed files with 3 additions and 2 deletions
|
@ -73,9 +73,10 @@ static u8 vga_set_basic_mode(void)
|
||||||
mode = 3;
|
mode = 3;
|
||||||
|
|
||||||
/* Set the mode */
|
/* Set the mode */
|
||||||
|
ax = mode;
|
||||||
asm volatile(INT10
|
asm volatile(INT10
|
||||||
: : "a" (mode)
|
: "+a" (ax)
|
||||||
: "ebx", "ecx", "edx", "esi", "edi");
|
: : "ebx", "ecx", "edx", "esi", "edi");
|
||||||
do_restore = 1;
|
do_restore = 1;
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue