Author: tkreuzer
Date: Sat Jul 30 20:34:55 2011
New Revision: 53003
URL: http://svn.reactos.org/svn/reactos?rev=53003&view=rev
Log:
[ISOBOOT]
Use a high segment and 0 offset when loading setupldr.
This fixes problems with an award bios.
Thanks to Igor Paliychuk (igorko) for his help and patience burning / testing dozens of isos
Fixes boot regression of cmake builds on real hw.
Modified:
trunk/reactos/boot/freeldr/bootsect/isoboot.S
Modified: trunk/reactos/boot/freeldr/bootsect/isoboot.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/bootsect/isob…
==============================================================================
--- trunk/reactos/boot/freeldr/bootsect/isoboot.S [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/bootsect/isoboot.S [iso-8859-1] Sat Jul 30 20:34:55 2011
@@ -360,10 +360,13 @@
call crlf
#endif
- mov bx, FREELDR_BASE // bx = load address
+// use high segment, as some bios can fail, when offset is too big
+ mov bx, FREELDR_BASE / 16 // es = load segment
+ mov es, bx
+ xor ebx, ebx // bx = load offset
mov si, di // restore file pointer
- mov cx, HEX(0FFFF) // load the whole file
- call getfssec // get the whole file
+ mov cx, HEX(0FFFF) // load the whole file
+ call getfssec // get the whole file
#ifdef DEBUG_MESSAGES
mov si, offset startldr_msg