{"id":274,"date":"2024-05-30T14:42:56","date_gmt":"2024-05-30T14:42:56","guid":{"rendered":"http:\/\/techblog.auchmonoabspielbar.de\/?p=274"},"modified":"2024-05-30T14:42:56","modified_gmt":"2024-05-30T14:42:56","slug":"ein-6809-minimalsystem","status":"publish","type":"post","link":"http:\/\/techblog.auchmonoabspielbar.de\/?p=274","title":{"rendered":"Ein 6809 Minimalsystem"},"content":{"rendered":"\n<p>Als der 6809 ver\u00f6ffentlicht wurde, war die Begeisterung gro\u00df, auch bei mir. Da ich mit dem Eurocom 1 ein 6802 (nicht 6502) System hatte, war ohnehin eine gewisse N\u00e4he gegeben. Ich wollte unbedingt so ein System haben. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1344\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/byte-Artikelstart-2048x1344.png\" alt=\"\" class=\"wp-image-275\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/byte-Artikelstart-2048x1344.png 2048w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/byte-Artikelstart-300x197.png 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/byte-Artikelstart-768x504.png 768w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/byte-Artikelstart-1536x1008.png 1536w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/byte-Artikelstart-624x410.png 624w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/figure>\n\n\n\n<p>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\u00fcr den 6809 nicht bekommen h\u00e4tte (oder eben auch wieder viel zu teuer). Deshalb ist das Projekt eingeschlafen und hat mehr als 40 Jahre in der Bastelkiste geschlummert.<\/p>\n\n\n\n<p>Anfang des Jahres ist mir die CPU beim Aufr\u00e4umen 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.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1336\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/Bild-Breadboard-2048x1336.png\" alt=\"\" class=\"wp-image-276\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/Bild-Breadboard-2048x1336.png 2048w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/Bild-Breadboard-300x196.png 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/Bild-Breadboard-768x501.png 768w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/Bild-Breadboard-1536x1002.png 1536w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2024\/05\/Bild-Breadboard-624x407.png 624w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/figure>\n\n\n\n<p>Gl\u00fccklicherweise ist das heute viel einfacher als vor 40 Jahren. Man muss nicht f\u00fcr 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\u00fcr den Speicherzugriff ben\u00f6tigt wird, im Halt Zustand nicht hochohmig macht. Der Arduino ist \u00fcber eine serielle Verbindung mit dem PC verbunden auf dem ein spezielles Terminalprogramm l\u00e4uft welches den RAM Bereich schreiben und lesen kann. Allerdings w\u00e4re der Zyklus Edit &#8211; Assemble &#8211; Upload &#8211; Test immer noch recht aufw\u00e4ndig wenn man die ersten Schritte auf einem neuen System macht. Der Test auf dem Breadboard w\u00e4re auch umst\u00e4ndlich, da man kaum Logging- oder andere Ausgabem\u00f6glichkeiten hat.<\/p>\n\n\n\n<p>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 \u00fcbertragen und gepr\u00fcft, ob sie auf der realen Hardware auch noch korrekt ausgef\u00fchrt wird.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"6809 Breadboard Computer\" width=\"625\" height=\"352\" src=\"https:\/\/www.youtube.com\/embed\/sao1uESXQDo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Ich habe so ein rudiment\u00e4res Monitor System entwickelt, welches \u00fcber eine Software-Interrupt Schnittstelle Funktionen wie Textausgabe, Texteingabe, Datei \u00f6ffnen, lesen, schreiben und schlie\u00dfen zur Verf\u00fcgung stellt. Kein komplettes Betriebssystem, aber mit zus\u00e4tzlichen Aufwand h\u00e4tte ich dorthin kommen k\u00f6nnen. Da es aber ohnehin kein dauerhaftes Projekt sein sollte, wollte ich auch die Zeit daf\u00fcr in Grenzen halten.<\/p>\n\n\n\n<p>Auch hier stellt sich die Frage: wohin f\u00fchrt das Projekt. Und wieder die Antwort: nirgendwo hin. Es macht mir Spa\u00df, 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 &#8211; ich bin in der Z80 Assembler Welt gro\u00df geworden. Damit ist mir der extrem reduzierte Registersatz einfach zu wenig. Die Zero Page (oder Direct Page beim 6809) ist ein kleiner Trost, l\u00f6st 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\u00f6sen Memory Zugriffe aus. F\u00fcr seine Zeit war der 6809 sicherlich ein gutes System. Allerdings kam er viel zu sp\u00e4t &#8211; zu diesem Zeitpunkt waren die bereits die ersten 16 Bit CPUs auf den Sprung in den Massenmarkt &#8211; und er war leider auch nicht besonders schnell. Gut im Vergleich mit anderen 8 Bit CPUs aber deutlich langsamer als die 16 Bitter.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Als der 6809 ver\u00f6ffentlicht wurde, war die Begeisterung gro\u00df, auch bei mir. Da ich mit dem Eurocom 1 ein 6802 (nicht 6502) System hatte, war ohnehin eine gewisse N\u00e4he 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-274","post","type-post","status-publish","format-standard","hentry","category-hardware"],"_links":{"self":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=274"}],"version-history":[{"count":2,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions"}],"predecessor-version":[{"id":278,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions\/278"}],"wp:attachment":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=274"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}