The MKSYM program takes as input a map file from one of the DOS linkers
and generates a SYM file for use with GRDB.  The map file must be generated
with appropriate switches so that publics will appear in it.

The file format is a list of symbol records.  Each record has the following
format:

byte 1:       0 = no fixup, 1 = segment fixup
byte 2-3:     offset of address
byte 4-5:     reserved
byte 6-7:     segment of address
              if byte 1 is 0, the segment will be loaded directly into
              the GRDB symbol table.  If byte 1 is 1, the segment will be
              fixed up based on the relocation address.  For EXE files 
              the relocation address is PSP + 100h; for COM files the
              relocation address is the PSP.
byte 8:       length of name 'n'
byte 9-9+n-1: name (no termination)

GRDB stores this information internally in a similar format, except
byte 1 is not stored and all values are stored in relocated fashion.  If
you save it from GRDB after making changes it will attempt to generate
the unrelocated version again, but only values in the program's primary
memory block will be unrelocated, everything else will be absolute.
