Expansion Port

From C64-Wiki
Jump to navigationJump to search
The Expansion Port of the C64

The Expansion Port or Memory Expansion Port on older models, also called Module or Cartridge Port. This port is a rectangular opening at the back of the C64 case and is intended for expansions of the system. Basically it has similar function to ISA or PCI ports in a PC. Since many important signals of the C64 are led to the connector, this results in a wide range of applications. From just connecting a simple reset button, a modem or an EPROM programming device or maybe a SuperCPU there are almost all imaginable expansions possible. The expansion port is mainly used for plugging in cartridges which are usually utility cartridges such as Action Replay 6, The Final Cartridge 3 etc. but also games, other software and RAMexpansion.

Contrary to the user port there are no freely programmable lines on the expansion port, i.e. expansion port modules need to "listen" permanently to the data and address bus of the CPU MOS 6510 and affect the system with a conform timing. Therefore the expansion port is not as suitable for simple projects. On the positive side the connector can be made directly on the PCB, no unusual connector is needed.

Pin assignment[edit | edit source]

The expansion port is a 2-row EDGE connector with 44 contacts in total. The pitch of the contacts is 2.54 mm (0.1 inch).

Pin assignment of (Memory) Expansion Port on the computer

Pin Signal Direction (From C64) Meaning Remark
1 GND PWR Ground Potential is 0V on ground, signal levels are measured relative this, can also be called "common ground".
2 +5V DC PWR

Supply voltage +5V DC

The maximum load for extensions is 450mA.

4 _IRQ In/Out Interrupt Request see IRQ . As an output, reflects the status of the IRQ line
5 R/_W In/Out Read or _Write signal High-level during read cycle, Low-level during write cycle
6 DOT Clk Out Dot clock frequency 7.881984 MHz for PAL-systems ; 8.181816 MHz for NTSC-systems
7 _IO1 Out Input/Output area 1 indicator Signal is low if address bus is within $DE00-$DEFF.
8 _GAME In Game configuration Used for memory re-configuration; see PLA (C64-Chip)
9 _EXROM In External ROM Similar to _GAME. During low the internal RAM in the range of $8000-$9FFF will be switched off and _ROML will be set low, if one of these addresses occur.
10 _IO2 Out Input/Output area 2 indicator Signal is low if address bus is within $DF00-$DFFF.
11 _ROML Out ROM Low Low signal if the address range is $8000-$9FFF is switched off with _EXROM and one of these addresses occur on the bus.
12 BA Out Bus Available Signal from the video controller, which indicates if the bus is available during high phase of PHI2. BA=0 means VIC needs the bus during both phases of PHI2 and no other unit can use it.
13 _DMA In Direct Memory Access if _DMA=Low the CPU can be requested to release the bus. It will stop after the next read cycle and all bus lines will go to high resistance state. So other units can use the computer hardware. At _DMA=High the CPU continues to work.
14 D7 In/Out Data line 7 Bit 7 of data bus, value=128
15 D6 In/Out Data line 6 Bit 6 of data bus, value=64
16 D5 In/Out Data line 5 Bit 5 of data bus, value=32
17 D4 In/Out Data line 4 Bit 4 of data bus, value=16
18 D3 In/Out Data line 3 Bit 3 of data bus, value=8
19 D2 In/Out Data line 2 Bit 2 of data bus, value=4
20 D1 In/Out Data line 1 Bit 1 of data bus, value=2
21 D0 In/Out Data line 0 Bit 0 of data bus, value=1


(See above)
B _ROMH Out ROM High Depending on the status of _GAME and _EXROM this line gets low during access to the address space between $A000-$BFFF respectively $E000-$FFFF. Condition: the internal ram area is faded out.
C _RESET In Reset If this line is pulled to low, all chips will be re-initialized. The program counter of the CPU will be loaded with the reset vector $FFFC and $FFFD (normally $FCE2).
D _NMI In Non Maskable Interrupt see NMI
E PHI2 Out Phase 2 clock System clock (0.98524861 MHz for PAL, 1.02272714 MHz for NTSC)
F A15 In/Out Address line 15 Bit 15 of address bus value=32768
H A14 In/Out Address line 14 Bit 14 of address bus value=16384
J A13 In/Out Address line 13 Bit 13 of address bus value=8192
K A12 In/Out Address line 12 Bit 12 of address bus value=4096
L A11 In/Out Address line 11 Bit 11 of address bus value=2048
M A10 In/Out Address line 10 Bit 10 of address bus value=1024
N A9 In/Out Address line 9 Bit 9 of address bus value=512
P A8 In/Out Address line 8 Bit 8 of address bus value=256
R A7 In/Out Address line 7 Bit 7 of address bus value=128
S A6 In/Out Address line 6 Bit 6 of address bus value=64
T A5 In/Out Address line 5 Bit 5 of address bus value=32
U A4 In/Out Address line 4 Bit 4 of address bus value=16
V A3 In/Out Address line 3 Bit 3 of address bus value=8
W A2 In/Out Address line 2 Bit 2 of address bus value=4
X A1 In/Out Address line 1 Bit 1 of address bus value=2
Y A0 In/Out Address line 0 Bit 0 of address bus value=1
Z GND PWR Ground (See above)