Commodore 1520 Plots .SVG Images

Commodore 1520 Plots SVG Files
NOTE! Split gears causing causing or plot errors? New replacement Alps gears for the Commodore 1520, Atari 1020, etc are now available! Click here to order your set.

I’ve put together a quick program that can convert an .SVG file into data statements that can be used to plot it on a Commodore 1520 Printer/Plotter. The program doesn’t run on the Commodore 64 (yet) but instead runs in the browser. It’s not ready to release yet as it’s fair picky about the types of .SVG files you feed it.

To whet your appetite, I’ve prepared a .D64 disk image that has four BASIC programs that will plot four different Commodore logos.

Download the disk image here.

And if you need plotter pens for your Commodore 1520 printer, you can get new old-stock pens from @futurewas8bit!

Reddit/r/RetroBattlestations BASIC Week 3– C64 port

Under The Sea: BASIC Week 3 C64It’s BASIC Week on Reddit/r/RetroBattlestations and I ported the BASIC Week program “Under the Sea” to the Commodore 64. The original code was written by FozzTexx for the IBM PC which allows for variable names longer than two characters. The Commodore 64 BASIC version 2 would probably still work using the longer names, it would just ignore everything after the first two characters. Doing this though would run the risk of overwriting variables so it was best to convert them. You can find a list of the variable name conversions at the end of the post.

If you’re keen to type the program in yourself, you can do so here. There’s a few special characters used the code. “CBM-” means hold the Commodore key (lower left) and hit the character after.

If you want to simply run the program from a disc image or to make a floppy, you can download a D64 disk image of Under The Sea here.

The BASIC version is quite slow and there’s room for optimization of the display code. Instead, I ran the code through the BLITZ! BASIC compiler and it runs much faster. This version is on the disc as “c/underthesea”

There’s three keys used the game. ‘A’ makes the turtle (you) go up, ‘Z’ goes down and ‘Q’ will quit the game.

Variable name conversion

Turtle$ = t$
TurtleWidth = tw
TurtleHeight = th
TurtleErase$ = te$
TrutleDead$ = td$
Enemy$() = nm$()
EnemyErase$ = ee$
EnemyW = ew
GameOver$ = go$
GOWidth = gw
GOHeight = gh
AirMax = am
Sea$ = se$
TurtleY = ty
Surface = sf
Score = sc
LastY = ly
TurtleX = tx
NumEnemies = ne
BubbleX = bx
BubbleY = by
Enemy X = ex
Enemy Y = ey
EnemyHit = eh
Food$ = f$
FoodX = fx
FoodY = fy
NewX = nx
NewY = ny
EnemyC = ec
NumBubbles = nb
NumFood = nf
exV = xv
eyV = yv
rows = rw
cols = cl

3D Visualization on the Commodore 1520

NOTE! Split gears causing causing or plot errors? New replacement Alps gears for the Commodore 1520, Atari 1020, etc are now available! Click here to order your set.

Recently on the Lemon64 forum, user Rizthomas posted some excellent scans of some plots that he did on a Commodore 1520 Printer/Plotter back in 1986. The plots were well executed and very intricate. Some were 2D “string art” and some were 3D functional models. Unfortunately, Rizthomas was unable to locate the original disks for his plots (still hopeful they’ll turn up!) but was generous enough to point everyone in the direction of where he began.

One route was Transactor Magazine Volume 6, Issue 4 which contained a program called The Projector by Ian Adam of Vancouver, B.C. The program was of combination BASIC that built on top of a series of machine language routines (from Transactor Volume 5, Issue 6) that made it easy to draw lines, circles, and text on a hires screen. The routines were called with a SYS command from BASIC and were passed coordinates as variables. This made it incredibly easy to patch the program to also send those coordinates to the Commodore 1520 Printer/Plotter with a few modifications.

  • The hires screen coordinates (320×200) doesn’t match the 1520 plotter (480,999) but that’s easily taken care of by scaling the coordinates by a factor of 1.5.
  • The program includes several functions to plot contained in REM statements. I broke those out into a menu system so you can choose a function to plot.
  • I eventually matched Rizthomas’ color choices by making horizontal lines blue, vertical lines green, bounding box green and text black (on the plot only).
  • The origin of the plotter (current pen location at start) is (0,0). Below that point is the negative Y axis so you need to advance the paper up by 300 and then send the “I” command which sets a new “relative origin” point. Now the coordinate systems match screen coordinates (bottom left is (0,0)). Sending the command “R” instead of “M” for moving (pen up) will now use the new relative origin as does “J” instead of “D” for drawing (pen down). The 1520 manual is a great resource to understand the coordinate system of the plotter.

3d 1520 plots

You can download the program (and required ML program) here.

The nice thing about the program is that it will draw a line on the screen while drawing it on the printer simultaneously so you can see both evolve together. Enjoy and a big thanks to Rizthomas for the pointers to the code! If you’re able to get it working, let me know in the comments (and let’s see what you plotted).

Here’s a quick Vine of the plotter working:

Using Prowl to Announce IP Address of Raspberry Pi on iOS

Prowl on iOSIf you use your Raspberry Pi without a keyboard and monitor, you know how frustrating it can be to use it without knowing it’s IP address. By default, the Raspberry Pi is configured to use DHCP to obtain an IP address. This is great for moving the unit around to different networks but can be annoying when you want SSH to the unit. Typically you can use the zero-config/Bonjour “raspberrypi.local” address but this doesn’t always work. I’ve instead come up with a way to use Prowl to notify me of the current IP address after it boots. As a bonus it works with either an Ethernet or WiFi (or both) connection.

Prowl is a Growl push notification service for iOS. It costs $3 and is available from the iTunes App Store.

1. The first step is to download and install Prowl and setup an account. Next, obtain an API key from Prowl. Copy the API key– you’ll need to insert it into a script below.

2. Next, create two files in your home directory (/home/pi/) called and Insert the API key into as shown.

File: from koma5 on github.

#! /bin/sh
# Usage: ./ priority(-2 to 2) app event description
# Example: ./ 0 "transmission" "torrent has finished" "Coen Brothers Compilation has finised downloading"

if [ $# -ne 4 ]; then
echo "Usage: ./ priority(-2 to 2) app event description"
echo 'Example: ./ 0 "transmission" "torrent has finished" "Coen Brothers Compilation has finised downloading"'
curl -F apikey=$apikey -F priority=$priority -F application="$app" -F event="$event" -F description="$description"

File: with apologies to original author.


eth=`ifconfig eth0 | awk -F':' '/inet addr/&&!/{split($2,_," ");print _[1]}'`
wlan=`ifconfig wlan0 | awk -F':' '/inet addr/&&!/{split($2,_," ");print _[1]}'`

if [ "x$eth" = "x" ]; then
# Variable is empty
eth="eth0: $eth "

if [ "x$wlan" = "x" ]; then
# Variable is empty
wlan="wlan0: $wlan"

/home/pi/ 0 "Raspberry Pi" "IP Address" "$eth$wlan"

3. Set both files to executable by typing

chmod 755

4. Add this line to /etc/rc.local before the “exit 0” line. This will execute the script at startup.


5. Reboot your Raspberry Pi and you should receive a push notification from Prowl on your iOS device with the current IP address(s).

DIY RS-232 Interface for Commodore C64 for under $15

If you have a Commodore 64, chances are you’ll eventually need to connect a modem or other serial device to it. You’ll find that’s not quite that easy since the C64 doesn’t have a standard RS-232 serial port. What it does have is called the “user port” and it can do serial over this port but it needs to be changed from TTL levels (0 to +5v) to RS-232 levels (-15v to +15v).

If you’ve ever attempted to purchase a VIC-1011a terminal type, SwiftLink or Turbo232 from eBay you’ll quickly find out that the price gets out of hand. Expect to pay upwards of $100 or more for these adapters.

Luckily, there’s an inexpensive way to get a RS-232 port on your C64 and it’ll cost you less than $15. Ready?

You’ll need these parts for the project.

Connect the RS232-TTL module directly to the C64 user port edge connector using the table below.

RS232-TTL Module C64 User Port

Update! Alwyz from 1200baud suggested that connecting VCC isn’t necessary and potentially dangerous. I’ve had zero problems with mine as listed here. I’m providing this warning so you can make your own decision!

C64 RS-232 Adapter

Observe which side of the user port connector is the top (it’s the one with numbers– letters are on the bottom). It’s helpful to write on it with marker. For wire I used female jumper wire that I cut one end off. For GND and RXD you’ll need to jumper two of the pins together on the user port connector. I used a small bit of CAT5 solid core wire.

Once you’ve got it connected, add the null modem adapter and connect your modem. You may need to also use a gender changer and/or a 9 pin to 25 pin adapter depending on your modem.

Fire up CCGMS, Novaterm or Striketerm, set the baud rate to 2400, set the port to the user port and give it a few “AT” commands. You should see “OK” being returned. If it doesn’t, make sure you have a null modem adapter (test it on another machine to confirm) and double check your connections.

As with any tutorial you find online, be responsible and double check my work and your work before proceeding.

How to get software to disk for your Commodore 64

Commodore 64It’s a question that pops up from time to time on forums from Lemon64 to Reddit C64.

“Yes! I just got a Commodore 64!! Now how do I get disk images onto disk so I can do something?”

It’s not straight forward. Folks in the Apple II world have a fantastic program called ADTPro that can work over a simple audio cable connected to your laptop headphone and microphone jack (or serial). Doesn’t get any easier than that.

On the Commodore, disc images are stored in .D64 format which is an image of a standard 1541 floppy. Most software you find is available this way. You may also find .D71 and .D81 which are for 1571 and 1581 formats but these are less common. A great place to find C64 software is the Search. Once you have your disk images, you’re ready to make some floppies. Below are some of the options to “burn” disk images for your Commodore 64.

uIEC/SD2IECuIEC/SD2IEC ($50-60) is probably the easiest overall solution. With this small device, you can load .D64 images from your Mac or PC onto a SD card. Inserting into the uIEC, it will show up to the C64 as an extremely large volume. But merely having a .D64 image doesn’t get you very far– you need to “burn” the image to a real floppy. Fortunately, there’s D64it which can do just that. It’s a little slow as the author admits, but it gets the job done. Things are sped up considerably if you have the JiffyDOS ROM ($20) installed in your C64 since the uIEC is JD compatible. Don’t forget a 6-pin IEC cable!

64NIC+64NIC+ ($50-59) adds Ethernet capability to your Commodore 64 as well as a ROM socket that can accommodate up to 256kB ROMs. With networking capability, now you’re able to use WarpCopy64 which can upload and download entire disc images to your PC. There’s a bit of a chicken and egg problem here since you’re going to need WarpCopy64 on disk first before you can create new disks.

ZoomFloppyZoomFloppy ($35) is a great solution to connect your Commodore 1541 to your Mac or PC via USB. ZoomFloppy is a modern version of the “X” series cables which required an old PC with a parallel port plus knowledge of IRQ and ports (see below). After installing OpenCBM software on your Mac or PC, you can read and write D64 images quickly and easily– no fuss. Hands down, this is my preferred way to read and write floppies.

If you’re lucky to have a terminal program already on floppy on your C64, you can do the serial route. Of course, you’ll also need an adapter that plugs into the C64 user port to give you standard RS-232 signals. These can be difficult to come by if you don’t have one, like the Commodore made VIC-1011a. One could also build this USB to RS-232 interface for your C64 for $15.

If you have a PC that’s old enough to have a parallel port on the motherboard, you might have good luck with “X” series parallel cables. These cables connect your parallel port to the IEC port of a 1541. From there, you can run Star Commander in DOS mode to read and write files and images. I started using this method years ago but abandoned it for the ZoomFloppy.

So there you have it. There’s no shortage of solutions and every solution is most likely going to cost you something. But each is a great investment and keeps the scene going with folks creating new methods. This list isn’t exhaustive– if you know of one or have experience with any of these, leave a comment!

Reddit r/retrobattlestations Commodore 64 Port

For the next two weeks, it’s BASIC Week 2 at Reddit r/retrobattlestations. You can participate with your Commodore 64 or at least play along with your favorite emulator. I’ve ported the code to the C64 and you can get the code from the thread on Reddit. Or you can download the D64 image here to make your own disk or to use with an emulator like VICE.

Have fun!

The PP&S Frame Grabber 256 for Amiga

The Frame Grabber 256 by Progressive Peripherals and Software (PP&S) is a video frame digitizer capable of capturing a single frame from moving video in up to 256 shades of gray. There was also a color version simply called Frame Grabber. I owned the color version in the late 80’s/early 90’s but eventually sold it to fund other things.

A few years ago, I won an eBay auction that was a Commodore grab bag. Among the items was the Frame Grabber 256 hardware box but nothing else. It was missing the manual, the software and the power supply. My search for these items came up cold and I shelved it.

The unit is very interesting since it can drive an Amiga monitor natively and display the NTSC video through it, without the aid of the computer to process it.

Recently, my interest was renewed so I began looking again and I struck gold. I’ll share the wealth with you below.

The pin numbers/layout are wrong. The position and values are correct.

It’s important to note the power supply and the pin-out that’s printed on top of it uses a numbering scheme in the diagram that is very wrong. The locations and their corresponding values are correct though. When you go searching for a suitable power supply, you’ll need to use the following.

  • Pin 1: COM
  • Pin 2: GND
  • Pin 3: +5v
  • Pin 4: -12V
  • Pin 5: +12V
  • The correct pin layout:

Instead of purchasing a new power supply, I created an adapter cable for an ATX power supply. I used the table below for the connections.

  • DIN Pin 1 to ATX Pin 13
  • DIN Pin 2 to ATX Pin 3
  • DIN Pin 3 to ATX Pin 4
  • DIN Pin 4 to ATX Pin 12
  • DIN Pin 5 to ATX Pin 10

You can get a 3 pack of 3ft MIDI cables for the DIN portion for $1.97 at Radio Shack. They will price match in the store. It’s an unusual bargain. Unlike most MIDI cables, these have all five pins connected.

It goes without saying, I’m not responsible for any damage that may succumb to your gear. Double check everything with a second source!

Moment of truth came and I connected it to my Amiga 4000 via a parallel cable, and connected a small point and shoot digital camera that has an NTSC video out cable. Success! There’s some tearing in the image along the way that might be caused by a bad video cable but otherwise it looks like it’s working.

Make an Apple // disc for BASIC week at Reddit RetroBattlestations

Apple //e for BASIC weekBASIC week at Reddit /r/retrobattlestations is over but you can relive the fun on your Apple // without any typing! Simply follow these steps to download the disk image to a new disk for your machine.

  1. Connect your laptop, tablet or phone’s headphone jack to the tape input jack on the back of your Apple // using a 1/8″ mini headphone cable.
  2. Turn the volume up to maximum.
  3. Turn on your machine and hold control and hit reset to get to a ] prompt.
  4. Insert a blank disk into drive 1 (it will be erased!).
  5. Turn on caps lock and type LOAD and hit return.
  6. Begin playing the .WAV file below on your device.

If all goes well, in about 2 minutes you should have a floppy that you can now boot from. When it’s finished, hit return to reboot your machine. ProDOS should load BASIC. Once it does, type LOAD REDDIT and then RUN.

[Apple // .WAV file to disc for BASIC week program 5.5MB]

Credit for creating the .WAV file from a .DSK image goes to C2T found at ASCII Express.




Create a local web-based Apple II disc server

Here are the steps I used to create a local web-based Apple II disc server. This method uses the c2t tool for converting .dsk disk images to .wav audio files suitable for playback into the tape in jack of the Apple II. The Apple Disc Server site does this with preexisting disk images already converted to .wav files. I thought it would be nice to create a web-based service that would allow you to convert .dsk images to .wav files on the fly. This enables you to browse Apple II software with your iPad and instantly convert it to a disk.


  • Enable Apache server on your Mac
  • Create a directory (default is “c2t”) for the new service in /Library/WebServer/Documents
  • Create a new temporary directory (default is “tmp”) inside this new directory
  • Change ownership and permissions
     sudo chown www:www /Library/WebServer/Documents/c2t/tmp
     sudo chmod g+w /Library/WebServer/Documents/c2t/tmp
  • Download c2t and wget and install in your path