[ros-diffs] [tkreuzer] 53003: [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 / test...

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Jul 30 20:34:57 UTC 2011


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/isoboot.S?rev=53003&r1=53002&r2=53003&view=diff
==============================================================================
--- 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




More information about the Ros-diffs mailing list