]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[bios] Fix screen clearing on buggy BIOSes
authorMichael Brown <mcb30@ipxe.org>
Wed, 17 Apr 2013 18:36:03 +0000 (19:36 +0100)
committerMichael Brown <mcb30@ipxe.org>
Wed, 17 Apr 2013 18:36:03 +0000 (19:36 +0100)
The implementation of INT 10,06 on some BIOSes (observed with both
Hyper-V and a Dell OptiPlex 7010) seems to treat %dx=0xffff as a
special value meaning "do absolutely nothing".  Fix by using
%dx=0xfefe, which should still be sufficient to cover any realistic
screen size.

Reported-by: John Clark <skyman@iastate.edu>
Tested-by: John Clark <skyman@iastate.edu>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/i386/firmware/pcbios/bios_console.c

index 25c8dad2dd0feaec69752ff8a382cad06e59f968..213ebd92cd6240ce5959cf73118fcea88c4d9a6b 100644 (file)
@@ -97,7 +97,7 @@ static void bios_handle_ed ( unsigned int count __unused,
                                           "int $0x10\n\t"
                                           "cli\n\t" )
                               : : "a" ( 0x0600 ), "b" ( bios_attr << 8 ),
-                                  "c" ( 0 ), "d" ( 0xffff ) );
+                                  "c" ( 0 ), "d" ( 0xfefe ) );
 }
 
 /**