View topic - CUPS

Page 1 of 1

CUPS

PostPosted: Tue May 01, 2018 2:50 am
by grovebaby
Will CUPS, (common unix printing service) work with QNX2?

Re: CUPS

PostPosted: Tue May 22, 2018 6:01 am
by maschoen
grovebaby wrote:Will CUPS, (common unix printing service) work with QNX2?


I missed this question when it was first posted. Short answer, doubtful.

But a followup. Why would anyone want to get CUPS working with QNX 2?

I'm sure there are a few out there, but who on earth is even still using QNX 2?

Re: CUPS

PostPosted: Wed Jun 13, 2018 3:56 am
by grovebaby
I have 25 Autonet data acquisition pc's that run on QNX2.21. The Autonet app only supports printers that are hard to get now. I'm trying to figure out how to load an additional printer driver for a modern printer. It only supports LPT port, but I have a lpt to usb adapter. I tested it and it works with the supported print drivers. I need to figure out hownto either add a driver to the list or something else. That's why I have been looking at CUPS. Can anyone help?

Re: CUPS

PostPosted: Wed Jun 13, 2018 4:38 am
by maschoen
grovebaby wrote:I have 25 Autonet data acquisition pc's that run on QNX2.21. The Autonet app only supports printers that are hard to get now. I'm trying to figure out how to load an additional printer driver for a modern printer. It only supports LPT port, but I have a lpt to usb adapter. I tested it and it works with the supported print drivers. I need to figure out hownto either add a driver to the list or something else. That's why I have been looking at CUPS. Can anyone help?


A little history here. When QNX 2 came out, the idea of a printer driver was not well established. Generally QNX programs would write to a particular products specs, eg. Epson. Later there was something called print-cap, analogous to term-cap. If the author of your data acquisition system was progressive they might have used print-cap or made up their own printer filter. You would need to know some specs for that to be of any use.

There is one somewhat difficult work around that could (in theory) be done. QNX 2 provided for writing your own device driver. You could write a driver that owned $lpt2. If you could re-point your software to output to that port, then it would get the output from your programs, which (if known) could be translated to some other format, eg. HP. The catch is there are probably less than 3 programmers in the world who still know how to do this. One of them Gordon Bell who has recently gone back to work for QNX, so unavailable.

Re: CUPS

PostPosted: Thu Jun 14, 2018 2:20 am
by grovebaby
It's actually QNX 3.21 not 2.21.

Re: CUPS

PostPosted: Thu Jun 14, 2018 2:46 am
by maschoen
grovebaby wrote:It's actually QNX 3.21 not 2.21.


Once you know the difference, there's no difference.

QNX 2.21 is the official version number of the last QNX 2 release.
There is no separate product QNX 3. When they rewrote the OS it became QNX 4.

This is where 3.21 comes from. QNX 2 always provided two versions. One was real mode and the other ran in protected mode. QNX 2 continued to run on the IBM PC 8088, as well as other chips that did not support protected mode, 8086 and 80186, and possibly others. The 286+ chips could run either way, depending on the boot file used.

Some software, particularly drivers needed a way to tell if the OS was running in protected or real mode. The method provided was to check the version number. 2 = Real mode, 3 = Protected mode.

Re: CUPS

PostPosted: Thu Jun 14, 2018 3:48 am
by grovebaby
Thanks for the info. Cups sounded like it would fit the bill. I searched around for where the print drivers are. i think they are in a dir called dynalib, in a file named C86Fprint. Does that sound right?

Re: CUPS

PostPosted: Thu Jun 14, 2018 4:18 am
by maschoen
grovebaby wrote:Thanks for the info. Cups sounded like it would fit the bill. I searched around for where the print drivers are. i think they are in a dir called dynalib, in a file named C86Fprint. Does that sound right?


dynalib and C86 refer to the C86 compiler. Again some background.

When QNX first came out, along with the OS you got a K&R 16 bit compiler. The executable module gave you a 64K of code and 64K of data. There was a curious extension. You could load the ES register and using the syntax

char *p;

p=0;
@p = ...;

p would use the ES register. So in an awkward way you could access 1Meg of ram, and later with protected mode 16Meg.

A few years in, QNX collaborated with a company Computer Innovations. They had a more advanced ANSI compiler that ran on DOS. Their problem was that Microsoft had destroyed the market for 3rd party compilers. The CI or C86 compiler had multiple models one could use. I think they were small (same as the QNX compiler) medium, large and huge. The huge model had some method of providing arrays larger than 64Meg. It was clunky and generally un-needed.

The package you speak of, CUPS would no doubt compile more easily with C86, but I don't think it will be of any value anyway. If you have the C86 compiler, note that later versions had a curious form of copy protection. You had to run a server to run the compiler. The server was network smart so if you only had one license, you could only run it on one QNX node. If you don't have C86, your sol to use it. The company is long gone. I might be able to fire it up, but it's possible the copy protection will block that.