clear the carry flag before calling BIOS functions

This commit is contained in:
2025-09-05 10:33:42 -04:00
parent c3871d2b7d
commit a53534acd2
4 changed files with 6 additions and 0 deletions

View File

@@ -53,6 +53,7 @@ GetMemoryMap:
.loop_L1:
mov eax, 0x0000E820 ; select 0xE820 function
mov edx, 0x534D4150 ; 'SMAP' magic
clc ; clear carry
int 0x15
jc GetMemoryMap.error
cmp eax, 0x534D4150

View File

@@ -105,6 +105,7 @@ EnableA20:
je EnableA20.endp ; A20 is already enabled
mov ax, 0x2403
clc ; clear carry
int 0x15
jc EnableA20.do_fallback_a20 ; carry = error...not supported?
cmp ah, 0
@@ -121,6 +122,7 @@ EnableA20:
ERROR STAGE2_A20_FAILED
.do_bios_a20:
mov ax, 0x2401
clc ; clear carry
int 0x15
jmp EnableA20.a20_check
.do_fast_a20:

View File

@@ -111,6 +111,7 @@ read_disk_raw:
mov ah, 0x42 ; call #
mov dl, byte [bp + 14] ; drive #
clc ; clear carry
int 0x13
jnc .endf

View File

@@ -96,6 +96,8 @@ main:
mov ah, 0x41
mov bx, 0x55AA
mov dl, 0x80
clc
int 0x13
jnc main.find_active
ERROR MBR_ERROR_NO_INT32E ; no extended function support