Question

I'm using BIOS int 0x15 on my Bochs emulator, however this always returns the same memory size (34440) no matter what I have configured:

mov ax, 0x88
int 0x15

I know that there are better methods of memory detection, but I wanted to understand why this wasnt working as expected (just in case there is something I've done wring)

Why is this? Is the bochs bios just hard-coded to return this value?

Was it helpful?

Solution

The return value you're seeing (AX=34440) is AH=86H and AL=88H. It's not a memory size. I'll bet you're also seeing the carry flag coming back set, indicating an error. The error code 86H (in AH) means the function is not supported. You may have intentionally or unintentionally set up Bochs to emulate a pre-AT PC.

OTHER TIPS

you may try to check INT 15h, AX=E820h - Query System Address Map how bochs INT15/E820 BIOS-provided physical RAM map

Get Extended Memory Size

mov ah,88h
int 15h
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top