Expansion Port

Extensions for the expansion port are quite numerous; Ramlink,
SuperCPU, Final Cartridge, Action Replay, to name a few. In the
old days, many game modules were available, too.
Note that devices connected to the
expansion port (especially floppy speeders) are more incompatible than
equivalent user port versions, as their ROM is mapped into the C-64 RAM.

Signal Description

Interrupt ReQuest. When going LOW,
the CPU loads the PC with the value stored in $fffe/$ffff
after processing the current command. This procedure will be executed only
when interrupts have been enabled (bit 2 in flag register = 0).
Note that the IRQ signal must be
applied until the CPU has checked this pin; a short IRQ pulse is not
sufficient [1].

5

R/-W

out

Read/-Write. During read cycles, this line is HIGH,
and LOW otherwise. Note that all accesses only take place whenø2 is
HIGH.

6

Dot Clock

out

VIC dot clock (PAL: 7.8MHz).

7

-(I/O1)

out

I/O #1. LOW, if an address between $de00 and
$deff is on the address bus.

8

/GAME

in

This line can be used by an expansion port cartridge together
with the /EXROM line to control the memory configuration. See below (Technical
info) for details.

9

/EXROM

in

This line can be used by an expansion port cartridge together
with the /GAME line to control the memory configuration. See below (Technical
info) for details.

10

-(I/O2)

out

I/O #2. LOW, if an address between $df00 and
$dfff is on the address bus.

11

/ROML

out

ROMHigh. LOW, if both an address between
$df00 and $dfff is on the address bus and /EXROM is LOW.

12

BA

out

Bus Aavailable. If HIGH, the VIC-II uses the bus.

13

/DMA

in

Direct Memory Access. By pulling this line
to LOW, the CPU will halt after the next read
cycle and all bus connections will go to high-impedance state. This is useful
for cartridges which replace the original CPU, like CMD's SuperCPU.

14-21

CD7-CD0

in / out

CPU Data bus.

22

GND

-

GrouND (0V).

A

GND

-

GrouND (0V).

B

/ROMH

out

ROMHigh. LOW if address $a000-bfff or
$e000-ffff is
on the address bus and the appropriate address range is banked out via
/GAME and /EXROM.

C

/RESET

in

RESET. When going LOW, the CPU resets and waits
for a LOW-HIGH transistion to load the PC with the value stored in
$fffc/$fffd. After power-up, timer A in the NE556 pulls this line
to LOW for a short time and half a second later back to HIGH.

D

/NMI

in

Non Maskable Interrupt. When going
LOW, the CPU loads the PC with the value stored in $fffa / $fffb
after processing the current command.

E

ø2 out*

out

Phi2 out. The CPU outputs the
system clock for the rest of the chips for synchronization.

F-Y

CA15-CA0

in / out

CPU Address bus. The CPU applies the address of
the next datum to be read or written.

Z

GND

-

GrouND (0V).

* The 'ø' is used as Greek 'phi' here.

Technical info

Via /GAME and /EXROM, a cartridge which is plugged into the expansion port can
partially redirect memory accesses to certain areas to memory (RAM or ROM) inside
the cartridge. Their are four combinations of /GAME and /EXROM: