In this video, with an exceptional guest, Francesco Sblendorio of Retrocampus, let's see how connect a Commodore MPS803 dot matrix printer to a modern PC with Windows 10 operating system!
In addition to the Commodore MPS 803 printer, printers can also be connected to the PC with the procedure described below:
- Commodore MPS 801;
- Commodore MPS 1200.
Connect a Commodore MPS803 dot matrix printer to a PC with the XUM1541
To connect the Commodore MPS803 dot matrix printer to a PC running Windows 10, we use the XUM1541 interface. The Commodore MPS 803 printer is equipped with an IEC serial connector and, through the XUM1541 adapter, we can connect it to the USB port of a normal PC.
I recommend connecting all cables with the PC and drive turned off. Behind the printer is a small selector for set the address: for the experiment it must be set to 4. After connecting everything, you can turn on the PC and the printer.
Between one print and another, it may happen that the printer gets stuck. In this case, simply disconnect and reconnect the connector of the XUM1541 to the computer, as well as turn the printer off and on again.
Software for printing text and images
To print texts and images with the Commodore MPS803 dot matrix printer (or Commodore MPS 801, Commodore MPS 1200), connected to a Windows 10 PC, you need various software. First, you need to have Spiro Trikaliotis OpenCBM installed, as we saw in this article. The XUM1541 interface drivers must also be installed.
Secondly, we need to create a subfolder in C:\OpenCBM. In the experiment I created the folder C:OpenCBMSblendorio. Inside this folder, all the files at the bottom of this page (for Windows 10 64-bit) must be inserted, unpacking the compressed archive:
- i due batch print-img.bat and print-txt.bat;
- programs to convert files to print: cbmage.exe and cbmtext.exe, by Francesco Sblendorio;
- the files you want to print.
cbmage.exe and cbmtext.exe are open source projects that Francesco Sblendorio has published on his GitHub. Through this page, you can also download the 32-bit Linux, Mac OS and Windows executables.
Print an image with the Commodore MPS803 printer connected to a Windows 10 PC
The first experiment carried out in the video concerns the printing of an image. The recommended format for images to be printed is PNG. The Commodore MP S803 printer leaves all white parts of the image white (pure white & HFFFFFF). Any other color point other than pure white is printed black.
For the experiment, I prepared the logo of my website, AV.PNG. It has an all white background and a dark logo.
Francesco Sblendorio's program cbmage.exe Resize any image that has a resolution greater than 480 × 480 pixels. 480 pixels is, in fact, the maximum resolution that the MPS 803 can print, in graphic mode.
The batch file is used to start printing print-img.bat, followed by the name of the image to be printed.
The batch file print-img.bat contains the following commands:
@echo off rem www.valoroso.it, Amedeo Valoroso rem Print image file -> Commodore MPS803 rem cbmage by Francesco Sblendorio rem opencbm by Spiro Trikaliotis if not exist "%1" goto FileName echo Printing "%1" … cbmage "%1" >file.prt if %ERRORLEVEL% NEQ 0 goto Error ..\cbmctrl lock if %ERRORLEVEL% NEQ 0 goto Error ..\cbmctrl listen 4 0 ..\cbmctrl write file.prt ..\cbmctrl unlisten ..\cbmctrl unlock ..\cbmctrl reset goto End :FileName echo Please specify an existing PNG or JPG file to print. goto EndX :Error echo Error during printing process. :End del file.prt >nul :EndX
Through cbmage.exe, starting from the image to be printed, the file is created file.prt, which contains all the various bytes to be sent to the printer.
cbmctrl.exe is an OpenCBM package file which, as we have seen before, is located in the folder C:\OpenCBM, while all files for printing images are located in C:OpenCBMSblendorio. For this reason it was put ..\ (two dots and the slash) before the file name.
cbmctrl lock prevents other processes from using the USB. cbmctrl listen 4 0, for those who know the BASIC, corresponds to the command open: opens a communication channel with address 4, which is the printer.
With the command cbmctrl write file.prt, we input a file that contains the bytes to be physically sent, via the IEC protocol to the Commodore MPS 803 printer. The bytes are found in file.prt, produced first through the program cbmage.exe.
cbmctrl unlisten closes communication with the printer, cbmctrl unlock frees up the USB port for other processes and finally cbmctrl reset it's like turning the printer off and on again.
Print a text file with the Commodore MPS803 printer connected to a Windows 10 PC
Through the Commodore MPS803 dot matrix printer (or Commodore MPS 801, Commodore MPS 1200), connected to a modern PC, it is also possible to print TXT text files. The files may also contain accented letters, as they are of the program cbmtext.exe by Francesco Sblendorio takes care of converting special characters into pixels to be sent to the printer.
For the experiment, I prepared a couple of TXT files to print. The batch file is used to start printing print-txt.bat, followed by the name of the TXT file to be printed.
The batch file print-txt.bat contains the following commands:
@echo off rem www.valoroso.it, Amedeo Valoroso rem Print text file -> Commodore MPS803 rem cbmtext by Francesco Sblendorio rem opencbm by Spiro Trikaliotis if not exist "%1" goto FileName echo Printing "%1" … cbmtext "%1" >file.prt if %ERRORLEVEL% NEQ 0 goto Error ..\cbmctrl lock if %ERRORLEVEL% NEQ 0 goto Error ..\cbmctrl listen 4 0 ..\cbmctrl write file.prt ..\cbmctrl unlisten ..\cbmctrl unlock ..\cbmctrl reset goto End :FileName echo Please specify an existing TXT file to print. goto EndX :Error echo Error during printing process. :End del file.prt >nul :EndX
Compared to print-img.bat, the only line that changes is the one in which it is recalled cbmtext.exe using the text file as an argument. In place, therefore, of cbmage.exe, we have cbmtext.exe because, instead of an image, we have to print a text file.
The TXT text file is converted to a sequence of bytes in file.prt, compatible with the IEC protocol, which are sent to the printer via cbmctrl.exe by OpenCBM by Spiro Trikaliotis.
To convert the special characters, Francesco Sblendorio had to draw, by hand, all the characters missing from the Commodore MPS803 printer, such as accented letters, the Greek and Russian alphabets.
The native character set of the Commodore MPS803 is indeed very limited.
Download cbmage, cbmtext, driver XUM1541 e OpenCBM per Windows 10
The ZIP file containing OpenCBM and the drivers to use XUM1541 on PC, is located at the bottom of this article.
Here is the package that includes the files to print images and texts with the Commodore MPS803 dot matrix printer, connected to a PC with Windows 10 64-bit operating system. It also works with Commodore MPS 801 and Commodore MPS 1200 printers.
Credits: in the video tutorial, SID music is Turrican 3 (1993) level 1-1 theme by Chris Hülsbeck.
To be notified when I publish more tutorials, experiments and reviews related to retro computers and vintage electronics, I invite you to subscribe to the YouTube channel and activate the notification bell!