463 |
jz 6f |
jz 6f |
464 |
orb $0x02, %al |
orb $0x02, %al |
465 |
6: outb $0x92 |
6: outb $0x92 |
466 |
|
|
467 |
|
/* When turning off Gate A20, do not check the state strictly, |
468 |
|
because a failure is not fatal usually, and Gate A20 is always |
469 |
|
on some modern machines. */ |
470 |
|
testb %dl, %dl |
471 |
|
jz 7f |
472 |
call gate_a20_check_state |
call gate_a20_check_state |
473 |
cmpb %al, %dl |
cmpb %al, %dl |
474 |
/* everything failed, so restart from the beginning */ |
/* everything failed, so restart from the beginning */ |
475 |
jnz gate_a20_try_bios |
jnz gate_a20_try_bios |
476 |
ret |
7: ret |
477 |
|
|
478 |
gate_a20_check_state: |
gate_a20_check_state: |
479 |
/* iterate the checking for a while */ |
/* iterate the checking for a while */ |