Commodore News Page Richard Lagendijk English Nederlands Deutsch Polski CommodoreInfoPage - YouTube mos6502 - Twitter RSS

Commodore VIC-20

Introduction

Commodore VIC-20 The VIC 20 was the colorful future of Commodore. The VIC-20 was the first computer from Commodore that had color. In 1980 the president of Commodore (Jack Tramiel) gave an order to his designers to design a cheap computer. Jack feared stiff competition from competitors from Japan on the cheap home computer market. In stead of waiting for the competition he started the battle himself. He gave the order to design a computer that would cost no more than $300,-- and they had to have it ready in 9 months.

The VIC-20 was designed by Commodore Japan. In 1981 the first VIC-20s rolled of the assembly lines. Strange is that the VIC-20 does not have the same name all over the world. In Japan the VIC-20 is called the VIC-1001. In Germany it's called the VC-20. But in de rest of the world it's called the VIC-20. Why the VIC-20 in Germany is called the VC-20 is not clear but it would probably be short for Volks Computer.

The VIC-20 was a success right from the start. The production could only just keep up with the demand. At the top of production 9.000 VIC-20s rolled of the production lines per day. The competition did not know what hit them. They couldn't believe the introduction price of $300,--. The competition was pushed out of the market almost completely when the price dropped to only $130,-- in the next two years.
[140]

Specifications

Commodore VIC-20 (NTSC) Processor: MOS 6502, 1 MHz.
RAM memory: 5 kbyte
ROM memory: 20 kbyte (Basic, Kernal, Characters)
Co-Processor Grafix and Sound: VIC
Connections: Expansion port, User port, Serial port, Datassette, Joystick, TV, Video, Sound, power supply.

With the VIC-20 Commodore ruled the home computer market. The VIC-20 was produced from 1980/1981 until 1984.

On the photo the NTSC version. This is the later version with a build-in RF modulator and a power supply like the C64.
[141]

The use.

Commodore VC-20 Because of the number of characters on the screen (22) the VIC-20 was not usable for business use. The most common software was always games. The possibilities of connecting a joystick and the colors on the screen made it a perfect games console. But because it was still a complete computer the electronics wizard was also a happy user.

Games:

Everybody has his own favorites, well known games are Space Invaders, Radar Rat Race, Alpha Alarm, Centipede, Crazy Kong, Gridrunner, Muchman, Paratrooper, Attack of the Mutant Camels, Choplifter, Galaxian, Gorf, Frogger. Many hundreds of games were released for the VIC-20.

Graphic programs:

The excellent new capabilities of the VIC chip made graphic programs for the VIC-20 very popular. Well known programs are Best Paint, FCD, Picasso, Artist.

Music programs:

The VIC chip does not only the screen but does also the sound. Some examples of sound programs are: Fisichella, Victracker, Loop arranger.

Text editors:

It is a bit difficult to edit text on the VIC-20 with the screen being only 22 character wide but there were a couple of text editors like HesWriter, Wordcraft 20, Write Now!, Speed Script, Quick Brown Fox.

Office package:

In the years of the VIC-20 the office applications were only available for professional computers like mainframes. But there were some programs: Personal Finance, Practicalc.

Utilities:

For specific tasks are special programs available. Copy programs for the Datassette and Disk drive are made in many versions. Communication software for modems, but also packet radio is available. Many utilities are aids for programming assembly or BASIC but also speed loaders for the datassette.

Demos:

The demo phenomenon became popular with the Commodore 64 but the real "scener" can appreciate a good demo on the VIC-20. The VIC-20 does not have the graphical and music capabilities of the C64 but these restrictions are a challenge for the real "coder". Some of the well known demos are: Veni vidi Vic! (Marko Mäkelä, Anders Carlsson, Bergström's ), VICI ITERUM MM (Pasi Ojala, Anders Carlsson), Victoria (Dekadence). Hundreds of demos are made and you can find web sites that will host these demos.

Cartridges:

Every C64 had a cartridge. Most are a collection of handy programs or functions. Like extra BASIC commands, Tape-Turbo's, Disk-Turbo's, Machine language monitors, Print screen programs. But for the VIC-20 with only 5 kbyte of memory the most used cartridges were memory expansions. But some programs had difficulties with the memory expanders. So a lot of memory expanders had switches to switch on the right amount of memory. A few examples of cartridges are HesMon, Programmer's Aid Cartridge, Super Expander.

External devices:

A lot of external devices were available for the VIC-20 made by commodore and by other companies. A few examples are Datassette, Disk drives, Joysticks, Printers, Monitors, Modems, Touch pads, Eprom burners, Memory expanders (RAM and ROM). Controls for robot arms, model trains, light shows, dia shows.

On the photo the the German edition of the VIC-20. Except for the slight difference in the name the rest of the system is exactly the same. All available software in Germany had also the VC in stead of VIC on the packaging.
[142]

The Central Processing Unit 6502.

Commodore VIC-1001 inside view. The processing power of the VIC-20 is taken care of by the 6502. The 6502 was the first microprocessor that the company MOS put on the market. After releasing a usable "computer" the KIM-1 the whole company was bought by Commodore.

Technical specifications:

Data bus: 8 bits
Address bus: 16 bits
Interrupts: IRQ, NMI, RDY
Speed: 1 MHz
Instructions: 151

Data bus:

The 6502 works like all other processors with the binary system. That means there are only 2 possibilities on or off. This will be shown as a 0 or a 1. This called a bit. If you got a 8 bit wide data bus then the possibilities are 00000000 to 11111111. A value of 8 bit wide is called a byte. In the normal decimal system that is 0 to 255. All processing is limited to the numbers 0 to 255. If you need bigger numbers you will have to chop the big number into little parts.

Address bus:

With the address bus the processor can point to a point (address) in the memory. The limitation is the width of the bus. With 16 bits you can make a numbers between 00000000 00000000 and 11111111 11111111. Or in decimals between 0 and 65536. The 6502 can address 64 kbyte of memory.

Interrupts:

A interrupt is a stop-sign. The processor can be halted with a interrupt.

Speed:

The system speed of the VIC-20 is 1 MHz. This means that there are 1 million actions per second that are processed. So the 6502 processor can do 1.000.000 action every second. The fasted instruction takes only 2 actions but the slowest instruction takes 7.

Instructions:

The number of instructions is 151 but there are in theory 255 instruction possible. Programmers found extra instructions by experimenting. But these are actually defects that are build into the chips and are not real instructions.
There are instructions that only move data like LDA (Load the accumulator with a value) but there are also instructions that will calculate data like ADD (ADD a value to the accumulator) Also there are instructions the manipulate a value like ROR which shifts the bits a place to the right.

On the photo the VIC-1001. You can see the motherboard. On the right you will see a large black object. This is the cooling system for the 5 volt voltage regulator. In the later model this was moved to the external power supply and the motherboard got a bit smaller.
[143]

The VIC (6560 / 6561).

Commodore VIC-1001. The VIC chip is the central part of the VIC-20. VIC is short for Video Interface Chip. The VIC is responsible for the heartbeat (timing) of the system. The VIC does the sound reads the paddles and the light pen. But also puts the image on the screen. To prevent troubles with read and write to the memory between the CPU and the VIC there is a clever system. The clock signal is a square wave that has two levels "high" and "low". The VIC only accesses the memory on one level and the CPU does it on the other level. Because the VIC-20 was meant to be used with a television set the output signal of the VIC is compatible with the television signal. That had some consequences and different VICs had to be produced.

6560 - NTSC (North America, South America, Japan)
6561 - PAL-B (Europe, Africa, Asia, Australia)

Technical specifications:

Text: 22 x 23 characters with 8 x 8 pixels or 16 x 8 pixels
Hires: 176 x 184 pixels
Colors text: 8
Colors background: 16
Light pen
Sound: 3 voices / volume
Memory range: 16 kbyte

Text:

On the screen you can place 506 characters. The character will come from the CHAR ROM but you can design your own characters. In text mode there are only two colors, the background color and the character color.

Hires:

Instead of characters the screen can now be filed with 176 x 184 = 32384 pixels. The drawback is that this will use up a large part of the memory (4 kbyte). And the total available memory in a unexpanded VIC-20 is only 5 kbyte is The Hires mode is not really an option with the unexpanded VIC-20.

Colors:

There are 8 different colors for the characters and the screen border. And there are 16 different colors for the the background.

Light pen:

If you shoot or click on the screen with a "light-gun" or "light-pen" the VIC will tell you the position on the screen.

Sound:

The VIC-20 has 3 voices. Voice 1 to 3 are square wave shape signals with a frequency range of 7 bit (128-255). Voice 1 is low, voice 2 is middle and voice 3 is high. The last voice (4) is withe noise.

Volume control:

The volume can be adjusted in 16 steps. (0-15)

Memory range:

It is a bit strange but the VIC can only see 16 kbyte of the total memory. To solve this problem the VIC is movable in 4 block of 16 kbyte through the memory.

The VIC chip is smarter than the original specifications. One of the nice things about the parameters that control the output to the screen is that they get there values from registers. By adjusting these registers you can change the resolution from 176 x 184 pixels to 224 x 256 pixels. Also by smart programming you can do scrolls and raster bars.

On the photo the Japanese version of the VIC-20. This VIC-1001 has a altered keyboard and character ROM with Japanese signs. But software made outside of Japan had compatibility problems with this model and it was not so successful as the normal VIC-20.
[144]

The VIA.

Commodore VIC-20 cassette programs. VIA stands for Versatile Interface Adapter. These are two chips inside the VIC-20 that find out what is happening outside the VIC-20.

Technical specifications:

Programmable I/O: 16
Timers: 2 (2 x 16 bit up/down counters)
Shift-register: 1 x 8 bit

Programmable I/O:

I/O stands for Input / Output. A couple of functions of these I/O are reading the keyboard, reading the joysticks and reading or controlling the user-port.

Timers:

With these timers a signal can be made with a specific duration. This is used to make a RS-232 signal.

Shift-register:

This is used to transfer parallel (byte) data to serial (bit) data for the IEC bus (printer / disk drive) and the other way round.

On the photo an example of software for the VIC-20. Each pack had 6 cassettes with software. The software was a mix of serious software and games. Because most people had no money for the expensive disk drive a lot of software was made on cassette or on cartridges.
[145]

The ROM's.

Commodore VIC-20 cartridges. Inside the VIC-20 there are a couple of ROM's. These are memory modules with data inside that cannot be changed. You can read the memory but not write this memory.

KERNAL:

Most important ROM is the KERNAL ($E000-$FFFF - 8 kbyte). The kernal is the operating system of the VIC-20. Inside the kernal are the parts that let you load and save programs to the disk drive and the datassette or print text to the screen or printer.

BASIC:

Another ROM is the BASIC ($C000-$DFFF - 8 kbyte). This contains the BASIC interpreter. The BASIC interpreter translates the BASIC commands to machine language. Machine language is the only language that the processor of the VIC-20 understands.

CHAR:

The characters on the screen are coming from the character ROM. ($8000-$8FFFF - 4 kbyte)

The ROM's can be replaced by self made (EP)ROMs.

On the photo an example of software for the VIC-20. On the left Serpentine. In the foreground Las Vegas and to the right Kats und Maus (Radar Rat Race). Cartridges were very popular because you had access to a game without having to wait until it was loaded into the computer. This made the VIC-20 equal to a game console.
[146]

The connections.

Commodore VIC-20 paddles. The VIC-20 has many connectors. All have a different function but are not always needed for an application.

User-port:

The user-port can be used to connect external devices to the VIC-20 to control or measure something. Examples are: Modems, Parallel printers, relays, robots, EPROM programmers and much more. Nice thing about the user-port lines is that can be inputs or outputs independent from each other.

Datassette:

The Datassette is the cassette recorder input of the VIC-20. Disk drives were quite expensive and that was the reason that many computers had a cassette recorder connection. With the Commodore computers this was not a normal cassette recorder. Because all datassettes were equal there were very few problems with the loading of software. But the read / write head had to be in the right position. The use of cassettes was very popular after the introduction of the tape-turbos. Cassette software could be loaded faster than with a standard disk drive.

IEC:

The IEC-port is a serial connection to devices like a disk drive or a printer. The serial-port was limited in speed.

Video:

Via the video-bus the picture signal was send to a monitor. Also the audio was available through this bus. With the video connection and a monitor you had a better quality picture than through the RF.

RF:

This is also the video and audio signal but now suited for a television-set.

Expansion-port:

The expansion-port can be used to expand the VIC-20. The lines on this connector are connected to the address- and data bus. The most common use is to connect ROM's. ROM's contain programs that are permanently stored in a chip and are always and directly available. Many ROM's contained arcade games. There were a lot of memory expanders available but also a cartridge to connect the big IEEE disk drives or assembly or BASIC aids.

Power-Supply:

Off course the VIC-20 needs power to make the electronic parts work. The power supply on the early models had only 9 volt AC but withe later models the powersupply also delivered the 5 VDC to the VIC. This powersupply was compatible with the C64.

Joystick:

This must be the most important connector. The joystick was the key to play the many arcade games. This connection also connected the light-pen and the paddles.

On the photo the paddles for the VIC-20. With this control you could control for example a submarine in a game. Paddles always come in a set of 2. These paddles can also be used on the C64.
[147]

The VIC-20 model range.

Commodore VIC-20 manual.

VIC 1001 - 1980

Only for the Japanese market.

VIC 20 - 1981

The most well known an best sold model.

VC 20 - 1981

The German version of the VIC-20.
[148]
Update: 2011-06-24 19:29:47