Einführung
Commodore bediente sowohl den Geschäftsmarkt mit der CBM-Serie als auch Heimanwender mit dem sehr bekannten C64 und anderen Modellen. Obwohl es viele Ähnlichkeiten zwischen den Produktlinien gab, bestanden einige Unterschiede.
Einer dieser Unterschiede war der Anschluss für Peripheriegeräte wie Drucker und Diskettenlaufwerke. Während in der CBM-Welt der IEEE-488-Bus, auch als GPIB bekannt, verwendet wurde, kam in der Heimcomputerwelt eine abgespeckte Variante in Form des CBM-Bus zum Einsatz. Der auch als IEC-Bus bekannte Anschluss konnte viel günstiger realisiert werden, hatte jedoch viele Nachteile, insbesondere in Bezug auf die Geschwindigkeit.
Commodore hatte jedoch auch gelegentlich Lieferprobleme und konnte nicht immer die enorme Nachfrage im Geschäftsbereich bewältigen. Glücklicherweise war Commodore immer sehr erfinderisch und innovativ, wenn es darum ging, Probleme zu lösen.
So wurden verschiedene einfachere Modelle von Diskettenlaufwerken, die auch viel günstiger waren, mit einer IEEE-488-Schnittstelle ausgestattet. Allen gemeinsam war, dass sie auf der damals bekannten 1540/1541 basierten, mit den entsprechenden Modifikationen. Eines dieser Modelle war das 2031LP, das sogar dasselbe Gehäuse wie die 1541 hatte.
Unterschiede
Vergleicht man die Schaltpläne der 1541 und der 2031LP im Service-Manual, fällt auf, dass eigentlich nur eine Sache unterschiedlich ist. Hier sind die beiden Schaltpläne zum Vergleich. Zuerst der relevante Bereich des Commodore-Diskettenlaufwerks VC1541:

Und hier derselbe Abschnitt, natürlich mit einer leicht anderen Bezeichnung für die 2031LP:

Auch wenn es etwas schwer zu lesen ist, sind die Unterschiede bereits erkennbar. Diese bestehen im Wesentlichen nur durch die beiden Komponenten SN75160 und SN75161. Im oberen Schaltplan ist die Reset-Schaltung in der unteren linken Ecke zu sehen, die auf einer anderen Seite des 2031LP gezeichnet ist.
Man sieht schließlich am 2031LP, dass Port A, der bei der 1541 nicht verwendet wird, genutzt wird, und dass Port B nicht zum seriellen 6-poligen Rundstecker, sondern über die beiden GPIB-Komponenten von Texas Instruments zu einem 24-poligen Centronics-Anschluss führt.
Wenn Port B und die Handshake-Leitungen von Port A und B vom Rest der Hauptplatine der 1541 getrennt und wie im Schaltplan der 2031 umverdrahtet werden, sollte es möglich sein, eine IEEE-488-Schnittstelle zur 1541 hinzuzufügen.
Die Idee ist nicht neu
André Fachat war der erste, der diese Idee in den 80er Jahren aufgriff und eine entsprechende Adapterplatine entwarf. Dafür wurde die VIA 6522-Komponente aus UC3 entfernt, die Adapterplatine eingesteckt und die VIA 6522 wieder darauf montiert. Zudem musste der Kernal ausgetauscht werden, da die entsprechenden IEEE-1541-Routinen im Kernal der 1541 fehlten.
Aber das war es dann auch. Der Aufwand und die Kosten hielten sich in Grenzen und man hatte für die damalige Zeit ein günstiges IEEE-488-Diskettenlaufwerk. Einziger Nachteil war, dass der CBM-Bus danach nicht mehr nutzbar war, zumindest nicht ohne den Adapter und den Kernal umzubauen.
Warum nicht beide Schnittstellen?
Eine gute Frage. Warum eigentlich nicht? Letztendlich müssen nur ein paar Kontakte umgeschaltet werden, um beide Schnittstellen zu haben, jedoch natürlich nicht gleichzeitig. Es wird also eine Schaltung benötigt, die die entsprechenden Leitungen umschaltet, sowie eine Kernal-Adapterplatine mit zwei verschiedenen Kernals – einer für den 1541-Modus und einer für den 2031-Modus.
Da SpeedDOS persönlich favorisiert wird, sollte die dafür notwendige parallele Verbindung ebenfalls erhalten bleiben. Allerdings würde das Umschalten, obwohl nicht kostspielig, viele zusätzliche ICs erfordern, mehr als gewünscht.
Der erste TriMod-Adapter
So entstand die erste umschaltbare Version. Für das Umschalten wurden analoge Schalter in Form des CD4066 verwendet, die jeweils 4 Leitungen umschalten können. Um alles umzuschalten, waren insgesamt 2 CD4066 nötig. Dies war auch der Grund, warum kein paralleles Kabel für SpeedDOS möglich war. Es hätten 10 Leitungen umgeschaltet werden müssen, was insgesamt 6 weitere CD4066s und somit 8 ICs für das Umschalten erfordert hätte. Dadurch wäre die Platine unnötig groß geworden.
So entstand folgende Schaltung:

Und so sah die Platine aus:

Es gab auch eine SMD-Version, die jedoch einen externen Kernal-Adapter erforderte. Die SMD-Version war auch nicht so beliebt, weshalb eine Version mit Durchsteckkomponenten entwickelt wurde.
Der Einbau ist recht einfach: Kernal und VIA 6522 herausnehmen, das entsprechende EPROM mit den beiden Kernals einstecken und den VIA 6522 in den entsprechenden IC-Sockel einsetzen. Dann das Ganze wieder in die 1541 einsetzen. So konnte die 1541-Diskette nun sowohl den IEC-Serienbus als auch den IEEE-488-Bus bedienen, wenn auch abwechselnd.
Installiert sieht das Ganze so aus:

Jetzt mit Parallelkabel
Der TriMod 2.0 Adapter
Da der Parallelport noch fehlte und der TriMod-Adapter seinem Namen nicht gerecht wurde, wurde das Konzept geändert, um das gesamte Umschalten mit einem CPLD zu realisieren. Dieser hat einerseits genug Verbindungen, um alle I/Os zu betreiben, und kann andererseits die gesamte Logik übernehmen, sodass keine zusätzlichen TTL-Komponenten benötigt werden.
Der Xilinx XC95144XL in der TQFP-100-Version wurde ausgewählt. Die kleineren Versionen hätten nicht genug I/Os bereitgestellt. Zudem ist dieser mittlerweile so günstig in China zu bekommen, dass dies preislich kein Problem darstellt.
So entstand folgender Schaltplan:

Daraus entstand die erste Platine für den TriMod 2.0 Adapter:

Dieser Adapter diente als Prototyp für die neue Version der kommenden 1541-Hauptplatine, bei der genau dies integriert wird. Ein separater Artikel darüber wird noch geschrieben.
Daher wurde weniger auf Aussehen oder Form geachtet.
In diesem Adapter wurden nun alle drei notwendigen Schnittstellen integriert:
- CBM-Bus
- Parallelkabel für Floppy-Speeder
- IEEE-488-Bus
Hier ist ein Foto des installierten TriMod 2.0 Adapters:

Nicht wirklich spektakulär, aber äußerst praktisch. Folgende Funktionen wurden bisher implementiert:
- Umschalten mit automatischem Reset der 1541. Ein vorheriges Ausschalten der 1541 ist nicht notwendig.
- Die Geräte-ID-Umschaltung ist in beiden Modi gleich.
- Die Verkabelung kann unverändert bleiben. Die 1541 schaltet den inaktiven Modus so um, als wäre keine Diskette eingesteckt. Es ist also nicht notwendig, die Kabel ständig zu wechseln.
- Das Parallelkabel kann auch individuell deaktiviert werden.
- Ein Ausgang für den Kernal-Umschalter ist vorhanden.
Weitere Funktionen, die sinnvoll wären, fallen momentan nicht ein. Der CPLD lässt jedoch viel Raum für neue Ideen. Eine neue Funktion kann einfach durch ein Firmware-Update hinzugefügt werden.
Fazit
Der Adapter wurde bereits eine Weile in einem Diskettenlaufwerk betrieben und es konnten keine Probleme oder Nebenwirkungen festgestellt werden. Letztendlich macht der CPLD nicht viel, er schaltet nur Leitungen um und ersetzt die wenigen noch notwendigen Gates.
Das Ganze könnte natürlich noch kleiner gemacht werden, sollte jemals Bedarf für einen eigenständigen Adapter bestehen. Auch die Steckverbinder könnten beispielsweise durch Micromatch-Stecker ersetzt werden, die bereits enorm viel Platz sparen.
Und da das ganze auch noch etwas kleiner geht, habe ich das ganze Projekt noch etwas aktualisiert, welches HIER zu finden ist.
