Motorola 6809

Das Herz von allen diesen Dingen

Ich habe an dieser Stelle von dem Heathkit Trainer ET-3400 geschrieben – der war ja auf Basis des Motorola MC 6809 aufgebaut. Ich habe auch beschrieben, dass die CNC Steuerungen meiner ersten Berufsjahre diesen Prozessor verwendet haben.

Im weiteren Verlauf dieses Artikels möchte ich auf die Entwicklungsumgebungen eingehen, und die Computertechnik beschreiben, mit der ich zu dieser Zeit gearbeitet habe.

Am Anfang aller Bemühungen stand das Rechnen mit Hexadezimalen Zahlen und das Verstehen der Vorgänge, die durch die sogenannten „Opcodes“ im Prozessor ausgelöst werden. Da steht also erst einmal das Studium des Datenblatts an. Hier eine Kopie des originalen Datenblatts von Motorola. Ständig und immer zur Hand war auch die kompakte Zusammenfassung aller Befehle und Adressierarten. Da gab es von Motorola damals so ein kleines lila Kärtchen mit allen Befehlen. Das aber ist mir verloren gegangen – nachdem ich es jahrelang wie einen kostbaren Schatz gehütet habe. Dier Inhalt dieses Kärtchens war wie in dieser Zusammenstellung.

Seinerzeit gab es von der Firma „Southwest technical Products“  eine Entwicklungssystem für den 6809. Auf dieser Vorlage basierten auch alle anderen Systeme, die es damals gab. Nur zur Erinnerung: zu dieser Zeit war der IBM PC, also der Urvater der heutigen Personal Computer, noch nicht erfunden. Wer sich zu dieser Zeit mit Computern beschäftigt hat, konnte kaum Informationen finden, und natürlich, das Internet war ja auch noch nicht erfunden.

 

 Für das System an sich gibt es auch einen PC Emulator. Heute kann man mit Hilfe von Google einen Blick auf die alte Adresse richten: ist das nicht maßlos traurig und ernüchternd?

 (Ich mache das mitunter bei den Adressen mit hohem Erinnerungswert)

Ich habe damals mein Entwicklungssystem mit Plänen aus Amerika komplett selbst gebaut. Zugang zu dem Computer hatte man über ein sogenanntes „Terminal“, ein System mit einer Tastatur und einem  Bildschirm von sage und Schreibe 80 X 20 Zeichen mit der Darstellung einer 7 x 12 Punktmatrix. Auch da hatte Southwest so ein schönes Terminal im Programm.


An dem Ding habe ich an meiner Arbeitsstätte geschwitzt, und mir die kleinen grauen Zellen verheizt. Privat konnte ich mir so ein schönes Terminal nicht leisten, und habe mir deshalb ein „Elekternimal“ selbst zusammen gelötet. Man bedenke, dass meine Cherry ASCII Tastatur bei 5 Volt allein bereits 3 Ampere gezogen hat. Noch wiederum etwas später bekam ich über ein paar Umwege ein Lear Siegler ADM11 Terminal – da war die Freude groß. (unfassbar groß, das konnte auch 80 x 24 Zeichen darstellen!)

Das System lief unter einem Betriebssystem der Firma TSC mit dem Namen Flex. (das kennt heute keiner mehr) ein paar ganz wenige Freaks unterhalten noch eine Web Site mit Informationen. Aber selbst in deutschen Wikipedia gibt es einen Artikel:  Das Aussehen der Seite mag einem noch das Gefühl geben, wie damals die Bildschirm Ausgabe eines Computers ausgesehen hat. (Die meisten Terminals hatten den grünen P31 Phosphor) Leider Zeigt die Site gerade einen Haufen 404 Fehler – früher konnte man die alten Images für Flex auch herunterladen. Niemand kann sich heute mehr vorstellen, was für eine unglaubliche Freude es für mich war, als sich nach monatelanger Bautätigkeit der Stepper Motor meines 51/4 Zoll Teac (Single Side 40 Track) Laufwerks in Bewegung setzte, um Flex zu booten – ich sehe das noch ganz genau vor mir – ich konnte das gar nicht fassen. Als Ergebnis all der Bemühungen sah ich dann den Flex Command Prompt +++ Toll, das erzähl mal heute einem iPhone Benutzer… Immerhin konnte ich ab dieser Zeit meine Programme auf einer Diskette speichern. Davor waren die Daten nur in einem Batterie gepufferten Speicher, oder mussten zur dauerhaften Speicherung in ein Eprom gebrannt werden.


Ich möchte noch einen Eindruck davon geben, wie damals in Assembler programmiert wurde. Hier ein Schnipsel von Southwest – Das Monitor Programm des Systems. Heute würde man das wohl am ehesten mit „BIOS“ beschreiben. Mit dem TSC Macro Assembler war ich sozusagen auf „DU“. Na, ihr Programmierer da draußen: wer findet den Abschnitt, der das System von der Floppy gebootet hat? Dieses Monitor Programm war in genau so einem Eprom, wie dem rechts abgebildeten. Es hat den Computer mit den notwendigsten Funktionen zum Leben erweckt, und Ihn überhaupt erst in die Lage versetzt, einfachste Befehle auszuführen. Das Prom war im Adressbereich des Prozessors ganz oben von #F800 bis #FFFF eingeblendet, und enthielt auch die elementaren Sprungadressen für so wichtige Dinge wie den NMI und den Reset. Nach dem Einschalten des Computers bekam man nicht mehr als eine kurze Meldung mit der Versionsnummer des Monitor Programms auf den Bildschirm, und darunter einen Command Prompt an einem blinkenden Cursor, der einem damit sagen wollte, dass das System nun bereit ist, die Befehle der Programmierers zu empfangen… In der Regel ging es dann mit einem schlichten „U“ (ohne Tüddel) weiter, dem Befehl zum Booten einer 51/4 Floppy in Laufwerk 0. Bei Flex hießen die Laufwerte 0 und 1 und nicht wie später bei MS Dos A und B – aber das nur am Rande. In dem verlinkten Wiki Artikel ist übrigens ein schönes Bild mit einem veritablen Millennium Bug zu sehen – wenn ich noch ernsthaft mit Flex arbeiten würde, hätte da wohl etwas umschreiben müssen… Aber wer würde heute noch mit so einem Texteditor arbeiten wollen? Wer da mal einen Blick rein wirft, mag verstehen, warum denn der in der Dos Anfangszeit so berühmte „Edlin“ von Herrn MS dann auch nicht mehr schlimmer sein konnte!
Eines sei an dieser Stelle noch einmal ganz deutlich gesagt: Ich habe in meinem ganzen Leben nie mehr einen Computer so verstanden wie diesen Eigenbau unter Flex. Vom Drücken einer Taste bis zur Darstellung eines Zeichens auf dem Bildschirm gab es keine unbekannte Funktion und keinen unerforschten Speicherbereich. Ich habe in monatelanger Arbeit ganze Datenbanken auf dem System programmiert. Die Ausdrucke davon hatten ein Gewicht von mehreren Kilogramm , und es waren abertausende Zeilen Programmcode. (Eine angeschlossene Relais Karte konnte sogar gleich eine Telefonnummer aus der Datenbank wählen – und das war in den späten 70er Jahren des letzten Jahrtausends!) Ich erlebe im Vergleich dazu in der heutigen Zeit einen dramatischen Verlust an Kontrolle über den eigenen Computer und über die eigenen Daten. Schlimmer noch: es scheint keinen zu stören, dass alle Computer ständig irgendwelche Verbindungen aufbauen und sonst was übertragen. Und: schade, ich kann nichts dagegen unternehmen, oder müsste alle Verbindungen kappen. Das aber ist ja heute auch keine Option…

Die Programmierkenntnisse von Damals helfen sogar heute noch ab und an. Da musste ich vor einiger Zeit ein Betriebsprogramm für einen speziellen Barcode Scanner schreiben: Der wird mit einem speziellen Basic Dialekt programmiert, und ich hatte ja seinerzeit von TSC auch diesen hervorragenden BASC Compiler. Also habe ich mich ran gesetzt, und das ist dabei heraus gekommen: Man mag erkennen, dass mir die Programmierung noch irgendwie liegt – ich möchte aber an dieser Stelle nicht mehr darüber mit wem auch immer diskutieren, ob man das ein oder andere Stück etwa eleganter hätte niederschreiben können. Tatsache ist: Das Teil leistet seit Jahren treue Dienste und stürzt nur ganz selten ab – das ist doch schon mal was..

Übrigens – noch zum Schluss: Viele Schaltungen haben wir seinerzeit in „Wire Wrap“ Technik aufgebaut. Das kennt heute auch fast keiner mehr. Das war immer dann der Fall, wenn sich die Entwicklung und Herstellung einer richtigen Platine nicht gelohnt hat, weil die Stückzahl der benötigen Einheiten einfach zu klein war. Um einen kleinen Eindruck davon zu geben wie kompliziert das war, und warum meine Augen heute kaputt sind, mag vielleicht noch dieses Bild einen Eindruck davon vermitteln: