Turns out that the problem with using lp must have been the adaptor. Its a parallel printer, and it was being connected through one of those parallel to usb adaptors. With a parallel cable, and redefined as /dev/lp0, it works. The original method of cat > /dev also works on this definition. No idea why, though. I have used those usb adaptors successfully in the past and if it were possible to hit it using cat >/dev, it seems puzzling that lp could not drive it. Should have thought of trying this earlier, but of course, SFF machines now often don't have parallel interfaces.
I also now do lprm on starting up the program to clear the queue, just in case.
Regards
Peter