Commodore 64 Hardware Details
Introduction
September 2020
This page collects all the schematics and datasheets for the Commodore
64 in one place--not just for the machine as a whole, but for every
individual chip (including variants from multiple vendors in some
cases). The goal is to gather in one place all the information I need
for writing my own C64 emulator. Because there are several variants
of the C64, but I need a complete and consistent picture of how all
the components work together, this document focuses specifically on
the Assembly 250407, Schematic 251138 version.
Commodore 64
Information on the system as a whole:
Assembly 250407
C64Wiki has
information on the various motherboard revisions. This section
collects key information on the 250407:
- My own machines, three revisions
Photo 1
Photo 2
Photo 3
- Schematic from the Service Manual
Page 1
Page 2
- (Buggy) Schematic by Carsten Jensen based on the Programmers Manual
Page 1
Page 2
This is much more readable than the schematic from the Service
Manual but has errors including:
- U13 pin 15 and 16 connections incorrect
Component Index
Every IC on the 250407, with its PCB Identifier and a link to the
section with details and datasheets for that component.
Complex Interface Adapter (CIA)
BASIC ROM
- 8KiB ROM, provides the machine code implementation of BASIC.
- Printed name: "MOS 901226-01" or similar.
- Based on MOS 2364 ROM.
- Datasheet (Feb 1980)
-
In addition to programming the 8KiB of data, you also have to
program the chip select pin state ("enable high" or "enable low").
For the BASIC ROM, this is "enable low".
Kernal ROM
- 8KiB ROM, provides the machine code for the kernal routines.
- Printed name: "MOS 901227-02" or similar.
- Based on MOS 2364 ROM.
- Datasheet (Feb 1980)
-
In addition to programming the 8KiB of data, you also have to
program the chip select pin state ("enable high" or "enable low").
For the Kernal ROM, this is "enable low".
Character ROM
- 4KiB ROM, provides the font data.
- Printed name: "MOS 901225-01" or similar.
- Based on MOS 2332 ROM.
- Datasheet (Feb 1980)
-
In addition to programming the 4KiB of data, you also have to
program the chip select pin state ("enable high" or "enable low")
for both CS1 and CS2. For the Character ROM, CS1 is "enable low"
and CS2 is "enable high".
Color RAM
- 4KiB Static RAM, used for screen color data
- "2114L-30"
- Toshiba TMM314APL-3 2114L3 Datasheet
- Fairchild 2114L Datasheet
- OKI MSM2114L-2RS Catalog
- Matsushita MN2114-3 Catalog
6510 CPU
Hex Inverter
- 7406/7416
- Texas Instruments SN7406N Datasheet
Dynamic RAM (DRAM)
74LS257 Multiplexor
- Fairchild 74LS257A Datasheet
- Hitachi 74LS257 Datasheet
- Fujistu MB74LS257
- Motorola SN74LS257AN
74LS258 Multiplexor
- This is the same as the 74LS257 but with inverted outputs.
- Hitachi HD74LS258 Datasheet
74LS139 Demultiplexor
4066 Quad Bilateral Switch
Programmable Logic Array (PLA)
Sound Interface Device (SID)
Video Interface Chip (VIC-II)
556 Dual Timer
74LS373 Octal Latch
74LS08 Quad AND Gate
74LS74 Divider
74LS193 Binary Counter
74LS629 Oscillator
MC4044 Phase Detector