MOS Technology 7501
Der MOS Technology 7501 ist offiziell die CPU in den Computern der Commodore-264-Serie. Tatsächlich war aber in den meisten Rechnern eine CPU mit dem Aufdruck 8501 verbaut, die jedoch lediglich in einem anderen Prozess hergestellt wurde. Darüber hinaus gibt es noch verschiedene Revisionen des Chips, zum Beispiel R1 oder R4. Die CPU ist befehlskompatibel zum MOS 6502. Es handelt sich um eine 8-Bit-CPU mit einem 16-Bit-Adressbus zur Adressierung von 64 kByte Speicher. Der Adressbus ist mit Tri-State-Ausgängen ausgestattet. Er lässt sich hochohmig schalten, damit andere Bausteine den Adressbus belegen können (DMA). Bei der 264-Serie ist dies nur der TED. Das Rechenwerk ist fest verdrahtet und benötigt je nach Befehl 2 bis 7 Takte zur Abarbeitung, wobei man jedem Schritt konkrete interne Operationen zuordnen kann. Die CPU hat 4 Register: den Akkumulator, kurz Akku genannt, (hauptsächlich für Berechnungen) und X- und Y-Register als Indexregister. Das Statusregister dient zur Anzeige von verschiedenen Zuständen der CPU nach erfolgten Rechenschritten oder zum Erzwingen einer bestimmten Berechnungsart (Dezimalflag). Mit dem Stackpointer wird die aktuelle Speicherposition auf dem Stack angezeigt, der im Speicher im Bereich $0100 bis $01ff liegt und in der CPU fest verdrahtet ist.
Die Adressen von $0000 bis $00ff (wobei jedoch $0000 und $0001 durch den integrierten Port blockiert sind) lassen sich für viele Befehle als Registerersatz oder für Zeiger benutzen und werden als Zeropage bezeichnet.
Die CPU besitzt einen 8-Bit-I/O-Port, von dem jedoch nur 7 Leitungen nach außen geführt wurden. Im Speicher liegt dieser Port an den Adressen $0000 und $0001. Der Port dient zur Steuerung von Datasette und seriellem IEC-Bus.
Nach einem Reset liest die CPU den Vektor an Adresse $FFFC/$FFFD (Low-/High-Byte) und beginnt mit der Abarbeitung des Programms an der dort hinterlegten Adresse.
Nach einem Interrupt wird von der CPU der Vektor an Adresse $FFFE/$FFFF gelesen und die Interrupt-Service-Routine an der dort hinterlegten Adresse ausgeführt, vorausgesetzt, dass der Interrupt nicht gesperrt wurde.