diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86/boot/head.s | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/arch/x86/boot/head.s b/arch/x86/boot/head.s index a1bc6d1..d24e36c 100644 --- a/arch/x86/boot/head.s +++ b/arch/x86/boot/head.s @@ -23,5 +23,13 @@ _start:  	mov $0x90000, %ebp			# Update stack position so it is right  	mov %ebp, %esp				# at the top of the free space. +check_a20: +	mov $0x112345, %edi			# Odd megabyte address +	mov $0x012345, %esi			# Even megabyte address +	mov %esi, (%esi)			# If A20 line is disabled two pointers +	mov %edi, (%edi)			# would point to the address 0x012345 +	cmpsd						# Compare values at addresses +	je .						# If equivalent, loop forever +  	call kernel_main  	jmp . 						# infinite loop | 
