Expansion Port

From C64-Wiki
Jump to: navigation, 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]

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 Meaning Remark
1 GND Ground Potential is 0V on ground, signal levels are measured relative this, can also be called "common ground".
2 +5V DC

Supply voltage +5V DC

The maximum load for extensions is 450mA.

4 _IRQ Interrupt Request see IRQ
5 R/_W Read or _Write indicator High-level during read cycle, Low-level during write cycle
6 DOT Clk Dot clock frequency 7.881984 MHz for PAL-systems ; 8.181816 MHz for NTSC-systems
7 _IO1 Input/Output area 1 indicator Signal is low if address bus is within $DE00-$DEFF.
8 _GAME Game configuration Used for memory re-configuration; see PLA (C64-Chip)
9 _EXROM 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 Input/Output area 2 indicator Signal is low if address bus is within $DF00-$DFFF.
11 _ROML 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 Bus Available Signal from the video controller, which indicates that the bus data are valid. If BA=1 the VIC allocates the bus and no other unit can use it.
13 _DMA 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 Data line 7 Bit 7 of data bus, value=128
15 D6 Data line 6 Bit 6 of data bus, value=64
16 D5 Data line 5 Bit 5 of data bus, value=32
17 D4 Data line 4 Bit 4 of data bus, value=16
18 D3 Data line 3 Bit 3 of data bus, value=8
19 D2 Data line 2 Bit 2 of data bus, value=4
20 D1 Data line 1 Bit 1 of data bus, value=2
21 D0 Data line 0 Bit 0 of data bus, value=1
22 GND


(See above)
B _ROMH 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 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 Non Maskable Interrupt see NMI
E PHI2 Phase 2 clock System clock (0.98524861 MHz for PAL, 1.02272714 MHz for NTSC)
F A15 Address line 15 Bit 15 of address bus value=32768
H A14 Address line 14 Bit 14 of address bus value=16384
J A13 Address line 13 Bit 13 of address bus value=8192
K A12 Address line 12 Bit 12 of address bus value=4096
L A11 Address line 11 Bit 11 of address bus value=2048
M A10 Address line 10 Bit 10 of address bus value=1024
N A9 Address line 9 Bit 9 of address bus value=512
P A8 Address line 8 Bit 8 of address bus value=256
R A7 Address line 7 Bit 7 of address bus value=128
S A6 Address line 6 Bit 6 of address bus value=64
T A5 Address line 5 Bit 5 of address bus value=32
U A4 Address line 4 Bit 4 of address bus value=16
V A3 Address line 3 Bit 3 of address bus value=8
W A2 Address line 2 Bit 2 of address bus value=4
X A1 Address line 1 Bit 1 of address bus value=2
Y A0 Address line 0 Bit 0 of address bus value=1
Z GND Ground (See above)