1541 RAM-Disk: Unterschied zwischen den Versionen

Aus
Wechseln zu: Navigation, Suche
(Hardware)
(Hardware)
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
+
__TOC__
====== 1541 RAM-Disk ======
+
<br />
 +
== RAM-Disk Erweiterung für das 1541 Diskettenlaufwerk  ==
  
 
Ein Grundproblem des 1541 Floppy Laufwerk ist der Mangel an RAM (Arbeitsspeicher). Das Gerät hat vom Werk her nur 2KB, weil RAM zu dieser Zeit sehr teuer war.  
 
Ein Grundproblem des 1541 Floppy Laufwerk ist der Mangel an RAM (Arbeitsspeicher). Das Gerät hat vom Werk her nur 2KB, weil RAM zu dieser Zeit sehr teuer war.  
  
Einige Floppy Speeder haben das Problem erkannt und 8KB RAM augferüstet ([[Dolphin DOS]], [[Professional DOS]], [[Prologic DOS]] ...). Damit konnte man eine ganze Spur einer Diskette im RAM zwischenspeichern und damit das Interleave Problem ausschalten.
+
Einige [[Retro Hardware (CBM)|Floppy Speeder]] haben das Problem erkannt und 8KB RAM augferüstet ([[Dolphin-DOS]], [[Professional-DOS]], [[Prologic-DOS]] ...). Damit konnte man eine ganze Spur einer Diskette im RAM zwischenspeichern und damit das Interleave Problem ausschalten.
  
 
Das Ziel wäre, so viel RAM in der Floppy zu haben, daß man eine ganze Diskette im RAM zwischenspeichern kann. Wenn eine Diskette erst mal eingelesen ist, erfolgen alle weiteren Lesezugriffe des C64 direkt aus dem RAM. Der Motor des Laufwerk muss nur noch anlaufen, wenn ein Schreibzugriff erfolgt.  
 
Das Ziel wäre, so viel RAM in der Floppy zu haben, daß man eine ganze Diskette im RAM zwischenspeichern kann. Wenn eine Diskette erst mal eingelesen ist, erfolgen alle weiteren Lesezugriffe des C64 direkt aus dem RAM. Der Motor des Laufwerk muss nur noch anlaufen, wenn ein Schreibzugriff erfolgt.  
  
Die Idee zu dieser Hardware ist nicht neu. Es exisitiert diese Hardware bereits in Form des wenig erfolgreichen [[TurboTrans+]] (Nachfolger des [[TurboAccess]]).
+
Die Idee zu dieser Hardware ist nicht neu. Es exisitiert diese Hardware bereits in Form des wenig erfolgreichen [[TurboTrans|TurboTrans+]] (Nachfolger des [[TurboAccess]]).
  
===== Hardware =====
+
=== Hardware ===
  
Als Hardware verwende ich eine modifizierte **[[fe3|Final Expansion 3]]**. Ein Flachbandkabel verbindet das FE3 mit der Platine der 1541 Floppy. Der interne ROM der Floppy (DOS) wird entfernt, der 2KB Arbeitsspeicher bleibt erhalten. Damit stehen dem Floppy Prozessor nun 514KB RAM und 512KB Flash zur Verfügung.
+
Als Hardware verwende ich eine modifizierte [[Final Expansion 3]]. Ein Flachbandkabel verbindet das FE3 mit der Platine der 1541 Floppy. Der interne ROM der Floppy (DOS) wird entfernt, der 2KB Arbeitsspeicher bleibt erhalten. Damit stehen dem Floppy Prozessor nun 514KB RAM und 512KB Flash zur Verfügung.
  
 
Das CPLD Design ist speziell angepasst. An der Adresse 8xxx (RAM Bank 0 bis 63) und Axxx (RAM Bank 0, optionaler Schreibschutz) der Floppy kann man RAM Speicher der FE3 einblenden (zweimal 8KB). Das ROM der Floppy wird durch den Flash Speicher (Flash Bank 0 bis 31) der FE3 ersetzt.
 
Das CPLD Design ist speziell angepasst. An der Adresse 8xxx (RAM Bank 0 bis 63) und Axxx (RAM Bank 0, optionaler Schreibschutz) der Floppy kann man RAM Speicher der FE3 einblenden (zweimal 8KB). Das ROM der Floppy wird durch den Flash Speicher (Flash Bank 0 bis 31) der FE3 ersetzt.
Zeile 20: Zeile 21:
 
Das SD2IEC im FE3 ist am IEC Bus angeschlossen und auf Gerät #9 gestellt. Diese 1541 Floppy hat also eine Diskette (bzw. eine RAM Disk) als Gerät #8 und eine SD Karte als Gerät #9.  
 
Das SD2IEC im FE3 ist am IEC Bus angeschlossen und auf Gerät #9 gestellt. Diese 1541 Floppy hat also eine Diskette (bzw. eine RAM Disk) als Gerät #8 und eine SD Karte als Gerät #9.  
  
<gallery>
+
<gallery mode="packed-hover">
Image:1541-ramdisk-v1-2.png|thumb|200px|Speicherbelegung
+
Image:1541-ramdisk-v1-2.png|caption|Speicherbelegung|link={{filepath:1541-ramdisk-v1-2.png}}
Image:1541-ramdisk-v1-4.png|thumb|200px|CPLD Pinbelegung
+
File:1541-ramdisk-v1-4.png|border|CPLD Pinbelegung|link={{filepath:1541-ramdisk-v1-4.png}}
Image:1541-ramdisk-v1-5.png|thumb|200px|Schematic
+
Image:1541-ramdisk-v1-5.png|thumb|Schematic|link={{filepath:1541-ramdisk-v1-5.png}}
 
</gallery>
 
</gallery>
  
 
Es wäre großartig, den CPLD so anzupassen, daß die TurboTrans+ Firmware direkt laufen würde. Leider ist nirgendwo die Hardware des TurboTrans+ dokumentiert. Mir ist es auch noch nicht gelungen, ein  TurboTrans+ auszuleihen oder käuflich zu erwerben.
 
Es wäre großartig, den CPLD so anzupassen, daß die TurboTrans+ Firmware direkt laufen würde. Leider ist nirgendwo die Hardware des TurboTrans+ dokumentiert. Mir ist es auch noch nicht gelungen, ein  TurboTrans+ auszuleihen oder käuflich zu erwerben.
  
===== Software =====
+
=== Software ===
  
 
Das DOS der 1541 ist nur geringfügig modifiziert worden. Zudem kann man durch Umschalten der Flashbank auf ein originales DOS umschalten (Kompatibilitätsmodus).
 
Das DOS der 1541 ist nur geringfügig modifiziert worden. Zudem kann man durch Umschalten der Flashbank auf ein originales DOS umschalten (Kompatibilitätsmodus).
Zeile 40: Zeile 41:
 
Die **Eingabeschleife** sucht normalerweise nach Aufträgen im Eingabebuffer. Wenn kein Auftrag ansteht (**Lazytime**), dann werden anstehende interne Aufgaben ausgeführt:  
 
Die **Eingabeschleife** sucht normalerweise nach Aufträgen im Eingabebuffer. Wenn kein Auftrag ansteht (**Lazytime**), dann werden anstehende interne Aufgaben ausgeführt:  
  
  * Spuren die als "verändert" markiert sind, werden auf die Diskette zurückgeschrieben.
+
* nur Spuren die als "verändert" markiert sind, werden auf die Diskette zurückgeschrieben.
  
\\
 
 
Die Modifikationen im DOS sind beschränkt auf ein paar JMP Befehle. Daher kann man sehr einfach beliebiege DOS Versionen patchen. Getestet ist das mit originalem DOS und einem standard 40 Spur Speed-DOS.
 
Die Modifikationen im DOS sind beschränkt auf ein paar JMP Befehle. Daher kann man sehr einfach beliebiege DOS Versionen patchen. Getestet ist das mit originalem DOS und einem standard 40 Spur Speed-DOS.
  
 +
=== Umbauanleitung ===
  
===== Umbauanleitung =====
+
<u>Bei meiner 1541 waren folgende Schritte nötig</u>:
 
 
Bei meiner 1541 waren folgende Schritte nötig:
 
 
 
  * Das Flash der FE3 muss programmiert werden. Entweder am VC-20 oder in einem Programmer am PC.
 
 
 
  * FE3 mechanisch montieren, sodass das Flachbandkabel möglichst kurz bleiben kann.
 
  
  * Am VC-20 Connector wird ein Flachband Kabel angelötet (alternativ kann ein VC-20 Expansion Connector verwendet werden)
+
* Das Flash der FE3 muss programmiert werden. Entweder am VC-20 oder in einem Programmer am PC.
  
  * Das Flachband Kabel wird an der 1541 Platine angelötet. Fast alle Drähte können an der CPU (UC-4) angelötet werden. Der Draht für die IO Adressierung muss an Pin 6 des Adressdekoder 74LS42 (UC-8) der 1541 gelötet werden.
+
* FE3 mechanisch montieren, sodass das Flachbandkabel möglichst kurz bleiben kann.
  
  * Das ROM der 1541 muss entfernt werden. Wenn es eingelötet ist, dann kann man den CS Pin abschneiden.
+
* Am VC-20 Connector wird ein Flachband Kabel angelötet (alternativ kann ein VC-20 Expansion Connector verwendet werden)
  
  * Wenn man das SD2IEC nutzen möchte, dann muss das IEC Kabel angeschlossen werden.
+
* Das Flachband Kabel wird an der 1541 Platine angelötet. Fast alle Drähte können an der CPU (UC-4) angelötet werden. Der Draht für die IO Adressierung muss an Pin 6 des Adressdekoder 74LS42 (UC-8) der 1541 gelötet werden.
  
 +
* Das ROM der 1541 muss entfernt werden. Wenn es eingelötet ist, dann kann man den CS Pin abschneiden.
  
===== Todo's =====
+
* Wenn man das SD2IEC nutzen möchte, dann muss das IEC Kabel angeschlossen werden.
  
Folgende Verbesserungen sind geplant:
+
=== Todo's ===
  
  * Momentan liegen die GCR kodierten Daten im RAM Buffer. Die Floppy sollte in Leerlaufzeiten die GCR Dekodierung vorab machen, um den Zugriff weiter zu beschleunigen.
+
<u>Folgende Verbesserungen sind geplant</u>:
  
  * Das Lesen von Spurdaten in das RAM wärend der Lazytime und nicht erst bei Bedarf.
+
* Momentan liegen die GCR kodierten Daten im RAM Buffer. Die Floppy sollte in Leerlaufzeiten die GCR Dekodierung vorab machen, um den Zugriff weiter zu beschleunigen.
  
  * Eine einstellbare Verzögerungszeit für das Schreiben von Spurdaten auf die Diskette.
+
* Das Lesen von Spurdaten in das RAM wärend der Lazytime und nicht erst bei Bedarf.
  
  * Software Befehle an die Speeder Hardware: umschalten auf original DOS,
+
* Eine einstellbare Verzögerungszeit für das Schreiben von Spurdaten auf die Diskette.
  
  * Hardware TurboTrans kompatibel machen. Man könnte dann TurboTrans+ direkt auf der Hardware ausführen.
+
* Software Befehle an die Speeder Hardware: umschalten auf original DOS
  
 +
* Hardware TurboTrans kompatibel machen. Man könnte dann TurboTrans+ direkt auf der Hardware ausführen.
  
===== News =====
+
=== News ===
  
  
  * 27.06.2010: Die Firmware schmiert ab und zu ab. Das Problem ist ein Speicherkonflikt. Der RAM und das IO spiegeln sich im unteren 32K Segment, Commodore hat die Adresse nicht sauber dekodiert. Abhilfe schafft die Verlegung des erweiterten RAM in Block 4 und 5.
+
* 27.06.2010: Die Firmware schmiert ab und zu ab. Das Problem ist ein Speicherkonflikt. Der RAM und das IO spiegeln sich im unteren 32K Segment, Commodore hat die Adresse nicht sauber dekodiert. Abhilfe schafft die Verlegung des erweiterten RAM in Block 4 und 5.
  * 06.06.2010: Erste Version der 1541 RAM-Disk
+
* 06.06.2010: Erste Version der 1541 RAM-Disk
  
===== WEB Links =====
+
=== WEB Links ===
  
  * [[http://ist.uwaterloo.ca/~schepers/MJK/tt.html|Turbo Trans bei waterloo.ca]]
+
* [http://ist.uwaterloo.ca/~schepers/MJK/tt.html Turbo Trans bei waterloo.ca]
  
  * [[c64wiki>Turbo_Trans|Turbo Trans in der C64 Wiki]]
+
* [[wiki64:Turbo_Trans|Turbo-Trans in der C64 Wiki]]
  
  * [[http://www.cbmhardware.de/misc/ttrans.php?Lang=D|Turbo Trans bei CBM Hardware]]
+
* [http://www.cbmhardware.de/misc/ttrans.php?Lang=D Turbo Trans bei CBM Hardware]

Version vom 22. August 2019, 07:56 Uhr


RAM-Disk Erweiterung für das 1541 Diskettenlaufwerk

Ein Grundproblem des 1541 Floppy Laufwerk ist der Mangel an RAM (Arbeitsspeicher). Das Gerät hat vom Werk her nur 2KB, weil RAM zu dieser Zeit sehr teuer war.

Einige Floppy Speeder haben das Problem erkannt und 8KB RAM augferüstet (Dolphin-DOS, Professional-DOS, Prologic-DOS ...). Damit konnte man eine ganze Spur einer Diskette im RAM zwischenspeichern und damit das Interleave Problem ausschalten.

Das Ziel wäre, so viel RAM in der Floppy zu haben, daß man eine ganze Diskette im RAM zwischenspeichern kann. Wenn eine Diskette erst mal eingelesen ist, erfolgen alle weiteren Lesezugriffe des C64 direkt aus dem RAM. Der Motor des Laufwerk muss nur noch anlaufen, wenn ein Schreibzugriff erfolgt.

Die Idee zu dieser Hardware ist nicht neu. Es exisitiert diese Hardware bereits in Form des wenig erfolgreichen TurboTrans+ (Nachfolger des TurboAccess).

Hardware

Als Hardware verwende ich eine modifizierte Final Expansion 3. Ein Flachbandkabel verbindet das FE3 mit der Platine der 1541 Floppy. Der interne ROM der Floppy (DOS) wird entfernt, der 2KB Arbeitsspeicher bleibt erhalten. Damit stehen dem Floppy Prozessor nun 514KB RAM und 512KB Flash zur Verfügung.

Das CPLD Design ist speziell angepasst. An der Adresse 8xxx (RAM Bank 0 bis 63) und Axxx (RAM Bank 0, optionaler Schreibschutz) der Floppy kann man RAM Speicher der FE3 einblenden (zweimal 8KB). Das ROM der Floppy wird durch den Flash Speicher (Flash Bank 0 bis 31) der FE3 ersetzt.

Das Banking kann per Software eingestellt werden. Dazu stellt der CPLD 3 Register zur Verfügung, die im IO Bereich ab Adresse 1400 eingeblendet werden.

Das SD2IEC im FE3 ist am IEC Bus angeschlossen und auf Gerät #9 gestellt. Diese 1541 Floppy hat also eine Diskette (bzw. eine RAM Disk) als Gerät #8 und eine SD Karte als Gerät #9.

Es wäre großartig, den CPLD so anzupassen, daß die TurboTrans+ Firmware direkt laufen würde. Leider ist nirgendwo die Hardware des TurboTrans+ dokumentiert. Mir ist es auch noch nicht gelungen, ein TurboTrans+ auszuleihen oder käuflich zu erwerben.

Software

Das DOS der 1541 ist nur geringfügig modifiziert worden. Zudem kann man durch Umschalten der Flashbank auf ein originales DOS umschalten (Kompatibilitätsmodus).

Die Modifikationen des DOS sind **JMP** Befehle an bestimmten Stellen im originalen Code des Disk Controllers (Sektor lesen/schreiben, Eingabeschleife). Die Ersatz Routinen übernehmen die Funktion der originalen Routine.

Die **Leseroutine** überträgt den gewünschten Block direkt aus dem RAM Speicher (wenn vorhanden). Wurde der Block noch nicht gelesen, dann kommt eine Routine zum Einsatz die eine ganze Spur in einer Umdrehung (200ms) in das RAM einliest.

Die **Schreibroutine** überträgt den Block direkt ins RAM. Dabei wird die betroffene Spur als "verändert" markiert.

Die **Eingabeschleife** sucht normalerweise nach Aufträgen im Eingabebuffer. Wenn kein Auftrag ansteht (**Lazytime**), dann werden anstehende interne Aufgaben ausgeführt:

* nur Spuren die als "verändert" markiert sind, werden auf die Diskette zurückgeschrieben.

Die Modifikationen im DOS sind beschränkt auf ein paar JMP Befehle. Daher kann man sehr einfach beliebiege DOS Versionen patchen. Getestet ist das mit originalem DOS und einem standard 40 Spur Speed-DOS.

Umbauanleitung

Bei meiner 1541 waren folgende Schritte nötig:

  • Das Flash der FE3 muss programmiert werden. Entweder am VC-20 oder in einem Programmer am PC.
  • FE3 mechanisch montieren, sodass das Flachbandkabel möglichst kurz bleiben kann.
  • Am VC-20 Connector wird ein Flachband Kabel angelötet (alternativ kann ein VC-20 Expansion Connector verwendet werden)
  • Das Flachband Kabel wird an der 1541 Platine angelötet. Fast alle Drähte können an der CPU (UC-4) angelötet werden. Der Draht für die IO Adressierung muss an Pin 6 des Adressdekoder 74LS42 (UC-8) der 1541 gelötet werden.
  • Das ROM der 1541 muss entfernt werden. Wenn es eingelötet ist, dann kann man den CS Pin abschneiden.
  • Wenn man das SD2IEC nutzen möchte, dann muss das IEC Kabel angeschlossen werden.

Todo's

Folgende Verbesserungen sind geplant:

  • Momentan liegen die GCR kodierten Daten im RAM Buffer. Die Floppy sollte in Leerlaufzeiten die GCR Dekodierung vorab machen, um den Zugriff weiter zu beschleunigen.
  • Das Lesen von Spurdaten in das RAM wärend der Lazytime und nicht erst bei Bedarf.
  • Eine einstellbare Verzögerungszeit für das Schreiben von Spurdaten auf die Diskette.
  • Software Befehle an die Speeder Hardware: umschalten auf original DOS
  • Hardware TurboTrans kompatibel machen. Man könnte dann TurboTrans+ direkt auf der Hardware ausführen.

News

  • 27.06.2010: Die Firmware schmiert ab und zu ab. Das Problem ist ein Speicherkonflikt. Der RAM und das IO spiegeln sich im unteren 32K Segment, Commodore hat die Adresse nicht sauber dekodiert. Abhilfe schafft die Verlegung des erweiterten RAM in Block 4 und 5.
  • 06.06.2010: Erste Version der 1541 RAM-Disk

WEB Links