Up ] Docs Home ]

(.map) Borland .MAP File Format

Back ]

The MAP file is simply a list of the segments contained in the compiled program together with information about the segment type and where it appears in the compiled code.

Here is an example of a .MAP file for a TASM prog i wrote:

Start Stop Length Name Class
00000H 00000H 00000H _TEXT CODE
00000H 00356H 00357H _CODESEG CODE
00358H 00358H 00000H _DATA DATA
00360H 00EE9H 00B8AH _VARSEG DATA
00EF0H 108EFH 0FA00H _SCRNSEG SCRN
108F0H 1092FH 00040H _STACKSEG STACK

Program entry point at 0000:02C7

Warning: No stack

First it displays headings for each column (start, stop, length, name, and class).. then it lists all the segments in the order they appear in the executable... the start is how far into the code (in hex) that the segment starts at, stop is how far into the code the segment ends.. and the length is stop - start. Under name is just the name of the segment that the programmer gave it when programming it.. (default segs are _TEXT and _DATA if you just use .CODE and .DATA to start your segs) and class is the alias that you give the seg.. for example.. if you declare the seg like the following in your program:


_SCRNSEGSEGMENT PUBLIC 'SCRN'
_SCRNSEGENDS

the name will be _SCRNSEG and the class will be SCRN. The program entry point is the state of CS:IP upon entry to the program (CS will be offset however depending on where in memory the program is loaded).. after that it lists any warnings or errors in the program.. in this case it gave a no stack warning because i manually declared a stack seg rather than using the conventional .STACK <SIZE> directive.