The Retro-Printer is a small module from Retro-Computer specialist, RWAP Software, which works together with a Raspberry Pi to provide easy to use, low cost printer capture hardware designed primarily to allow you to connect a centronics port on older (vintage) computers and equipment to any modern printer such as a USB or network printer.
Easily connect anything from a DOS program; a 1980s Home computer; or even an industrial lathe or door entry system to a modern, low-cost printer. You can also use the module to capture printer output sent to a parallel port and store it for future reference or manipulation.
This makes the module ideal for both producing hard copies of printed output on modern printers, or for extracting and converting data from old equipment; removing the need for legacy printers and enabling migration of data to modern systems and software.
What is the Retro-Printer? Designed as a plug in module for the Raspberry Pi computer, the Retro-Printer provides a low cost means for vintage computers and industrial equipment to connect easily to the latest USB and network printers on the
RWAP Software was set up in 1986 to help develop and improve the range of software being developed at the time for the Sinclair QL home computer. We have continued to grow and expand our range of products and services
Designed as a plug in module for the Raspberry Pi computer, the Retro-Printer provides a low cost means for vintage computers and industrial equipment to connect easily to the latest USB and network printers on the market.
The module forms a hardware alternative to the software based virtual printers which rely on DOS being run inside a dos box under Microsoft Windows.
Developed by RWAP Software, the Retro-Printer is specifically designed to provide a solution for computers and equipment on which Microsoft Windows is not the operating system.
Many retro computers were designed at a time when dot-matrix, daisywheel and impact printers were prevalent. A lot of industrial equipment (and DOS based application software) was also designed to make use of these printers and use the same printing methods as those early computers.
Many of these printers used the ESC/P printer control language (made popular by Epson) and printing was as simple as connecting a printer to a parallel port (or a serial port), and sending a string of plain text to the port. The printer control language then told the printer if you wished to output text in bold, italics or a different font, and this was all handled by the printer.
As a result there are 1,000s of DOS based programs and industrial equipment which simply expect to send plain text to a centronics port and for a connected printer to create a physical copy.
When Microsoft Windows took the market by storm in the 1990s, printer manufacturers seized on the opportunity to make printers “dumb” and most printers available to purchase today are GDI Printers.
A GDI printer or Winprinter is a printer designed to accept output from a host computer running the Graphic Design Interface (GDI) under Windows, Mac OS-X or Linux. The host computer is responsible for all print processing and then uses the GDI software to send a bitmap of the printed page to the printer using a printer driver normally supplied by the printer manufacturer.
Because non-GDI printers require hardware, firmware, and memory for page rendering; a GDI printer is cheaper to produce, but unfortunately, this means that a GDI printer cannot be used easily with non-standard operating systems, or even a lot of DOS programs. These printers cannot even understand a simple line of ASCII text characters sent to them such as the standard test “HELLO WORLD”.
One common solution to this, is to install a virtual printer. A virtual printer is a piece of software which runs on a Windows based PC and monitors the installed parallel ports on the computer itself. Provided that your program runs as a DOS based application program which can run within a DOS box as part of Windows 95 or later, then these software based solutions can work quite well at capturing the data sent by to the parallel port (LPT1 to LPT9) and then redirecting it to a connected GDI printer using Windows to perform all of the hard work.
Whilst using software can be a convenient solution for some applications, there remains a whole host of circumstances where such a virtual dot matrix printer cannot be used. For example, consider how you would print (or collect the data) from industrial or medical equipment, or an old retro computer (such as the BBC-Micro, a Sinclair QL, an Amstrad CPC or the Commodore Amiga) which cannot run Windows.
Rather than forming a simple software emulation of a traditional dot-matrix or daisywheel centronics printer, the Retro-Printer connects directly into any industry standard parallel port (using an existing centronics cable or interface), and captures the raw data sent by the host to its parallel port.
The Retro-Printer can be used seemlessly to print the captured Epson ESC/P2 printer output direct to any modern connected network or USB printer, such as an low cost Inkjet, or even a laser printer.
The data is also stored by the Retro-Printer as a series of PDF files or plain text files on an SD card or a connected USB stick. The captured data can even be stored in the original printer format, which can be useful (for example) for capturing HP PCL printer files, which could then be converted to PDF for archiving, using your own copy of Ghostscript.
The possibilities are countless!
First of all, we must apologise in that progress with this project has not been as rapid as we would have wished, but in reality, the Retro-Printer module is the brainchild of two retro computer enthusiasts who have developed this
We have now successfully implemented both ESC/P2 ESC.2 (TIFF Compression) and ESC.3 (Delta Row Compression) support into the Retro-Printer software. As part of this, we have updated the way that colours are merged together to use the CMYK format –
We have now succesfully tested the ESC/P2 conversion routines for both text and 24 pin bit image graphics ESC * as can be seen in the attached image. This represents a printer dump of some labels printed for a light