First post, by peterferrie
This is a problem for anything that executes files manually (ie alloc mem, read file, duplicate PSP, hook int 22, run the code). The problem is that after the execution of int 22 to resume from the parent, the registers are all destroyed. Real DOS saves the registers on all calls to int 21h. I suppose that DOSBox doesn't do that for performance reasons, but it's a nasty surprise. The simplest fix would be to save the registers if ah=55h/int 21h is called, since that's the last thing that the manual loaders do before transferring control to the child process.