Metacode print output under Windows 7

6

0

I am trying to move an ancient Windows 3.11-based system into Windows 7. Most of this system is relatively easily transitioned; there are many options for running old apps under Windows 7.

However, the critical piece is generating files that are the print-job output of printing to a Xerox Metacode-driven printer. Metacode is essential a printer command language, like PCL5 or Postscript - e.g., a set of controls that are sent to the printer to tell it how to format output etc. Up until perhaps Windows 2000, Xerox apparently offered printers like the 6110 with driver options of PCL, Postscript, or Metacode.

The Metacode Printer driver is apparently printer-independent, much like a text printer file, or PDF generated as a "print" job, would be. I assume this is why it was chosen 15-20 years ago as an output format for this system. The app itself is an old word-processing program with some customization, which otherwise runs well directly under Win7 32-bit; however, the output has to be produced from an action like "print".

This output must be like what would be sent to a Metacode-capable printer, since the use of these output files is by a mainframe that needs to see that format.

I have been searching for any way to generate Metacode output in Windows 7, and so far not found anything. I could, for example, run the original app under exDOS or DOSbox, but neither of these allows me to load the 16-bit Metacode printer driver. And I can’t find any Metacode printer drivers that function under Windows 7.

I have been through the exercise of contacting Xerox, testing various virtual systems that run as if they were DOS or Win3.x based, and spent substantial time researching. So far, I’ve yet to even turn up a document that lists the Metacode commands, similar to this PCL reference.

I did find references like this:

A page description language used in early high-speed Xerox printers. Used for both text and graphics, Metacode can address all dots on the page. In contrast, Line Condition Data Stream (LCDS) is a Xerox text-only format, and Dynamic Job Descriptor Entry (DJDE) commands are text-based commands that can be included in LCDS and Metacode.

So I am looking for suggestions as to how to produce this output under Windows 7. This is not a recommendation for products per se, as I’m looking for a method, process, product, and/or procedure. On the other hand, if there is a Metacode driver that works under Windows 7, I’d be happy to be corrected as that would vastly simplify the solution.

Please let me know if you’d like any details added to the post to better explain the problem.

Debra

Posted 2015-01-28T05:24:01.200

Reputation: 4 000

Listing script generates a Metacode file. Printer model? – STTR – 2015-01-28T11:13:58.963

I tried to explain in the post - it's printer-independent. Like generating PDF output, in a way. BUT if there is a printer model that includes the metacode driver that works under Win7, it wouldn't matter what the printer was but I could use the driver. – Debra – 2015-01-28T13:22:28.450

Have you tried under Windows 7 32 bit? – Canadian Luke – 2015-01-28T15:00:41.457

You can't install a 16-bit printer driver under Windows 7. – Debra – 2015-01-31T08:46:37.043

1

Excellent question! Some similar info here.

– JakeGould – 2015-01-31T08:54:50.747

@JakeGould - Thanks for the link. Yes, that is similar to the situation; the Metacode file generated on the workstation gets transferred to a mainframe. – Debra – 2015-02-02T11:54:37.200

I would appreciate, for anyone who might downvote the question, that you'd comment on the reason(s) for doing so, or at least give a suggestion for how to improve the question. Thanks. – Debra – 2015-02-02T14:41:39.480

There appears to be software to convert PCL to Metacode: www.google.com/search?q=Metacode&ie=utf-8&oe=utf-8#q=convert+pcl+to+xerox+Metacode. It is easy to install a suitable PCL printer driver, then you just need to connect the PCL output to the conversion software.

– Andrew Morton – 2015-02-07T22:24:19.303

@AndrewMorton - Frustratingly, if you follow every one of those links, you find that all those that come up under links as "Convert PCL to Metacode" actually only convert Metacode to PCL (i.e. must have Metacode to start with). I originally hoped for a solution just as you described, after I found that I couldn't install a Win3.x printer driver in a Win3.x virtual environment. [Google is no longer my friend.] – Debra – 2015-02-08T05:04:18.270

1

@Debra The brochure for Terrapin's Design Pro Tools (Xerox) says it can take Windows EMF as input and ouput Xerox FRM, FSL and more. (This is not a product recommendation ,just something I saw.) Then your problem is reduced to producing Windows EMF, and you can set many Windows printer drivers to ouput that.

– Andrew Morton – 2015-02-08T13:24:07.207

The documentation for DesignPro (which appears to be actually from a company called "Elixir") actually says it can do the conversion, unlike every other product I've looked at so far. Ironically, Xerox also sells it; however, apparently the functionality is such an uncommon request that it was never mentioned as an option when I went to Xerox support with the issue. http://www.xerox.com/digital-printing/workflow/printing-software/elixir-design-pro/enza.html

– Debra – 2015-02-09T09:17:43.100

Answers

1

There are software products that can emulate a Metacode printer and tranform it so as to print on a more recent printer.

A quick search found these :

HostServe
RSA M.I.S. Print
XCHANGE printer emulation

There is also software to convert Metacode to, for example, PostScript :
Xerox Transformation - Convert DJDE, LCDS, Metacode.


It is highly unlikely that one may find a printer driver that produces a metacode file. Also, a 16-bit program from Windows 3.11 cannot run at all on 64-bit Windows.

To avoid these portability issues, the best solution might be to create a 16-bit virtual machine and on it install Windows 3.11 and the 16-bit metacode printer driver.

Almost all vitualization products allow the creattion of a virtual serial port on the guest that actually outputs to a file on the host.

This printer port, only usable inside the guest, may possibly be used to create the "Metacode printer" that you need. The generated metacode file on the host can then be sent on to be processed on the mainframe, as is actually your procedure.

If you still have the old Windows 3.11 computer, you could virtualize the physical computer to virtual (P2V), by virtualizing its hard disk and then attaching the virtual disk to a 16-bit virtual machine. This way the old Windows 3.11 setup will keep forever in its VM.

The Windows 3.11 VM doesn't need to connect to the network. The metacode file written to the virtual port is on the host, and it is the host that will connect to the network. The Windows 3.11 VM can be connected to the host-only virtual network adapter that is supplied by your virtualization product.

harrymc

Posted 2015-01-28T05:24:01.200

Reputation: 306 093

I'm in the process of reviewing these that I may have missed. However, website descriptions can be misleading. For example, M.I.S. Print can take Metacode and transform it to Postscript by appearing like a printer; however it can't produce Metacode (emulate a Metacode printer) as output from a program, e.g. via "printing", unless that program already has the means to create Metacode. This is what I've been finding every time I scratch the surface. If even one of these actually does work, you'll have earned the bounty. – Debra – 2015-02-01T11:16:25.287

Same problem with HostServe: "OUTPUTS: PCL, Postscript, PDF, TIFF, XML/Database, Line Printer, HTML" from the website, but input can be Metacode. Problem here is that I need the output to be Metacode; wouldn't have the issue if I had it in the first place to "input" to one of these programs. (Feel as if I've dropped back 20 years, talking about "input" and "output".) – Debra – 2015-02-01T11:30:08.817

I do not fully understand: I thought your problem was running a ancient program that produced metacode. But you now say you want to convert to metacode. Please explain some more. – harrymc – 2015-02-01T11:30:12.007

No, the problem is that I need to produce Metacode (e.g. that looks like a Metacode print job) from the program, thus searching for a Metacode driver or equivalent that works under Win7. The output is then sent to a Mainframe, which needs the Metacode format. From the original unedited question, references such as "I have been searching for any way to generate Metacode output in Windows 7". Emulating a Metacode printer would be great, but so far none of the products actually does that; rather they take an existing Metacode stream input (which I don't have) and convert it to PCL/PS/etc. – Debra – 2015-02-01T11:33:39.400

Is "the program" the oldie from Windows 3.11? And how does it do the print - does it use a Windows 7 printer? Is it acceptable to write to a file in some format such as PostScript and manually convert to metacode? Please add more details about your setup. – harrymc – 2015-02-01T17:27:19.143

The program is an oldie from Win 3.x. It currently prints to a 16-bit printer driver called "Metacode printer", but the print job is redirected to a file, which is later transferred to, and used by, a mainframe. The file MUST be in Metacode format -- I am trying to produce a Metacode file. As stated in my post, the app is not any problem; the problem is producing Metacode output in a Win7 environment. Even environments such as ExDOS and DOSbox do not allow you to install 16-bit printer drivers, and the last time Xerox provided Metacode drivers was over a decade ago. – Debra – 2015-02-02T11:50:19.363

It is an acceptable solution to write the file in another format such as PS or PCL, and convert to Metacode, but so far I have not found any single-system product that does so; most of the products will take existing Metacode and convert it to PCL, but I haven't found any that go the other direction (yet). – Debra – 2015-02-02T11:51:19.163

In which environment are you running this oldie? You could maybe create a Windows 3.11 virtual machine where there is no problem installing 16-bit printer drivers. The advantage in the VM solution is that it will work on all future Windows hosts. – harrymc – 2015-02-02T12:33:34.633

ExDOS and DOSbox are virtual 16-bit environments; neither allow for installation of 16-bit printers, apparently. (VirtualPC doesn't support Win3.x.) Your suggestion was the first thing I tried, though, and is the logical first thought, but the virtual environments actually print via drivers installed in Win7. – Debra – 2015-02-02T14:34:35.640

VMware allows the installation of a virtual printer by adding to the VM a serial port that actually outputs to a file on the host. This printer port, only usable inside the VM, may possibly be used to create the "Metacode printer". – harrymc – 2015-02-02T19:01:43.010

Beyond the Metacode "printer" is just the issue of producing the format. i.e. print-to-file works fine, but it is the driver that provides the special Metacode formating. When you send a print job to a certain type of printer, the software and driver work to format the data in a way that the printer will understand. It's that data stream that I can't produce without a Metacode printer driver, or other mechanism/method that I'm seeking. If anyone knows of a method, it hasn't surfaced yet. – Debra – 2015-02-06T14:03:34.583

I of course don't have access to a Windows 3.11 computer, but if you still have it you could (1) transplant that driver into the VM, or (2) virtualize the physical computer to virtual (P2V). – harrymc – 2015-02-06T15:10:15.597

I still have the working system. The reason for the change is specifically to get it off Windows 3.11 and on to a later version of Windows. We'd have to downgrade security to allow a Win3.x system to connect to a Windows server on the network. I do still have the 16-bit driver files, just can't use them in Win7 (even 32-bit). "App compatibility" doesn't include this type of driver. – Debra – 2015-02-07T16:09:48.127

The Win3.x system doesn't need to connect to the network. The metacode file written to the virtual port is on the host, and it is the host that will connect to the network. The Win3.x system can be be put on the host-only virtual network that is supplied by all existing virtualization products. – harrymc – 2015-02-07T16:25:43.143

I am not sure you really provided a working answer for the real-world situation, but you provided a lot of good information that might get me closer to something eventually, so I am going to award the bounty for the work provided. I think that sometimes when people do the searches that you & others did (and I did before posting) and come up with a link that says "PCL to Metacode", they might logically assume the information points to a way to do PCL to Metacode; unfortunately, the search engines and page titles are so unreliable these days that none of these were what they said. – Debra – 2015-02-08T05:13:08.527

Which is why I finally recommended freezing the existing physical setup in a virtual environment. – harrymc – 2015-02-08T08:07:48.863

0

Crawford has a series of X-to-Metacode products: http://www.crawfordtech.com/products/conversions-and-transforms

If your application can generate a Postscript file, then you could use PS to Metacode Transform. The same company has similar products for other input formats.

gioele

Posted 2015-01-28T05:24:01.200

Reputation: 413