leecher1337 / ntvdmx64

Run Microsoft Windows NTVDM (DOS) on 64bit Editions
793 stars 81 forks source link

Parallel Port will not work #69

Open JerseyJoe328 opened 4 years ago

JerseyJoe328 commented 4 years ago

I have 16-bit DOS software which utilizes the parallel port (through userport.sys) to communicate with an external programmer. While I am able to get the software to work, it is not able to communicate with the external programmer. Wondering if there is anything I can try, or something i can supply to try to get this working?

leecher1337 commented 4 years ago

The reason for this problem is that the userport.sys may just adjust the IO-Permission bits for a certain process so that IN/OUT commands get passed through to the real hardware. While this works with V86 mode, as the code is running on the physical CPU in this mode, it's not possible so easily when using an emulated CPU, like NTVDMx64 has to. Maybe it works with the HAXM-enabled NTVDMx64 build, as code also runs on the real CPU using HAXM, but I haven't tried that yet. Another possibility is to write a VDD Device driver for NTVDM that traps the port access and routes them through on the real CPU. But as I guess that timing is very important for your parallel port programmer, I don't know if this method is fast enough. Maybe your best bet currently is to use DosBox Megabuild, which has support for 64bit giveio.sys: https://www.ppxclub.com/678347-1-1