First post, by peterferrie
Real DOS does not coalesce free blocks during a ah=49/int 21 operation, but only during ah=48/4a. This helps performance a little bit, and the behaviour is relied on by ROSETro demo by Overlook.
ROSETro resizes an existing block to a smaller amount, in order to create an empty MCB at a particular location in memory. Then it frees the resized block, and resizes the empty block to allocate it specifically. The problem is that the previously freed block now contains the 'Z' marker, so even though the new block is allocated, there is no pointer to it, so any more allocations will eventually destroy the new block.
I'll patch ROSETro for now, since I've never seen it running before, but it would be nice if DOSBox would be patched in the next version.