diff --git a/ChangeLog b/ChangeLog index 32affd7c3..23bac7b02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-12-19 Yoshinori K. Okuji + + From Michael Sullivan : + * stage1/stage1.S (real_start): Added a workaround for AST BIOS, + because it clobbers %dl with INT 13, AH=41H. + 2001-12-19 Yoshinori K. Okuji * stage2/fsys_fat.c (fat_read): Fix the contradictory comment. diff --git a/THANKS b/THANKS index a2be708e2..92af6e42a 100644 --- a/THANKS +++ b/THANKS @@ -60,6 +60,7 @@ Matt Yourst Matthias Granberry Matthias Kretschmer Michael Hohmuth +Michael Sullivan Mike Meyer Miles Bader Neal H Walfield diff --git a/stage1/stage1.S b/stage1/stage1.S index 0d8a58556..bbbf788fd 100644 --- a/stage1/stage1.S +++ b/stage1/stage1.S @@ -1,7 +1,7 @@ /* -*-Asm-*- */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 1999,2000 Free Software Foundation, Inc. + * Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -148,6 +148,13 @@ real_start: movw $0x55aa, %bx int $0x13 + /* + * %dl may have been clobbered by INT 13, AH=41H. + * This happens, for example, with AST BIOS 1.04. + */ + popw %dx + pushw %dx + /* use CHS if fails */ jc chs_mode cmpw $0xaa55, %bx