Up ] Docs Home ]

Format of DOS memory control block

Back ] Next ]

Offset Size Description

00h

BYTE

block type: 5Ah if last block in chain, otherwise 4Dh

01h

WORD

PSP segment of owner or special flag value (see #01629)

03h

WORD

size of memory block in paragraphs

05h

3 BYTEs

unused by MS-DOS
(386MAX) if locked-out block, region start/prev region end

---DOS 2.x,3.x---

08h

8 BYTEs

unused

---DOS 4.0+ ---

08h

8 BYTEs

ASCII program name if PSP memory block or DR DOS UMB, else garbage
null-terminated if less than 8 characters

Note:

The next MCB is at segment (current + size + 1).
Under DOS 3.1+, the first memory block is the DOS data segment, containing installable drivers, buffers, etc. Under DOS 4.0+ it is divided into subsegments, each with its own memory control block (see #01633), the first of which is at offset 0000h.
For DOS 5+, blocks owned by DOS may have either "SC" or "SD" in bytes 08h and 09h. "SC" is system code or locked-out inter-UMB memory, "SD" is system data, device drivers, etc.
Some versions of DR DOS use only seven characters of the program name, placing a NUL in the eighth byte.

See Also:

#01630,#01632,#01633