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.

  • Listing script generates a Metacode file. Printer model? – STTR Jan 28 '15 at 11:13
  • 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 Jan 28 '15 at 13:22
  • Have you tried under Windows 7 32 bit? – Canadian Luke Jan 28 '15 at 15:00
  • 1
    Excellent question! Some similar info here. – Giacomo1968 Jan 31 '15 at 8:54
  • 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 Feb 8 '15 at 13:24

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 :

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.

  • 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 Feb 1 '15 at 11:16
  • 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 Feb 1 '15 at 11:30
  • 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 Feb 1 '15 at 11:30
  • 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 Feb 1 '15 at 11:33
  • 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 Feb 1 '15 at 17:27

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.