Schnelllader

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Ein Schnelllader, auch Turbolader, Turboloader, Floppyspeeder oder Fastloader genannt, beschleunigt das Laden von Programmen.

Grundlagen[Bearbeiten | Quelltext bearbeiten]

Schnelllader gibt es für die Datasette und das Diskettenlaufwerk, wobei mit einfachen Schnellladern auf Softwarebasis bereits das 5- bis 15-fache der normalen Ladegeschwindigkeit (bei der Floppy normalerweise 300-500 Bytes pro Sekunde) erreicht wird.

Für Diskettenlaufwerke gibt es auch hardwareseitige Schnelllader. Diese bestehen aus einem Steckmodul für den Expansionsport des Computers oder einem neuen KERNAL (ROM-Chip) für Computer und Floppy und/oder einem Parallelkabel, das eine schnelle Verbindung zwischen Floppy und Userport darstellt. Zusätzliches RAM in der Floppy kann noch zu einer weiteren Beschleunigung bei nahezu allen Diskettenoperationen verhelfen.
Ein einfacher serieller Schnelllader erzielt bereits 5- bis 10-fache Originalgeschwindigkeit, die besten seriellen Schnelllader für die 1541 etwa die 15-fache, parallele Schnelllader für die 1541 bis zu etwa 40-fache. Die theoretische Maximalgeschwindigkeit wird maßgeblich von der Rechenleistung der 1541 begrenzt; der serielle Bus an sich schafft theoretisch bis etwa 20 kByte/Sekunde (50-fach), eine paralleler Bus entsprechend mehr.[1]

Nicht alle Programme vertragen sich mit Schnellladern. Insbesondere Programme, die weitere Komponenten nachladen, dabei zwischenzeitlich bereits aktiv werden oder einen eigenen Software-Schnelllader beinhalten und nochmals über einen Hardware-Schnelllader eingelesen werden, funktionieren entweder nicht richtig oder gar nicht. Änderungen in den ROMs oder auch sonstigen nützlichen Erweiterungen (etwa für BASIC oder den Bildschirmeditor), die bei Schnellladern des öfteren integriert sind, führen ebenso manchmal zu Problemen, da Einsprungstellen in den KERNAL oder Teile davon geändert sind. Daher bieten diese Lösungen oftmals die Möglichkeit, die Schnellladefunktion oder etwaige Erweiterungen teilweise oder völlig außer Betrieb zu nehmen.

Durch die erhöhte Lesegeschwindigkeit kann es auch zu einer höheren Anzahl von Lesefehlern kommen, so erklären sich z.B. Grafikfehler in Computerspielen, die über Schnelllader geladen worden sind. Das Risiko ist entsprechend höher, wenn mit höheren Datenraten übertragen wird und dabei kein sicheres Handshake-Verfahren zum Einsatz kommt, sondern ein fixer, eventuell mit wenig Toleranzen versehener Zeitraster die Übertragung steuert. Im Zusammenhang mit Einflüssen des VIC-II-Chips auf das generelle Timing im C64 und besonders der CPU, sofern diese nicht besonders berücksichtigt sind, können auch daraus unerwünschte Effekt entstehen. Nicht zu vernachlässigen ist auch rein aus Hardwaresicht eine fehlende Schirmung, die Ausführung der Änderung, die Kabellänge des Parallelkabels, aber auch sonstige elektromagnetische Einflüsse darauf.

Einige Steckmodule wie die Final Cartridge 3 besitzen auch eine Beschleunigung für das Speichern. Bei einigen Schnellladern (z.B. JiffyDOS) ist das Laden von Dateien, die mit dem "eigenen" SAVE gespeichert wurden, aufgrund angepassten Interleaves schneller als das Laden von Dateien, die mit normalem SAVE gespeichert wurden.

Technischer Hintergrund[Bearbeiten | Quelltext bearbeiten]

Die seriellen Originalroutinen des C64 bzw. der 1541 sind nicht sonderlich schnell, u.a. wird die Datenflusskontrolle per Software bearbeitet (ursprünglich sollte dafür das Hardware-Shiftregister der VIA 6522 in der 1541 genommen werden, wegen eines Hardwarefehlers wurde das jedoch kurzfristig geändert) und pro Schritt nur ein Bit übertragen. Für Schnelllader bieten sich mehrere Optimierungen an:

  • Es kann in größeren Abständen ein Handshake gemacht und ansonsten rein timing-basiert übertragen werden (z.B. benutzen der C64 und die 1541 beinahe exakt die gleiche Taktfrequenz und laufen dadurch auf Maschinensprachebefehlsebene fast synchron). Dadurch können auch Daten auf der CLK-Leitung übertragen werden, also zwei Bit pro Übertragungsschritt; außerdem kann die Geschwindigkeit der Übertragungsschritte deutlich erhöht werden. Praktisch alle Software-Schnelllader benutzen diese Technik.
  • Die Signalisierung über die ATN-Leitung kann beschleunigt werden. Da andere Geräte am seriellen Bus (Drucker, nicht beschleunigte Floppys) dabei stören, wird das in der Praxis jedoch selten gemacht. DreamLoad Sprache:englisch benutzt diese Technik.
  • Statt serieller Übertragung kann ein paralleles Kabel benutzt werden.
  • Die Geschwindigkeit des Schrittmotors, mit dem der Lesekopf der Floppy von Track zu Track bewegt wird, kann erhöht werden. Allerdings bringt das nicht viel, und viele Laufwerksmechaniken haben damit Probleme.
  • Die GCR-Dekodierung kann beschleunigt werden.
    • Es kann auch eine andere Kodierung gewählt, also ein spezielles Diskettenformat benutzt werden. Z.B. Heureka-Sprint und Transwarp benutzen eigene Kodierungen, die on the fly dekodiert werden können, allerdings weniger speicherplatzeffizient sind - gewissermaßen ist in das Diskettenformat die Zeit, die die Floppy zum Übertragen der Daten braucht, eingerechnet - siehe auch nächster Punkt.
    • Z.B. das Action Replay 6 führt die GCR-Dekodierung in zwei Teilschritten aus, wobei der erste Teilschritt nach dem Lesen eines Bytes ausgeführt wird. Auf diese Weise wird die Wartezeit der Floppy-CPU auf das nächste Byte effizient genutzt.
  • Statt darauf zu warten, dass der angeforderte Sektor der Diskette vom Lesekopf überstrichen wird, könnte die komplette Spur in einer Umdrehung eingelesen werden. Das hätte auch den Vorteil, dass das Interleave, mit dem die Dateien auf Diskette gespeichert wurden, die Lesegeschwindigkeit nicht mehr beeinflusst. Allerdings besitzt die Floppy weder genug RAM zum Zwischenspeichern eines kompletten Tracks, noch ist die serielle Schnittstelle selbst mit Beschleunigung schnell genug, die Daten so schnell, wie sie vom Lesekopf kommen, zum C64 zu übertragen. Es gibt mehrere Lösungsmöglichkeiten:
    • Es wird der Track nicht in einer Umdrehung, sondern in zwei oder mehr Umdrehungen jeweils teilweise eingelesen und zum Computer übertragen. Die Software/Cartridge-Schnelllader, die mehr als 10fache Originalgeschwindigkeit schaffen (u.a. das Action Replay 6, das Final Cartridge 3 und das Modul "Magic Formel"), benutzen typischerweise diese Technik.
    • Der Schnelllader bringt eine RAM-Erweiterung für das Laufwerk und/oder entsprechend schnelle Übertragungsmöglichkeiten (Parallelkabel) zum Computer mit (z.B. Dolphin DOS).
  • Der gesamte Disketteninhalt kann in RAM vorgehalten werden (Turbo Trans).

Die Hardware-Schnelllader, bei denen die KERNALs im Computer und der Floppy ausgetauscht werden, haben den Vorteil, dass sie im Gegensatz zu Cartridges und Software-Schnellladern nicht nur das normale LOAD beschleunigen können, sondern auch z.B. die CHRIN/ACPTR-Kernalroutine. Für Anwendungen, bei denen nur eine große Datei geladen wird ("Onefiler") ist das nicht von Belang; die meisten Anwendungen und Spiele, die nachladen, benutzen dazu jedoch nicht die LOAD-Routine (die ein PRG in den Speicher lädt), sondern CHRIN/ACPTR (womit die Bytes aus PRGs einzeln geholt werden und somit z.B. während des Ladens direkt entpackt werden kann) - oder ganz eigene Routinen, die direkt auf die Leitungen der seriellen Schnittstelle ($DD00 in CIA2) zugreifen. In letzterem Fall kann ein separater Hardware-Schnelllader nicht eingreifen.

Anwendungen, die nur Kernalroutinen benutzen, erkennt man daran, dass sie in VICE ohne "exakte Floppy-Emulation" laufen.

Übersicht Schnelllader[Bearbeiten | Quelltext bearbeiten]

Im englischen C64-Wiki findet sich eine umfangreichere Übersicht Sprache:englisch.

Übersicht Hardware-Schnelllader[Bearbeiten | Quelltext bearbeiten]

Die Hardware-Schnelllader werden auf Platinen oder Chips geliefert und müssen im Heimcomputer und im Diskettenlaufwerk eingebaut werden.

Die Geschwindigkeitsfaktoren beziehen sich auf LOAD mit C64 und 1541 (Original ca. 400 Bytes/Sekunde). Mit anderer Hardware (HDD statt Floppy...) können die Werte stark abweichen.

Name System (F)loppy
(D)atasette
Faktor Bemerkung
DELA DOS C64 F 8
Dolphin DOS C64,C128 F 26 Parallel, Versionen 2.x für C64 und 3.x für C128, Dolphin DOS, Dolphin DOS 2.0
Dynamic DOS C64 F ?
FLOAD C64 F 3-4
FSD System C64,C128 F ?
EXOS / V-DOS C64 F 14 auch als Steckmodul- und Softwareversion verfügbar [1]
Hypra-Load C64 F 5
JiffyDOS C64 F 6-10 ROM-Austausch, 10fach nur bei mit Jiffy gespeicherten Dateien, in Software: SJLOAD
Mach 71 C128 F laut Werbeanzeige bis zu 35
Pro Speed 71 C128 F laut Werbeanzeige bis zu 35
P3/128 C128 F ?
RAM DOS Professional C64 F ?
Professional-DOS C64,C128 F 23-33 Parallel, Professional DOS , Professional DOS Handbuch ,Quelle
RapiDOS C64,C128 F 28-35 Parallel, RapiDOS
Prologic DOS Classic C64 F 65
Ross-Drive C64 F ?
Speed-DOS C64 F 8 SpeedDOS-Anleitung als Text bei iDOC=
Tornado DOS C64 F ? Modifiziertes EXOS 3
Turbo Access C64 F 10
Turbo Trans C64 F ? es gibt hier Versionen mit einer RAM-Erweiterung
Ultra-Load C64 F 7-9

Übersicht Steckmodul-Schnelllader[Bearbeiten | Quelltext bearbeiten]

Einige Schnelllader erschienen auch als Steckmodul für den Expansionsport.

Name System (F)loppy
(D)atasette
Faktor Bemerkung
Action Cartridge+ 6 C64 F / D 15/10 Multifunktionsmodul, auch schnelles Speichern
Action Replay 6 C64 F / D 15/7 Multifunktionsmodul, auch schnelles Speichern
DELA DOS C64 F ? Nur Schnelllader
Disk-Booster 64 C64 F ? Nur Schnelllader
Epyx FastLoad C64 F 5
WP-W11.png Wikipedia: Epyx FastLoad Sprache:english
Exbasic Level II C64 D 5 eigentlich eine BASIC-Erweiterung
Final Cartridge 2 C64 F / D 6 / ? Multifunktionsmodul
Final Cartridge 3 C64 F / D 10 / 10 Multifunktionsmodul, auch schnelles Speichern
Hase 64 C64 D ? Print-Technik
Hurikan C64 F 5 Print-Technik
Hypra-Disk-Modul C64 F ? Schnelllader/-speicherer; REX Datentechnik 9503
Hypra-Disk-Modul II C64 F 6 Schnelllader; REX Datentechnik 9515
Mach 5/128 C64/128 F Schnelllader
Magic Formel C64 F 16 / 15 Multifunktionsmodul, auch schnelles speichern
Nordic Power C64 F / D 15 / 10 Multifunktionsmodul, auch schnelles speichern
Profi-DOS C64 F 7 Schnelllader/-speicherer; REX Datentechnik 9645
Retro Replay C64 F ? Multifunktionsmodul
Super Snapshot C64 F 5,5 Multifunktionsmodul

Bedienung Steckmodul-Schnelllader[Bearbeiten | Quelltext bearbeiten]

Für den Betrieb der Datasette mit TurboTape:

  • Action Cartridge+ 6: Turbotape ein-/ausschalten mit dem Befehl @1. Kompatibel mit Turbotape V3 und Turbotape 64
  • Action Replay 6: Turbotape ein-/ausschalten mit @1. Eigenes Format - nicht kompatibel mit Standardformaten. Farbstreifen am Bildschirm beim Laden und Speichern.
  • Final Cartridge 3: LOAD"",7 um mit Turbotape zu laden. Kompatibel mit Standardformaten.
  • Nordic Power 2.1: Turbotape ist standardmäßig aktiviert. Ein- bzw. Ausschalten mit TT+ bzw. TT-.

Anmerkung: Standardmäßig überträgt die Datasette mit ca. 300 bps. Das Action Replay überträgt mit ca. 2200 Bit pro Sekunde. Die anderen hier erwähnten Steckmodule mit ca. 3700 bps.

Übersicht Software-Schnelllader[Bearbeiten | Quelltext bearbeiten]

Ein Software-Schnelllader ist ein kurzes Programm und wird zuerst geladen und gestartet, danach das eigentliche Programm, das sinnvollerweise deutlich größer sein sollte als der Schnelllader.

Name System (F)loppy
(D)atasette
Faktor Bemerkung
Accelerator C64 F ? Magic Disk 64, Ausgabe 12/1988
Fast Disk C64 F ? Magic Disk 64, Ausgabe 05/1988
FLOAD C64 F ? Magic Disk 64, Ausgabe 02/1989
Turbo Tape VC-20, C64,
C16/116, Plus/4
D 8
WP-W11.png Wikipedia: Turbo Tape
Turbo Tape (Compute) VC-20, C64 D 8-10
(abh. von Daten)
Compute! Magazine Issue 56, January 1985, Vol. 7, No. 1 und Issue 57, February 1985[2]
Speed 1581[3] C64 F 16 Nur für Floppy 1581 & PAL, 64'er Ausgabe 6/89
ZAP 1581 C64 F 16 Nur für 1581
Gigaload C64 F ?
Heureka-Sprint C64 F 25 64'er Ausgabe 3/87, Listing des Monats, eigenes Diskettenformat
Hypratape 64 C64 D ?
Hypra-Load[4] C64 F 6 Nur für 1541 mit C64, in 64'er-Disk S8506C
Bis auf Einschaltmeldung identisch: Mr. Byte [5][6]
ISEPIC C64 F 10 Nur für 1541 mit C64
Cyber Loader C64 F 16 Nur für 1541 mit C64
Speedload C64 F 13 Nur für 1541 mit C64
Most-Access C64 F ? Nur für 1541
Ultraload Plus[7] C64 F 6/8 Happy Computer 01/1986, 64'er 05/1997
SuperTape D2[8] C64 D 10/20 Mögliche Geschwindigkeiten: 3600/7200 Baud
  • INPUT 64 Ausgabe 02/1985 (D) und 04/1985 (D2)
  • c't Ausgabe 04/1985 (nur Basisfunktionen LOAD/SAVE)
SuperDisk C64 F ? INPUT 64, Ausgabe 01/1987
MultiTape I C64 D ? INPUT 64, Ausgabe 05/1986
MultiTape 2 C64 D ? INPUT 64, Ausgabe 08/1986
Track1b[9] C64 F 19 Veröffentlicht von Mafiosino im Forum64
SJLOAD C64 F 6-10 Funktioniert nur mit JiffyDOS-Laufwerken
Transwarp C64 F 50 Nur für 1541/70/71 auf einem C64, eigenes Diskettenformat
JET-LOAD C64 D ? Schnelllader von U.S. Gold für Spiele auf Datasetten
Vorpal C64 F ? Schnelllader von Epyx für Software[10]

Geschwindigkeitstest Software-Schnelllader[Bearbeiten | Quelltext bearbeiten]

Getestet wurde folgendermaßen: Eine Diskette wurde mit einer Floppy 1541-II formatiert, eine andere mit der DEC Golden Image Floppy. Auf beide Disketten wurden mit der jeweils entsprechenden Floppy die Schnelllader und ein "Testprogramm" gespeichert. Das Testprogramm war das "Synth Sample II" Demo, da es genau 100 Blöcke auf einer Diskette verbraucht.

Nun wurde das Testprogramm jeweils 4-mal mit den verschiedenen Schnellladern geladen, dabei die Zeit vom "Return"-Drücken bis zum "Loading Ready." gemessen, die langsamste Zeit gestrichen und vom Rest der Durchschnittswert errechnet wurde. Auch wurde das Testprogramm zwecks Kontrolle stets gestartet. Diese Tests erfolgten natürlich für jede Floppy (als Device 8) separat mit der ihr entsprechenden Diskette.


Folgende Software-Schnelllader wurden getestet:

  • SWAT
  • AC (Accelerator) von Harry Oberberg
  • Superload
  • Hypra-Load (1) von Tribar ´84
  • Hypra-Load 3
  • Fastload V1.1 von T. Tempelmann
  • Fload von Magic Disk 64
  • Action Replay Loader V3
  • Gigaload (Hyp-51200)


Floppy ohne Schnelllader SWAT Accelerator Superload Hypra-Load Hypra-Load 3 Fastload Fload Act. Replay Loader V3 Gigaload
1541-II 1m04s77 0m12s63 "File not found"-Fehler (x) 0m13s55 0m13s88 0m13s19 0m21s74 (x) "Load Error" (x) 0m17s75 "Load Error" (x)
DEC 1m03s73 0m13s53 0m06s10 0m13s48 0m13s84 0m13s74 0m13s61 0m05s33 (x) 0m12s93 0m06s12
Platzverbrauch des Loaders - 6 Blöcke 9 Blöcke 3 Blöcke 6 Blöcke 4 Blöcke 5 Blöcke 14 Blöcke 6 Blöcke 9 Blöcke


Anmerkungen:

  • Bei den mit "x" markierten Feldern trat ein Fehler auf. Entweder wurde das zu ladende Programm nicht korrekt gefunden/geladen oder das geladene Programm startete nicht.
  • Diverse Schnelllader hatten Probleme mit mehr als einer angeschlossenen Floppy. Befehle zum Laden vom zweiten Laufwerk (Device 9) wurden ignoriert oder einfach für Device 8 angewendet.
  • "Fload" und "Action Replay Loader V3" sind Menü-gesteuert. Nach dem Start wird das Inhaltsverzeichnis der Diskette eingelesen und zwecks Auswahl aufgelistet. Negativ fällt dabei neben der Umständlichkeit auf, dass man beim "Action Replay Loader V3" nur die ersten 26 Dateien einer Diskette auswählen kann.


Natürlich sind diese Tests nicht "labortechnisch-objektiv". Es standen nur zwei Floppy-Typen zur Verfügung und die Fehler bei den zwei schnellsten Fastloadern mit der 1541-II könnten auch an der verwendeten Floppy liegen. Dennoch zeigt die Tabelle, welches Potential die Schnelllader besitzen und welche Zeitersparnis sie bringen.

Die klaren Gewinner dieses Tests sind der "Accelerator" und "Gigaload". Beide brauchten nur ein Zehntel der normalen Ladezeit und waren damit auch noch doppelt so schnell wie ihre Konkurrenten. Leider versagten beide Programme ihren Dienst auf meiner 1541-II.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]