Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
PMemoryMap = ^TMemoryMap;
TMemoryMap = packed record
size: cardinal;
base: qword;
length: qword;
mtype: cardinal;
end;
...
var a: PMemoryMap;
a := MbInfo.MemoryMap;
for i := 0 to (MbInfo.MemoryMapSize div SizeOf(TMemoryMap))-1 do
begin
writeln(a^.Base,'->',a^.length);
inc(a);
end;