BP7 Heap Internals

I am trying to write code to examine the heap.  A number of years ago, I
wrote one in Computer Innovisions C that used the function heapwalk. I
believe that C (or at least that version of C) stored one or more of:
information about the size of the allocated chunk, a pointer to the next
chunk, or a valid flag.

I took a look into the BP7 heap and it looks like the heap just contains
segment aligned values. Is this true? If so, is there a list of all
allocated heap chunks? Where can I get access to the free list?  Is there a
better strategy for dissecting the BP7 heap?

Thanks very much in advance.

-Bill Littman