Google Answers Logo
View Question
 
Q: Printing from a Windows 2000 Virtual Dos Machine ( Answered,   7 Comments )
Question  
Subject: Printing from a Windows 2000 Virtual Dos Machine
Category: Computers > Operating Systems
Asked by: rickspicks-ga
List Price: $100.00
Posted: 09 May 2006 20:43 PDT
Expires: 08 Jun 2006 20:43 PDT
Question ID: 727151
I have a legacy DOS Point-of-Sale App, written by me, that has been
running for years on DOS machines as Microsoft Clients. Hardware and
networking problems forced me to to switch to computers running
Windows 2000 on a Microsoft network.

Everything works fine except THERE IS A FIFTEEN PLUS SECOND DELAY
BETWEEN THE EXECUTION OF THE PRINT COMMAND AND THE START OF THE
RECEIPT PRINT. The opening of the cash drawer, triggered by a command
sent thru the printer, is simmilarly
delayed. This is unacceptable in a Cash Register function. The
response should be immediate.

I have learned that printer driver installed in the Windows Printer
files, has no effect on print commands issued by the VDM - it is the
Windows Virtual Device Driver(s) that controls. The only way I have
found to have a waiting print job execute immediately, is to terminate
the DOS progrsam, which is impractical.

I am willing to pay $100 for a quick and simple solution if one
exists. Alternatively I am willing to entertain a proposal to tweak or
modify the appropriate VDD

Request for Question Clarification by sublime1-ga on 09 May 2006 21:37 PDT
rickspicks...

I'm not at all familiar with VDM or how it functions within
the Windows environment. Nor do I have a clue about how to
tweak the VDD(s). I'm wondering if there might be a simpler
way, such as making more RAM available for the drivers and
the VDM, which might speed up the process.

Have you looked in Task Manager to see what the RAM usage
looks like? Does the VDM run as an application, so that
you can see how much RAM it's using on the fly, under
the Performance tab? Does available RAM decrease significantly
when a Print order is given? How much RAM is available 
before and after? How much RAM do you have, total?

Let me know what you find, and what you think...

sublime1-ga
Answer  
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
Answered By: tox-ga on 04 Jun 2006 01:55 PDT
 
Hi there,

Here's a quick and simple solution for you.

Just download the following file, unzip, and run the reg file
corresponding to what you want, and that's it!

http://www.maxlin.ca/SetLPTTimeout.zip

Cheers,
Tox-ga
Comments  
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: eschuch-ga on 09 May 2006 21:44 PDT
 
Add a "generic - only text print" with all defaults configs.
Take the "properties" of this new printer, search and mark "print
directly in the printer".
Look for "Priority" and set this to "99".
Set the data type to "RAW".
This is the fast u can get on windows, totaly "NOW" printing!
That is all. Sorry about my English.
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: eschuch-ga on 09 May 2006 22:17 PDT
 
Or use freedos (freedos.org).
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: eschuch-ga on 09 May 2006 22:24 PDT
 
http://support.microsoft.com/default.aspx?scid=kb;en-us;318954
Update win2k. All this are answers for your question.
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: frde-ga on 11 May 2006 02:41 PDT
 
I have had something similar reported on a system that prints directly
to LPT1 via Int 17h - except that is captured by Windows so it is no
longer direct.

In effect, the system is looking for a 'file close', but printing to a
file 'LPT1' is impractical as the system just hangs if there is a
printer problem.

I can think of several workarounds for this, probably the best is
print the output to a file and use a very small Windows program to
poll for the file and print it.

Typically print to a file called 'private.tmp'
Then rename 'private.tmp' to 'print.001' or 'print.002' etc

The Windows App polls looking for 'print.*' if it finds one, then it
reads the file, deletes it and shoves the contents out to the spooler
using :
   OpenPrinter
   StartDocPrinter
   StartPagePrinter 
   WritePrinter
   EndPagePrinter
   EndDocPrinter 
   EndDocPrinter

The DOS program will know if the other App is not running, as the
Print.00? files will build up - if that happens then it could
re-launch the Windows program using Shell(), Spawn() or some
equivalent.

It is a pretty crude solution, but it should be simple to implement, and robust.

Another thing comes to mind, if the receipt printer is on an RS232
then you could print directly to the RS232 - that gives a bit more
feedback.
I run a Zebra receipt printer like that under both 98 and XP - no driver at all.
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: scarrico-ga on 11 May 2006 12:26 PDT
 
I had the exact problem you described.  The solution that worked for
me can be found at http://www.resortdata.com/customers/Knowledge/KB-DOS/K000036.htm
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: frde-ga on 12 May 2006 00:53 PDT
 
@scarrico-ga 

Nice one - info emailed to client.
Subject: Re: Printing from a Windows 2000 Virtual Dos Machine
From: dipendesai-ga on 03 Jun 2006 09:19 PDT
 
Dt.3rd Jun'2006

Hello rickspicks-ga 

Well apropose your question related to speed problem, it might solve
via following registry Modification. Which I allready tested in many
DOS Based Applications, especially run under WIN-XP/2000 etc..
Pl.follow this steps. ...
***********
regedit   :  (From Run Command)
Ctrl-F    :  (Find)
LPT_TIME  :  (Just type LPT_TIME in Search Text)
Click that Property and Change the Value Data From 15 to 1
Re-Find Via F3  (Until  Registry Ends)
***********
Thats all Sir, Hope, you problem might solve - Good Luck
Courtsy:
Dipen Desai
Ahmedabad-India : ibmdds@yahoo.com, ibbmdds@gmail.com

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy