It's an old MS-DOS .EXE. Actually it compiles with the ".286" directive too. So I don't use protected mode.

It requires a VGA card and those were more common in 386 IIRC and, anyway, performance-wise to run at 60 Hz it needs a 386. I never tried to run it on a 286 with a VGA card: don't know if that was a thing.

It's funny looking at that old assembly code and see ax, bx, cx, dx registers and not the eax, etc. ones.

The utilities I've compiled to .EXE so far are self-contained in one file and I just use UASM to create directly the .EXE:

    uasm -mz myutil.asm
UASM v2.57 does the job in my case (note that I compile from Linux: UASM exists for several platforms/OSes):

https://www.terraspace.co.uk/uasm.html

I haven't tried yet to compile the entire game yet: that one is more involved as it implies many files.

VGA was pretty common on 286, I even had an SVGA card on my own back in the day. And it also had protected mode but was still 16-bit.