diff options
-rw-r--r-- | sys/boot/i386/boot2/boot1.S | 12 | ||||
-rw-r--r-- | sys/boot/i386/boot2/boot1.s | 12 |
2 files changed, 14 insertions, 10 deletions
diff --git a/sys/boot/i386/boot2/boot1.S b/sys/boot/i386/boot2/boot1.S index 8b408ce..a919d2e 100644 --- a/sys/boot/i386/boot2/boot1.S +++ b/sys/boot/i386/boot2/boot1.S @@ -13,7 +13,7 @@ # purpose. # -# $Id: boot1.s,v 1.1.1.1 1998/10/12 21:16:26 rnordier Exp $ +# $Id: boot1.s,v 1.2 1998/10/13 21:35:42 rnordier Exp $ .set MEM_REL,0x600 # Relocation address .set MEM_ARG,0x800 # Arguments @@ -109,16 +109,18 @@ main.5: movwrm(_dx,MEM_ARG) # Save args # Enable A20 -seta20: inb $0x64,%al # Get status +seta20: cli # Disable interrupts +seta20.1: inb $0x64,%al # Get status testb $0x2,%al # Busy? - jnz seta20 # Yes + jnz seta20.1 # Yes movb $0xd1,%al # Command: Write outb %al,$0x64 # output port -seta20.1: inb $0x64,%al # Get status +seta20.2: inb $0x64,%al # Get status testb $0x2,%al # Busy? - jnz seta20.1 # Yes + jnz seta20.2 # Yes movb $0xdf,%al # Enable outb %al,$0x60 # A20 + sti # Enable interrupts ret # To caller # Read from disk diff --git a/sys/boot/i386/boot2/boot1.s b/sys/boot/i386/boot2/boot1.s index 8b408ce..a919d2e 100644 --- a/sys/boot/i386/boot2/boot1.s +++ b/sys/boot/i386/boot2/boot1.s @@ -13,7 +13,7 @@ # purpose. # -# $Id: boot1.s,v 1.1.1.1 1998/10/12 21:16:26 rnordier Exp $ +# $Id: boot1.s,v 1.2 1998/10/13 21:35:42 rnordier Exp $ .set MEM_REL,0x600 # Relocation address .set MEM_ARG,0x800 # Arguments @@ -109,16 +109,18 @@ main.5: movwrm(_dx,MEM_ARG) # Save args # Enable A20 -seta20: inb $0x64,%al # Get status +seta20: cli # Disable interrupts +seta20.1: inb $0x64,%al # Get status testb $0x2,%al # Busy? - jnz seta20 # Yes + jnz seta20.1 # Yes movb $0xd1,%al # Command: Write outb %al,$0x64 # output port -seta20.1: inb $0x64,%al # Get status +seta20.2: inb $0x64,%al # Get status testb $0x2,%al # Busy? - jnz seta20.1 # Yes + jnz seta20.2 # Yes movb $0xdf,%al # Enable outb %al,$0x60 # A20 + sti # Enable interrupts ret # To caller # Read from disk |