Signal reference
CPU
MOS 6510
Pinout
Reference signals
Below are simple pictures of the different signals on the CPU MOS 6510 chip which I use for reference/comparison during fault finding. For further details about the signals on the different C64 custom chips I will highly recommend Sven´s techsite. Information about the pinout is taken from: https://ist.uwaterloo.ca/~schepers/MJK/6510.html
Settings on Philips/Fluke PM3055 60 MHz analog oscilloscope:
2 V / DIV
See individual pictures for time settings
Signals have been measured on a working Commodore 64 assy 250466 in idle mode (blue screen).
Pin #1
ø 0 in
Pin #2
RDY
ReaDY. When going LOW, the CPU waits after next read cycle for this line going HIGH again.
The RDY signal the result of logical AND between BA and DMA produced by the chip U27 (74LS08).
Pin #3
/IRQ
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.
In the C64, there are three possible sources for an IRQ: VIC-II [PIN8] , CIA #1 (timer)
Expansion port [PIN4]
Pin #4
/NMI
Non Maskable Interrupt. When going LOW, the CPU loads the PC with the value stored in $FFFA / $FFFB after processing the current command. In the C64, there are three possible sources for an NMI:
- RESTORE key
- CIA #2
- Expansion port, pin D
Pin #5
AEC
Address Enable Control. When going LOW, the CPU puts the address bus into a 'tri-state' (hi impedance) mode and is thus totally decoupled from the rest of the system, so that another chip can take control over it. This means that other systems or processors can use the Commodore 64 circuitry - e.g. when transferring data to and from a disk drive or another computer.
Phi 0 in. The system clock signal, which is generated by the VIC-II in the C64, is applied to this input. In the C64, it is about 1MHz.
Pin #6
VCC
Supply voltage. This pin is connected to +5V DC.
Pin #7
A0
Addressline A0
Pin #8
A1
Addressline A1
Pin #9
A2
Addressline A2
Pin #10
A3
Addressline A3
Pin #11
A4
Addressline A4
Pin #12
A5
Addressline A5
Pin #13
A6
Addressline A6
Pin #14
A7
Addressline A7
Pin #15
A8
Addressline A8
Pin #16
A9
Addressline A9
Pin #17
A10
Addressline A10
Pin #18
A11
Addressline A11
Pin #19
A12
Addressline A12
Pin #20
A13
Addressline A13
Pin #21
VSS/GND
GrouND.
Pin #22
A14
Addressline A14
Pin #23
A15
Addressline A15
Pin #24
P5
(Peripheral I/O port)
Unique to 6510 vs 6502
Connected to datasette port C/3 (indirect). This pin mirrors the value of bit #4 stored in memory address $0001. DEFAULT: On power-on bit #4 is "1" ($0001).
Pin #25
P4
(Peripheral I/O port)
Unique to 6510 vs 6502
Connected to datasette port F/6 (indirect). This pin mirrors the value of bit #4 stored in memory address $0001. DEFAULT: On power-on bit #4 is "1" ($0001).
Pin #26
P3
(Peripheral I/O port)
Unique to 6510 vs 6502
Connected to datasette port E/5 (indirect). This pin mirrors the value of bit #3 stored in memory address $0001. DEFAULT: On power-on bit #3 is "0" ($0001).
Pin #27
P2
(Peripheral I/O port)
Unique to 6510 vs 6502
Output which is connected to /CHAREN on PLA. This control signal determines whether the 2332A 4K character generator ROM (U5) or the I/O devices are within the address space $D000-$DFFF. When CHAREN is logic LOW, addressing a location anywhere within $D000-$DFFF will access the character generator ROM. The 6510 CPU access this ROM when copying the character set from ROM into RAM. DEFAULT: This pin is HIGH disabling the character ROM and enabling the I/O devices.
Pin #28
P1
(Peripheral I/O port)
Unique to 6510 vs 6502
This output is connected to /HIRAM on PLA and is used to bank the 2364A 8K operating system Kernal ROM (U4) in or out of address space $E000-$FFFF. If HIRAM is at a logic LOW, address space $E000-$FFFF is part of the RAM memory. DEFAULT: This pin is HIGH enabling Kernal ROM.
Pin #29
P0
(Peripheral I/O port)
Unique to 6510 vs 6502
Databus line D7
Pin #30
D7
This output is connected to /LORAM on PLA. The LORAM signal from P0 determines whether the 2364A 8K BASIC ROM (U3) or an 8K section of RAM is part of the CPU´s $A000-$BFFF address space. LORAM at logic LOW causes the RAM to be in address $A000-$BFFF. DEFAULT: This pin is HIGH enabling BASIC ROM.
Pin #31
D6
Databus line D6
Pin #32
D5
Databus line D4
Pin #33
D4
Databus line D5
Pin #34
D3
Databus line D3
Pin #35
D2
Databus line D2
Pin #36
D1
Databus line D1
Pin #37
D0
Databus line D0
Pin #38
R /W
Read/-Write. With this line, the CPU controls whether the next DRAM access will be a read or write cycle. LOW=write, HIGH=read. Or in other words; controls the direction in which data moves on the D0-D7 bits of the data bus. Note that all accesses only take place when ø2 is HIGH.
Pin #39
ø2 out
Phi 2 out. The CPU outputs the system clock for the rest of the chips for synchronization. The 6510 CPU produces the inverse of of Phi 0 -> a 0.985248 MHz (PAL) Phi 2 system clock signal. The frequency is 1.02 MHz in NTSC mode.
Pin #40
/RES
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 in the C64 pulls this line to LOW for a short time and half a second later back to HIGH.
Banner picture credits: Xato