EPROM-Brenner-Modul M030
von Mario Leubner
Wie es der Zufall wollte, bekam ich von Ralf Däubner ein halbfertiges M030 in die Hand - der legendäre EPROM-Brenner von Mühlhausen. Legendär deshalb, weil ich bis heute niemanden ausfindig machen konnte, der ein solches Modul funktionstüchtig gesehen hat oder sogar besitzt. Wurde es wirklich produziert oder ist es bei halbfertigen Prototypen geblieben? Die Frage wird sich wohl nicht beantworten lassen oder hat jemand aus dem KC-Club nähere Informationen?
Was hatte ich in der Hand: Es war das Modul, auf dem noch ein paar Bauteile fehlten. Dazu hatte ich glücklicherweise einen Schaltplan mit Bestückungsplan. Und sogar die zugehörige Software war auf Diskette vorhanden. Also doch ganz gute Bedingungen für einen Versuch, das Modul zum Laufen zu bringen.
Zunächst erfolgte eine Analyse, welche Bauteile fehlten. Da war ein Steckplatz für einen 8K-EPROM vorhanden, der die Brennersoftware beinhalten sollte und fest auf Adresse C000H geschaltet wird, sobald das Modul online ist. Sockel und EPROM fehlten, aber für einen Test kann man das Programm ja erst mal in ein RAM-Modul laden. Dann fehlte ein PROM K155RT4, welcher als Adreßdecoder eingesetzt wurde. Der Programmiersockel, welcher vorn über das Modul herausragt, war natürlich auch nicht vorhanden. Und für die Erzeugung der Programmierspannung war noch ein freier Platz an einer Stelle, wo sich eine Drossel unbekannter Dimension befinden sollte. Ansonsten schien alles andere bestückt zu sein.
Für einen ersten Versuch könnte man das Modul ja trotzdem mal in einen KC stecken und sehen was passiert. Also Modul rein in den Rechner und einschalten: Kurzschluß auf der 5V-Betriebsspannung! Na dann Rechner schnell wieder aus und das Modul noch einmal kontrolliert. Der Fehler war ein falsch herum eingesetzter Schaltkreis. Alle IC's werden üblicherweise in einer Richtung bestückt, nur bei diesem Modul ein einzelner andersherum. Das hat man wahrscheinlich bei der Bestückung nicht beachtet und nur nach langer Sucherei bemerkte ich endlich diesen feinen Unterschied im Bestückungsplan. Der Schaltkreis (ein DL541) war natürlich hin, zum Glück befand sich ein solches Exemplar in meiner Bastelkiste.
Beim zweiten Versuch hielt wenigstens die Spannung stand und der Rechner spielte nicht mehr verrückt. Allerdings konnte ich weder das Modul einschalten, noch ein Kennbyte auslesen und auch das Laden der Software zeigte keine Reaktion. Jetzt brauchte man den nicht vorhandenen Adreßdecoder: Hier hatte ich die größten Probleme, denn weder hatte ich einen einen passenden PROM, noch kannte ich den den dazugehörigen Inhalt. Eine Analyse der Software mittels Reassembler brachte mich zu den benutzten Portadressen und daraus konnte ich die logische Funktion des Decoders herleiten. Zunächst wollte ich einen EPROM 2716 als Decoder ver(sch)wenden, das scheiterte aber wegen der zu langen Zugriffszeiten. Eine andere Lösung erforderte mindestens zwei Schaltkreise. Zwei DS8205 verrichten den selben Zweck und wurden mittels Wickeltechnik angeschlossen. Den Platz dafür konnte ich schaffen, indem ich einen größeren Elko an eine andere Stelle verlegte.

Bild 1: Ersatz des Decoder-PROM im Modul M030
Nachdem der Decoder arbeitete, meldete sich das Modul korrekt mit dem Kennbyte D9. In meiner Modul-Liste gibt es noch ein weiteres Kennbyte für einen EPROM-Brenner mit Kennbyte DB und anderen Portadressen. Ob es so etwas auch gab? Eventuell noch eine Weiterentwicklung oder eine Eigenerfindung?
Also weiter mit der Erprobung des vorhandenen Moduls. Jetzt mußte der fehlende Textool-Sockel eingesetzt werden, damit man mal versuchen kann einen bekannten EPROM zu lesen. Inzwischen hatte ich auch die Software auf einen 2764 gebrannt und den benötigten EPROM-Sockel eingesetzt. Doch zur Funktion: Fehlanzeige. Es fehlte noch ein Adreßbit an einem Treiber-IC, da war doch tatsächlich in der Leiterführung noch ein Fehler in der Platine. Obwohl bereits eine Drahtbrücke für eine Korrektur sorgen sollte, war das benötigte Signal noch nicht an allen erforderlichen Stellen vorhanden. Weitere Brücken mußten eingesetzt werden.
Jetzt konnte ich das Modul einschalten und sogar das Programm starten. An der Software habe ich keine Änderungen vorgenommen, wenn auch die Reassemblierung zeigte, daß etwa die Hälfte an Speicherplatz ausgereicht hätte für den Funktionsumfang und die Bedienung etwas umständlich ist. Ich wollte aber nichts neu erfinden sondern nur das Original zum Laufen bringen. Wenn alle Funktionen ausgeführt werden können, ist das Ziel erreicht. Und mit dem jetzigen Stand konnte ich wirklich schon die Inhalte von verschiedenen EPROM's lesen.
Fehlt nur noch die Programmierung. Da brauchte ich zunächst den Transverter, der die erforderliche Programmierspannung von 12V, 21V bzw. 25V erzeugt. Einen passenden Spulenkörper fand ich in der Bastelkiste, diesen habe ich mit soviel wie möglich Kupferdraht von einer alten Relaisspule bewickelt. Daten für die Spule hatte ich ja nicht, doch die genauen Werte scheinen nicht so kritisch zu sein denn eine Änderung war nicht nötig. Zur Kontrolle der Spannungen mußte ich die PIO-Ausgänge statisch setzen. Hier half nur das Reassembler-Listing, wo ich mir die entsprechenden Ausgabe-Befehle herausgesucht habe. Mittels TEMO habe ich die Ports dann manuell programmiert und konnte die Spannungen kontrollieren - alles OK.
Nun war also der letzte Schritt getan - also leeren EPROM stecken und Programmierversuch. Doch nichts passierte, außer der Fehlermeldung, daß die Programmierung nicht gelungen ist. Also wieder das Meßgerät holen, den EPROM-Sockel leer lassen und den gesamten Brennvorgang Schritt für Schritt mittels OUT-Befehle in TEMO durchgehen und die Pegel an den EPROM-Pin's kontrollieren. Wie immer steckte der Teufel im Detail. Zunächst fehlte eine weitere Verbindung vom Transverterausgang, die Programmierspannung konnte also gar nicht bis zum EPROM vordringen. Der heimtückigste Fehler war allerdings ein Transistor. VT04 ist laut Schaltplan ein SC307 (pnp-Typ), eingelötet war jedoch ein SC239 (npn-Typ). Nachdem der richtige Transistor eingelötet war, ging auch die Zuschaltung der Programmierspannung.
Das war also die Geschichte, die einem halbfertigen Modul zu Leben verhalf. Ich weiß nicht, ob ich noch etwas vergessen habe. Der ganze Vorgang zog sich ja über mehrere Monate hin. Zum Glück hatte ich zumindest den Schaltplan zur Verfügung und das Programm auf Diskette vorliegen. Ohne diese beiden Dinge, wäre eine Fertigstellung des EPROM-Programmiermoduls aus der Vorserie wohl nicht gelungen. Die gute Nachricht: Es funktioniert, zumindest habe ich dies mit verschiedenen 2716, 2732, 2764 und 27C256 ausprobiert. Es war ein ganz schönes Stück Arbeit bis zu diesem Punkt. Allerdings bleibe ich bei meinem EPROM-Brenner mit M001 und den Zähler-IC's.
Die Vorteile des M030:
- Die Software ist gleich im Modul enthalten, muß also nicht erst geladen werden.
- Der EPROM-Programmiersockel befindet sich gleich im verlängerten Modul, somit fällt das Kabel und der Stecker weg.
- Die Programmierspannung wird per Software geschalten. Damit fällt die umständliche Voreinstellung des EPROM-Typs und der Programmierspannung mit DIL-Schalter oder Drehschalter weg.
Die Nachteile des M030:
- Programmierung von 64K-EPROM's (27512) ist nicht möglich. Diese werden zum Beispiel für das EPROM-Floppy benötigt.
- Keine Schnellfunktion ,,View`` zum Betrachten des EPROM- oder RAM-Inhaltes.
- Keine Funktion zum Brennen mehrerer EPROM's in einem Schritt, zum Beispiel der 4 Stück 2716 für ein M025.
- Da das Brennprogramm im Modul den Speicherbereich C000H-DFFFH überlagert, kann aus diesem Bereich keine Software gebrannt werden. Es ist also nicht direkt möglich, CAOS-EPROM's oder BASIC, EDAS, FORTH usw. aus dem Speicher heraus zu brennen. Eine Kopierfunktion für Speicherinhalte existiert auch nicht.
- Den Programmiervorgang kann man nicht am Bildschirm verfolgen, es wird lediglich durch eine rot leuchtende LED angezeigt, daß die Programmierspannung anliegt. Hier wäre eine mitlaufende Adresse hilfreich.
- Beachten muß man die richtige Lage beim Stecken des EPROM's in die Programmierfassung. Die Kerbe (Pin 1) muß links sein und die ,,kurzen`` EPROM's (2716 und 2732) müssen rechtsbündig gesteckt werden. Hier wäre eine Kennzeichnung am Gehäuse sinnvoll, vielleicht war so etwas ja vorgesehen?
Soviel für heute vom Betriebssystem-Koordinator. Viel Spaß beim Ausprobieren der neuen Programme!