WICHTIGER HINWEIS
Bei all diesen Umbauten sind selbstverständlich
zuerst ALLE Kabel von ALLEN Geräten zu trennen!
Die Restore-Taste ist bei älteren C64 (wurde beim C64-II) traditionell etwas schwergängig. Das liegt an einem unterdimensionierten Kondensator (C38) mit nur 51pF. Die Kapazität ist damit zum Auslösen eines NMI (Non-Maskable-Interrupt) über den Timer 556 deutlich zu klein. Den sollte man durch einen grö฿eren Keramikondensator ersetzen. Empfohlen werden 4,7nF (oder sogar 10nF), ich habe einen 2,2nF Parallel zum Original gelötet und es tut ebenso prima. Den Kondensator findet man unten links an der Seite im C64, sieht oft aus wie ein Widerstand, nur in grüner Grundfarbe (Farbcode grün-braun-schwarz).
Bild: Eingebauter RESTORE-Fix mit parallelem 2,2nF Kondensator
(Quelle: Einbau aus eigenem System)
Die einfachste Version eines Reset-Tasters ist es, einfach Pin 1 (Masse) und Pin 3 (Reset) des Userport mit einem Taster zu verbinden (es geht natürlich auch jede andere Masse-Leitung, aber die sind so schön nah beieinander). Das ist sozusagen der Klassiker unter den Resets. Kann man auch ausserhalb des Gehäuses mit Hilfe eines Steckers anbringen, ist aber seltener anzutreffen.
Bild: User-Port Reset einmal gelötet und einmal als Stecker
(Quellen: Bild aus 64'er 8/89, Stecker von www.emu-ecke.de)
Einen Reset kann man natürlich auf ähnliche Art machen, wenn man die Pins A (Masse, es gehen auch 22, A und Z) und C (Reset) des Expansionsports verbindet (auch hier geht natürlich auch jede andere Masse-Leitung, aber die sind wieder so schön nah beieinander). Allerdings ist der Expansionsport eine Buchse, d.h. man kommt nicht so einfach an die Kontakte dran zum Löten, wenn man den Taster innen unterbringen möchte. Expansionsport-Resets sind daher meistens auf einer Platine angebracht.
Bild: Expansions-Port Reset
(Quellen: Bild aus 64'er 8/89, Schema von C64-online.com)
Auch am seriellen Port gibt es eine Reset (Pin 6) und eine Masse-Leitung (Pin 2), also klappt der Taster auch hier. Serielle-Port-Resets sind meistens auf einem Portstecker untergebracht. Man kann sie auch in den zweiten seriellen Port der Floppy z.B. anstecken.
Bild: Serieller Port und fertiger Stecker
(Quellen: Stecker aus 64'er 8/84, Beschreibung in 64'er 8/84)
Die beschriebenen einfachen Varianten haben einen Nachteil: Man kann ein Programm so schreiben, dass es nach einem Reset direkt neu startet. Dieses Verhalten wird auch Modulstart genannt und ist auf dieser Webseite gut beschrieben. Um einen wirklich porentiefen Reset zu machen, muss man also etwas tiefer einsteigen und am Expansionsport die Leitungen RESET and EXROM auf LOW ziehen. Dies kann man entweder intern einbauen oder als Steckplatine nach aussen führen. Dieser Reset wird übrigens nicht zur Floppy durchgegeben. In dem fotografierten Beispiel ist zusätzlich noch ein Taster für einen einfachen Reset angebaut, dazu wurde ein weiterer Taster angesetzt, welcher nur Pin Z mit Pin C verbindet, ebenfalls über den Widerstand und den Kondensator, aber ohne die EXROM-Leitung.
Bild: Hard Reset V1 Schema, Platine und interne Kontakte (rot = Reset, blau = EXROM, gelb = GND).
(Quellen: Schema und Bild 2 aus 64'er 6/85, Externer Taster im Eigenbesitz)
Noch ein Hinweis: Wenn nach dem Hard-Reset plötzlich nur noch '30719 BASIC BYTES FREE' sind, dann ist vermutlich ein SpeedDOS oder ähnliches im Rechner, welches eine verkürzte Reset-Routine hat. In diesem Falle sollte man einen etwas anderen Aufbau wählen, den ich hier unten angefügt habe. Sollte es dann immer noch nicht tun, dann den 12k Widerstand gegen einen etwas kleineren (11k oder 10,5k) tauschen. Ich habe erstmal die 12k Ohm Variante versucht, dann mit einem 47k Ohme Widerstand parallel auf ca. 9,5 Ohm herunterjustiert. Ergebnis: Mal so, mal so. Manchmal muss ein paar mal drücken, bis man den vollen Speicher hat.
Die Reset-Leitung (und Masse) kann man sich auch hier übrigens vom Userport holen, dann ist es mit dem Löten am Expansionsport deutlich einfacher (nur Pin 9, und der ist einfach zu erreichen). Die Platine kann man bequem oben auf den Expansionsport kleben. Etwas links halten - rechts kommt noch was dazu (s. Zeitlupe)
Bild: Hard Reset V2 und Eigenbauplatine dazu
(Quellen: Schema von MJK, Eigenbau aus eigenem System)
Es ist nicht wirklich ein Prozessorstop, so wie man ihn vielleicht vom Amiga kennt. Vielmehr wird Pin 4 (IRQ) des Expansionsports auf Masse (z.B. Pin 1, Pin 22, Pin A oder Pin Z) gelegt. Dadurch wird der CPU vorgegaukelt, dass der Interrupt-Kanal gerade belegt ist. Es werden dadurch alle Programmteile gestoppt, welche nicht im Interrupt ablaufen. Dies kann je nach Anwendung und Spiel natürlich sehr unterschiedlich sein, je nach Programmierung. Manchmal stoppt alles, manchmal nur Teile (Musik ist häufig im IRQ, ebenso Sprites). Und manchmal springt das Spiel danach nicht wieder an.
Eine zweite Variante ist es, den Pin 12 (DMA) auf Masse (z.B. Pin 1, Pin 22, Pin A oder Pin Z) zu legen. Dadurch wird der CPU vorgegaukelt, dass der Videokontroller gerade auf den Bus zugreifen will, und dass die CPU daher nun warten muss, bis der Zugriff beendet ist. Auch hier keine Garantie für irgendwas. Wenn man im falschen Moment umschaltet, z.B. wenn die CPU gerade den DMA benutzt, dann ist halt Essig.
Tip: Möglichst prellfreie Schalter verwenden (mehr Info).
Bild: Expansions-Port Prozessor-Stop über IRQ-Leitung bzw. DMA-Leitung. Einbau über zwei Schalter. (Quellen: Schema von C64-online.com), Einbau aus meinem System, Beschreibung in 64'er 8/89) |
Über den in Abschnitt 4 (Prozessor-"Stop") beschriebenen IRQ-Trick kann man auch eine "Zeitlupenschaltung" bauen, indem man häufig IRQs auslösen lässt und damit die CPU nur selten 'drankommt'. Dafür gibt es verschiedene Schaltungen.
Für diese Schaltung braucht man einen IC NE555 (Timer), ein Potentiometer (10k Ohm linear), einen 150 Ohm Widerstand und ein 10 uF Elko. Die verwendeten Pins am Expansionsport sind: Pin 1 Masse, Pin 2 +5V und Pin 4 IRQ. Da die Schaltung anscheinend bereits bremst, auch wenn der Poti auf "Null" steht, habe ich noch einen Schalter auf der +5V Leitung eingebaut. Auch diese Schaltung passt prima oben auf den Expansionsport, direkt neben die oben beschriebene "Hard Reset"-Lösung.
Aufgrund von Anregungen aus dem Forum64 (Dank an s2k) habe ich noch Veränderungen vorgenommen: Einen 10nF Kondensator von Pin 5 auf Masse, 5v an Pin 4 und ein 74LS04N, um das Ausgangssignal des NE555 etwas zu säubern (zweimaliges Invertieren).
Bild: Expansions-Port Zeitlupe Schaltplan, Lötplan, Platine und Einbau
(Quellen: Originalidee aus Magic Disk 1/88, Schema von s2k aus dem Forum-64, Lötplan von mir, Eigenbau aus meinem System)
Für diese Schaltung braucht man einen IC N74LS00, ein Potentiometer (10k Ohm linear), einen 4,7uF ELKO und eine Diode (z.B. 1N4148). Die verwendeten Pins am Expansionsport sind: Pin 1 Masse, Pin 2 und 3 für +5V und Pin 4 IRQ. Im Maximalausschlag des Poti wirkt diese Schaltung wie ein Prozessorstop. Es handelt sich hier um die Schaltung aus dem REX Modul 9675 - Slow Down. Auch hier gilt natürlich, das alle Programmteile, welche im Interrupt ausgeführt werden, sich extrem beschleunigen.
Bild: Expansions-Port Zeitlupe #2 Bauplan.
(Quellen: Bauplan von mir, Schaltung von REX Datentechnik.)
Der Kopfhörerverstärker hat eine eigene Seite spendiert bekommen
Das Rauschen im Audio-Kanal kommt u.a. durch Störungen, welche über das Kabel oder sonstige Quellen über den Audio_In Kontakt des SID eingespeist werden (Pin 5 der A/V Buchse). Um dieses Rauschen zu vermindern, kann man einfach diese Leitung (Pin 5) auf Masse (Pin 2 oder Board) ziehen. Die wenigsten von uns benutzen den Audio_In Kanal, und wenn doch, dann kann mit mit den Anleitungen auf dieser Seite auch einfach Buchsen einbauen, welche den selben Effekt erzeugen.
Bild: Rauschminimierung an der A/V-Buchse.
(Quellen: Idee von AlphA.)
Nur selten hält man die im Handbuch beschriebene Anschlussreihenfolge für Peripheriegeräte ein:
Bild: Schutzdioden am seriellen Port Schema und Einbau
(Quelle: Einbau aus meinem System, Schema aus der Nostalgie #2 - Original aus der 64er)
Bei der Datasette existiert theoretisch das gleiche Problem. Auch hier sollte eigentlich immer die Reihenfolge des Anschlusses peinlich genau beachtet werden (ERST Interface, DANN Stromkabel), um Spannungsspitzen zu vermeiden. Dies ist bei der Datasette natürlich etwas komisch, da das Interface-Kabel ja das Stromkabel ist. Wie dem auch sei (ausserdem konnte man am Datasettenport auch andere Geräte anschliessen), auch hier kann man Schutzdioden einbauen. Hier brauchen wir zwei Dioden (z.B. wieder 1N4148), welche zwischen die Anschlüsse 1 und 4 des Datasettenports sowie Kondensator C9 gelötet werden.
Achtung: Dies gilt nur für das Platinenlayout 250407! Andere Assys haben andere Dioden am Datsettenport!
Bild: Schutzdioden am Datasettenport
(Quelle: Einbau aus meinem System)
Streng genommen ist dies natürlich kein echter Hack, sondern nur eine kleine Modifikation. Die Chips CPU (U7), PLA (U17) und SID (U18) werden durchaus etwas warm. Da es die Bauteile leider nicht mehr an jeder Ecke gibt, sollte man darauf achten, dass sie nicht zu schnell verschleissen, z.B. indem man die Temperaturschwankungen verringert. Dazu klebt man einfach ein paar Kühlkörper auf die Chips, z.B. RAM-Kühler. Bei meinem 3x Kernel-Umschalter habe ich auf das Original-Kernel auch einen draufgesetzt.
Bild: Gekühlte Chips Kernel, CPU, PLA und SID
(Quelle: Einbau aus meinem System)
Dies ist eine Bauanleitung aus dem 64'er Magazin, Heft 11/1986.
Download als PDF
Bild: Der fertige Stereo-SID mit Fehlerteufelchen (Dank an Werner aus dem Forum64).
(Quelle: 64er Magazin 11/1986)
Dies ist eine Bauanleitung aus dem 64'er, ich weiss leider nicht mehr, welches Heft. Der Clou ist, dass man zwischen den Betriebssystemen ohne Absturz umschalten kann!
Download als PDF
Bild: Die fertige Umschaltplatine
(Quelle: 64er Magazin)
Last update: 14.05.2007, AntaBaka