I just wanted anyone that is looking for a windows 10 fix for ESI system programmer to know that this fix actually works. I used FlexHEX editor and adjusted the byte just as described. It took me a while to navigate the editor but once I identified what he was referring to and made the change, the system programmer loaded as it should.

*Be sure to allow editing of the ESI file at the root level of permissions before trying to open the ESIMain.exe file for editing with FlexHEX
*Be sure to replace the edited file after making the adjustments with FlexHEX.



Originally Posted by Frodo Baggins
I'm sorry for not coming back here sooner. Yes the old programmer software can be run on windows 10.
You have to change 1 byte in the EsiMain.exe file.


The byte at position DF(Hex)/223(Decimal) in the original file is 85(Hex)/133(Decimal).
Change the byte at position DF(Hex)/223(Decimal) to 84(Hex)/132(Decimal).

And it will work.
You can use a hex editor to do this, or this powershell script:



Put the following in a text file called PatchESI.ps1, and place this file and EsiMain.exe in the same folder for patching.

Code
$infile = "EsiMain.exe"
$outfile = "Temp.exe"
$byte = [Byte[]] (0x84)
$f = Get-Item $infile
$file = (Get-Content $infile -encoding byte)[0..222] + $byte + (Get-Content $infile -encoding byte)[224..$f.Length] | Set-Content $outfile -encoding byte
Rename-Item $infile ("$infile" + ".old")
Rename-Item $outfile ("$infile")





This error occurs because the IMAGE_DLLCHARACTERISTICS_NX_COMPAT Flag is set in the exe because of a compile error when they built it,
due to a change from Microsoft that broke some things.

Here is some background info:
https://blogs.msdn.microsoft.com/ed_maurer/2007/12/13/nxcompat-and-the-c-compiler/