[ros-diffs] [tkreuzer] 52225: [FREELDR] Move EnableA20 to realmode code, remove DisableA20

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Jun 14 08:10:59 UTC 2011


Author: tkreuzer
Date: Tue Jun 14 08:10:59 2011
New Revision: 52225

URL: http://svn.reactos.org/svn/reactos?rev=52225&view=rev
Log:
[FREELDR]
Move EnableA20 to realmode code, remove DisableA20

Modified:
    trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S
    trunk/reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc
    trunk/reactos/boot/freeldr/freeldr/arch/realmode/i386.S

Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S?rev=52225&r1=52224&r2=52225&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S [iso-8859-1] Tue Jun 14 08:10:59 2011
@@ -211,69 +211,11 @@
 	ret
 
 
-	/*
-	 * Needed for enabling the a20 address line
-	 */
-.code16
-empty_8042:
-	.word	0x00eb,0x00eb            // jmp $+2, jmp $+2
-	in al, HEX(64)
-	cmp al, HEX(ff)               // legacy-free machine without keyboard
-	jz empty_8042_ret           // controllers on Intel Macs read back 0xFF
-	test al, 2
-	jnz empty_8042
-empty_8042_ret:
-	ret
-
-	/*
-	 * Enable the A20 address line (to allow access to over 1mb)
-	 */
-EXTERN(_EnableA20)
 .code32
-
-	pusha
-
-	call switch_to_real
-.code16
-
-	call empty_8042
-	mov al, HEX(D1)                // command write
-	out HEX(64), al
-	call empty_8042
-	mov al, HEX(DF)                // A20 on
-	out	HEX(60), al
-	call empty_8042
-	call switch_to_prot
-	.code32
-
-	popa
-
-	ret
-
-	/*
-	 * Disable the A20 address line
-	 */
-EXTERN(_DisableA20)
-.code32
-
-	pusha
-
-	call switch_to_real
-	.code16
-
-	call	empty_8042
-	mov al, HEX(D1)                // command write
-	out HEX(64), al
-	call empty_8042
-	mov al, HEX(DD)                // A20 off
-	out HEX(60), al
-	call	empty_8042
-	call	switch_to_prot
-	.code32
-
-	popa
-
-	ret
+PUBLIC _EnableA20
+_EnableA20:
+    ret
+
 
 /* Multiboot support
  *

Modified: trunk/reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc?rev=52225&r1=52224&r2=52225&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/realmode/helpers.inc [iso-8859-1] Tue Jun 14 08:10:59 2011
@@ -3,21 +3,21 @@
     .word 0x00eb,0x00eb		// jmp $+2, jmp $+2
     in al, 0x64
     cmp al, 0xff				// legacy-free machine without keyboard
-    jz empty_8042_ret			// controllers on Intel Macs read back 0xFF
+    jz Empty8042_ret			// controllers on Intel Macs read back 0xFF
     test al, 0x02
-    jnz x86_16_Empty8042
-empty_8042_ret:
+    jnz Empty8042
+Empty8042_ret:
 	ret
 
 EnableA20:
     pusha
-    call x86_16_Empty8042
+    call Empty8042
     mov al, 0xD1				// command write
     out 0x64, al
-    call x86_16_Empty8042
+    call Empty8042
     mov al, 0xDF				// A20 on
     out 0x60, al
-    call x86_16_Empty8042
+    call Empty8042
     popa
     ret
 

Modified: trunk/reactos/boot/freeldr/freeldr/arch/realmode/i386.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/realmode/i386.S?rev=52225&r1=52224&r2=52225&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/realmode/i386.S [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/realmode/i386.S [iso-8859-1] Tue Jun 14 08:10:59 2011
@@ -26,6 +26,9 @@
 
     /* Setup the stack */
     mov sp, word ptr ds:stack16
+
+    /* Enable A20 address line */
+    call EnableA20
 
     /* Get address of optional header */
     mov eax, dword ptr ds:[FREELDR_PE_BASE + IMAGE_DOS_HEADER_e_lfanew]




More information about the Ros-diffs mailing list