* CPU: Commodore Semiconductor Group 6502A 1.0227 MHz
* Co-Processor: VIC-I (6560) for sound and graphics.
* RAM: 5 KB (3583 bytes free), expandable up to 32 KB
* VRAM: Screen memory shared with regular RAM
* ROM: 16 KB
* Text Modes: 23 rows x 22 columns
* Graphic Modes: 184 x 176
* Colors: 8 character colors, 16 background/border colors
* Sound: 3 voices / 3 octaves
* I/O Ports: 1 joystick port, 1 user port, 1 serial port, 1 cartrige port, Composite video output, tape interface
* Keyboard: Full-stroke keyboard, 4 function keys, 66 keys
* Built In Language: CBM Basic V2
MESS emulates the following computers
* vic20 [VIC20 (NTSC)]
* vc20 [VIC20 / VC20 (PAL,German)]
* vic20swe [VIC20 (PAL, Swedish Expansion Kit)]
* vic1001 [VIC1001 (NTSC)]
* vic20i [VIC20 (NTSC, IEEE488 Interface SYS45065]
* vic20v [VIC20 (NTSC, 1541)] - with 1541 floppy drive
* vc20v [VC20 (PAL, 1541)] - with 1541 floppy drive
For each system, MESS supports
- a datasette, using "cassette" (cass) device, for tapes in .tap and .wav format
- two cart slots, "cartridge1" (cart1) and "cartridge2" (cart2), for cart dumps in .rom, .bin, .a0, .20, .40 and .60 format
- one / two floppy drives (different kinds, depending on the system), "floppydisk" (flop) or "floppydisk1" (flop1) and "floppydisk2" (flop2), for disk images in .d64 format.
Also notice that a "quickload" (quik) feature is available for .p00 and .prg files. Cassettes
Cassette images can have the .wav or .tap extensions (formally .t64 images are tapes as well, but we currently load them through -quickload). To run a .tap or a .wav image you have to launch
mess c64 -cass "C:\pathtogame\gamename.tap"
Once you're at the BASIC prompt you have various options:
* to load a BASIC program from the cassette
* to load the first program from the cassette
The message "Press play on tape" will appear, and you will have to enter the MESS internal UI to start the tape (press Tab
and choose "Tape Control", then press "Play"). Once the program is loaded, a "READY" message will be prompted and you can run your program by simply typing
or the appropriate SYS call.
Also, MESS supports saving to tape. Therefore, you can write your own BASIC programs and save them using the command
The message "Press play & record on tape" will appear, and you will have to enter the MESS internal UI to start recording the tape (press Tab
and choose "Tape Control", then press "Record"). Floppy Disks
MESS currently //simulates// only loading from drive 8 and 9 in the VIC20 emulation. These drives correspond to the devices "floppydisk1" (flop1) and "floppydisk2" (flop2) emulated by MESS. To run a .d64 image you have to launch
mess vic20 -flop1 "C:\pathtogame\gamename.d64"
Once you're at the BASIC prompt you have various options:
* to list the content of the floppy
* to load a BASIC program from the disk
* to load a machine language program at its address
* to load the first program from the disk (useful if you're not sure of which is the correct one to load)
Once the program is loaded, a "READY" message will be prompted and you can run your program by simply typing
or the appropriate SYS call. If you launched the game on -flop2, you will need to use drive 9 in place of drive 8 in the commands above.
Note that several programs rely on more features not currently emulated (such as loading other file types, writing...) Some games also rely on starting programs in the floppy drive's processor (and therefore CPU level emulation of the 1541 is needed). Cartridge
Cartridges may have any of the following extensions: .bin .rom .a0 .20 .40 .60 .prg. Files with boot-sign in it are recognized as ROMs. Some cartridges may require more than one image (for example, defender.60 defender.a0 and that's why we have two cart slots).
* .20 files loaded at 0x2000
* .40 files loaded at 0x4000
* .60 files loaded at 0x6000
* .a0 files loaded at 0xa000
* .bin and .rom files are loaded at 0x4000 when 0x4000 bytes long, otherwise they are loaded at 0xa000
To use "cartridge1" (cart1) or "cartridge2" (cart2) slots in MESS, simply launch
mess vic20 -cart1 "C:\pathtogame\gamename.crt"
and the game will start.
Note that .prg files are often cartridge images as well, but in MESS they are assigned to the quickloader (see below). Quickloader
A quickloader is available via command line and it supports program image files with extensions .prg and .p00. The quickloader loads the program into memory and sets the program end pointer. It shall work with most programs. To use the "quickload" (quik) device in MESS: launch
mess vic20 -quik "C:\pathtogame\gamename.prg"
and simply type the command
to start the program. Miscellaneous
Note that the pixel ratio for the PAL version is about 13/10! Light Pen
The emulated light pen uses Paddle 3 x-axis and Paddle 4 y-axis. Keyboard
These systems require full keyboard emulation to work correctly. At startup, full keyboard emulation mode is enabled by default. Whilst in full keyboard emulation mode, some key associated functionality may be disabled (like the Esc
key for EXIT). The keyboard emulation mode is toggled using the Scrl Lock
key (by default).
Some key usages of note:
in many cases will cause the prompt to reappear.
switches between upper-only and normal character set (if wrong characters are on screen this often can help)
) loads and starts program from tape.
Original Keyboard: Full-stroke keyboard, 4 function keys, 66 keys
<- 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0 + - £ HOME DEL f 1
CTRL Q W E R T Y U I O P @ * UP RESTORE f 3
STOP LOCK A S D F G H J K L :[ ;] = RETURN f 5
C= SHIFT Z X C V B N M ,< .> /? SHIFT U/D L/R f 7
is a key with the Commodore logo, "UP" is an arrow pointing up, the "CRSR" keys at the
bottom-right corner are used to move the cursor on screen (Up/Down and Left/Right respectively). Color Codes
with number keys, you can change the font color. Below you find the complete list of available colors
^ ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^
| black | white | red | cyan | purple | green | blue | yellow | RAM options
Different RAM configurations are possible for vic20 systems in MESS. You can switch between them, changing the -ramsize parameter. At command line, you simply have to add ''-ramsize ram_value'', where //ram_value// can assume one of the following values
* The timer system only 98% accurate.
* The serial bus allows simple disk support, but no printer or other devices at present.
* No userport, no rs232/v.24 interface.
* No special expansion modules like ieee488 interface are supported in the expansion port.
The emulation of VIC 20 with a 1541 floppy drive is only Preliminary.
History and Trivia
The VIC-20 - a "family" version of the PET series (using the same microprocessor and Basic language) - was the first computer to sell more than one million units. Once dubbed the MicroPET during the 1980 Computer Electronics Show, it later became known as the VIC-20.
VIC referenced the VIC-I (Video Interface Chip) chip used for graphics and sound. There does not seem to be any obvious rationale behind the usage of the number 20, other than the fact that it was close to the 22 characters per line and to the combined RAM and ROM
memory in the machine (5 KB RAM + 16 KB ROM).
Regarding the name, Michael Tomczyk, (manager of the VIC project) recalls: "VIC sounded like a truck driver, so I insisted on attaching a number. I picked "20" and when Jack Tramiel asked, "Why 20?" I replied, "because it's a friendly number and this has to be
a friendly computer." He agreed. The number 20 has no relation to any technical feature -- just my idea of a friendly sounding number. That sounds a bit bizarre looking back on it, but we did a lot of things by instinct in those days."
The European name VC20 stands for VolksComputer.
The VIC-20 was designed by Bob Yannes who also created the SID chip for the C64. He later joined Ensoniq to design synthesizers.
The Video Interface Chip (or 'VIC' as it is commonly called), is one of the most important silicon chips in the VIC-20 microcomputer, coming second only to the 6502A microprocessor itself. The VIC is a specially constructed input-output (I/O) chip that offers a large
variety of functions, but as suggested by its name, is primarily concerned with the production of the video output signal. It was originally intended to be sold to third-party manufacturers for use in video game machines. Demand for the chip was low, and so Commodore decided to make their own system to recoup their losses.
The VIC-20 was initially launched in Japan in late 1980 (under the 'VIC-1001' name) with a Japanese 'Katakana' set of characters. It was subsequently released in North America in May of 1981. Though these are the "official" release dates, several prototypes of the Commodore VIC-20 were reportedly available in late 1979. These early machines offered only 4 KB of RAM and used a different set of game cartridges.
Thanks to the colorful graphics and low cost, the VIC-20 was an immediate success. At its peak, more than 9000 units rolled off the assembly line each day. Adding to its success was the fact that it was the first color computer to break the $300 (USD) price barrier.
A wide range of peripherals and software were developed for the VIC-20. When it became obsolete, Commodore replaced it by the Commodore 16 which had no success.
(info from old-computers.com)
* VIC-20 Archive -- http://www.funet.fi/pub/cbm/vic20/index.html
* VIC-20 Tribute Page -- http://www.geocities.com/rmelick/new_page_2.htm
* VIC-20 at old-computers.com -- http://old-computers.com/museum/computer.asp?c=252
* VICE -- http://www.viceteam.org/
* Pfau Zeh -- http://www.classicgaming.com/pfauzeh/