December 8, 2007:
CNN Article on how the "Commodore 64 is still loved after all these years". Maybe someone should tell them about the VIC-20?
October 25, 2007:
The VIC-20 lives on! Hobbyists are releasing a mega-catrige.
Plug it into your real VIC for lots and lots of games.
It's being released shortly and you can order your own:
For more news on this or anything else VIC head over to
The still running VIC-20 newsletter.
They've also scanned the Original Denial Newsletters. You may have to register (free).
October 30, 2006:
A very nice Sorcery Map by Orion.
Click here to learn more about Sorcery.
October 9, 2006: The Queztalcoatl Source Code is now released under GPL. Thanks to Harry Dodgson for his work on Q* last year. Will change Sorcery as requested. BTW Sorcery clould be the World's only "modded" VIC-20 Game.
October 6, 2006: Added a note to Sorcery errata; while you can get the same dungeon everytime by pressing a certain key, the entrances will shift around. Solution is to orient yourself by moving to a corner. See errata.txt in Sorcery. (Thanks Alessandro for drawing this to my attention). Also included a VICE snapshot to make Sorcery even easier to get running; VICE is a very easy to use VIC emulator for Windows or Linux.
September 19, 2002: John Tomic reports the VICE VIC Emulator is up to version 1.10 and runs very happily under Windows. VICE has long had a really nice feature; the ability to integrate the Commodore filesystem onto that of your PC. (Put another way, imagine your VIC with an 80Gb HDD!) Click here for VICE.
September 14, 2002: Still here. Added link to Unusual and Efficient 6502 Assembly Language Techniques.
April 16, 2002: A buddy of mine once suggested I write a web server to run on a VIC-20 and hook it up to the web as another example of "Just because it can be done, it should be done." I laughed. But now it turns out some of our rich cousins, C64 owners, have done the same. They have to be stopped!. What's next? A port of Linux to the C64... or the VIC?
April 12, 2002: Yes, I'm still here. Well, what's happened? Lance Ewing, the author of V20, is planning to write a new VIC20 game just to show what can be done on the VIC20 with the benefit of today's cross assemblers. Rob Murphy recently discovered a way to store the programmable character set in the cassette buffer. A demo and explanation is below in the new "Vichacks" section. Kolja Sträter, the author of VTR, has been in touch, happy to find both myself and other people have benefited from his wonderful little utility. (It's linked below). He's also working on an academic OS for the VIC20. As for me, I never got time to do the ANSI extensions to Quetzalcoatl. I would like to do this, but if you're writing for the VIC assembler currently gives you the best bang for your buck. Remember, the source of Quetzalcoatl is available on request, and it does have a decent 6502 cross assembler; ie. it's not just restricted to C!
January 31, 2001: For those who couldn't measure up, here is the cheat sheet for House of Demons.
September 11, 1999: The Quetzalcoatl (6502 Cross Compiler) source has now been released. Click here for further details.
December 15, 1998: Work has begun on the next version of Quetzalcoatl. The source code will be released under GNU sometime 1999. If you didn't already know, Quetzalcoatl can be used purely as a 6502 assembler.
September 25, 1998: The Alpha version for the Quetzalcoatl VIC-20 C Cross Compiler is now available. You can now write VIC-20 games on your PC using this complier and test them immediately on any emulator. You can even design your graphics on your favourite PC graphics editor and import them.
September 19, 1998: Added the Power20 VIC emulator for the PowerMac.
September 9, 1998: A new version of the VICE emulator.
August 20, 1998: Boris releases version 1.19 of his PCVIC emulator.
December 8, 2007: CNN Article on how the "Commodore 64 is still loved after all these years". Maybe someone should tell them about the VIC-20? October 25, 2007: The VIC-20 lives on! Hobbyists are releasing a mega-catrige. Plug it into your real VIC for lots and lots of games. It's being released shortly and you can order your own: VIC-20 Mulitcatridge. For more news on this or anything else VIC head over to Denial: The still running VIC-20 newsletter. They've also scanned the Original Denial Newsletters. You may have to register (free).
October 30, 2006:
A very nice Sorcery Map by Orion.
Click here to learn more about Sorcery.
The Altair may have been the first microcomputer, and the Apple ][ may have been the first home microcomputer. But the Commodore VIC 20 was the first affordable home microcomputer. With a scant 3.5Kb of user memory and 176 by 184 pel graphics the VIC is a primitive machine by today’s standards. But it had good colour, great sound and could be easily upgraded upto a quite respectable 19.5Kb. Around the world thousands of programmers cut their teeth on the VIC 20. What followed was an explosion of software.
The VIC debuted in June 1980, selling over a million units over its short lifetime. By late 1982 Commodore announced its successor; the popular Commodore 64. The ’64 was a much more capable machine. The ’64 came with 64Kb of memory and hardware-support for graphical sprites. It was also completely incompatible with the VIC. Initially however the ’64 was an expensive machine, and with price cuts sales of the VIC continued. Eventually the price of the ’64 dropped, and it was over for the VIC. By Mid-1984 the VIC’s demise was a fait accompli.
This wasn’t a good time for the VIC. It was remembered
as a "joke" computer, with its 22 by 23 character screen
and 3.5Kb of RAM. Revisionists forgot that at the time
there was nothing else, and that within the confines of that 3.5Kb
of RAM (sometimes more) we made magic happen.
A lot of free quality VIC-20 software is available on the Internet!
Recognising that there's no more money to be made selling 8-bit software much of this formerly commercial software freed up by its owners. I've done my bit by re-releasing: Sorcery: A Role Playing Game, Arcade and Adventure Pack and pseudo-Pascal compiler! There has to be a few rainy weekends worth of playtime still left in them, and they're free! Click here to find out how to download this software (complete with documentation).
Also check the links section for pointers to other software.
Now emulation technology lets you enjoy old classics written for the VIC-20 on any modern personal computer. Pick an emulator from this list. I recommend PCVIC for speed and power, but if you've got an high-end Pentium you might check out Pfau Zeh which comes with a nice Windows user-interface. If you need help choosing an emulator then check out Linus' VIC emulator FAQ.
|VICE 1.10 (Update)||
Author: André Fachat et al. Platform: Unix, DOS, Amiga, others.|
STRONGLY RECOMMENDED!!! VICE was originally just a Commodore 64 emulator, but has since had support added for the VIC-20 and PET. One of VICE’s nicest features is it’s integrated file support; it can simulate a tape or disk drive attached to the emulated machine. [19sep2002]: John Tomic reports "It's up to version 1.10 and is excellent! It also works in Windows, from 9x to XP." Click here for VICE. (Link Updated)
|PCVIC 1.19 (Update)||
Author: B.W. van Schooten. Platform: DOS.|
PCVIC is my favourite emulator, because it’s fast! It's also the most flexible; I've had no problems loading software into PCVIC. It also uses the entire screen-area to display the emulated VIC screen (as opposed to just a window). It is a little rough around the edges, but for most people it's the best choice. Has a "snapshot" facility. Click here for PCVIC.
Author: Lance Ewing. Platform: DOS.|
Good! Easy to use and better file loading interface than PCVIC, but slower. However you'll need to rename any BASIC files .bin in order for V20 to see them. Sometimes V20 tries to be a little too clever for its own good; I've yet to find a way to get V20 to load multi-file programs without forcibly resizing it's memory, so V20 cannot run the UPL compiler. All the games are fine. Click here for V20. [Broken Link]
Author: Arne Bockholdt. Platform: Linux, Win32.|
Pfau Zeh is a relatively new arrival on the VIC emulation scene. It has a nice interface, but the Win32 version is very slow on my Pentium 60. Arne recommends you run this on a high-end system with a fast video card. Warning: I'm finding problems getting Pfau Zeh to load binary programs. BASIC progams and ROMs are fine though. Click here for Pfau Zeh.
|VIC-20 1.1||Author: Paul Robson. Platform: DOS. Click here for VIC-20 1.1.|
|VIC-EMU||Author: Pieter van Leuven. Platform: Amiga. Click here for VIC-EMU.|
|Mac VIC-20||Author: Matthew Browne. Platform: Apple MacIntosh. Click here for Mac VIC-20.|
Author: Roland Lieger. Platform: Apple Power MacIntosh. (iMac too?)
Power20 has some nice features such as printer, tape and disk drive emulation, drag and drop disk mounting, cut and paste. Click here for Power20
Migrating from cassette tape.
If you're a VIC-20 owner of old this section will tell you how to load your old programs from tape onto your PC. If you're not a VIC-20 owner you can skip ahead to the VIC-20 specs.
You can transfer VIC-20 programs from cassette tape onto your modern PC by using Nikolaus Strater's VTR utility. Connect the output of any cassette player (eg. your stereo) to your Soundblaster and VTR will read in your programs, saving each in a separate file. You can then rename these and run then without changes in the above emulators. All the VIC-20 programs on this site was loaded using VTR. Click here to download VTR.ZIP.
A few hints: VTR has a spartan command line interface.
VTR 1 1 -
works for me; (Note that minus sign! I couldn't get it working
without it.) You'll need to fiddle with your volume and tone
controls to get just the right levels for it to work. When you
do you'll be rewarded with the graphics described in the README.TXT.
If you're getting red or too many black notches then your settings are wrong.
It took me about half an hour before I found the right levels.
Once it did it worked more or less flawlessly. If you get a load error
rewind the tape and try again. Be sure to read the README.TXT
file included with the VTR.ZIP file.
If you're not the technical type, skip ahead.
Writing software on the VIC in the days of old had one fundamental problem: How could you fit a cross assembler and your program into 3.5K of RAM? The answer was, you didn't.
You hand assembled; I used to know all the 6502 opcodes and how to calculate branch offsets in my head. Needless to say, when you discovered an error reassembling wasn't an option. You patched what you'd already written, and solidered on. It was fun, but it limited the quality of your code.
Now, with the benefit of emulators and cross development software, several people have suggested writing a new game for the VIC just to demonstrate what it was/is capable of. This new section is dedicated to collecting the hints and ideas that could be used to push such a demonstration to the very limits.
The VIC20 was capable of bitmapped graphics, of a sort. This was done by switching the character set, usually in ROM, to somewhere in RAM. By writing characters to the screen, and manipulating the bitmaps of those chracters, you could make it look like a bone fide bitmap. (Click here for an example.) The only problem was, this required a chunk of RAM, and on a machine with 3.5Kb to begin with, that wasn't enough. But in the low reaches of the machine was the cassette buffer. This couple hundred bytes of RAM was used by the OS for reading files in from tape. But on a machine with 3.5Kb of RAM, why waste even a couple hundred bytes?
Rob Murphy discovered recently how to relocate the programmable character set to this low area of memory. You can have your bitmapped graphics, and still have the full 3.5Kb for other ends. Here's instructions from Rob and a demo: VicMemorySaver.zip (I couldn't get the demo working from PCVIC).
6502 Coding Challenge.
This code is around 1,304 bytes long.
Can you make it smaller or faster?
|CPU||6502A running at 1.0227 MHz.|
|RAM||5Kb (3.5Kb user memory) expandable to 32Kb.|
|VIC||Screen: 22 columns by 23 rows.|
Character dot matrix: 8 by 8 or 8 by 16 (User programmable).
Screen dot matrix: 176 by 184 with up to 16 colours.
Sound: 3 voices plus white noise.
|Power||Consumption 18 Watts.|
|Dimensions||404 mm wide by 204 mm deep by 74 mm high.|
|Media||Tape drive (controlled by VIC), Disk Drive, Printer.|
|Expansion||Many cartridges, including additional memory, serial card and hundreds of ROMs including games and programming utilities. A docking station allowed more than one cartridge to be used at once.|