In diesem Artikel geht es um den Nachbau einer alten IEEE-488 Interface Karte für den Commodore C64 und Commodore C128. Diese Karte war ungemein praktisch, wenn man z.B. die Commodore SFD-1001 Floppy hatte, die nur über einen IEEE-488 Anschluss verfügte. Aber auch die alten CBM Diskettenlaufwerke konnten so an einem C64 oder C128 angeschlossen und betreiben werden. Da solche Hardware langsam selten geworden und schwer zu bekommen ist, habe ich die Platine nachgebaut.

Wer der eigentliche Entwickler dieser Karte ist, konnte ich leider nicht mehr herausfinden. Vetreiben wurde diese von den Firmen JANN Datentechnik aus Berlin, REX Datentechnik aus Hagen und WAW Elektronik aus Berlin. Die Karte von WAW Elekttronik scheint eine leicht abgespeckte Variante zu sein, denn die Versionen von JANN und REX enthielten noch einen weitere Anschluss für eine weitere Expansionsport Karte, sowie eine IEEE-488 Buchse auf der Platine. 

Es gibt von allen 3 Varianten entsprechende Kernel Versionen, die sich aber lediglich in der Einschaltmeldung unterscheiden. Ansonsten sind die Dateien 1:1 gleich. Folgende Karten konnte ich im Internet finden:

Die Karte von Jann Datentechnik:

Jann Datentechnik IEEE 488 Karte

 

Die Karte von Rex Datentechnik:

Rex Datentechnik IEEE 488 Karte

 

Und die Karte von W.A.W. Elektronik:

 WAW Elektronik IEEE 488 Karte

 

Vom Aufbau her sind alle 3 Karten Identisch, lediglich die Verteilung der Bauelemente und die Anschlüsse unterscheiden sich geringfügig im Detail. Wie schon weiter oben erwähnt, sind auch die unterschiedlichen Kernel ROMs bis auf die Einschaltmeldung absolut identisch.

Die Karte selber nutzt einen 6821 PIA Chip. Auf die üblichen IEEE-488 Treiber Baustine 75160 und 75161 wurde hier verzichtet. Sofern allerdings auch nur ein Gerät an den IEEE-488 Bus angeschlossen wird, und die Kabellänge im üblichen Bereich von ungefähr 1,5m bleibt, sind aufgrund der Stromaufnahme keine Probleme zu erwarten. Diese Karte hat schon einige Jahrzehnte auf dem Buckel und bisher sind keinerlei negativen Berichte oder defekte aufgrund dieser Karte bekannt. 

Auch ich habe während den Tests keinerlei Probleme feststellen können. In Foren habe ich auch viele Empfehlungen dieser Kartenserie lesen können. Persönlich gefiel mir auch das Kernel, welches mit allerlei Features aufwarten kann.

Im Internet finden sich zwar die Kernel Dateien, aber leider habe ich keinen Schaltplan finden können. So musste ich den Schaltplan aus alten Bildern, die ich im Internet gefunden hatte, wieder rekonstruieren. Da die Platine nur im doppelseitigen Layout ausgeführt wurde, war die Rekonstruktion relativ leicht möglich.

Als Version habe ich die WAW Variante gewählt, da diese am einfachsten aufgebaut ist und am leichtesten nachgezeichnet werden konnte. Der erste Schritt war also eine 1:1 Zeichnung der alten Platine herzustellen.

Vorderseite der neuen Zeichnung:

IEC64W Platine Vorderseite

 

Daraus konnte ich dann den Schaltplan ableiten:

IEC64 Schaltplan

 

Anschließend erstellte ich dann in KiDad eine Platine dazu. Ich habe allerdings zusätzlich noch die IEEE-488 Schnittstelle als Platinenstecker ausgeführt. So kann man das Standard Commodore IEEE-488 Kabel, welches den IEEE-488 Laufwerken von Commodore immer beilag, direkt anschließen und benötigt keinen Adapter oder spezielles Kabel dazu.  

3d Grafik der IEC64W Nachbau Platine

 

Die Bestückungsliste für meine Karte sieht folgendermaßen aus:

  • Kondensatoren
    • C1 - C4 100nF Keramik Schreibenkondensatoren im Rastermaß 2,5
  • J2 Stiftleiste 2x12 Pins
  • Widerstände
    • R1, R2 1k Ohm 
    • RN1 10k Ohm Widerstandsnetzwerk Sternschaltung SIL 6-5 
    • RN2 10k Ohm Widerstandsnetzwerk Sternschaltung SIL 7-6
  • SW1, SW2 = 1x 6fach DIP Switch (einer für SW1 & SW2 gemeinsam)
  • Schaltkreise
    • U1 74LS00
    • U2 74LS11
    • U3 6821P oder 6321
    • U4 EPRM 27C64 oder 27C128, je nach Kernel

Viele Teile werden nicht benötigt, und die Kosten halten sich dadurch auch in Grenzen. Am günstigsten bekommt man den 6821P bei UTsource. Da bezahlt man umgerechnet 1,80 Euro für den MC6821P. Bei eBay werden deutlich höhere Preise aufgerufen. Dafür dauert der Versand, da aus Asien, entsprechend länger.

Und dies ist dann die fertig bestückte Platine:

IEC64W IEEE 488 Interface

Gerade bastle ich noch an einem Gehäuse für diese Platine. Ein erster Entwurf sieht so aus:

Case for IEC64W

Das Gehäuse ist allerdings noch nicht fertig. Ich würde dann später die entsprechenden STL Dateien zum selber ausdrucken zur Verfügung stellen. Das werde ich dann aber noch einmal gesondert bekannt geben.

Sollten noch Fragen oder Anregungen offen sein, so könnt Ihr gerne das unten stehende Kommentarfeld dazu nutzen. Aber auch über Kritik und Verbesserungsvorschläge würde ich mich freuen.

 

Ich habe noch ein paar Platinen übrig. Diese kann gegen einen kleinen Unkostenbeitrag bei mir angefordert werden: Platinen

Anmelden
Lötmichels Avatar
Lötmichel antwortete auf das Thema: #2 1 Monat 1 Woche her
Toll !! Respekt... ich habe hier eine Commodore 8250LP Floppy,,...
würde diese am C64 als "Drive8" und gleichzeitig "Drive9" erkannt ?? da es ja eine Doppelfloppy über IEEE488 ist.
mfG.LötMichel
diwous Avatar
diwou antwortete auf das Thema: #3 1 Monat 1 Woche her
Wenn ich das im Handbuch richtig verstanden habe, dann werden die Doppelfloppys über eine Device ID angesprochen,,

LOAD "$",,8, bzw. LOAD "0:$",8 gibt das Directory des ersten Laufwerkes aus
LOAD "1:$",8 dann das Directory für das zweite Laufwerk.

Auch alle anderen Befehle sollen so funktionieren, immer "0": oder "1:" dem eigentlichen Befehl voranstellen.
oe9mkvs Avatar
oe9mkv antwortete auf das Thema: #9 1 Monat 1 Woche her
Das ist richtig, sogar in den Single Drive Floppies (1541,/70/71/81) ist der Code für das Ansprechen zweier Laufwerke noch enthalten, ein SAVE "0:TEST",8 wird also auch da funktionieren. (Bei der 1551 bin ich im Moment überfragt.)
detlefs Avatar
detlef antwortete auf das Thema: #22 1 Monat 1 Tag her
Soweit ich das auf den Fotos sehen konnte, hat das Modul im Gegensatz zu einigen anderen Designs keine IEEE-Treiber drauf.
Wie sieht das aus, wenn man mehrere Geräte am Bus hat? Kommt es da nicht zu Problemen?
Jedes IEEE-Device zieht die Leitungen mit 2,4K nach VCC.

Ich habe mal eine Weile mit dem Arduino am IEEE-Bus experimentiert (als Device)  und das hat gut funktioniert, solange nur der Arduino am PET hing.
Sobald ich eine Floppy dazugeschaltet habe, war es vorbei. Der Arduino hat es dann nicht mehr geschafft, die Leitungen runterzuziehen. Ich habe dann 70160/161 dazwischen geschaltet, und dann funktionierte alles prima.
diwous Avatar
diwou antwortete auf das Thema: #23 1 Monat 1 Tag her
Sicherlich wird man da nicht etliche Devices dran hängen können. Aber mit einer Floppy funktioniert es problemlos. Und ich kenne mindestens einen, der eine solche Karte schon seit Jahren einsetzt, und bisher keine Probleme damit hatte.

Das Design der Karte ist ja schon Uralt. Die wurde von mindestens 3 verschiedenen Firmen vertrieben. Und ich konnte bisher nichts finden, was auf Probleme hindeutet. Die fehlen GBIP Treiber sind schon unschön. Leider wäre aber ohne Änderung des Kernels die Richtungsumschaltung nicht möglich. Einfach nur die Treiber davor setzen, wird nicht funktionieren.

Die ganzen Bidirektionalen Bustreiber sind meistens zu langsam oder haben andere Probleme mit diesen Zeitkritischen Signalen.  

Wobei die ZoomFloppy letztendlich mit dem 32u4 auf "Arduino Technik" setzt. Und es werden lediglich die Steuersignale in Senderichtung (NFRD, NDAC, SRQ, IFC und ATN) durch einen Bustreiber geschickt. In Empfangsrichtung ist nichts und die Datenleitungen gehen auch direkt auf den Bus. 

Und das ist alles Zeug, was schon lange läuft. Würde es da extreme Schwierigkeiten geben, wäre das bekannt. Wenn man natürlich da etliche Devices anschließen möchte, würde ich diese Karte nicht unbedingt als erste Wahl ansehen.
detlefs Avatar
detlef antwortete auf das Thema: #24 1 Monat 1 Tag her
Ich denke, 99% der User werden sowieso nur eine Floppy dranhängen. Das wird dann sicher funktionieren.
Da ich einiges an IEEE-Peripherie habe, könnte es bei mir schon mal vorkommen, dass da mehrere Geräte und vielleicht noch ein PET dranhängen.
Aber egal, das muss auch nicht unbedingt funktionieren. Wichtiger finde ich. dass der Kernel auf dem Modul mit drauf sitzt. Damit man das mal eben schnell in irgendeinen 64er reinstecken kann.

Gruß, Detlef
Lötmichels Avatar
Lötmichel antwortete auf das Thema: #39 4 Wochen 14 Stunden her
Hurra.. ich habe die Platine fertig...
und testweise eine 2031 (war mal eine 1541) per IEEE488 Kabel angeschlossen...
prima.. klappt sofort... ist ja richtig flott... da kommen ja "Speeddos Gefühle auf" :D
bei den Jumpern muß ich noch einmal genauer schauen, wie es gemeint ist..
Bin auch bei IEEE488 Teilnehmern bisher nicht sonderlich "vertraut"... (was die #Laufwerke-No angeht).
Danke mfG. Michel
diwous Avatar
diwou antwortete auf das Thema: #40 4 Wochen 8 Stunden her
Bei den Jumpern sind eigentlich nur die ersten beiden und letzten beiden interessant, die anderen sollten auf 0 stehen. Die letzten beiden sind nur zum Ein-, bzw. Ausschalten der Karte. Immer beide gleichzeitig nutzen. Wenn Du die auf 00 stellst, dann wird der Kernel auf der Karte nicht benutzt. Wenn Du zum Beispiel den Kernel im Rechner hast, kannst Du die letzten beiden Jumper auf 0 Stellen.

Und die ersten beiden Jumper sind interessant, wenn Du einen Mischbetrieb von IEC und IEEE-488 Laufwerken hast. Wenn die beide auf 00 stehen, dann gehen alle Adressen von 4 bis 15 über das IEEE-488 Interface, dann könntest Du nicht noch zusätzlich eine Floppy oder einen Drucker am IEC Bus ansprechen.

Wenn Du die ersten beiden auf 10 setzt, dann wird nur die #8 über das IEEE-488 Interface geleitet. Dann könntest Du zum Beispiel eine 1541 über IEC mit Device ID 9 nutzen. Falls Du nur mal einen Drucker über IEEE-488 nutzen willst, dann wäre die 01 die richtige Wahl. Und letztendlich wäre dann die 11 richtig, wenn nur von 9-15 über das IEEE-488 Interface laufen soll. Also Du hast zum Beispiel einen Drucker und eine 1541 mit Device ID 8 am IEC Bus und willst zusätzlich eine SFD-1001 betreiben. Die SFD-1001 muss dann eine ID zwischen 9 und 15 haben.

Der 3. Jumper ist für die Adresse, wo der Kernel eingeblendet werden soll. Den kannst Du immer auf 0 lassen. Und der 4. Jumper hat keine Funktion. Die Karte gab es wohl auch mit einem Centronics Interface. Da wird dann auch dieser Jumper benutzt.

An dieser Diskussion teilnehmen.

INFO: Du schreibst diese Nachricht als Gast!

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok Ablehnen