diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-11-14 11:08:04 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-11-14 11:08:04 +0100 |
| commit | e3cc5f6c89ba9f37bf2c1edf588d0f75c1d63c57 (patch) | |
| tree | 1c43c3e9ce81f7564beb3a970b88beaa66169946 /boot/check_a20_16.asm | |
| parent | 2761b620043ad511d9baf66d5478a463aeece77b (diff) | |
rename dirs
Diffstat (limited to 'boot/check_a20_16.asm')
| -rw-r--r-- | boot/check_a20_16.asm | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/boot/check_a20_16.asm b/boot/check_a20_16.asm deleted file mode 100644 index 43da6e3..0000000 --- a/boot/check_a20_16.asm +++ /dev/null @@ -1,61 +0,0 @@ -; The following code is public domain licensed - -[bits 16] - -; Function: check_a20 -; -; Purpose: to check the status of the a20 line in a completely self-contained state-preserving way. -; The function can be modified as necessary by removing push's at the beginning and their -; respective pop's at the end if complete self-containment is not required. -; -; Returns: 0 in ax if the a20 line is disabled (memory wraps around) -; 1 in ax if the a20 line is enabled (memory does not wrap around) - -check_a20: - pushf - push ds - push es - push di - push si - - cli - - xor ax, ax ; ax = 0 - mov es, ax - - not ax ; ax = 0xFFFF - mov ds, ax - - mov di, 0x0500 - mov si, 0x0510 - - mov al, byte [es:di] - push ax - - mov al, byte [ds:si] - push ax - - mov byte [es:di], 0x00 - mov byte [ds:si], 0xFF - - cmp byte [es:di], 0xFF - - pop ax - mov byte [ds:si], al - - pop ax - mov byte [es:di], al - - mov ax, 0 - je check_a20__exit - - mov ax, 1 - -check_a20__exit: - pop si - pop di - pop es - pop ds - popf - - ret |
