Quote Originally Posted by Trixter View Post
I think your .exe didn't work because you may have been making assumptions in the code about what the default segment registers were set to. In a .COM, CS=DS=ES=SS, so missing something is much more likely to work by accident.
Quite right. A quote from my first post:

"Part of it might relate to memory segmentation and me not knowing how to deal with it. For example, to open a file or read a file the effective address of the FCB is held in ds,dx and that has to be in the PSP area where the FCB is"

So I was part of the way onto what the issue might have been.