The VIC-20 (in Germany: VC-20; In Japan: VIC-1001) is an 8-bit home computer that was sold by Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commodore's first personal computer, the PET. The VIC-20 was the first computer of any description to sell one million units.
1.1 Origin, marketing 1.2 Decline 1.3 Applications
2 Technical specifications
2.1 Basic features
2.1.1 Ports and sockets 2.1.2 Graphics 2.1.3 Sound
2.2 Memory expansion
3 Reception 4 Notes 5 See also 6 References 7 Further reading 8 External links
The VIC-20 was intended to be more economical than the PET computer.
It was equipped with 5 KB of static RAM and used the same MOS
6502 CPU as the PET. The VIC-20's video chip, the MOS Technology VIC,
was a general-purpose color video chip designed by Al Charpentier in
1977 and intended for use in inexpensive display terminals and game
consoles, but Commodore could not find a market for the chip.
The VIC-1001 was the Japanese version of the VIC-20. It featured Japanese-language characters in the ROM and on the front of the keys.
In April 1980, at a meeting of general managers outside London, Jack Tramiel declared that he wanted a low-cost color computer. When most of the GMs argued against it, he said: "The Japanese are coming, so we will become the Japanese." This was in keeping with Tramiel's philosophy which was to make "computers for the masses, not the classes". The concept was championed at the meeting by Michael Tomczyk, newly hired marketing strategist and assistant to the president, Tony Tokai, General Manager of Commodore-Japan, and Kit Spencer, the UK's top marketing executive. Then, the project was given to Commodore Japan; an engineering team led by Yash Terakura created the VIC-1001 for the Japanese market. The VIC-20 was marketed in Japan as VIC-1001 before VIC-20 was introduced to the US.
The Commodore 1530 C2N-B
When they returned to California from that meeting, Tomczyk wrote a
30-page memo detailing recommendations for the new computer, and
presented it to Tramiel. Recommendations included programmable
function keys (inspired by competing Japanese computers), full-size
typewriter-style keys, and built-in RS-232. Tomczyk insisted on
"user-friendliness" as the prime directive for the new computer, to
engineer Yash Terakura (who was also a friend), and proposed a
retail price of US$299.95. He recruited a marketing team and a small
group of computer enthusiasts, and worked closely with colleagues in
the UK and Japan to create colorful packaging, user manuals, and the
first wave of software programs (mostly games and home applications).
Scott Adams was contracted to provide a series of text adventure
games. With help from a Commodore engineer who came to Longwood,
Florida to assist in the effort, five of Adams's Adventure
International game series were ported to the VIC. They got around the
limited memory of VIC-20 by having the 16 KB games reside in a ROM
cartridge instead of being loaded into main memory via cassette as
they were on the
The VIC-20's BASIC is compatible with the PET's, except for PEEK and
POKE commands, and the
Ports and sockets
The VIC-20 had proprietary connectors for program/expansion cartridges
and a tape drive (PET-standard Datassette). It came with 5 KB RAM, but
1.5 KB of this was used by the system for various things, like the
video display (which had a rather unusual 22×23 char/line screen
layout), and other dynamic aspects of the ROM-resident BASIC
KERNAL (a low-level operating system). Thus, only 3583
bytes of BASIC program memory for code and variables was actually
available to the user of an unexpanded machine.
The computer also had a single DE-9 Atari joystick port, compatible
with the digital joysticks and paddles used with
16-color (multicolor) capability
The graphics capabilities of the VIC chip (6560/6561) were limited but flexible. At startup the screen showed 176×184 pixels, with a fixed-colour border to the edges of the screen; since an NTSC or PAL screen has a 4:3 width-to-height ratio, each VIC pixel was much wider than it was high. The screen normally showed 22 columns and 23 rows of 8-by-8-pixel characters; it was possible to increase these dimensions up to 27 columns, but the characters would soon run out the sides of the monitor at about 25 columns. Just as on the PET, 256 different characters could be displayed at any one time, normally taken from one of the two character generators in ROM (one for upper-case letters and simple graphics, the other for mixed-case; non-English characters were not provided). Normally, the VIC-20 was operated in high-resolution mode whereby each character was 8×8 pixels in size and used one color. A lower-resolution multicolor mode could also be used with 4×8 characters and three colors each, but it was not used as often due to its extreme blockiness. The VIC chip did not support a true bitmap mode, but programmers could define their own custom character set. It was possible to get a fully addressable screen, although slightly smaller than normal, by filling the screen with a sequence of different double-height characters, then turning on the pixels selectively inside the RAM-based character definitions. The Super Expander cartridge added BASIC commands supporting such a graphics mode using a resolution of 160×160 pixels. It was also possible to fill a larger area of the screen with addressable graphics using a more dynamic allocation scheme, if the contents were sparse or repetitive enough. This was used, for instance, by the game Omega Race. The VIC chip did not support sprites. The VIC chip had readable scan-line counters but could not generate interrupts based on the scan position (as the VIC-II chip could). However, the two VIA timer chips could be tricked into generating interrupts at specific screen locations, by setting up the timers after a position had been established by repetitive reading of the scan-line counter, and letting them run the exact number of cycles that pass by during one full screen update. Thus it was possible, but difficult, to e.g. mix graphics with text above or below it, or to have two different background and border colors, or to use more than 200 characters for the pseudo-high-resolution mode. The VIC chip could also process a light pen signal (a light pen input was provided on the DE-9 joystick connector) but few of those ever appeared on the market. The VIC chip output composite video; Commodore did not include an RF modulator inside the computer's case because of FCC regulations. It could either be attached to a dedicated monitor or a TV set using the external modulator included with the computer. Sound The VIC chip had three pulse wave sound generators. Each had a range of three octaves, and the generators were located on the scale about an octave apart, giving a total range of about five octaves. In addition, there was a white noise generator. There was only one volume control, and the output was in mono.
A 16 kB RAM expansion cartridge
Because the VIC had only 5K RAM, the VIC-20's RAM was expandable through the cartridge port via a Super Expander Cartridge (or simply, RAM Expander). RAM cartridges were available in several sizes: 3 kB (with or without an included BASIC extension ROM), 8 kB, 16 kB, 32 kB and 64 kB, the latter two only from third-party vendors. The internal memory map was dramatically reorganized with the addition of each size cartridge, leading to a situation where some programs would only work if the right amount of memory was present (to cater to this, the 32 kB cartridges had switches, and the 64 kB cartridges had software setups, allowing the RAM to be enabled in user-selectable memory blocks). Since the VIC-20 was designed to use SRAM rather than DRAM, the system board had no provisions for RAM refresh. Memory expansion cartridges may in practice use either type; however, DRAM-based expanders had to contain their own circuitry to refresh the RAM and multiplex the data/address bus, and one possible reason for the oversized VIC-20 cartridge PCBs may have been to provide room for DRAM infrastructure. The memory mapping of the VIC-20 was slightly confusing and could vary depending on system configuration. With no expanders installed, free user memory started at $1000 and extended up to $1DFF, with the video buffer placed at $1E00-$1FFF. Below $1000 was a "hole" from $400-$FFF which could be filled with 3 kB of expansion RAM. If memory expansion cartridges were used, video memory started at $1000 and free user RAM at $1200. The normal location for ROM cartridges was at $A000-$BFFF. On power up, the kernel ROM checked for an ID header and if found would jump to the specified starting address. Larger 16 kB cartridges had the second half of ROM either at $2000 or $6000. A few cartridges, including Scott Adams adventures, loaded entirely in the $2000-$7FFF area. Since the kernel can only autostart ROMs located at $A000, such programs would have to be manually launched from BASIC via the SYS command. Commodore's official RAM expansion cartridges were only available up to a maximum of 16 kB worth of additional memory, but third party cartridges could provide up to 64 kB and sometimes included DIP switches to map the additional RAM to user-selectable address space. Unlike the PET, the VIC-20 did not include a built-in machine language monitor, but Commodore offered them on disk, tape, or cartridge, with several different executables to load into various memory locations. The monitor programs were the same as the PET monitor, but now added a mini-assembler instead of requiring the user to enter hexadecimal opcodes. The 32 kB cartridges allowed adding up to 24 kB to the BASIC user memory; together with the 3.5 kB built-in user memory, this gave a maximum of 27.5 kB for BASIC programs and variables. The extra 8 kB could usually be used in one of two ways, set by switches:
Either it could be mapped into the address space reserved for ROM cartridges, which sat "behind" the I/O register space and thus was not contiguous with the rest of the RAM. This allowed running many cartridge-based games from disk or tape and was thus very useful for software pirates; especially if the RAM expansion allowed switching off writing to its memory after the game was loaded, so that the memory behaved exactly like ROM. Or, 3 kB of the 8 kB could be mapped into the same memory "hole" that the 3 kB cartridge used, letting 5 kB lie fallow. These 3 kB were contiguous with the rest of RAM, but couldn't be used to expand BASIC space to more than 27.5 kB, because the display data would have had to be moved to cartridge RAM, which was not possible.
Some 64 kB expansion cartridges allowed the user to copy ROM images to RAM. The more advanced versions even contained an 80-character video chip and a patched BASIC interpreter which gave access to 48 kB of the memory and to the 80-column video mode. As the latter type of cartridges, marketed primarily in Germany, were not released until late 1984—two years after the appearance of the more capable C64—they went by mostly unnoticed.
Address Size [kByte] Description Cartridge decoded
0x0000 1.0 RAM with jump vectors etc.
0x0400 3.0 Expansion *
0x1000 4.0 RAM for BASIC and screen
0x2000 8.0 Expansion block 1 *
0x4000 8.0 Expansion block 2 *
0x6000 8.0 Expansion block 3 *
0x8000 4.0 ROM character bitmap
0x9000 1.0 I/O for VIC, 6522 VIA#1, 6522 VIA#2, block 0
0x9400 0.5 Used for color RAM when expansion RAM at block 1
0x9600 0.5 Color RAM (normally)
0x9800 1.0 I/O block 2 *
0x9C00 1.0 I/O block 3 *
0xA000 8.0 Decoded for expansion ROM *
0xC000 8.0 ROM Basic
0xE000 8.0 ROM Kernal
Describing it as "an astounding machine for the price",
VICE, VIC-20 emulator
^ "MESS VIC20/VC20 (German) PAL". MESS — Multiple
Emulator Super System
^ "Home Video Game Console Sound Chip Round-Up". 090514
^ The computer was renamed in German-speaking countries because "VIC"
would be pronounced similarly to the obscene word fick.
^ firstname.lastname@example.org. "Commodore.ca - Products - Commodore
VIC-20 History, Pictures & Time Line". www.commodore.ca. Retrieved
23 March 2018.
^ "OLD-COMPUTERS.COM : The Museum". www.old-computers.com.
Retrieved 23 March 2018.
^ "RUN Magazine issue 28".
^ a b Herzog, Marty (January 1988). "Neil Harris". Comics Interview
(54). Fictioneer Books. pp. 41–51.
^ "Commodore VIC-1001 Kanji (Japanese VIC-20 Characters) Demystified".
Retrieved 17 June 2016.
^ a b "Archived copy". Archived from the original on 14 February 2015.
Retrieved 12 June 2015.
^ email@example.com. "Commodore.ca - Products - Commodore
VIC-20 History, Pictures & Time Line". www.commodore.ca. Retrieved
23 March 2018.
^ Lock, Robert (June 1983). "Editor's Notes". Compute!. p. 6.
Retrieved 30 October 2013.
^ Kevelson, Morton (January 1986). "Speech Synthesizers for the
Commodore Computers / Part II". Ahoy!. p. 32. Retrieved 2 July
^ Butterfield, JIm (April 1981). "Advice to PET Owners: How To Be A
VIC Expert". Compute!. No. 11. p. 34.
^ "Commodore: New Products, New Philosophies". Kilobaud. September
1980. pp. 26–28. Retrieved 23 June 2014.
^ a b Thornburg, David D. (April 1981). "The Commodore VIC-20: A First
Look". Compute!. p. 26.
^ "RUN Magazine Issue 34".
^ Flynn, Christopher J. (June 1982). "Using Atari Joysticks With Your
VIC". Compute!. p. 79. Retrieved 6 October 2013.
^ The Commodore VIC
Bagnall, Brian (2005). On The Edge: The Spectacular Rise and Fall of
Commodore. ISBN 0-9738649-0-7. Retrieved 2009-04-20.
Finkel, A.; Harris, N.; Higginbottom, P.; Tomczyk, M. (1982). VIC 20
Programmer's reference guide. Commodore Business Machines, Inc. and
Howard W. Sams & Co, Inc. ISBN 0-672-21948-4. Retrieved
Jones, A.J.; Coley, E. A.; Cole, D. G. J. (1983). Mastering the
Vic-20. Chichester, UK: Ellis Horwood Ltd. and John Wiley & Sons,
Inc. ISBN 0-471-88892-3. Retrieved 2009-04-20.
Tomczyk, Michael S. (1984). The Home
Swank, Joel (January 1983). "Exploring the Commodore VIC-20". BYTE. p. 222. Swank, Joel (February 1983). "The Enhanced VIC-20 / Part 1: Adding a Reset Switch". BYTE. p. 118. Swank, Joel (March 1983). "The Enhanced VIC-20 / Part 2: Adding a 3K-Byte Memory Board". BYTE. p. 34. Swank, Joel (April 1983). "The Enhanced VIC-20 / Part 3: Interfacing an MX-80 Printer". BYTE. p. 260. Swank, Joel (May 1983). "The Enhanced VIC-20 / Part 4: Connecting Serial RS-232C Peripherals to the VIC's TTL Port". BYTE. p. 331.
Wikimedia Commons has media related to Commodore VIC-20.
Denial – the
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
v t e
List of Commodore microcomputers
KIM-1 Commodore PET Commodore CBM-II Commodore VIC-20 Commodore MAX Machine Commodore 64 C64GS Commodore SX-64 Commodore Educator 64 Commodore 16 Commodore Plus/4 Commodore 128
68000-based ( 16-bit / 32-bit)
Commodore LCD Commodor