Commodore VC-1520 Plotter

The Commodore VC-1520 is a compact roller plotter with small ballpoint pens in four colors (black, blue, green, red) and a speed of 12 characters per second on average, with a maximum of 80 characters per line. The character count in CBM-ASCII mode is 96 characters and in plotter mode a maximum of 260 steps per second. The plotter prints on roll paper (cash register roll) with 114 mm width (96 mm printable), which is fixed on a spindle outside the plotter. The plotter mechanism comes from the company Alps Electric and was also used in other devices, such as the Sharp MZ-731 or Olivetti M10.

Commodore VC-1520 Plotter

The small pins are inserted into a so-called revolver magazine. By rotating the magazine via software command or key on the device, the four colors can be controlled.

Ideal purpose are simple vector graphics, such as the plot of mathematical functions or small technical drawings.

The plotter is special because it draws the characters on the paper with the small pens in both ASCII mode and graphics mode, instead of firing tiny needles from a print head as in the dot matrix printer. The paper roll is controlled both forward and backward for vertical lines via the platen. There are additional small gears on the side to prevent the paper from slipping. Precise paper guidance is essential to ensure that graphics, such as circles, actually look round. The pen magazine is moved horizontally via a pulley.

The small pens are stored in a plastic tube to protect them from drying out.

However, the mechanics are unfortunately very fragile because they are built very filigree. After more than 30 years, the thin and fine gears break very easily and it is difficult to get replacements for them. The small pins are also susceptible and mostly dried up. It is also difficult to get replacements for these today. However, if you have a working machine, or have been able to successfully repair it, then it is fun to watch the little plotter at work.

Fortunately, I was able to buy a repaired model that also came with working pens. By the way, the plotter is connected via the usual Commodore serial IEC interface.

The manual in English can be found as a PDF on the Internet. So it’s time to take a practical look at the device.

Let’s plot!

After switching on the plotter and the computer, the VC-1520 automatically prints a small pen test in the form of four small squares, one of each color, in the following order: blue (1), green (2), red (3), black (0). You can see directly if all four pens are working correctly.

Commodore BASIC communicates with the plotter via the usual Open/Close and Print commands. The OPEN command first opens a channel to the device and then a logical file number can be used to communicate with the device.

The Open command is structured as follows:

OPEN lfn,dn,sa
lfn = Logical Filenumber (beliebig zwischen 1-255, über 127 doppelter Zeilenabstand)
dn = Device Number (Gerätenummer, 6 = Drucker/Plotter)
sa = Secondary Address (gerätespezifische Funktionen)

Plotting CBM-ASCII characters

An example to output ASCII characters on the plotter is as follows:

OPEN 4,6,0
PRINT#4,"Hello World!"
CLOSE 4

The first number 4 in the Open command can in principle be any number between 1 and 255. However, 4 has become the “default” for the CBM-ASCII mode. The 6 is the device address for the plotter and the 0 is the so-called Secondary Address, which executes a certain function on the plotter. In this case it means that ASCII characters should be printed. The 0 can be omitted in this case, because it is the default value. At the end, the file or the channel must be closed again (CLOSE 4).

To change the color, a different secondary address is addressed:

OPEN 2,6,2
PRINT#2,2
CLOSE 2

This changes the color to green, for example: 0 = black, 1 = blue, 2 = green, 3 = red.

In the following table I show an overview of the functions, which can be addressed over the Secondary Address. It should be noted, however, that only a maximum of 10 files can be open at the same time.

Secondary Address (SA)FunktionExample
0 (default)Print CBM-ASCII characters (96 Zeichen)OPEN 4,6 oder OPEN 4,6,0:PRINT#4,”Hello”
1Plot X,Y data (Graphicmode)OPEN 1,6,1:PRINT#1,”D”,240,100
2Change color (0-3)OPEN 2,6,2:PRINT#2,1:CLOSE2
3Character size (0-3)OPEN 3,6,3:PRINT#3,2:CLOSE3
4Character rotation horizontal/vertical (0 oder 1)OPEN 44,6,4:PRINT#44,1:CLOSE44
5dashed line (0-15)OPEN 5,6,5:PRINT#5,3:CLOSE5
6Upper-/Lowercase Mode (0 oder 1)OPEN 6,6,6:PRINT#6,1:CLOSE6
7Reset Plotter (with Pen-Test)OPEN 7,6,7:PRINT#7:CLOSE7
Plotter Funktionen die über die Secondary Address angesprochen werden können.

As mentioned above, the first number of the Open command is any number between 1 and 255, which represents the logical file number. However, it has become common practice to use the Secondary Address (SA) as the logical file number, since this makes it easier to identify the function in the program listing. An exception is the default value 0 (CBM-ASCII): Here the 4 is usually taken as file number, because a 0 is not possible (1-255) and the character rotation, which actually has SA#4, is often not used. This is at least the official statement from the Commodore manual for the plotter. But basically you could always use a 10 or other free number instead of 4.

The character size can be set between 0 to 3, where 1 is the default value with 40 characters per line. 0 is the smallest font size with 80 characters per line, 2 = 20 characters/line and 3 = 10 characters/line.

The rotation can be changed between horizontal = 0 (default) and 1 = 90° rotated (vertical). The individual characters are then rotated vertically, but still printed horizontally in one line. To create a vertical font you need a little trick:

Vertical font with character size 3 (10 characters/line)
10 OPEN 4,6 : REM SET ASCII MODE
20 OPEN 44,6,4 : REM SELECT ROTATION
30 PRINT#44,1 : REM ROTATE TO VERTICAL
40 A$ = "HELLO WORLD"
50 FOR I=1 TO LEN(A$)
60 PRINT#4,MID$(A$,I,1)
70 NEXT I
80 PRINT#44,0 : REM ROTATE TO HORIZONTAL
90 CLOSE 4: CLOSE 44
100 END

Vectorgraphic

The 1520 is interesting mainly because of its graphic capabilities as a pen plotter. It draws on paper with the small ballpoint pens. Accordingly, you can also feed the plotter with X/Y coordinates to create vector graphics.

On the one hand, the plotter area is naturally limited by the paper width (X axis). Theoretically, there is no length limitation due to the paper roll, but the printer memory and the mechanical properties also limit the maximum print height on the Y axis.der Y-Achse.

Spiral shape printed in graphic mode

This results in the following maximum values for the printout:

X-axis: 480 positions (0-479) (9 mm margin left and right)
Y-axis: +/- 999 positions (0-998)

On the Y-axis, 999 positions can be taken both upwards (+) and downwards (-). This means that the starting position at coordinates 0,0 allows the paper to move up a bit first, so that printing can be done in both directions. Unlike normal printers, the plotter can move the paper back and forth and thus position the pen as desired within the coordinate system.

In graphics mode the print command looks like this:

PRINT#1,”Sub-Command” (,X,Y)

Sub-CommandFunction
HMove pen to absolute start point (home) (0,0)
IRelative starting point (X0, Y0) to the current position (X,Y)
MMove to position (X,Y), relative to the absolute starting point (0,0) (pen set down)
DMale (draw) to position (X,Y), relative to absolute starting point (0,0) (pen applied)
RMove to position (X,Y), relative to relative starting point (X0,Y0) (pen up)
JDraw to position (X,Y) relative to relative starting point (X0,Y0) (pen down)
The drawing functions in graphics mode

Direct printing

It is also possible to address the plotter in direct mode. This means that all inputs via the keyboard and the resulting outputs are sent directly to the plotter. This is useful, for example, to print program listings (which, however, I would not necessarily recommend with a plotter).

OPEN 99,6
CMD 99
LIST
PRINT#99
CLOSE 99

In this example we use the arbitrary logical file number 99. The CMD command puts the plotter into “Listen Mode”. Then all inputs and outputs are sent directly to the plotter (here: a LIST). To end the list mode again, send a “zero” via PRINT#99. Finally, file 99 is closed again.

Conclusion

The plotter is not suitable for daily use, as the tiny pens run out too quickly. It is also not the right device for longer text printouts or even bitmap graphics. Its strength lies in printing vector graphics. However, the plot area is very limited and the printouts curl up. All in all, the VC-1520 is still a nice piece of hardware history to the Commodore 64.

On the following page you can find a C64 disk image (.d64) for download, with small BASIC programs for plotting Commodore logos: http://biosrhythm.com/?p=1192&unapproved=239369&moderation-hash=b4d143fccbf0ee121556ee66c1137058#comment-239369

Leave a Reply

Your email address will not be published. Required fields are marked *