Neuentwicklung des M041 als Nachbau des M040

Prototyp
Prototyp-Platine
Gehäuse
Serienplatine
Platine b
PLCC Adapter
Hybridmodul
M041
EEPSDP
SRNSHOW
M040
M041-BF
Schaltplan-SM0
Schaltplan-SM1
M041-Rev3.0
Handbuch

Am Anfang der neuentdeckten Leidenschaft für den KC85 - welche so in etwa im Jahr 2009 begann - stand das sammeln jedweder nicht vorhandener Hardware rund um den KC85. Neben den Aufsatzgeräten D002, D004, Floppy-Disk, der Komforttastatur D005, diversen Peripheriegeräten - Drucker, Plotter, Erika 6007 - wurden auch zahlreiche Module erworben. Darunter ganz Klassische, von MPM Mühlhausen entwickelte, aber auch Neuentwicklungen von begabten Elektronikern und Programmierern.
Bei weitem nicht jedes Modul konnte in die Sammlung integriert werden, da es partout nicht käuflich vorhanden war. Eines dieser Module ist das M040. Warum war auch dieses Modul so interessant?

Ab und an programmiert der Autor ein wenig. Hauptsächlich handelt es sich um Grafikanwendungen - Bildschirmschoner, Slide-Shows, kleine Spiele. Die Lieblingssprachen sind C++ und PERL. Das Betriebssystem spielt dabei eine untergeordnete Rolle. Viel wichtiger ist das Vorhandensein einer ausgereiften Entwicklungsumgebung mit integrierten Werkzeugen, u.a. Debugger, Linker und Compiler.

Vor geraumer Zeit wurde für den KC85 ein kleines CAOS-Programm entwickelt. Es handelt sich um eine Art Diashow. Dargestellt werden Bilder von Ausflügen und Urlauben in ganz Deutschland.
Sie können sich gern ein Video der kleinen Spielerei ansehen.

Das M040 bietet die Möglichkeit so konfiguriert zu werden, daß es als Autostartmodul zum Einsatz kommen kann. Und genau das war die Motivation für den Nachbau.
Das kleine Programm so umzuschreiben, daß es autostartfähig wird und sofort beim Einschalten des KC startet. Dazu wird ein M040 benötigt und es sind weitere Voraussetzungen zu schaffen, welche jedoch als schon erfüllt betrachtet werden konnten.

Mehr als dieser Nachbau sollte es gar nicht werden. Daß letztendlich etwas viel Besseres entstanden ist, ist natürlich erfreulich.

Für die beschriebenen Anforderungen und Zwecke hätte ein M040 vollkommen ausgereicht. Die Schaltpläne waren vorhanden - wunderbar sauber von Mario Leubner neugezeichnet. Und es hätte sogar eine kleine Erweiterung stattgefunden, nämlich die ebenfalls von Mario Leubner entwickelte Modifizierung, die den Einsatz von EEPROM- statt EPROM-Schaltkreisen ermöglicht. Damit entfällt das lästige Herausnehmen der EPROM, löschen dieser mit anschließender Neuprogrammierung und dann wieder Einsetzen in die Fassungen.
Warum ist es nicht dabei geblieben? Letztendlich kann die Frage nicht beantwortet werden. Der Hauptgrund wird wohl der sein, daß der Autor mit Mario Leubner wieder Kontakt aufnahm, um ihn um Unterstützung beim Nachbau zu bitten, wenn Verständnisprobleme auftauchen.

Mit Mario Leubner wurde schon einmal zusammengearbeitet. Damals ging es um die Entwicklung des M030. Zusammen mit Wolfgang Harwardt und Mario Leubner wurde ein leistungsstarkes Modul entwickelt.
Durch seine Gedankenanstöße sorgte er dafür, daß es zur Entwicklung des M041 kam. Er setzte keine fertigen Lösungen vor, sondern zwang zum nachdenken. Kam es dann doch manchmal zum Stillstand, dann half er mit Schaltungsvorschlägen. Natürlich ist letzten Endes ein Großteil der Entwicklung des M041 von Mario Leubner vorgenommen worden. Aber mit ein klein wenig Stolz nimmt der Autor für sich in Anspruch, daß auch von ihm Teile der Schaltung entworfen wurden.
Wie schon seinerzeit beim M030 war der Lerneffekt auch dieses Mal sehr groß und zum ersten Mal wurde eine Schaltung in ihren Grundzügen auch verstanden die es wurden selbständig Teilschaltungen entwickelt.
Die Zusammenarbeit mit Mario Leubner ist immer sachlich und freundlich gewesen. Es hat immer Spaß gemacht und war wieder eine Fundgrube des Wissens.

Was zeichnet das M041 gegenüber dem M040 aus?
Zunächst einmal ist es ein vollkommen anderer Schaltplan. Auf einer Modulplatine finden zwei gleichwertige Module Platz, quasi zwei M041. Das M041 bietet zweimal 16 KB ROM-Speicher. Dabei können neben den vorgesehenen EERPOM auch EPROM eingesetzt werden, dann mit der Einschränkung, daß diese nicht "in system" programmiert werden können.
Die jeweils 16 KB teilen sich auf zwei 8 KB-EEPROM auf. Gleich dem M033 (Typestar) können diese beiden Blöcke rotiert werden, so daß entweder EEPROM 0 oder EEPROM 1 auf, zum Beispiel, der Adresse C000 eingeblendet wird, wobei der jeweils andere dann verdeckt auf Adresse E000 liegt.
Das Modul bietet einen dreifachen Schreibschutz, wenn EEPROM mit SDP (Software data protection) eingesetzt werden. Als erstes eben SDP, dann zum zweiten per Steuerbyte (Kennbyte) und zum dritten per Hardware. Dazu befindet sich an der Platinenvorderseite ein DIP-Switch, mit dem jedes Submodul per Schalter schreibgeschützt werden kann. Dieser DIP-Switch dient auch zur Einstellung des Strukturbytes. Dadurch lassen sich die Strukturbytes 01 (Start-ROM), F1, F8 und FC einstellen.
Hauptmerkmale sind sicherlich die insgesamt 32 KB ROM-Speicher, die Autostartfunktionalität und die Möglichkeit des "in system programmings".

Aber auch das Layout, d.h. das Design der Platine, ist gegenüber dem M040 grundlegend verändert.
Als kleines Augenschmankerl können sicher die 4 RGB-LED betrachtet werden. Getrennt für beide Submodule zeigt jeweils die linke LED den "module on"-Status an bzw. einen aktiven Schreibvorgang auf einem der beiden EEPROM (blau für EERPOM 0 und rot für EEPROM 1). Das Anzeigen bzw. Signalisieren des Schreibvorgangs müssen die eingesetzten EEPROM unterstützen.
Die rechte LED zeigt generell die Aktivität (Lesen und Schreiben) auf den EEPROM an (blau und rot; grün bleibt hier unbenutzt).

Nach dem Aufbau der Serienplatine hat sich leider ein gravierender Fehler herausgestellt, welcher durch grobe Fahrlässigkeit entstanden ist.
Im Gegensatz zum Prototyp arbeitet die Modulpriorisierungslogik nicht korrekt, da schlichtweg das Signal /MREQ, welches dabei unbedingt berücksichtigt werden muß, nicht mit eingebunden ist. Dadurch entstehen ungewollte Effekte, beginnend mit der teilweisen Nichtverwendungsmöglichkeit von Modulen, welche "hinter" dem M041 gesteckt sind, bis hin zum völligen Stillstand des Rechners.
Um diesen Fehler zu beseitigen, muß ein SMD-Schaltkreis (74LS32) auf der Lötseite der Platine angebracht werden. Des weiteren müssen zwei Leitungen durchtrennt und weitere 10 Leitungen per Fädeldraht o.ä. verlegt werden. Wie das genau zu erfolgen hat, ist der technischen Dokumentation zu entnehmen. Eine Abbildung hier zeigt schematisch den Sachverhalt.

Eine Umfrage unter den Interessenten hat ergeben, daß die Mehrheit die "Bugfix"-Lösung akzeptiert, d.h. den SMD-Schaltkreis auf der Lötseite aufzubringen und entsprechend der Beschreibung zur Fehlerbehebung einzubinden.
Einige möchten jedoch gern eine neue Platine, mit der korrekten Schaltung. Sie sind dankenswerter Weise bereit, den Beschaffungspreis zu bezahlen. Das Layout wurde bereits überarbeitet. Der Einsatz eines SMD-IC läßt sich jedoch aufgrund der Bestückungsdichte nicht mehr vermeiden. Der neue Schaltkreis D22 wird nun innerhalb der Fassung eines der EEPROM-IC eingelötet. Damit liegen alle Bauteile weiterhin auf der Bestückungsseite.
Der Autor hat ganz allein den Fehler gefunden, eine Lösung zur Behebung entwickelt und diese auch getestet und veröffentlicht.
Der Aufwand für ein vollständiges Re-Layout der Platine, mit dem Ziel den SMD-IC durch einen DIP-IC zu ersetzen, steht nach Meinung des Autors in keinem vernünftigen Verhältnis zum zu erwartenden Nutzen. Die vom Autor vorgenommene Änderung behebt den Fehler und stellt damit die Funktionalität des Moduls vollständig sicher. Eine funktional vollkommen gleichwertige Platine, welche ein vollständig anderes Layout besitzt, ist nach Meinung des Autors nicht sinnvoll.

Nach reiflicher Überlegung wurde gemeinschaftlich der Beschluß gefaßt, dem Vorschlag Mario Leubners zu folgen und die Neuanfertigung der Platine ohne SMD-Schaltkreis vorzusehen. Ob letztendlich Mario Leubners neuer Schaltplanentwurf oder der des Autors als Grundlage dient, ist noch nicht entschieden. Die Neuanfertigung ist nun für Ende des Jahres 2017 geplant.

Der Zeitplan für die Fertigstellung des überarbeiteten und fehlerbereinigten Schaltplans wurde geändert. Mittlerweile ist der neue Schaltplan erstellt und das Layout der Platine wurde angepaßt. Es handelt sich dabei um die Revision 3.0. Dabei ist zu beachten, daß der im KC-Labor bereitgestellte Schaltplan nicht mit dem der Revision 3.0 identisch ist.
Die Neuanfertigung der Platinen mit dem fehlerbereinigten Schaltplan wurde Mitte Juni/2016 beauftragt. Der Autor hat für sich entschieden, keine Platine der Revision 3.0 zu nehmen, da die Fehlerbehebung der Revision 21 funktional korrekt und die nachträgliche Korrektur der Platine im Gehäuse optisch nicht sichtbar ist.

Für weitere Informationen, insbesondere die technischen Aspekte und die Einsatzmöglichkeiten des M041 betreffend, wird auf das Handbuch und die Schaltpläne verwiesen. Diese können im Download-Bereich gefunden und heruntergeladen werden. Die überarbeiteten Dokumentationen, sowohl zur Revision 21 (fehlerhafte Platine mit dem zusätzlich aufgebrachten SMD-Schaltkreis), als auch zur Revision 3.0, befinden sich ebenfalls im Download-Bereich.

Der Autor hat für sich das Projekt abgerundet und eine gedruckte Ausgabe des Handbuches anfertigen lassen. Die Qualität des Druckes ist sehr gut.

KC854 original
85/4 - original
KC855 erweitert
85/5 - erweitert
D004
D004 - GIDE-IF
Disk-Laufwerke
Disk-Laufwerke
PS2-Tastatur
PS/2-Tastatur
Module
M052 / M035x4
KC855 modifiziert
85/5 - verändert
PS2-Interface
PS/2-Interface
CF-Kartenleser
CF-Kartenleser
M030-Eprommer
M030 - Eprommer
Drucker K6304
Drucker K 6304
M041-2x16 KB EEPROM
M041 - EEPROM
M066-SOUND
M066 - SOUND
M051-Scanner
M051 - Scanner