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?
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.