Commodore VIC-20 Machine Hub

The friendly computer workbench reference — 2-prong 9 V AC vs 7-pin DIN Cost-Reduced (CR) boards, 2114/6116 SRAM fault locator, MOS 6560/6561 VIC & 6522 VIA diagnostics, 5-pin DIN S-Video mod, and 44-pin cartridge memory map.

Two Completely Different VIC-20 Power Systems — Check Your Socket First!

Commodore built the VIC-20 (and German `VC-20` / Japanese `VIC-1001`) with two completely different power architectures across its 1980–1985 lifespan: (1) Early 1980–1982 boards use a 2-prong rectangular socket (`9V AC` @ 3.0 A) with a massive internal TO-3 `LM323K` 3-Amp +5 V linear regulator that turns the right side of the motherboard into a toaster oven! (2) Late 1983–1985 "Cost-Reduced" (CR) boards use the exact same 7-pin circular DIN (`+5V DC` & `9V AC`) as the Commodore 64 — meaning an original epoxy-potted C64/VIC-20CR "Brick of Death" will overvolt and kill the irreplaceable `6560/6561` VIC chip!

1 Early 2-Prong `9V AC` Boards (`ASSY 324003`)

ParameterEarly 2-Prong VIC-20 Spec
Rear Socket2-Pin Keyed Rectangular AC Prongs (Non-polarised AC)
External Brick9.0 V AC Transformer @ 3.0 A (27–30 VA)
Internal RegulatorLM323K (+5 V, 3.0 A, TO-3 Steel Can) on large finned heatsink (`VR1`)
  • Why Early Boards Run So Hot: Ten NMOS `2114` SRAMs + the `6560/6561` VIC + three 2364 ROMs draw nearly 1.8 A at +5 V, forcing the internal `LM323K` regulator to dissipate ~10 W of heat inside the case!
  • Cool-Running TO-3 Buck Upgrade: Replace the boiling-hot TO-3 `LM323K` with a drop-in 3 A TO-3 switching buck module (e.g., EzSBC PSU5 / Texas Instruments LMZ12003 TO-3 drop-in) to drop internal case temperatures by 25 °C!

2 Late 7-Pin DIN "CR" Boards (`ASSY 250403`)

Identical to the Commodore 64 power socket (viewed looking at the rear female socket on the VIC-20CR):

DIN-7 PinSignalTarget Spec
Pin 1, 2, 3GND (0 V)Digital Return Ground
Pin 4NC (or +5V on C64 bricks)Bridged to Pin 5 on many modern PSUs
Pin 5+5.0 V DC Regulated4.90–5.15 V DC (@ 1.5 A)
Pin 6 & Pin 79.0 V AC8.5–10.5 V AC (@ 1.0 A — Datasette motor & User Port)

Note: Unlike the C64 (which needs 9 V AC for its SID chip and CIA TOD clocks), the VIC-20CR's `6560/6561` VIC and `6522` VIAs run 100% from the +5 V DC rail (9 V AC is only used by the cassette motor and User Port)!

3 Internal Fuse & Bridge Rectifier Check

  • Dead 2-Prong VIC-20? Check the internal glass cartridge fuse (`F1`, `3.15A` or `4A` slow-blow) and the 4-leg high-current bridge rectifier (`CR1` `MDA2501`) right next to the 2-prong input!
  • Main 4700 μF 16 V / 25 V Filter Capacitor (`C29` / `C47`): On 2-prong boards, this huge axial electrolytic sits inches from the scorching `LM323K` heatsink. When it dries out, 100 Hz AC ripple leaks through the regulator, causing rolling hum bars on the TV screen and warbling audio!

Board Revisions & The Quirky 5KB VIC-20 Memory Map

Compare the early 10-SRAM 2-prong longboards against the late 3-SRAM Cost-Reduced (CR) shortboards, and understand why adding +8K RAM moves Screen Memory!

Early 2-Prong Boards 1980–1982 • ASSY 1001006 (VIC-1001) & ASSY 324003

The first computer in history to sell over one million units. Designed initially by Bob Yannes (creator of the MOS 6560 VIC chip) and productised by Michael Tomczyk's "VIC Commandos", early VIC-20s feature rectangular "PET-style" flat-top keycaps, golden/silver foil case badges, the 2-prong 9 V AC power input, and ten `2114` (1K×4) static RAM chips providing 5 KB of system RAM + 0.5 KB of 4-bit Colour RAM.

Key ICs & Designators (`ASSY 324003` European / US)

  • UB10 / UE10 (CPU): MOS 6502 / 6502A @ 1.0227 MHz (NTSC) / 1.1084 MHz (PAL)
  • UB7 (VIC): MOS 6560 (NTSC) or 6561-101 / 6561E (PAL) (40-pin DIP inside central metal RF shield cage) — 22×23 character display, 16 colours, 3 square-wave voices + 1 white-noise channel, 2 paddle/lightpen ADCs & system clock divider
  • UAB3 (VIA #1): MOS 6522 (`$9110–$911F`) — Joystick (`PA2–PA5, PB7`), User Port, `/RESTORE` NMI key, and IEC Serial `ATN` out
  • UAB1 (VIA #2): MOS 6522 (`$9120–$912F`) — 8×8 Keyboard Matrix (`PA0–PA7` & `PB0–PB7`), IEC Serial `CLK`/`DATA`, and Datasette Read/Write/Sense
  • UD7 (Character ROM): `901460-03` (4 KB 24-pin 2332 mask ROM, `$8000–$8FFF`)
  • UE11 (BASIC 2.0 ROM): `901486-01` (8 KB 24-pin 2364 mask ROM, `$C000–$DFFF`)
  • UE12 (Kernal ROM): `901486-06` (NTSC) or `901486-07` (PAL) (8 KB 24-pin 2364 mask ROM, `$E000–$FFFF`)
  • UE1–UE6 & UD2–UD5 (RAM): 10× `2114` (1K×4) SRAMs + 1× `2114` (`UC6`) for 4-bit Colour RAM!

NTSC (`6560`) vs PAL (`6561`) Crystal & Kernal Differences

FeatureNTSC VIC-20 (North America / Japan)PAL VIC-20 / VC-20 (UK / Europe)
VIC ChipMOS 6560 (14.31818 MHz crystal)MOS 6561-101 / 6561E (4.433619 MHz ×2/crystal)
CPU Clock Speed1.0227 MHz1.1084 MHz (~8.4% faster than NTSC & C64!)
Kernal ROM (`UE12`)`901486-06` (or `901486-02` Katakana JP)`901486-07` (sets different default screen centering registers `R0`/`R1`!)

Why an NTSC Game Looks Off-Center on a PAL VIC-20 (and How to Fix It): Because the PAL 6561 and NTSC 6560 use different horizontal/vertical screen origin values in `9000` (`$9000` = Horizontal Origin, `$9001` = Vertical Origin), many cartridges let you recenter the screen on startup using the Cursor Up/Down/Left/Right keys!

Diagnostic Checklist & 2114 / 6116 SRAM Chip Locator

Pinpointing dead static RAM chips across Early (`324003`) and CR (`250403`) boards, and isolating 6560/6561 VIC vs 6522 VIA faults.

▦

VIC-20 Static RAM (`2114` & `6116`) Fault Locator by Address & Nibble

Unlike the C64's multiplexed DRAMs, the VIC-20 uses Static RAM (`2114` 1K×4 nibbles on early boards; `2114` + `6116` 2K×8 on CR boards). This means a bad SRAM chip affects a specific 1 KB or 2 KB address block AND a specific 4-bit nibble (`Low Nibble D0–D3` vs `High Nibble D4–D7`)!

Complete SRAM Address & Nibble Map

Memory Block Early Board (`324003`)
Low (`D0–D3`) / High (`D4–D7`)
CR Board (`250403`)
IC Location
Symptom When Chip Fails
$0000–$03FF
(Zero-Page & 6502 Stack)
Low: UE2
High: UE1 (2114)
Low: U2
High: U1 (2114)
White Screen with Cyan Border (No Text) or Black Screen! CPU crashes immediately on `JSR`/`RTS` stack operations.
$1000–$13FF
(Start of BASIC RAM)
Low: UD2
High: UE3 (2114)
U4 (`6116` 2K×8)
(`$1000–$17FF`)
Boots to banner, but reports 0 BYTES FREE (or low byte count) or corrupts BASIC programs!
$1400–$17FF
(Mid BASIC RAM)
Low: UD3
High: UE4 (2114)
Reports ~1023 BYTES FREE instead of `3583 BYTES FREE`!
$1800–$1BFF
(Upper BASIC RAM)
Low: UD4
High: UE5 (2114)
U3 (`6116` 2K×8)
(`$1800–$1FFF`)
Reports ~2047 BYTES FREE instead of `3583 BYTES FREE`!
$1C00–$1FFF
(Screen RAM at `$1E00`!)
Low: UD5
High: UE6 (2114)
Garbled Characters on Screen!
• `UD5` bad = wrong letters (`A`→`B`/`C`)
• `UE6` bad = inverse/graphic blocks!
$9400–$97FF
(4-Bit Colour RAM!)
Low (`D0–D3`): UC6 (2114) Low (`D0–D3`): U5 (2114) Random / Wrong Character Colours or Rainbow Flickering Text! (Also check the `CD4066` quad bilateral switch `UC5`/`U14`!).

Black Screen Decision Tree

  1. 1. Check `6560` / `6561` VIC (`UB7` / `U8`) first:
    • In the VIC-20, the VIC chip generates the 1 MHz `Φ1`/`Φ2` clocks for the 6502 CPU! If the VIC chip (or its crystal oscillator) is dead, the 6502 receives no clock at all and the screen stays completely black without sync.
    • Open the central tin RF shield lid and touch the 40-pin VIC chip — it normally runs warm, but if it is stone cold or blistering hot with no sync on 5-pin DIN Pin 4, reseat its socket first.
  2. 2. Check Zero-Page SRAM (`UE1/UE2` or `U1/U2`) & Kernal ROM (`UE12` / `U12`):
    • If you have a valid video sync signal (or a white screen with cyan border and no text), the VIC chip is alive!
    • Touch the `2114` SRAMs at `UE1`/`UE2` (`U1`/`U2` on CR) — shorted 2114s run scorching hot.
    • The 24-pin Kernal ROM (`901486-06`/`-07`) and BASIC ROM (`901486-01`) fail frequently on VIC-20s — test with a Dead-Test / Diagnostic cartridge!
⚙

Dual MOS 6522 VIA Fault Symptoms (`VIA#1` vs `VIA#2`)

Unlike the C64 (which uses 6526 CIAs), the VIC-20 uses two standard MOS 6522 Versatile Interface Adapters. Swapping the two 6522s (if socketed) immediately isolates keyboard vs joystick/serial faults:

ChipAddressSymptoms When Faulty
VIA #1
(`UAB3` / `U6`)
$9110–$911F Joystick Fire/Up/Down/Left dead (note: Joystick *Right* is wired to `PB7` on VIA#2!), `/RESTORE` key doesn't work, IEC disk drive `DEVICE NOT PRESENT` (controls `ATN OUT`), or User Port dead.
VIA #2
(`UAB1` / `U9`)
$9120–$912F Blinking Cursor Absent & Keyboard Dead! (VIA#2 Timer 1 generates the 60 Hz system IRQ that blinks the cursor and scans the keyboard matrix!), Joystick *Right* (`PB7`) stuck, IEC `CLK`/`DATA` dead, or Datasette won't load.
⚡

Corrupted Character Font (`UD7`) vs Colour Switch (`CD4066`)

Isolating solid block characters or flickering rainbow text.

  • Every Character Is a Solid 8×8 Block (Correct Blue Colour, Blind Commands Work): The 24-pin 4 KB Character ROM (`901460-03` at `UD7` / `U7`) has failed! Replace with a `2532` EPROM (direct 24-pin drop-in) or `2732` with adapter.
  • Text Characters Are Readable, But Colours Flicker or Turn White/Random: Before desoldering the `2114` Colour RAM (`UC6` / `U5`), check the 14-pin CMOS `CD4066BE` / `MC14066B` quad bilateral switch (`UC5` / `U14`) right next to it, which isolates the 4-bit Colour RAM bus between the 6502 CPU and the VIC chip!

5-Pin DIN Audio/Video Pinout & Clean S-Video Mod

Notice Pin 2 (`GND`) and Pin 4 (`VIDEO LOW`) vs Pin 5 (`VIDEO HIGH`), why VIC-20 composite needs a +5V bias inside the RF modulator, and the 2-component S-Video mod!

5-Pin DIN Audio/Video Socket DIN 180° • C64 5-Pin Cable Compatible

Unlike the C64, the VIC-20 did not come with a built-in RF modulator — instead it shipped with an external silver plug-in RF modulator box (`VIC-1011`) powered by +6–9 V DC on Pin 1 of the 5-pin DIN socket! Even better, standard 5-pin Commodore C64 composite A/V cables plug straight in:

DIN-5 PinVIC-20 SignalCable Target & Notes
Pin 1+6 V to +9 V DC OutPowers external RF modulator (Leave unconnected in RCA/SCART A/V cables!)
Pin 2 (Center)GND (0 V Shield)Video & Audio Ground Return
Pin 3AUDIO OUT (Mono)White / Red RCA Audio Plug (from 6560/6561 VIC Pin 2)
Pin 4COMPOSITE VIDEO LOWYellow RCA Composite Video Plug (Standard 1 V p-p 75 Ω level)
Pin 5COMPOSITE VIDEO HIGHHigher-amplitude video tap (or repurposed as Chroma Out for S-Video mod!)

Why the Picture Is Too Dark, Too Bright, or Missing Sync on Modern Upscalers: Inside the VIC-20's central metal video cage sit two adjustable trimmer potentiometers: one adjusts the Video Output Level / DC Bias and the other adjusts the Subcarrier / Chroma Balance! Adjusting the video level pot with a plastic screwdriver cures washed-out white clipping on RetroTINK / OSSC upscalers immediately.

Tutorial Reversible VIC-20 S-Video (Luma/Chroma) Mod

Although the MOS 6560/6561 VIC chip outputs composite video on Pin 2 (`VIDEO`), internally it actually generates Luminance + Sync (`Pin 2`) separately and mixes Chrominance from `Pin 3` (`COLOR`) right on the motherboard PCB via a coupling capacitor and resistor! Separating them gives stunningly sharp S-Video with zero rainbow dot-crawl:

  1. Disconnect the Internal Luma/Chroma Mix: Open the central metal VIC shield cage and lift one leg of the small coupling resistor/capacitor that bridges the VIC Pin 3 (`COLOR`) buffer circuit into the VIC Pin 2 (`LUMA/SYNC`) emitter-follower transistor (`Q1`). Now DIN Pin 4 outputs pure, razor-sharp Luminance + Sync (`Y`)!
  2. Route Buffered Chroma to DIN Pin 5: Cut the jumper track feeding `VIDEO HIGH` to DIN Pin 5 and route the buffered Chroma signal (from the disconnected leg of the chroma coupling capacitor through a 75 Ω–220 Ω series resistor) to DIN Pin 5 (`CHROMA`)!
  3. Result: Any standard 5-pin Commodore / Atari S-Video cable (`Pin 4 = Y`, `Pin 5 = C`, `Pin 3 = Audio`, `Pin 2 = GND`) now outputs true S-Video straight into a RetroTINK 2X/5X/4K or CRT S-Video monitor!

44-Pin Cartridge Expansion Bus, User Port & IEC Pinouts

Complete pinout of the wide 44-pin (`2×22`, 0.156″ pitch) VIC-20 Cartridge Slot showing how `/RAM1–3` and `/BLK1–5` map external RAM and ROM.

44-Pin Cartridge Expansion Bus Pinout 2×22 Edge • 0.156″ Pitch • Viewed from Rear

Unlike any other 8-bit computer, the VIC-20's cartridge slot pre-decodes eight chip-select lines right on the motherboard (`74LS138` decoders `UC4` & `UD8`): three 1 KB selects (`/RAM1`, `/RAM2`, `/RAM3`) and five 8 KB selects (`/BLK1`, `/BLK2`, `/BLK3`, `/BLK5`) plus two 1 KB I/O selects (`/IO2`, `/IO3`). Top row = Pins `1–22` (Right-to-Left from rear); Bottom row = Letters `A–Z` (excluding G, I, O, Q):

Top Pin (1–22) Signal & Address Select Bottom Pin (A–Z) Signal & Bus Role Top Pin (1–22) Signal & Address Select Bottom Pin (A–Z) Signal & Bus Role
1GND (0 V)AGND (0 V)12/BLK2 (`$4000–$5FFF` +8K Block 2)NCA13 (Cart Address 13)
2CD0 (Data Bit 0)BCA0 (Address Bit 0)13/BLK3 (`$6000–$7FFF` +8K Block 3)P/IO2 (`$9800–$9BFF` I/O 2)
3CD1 (Data Bit 1)CCA1 (Address Bit 1)14/BLK5 (`$A000–$BFFF` Auto-Start Cart ROM!)R/IO3 (`$9C00–$9FFF` I/O 3)
4CD2 (Data Bit 2)DCA2 (Address Bit 2)15VR/W (VIC Read/Write)SSΦ2 (1 MHz System Phase 2 Clock)
5CD3 (Data Bit 3)ECA3 (Address Bit 3)16CR/W (CPU Read/Write)T/IRQ (Maskable Interrupt)
6CD4 (Data Bit 4)FCA4 (Address Bit 4)17BΦ2 (Buffered Phase 2 Clock)U/NMI (Non-Maskable Int / Restore)
7CD5 (Data Bit 5)HCA5 (Address Bit 5)18/RAM1 (`$0400–$07FF` +1K RAM 1)V/RES (System Reset, active-low)
8CD6 (Data Bit 6)JCA6 (Address Bit 6)19/RAM2 (`$0800–$0BFF` +1K RAM 2)WNC
9CD7 (Data Bit 7)KCA7 (Address Bit 7)20/RAM3 (`$0C00–$0FFF` +1K RAM 3)XNC
10KEYWAY SLOTLCA8 (Address Bit 8)21+5 V DC (Regulated Supply)YCA12 (Address Bit 12)
11/BLK1 (`$2000–$3FFF` +8K Block 1)MCA9 (Address Bit 9)22GND (0 V)ZCA10 / CA11 (Note: `Z=CA11`, `Y=CA12`, `N=CA13`)

How `/BLK5` (`$A000–$BFFF` on Pin 14) Auto-Boots Game Cartridges: On startup, the VIC-20 Kernal checks address `$A004–$A008` for the petscii signature A0CBM (`$41, $30, $C3, $C2, $CD`). If present, the Kernal jumps straight to the 16-bit cold-start vector at `$A000/$A001`! Because `/BLK5` is already decoded on Pin 14, an 8 KB game cartridge needs literally one 27C64 EPROM and zero glue logic chips!

Chip & 24-Pin 2364 ROM Reference

Interactive IC Pinout Finder cards for every major IC in the VIC-20 plus 2364 mask ROM to EPROM conversion rules.

VIC-20 ROM Part Numbers & 24-Pin EPROM Substitution Guide

All three ROM sockets on the VIC-20 (`Character`, `BASIC`, and `Kernal`) are 24-pin mask ROM sockets:

ROM Function & AddressEarly / CR SocketCommodore Part #EPROM Substitute & Adapter Notes
Character ROM (`4KB`)
(`$8000–$8FFF`)
`UD7` (`324003`)
`U7` (`250403` CR)
901460-03
(or `901460-02` JP)
`2532` (4 KB, 24-pin) is a 100% Direct Drop-In! (No adapter needed — 2332 and 2532 share the exact same pinout!).
BASIC V2 ROM (`8KB`)
(`$C000–$DFFF`)
`UE11` (`324003`)
`U11` (`250403` CR)
901486-01 24-pin `2364` pinout: use a direct 24-pin `MCM68764` / `68766` OR a standard 28-pin `27C64` / `27C128` via a 2364-to-27xxx socket adapter.
Kernal ROM (`8KB`)
(`$E000–$FFFF`)
`UE12` (`324003`)
`U12` (`250403` CR)
901486-06 (NTSC)
901486-07 (PAL)
901486-02 (VIC-1001 JP)
Use a 2364-to-27C128/27C256 Dual-Kernal adapter to switch between Stock Kernal and JiffyDOS VIC-20 for fast SD2IEC/1541 disk loading!

Resources & Further Reading

Blog posts, interactive bench tools, and essential Commodore VIC-20 communities & archives.

Bench Tools & Machine Hubs

External VIC-20 Resources

Theme Palette

Default Dark
High-contrast dark
Amber Terminal
Monochrome amber
Matrix CRT
Phosphor green
Workbench Light
Clean light mode

Audio & Display

Relay Click Sounds Web Audio API — soft mechanical clicks
CRT Scanline & Flicker Pure CSS overlay effect

System Info

Customization Panel Theme preference, audio FX, and CRT overlay settings are saved to your browser's localStorage and persist between visits. No cookies or server-side storage is used.
Keyboard Shortcuts Press Esc to close this panel. Use the header moon/sun icon to cycle themes.