Online HelpPC 2.10      Quick Reference Utility     Copyright 1991 David Jurgens
 
                    MCB - DOS Memory Control Block Format                    
                                                                                
     Offset Size                Description                                     
                                                                                         00   byte       'M' 4Dh  member of a MCB chain, (not last)                                       'Z' 5Ah  indicates last entry in MCB chain                                       other values cause "Memory Allocation Failure" on exit           01   word       PSP segment address of MCB owner (Process Id)                                    possible values:                                                                     0 = free                                                                         8 = Allocated by DOS before first user pgm loaded                                other = Process Id/PSP segment address of owner              03   word       number of paras related to this MCB (excluding MCB)              05 11bytes      reserved                                                         08  8bytes      ASCII program name, NULL terminated if less than max                             length (DOS 4.x+)                                                10  nbytes      first byte of actual allocated memory block                                                                                                                                                                                        - to find the first MCB in the chain, use  INT 21,52                             - DOS 3.1+ the first memory block contains the DOS data segment                    ie., installable drivers, buffers, etc                                         - DOS 4.x the first memory block is divided into subsegments,                      with their own memory control blocks; offset 0000h is the first                - the 'M' and 'Z' are said to represent Mark Zbikowski                           - the MCB chain is often referred to as a linked list, but                         technically isn't                                                                                                                                                                                                                       
           DOS 4.x Initial Data Segment Subsegment Control Blocks:           
                                                                                
     Offset Size          Description                                           
        00   byte       subsegment type                                                                  'D'  device driver                                                               'E'  device driver appendage                                                     'I'  Installable File System driver                                              'F'  FILES= control block storage area (for FILES>5)                             'X'  FCBS= control block storage area, if present                                'C'  BUFFERS EMS workspace area if BUFFERS /X is used                            'B'  BUFFERS= storage area                                                       'L'  LASTDRIVE= current directory structure array                                'S'  STACKS= code/data area, if present (see below)              01   word       paragraph of subsegment start                                    03   word       subsegment size in paragraphs                                    05  3bytes      unused                                                           08              types "D" and "I", filename of driver loaded driver                                                                                                                                                                                - see  INT 21,48  INT 21,49  INT 21,4A                                                                                                                                                                                                      
[helppc.bosbyte.nl]          Memory Control Block             Home  Back  Topics