> To prevent the int $80s from killing the process, I had to create a
> "monitor" process that basically acted as a debugger. Whenever the
> Linux binary executed a int $80, the monitor would gain control and
> redirect execution to the appropriate syscall.
That's exactly how UML operates, so what you've done is essentially the core
of a UML Windows port.
> I still have my source kicking around somewhere, I could make it
> available if there is interest. It's pretty rough around the edges
Yes, there is interest :-)
If you can make it available, I'd like to either link to it from my site or
host it. Whatever you prefer.
I'd like people who might be interested in doing a Windows port that some of
the work has already been done and is available.