{"id":553,"date":"2024-01-16T16:14:45","date_gmt":"2024-01-16T15:14:45","guid":{"rendered":"https:\/\/www.dev-tronic.de\/?p=553"},"modified":"2024-01-16T16:15:07","modified_gmt":"2024-01-16T15:15:07","slug":"z80ardu-extended-memory","status":"publish","type":"post","link":"https:\/\/www.dev-tronic.de\/?p=553","title":{"rendered":"Z80Ardu &#8211; Extended Memory"},"content":{"rendered":"\n<p>Nachdem ich die Grafikkarte mit dem MC6847 beiseite gelegt, und diese durch die Grafikkarte mit dem TMS9918 ersetzt hatte, wurde der Speicherbereich von E000 bis FFFF frei. Zuvor war dort der Speicher f\u00fcr die MC6847-Grafikkarte. Da der TMS9918 seinen Speicher unabh\u00e4ngig vom regul\u00e4ren 64 Kilobyte-Speicher des Z80Ardu verwaltet (dieser befindet sich f\u00fcr den Z80-Prozessor unsichtbar auf der TMS9918-Grafikkarte), kann der nun freie Speicherbereich wieder f\u00fcr andere Zwecke genutzt werden.<\/p>\n\n\n\n<p>Es liegt also nahe, den Bereich wieder mit RAM zu belegen, der f\u00fcr regul\u00e4re Programmdaten verf\u00fcgbar ist. Immerhin handelt es sich um 8 Kilobyte, die, wenn die MC6847-Karte zum einsatz kam, eben als Video-RAM deklariert waren.<\/p>\n\n\n\n<p>Also habe ich eine Erweiterungskarte entworfen, die den Bereich ab E000 wieder mit RAM belegt. Es erschien mir aber sinnvoll, dort nicht nur 8 KB zur verf\u00fcgung zu stellen, sondern 2 Megabyte RAM. Da der Z80-Prozessor nur 64 Kilobyte adressieren kann, werden die 2 MB als &#8222;Banked Memory&#8220; verf\u00fcgbar gemacht. Es sind also ab E000 immer nur 8 Kilobyte verf\u00fcgbar. <\/p>\n\n\n\n<p>Per I\/O-Befehl k\u00f6nnen 256 B\u00e4nke aktiviert werden. Es lassen sich also 256 x 8 Kilobyte Daten oder Programme in den 2 MB RAM ablegen. F\u00fcr ein Z80-System ist das eine gewaltige Speichergr\u00f6\u00dfe.<\/p>\n\n\n\n<p>F\u00fcr die Speicherkarte habe ich keinen Prototyp gebaut (zu viele Leitungen \ud83d\ude42 ). Ich habe den Schaltplan entworfen und gleich die passenden Platinen bestellt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-1024x576.jpeg\" alt=\"\" class=\"wp-image-558\" srcset=\"https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-1024x576.jpeg 1024w, https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-300x169.jpeg 300w, https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-768x432.jpeg 768w, https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-1536x864.jpeg 1536w, https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-375x210.jpeg 375w, https:\/\/www.dev-tronic.de\/wp-content\/uploads\/2023\/12\/Z80Ardu_Extended_Banked_Memory-rotated.jpeg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Erste Version der Speichererweiterung. Hier gab es Timingprobleme, da das \/IOREQ-Signal nicht mit dem \/WR-Signal synvhron war<\/figcaption><\/figure>\n\n\n\n<p> Verbaut sind vier 512 Kilobyte-SRAM-Bausteine. Das Bankswitching erledigt ein Latch (74HCT573). Chipselect erfolgt mit einem 74HCT139 und zu guter Letzt k\u00fcmmert sich ein Inverter (74HCT04) um die Umkehr des Latch-Enable-Signals des 74HCT573.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>06.01.2024 &#8211; Eine neue Version der Platine erstellt und bestellt.<\/strong> <\/p>\n\n\n\n<p>Es ist ein ODER-Gatter dazu gekommen, um \/IOREQ und \/WR zu synchronisieren. Au\u00dferdem wurde das Layout der Platine leicht ver\u00e4ndert. Vier LEDs zeigen an, welcher Chip gerade aktiv ist (reine Kontrollfunktion)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem ich die Grafikkarte mit dem MC6847 beiseite gelegt, und diese durch die Grafikkarte mit dem TMS9918 ersetzt hatte, wurde der Speicherbereich von E000 bis FFFF frei. Zuvor war dort der Speicher f\u00fcr die MC6847-Grafikkarte. Da der TMS9918 seinen Speicher unabh\u00e4ngig vom regul\u00e4ren 64 Kilobyte-Speicher des Z80Ardu verwaltet (dieser befindet sich f\u00fcr den Z80-Prozessor unsichtbar auf der TMS9918-Grafikkarte), kann der nun freie Speicherbereich wieder f\u00fcr andere Zwecke genutzt werden. Es liegt also nahe, den Bereich wieder mit RAM zu belegen,<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3],"tags":[],"class_list":["post-553","post","type-post","status-publish","format-standard","hentry","category-z80","category-z80ardu"],"_links":{"self":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts\/553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=553"}],"version-history":[{"count":5,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts\/553\/revisions"}],"predecessor-version":[{"id":566,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=\/wp\/v2\/posts\/553\/revisions\/566"}],"wp:attachment":[{"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dev-tronic.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}