diff options
Diffstat (limited to 'src/stage2_a20.asm')
-rw-r--r-- | src/stage2_a20.asm | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/stage2_a20.asm b/src/stage2_a20.asm index 630c67a..2110621 100644 --- a/src/stage2_a20.asm +++ b/src/stage2_a20.asm @@ -32,9 +32,13 @@ check_A20_enabled: pop ax mov byte [es:di], al + mov al, '0' + call print_char mov ax, 0 ; wrapped around (last cmp) je .exit + mov al, '1' + call print_char mov ax, 1 ; not wrapped around .exit: @@ -43,16 +47,17 @@ check_A20_enabled: pop es pop ds popf - + ret check_and_enable_A20: call check_A20_enabled cmp ax, 1 je A20_ENABLED - ret A20_ENABLE_VIA_BIOS: + mov al, 'X' + call print_char mov ax, 0x2401 int 0x15 @@ -61,6 +66,8 @@ A20_ENABLE_VIA_BIOS: je A20_ENABLED A20_ENABLE_KBD_PORT: + mov al, 'X' + call print_char mov al, 0xdd out 0x64, al @@ -68,8 +75,13 @@ A20_ENABLE_KBD_PORT: cmp ax, 1 je A20_ENABLED + jmp A20_FAST_SPECIAL_PORT + A20_ENABLE_KBD_OUT: + mov al, 'X' + call print_char + cli call .wait_input @@ -122,6 +134,10 @@ A20_ENABLE_KBD_OUT: je A20_ENABLED A20_FAST_SPECIAL_PORT: + + mov al, 'X' + call print_char + in al, 0x92 or al, 2 out 0x92, al |