Archiv für den Monat: Mai 2024

Ein 6809 Minimalsystem

Als der 6809 veröffentlicht wurde, war die Begeisterung groß, auch bei mir. Da ich mit dem Eurocom 1 ein 6802 (nicht 6502) System hatte, war ohnehin eine gewisse Nähe gegeben. Ich wollte unbedingt so ein System haben.

Allerdings waren sie in der Anfangszeit kaum zu bekommen und wenn doch, dann viel zu teuer. Als Student habe ich mir dann Anfang der 80er eine 6809 CPU gekauft und wollte damit ein System analog zum 6809 aufbauen. Allerdings hatte ich konkurrierend auch ein Z80 CP/M System aus Fertigplatinen aufgebaut und auch viel Software dazu, die ich für den 6809 nicht bekommen hätte (oder eben auch wieder viel zu teuer). Deshalb ist das Projekt eingeschlafen und hat mehr als 40 Jahre in der Bastelkiste geschlummert.

Anfang des Jahres ist mir die CPU beim Aufräumen wieder in die Finger gefallen und ich habe beschlossen, dieses Projekt endlich mal anzugehen. Nicht als dauerhaftes System, sondern als ein einfacher Breadboard Computer um mal ein wenig mit dem 6809 zu spielen.

Glücklicherweise ist das heute viel einfacher als vor 40 Jahren. Man muss nicht für jeden Versuch ein EPROM brennen und in das System einstecken. Ich habe einen Arduino Nano verwendet, der bei Bedarf die 6809 CPU in den Halt Zustand versetzt und dann direkt auf einen RAM Baustein zugreift. Das ganze System besteht (abgesehen vom Arduino) und aus der CPU, einem 32k RAM Baustein, einem Adressdekoder und einem Multiplexer. Dieser wurde notwendig, da der 6809 das E Signal, welches für den Speicherzugriff benötigt wird, im Halt Zustand nicht hochohmig macht. Der Arduino ist über eine serielle Verbindung mit dem PC verbunden auf dem ein spezielles Terminalprogramm läuft welches den RAM Bereich schreiben und lesen kann. Allerdings wäre der Zyklus Edit – Assemble – Upload – Test immer noch recht aufwändig wenn man die ersten Schritte auf einem neuen System macht. Der Test auf dem Breadboard wäre auch umständlich, da man kaum Logging- oder andere Ausgabemöglichkeiten hat.

Aus diesem Grund habe ich mir auch einen 6809 Simulator besorgt. Hier kann man die ersten Programme im Single Step oder mit Breakpoints ausprobieren, die Registerinhalte untersuchen oder Speicherbereiche anzeigen lassen. Wenn eine Funktion dann lief, habe ich sie auf den 6809 übertragen und geprüft, ob sie auf der realen Hardware auch noch korrekt ausgeführt wird.

Ich habe so ein rudimentäres Monitor System entwickelt, welches über eine Software-Interrupt Schnittstelle Funktionen wie Textausgabe, Texteingabe, Datei öffnen, lesen, schreiben und schließen zur Verfügung stellt. Kein komplettes Betriebssystem, aber mit zusätzlichen Aufwand hätte ich dorthin kommen können. Da es aber ohnehin kein dauerhaftes Projekt sein sollte, wollte ich auch die Zeit dafür in Grenzen halten.

Auch hier stellt sich die Frage: wohin führt das Projekt. Und wieder die Antwort: nirgendwo hin. Es macht mir Spaß, mal mit einem System zu arbeiten bei dem man jedes Bit unter Kontrolle hat und das man bis in den letzten Winkel verstanden hat. Aber im praktischen Einsatz ist es mir dann doch zu reduziert. Zudem – ich bin in der Z80 Assembler Welt groß geworden. Damit ist mir der extrem reduzierte Registersatz einfach zu wenig. Die Zero Page (oder Direct Page beim 6809) ist ein kleiner Trost, löst letztendlich aber eine Vielzahl von Memory read/ write Zugriffen aus. Beim 6809 kann man relativ gut mit lokalen Variablen auf dem Stack arbeiten, aber auch diese lösen Memory Zugriffe aus. Für seine Zeit war der 6809 sicherlich ein gutes System. Allerdings kam er viel zu spät – zu diesem Zeitpunkt waren die bereits die ersten 16 Bit CPUs auf den Sprung in den Massenmarkt – und er war leider auch nicht besonders schnell. Gut im Vergleich mit anderen 8 Bit CPUs aber deutlich langsamer als die 16 Bitter.

Mein Eurocom 1 lebt wieder

Meine ersten Kontakte zu einem Computer waren in einem VHS Kurs. Der Kursleiter hatte einen Nascom 1. Im Rahmen des Kurses wurden grundlegende Programmierkonzepte gezeigt und der Z80 Befehlssatz erklärt. Wenn man etwas Glück hatte, konnte man auch einmal ein Programm mit dem Hex Monitor eintippen.

Für mich als Schüler war der Nascom zum teuer, aber einen Eurocom 1 für 350 DM konnte ich mir leisten.

Das Netzteil musste selber zusammen gelötet werden, es kam als ein Bausatz. Die CPU Platine mit Hex Tastatur und 7-Segment Display kam fertig aufgebaut an.

In den kommenden Wochen habe ich das Handbuch x-mal durchgelesen. Zu diesem Zeitpunkt kam das Monitorprogramm noch mit einem ausführlich kommentierten Listening. Ich habe mich so intensiv damit beschäftigt, dass das Handbuch im Laufe der Zeit komplett auseinander gefallen ist und die Hex Tastatur so ausgeleiert war, dass man kaum noch damit arbeiten konnte.

So etwa 1980 hat mein Vater dann einen Nascom 2 als Familiencomputer angeschafft. Tatsächlich habe vorwiegend ich damit gearbeitet, mein nächst-jüngerer Bruder auch eine Zeit lang. Der Rest der Familie hat sich nicht so sehr dafür interessiert. Dieser Rechner mit ASCII Tastatur, Bildschirmausgabe und Basic war dann viel interessanter, der Eurocom 1 geriet in Vergessenheit. Das Netzteil habe ich für andere Projekte zweckentfremdet, die Eurocom 1 Platine aber zum Glück aufgehoben.

Sie lag in einer Bastelkiste bis sie mir vor ein paar Jahren mal wieder in den Sinn gekommen ist. Ich bin aber davon ausgegangen, dass nach über 40 Jahren die EPROMS keine Daten mehr enthalten und habe nichts weiter unternommen. In diesem Jahr habe ich ein 6809 Projekt gestartet, welches ich ähnlich wie den Eurocom 1 aufbauen wollte (es ist dann aber anders gekommen, ein richtiger Assembler ist schon angenehmer als eine Hex Eingabe von Maschinensprachbefehlen). Das hat dann den Anreiz gegeben, einen Versuch zu starten, den alten Computer wiederzubeleben.

Als erstes benötigte ich ein neues Netzteil. Der Eurocom 1 verwendet 2708 EPROMs, die brauchen 3 Versorgungsspannungen (+5V, +12V und -5V) und diese müssen auch in einer bestimmten Reihenfolge anliegen. Zum Glück gibt es im Handbuch einen Schaltplan zum Originalnetzteil und dort habe ich gesehen, dass sich Eltec nicht viele Sorgen um diese Reihenfolge gemacht hat. Es reicht offensichtlich, dass sie ungefähr gleichzeitig anliegen.

Interessanterweise habe ich in meiner Sammlung auch noch den alten Original-Trafo gefunden. Die -12V werden vermutlich nur für die RS 232 Schnittstelle benötigt, der Vollständigkeit halber habe ich aber alle 4 Spannungen, wie im Original, aufgebaut.

Nächster Schritt: Eurocom 1 Platine anschließen und sehen, ob er noch etwas sagt. Das war zuerst enttäuschend, das Display blieb dunkel. Aber ein wenig Rumdrücken auf der Platine hat gezeigt, dass es sich nur um einen Wackelkontakt handelt. Also auf alle Sockel etwas Kontaktreiniger gesprüht und anschließend die gesamte Platine mit Isopropanol gereinigt. Jetzt kam zumindest schon mal die „Eurocon Control“ Meldung (ein m ist mit einem 7 Segment Display nicht darstellbar).

Weiter ging es mit der Tastatur. Sie ist ein den 40 Jahren nicht besser geworden. Viele Tasten hatten gar keine Funktion mehr und die verbleibenden haben so stark geprellt, dass man sie auch nicht mehr verwenden konnte. Zudem hat sich die Kombination von Kleber und Hautfett über die Jahre zu einer dunklen Masse entwickelt. Mein erster Plan war, die Tasten gegen neue zu ersetzen. Allerdings hatte ich keine mit einem identischen foot print. Also mussten die vorhandenen wieder Instand gesetzt werden.

Zum Glück konnte man die Tasten relativ leicht öffnen. Der Kontakt war ein einfacher Neusilber-Draht und eine winzige Tellerfeder. Beides konnte ich mit etwas Geduld wieder reinigen und die Tasten wieder zusammensetzen. Das größte Problem bestand darin, die noch winzigere Feder richtig zu platzieren ohne, dass sie wegspringt. Eine ist entkommen, jetzt ist die Taste „Y“ ohne Funktion.

Die alte Beschriftung war einfach eine Folie mit Laser-Drucker Beschriftung. Diese habe ich entfernt, die Tastenkappen gereinigt und eine neue Beschriftung ausgedruckt.

Wie geht es weiter: ich fürchte – erst mal gar nicht. So viel Spaß die Erinnerung an alte Zeiten bringt, ich möchte so reduziert nicht mehr arbeiten. Der Eurocom 1 wird wieder in einer Bastelkiste verschwinden – diesmal aber mit Netzteil – und darauf warten, dass ich irgendwann doch wieder Lust darauf bekomme.