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`)
| Parameter | Early 2-Prong VIC-20 Spec |
|---|---|
| Rear Socket | 2-Pin Keyed Rectangular AC Prongs (Non-polarised AC) |
| External Brick | 9.0 V AC Transformer @ 3.0 A (27–30 VA) |
| Internal Regulator | LM323K (+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 Pin | Signal | Target Spec |
|---|---|---|
| Pin 1, 2, 3 | GND (0 V) | Digital Return Ground |
| Pin 4 | NC (or +5V on C64 bricks) | Bridged to Pin 5 on many modern PSUs |
| Pin 5 | +5.0 V DC Regulated | 4.90–5.15 V DC (@ 1.5 A) |
| Pin 6 & Pin 7 | 9.0 V AC | 8.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
| Feature | NTSC VIC-20 (North America / Japan) | PAL VIC-20 / VC-20 (UK / Europe) |
|---|---|---|
| VIC Chip | MOS 6560 (14.31818 MHz crystal) | MOS 6561-101 / 6561E (4.433619 MHz ×2/crystal) |
| CPU Clock Speed | 1.0227 MHz | 1.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!
Cost-Reduced "CR" Shortboard 1983–1985 • ASSY 250403 • 7-Pin DIN PSU • 2× 6116 SRAM
In 1983 Commodore redesigned the VIC-20 motherboard (`ASSY 250403`) to share the C64's rounded brown keycaps, rainbow badge, and 7-pin DIN power brick. Crucially, the CR board replaces eight of the hot 4-bit `2114` SRAMs (`$1000–$1FFF`) with just two cool-running 24-pin `6116` / `2016` (2K×8) byte-wide CMOS/NMOS SRAM chips (`U3` & `U4`)!
Key IC Designators on `ASSY 250403` (CR Board)
- U10 (CPU): MOS 6502 / 6502A
- U8 (VIC): MOS 6560 (NTSC) or 6561E (PAL)
- U6 (VIA #1 `$9110`) & U9 (VIA #2 `$9120`): 2× MOS 6522
- U7 (Character ROM), U11 (BASIC ROM), U12 (Kernal ROM): Three 24-pin 2332/2364 mask ROMs
- U1 & U2 (`$0000–$03FF` 1KB Low RAM): 2× 2114 (1K×4) SRAMs (`U2` = Low Nibble `D0–D3`; `U1` = High Nibble `D4–D7`)
- U3 & U4 (`$1000–$1FFF` 4KB Main/Screen RAM): 2× 6116 / TMM2016P (2K×8, 24-pin) SRAMs (`U4` = `$1000–$17FF`; `U3` = `$1800–$1FFF`)!
- U5 (`$9400–$97FF` Colour RAM): 1× 2114 (1K×4) SRAM (`D0–D3`)
Early 2-Prong (`324003`) vs Late CR (`250403`) Comparison
| Feature | Early 2-Prong (`324003`) | Cost-Reduced CR (`250403`) |
|---|---|---|
| Power Socket | 2-Prong Rectangular (`9V AC` 3A) | 7-Pin Circular DIN (`+5V DC` + `9V AC`) |
| Internal Regulator | Hot TO-3 `LM323K` on giant heatsink | None (+5 V regulated inside external brick) |
| SRAM Chip Count | 11× `2114` (10 System + 1 Colour) | 3× `2114` + 2× `6116` (5 chips total!) |
| Current Draw at +5V | ~1.6–1.8 A | ~0.9–1.1 A (Runs much cooler!) |
The 5KB Base Memory Map & Why Adding +8K RAM Moves Screen Memory!
One of the most fascinating quirks of the VIC-20 is that the MOS 6560/6561 VIC chip can ONLY address internal onboard memory (`$0000–$03FF`, `$1000–$1FFF`, and `$8000–$9FFF`) — its 14-bit video address bus (`VA0–VA13`) is physically not connected to the external `$2000–$7FFF` (`BLK1–BLK3`) cartridge RAM blocks! As a result, BASIC Program RAM and Video Screen RAM dynamically relocate depending on how much RAM expansion is plugged into the cartridge slot:
| RAM Configuration | Boot Banner | BASIC Program Start | Video Screen RAM Location | Colour RAM Location |
|---|---|---|---|---|
| Unexpanded (5KB Stock) (`1KB` at `$0000` + `4KB` at `$1000`) |
3583 BYTES FREE |
$1001 (`4097` dec) |
$1E00–$1FFF (`7680` dec — top 512 bytes of internal RAM) |
$9600–$97FF (`38400` dec) |
| +3KB RAM Expansion (`RAM1, RAM2, RAM3` at `$0400–$0FFF`) |
6655 BYTES FREE |
$0401 (`1025` dec — bridges the 3K gap!) |
$1E00–$1FFF (`7680` dec) |
$9600–$97FF (`38400` dec) |
| +8KB / +16KB / +24KB Expansion (`BLK1, BLK2, BLK3` at `$2000–$7FFF`) |
11775 / 19967 / 28159 BYTES FREE |
$1201 (`4609` dec!) |
Moves down to $1000–$11FF (`4096` dec)! (So BASIC can grow upward continuously from `$1201` into `$2000+`!) |
Moves to $9400–$95FF (`37888` dec)! |
Why Some VIC-20 Games Refuse to Run with Too Much (or Too Little) RAM: Because `POKE`ing directly to screen memory (`7680` vs `4096`) and colour memory (`38400` vs `37888`) changes completely when +8K (`BLK1`) is enabled, every VIC-20 software title is written for a specific memory configuration (`Unexpanded`, `+3K`, `+8K`, `+16K`, or `+24K`). Modern multi-carts like the Penultimate+2 automatically configure the exact RAM blocks each game expects!
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: UE2High: UE1 (2114) |
Low: U2High: 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: UD2High: 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: UD3High: UE4 (2114) |
Reports ~1023 BYTES FREE instead of `3583 BYTES FREE`! |
|
$1800–$1BFF(Upper BASIC RAM) |
Low: UD4High: UE5 (2114) |
U3 (`6116` 2K×8)(`$1800–$1FFF`) |
Reports ~2047 BYTES FREE instead of `3583 BYTES FREE`! |
$1C00–$1FFF(Screen RAM at `$1E00`!) |
Low: UD5High: 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. 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. 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:
| Chip | Address | Symptoms 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 Pin | VIC-20 Signal | Cable Target & Notes |
|---|---|---|
| Pin 1 | +6 V to +9 V DC Out | Powers external RF modulator (Leave unconnected in RCA/SCART A/V cables!) |
| Pin 2 (Center) | GND (0 V Shield) | Video & Audio Ground Return |
| Pin 3 | AUDIO OUT (Mono) | White / Red RCA Audio Plug (from 6560/6561 VIC Pin 2) |
| Pin 4 | COMPOSITE VIDEO LOW | Yellow RCA Composite Video Plug (Standard 1 V p-p 75 Ω level) |
| Pin 5 | COMPOSITE VIDEO HIGH | Higher-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:
- 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`)!
- 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`)!
- 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 |
|---|---|---|---|---|---|---|---|
| 1 | GND (0 V) | A | GND (0 V) | 12 | /BLK2 (`$4000–$5FFF` +8K Block 2) | N | CA13 (Cart Address 13) |
| 2 | CD0 (Data Bit 0) | B | CA0 (Address Bit 0) | 13 | /BLK3 (`$6000–$7FFF` +8K Block 3) | P | /IO2 (`$9800–$9BFF` I/O 2) |
| 3 | CD1 (Data Bit 1) | C | CA1 (Address Bit 1) | 14 | /BLK5 (`$A000–$BFFF` Auto-Start Cart ROM!) | R | /IO3 (`$9C00–$9FFF` I/O 3) |
| 4 | CD2 (Data Bit 2) | D | CA2 (Address Bit 2) | 15 | VR/W (VIC Read/Write) | S | SΦ2 (1 MHz System Phase 2 Clock) |
| 5 | CD3 (Data Bit 3) | E | CA3 (Address Bit 3) | 16 | CR/W (CPU Read/Write) | T | /IRQ (Maskable Interrupt) |
| 6 | CD4 (Data Bit 4) | F | CA4 (Address Bit 4) | 17 | BΦ2 (Buffered Phase 2 Clock) | U | /NMI (Non-Maskable Int / Restore) |
| 7 | CD5 (Data Bit 5) | H | CA5 (Address Bit 5) | 18 | /RAM1 (`$0400–$07FF` +1K RAM 1) | V | /RES (System Reset, active-low) |
| 8 | CD6 (Data Bit 6) | J | CA6 (Address Bit 6) | 19 | /RAM2 (`$0800–$0BFF` +1K RAM 2) | W | NC |
| 9 | CD7 (Data Bit 7) | K | CA7 (Address Bit 7) | 20 | /RAM3 (`$0C00–$0FFF` +1K RAM 3) | X | NC |
| 10 | KEYWAY SLOT | L | CA8 (Address Bit 8) | 21 | +5 V DC (Regulated Supply) | Y | CA12 (Address Bit 12) |
| 11 | /BLK1 (`$2000–$3FFF` +8K Block 1) | M | CA9 (Address Bit 9) | 22 | GND (0 V) | Z | CA10 / 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.
MOS 6560 / 6561 VIC
Video Interface Chip — 22×23 display, 4-voice sound, paddle ADCs, and CPU clock generator (`6560` NTSC / `6561` PAL).
View Pinout →MOS 6502 / 6502A CPU
8-bit microprocessor running at 1.02 MHz (NTSC) or 1.108 MHz (PAL).
View Pinout →MOS 6522 VIA (×2)
Versatile Interface Adapters (`VIA#1` at `$9110` for Joystick/User/NMI; `VIA#2` at `$9120` for Keyboard/IEC/Tape).
View Pinout →2114 SRAM (1K×4)
18-pin 4-bit static RAM used for all 5 KB on early boards (`10× 2114`) and Low/Colour RAM on CR boards.
View Pinout →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 & Address | Early / CR Socket | Commodore 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.
Smiggy's Commodore Posts
Bench Tools & Machine Hubs
- IC Pinout Finder — 6560, 6502, 6522, 2114 & more
- Recap Planner — capacitor replacement guide
- Ohm's Law Calculator
- C64 Machine Hub — Commodore 64 reference
- C128 Machine Hub — C128, C128D & DCR reference
- SX-64 Machine Hub — Executive Portable C64 reference
- Amiga Machine Hub — A500/A600/A1200 reference
- Big-Box Amiga Hub — A1000, A2000, A3000 & A4000 reference
- Atari ST Hub — 520ST, 1040STFM & STE reference
- Atari 8-Bit Hub — 400/800, 800XL & 130XE reference
- Apple IIe Hub — Unenhanced, Enhanced & Platinum reference
- BBC Micro Hub — Model B, B+ & Master 128 reference
- Acorn Atom & Electron Hub — Atom & Electron reference
- ZX Spectrum Hub — 16K/48K & +2/+3 reference
- Sinclair QL Hub — 68008, Microdrive & ULA reference
- Dragon 32/64 Hub — Dragon 32 & 64 reference
- Oric-1 & Atmos Hub — Oric 6502A & ULA reference
- Amstrad CPC 464 Hub — CPC 464 & Datacorder reference
- Amstrad CPC 6128 Hub — 128K & 3″ disc reference
- MSX Machine Hub — MSX1, MSX2, MSX2+ & Turbo R reference
- Osborne 1 & Kaypro II Hub — CP/M luggable reference
External VIC-20 Resources
- Denial (Sleeping Elephant) VIC-20 Forum — the world's premier active Commodore VIC-20 hardware and software community
- Zimmers.net VIC-20 Schematics — official Commodore service manuals for both 2-prong and CR boards
- Ray Carlsen's VIC-20 Repair Notes — chip-by-chip fault symptoms for 324003 and 250403 motherboards
- TFW8b Penultimate+2 Cartridge — 3K/8K/16K/24K/32K RAM expansion, SD2IEC browser, and built-in VIC-20 Dead-Test!