Windows – Metacode print output under Windows 7

driversprinterwindows-3.1

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.

Best Answer

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.

Related Question