<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=RAM_Expansion_Unit</id>
	<title>RAM Expansion Unit - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=RAM_Expansion_Unit"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=RAM_Expansion_Unit&amp;action=history"/>
	<updated>2026-05-19T07:31:43Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=RAM_Expansion_Unit&amp;diff=56257&amp;oldid=prev</id>
		<title>imported&gt;APPERbot: Bot: zu viel Abstand am Absatzende entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=RAM_Expansion_Unit&amp;diff=56257&amp;oldid=prev"/>
		<updated>2023-10-13T01:01:24Z</updated>

		<summary type="html">&lt;p&gt;Bot: zu viel Abstand am Absatzende entfernt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Unter &amp;#039;&amp;#039;&amp;#039;RAM Expansion Unit&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;REU&amp;#039;&amp;#039;&amp;#039;) versteht man im weitesten Sinn eine [[Speichererweiterung]] in Form einer Erweiterungskarte oder eines Moduls. Hauptsächlich verwendet wird der Begriff aber für Speichererweiterungen von [[Commodore International|Commodore]] für deren [[Heimcomputer]] [[C64]] und [[C128]].&lt;br /&gt;
&lt;br /&gt;
== Die Commodore-REUs für die Heimcomputer C64 und C128 ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Commodore 1764 REU.jpg|mini|250px|Eine REU 1764 mit Utility-Disk und mitgeliefertem stärkeren C64-Netzteil]]&lt;br /&gt;
&lt;br /&gt;
=== Einführung ===&lt;br /&gt;
&lt;br /&gt;
Die von Commodore für den [[Commodore 64|C64]] und [[Commodore 128|C128]] hergestellten Speichererweiterungen (&amp;quot;RAM Expansion Units&amp;quot;, kurz &amp;quot;REUs&amp;quot;) sind [[Steckmodul]]e, die in den sogenannten &amp;quot;Expansions Port&amp;quot; dieser Heimcomputer eingesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
Im Jahr 1985 wurden die REUs auf der [[Consumer Electronics Show|Consumer Electronics Show (CES)]] in [[Chicago]] vorgestellt. Ursprünglich für den C128 entwickelt, können alle REUs jedoch ohne Einschränkungen auch am C64 betrieben werden (auch wenn auf der Platine dieser Steckmodule ausdrücklich &amp;quot;C128 RAM EXPANSION&amp;quot; zu lesen ist). Da es am &amp;quot;kleineren&amp;quot; C64 aufgrund des im Vergleich zu normalen Steckmodulen etwas höheren Stromverbrauchs Probleme beim Betrieb geben kann, wurde für den Betrieb ein etwas stärkeres C64-Netzteil empfohlen und mit dem Modell 1764 auch mitgeliefert. Dieses Netzteil ist keineswegs, wie oftmals vermutet, selten. Praktisch bekommt man es auf jedem Trödelmarkt oder gar auf bekannten Online-Auktionsplattformen massenhaft angeboten. Das Netzteil des C128 hingegen ist bereits ausreichend groß dimensioniert, so dass damit normalerweise keine Probleme auftreten.&lt;br /&gt;
&lt;br /&gt;
Bei der REU handelt es sich um eine Art externe [[RAM-Disk]], die zwar vom Computer aus angesprochen werden kann, jedoch nicht direkt. Dies liegt einerseits daran, dass der C64 nur 64&amp;amp;nbsp;[[Binärpräfix|Ki]]B [[Adressraum]] besitzt, andererseits an der fehlenden Unterstützung der REU im [[Commodore Basic V2|BASIC V2.0]] bzw. [[Kernal]] des C64. Insbesondere wird der freie BASIC-Speicher des Computers nicht automatisch erweitert. Demzufolge kann die REU nur von Programmen genutzt werden, die ausdrücklich Speicherzugriffsroutinen für die REU implementieren.&lt;br /&gt;
&lt;br /&gt;
=== Technische Daten und Funktionsweise ===&lt;br /&gt;
&lt;br /&gt;
Die drei Speichererweiterungen unterscheiden sich, oberflächlich gesehen, lediglich in ihrer Speicherkapazität. Es gibt drei verschiedene REUs:&lt;br /&gt;
&lt;br /&gt;
# die Commodore 1700 mit 128&amp;amp;nbsp;K[[Byte|B]] (enthält sechzehn 64-K[[Bit]]-RAM-Chips)&lt;br /&gt;
# die Commodore 1764 mit 256&amp;amp;nbsp;KB (enthält acht 256-KBit-RAM-Chips)&lt;br /&gt;
# die Commodore 1750 mit 512&amp;amp;nbsp;KB (enthält sechzehn 256-KBit-RAM-Chips)&lt;br /&gt;
&lt;br /&gt;
Bei den RAM-Chips handelt es sich um sogenannte [[Dynamisches RAM|dynamische RAMs (DRAMs)]], die typischerweise in regelmäßigen Abständen aufgefrischt werden müssen, damit sie ihren Inhalt nicht verlieren. Dies geschieht automatisch vom Computer aus. Schaltet man den Computer aus, gehen auch alle in der REU gespeicherten Daten verloren. Da der externe Speicher nicht direkt vom Computer aus angesprochen werden kann, muss eine Schnittstelle existieren, über die man vom Speicher lesen und in den Speicher schreiben kann. Diese Schnittstelle bildet ein von [[MOS Technologies]] hergestellter [[Direct Memory Access|DMA]]-Chip, der MOS 8726, auch REC genannt (RAM Expansion Controller). Über spezielle Register ($DF00-$DF0A), die in den Hauptspeicher des C64/128 eingeblendet sind und auf die somit vom C64/C128 aus direkt zugegriffen werden kann, teilt man dem REC mit, welchen Bereich des Hauptspeichers er in welchen Bereich der REU (und umgekehrt) zu verschieben hat.&lt;br /&gt;
&lt;br /&gt;
Dank dieses DMA-Chips muss die CPU nicht jedes Byte einzeln von oder zur REU übertragen werden (was bei einem Kopiervorgang mehrere Zyklen zum Lesen, Schreiben und Inkrement/Vergleich der Endadresse benötigt), sondern es brauchen nur zwei Adressen (Quelladresse und Zieladresse) und die Größe des zu übertragenden Bereichs (in Byte) angegeben werden ([[Speicherdirektzugriff]]). Den Rest erledigt der DMA-Chip der REU ganz von alleine: die Anzahl der Taktzyklen für die Operation entspricht (abgesehen von speziellen Buszyklen des [[MOS Technology VIC II|VIC II]], wo der DMA Controller auch warten muss) dem angegebenen Bereich (maximal 64&amp;amp;nbsp;KB) ist somit auch vielfach so schnell wie die Ausführung über CPU. Im Vergleich zum [[Bank Switching|Bank-Switching]]-Verfahren anderer Speichererweiterungen (z.&amp;amp;nbsp;B. [[GeoRAM]]), wo der Speicher sofort nach dem Auswählen über ein Bank-Select-Register zur Verfügung steht, ist das zwar noch immer langsamer, um an Speicherdaten zu kommen – für gewisse Anwendungen (siehe unten) ist das aber kein Nachteil, weil man die Daten ohnehin im Speicher verschoben oder verglichen hätte und dies somit der DMA-Controller übernehmen kann.&lt;br /&gt;
&lt;br /&gt;
Der DMA-Chip beherrscht 4 Funktionen:&lt;br /&gt;
* &amp;#039;&amp;#039;Fetch&amp;#039;&amp;#039;: Daten-Transfer von der REU in den Computer&lt;br /&gt;
* &amp;#039;&amp;#039;Stash&amp;#039;&amp;#039;: Daten-Transfer vom Computer in die REU&lt;br /&gt;
* &amp;#039;&amp;#039;Swap&amp;#039;&amp;#039;: Vertauschung von Speicherinhalten zwischen Computer und REU&lt;br /&gt;
* &amp;#039;&amp;#039;Verify&amp;#039;&amp;#039;: Vergleich von Speicherinhalten zwischen Computer und REU&lt;br /&gt;
&lt;br /&gt;
Der Datentransfer erfolgt mit ca. 1&amp;amp;nbsp;[[Speicherkapazität|MB]] pro Sekunde. Durch Fixieren von Quell- und/oder Zieladresse sind noch weitere Funktionen möglich, u.&amp;amp;nbsp;a. das schnelle Füllen von Speicherbereichen (nützlich für Grafikfunktionen) oder spezielle Grafik-Effekte.&lt;br /&gt;
&lt;br /&gt;
Der MOS 8726 wurde in mindestens zwei Gehäuseformen hergestellt. Es existieren REUs mit MOS 8726 in PLCC- oder DIP64-Bauform.&lt;br /&gt;
&lt;br /&gt;
=== Erhöhung der Speicherkapazität ===&lt;br /&gt;
&lt;br /&gt;
Theoretisch können die REUs auf 16&amp;amp;nbsp;MB RAM aufgerüstet werden, in der Praxis sind, mit einigem Bastelaufwand, 2&amp;amp;nbsp;MB realistisch.&lt;br /&gt;
&lt;br /&gt;
* ... auf 512&amp;amp;nbsp;KB:&lt;br /&gt;
&lt;br /&gt;
Eine 1700- oder 1764-REU lässt sich mit etwas Aufwand auf 512&amp;amp;nbsp;KB aufstocken. Man besitzt dann eine Speichererweiterung, die (anders als bei der unten erwähnten 2-MB-REU) zu 100 % kompatibel zu einer 1750 ist:&lt;br /&gt;
&lt;br /&gt;
Bei der 1764 benötigt man lediglich 8 [[Integrierter Schaltkreis|ICs]] vom Typ &amp;#039;41256&amp;#039;. Diese lötet man in die auf der Platine noch nicht belegten acht Steckplätze ein.&lt;br /&gt;
&lt;br /&gt;
Bei der 1700 benötigt man 16 ICs vom Typ &amp;#039;41256&amp;#039;, durch die man die bereits vorhandenen ICs vom Typ 4164 ersetzt. Zusätzlich muss der Jumper (J1) auf der Rückseite der REU-Platine durchtrennt werden. (Dies ist bei der 1764 nicht notwendig, da dies dort bereits werksmäßig so eingestellt ist.)&lt;br /&gt;
&lt;br /&gt;
* ... auf 2&amp;amp;nbsp;MB:&lt;br /&gt;
&lt;br /&gt;
Mit relativ hohem Bastelaufwand kann man eine REU auch auf 2&amp;amp;nbsp;MB erweitern: Man benötigt dazu eine 1750 mit 512&amp;amp;nbsp;KB oder eine 1700 bzw. 1764, die mit Hilfe obenstehender Anleitung auf 512&amp;amp;nbsp;KB erweitert wurde. Die REU ist dann zwar im 2-MB-Modus nicht mehr hundertprozentig kompatibel zu einer Original-REU, kann aber per Schalter in den Original-1750-Modus (512&amp;amp;nbsp;KB) zurückgesetzt werden, falls Probleme entstehen.&lt;br /&gt;
&lt;br /&gt;
=== Software für die REU ===&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum [[Commodore Basic V2|BASIC V2.0]] des C64 enthält das BASIC V7.0 des C128 bereits einigermaßen komfortable Befehle zum Auslesen bzw. Beschreiben des externen RAM. Es handelt sich hierbei um die Befehle FETCH, STASH und SWAP, die Daten aus der REU holen, in die REU schreiben und Daten zwischen REU und normalem C128-RAM austauschen. Allerdings arbeiten diese Befehle immer noch mit rohen Speicheradressen, eine direkte Nutzung des REU-Speichers etwa für die Ablage von BASIC-Programmen oder -Variablen ist damit nicht ohne weiteres möglich.&lt;br /&gt;
&lt;br /&gt;
Beim C64 müssen stattdessen [[POKE und PEEK|POKE bzw. PEEK]] verwendet oder gleich [[Maschinensprache|Maschinenprogramme]] geschrieben werden, was ungleich aufwändiger und vor allem unkomfortabel ist.&lt;br /&gt;
&lt;br /&gt;
Abgesehen von den im BASIC des C128 schon eingebauten Befehlen gibt es auch Programme, die die besonderen Fähigkeiten der REU nutzen, wie z.&amp;amp;nbsp;B. Disketten-Kopierprogramme (Disketten brauchen dann z.&amp;amp;nbsp;B. nur einmal zum Lesen und einmal zum Schreiben eingelegt werden), [[Assembler (Informatik)|Assembler]] (Programme können ohne Umweg über das Speichern auf einer Diskette sofort getestet werden), eine ganze [[VC1541|1541]]- bzw. [[VC1571|1571]]-Diskette kann im Speicher einer entsprechend großen REU Platz finden usw.&lt;br /&gt;
&lt;br /&gt;
Das Betriebssystem [[GEOS (8-Bit-Betriebssystem)|GEOS]] kann von sich aus eine REU nutzen, ohne dass zusätzliche Software erforderlich wäre. Spätere GEOS-Versionen ermöglichten auch die Verwendung als Disketten-[[Cache]]. Das beim C128 mitgelieferte [[CP/M]]-Betriebssystem verwendet die REU als Ramdisk.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Globe.gif|frame|right|Die Demonstration &amp;quot;Globe&amp;quot; von der Test-/Demodiskette der REU]]&lt;br /&gt;
Außerdem lieferte Commodore mit ihren REUs eine Test/Demodiskette mit. Darauf war das Programm &amp;quot;RAMDOS&amp;quot; enthalten, mit dem die REU von BASIC aus wie ein extrem schnelles Diskettenlaufwerk angesprochen werden kann. Sie enthält daneben Programme, mit denen die REU getestet werden kann. Dazu zählt auch die damals technisch verblüffende &amp;quot;Globe&amp;quot;-Demonstration, die eine große, rotierende Weltkugel auf dem Bildschirm des C64 zeigt. Eine ganze Umdrehung der Weltkugel dauert etwas länger als eine Sekunde. Die Animation besteht aus 36 &amp;quot;hochauflösenden&amp;quot; Grafiken (300×200 Pixel), die zu Beginn der Demonstration einzeln von Diskette geladen und dann in der REU zwischengespeichert werden (zusammen würden sie nicht komplett in den Hauptspeicher des C64 passen). Von dort werden sie mit Hilfe der REU so schnell direkt in den Grafikspeicher des C64 kopiert, dass der Eindruck einer rotierenden Weltkugel entsteht.&lt;br /&gt;
&lt;br /&gt;
Auf der REU-Platine befindet sich eine ungenutzte Einbaustelle für einen [[Festwertspeicher|ROM]]-Chip. Es wird vermutet, dass dort eine Variante des oben erwähnten RAMDOS-Programms direkt eingebaut werden sollte (hypothetisch als &amp;quot;ROMDOS&amp;quot; bezeichnet), so dass kein Einladen von Diskette nötig gewesen wäre. Warum man letztlich davon absah, ist unklar.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Speichererweiterung]]&lt;br /&gt;
* [[GeoRAM]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://cbmmuseum.kuto.de/per_ram.html Speichererweiterungen für die 8-Bit Rechner - Erweiterungen für den Commodore 64], cbmmuseum.kuto.de&lt;br /&gt;
* [http://www.cbmhardware.de/reu/index.php REU 1700, 1764, 1750 und mehr ...], cbmhardware.de&lt;br /&gt;
* {{Webarchiv | url=http://www.hut.fi/Misc/cbm/docs/reu.programming.html | wayback=20050211102810| text=REU Programming (englisch)}}&lt;br /&gt;
* {{Webarchiv | url=http://project64.ath.cx/hw/1700re10.txt | wayback=20160519141441| text=Bedienungsanleitung für die Commodore 1700/1750 (englisch)}}&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Commodore}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Ram Expansion Unit}}&lt;br /&gt;
[[Kategorie:Speichermodul]]&lt;br /&gt;
[[Kategorie:Commodore-Hardware]]&lt;/div&gt;</summary>
		<author><name>imported&gt;APPERbot</name></author>
	</entry>
</feed>