Vic 20 Is Born!

Summer of 1980 marks the birth of the Commodore VIC-20, however the story goes back to 1977! At the same time that Commodore was releasing the PET onto the market, MOS Technology had designed a video chip known as the 6560.

It was also called Video Interface Chip, or VIC for short. This chip was designed with the idea of selling it to companies who made anything that had a screen and needed to display text on it. So, anything from arcade machines to biotech monitors. The trouble was, they could never find any customers for the chip. By early 1980, Commodore’s CEO Jack Tramiel had been looking for some kind of low-cost color computer that could be ready by CES before the end of 1980. Several projects were going on at Commodore at that time to do just that, including one enthusiastic engineer who had created in his spare time something he dubbed the MicroPet. Now, when Jack Tramiel saw the MicroPet, he decided this would be the computer they would continue to develop and have ready by CES. And so by using the existing VIC video chip design, the Commodore VIC-20 was born. So, obviously it’s name is derived from the VIC-chip at the heart of this machine, but there is some debate as to where the number 20 came from. So, while the VIC-20 doesn’t look much anything like the Commodore PET, it actually shares a lot of really similar architecture. It uses the same 6502 processor. In fact, it runs the same BASIC, has most of the same KERNEL, shares the same character set, including the little graphics symbols that can be typed by holding down shift. It even has the same cassette port, and is compatible with cassette drives from the PET. The user port is also compatible with the one from the PET, although at the time there were very few accessories that used it. They kept the same weird cursor key setup, but at least the cursor keys are at the bottom of the keyboard now right next to the shift, so that you can use the 3 keys together to move in all 4 directions. So, what’s different from the PET. Well, they changed the IEEE-488 port for the disk drive to a small DIN connector and instead of being parallel they changed it to serial to save pins and further reduce cost. They added a single joystick port which is compatible with the popular Atari 2600 joysticks. And while you can only use a single joystick, the port also supports paddles, and so it was possible to have two player games that used paddles. They also added function keys, which don’t really do anything except whatever a programmer wanted them to do. And they added a Commodore Key. Which makes sense, I guess, because Apple had special Apple logo keys on their computer, so why not? The commodore key was primarily used for accessing additional graphics characters on the keyboard. So if you look at any key you’ll see two characters shown. The Shift key will access the one on the right, and the Commodore key will access the one on the left. Also by pressing the Shift and Commodore keys together at the same time, it will alternate between upper and lowercase character sets, which was much easier than how it was done on the PET. Also new is a Restore key. When used in combination with the Run/Stop key, it is a sort of software reset, which will save you from having to power the computer off and on every time you need to reset. Since there’s no longer an internal monitor, most people would be connecting it to their television. However, the back of the VIC-20 only has this DIN socket which outputs a composite video signal and audio on this single port. It was actually compatible with the video port being used by Atari by this point on their 800 computer. However, most televisions of the era didn’t have composite video ports on them. So, also included in the box was an external RF modulator. By connecting this to the back of your VIC-20, you could tune your television to channel 3 or 4 and you’d have a working monitor! The first thing you see when you power it on is this friendly screen telling you it has basic version 2 and essentially 3.5K free. You read that right, 3 and a half kilobytes. The machine actually has 5K, but some of that is used by the system. So 3 and half is left over for the user. And while it is true that the big-3 computers that came out 3 years earlier all had 4K at their introduction, the truth is by 1980, 8K or even 16K was more common for entry-level computers while more high end machines would typically have 32K or more. So let’s talk about the VIC chip for a moment. It has a text resolution of 22 columns by 23 rows. This was actually a pretty small number compared to other computers and the text characters were quite large as a result. However, unlike the PET, the TRS-80, or even the Apple II, the VIC-20 could display 8 different colors of text. Now, while the Apple II could technically do color, you’ll find it couldn’t really do color text. I did a whole video explaining the weird way in which Apple II graphics worked. So really the VIC-20 had an edge there. In fact, they made it very easy for the user to experiment with. They added the colors to the bottom of the number keys. So by holding down the control key, you could change colors on the fly as you type in BASIC. You can also use this in combination with the Reverse mode. Interestingly enough, the video chip is capable of displaying 16 colors, but not for the foreground. The other 8 colors are reserved for the background and auxiliary colors only. So is the VIC-20 a 16 color machine or an 8 color machine? I don’t know, it’s hard to say. I guess technically 16 colors, but for most practical purposes it was 8 colors. So what about graphics modes? Well, technically it doesn’t have any, like none. However, you can redefine the character set, which is something the PET could not do. So if you were writing a game back in the day, you could take a piece of graph paper and design out different shapes. The characters are 8-pixels wide, so each row works out to 1 byte of data, so if I wanted to replace the character O with a smiley face, I could do that and now when I type an O, I’ll have a smiley face. This was very handy for creating simple games. For example, if you take a look at frogger, if you stop and think about this, you aren’t looking at a graphics screen at all. This is just a bunch of text characters moving around on the screen, it’s just that they’ve redefined what the characters look like. This is especially obvious when you look at the turtles, for example, since they have black squares around them. After all, each character can only have 1 color for the character, and then whatever the background color is. This is also painfully obvious in QBert, making for one of the worst ports of QBert on any platform. So, at first glance it would appear that the VIC-20’s graphics capabilities are pretty limited and that all of the games would stink on the machine. There are some ways to get around some of the limitations, for example, even though the computer doesn’t have a true bit-mapped graphics mode, you can just fill the entire screen with characters. Now at first glance, if you used all 256 characters and put them on the screen at once, it only fills about half of the screen. But the VIC-chip also supports a double-height character mode, where each character is 16 pixels tall. So using that mode, it is certainly possible to fill the entire screen with characters. At this point, by simply modifying the characters you can control every pixel on the screen, giving you a full bit-mapped graphics mode. There’s only one catch. The VIC-20 doesn’t have enough RAM for this. However, with the addition of a RAM expander cartridge, especially one like the VIC-20 super expander, you’d be able to take full advantage of this mode. So in the standard character you get 8x8 pixels with a foreground and a background color. The background color is universal across the entire screen. The foreground color can be defined as any of the 8 primary colors. There’s also a multi-color character mode. In this mode, your typical 8x8 pixel character gets it’s resolution halved. So now it’s 4x8 pixels. However, the trade-off is that you can have up to 4 colors in each character. You get the foreground color, background color, and then two auxiliary colors, which can be any of those 16 colors we talked about earlier. And so that means your graphics can be a bit more colorful. Of course, what if you wanted to move a graphical character around on the screen smoothly without jumping from one character space to another? Well, this is where some advanced programming techniques come into play. Let’s imagine you wanted to draw this ball. Due to its size you’d need to reprogram 4 characters. However, if you wanted to smoothly move this around the screen, you would need more than 4 characters and you would need to be in a state of constantly redefining what those characters are. Now, the end user would not be seeing these square boxes, they would just be seeing the moving ball. These square boxes are meant to show you the juggling routine that is going on in the background by the software. So, while this seems like a real pain for the programmer, to be honest, in 1980 there weren’t really a lot of computers on the market that could really do better. And while games like Q*Bert here appear to be terrible due to this design, the truth is you can blame the programmers behind this game more than anything else. Here’s a remake of Q-Bert from recent years that is quite a bit more visually pleasing. This is still a work in progress, but I thought it important to show that with a little more effort, the VIC-20 can do much better graphics than it’s often credited for. In fact, looking at some modern demos you can see what the VIC-20 graphics chip is really capable of. This is running on stock VIC-20 hardware, except it does require a RAM expander cartridge, as you might expect. Admittedly, the pixels are large and blocky, but I’d say this was better than almost every computer on the market in 1980. Next, let’s talk about the sound generator. Now, believe it or not, the VIC chip doesn’t just produce video, it also produces the audio. The VIC-20 has 4 voices. 3 of these voices produce square wave tones, and the 4th voice just produces white noise. However, there are some interesting limitations to the square wave voices. If you look at the range of frequencies they cover, it is 5 octaves, which is not bad. However, each voice can only really cover 3 octaves, but they have staggered them so that you have a low, medium, and high pitched voice. They do overlap some in the mid ranges. If you look in the VIC-20 owners manual, Commodore describes this arrangement as having an alto, tenor, soprano, and a lion for the noise channel. Now, most synthesizers use an ADSR envelope so that the sound can have a more natural, attack and decay. However, the VIC-20 has no ADSR at all. The voices are either on or off. There is no way to fade a sound out slowly, other than to use the master volume control, but that affects all 4 voices. This is another one of those things where, it might seem at first glance, like this would be a terrible audio synthesizer, but to be honest, in 1980 again there wasn’t a lot of competition. Most all other computers at the time simply had a one-voice beeper speaker, with the exception of the Atari computer line, which also had a 4 voice synthesizer chip, although it was quite a bit more advanced. Another consideration is that the main purpose of the sound chip was for games, and in 1980 most games did not even include musical scores, other than short intro tunes like Pac-Man or Frogger. So there wasn’t a huge need for an advanced synthesizer. Commodore had a brilliant marketing strategy for the VIC-20. They hired William Shatner as their spokesperson to advertise the computer. Gentlemen, move over for my friend VIC. The Commodore VIC-20! Move over? The Commodore VIC-20 does more than your machines. It’s a great computer that also plays great games. The showed the world that the VIC-20 was a capable gaming machine, but it was also so much more. The Commodore VIC-20, unlike games, it has a real computer keyboard. With the Commodore VIC-20 the whole family can learn computing at home. It was something that your kids could learn about computers with. And it was a very reasonable price at just $299. Also, unlike the Commodore PET, TRS-80, or Apple machines, Commodore sold the VIC-20 through regular department stores right along side Atari and Intellivision consoles. And it worked, the VIC-20 was a smash hit with consumers. In fact, it was the first personal computer to sell over a million copies, beating out the Apple II, even though the Apple had a 3 year head start on it. By the time it was discontinued in 1985, it had sold over 2 and a half million units. The VIC-20 was my first ever computer. I got it when I was 6 years old in 1981. There isn’t much I can remember from being 6 years old, but I still remember the day we brought this computer home. And for many months we didn’t have any sort of storage device, and we didn’t have any cartridge games. So the only thing I could really do was try typing in some of the example programs in the owners manual, like this one which made a flying bird on the screen. Or this one that turned the keyboard into a piano. I have to say that the VIC-20 users manual is literally the best manual I’ve ever seen for any computer from the era or ever since. It had lots of example code with little bubbles telling you exactly what everything did in a really friendly way that was easy to understand, even for a 6 year old boy. And this users manual is what taught me to program at a very early age. And let’s face it, without this manual I would have never figured out how to do much of anything on this computer, so in many ways I can thank this manual for my entire career as an adult, because this is where it all started. Now, for most users, the VIC-20 was primarily a games machine, and games were generally sold on either cassette tape, or on cartridge. Commodore provided a custom built cassette drive, which they called the datasette. Unlike other computers of the time, which used standard cassette players and often required fiddling with the recording volumes and tone controls to get a reliable recording, Commodore’s datasette was all digital and tended to be very reliable, however it was as slow as molasses. But due to the VIC-20’s Incredible small amount of memory, only having three and a half K available to the end user, programs were so small, the load times were still very short. So it really wasn’t much of a problem. However, most games were in fact sold on cartridge. This made sense for a number of reasons. First of all, people were already accustomed to cartridges games from their exposure to the Atari 2600 and Intellivision consoles. This meant that you could plug in a game, power on the computer, and just like a game console, your game was ready to go. There were no commands to type or anything to learn in order to use it. However, one often overlooked benefit to cartridges was memory limitations. You see, the 6502 processor can access up to 64K of memory, but that includes both RAM and ROM. The VIC-20 already had 5K of RAM, 8K for the Kernel, and another 8K for built in BASIC. So the CPU was already accessing around 21K of memory. But there was a big hole in the middle of the memory map. By inserting a cartridge ROM you could fill another 16K worth of game code. If you were to load a program from tape or disk then you would have to fit that game into 3 and a half kilobytes of RAM. While RAM expanders were available for the VIC-20, any game developer would want to target a stock system because that’s where most of the customers base was going to be. So games on cartridges tended to be much more advanced than games on tape. In fact, let’s look at some of the popular games on the platform. Keep in mind that many of these games are not only a reflection of the VIC-20’s hardware, but also a reflection of the type of games that were common between 1980 and 84. The Tower of Evil… So, this is pretty similar to several other games such as Haunted House on the Atari 2600. This is is Skyhawk, although on the Commodore 64 and most other systems it was called Falcon Patrol. Here’s River Rescue, which reminds me a bit of river raid on the Atari. This is called Pipes. And no surprise, you are supposed to assemble pipes from the water supply to a nearby house. Mower mania. So for those who don’t get enough fun mowing their own lawn, you can also mow in this game. This is Miner 2049er. Graphics are chunky, but it is a very playable version of this popular game. This is called Matrix and it’s one of Jeff Minter’s many games for the VIC. His games always seem to have that extra level of polish on them! Here’s Congo Bongo, probably not the best port you’ll find of this game, though. And Choplifter. This game was particularly popular in the early days of the C64 and the VIC-20 version is almost as good. Ahh.. Omega Race. This was actually the first game I ever owned for the VIC-20 and apparently it is still considered one of the top 10 even today. While it is totally monochrome, the animation is really good. Buck Rogers offered a very visually stimulating experience, with fast moving animation. Here’s another Jeff Minter game, called Lazerzone. This is the official Donkey Kong port by Nintendo. It’s also one of the best games on the system. I would also put Ms.PacMan in the top 10 games for the VIC. The VIC also received many clones of popular games, such as Cosmic Cruncher, which is obviously a rip off of Pac-man. Jelly Monsters is another similar rip off, however it is really well done! And while there is no official Space Invaders for the VIC-20, this clone called Avenger is as good as any official version on any other 8-bit platform. And Moons of Jupiter is a nice asteroids clone. Now, let’s take a look at some modern games made in recent years for the VIC 20, such as this one, called Astronell. And while you can’t play Crysis on this computer, you CAN play Doom! As you might guess, it does require the full 32K RAM expander. Even the menu is impressive for this platform. Let’s turn the music volume up. Now you can hear all of those square wave voices going at once! Let’s play! Hahaha.. So you probably weren’t expecting the screen to be so small. But with an 6502 processor running at 1 Mhz, you can’t expect too much. I suspect that was the only way to get the speed fast enough to even play. Surprisingly, you can actually see where you are going, albeit not very well. This really reminds me more of Wolfenstein 3D than it does Doom, because the floor and ceiling are completely flat. Still, pretty neat for a VIC-20. And the last game I’ll show you is Pentagorat, which is a really recent game for the VIC-20. It’s really well polished. It does operate essentially as a monochrome game, but they use colors in clever ways to make it colorful. Knowing what I’ve shown you about how the VIC-20 graphics work, this shouldn’t be a surprise why the game is made this way in order to have smooth animation of characters. So, while the tape drive was adequate for most users to store their own programs, Commodore eventually did offer a matching disk drive, called the VIC-1541. The disk drive was based on the same design concepts as used in the old PET disk drive, in that the disk drive contains its own 6502 processor, RAM, ROM, and is essentially another computer almost as powerful as the VIC-20 itself, just that it has no screen. So, the disk drive talks back and forth with the VIC-20, using almost the exact same protocol as the one that was used on the PET. The only real difference being this is serial and the PET used a parallel connector. In fact, it is actually possible to use the old PET drives on the VIC-20 using a special converter box. Now, they were going to be using a hardware shift register to handle the serial communication between the drive and computer. But, they found a hardware bug in the shift register that kept it from working correctly, and since it was so close to the time of releasing the computer, they just decided to get rid of the shift register and just use the CPU to bang out all of the bits manually to the disk drive, so that really slowed down the performance. However, again, with the size of the VIC-20s memory, I mean, even if you had a RAM expander. The load times were still not that bad. However, this decision would go on to haunt Commodore for years, and you’ll find out more about that when we get to the episode on the Commodore 64. So, just to talk a little bit about how these serial devices worked, so you’ll notice on the back of the VIC-1541, there are two serial ports. They aren’t even labelled. You can actually use either one. The remaining port can be used to attach another disk drive. In fact, you could attach up to 4 disk drives, and then at the end of that chain, you could attach a printer. This VIC-1525 dot matrix printer was probably the most common model to be used on the VIC-20. Every device on the serial chain has to have it’s own device number. Now, every disk drive that was shipped from the factory was configured with a default device number of 8. If you tell the VIC-20 to load a program, let’s just say it’s called “hello” then it will automatically assume you want to load from tape. If you want to load from disk, you would need to type the command with a comma 8 at the end of the command to tell it to load from disk. So, if you bought two disk drives and plugged them in, they would actually not work because they would both be set to device #8. There were essentially two ways to deal with this. One way would be with software. The way you do this is you power on the first disk drive, then you send an irritatingly long command to the disk drive telling it to change it’s device number to device 9. Then you can power on the second drive, which will be device number 8. So at this point you could load from device 8 or 9 by signifying which device you want to use. However, if you found this irritating, then the more permanent fix would involve disassembling the disk drive. On the logic board there are these two little round traces on the board. By cutting one or both of them with a knife, you can change the default device number to 9, 10, or 11. This was really annoying, but very few VIC-20 users had a disk drive at all, much less 2 or 3 of them. However, years later, Commodore disk drives did finally put little DIP switches on the back to set the default device. Of course, by that point having multiple disk drives was quite common. I should also point out, that since the disk drive format and disk operating system was essentially copied form the PET, the way that you list a directly is exactly the same. The VIC-20 doesn’t have any built in commands for the disk drive other than load, save, and verify. So if you wanted to see what was on a disk, you would type in load dollar sign, and the disk drive would actually construct a small BASIC program and return it to the computer, so that you could list the BASIC program and thus see the directory on the disk. The trouble is, the directory was designed for the PET which had 40 or 80 columns. But you’ll notice it doesn’t fit correctly on the VIC-20’s screen, with each line overlapping. Oddly enough, as a kid I never really noticed this because I’d never really seen it done any other way. With the addition of the VIC-modem, this would have been the ultimate VIC-20 setup back during the day. As for collectors of the VIC-20 today, there are some minor differences I should point out. The early model VIC-20s had a keyboard where the font on the keys looked very similar to the Commodore PET. We generally refer to this as the PET-style keyboard. There were also several different variations on the name plate logo on top of the VIC-20. Notice this one says VC-20? That one was for Germany because the VIC, when pronounced out loud, sounded very much like a curse word in the German language, so they changed the name. Early models also used a 2-prong power port on the side of the computer, where later VIC-20 models used a round DIN connector. That’s what my VIC-20 has, and one of the nice things about this style is that it shares the same power adapter with the Commodore 64, making them easy to find, as well as being able to use devices like this, which will protect your computer from over voltages that these old power bricks were notorious for. The VIC-20 can be seen in many old movies and TV shows, but more recently it was featured in the movie John Wick 2. Also, it’s well known that many technology celebrities have cut their teeth using the VIC-20 as their first computer. For example, Elon Musk, the CEO of Space-X and Tesla Motors. Also, Linus Torvalds, the creator of Linux. So, this computer has certainly helped shaped the future for a lot of people. The VIC-20 was really a great machine at the time it was released and it was sold at a great price. So It’s really no wonder that it was such a spectacular success. It was on the market for 5 years and during the last few years it was actually available for as low as $99. In the year of 1982 it was actually the best selling computer on the market compared to any other home computer available. In fact, it sold nearly a million computers in just that one year. Now, granted, this machine could have definitely used a little bit more memory straight from the factory, maybe like 8K or something like that. And that would have definitely raised the bar on all software that would have been designed for this computer rather than expecting the user to have a memory expansion cartridge. However, of course, that would have increased the base price, so that might have affected sales adversely. And, of course, let’s not forget, the VIC-20 helped set the stage for the Commodore 64, one of if not the best selling computer of all time.