DBM files are bitmap images. They can be textures or raw images.
They begin with the magic sequence "\x0e\x00\x28\x00", followed by a 32-bit uint telling the image data length (again, minus 8 byte).
Then comes:
16-bit uint row count (height)
16-bit uint col count (width)
16-bit uint blocksize length
nullbyte
32-bit payload (raw image data) length
two nullbytes
The last two nullbytes are unusual, as normally the payload starts directly after the length!
The payload itself is composed of 1 byte per pixel in an unknown palette, which may be (!!) in the DPL directory. You can see them as gray-scale values and get a fairly good gray-scale version of the image, though!
Warning: Each image line is padded to n*blocksize_length. There is no way to tell how much padding was applied to the image! Particular examples are the two textures in shell0.vol\dba\chk_box.dba. Block size is always 8 (or better: other values haven't been seen yet).