as the title says, im having a little problem with the int 0x15 ( get memory map)
i can get the input, but i get some strange numbers, and i tryed to calculate the size( which shuld give 64 mb), but with no good result.
It is with ACPI 3.x
but dont think about that part ..
here is the raw input:
Code: Select all
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFC 0x09 0x00 0x00 0x00 0x00 0x00
0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0xFC 0x09 0x00 0x00 0x00 0x00 0x00
0x00 0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x01 0x00 0x00 0x00
0x00 0x80 0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x01 0x00 0x00 0x00 0x00 0x00
0x02 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0xEF 0x03 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00
0x00 0x00 0xFF 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00
0x03 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0xFC 0xFF 0x00 0x00 0x00 0x00
0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Code: Select all
from 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |0x0000000000000000
length 0x00 0xFC 0x09 0x00 0x00 0x00 0x00 0x00 |0x000000000090cf00
type 0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00 |0x01
from 0x00 0xFC 0x09 0x00 0x00 0x00 0x00 0x00 |0x000000000090cf00
length 0x00 0x04 0x00 0x00 0x00 0x00 0x00 0x00 |0x0000000000004000
type 0x02 0x00 0x00 0x00 0x01 0x00 0x00 0x00 |0x02
from 0x00 0x80 0x0E 0x00 0x00 0x00 0x00 0x00 |0x0000000000e00800
length 0x00 0x80 0x01 0x00 0x00 0x00 0x00 0x00 |0x0000000000100800
type 0x02 0x00 0x00 0x00 0x01 0x00 0x00 0x00 |0x02
from 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x00 |0x0000000000010000
length 0x00 0x00 0xEF 0x03 0x00 0x00 0x00 0x00 |0x0000000030fe0000
type 0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00 |0x01
from 0x00 0x00 0xFF 0x03 0x00 0x00 0x00 0x00 |0x0000000030ff0000
length 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 |0x0000000000100000
type 0x03 0x00 0x00 0x00 0x01 0x00 0x00 0x00 |0x3
from 0x00 0x00 0xFC 0xFF 0x00 0x00 0x00 0x00 |0x00000000ffcf0000
length 0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x00 |0x0000000000400000
type 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |0x02
and if i add the usable memory together i get the hex number : 0x318ECF00
can anyone tell me what i do wrong ??
and secound: how can it be that 2 addresses cross eachother ???
aint BIOS supossed to do "avoid" that ??
[ just to be sure i use bochs, with 64 mb memory]
KMT dk