Overflow Printer Problem

About a dozen clients have reported over the past couple of months that they are suddenly having a problem printing their PO1s, with their newly acquired (almost exclusively HP) printers.  They report that they get an error message with the word "Overflow."  These HP Printers are the latest, greatest, and are being sold at very, very low prices...

In at least one long session that a client had with HP, the HP personnel accepted responsibility.  In all other cases, tech support personnel from other organizations have blamed our code.  For obvious reasons, we applaud HP for stepping up.

Nonetheless, we have tried mightily, I might add to work around the problem, from our end...  We have figured out that it only occurs in the reimbursements columns.  But...

We also spent four days doing general kinds of tests with the printer -- merge printing through Word, printing graphics and things like that, reloading the printer driver software, and it was a nightmare.  It was an HP 5650, and it manifested problems all over the place...

But more significantly...

We have been able to determine that the problem is not ours.  Here is how:



As mentioned above, our client was able to show to HP's satisfaction that the problem was not with the WinPower.



When we slowed down the code by putting "stops" (message boxes) between each line of code, the problem disappeared.  In other words, there are no offending commands that can be identified.  It all worked.

(By the way, this would seem to indicate that there is a "syncronicity" problem with memory management that is, the code is not being executed in the same sequence that the commands are being issued.  Or it could be that the printer's memory is not clearing itself out as quickly as it is supposed to.)



Every time a client put their old printer back, the problem disappeared.



This code has been working for six years, and has not been changed at all in four.  The only change was the new printer.


PO1 Print works on more than 600 (!) other printers.


PO1 print works on 15 year-old 386 PCs, and 15 year-old teeny, weeny Cannon Bubble Jet printers, and old, wide carriage, dot-matrix impact printers.


If you kept trying, it would succeed... Sometimes and intermittenly.  When the code is mature as WinPower's is this is usually an indication that the problem lies elsewhere.  And besides, why would the same code succeed, and then fail, randomly?


If you kept trying, and the print job succeeded, it might print incorrect or garbled numbers.  Clearly we are not sending gibberish to your printer.  As above, when the code is mature as WinPower's is this is usually an indication that the problem lies elsewhere.


We tested one of the offending printers in our office, with our CPU, and had no problem.  This demonstrates beyond all doubt that this printer works with some CPUs, but not others.  And this is the fault of the printer.  The latest printers should work with ALL computers, not just some.


The PO1 Print module contains nothing but the simplest and oldest and most venerable commands.  There is nothing exotic in this part of the program.  These commands are the same as they were in the late fifties [e.g.: "printat(1,1);FirstName"].  This simple code couldn't suddenly become toxic, and only for some printers...


We have a combined 35 years of programming experience.  We have no history of backing away from re-writing (lots of) code when necessary.  We have provided a remedy, that, while arduous, does not change any of our code, and it will get the darn thing to print.  We've been around long enough to be believed when we say it ain't us.

You might ask the following questions:

Q.   Why does everyone blame your code?

Being a small company, and a "third-party" software vendor, we are the easiest target.

There are often millions of lines of code in operating systems and printer drivers.  It is very hard to determine what the problem might be, and so, being insecure in a competitive market place, and not wanting to blame an institution that could take effective punitive actions, the smallest fish gets blamed.

In fact, even one of our own, very loyal clients admitted to blaming us, and pushing us to "correct" the problem because they knew we would be the only ones to even try, and even though they knew it was probably the new printer, because the old one still worked...  See what I mean?

Nonetheless, you can be assured that thousands of other people across the world are experiencing similar problems, and just like other problems that have occurred in the past with new hardware and operating systems, these companies will fix the problem, though quietly.

Q.   This is a new printer.  Shouldn't it work better?

Not necessarily.  New equipment is almost always more ambitious than what preceded it, introducing the sexiest new features that can be thought up.  Otherwise, why create and release new equipment?  And no matter how much new equipment is tested in the lab, it is not until it hits the open marked that it really gets field-tested.

Remember, these printers are now being asked to print photographs, web pages with complicated graphics, and video captures.  Like Icarus, they are flying very close to the sun...

Additionally, in this poor, but very competitive economy, there is quite a rush-to-market that has been going on for more than a decade.  This results in companies cutting corners in the testing process.

Q.   Why can other programs print to this printer?

WinPower CAN print to these printers every single print job, but one the PO1 (! - Darn!).  If you tried to print the PO1 from MS Word, say, that might fail too.

Indeed, when we tried using other programs to print documents, it failed often. (!)  Try putting 50 "thumbnail" photos on a page in MS Word, and 50 lines of text that simply say "hello," but in 50 different fonts. with many different tab types and settings.  Chances are, this print job will fail.

A.(II)   The big guys Microsoft, IBM, Oracle, etc. have THOUSANDS of programmers, who bypass the operating system and write directly to the core processor, using something called "Assembler."

Being a small company, we cannot afford the time to write in that language.  Instead, we issue commands to the operating system, which then executes them.  Because of this, we try to stay away from stuff that is too fancy, or too new.  But this does make us very dependent on the operating system.  It also commends our work that WinPower works on Windows 3.1, Windows 95, Windows 2000, Windows ME, Windows NT, Windows 98, Windows XP Home and XP Professional.  Does Word 2002 do that?  Does any other program that you can think of?

Nonetheless, we are not so passive that we don't have horizontal scroll bars, tabular list boxes, gauges, graphs and the like stuff you don't often see in other programs dedicated to markets of this size...

Q.   What have you tried to fix it?
A.   We tried dumbing down the code, with limited success.  We tried changing settings and properties for the printers, with no success.  We tried to identify the offending code, and learned there was none.  The only two remedies that worked reliably were changing the cable to a parallel cable, and interspersing our code with "stops" to slow it down.
Q.   What if I DEMAND that I continue to use this printer, and that you get WinPower to work with it?
A.   If this happens, or continues to happen, despite our warning, we will consider upgrading WinPower to a newer platform, but that is a BIG job, and there would need to be a charge.
Q.   Can you fix it?

Oy !!  Kind of.  Yes.

We re-wrote some of the code, to dumb it down a bit, and that fixed the problem for some of our clients... But not others.  But it may work for you.

Also, we inserted an option to "stop" the program after user-defined, varying amounts of code, to slow it down.  That worked reliably, but it will prove to be a real pain to you.  And of course, changing the USB cable to a parallel cable worked, too.

Q.   What do you recommend?

These are the options that we can think of:

1. Try changing the USB cable.  That has worked on occasion.

2. Try changing from a USB cable to a parallel cable.  That seems to always work.

3. Exchange the printer, to something other than a Dell or an HP.  There are plenty of other good printers that are cheap, small, quiet, and high-quality.  Why make us and yourselves crazy over lemons?

4. Go back to your old printer until new printer drivers come out that correct the problem.

5. Simply go back to your old printer.

6. Use our single-step remedy, without complaint.  It will work but you will have to sit there, and hit the Enter key on your keyboard for a seemingly interminable time, if you have a big school (but considerably less for a small school).

7. Don't put in for any Emergency Reimbursements (a joke).