|Release date||1980 (VIC-1001) / 1981|
Commodore BASIC 2.0
|CPU||MOS Technology 6502 @ 1.108404 MHz (PAL) @ 1.02 MHz (NTSC)|
|Memory||20 KB ROM + 5 KB RAM (expandable to 32 KB), 3.5 KB for BASIC (expandable to 30.5 KB)|
|Graphics||VIC 176 x 184 3-bpp|
|Sound||3 × square, 1 × noise, mono.|
The VIC-20 (Germany: VC-20; 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.
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.
As the Apple II gained momentum with the advent of VisiCalc in 1979, Jack Tramiel wanted a product that would compete in the same segment, to be presented at the January 1980 CES. For this reason Chuck Peddle and Bill Seiler started to design a computer named TOI (The Other Intellect). The TOI computer failed to materialize, mostly because it required an 80-column character display which in turn required the MOS Technology 6564 chip. However, the chip could not be used in the TOI since it required very expensive static RAM to operate fast enough.
In the meantime, freshman engineer Robert Yannes at MOS Technology (then a part of Commodore) had designed a computer in his home dubbed the MicroPET and finished a prototype with some help from Al Charpentier and Charles Winterble. With the TOI unfinished, when Jack Tramiel was confronted with the MicroPET prototype, he immediately said he wanted it to be finished and ordered it to be mass-produced following a limited demonstration at the CES.
The prototype produced by Yannes had very few of the features required for a real computer, so Robert Russell at Commodore headquarters had to coordinate and finish large parts of the design under the codename Vixen. The parts contributed by Russell included a port of the operating system (kernel and BASIC interpreter) taken from John Feagans design for the Commodore PET, a character set with the characteristic PETSCII, an Atari 2600-compatible joystick interface, and a ROM cartridge port. The serial IEEE 488-derivative CBM-488 interface (which could use far cheaper cabling than a real IEEE-488 as was used on the PET) was designed by Glen Stark. Some features, like the memory add-in board, were designed by Bill Seiler. Altogether, the VIC 20 development team consisted of five people, who referred to themselves as the VIC Commandos. According to one of the development team, Neil Harris, "[W]e couldn't get any cooperation from the rest of the company who thought we were jokers because we were working late, about an hour after everyone else had left the building. We'd swipe whatever equipment we needed to get our jobs done. There was no other way to get the work done! [...] they'd discover it was missing and they would just order more stuff from the warehouse, so everybody had what they needed to do their work." At the time, Commodore had an oversupply of 1 kbit×4 SRAM chips, so Tramiel decided that these should be used in the new computer. The end result was arguably closer to the PET or TOI computers than to Yannes' prototype, albeit with a 22-column VIC chip instead of the custom chips designed for the more ambitious computers. As the amount of memory on the VIC-20's system board was very small even for 1981 standards, the design team could get away with using more expensive SRAM due to its lower power consumption, heat output, and less supporting circuitry. The original Revision A system board found in all silver-label VIC-20s used 2114 SRAMs and due to their tiny size (only 512 bytes per chip), ten of them were required to reach 5k of system RAM. The Revision B system board, found in rainbow logo VIC-20s (see below) switched to larger 2048 byte SRAMs which reduced the memory count to five chips: 2 x 2048 bytes chips + 3 x 2114 (the 1024 x 4 bits) chips.
VIC-20s went through several variations in their 3-1/2 years of production. First-year models (1981) had a PET-style keyboard with a blocky font while most VIC-20s made during 1982 had a slightly different keyboard also shared with early C64s. The rainbow logo VIC-20 was introduced in early 1983 and has the newer C64 keyboard with gray function keys and the Revision B motherboard. It has a similar power supply to the C64 PSU, although the amperage is slightly lower. A C64 "black brick" PSU is compatible with Revision B VIC-20s, however the VIC's PSU is not recommended on a C64 if any external devices such as cartridges or user port accessories are installed as it will overdraw the available power. Older Revision A VIC-20s cannot use a C64 PSU or vice versa as their power requirement is too high.
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.
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 TRS-80 and other machines. The first production run of the five cartridges generated over $1,500,000 in sales for Commodore.
While the PET was sold through authorized dealers, the VIC-20 primarily sold at retail—especially discount and toy stores, where it could compete more directly with game consoles. It was the first computer to be sold in K-Mart. Commodore took out advertisements featuring actor William Shatner (of Star Trek fame) as its spokesman, asking: "Why buy just a video game?" Television personality Henry Morgan (best known as a panelist on the TV game show I've Got a Secret) became the commentator in a series of Commodore product ads.
The VIC-20 had 5 KB of RAM, of which only 3.5 KB remained available on startup (exactly 3583 bytes). This is roughly equivalent to the words and spaces on one sheet of typing paper, meeting a design goal of the machine. The computer was expandable up to 40 KB with an add-on memory cartridge (a maximum of 27.5 KB was usable for BASIC). Although the VIC-20 was criticized in print as being underpowered, the strategy worked.
The "20" in the computer's name was the source of some debate as to its meaning. It was widely assumed that it referred to the text width of the screen (although in fact the VIC-20 had 22-column text, not 20) or that it referred to the combined size of the system ROMs (8k BASIC+8k kernel+4k character ROM). Bob Yannes claimed that "20" meant nothing in particular and "We simply picked '20' because it seemed like a friendly number and the computer's marketing slogan was 'The Friendly Computer'. I felt it balanced things out a bit since 'Vic' sounded like the name of a truck driver."
In 1981, Tomczyk contracted with an outside engineering group to develop a direct-connect modem-on-a-cartridge (the VICModem), which at US$99 became the first modem priced under US$100. The VICModem was also the first modem to sell over 1 million units. VICModem was packaged with US$197.50 worth of free telecomputing services from The Source, CompuServe and Dow Jones. Tomczyk also created a SIG called the Commodore Information Network to enable users to exchange information and take some of the pressure off of Customer Support inquiries, which were straining Commodore's lean organization. In 1982, this network accounted for the largest traffic on CompuServe.
In 1982, the VIC-20 was the best-selling computer of the year, with 800,000 machines sold. One million had been sold by the end of the year and at one point, 9000 units a day were being produced. That summer, Commodore unveiled the Commodore 64, a more advanced machine with 64 KB of RAM and considerably improved sound and graphics capabilities. Sales were slow at first due to reliability problems and lack of software, but by the middle of 1983, the latter had turned into a flood and VIC-20 sales abruptly plunged. It was quietly discontinued in January 1985. Perhaps the last new commercially available VIC-20 peripheral was the VIC-Talker, a speech synthesizer; Ahoy! in January 1986 wrote when discussing it, "Believe it or not, a new VIC accessory ... We were as surprised as you".
Before the VIC-20's release, a Commodore executive promised that the forthcoming computer would have "enough additional documentation to enable an experienced programmer/hobbyist to get inside and let his imagination work". Because of its small memory and low-resolution display compared to some other computers of the time, the VIC-20 was primarily used for educational software and games. However, productivity applications such as home finance programs, spreadsheets, and communication terminal programs were also made for the machine. Its high accessibility to the general public meant that many software developers-to-be cut their teeth on the VIC-20, being introduced to BASIC programming or assembly language.
The VIC had a sizable library of public domain and freeware software. This software was distributed via online services such as CompuServe, BBSs, as well as offline by mail order and by user groups. Several computer magazines sold on newsstands, such as Compute!, Family Computing, RUN, Ahoy!, and the CBM-produced Commodore Power Play, offered programming tips and type-in programs for the VIC-20.
An estimated 300 commercial titles were available on cartridge and another 500+ were available on tape. Most cartridge games were ready to play as soon as the VIC-20 was turned on, as opposed to games on tape which required a time-consuming loading process. Titles on cartridge included Gorf, Radar Rat Race, Sargon II Chess, and Jupiter Lander. A handful of disk applications were released.
The VIC's low cost led to it being used by the Fort Pierce, Florida Utilities Authority to measure the input and output of two of their generators and display the results on monitors throughout the plant. The utility was able to purchase multiple VIC and C-64 systems for the cost of one IBM PC Compatible system.
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 interpreter and 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 game controller port, compatible with the digital joysticks and paddles used with Atari 2600 videogame consoles (the use of a standard port ensured ample supply of Atari-manufactured and other third-party joysticks; Commodore itself offered an Atari-protocol joystick under the Commodore brand); a serial CBM-488 bus (a serial version of the PET's IEEE-488 bus) for daisy chaining disk drives and printers; a TTL-level "user port" with both RS-232 and Centronics signals (most frequently used as RS-232, for connecting a modem).
Importantly, like most video game consoles and many computers at the time the VIC had a ROM cartridge port to allow for plug-in cartridges with games and other software as well as for adding memory to the machine. Port expander boxes were available from Commodore and other vendors to allow more than one cartridge to be attached at a time. Cartridge software ranged from 4 - 16 KB in size, although the latter was uncommon due to its cost and only larger software houses produced 16 KB cartridges.
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. Like on the PET, 256 different characters could be displayed at a 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 has 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 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.
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.
The VIC-20's RAM was expandable through the cartridge port. 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 the situation that some programs would only work if the right amount of memory was present (to cater for this, the 32 kB cartridges had switches, and the 64 kB cartridges had software setups, allowing the RAM to be enabled in user-selected sections).
Since the VIC-20 was designed to use SRAM rather than DRAM, the system board has no provisions for RAM refresh. Memory expander cartridges may use either type, however DRAM-based expanders had to contain their own circuitry to refresh the RAM and multiplex the data/address bus. One reason for the oversized VIC-20 cartridge PCBs was apparently to provide room for DRAM infrastructure.
The memory mapping of the VIC-20 was slightly confusing and could vary depending on the system configuration. With no expanders installed, free user memory starts at $1000 and extends up to $1DFF, with the video buffer placed at $1E00-$1FFF. Underneath $1000 was a hole from $400-$FFF which could be filled with 3k of expansion RAM. If memory expander cartridges were used, video memory started at $1000 and free user RAM at $1200.
The normal location for ROM cartridges is at $A000-$BFFF. On power up, the kernel ROM checks for an ID header and if found will jump to the specified start address. Larger 16k cartridges have the second half of the ROM at $2000 or $6000. A few cartridges, including Scott Adams adventures, load entirely in the $2000-$7FFF area. Since the kernel can only autostart ROMs located in $A000, these programs will have to be manually activated from BASIC by typing a SYS command.
Commodore's official RAM expanders came in 8 and 16k variants, but third party ones could provide up to 32k of memory and sometimes even include DIP switches to map the RAM into various locations.
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|
|0x0000||1.0||RAM with jump vectors etc.|
|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||*|
While noting the small screen size and RAM, BYTE stated that the VIC 20 was "unexcelled as low-cost, consumer-oriented computer. Even with some of its limitations ... it makes an impressive showing against ... the Apple II, the Radio Shack TRS-80, and the Atari 800". It praised the price ("Looking at a picture ... might cause you to think $600 would be a fair price ... But it does not cost $600—the VIC 20 retails for $299.95"), keyboard ("the equal of any personal-computer keyboard in both appearance and performance. This is a remarkable achievement, almost unbelievable considering the price of the entire unit"), graphics, documentation, and ease of software development with the KERNAL.
The VIC-20 could be hooked into external electronic circuitry, using parts available from parts outlets like RadioShack and Maplin. Interfaces were designed to use the joystick port, the so-called "user port", or the memory expansion–cartridge port, which exposed various analog to digital, memory bus, and other internal I/O circuits to the experimenter. The BASIC language could then be used (using the PEEK and POKE commands) to perform data acquisition from temperature sensors, control robotic stepper motors, etc. The VIC-20 did not originally have a disk drive, with only a relatively high cost, but extremely reliable digital tape storage system (using audio cassette tapes); the VIC-1540 disk drive was released in 1981. Many experimenters built adapters that allowed any conventional audio cassette recorder to be used for program and data storage (since these were generally cheaper than Commodore's own Datasette recorder, though only as reliable as other manufacturers analog cassette storage solutions).
As on other Commodore 8-bit systems, certain system functions could be accessed by the SYS command. For example, even though the VIC had no hardware reset button,
SYS 64802 would cause the computer to reset, because memory location 64802 in the standard memory map was the entry point to the VIC's KERNAL reset routine.
The Commodore VIC-20 continues to have a loyal following today. Programmers continue to write demo, utility, and game programs for the machine (most often shared through the Denial community), and also through commercial retro-software developers such as Psytronik. Recent programs compiled in machine language tend to reveal features of the machine that were never utilized during its production years. A common goal of these programs (and the programmers writing them) is to "show off" how many complex program/graphic features (such as scrolling and pseudo-sprites) and/or intense/realistic gameplay that can be packed into the VIC-20's small amount of available RAM and resolution. Recent software releases such as Frogger '07 (2007 release) and Berzerk MMX (2010 release) have gameplay, graphics, and sound (including voice synthesis in Berzerk) that rival the original arcade machines. Even a port of Doom, a 1993 game popularized on much more powerful platforms, became available for the VIC-20 in 2013.
- "MESS VIC20/VC20 (German) PAL". MESS — Multiple Emulator Super System
- "Home Video Game Console Sound Chip Round-Up". 090514 gweep.net
- The computer was renamed in German-speaking countries because "VIC" would be pronounced similarly to the obscene word fick.
- Commodore VIC-20 History
- OLD-COMPUTERS.COM : The Museum
- "RUN Magazine issue 28".
- 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.
- Kevelson, Morton (January 1986). "Speech Synthesizers for the Commodore Computers / Part II". Ahoy!. p. 32. Retrieved 2 July 2014.
- "Commodore: New Products, New Philosophies". Kilobaud. September 1980. pp. 26–28. Retrieved 23 June 2014.
- "RUN Magazine Issue 34".
- Flynn, Christopher J. (June 1982). "Using Atari Joysticks With Your VIC". Compute!. p. 79. Retrieved 6 October 2013.
- The Commodore VICModem and later models connected directly to the user port's edge connector. But in order to connect the VIC to industry-standard modems and other RS-232 devices, the user needed to purchase a separate TTL-to-RS232 voltage converter box (standard TTL voltages lie between 0 and 5 V, while RS-232 uses ±12 V).
- "VIC-20 memory map (long)". zimmers.net. 19 September 2005. Retrieved 2013-05-20.
- "VIC 20 / Commodore 64 RS 232" (PDF). commodore.ca. 30 March 2011. Retrieved 2013-05-21.
- Williams, Gregg (May 1981). "The Commodore VIC 20 Microcomputer: A Low-Cost, High-Performance Consumer Computer". BYTE. p. 46. Retrieved 18 October 2013.
- "DOOM - First person hit on the Commodore VIC-20 / Commodore VC-20". Retrieved 26 August 2015.
- 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 2009-04-20.
- 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 Computer Wars: An Insider's Account of Commodore and Jack Tramiel. COMPUTE! Publications, Inc. ISBN 0-942386-75-2. Retrieved 2009-04-20.
BYTE in 1983 published a series of technical articles about the VIC-20:
- 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 Commodore VIC-20 Community
- OLD-COMPUTERS.COM online-museum VIC-20 page
- VIC-20 Programmers reference guide and more