The IBM PC Compact Printer (model 5181) was a low cost thermal printer designed specifically for the PCjr. The original price of $175 was very inexpensive compared to other printers, but the PC Compact Printer was also a very low-end printer when compared to the more expensive printers. An adapter cable was available to allow it to be used with a standard RS232 port.
I suspect that IBM did not sell too many and they wound up in the hands of resellers who found creative uses for them. You will sometimes find these printers adapted for other computers such as the Commodore 64.
Here are the important features:
Further details including the serial wiring diagram can be
found in the Options and Adapters supplement for the printer at http://www.minuszerodegrees.net/oa/OA%20-%20IBM%20PC%20Compact%20Printer.pdf.
The printer is controlled by a Hitachi HD6801V5P microcontroller that has up to 4K of ROM and 128 bytes of RAM in the package. A 2KB SRAM (HM6116P-3) can be found on the circuit board. The printer is only wired to receive data. Flow control uses the "Clear To Send" signal to pause the host computer.
The printer was very small for a printer - 3.5 inches tall, 12.3 inches wide and 8.7 inches deep. The thermal paper (sold in rolls) fit within the printer. The paper had to be torn or cut by hand as it did not come with perforation marks.
The dithered version was rotated to landscape mode because the image is wider than it is tall, and that allows a larger image to be printed. (The printer is constrained by the maximum horizontal pixel count, which is 560.) It is then converted to grayscale, dithered using the Floyd Steinberg algorithm, rendered for the printer using the printer escape codes, copied to a PCjr, and then sent to the printer. While the image can be recognized, it is not pretty to look at. Images with higher contrast generally work better:
The printer has a self test routine that can be run without a
connection to a computer. To start the self test, hold the paper feed
button while turning the printer on. The printer will continously print
full lines of alphanumeric and graphics characters in this mode. To
stop the self test turn the printer off.
Test pattern program
The PCjr technical reference manual covers the printer but
some of the details are completely wrong. For example, it says the
printer has no graphics capability yet it also documents the ESC K 480
bit-image escape code, which is supposed to allow you print up to 480
pixels across the page at 82 DPI. Clearly the printer has graphics
capabilities, and the correct pixel count is 560 at 70 DPI. (The
documentation that I linked above has the correct details.)
Before I found the correct documentation I wrote test programs to exercise the printer. The following test pattern consists of a row of graphics where:
The BASIC program that generated this is below:
The test program generates a file. While it is tempting to consider using LPRINT directly to the printer, I found that BASIC adds extra bytes to the output stream. It is probably possible to suppress those using the WIDTH statement, but I didn't bother to experiment.
BASIC still adds one last insult and appends an end-of-file
marker (Ctrl-Z, ASCII code 26) to what is effectively a binary file. I
removed the EOF marker using a text editor. You can download the test pattern file here.
To print the contents of the file from DOS do the following:
Note the /B is required when sending anything other than pure ASCII data to the printer. Otherwise DOS will interpret the first CTRL-Z character that it finds as the end-of-file marker and stop the transfer to the printer in mid-stream.
And finally, if you had made it this far you might enjoy a
video of the
printer in action: (Be sure to go full screen and select high
definition video so you can see the RS232 signalling in action on the
breakout box lights.)
Not a bad little printer overall. You had no chance of printing letter quality with it, but for a quick listing or todo list it was more than adequate.
Return to Mike's IBM PCjr Page main page