Thanks, Frank, for the long reply:
But, yours is a different problem: your printer does not even have
LPT "input".
It has USB and Ethernet. At the moment, I have just the latter wired to
my router.
Technically, a USB printer shows up on the USB bus as a "USB LPT
device", or "USBLP".
How can I find that? My FreeDOS PC has the USBDOS directory in C:.
Though I'm not confident of how to use the stuff in it!
The USB standard has a "device class" for this,
and modern operating systems have a generic class-based driver for
this... which is not the case of MS-DOS.
The FreeDOS PC has these Peripheral Component Interconnect (PCI) USB
controllers.
Bus 0 0
Dev 1D 1D
Func 0 1
Slot 1D 1D
Vend 8086 8086
Dev. 24D2 24D4
Class Name Serial Bus Serial Bus
Subclass Name USB USB
Effectively, you need a stack of USB drivers for DOS, that will make
use of a USB host controller (UHCI / EHCI / XHCI), enumerate the bus,
and upon encountering a USBLP device, load a generic class-based
driver for that device.
I'm told that the USB controllers are UHCI.
The FreeDOS PC has the DOSUSB20 directory in C:. Though I'm not
confident of how to use the stuff in it!
To the best of my knowledge, there's a single driver package of this
kind that I know about, working on bare metal in pure old DOS - the
one by Bret Johnson:
As above, I have his directories USBDOS and DOSUSB20 installed in C:.
But I don't know how to use what's in them!
More prose about USB printing in DOS:
https://www.wpuniverse.com/vb/showthread.php?38551-Print-to-USB-printe
r-in-pure-MS-DOS-system/page2&s=8f49961ada033bce8d27f50b29967cd1
I have bookmarked that page, to be read.
Bret Johnson's driver only supports UHCI controllers, which were only
included in the PC chipsets up to and including Intel 4x series
(coming with the 45nm Core2 generation of CPU's).
I understand that I'm in-luck there.
Apparently, you are lucky, because the OptiPlex GX270 appears to be a
Pentium 4 generation PC.
{Microprocessor type
Intel® Pentium® 4 and Celeron®; design provides for future
Dell-supported upgrades. A slower compatibility speed can be set through
system setup.}
http://gosrock.com/mygx270/ug/specs.htm
Already supporting USB 2.0 and having an
EHCI, but in addition to that, all the USB ports are also available
via an UHCI (USB 1.1 controller).
{Bus type
PCI 2.2
AGP 3.0
USB 2.0}
So I suggest that you give Brett's
driver a try.
As above, I need walking-through this!
An alternative approach might be, to attach the USB printer to a
Windows PC and share the printer on the network, and install a
Microsoft Network client for MS-DOS on your DOS-only PC, and map the
LPT1 over the network to your Windows PC.
Ugh: I don't have the Work of the Devil!
But, you need to be able to configure
the networking stuff, preferably over TCP/IP nowadays.
My broadband gateway is a Technicolor TG-789. I log in to it from a Web
page, on my Linux PC.
I believe it does have a
chance against Samba in Linux, which I'm still using to serv8e
PXE-booted diskless clients (for disk mapping, not for printing, but
the auth is the same I guess).
My Linux PC distro is Ubuntu.
Your printer apparently also supports network printing: via IPP (too
modern), JetDirect style raw TCP port 9100, and UNIX standard LPR.
Yes, I see "LPR/LPD", "Custom Raw Port/Port9100", and "IPP/IPPS" listed
below!
{Protocols
IPv4
ARP, RARP, BOOTP, DHCP, APIPA(Auto IP), WINS/NetBIOS name
resolution, DNS Resolver, mDNS, LLMNR responder, LPR/LPD, Custom
Raw Port/Port9100, IPP/IPPS, FTP Server, TELNET Server,
HTTP/HTTPS server, TFTP client and server, SMTP Client,
SNMPv1/v2c/ v3, ICMP, Web Services (Print), CIFS client, SNTP client}
Manual Appendix p. 191
Unfortunately, it does not contain a Microsoft Network stack
(samba/CIFS) so you cannot map the printer directly by "net use ..."
Hey, "CIFS client" is listed above!
I've found hints that Xerox or Sun used to have an implementation of
the command-line LPR client for MS-DOS:
http://download.support.xerox.com/pub/docs/DC240_DC250/userdocs/any-os
/en/Using_lpr_Utilities_for_DOS_and_Unix.pdf
It's on my Linux PC Desktop, to be read.
...apparently dependent on some "very own" TCP/IP stack for DOS, and
not hooking LPT1 = you could print from your software into a file and
then copy that file to the network printer using the LPR utility.
This is beginning to look hard!
How about using a Raspberry PI to build a Samba printserver for your
USB/LAN-attached printer?
Since a community workshop kicked me out, I haven't done any electronics.
Or, if you resort to running your DOS software in Windows or even
some kind of DOS PC emulator on any modern OS, your goal to forward
jobs from LPT1 to any miscellaneous printer would be much easier to
achieve.
I might as well transfer files via USB stick to my Linux PC and print
them from there!
If all else fails, there is commercial software for Windows
to help you with that.
(Being retired), I believe in "free".
Looking
into the docs of your printer, it's new enough to support "laserjet
emulation" (read: HP PCL at some older version) and apparently
PostScript as well
No, another model, the HL-3170CDW, does LaserJet. Whereas my HL-3150CDN
emulates "GDI".
Don't expect the printer to
print a plain ASCII file for you - but if you can produce or copy a
PCL or PostScript formatted print job to LPT1, you're good to go.
The former rules out my suggested use-case for printing DOS documentation.
There are too many variables, I have never trodden the
whole path, namely USB printing.
I hope that I've filled in some blanks.
See for yourself if you can make it
work.
I've given-up at this stage.
You have my respect for playing with this classic stuff
If I can make something work, then I've learned something. And I don't
need to fit modern commercial standards, for a half-time job that I
don't have!
--
members.iinet.net.au/~kilgallin/
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user