First, let me thank you for this incredible program that lets me run old DOS based DataFlex v2.3b program on Windows 10 x64. It really helps a lot. However, I can not print to printers at all. I am still having to run Terminal Server on a 32 bit 2003r2 in order to print. On a daily basis, I only use the app to print invoices, which I do by using remote desktop to connect to a 2003r2 Terminal Server. It shows the following when you run "NET USE":
Local: LPT2 Remote \\ad-ad\invoice
It shows the same if I run that command on the server AD-AD. Not sure why I'm redirecting LPT2 to the share on the same server. It also shows the same if I run it on the only remaining Win7 x32 user station. I use the Win7 x32 unit to run reports weekly, monthly, and yearly reports and that is no big deal but if I resolve the LPT2 issue, I can probably do the same for the LPT1 report printer.
If I can get vDos to redirect LPT2 properly, it would be a huge help.
Invoice is actually a Dos Matrix printer on the network with a printer server at IP 10.1.3.2. I can install a generic printer on Win10 x64 and use that IP and print to it fine. I just can't make it work in vDos. I installed on this Win10 x64 unit, named it "Invoice", and can copy a file to "Invoice" and get output. Config.txt has the line:
I know it is reading config.txt because at first I followed the instructions in Printing.pdf and it showed it as needing a space before and after the "=", which I did and it generated an error.
Spaces in examples are merely for decoration/readability.
Your DOS matrix printer won’t support Windows GDI printing, that’s why you had to choose a Generic Text driver. For vDos it doesn’t matter, as long there’s a printer driver to access the printer. But you have to tell vDos not to interpreter the ASCII data streams and convert those to GDI pages passed on to the printer driver. So add the RAW option:
vDos will then send the ASCII data streams unmodified to the printer, essentially also bypassing the printer driver.
Best of course to replace the DOS printer by a Windows one.
I tried the RAW option already, should have included that in my post. Same result as without it as far as I can tell. It simply hangs the program, exactly as if I was running the program on a WinXP computer with an actual physical LPT2: port and the printer was not ready. It will wait forever and I have to end the vDos task to stop it.
The DataFlex program outputs nothing to any printer except text, CR/LF, and FF. It is setup as Generic/Text Only on the 2003R2 Terminal Server. When I was reorganizing the business, I had it running single user on the remaining Win7x32 unit and had output to physical LPT1 for reports and LPT2 for Invoices.
Seems like all I'm trying to do is duplicating what I'm doing on the current Win7x32 machine by entering Net Use LPT2 \\AD-AD\Invoice. I can also add the printer directly to the Win7x32 user station and share it as invoice, then enter Net Use LPT2 \\Shipping\Invoice.
Is there a way to confirm that LPT2 is being mapped from within vDOS? Seems like that is all that isn't working.
LPT/COM ports in vDos don't relate to Windows ports/devices. NET USE doesn’t apply, has no effect. Comment out the LPT2=… line, and select at runtime some Windows printer driver. Or start vDos with the log option (….vDos.exe /log) and post the generated vDos.log file.
I understand Net Use has not effect and ports are different. I'm just expecting the same results as I get when I use that command on any x32 OS previous to Win 10. If I was chasing this problem, I would look at the results of a Net Use command. I was just wondering if there was something similar.
In Windows, Net Use is mapping a port to a network printer. In vDOs, SEL in config.txt is mapping to a LOCAL printer, right?