sd2iec (Firmware)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
disambig 30px.png Dieser Artikel beschreibt die Funktionalität der sd2iec-Firmware. Die eigentliche Hardware wird in den folgenden Artikeln beschrieben: MMC2IEC, SD2IEC, arm2iec und µIEC.


Bei sd2iec handelt es sich um eine Firmware, die in verschiedenen Geräten eingesetzt wird, um ein Diskettenlaufwerk wie die Commodore 1541 gegenüber einem C64 zu emulieren. Die Software sd2iec steht als Open Source unter der GPL zur Verfügung.

Zur Abgrenzung gegenüber der Hardware SD2IEC wird die Firmware sd2iec - immer in Kleinbuchstaben und ohne Artikel - genannt. Die Abgrenzung ist deswegen wichtig, weil sd2iec auch von anderen Hardware-Plattformen wie dem MMC2IEC, dem arm2iec oder dem µIEC genutzt wird.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Ursprünglich entwickelte sich sd2iec aus einer Anzahl von Änderungen an der ursprünglichen Firmware des MMC2IEC. Es führte aber relativ schnell dazu, dass die komplette Firmware neu geschrieben wurde. Am Anfang war die Firmware ausschließlich für die MMC2IEC-Hardware gedacht, wurde später aber auch an andere Hardware angepasst. Mit der Implementierung weiterer Fähigkeiten wurde die Firmware zu groß für die ursprüngliche Zielplattform, den ATmega32. Neuere Version benötigen den ATmega644 oder 1284/1281. Auch Unterstützung für ARM-Plattformen wurde implementiert, sodass die Firmware auch auf Plattformen wie dem arm2iec läuft.

Für eine komplette und detaillierte Übersicht über die Geschichte der Firmware bietet sich ein Blick in das git-Web-Interface an.

Funktionen[Bearbeiten | Quelltext bearbeiten]

  • Unterstützung von D64/D71/D81/M2I/... Disk-Images (lesend und schreibend für D64, auch bei direktem Sektorzugriff mit U1/U2), T64 wird nicht unterstützt
  • Unterstützung der PRG/P00/...-Dateiformate (bei diesen Dateitypen kann die Dateiendung auch weggelassen werden, wenn sie sich auf der SD-Karte befinden, sie werden trotzdem normal erkannt. Vorteil dann - mehr Platz für den Dateinamen. denn da nur maximal 16 Stellen angezeigt werden in den meisten Filebrowsern, kann man diese bei gelöschter Dateiendung dann komplett für den Dateinamen nutzen)
  • eingeschränkte Unterstützung des REL-Dateiformats
  • Verwendung von "Wildcards" (*, ?)
  • Dateiablage mit Unterverzeichnissen (CMD-HD-Befehlssyntax)
  • Schnelllader-Unterstützung (Turbo Disk / Fast Load / Speeddisk / Epyx Fastload / JiffyDOS / Final Cartridge 3 / DreamLoad / Exos)
  • zwei externe "Diskettenwechsel"-Tasten (NEXT/PREVIOUS)
  • Statusanzeige über zwei LEDs
  • Verarbeitung von langen FAT-Dateinamen
  • SD-Karten können FAT12/FAT16/FAT32-formatiert sein
  • Unterstütung des sektorweisen Zugriffs der SD-Karte von C64-Seite aus
  • Gute IEC-Kompatibilität
    • Unterstützung der üblichen IEC-Funktionen (LOAD, SAVE, OPEN, CLOSE, ...)
    • Das 1571-ROM wurde als Referenz für die Implementierung verwendet
    • Viele Spiele ohne eigenen Schnelllader funktionieren (vgl. M2I-Games)

Benutzung[Bearbeiten | Quelltext bearbeiten]

Im Folgenden werden exemplarisch einige relevante Kommandos aufgezählt. Eine komplette Übersicht findet sich im README der Firmware. Im Artikel Floppy-Befehle finden sich Informationen zum Senden der Kommandos im Allgemeinen.

  • Verzeichnisse wechseln (CMD-Syntax):
    • OPEN1,8,15,"CD/SOMEDIR/":CLOSE1 - wechselt in das Verzeichnis SOMEDIR (relativ)
    • OPEN1,8,15,"CD//":CLOSE1 - wechselt zum Hauptverzeichnis (root dir) (nur,wenn man sich in dem Moment in keinem Image befindet)
    • OPEN1,8,15,"CD//SOMEDIR/":CLOSE1 - wechselt zum Verzeichnis SOMEDIR (in root)
    • OPEN1,8,15,"CD:←":CLOSE1 - wechselt in das übergeordnete Verzeichnis bzw. Verzeichnis verlassen
  • D64 benutzen (am Beispiel Inhaltsverzeichnes aufrufen):
    • OPEN1,8,15,"CD//SOMEDIR/:SOMEGAME.D64":CLOSE1 und dann LOAD"$",8 und LIST funktioniert immer für das D64 Image "Somegame.D64" im Verzeichnis "Somedir"
    • OPEN1,8,15,"CD:SOMEGAME.D64":CLOSE1 wenn das D64 im aktuellen Verzeichnis liegt
    • OPEN1,8,15,"CD:←":CLOSE1 - D64 wieder verlassen
    • @CD//SOMEDIR/:SOMEGAME.D64 und LOAD"$",8 und LIST /bzw. Jiffy-Befehl fürs DIR funktioniert mit Jiffy
    • @"CD//SOMEDIR/:SOMEGAME.D64 und LOAD"$",8 und LIST /bzw. Jiffy-Befehl fürs DIR funktioniert mit S-Jiffy
    • Die Eingabe dieser Befehle kann man sich sehr erleichtern, etwa bei der Verwendung eines "Final Cartridge 3" Moduls gemeinsam mit sd2iec, da man dann die vereinfachten F-Tasten-Befehle des FC3 verwenden kann. Ähnlich ist es bei Verwendung von "JiffyDOS".
  • M2Is benutzen:
    • OPEN1,8,15,"CD//SOMEDIR/:SOMEGAME.M2I":CLOSE1 - wechselt zu \SOMEDIR\SOMEGAME.M2I
    • OPEN1,8,15,"CD:SOMEGAME.M2I":CLOSE1 - in SOMEGAME.M2I das im aktuellen Verzeichnis liegt wechseln
    • OPEN1,8,15,"CD:←":CLOSE1 - M2I wieder verlassen
    • ACHTUNG - m2i's werden in den neueren Firmware-Versionen nicht mehr unterstützt und müssen, damit sie weiterhin funktionieren, in das p00-Format oder zurück in's d64-Format umgewandelt werden. Dies kann man mit Tools wie etwa "64Copy V4.46b", "DirMaster" oder auch dem Kommandozeilen-Programm "m2itopc64" erledigen.
  • Dateien laden:
    • LOAD"//SOMEDIR/:SOMEFILE" - lädt die Datei SOMEFILE im Verzeichnis SOMEDIR
  • Neues Image anlegen
    • OPEN1,8,15,"N:SOMENAME":CLOSE1 Image ist sofort geöffnet.
  • Gerätenummer wechseln:
    • OPEN1,aktuelle Nummer,15,"U0>"+CHR$(neue Nummer):CLOSE1 - Wechseln der Gerätenummer auf neue Nummer
    • OPEN1,Nummer,15,"XW":CLOSE1 - speichert die gewählte Gerätenummer dauerhaft im EEPROM ab

Faustregel: Pfade vor, Dateinamen hinter dem Doppelpunkt - auch wenn die Datei ein D64/M2I ist, in das gewechselt werden soll.

Diskettenwechsel[Bearbeiten | Quelltext bearbeiten]

Über die beiden Diskchange-Knöpfe NEXT und PREVious kann man komfortabel das "eingelegte" Disketten-Image wechseln, ohne dabei einen Befehl über die Tastatur eingeben zu müssen. Hierzu muss man vorher eine Textdatei (Autoswap-Datei) angelegt haben, in der die einzelnen Images aufgelistet werden. Das aktuell verwendete Disketten-Image bezeichnet man auch als "gemountet".

Die Datei kann je Zeile entweder nur den Namen der Image-Datei, oder auch komplette Pfade enthalten. Also zum Beispiel:

turrican_s1.d64
turrican_s2.d64

Oder mit komplettem Pfad

//turrican/:turrican_s1.d64
//turrican/:turrican_s2.d64

Achtung: Problematisch scheinen Dateinamen zu sein, die Sonderzeichen wie z.B. Klammern beinhalten. Die Liste wird durch das Kommando "XS:dateiname" aktiviert und automatisch das erste Image in der Liste ausgewählt. Die aktuell verwendete Autoswap-Datei lässt sich jederzeit ändern. Dafür verwendet man den Befehl

OPEN 1,8,15,"XS:mydiskimages.lst"

wobei für "mydiskimages.lst" jeder beliebige Name möglich ist. Nennt man die Datei "autoswap.lst" (genau dieser Dateiname), dann wird diese automatisch aktiviert, und der XS-Befehl erübrigt sich.

Befinden sich im Verzeichnis sowohl eine Datei "mydiskimages.lst" also auch "autoswap.lst", so wird bei Aktivierung der "mydiskimages.lst" die Datei "autoswap.lst" ignoriert.

Die Autoswap-Datei kann auch deaktiviert werden mittels:

OPEN 1,8,15,"XS:"


Tastenfunktion: Beim Betätigen eines Disk-Change-Tasters blinken zur Bestätigung zunächst beide LEDs kurz auf.

  • NEXT: Danach blinkt die grüne LED kurz auf und es wird das nächste in der Liste vorkommende Disketten-Image aktiviert.
  • PREV: Danach blinkt die rote LED kurz auf und es wird das vorhergehende Disketten-Image aktiviert.

Ist man beim letzten Disketten-Image in der Liste angelangt und betätigt den Next-Taster erneut, so gelangt man wieder zum ersten Eintrag, wobei in diesem Fall beide LEDs zur Bestätigung blinken.

  • NEXT+PREV: Drückt man beide Taster gleichzeitig, wird das erste Image in der Liste ausgewählt.

Sollte dies nicht der Fall sein, so ist ein Fehler in der Autoswap-Datei.

Drückt man einen der beiden Taster, ohne dass eine Liste aktiviert wurde, wird im aktuellen Verzeichnis nach einer Datei mit dem Namen "autoswap.lst" gesucht und diese aktiviert. Das erste Image in der Liste wird dann gemountet.

Beispiel[Bearbeiten | Quelltext bearbeiten]

Dieses Beispiel wurde auf einem SD2IEC von nkcelectronics mit der Firmware 0.10.1 durchgeführt.

Im Ordner Turrican befinden sich zwei Images und die Datei "autoswap.lst":

Inhalt der "autoswap.lst":

turrican_s1.d64
turrican_s2.d64

Legt man diese SD-Karte in die SD2IEC ein und wechselt in das Verzeichnis Turrican mit

OPEN 1,8,15,"cd:turrican":CLOSE 1

kann man einen der beiden Change-Disk Taster betätigen. Hierbei wir das Image in der ersten Zeile gemountet. Betätigt man den Knopf erneut, wird das Image der zweiten Zeile gemountet. Da als Dateiname der Standardname "autoswap.lst" verwendet wurde, ist es nicht nötig, die Datei mit dem XS-Befehl zu aktivieren.

Es empfiehlt sich, für jedes Spiel, welches mehrere Disketten benötigt zwischen denen umgeschaltet werden muss (Multi-Disk Spiele), einen separaten Unterordner anzulegen um so wenig Einträge wie möglich in der autoswap-Datei zu haben. Denn befinden sich viele solcher Multi-Disk-Spiele im gleichen Ordner, dann müssen auch all diese Disketten in die gleiche Autoswap-Datei eingetragen werden und es muss dann folglich auch zwischen all diesen Disketten umgeschaltet werden mit den "Change Disk" Tastern am SD2IEC. Da verliert man dann schnell den Überblick, bei welcher Diskette man sich jetzt in der Liste gerade befindet, also welche davon eingelegt ist. Deshalb ist es sinnvoll, einen extra Unterordner für jedes Multi-Disk-Spiel anzulegen.

Alternativ kann man natürlich auch nach anderen Fileformaten suchen, etwa d81-Images, auf denen sich dann häufig der Inhalt mehrerer d64-images auf nur einem d81 vereint finden lässt. Damit ist dann kein Diskwechsel mehr nötig. Jedoch gibt es noch nicht von allen Spielen, die sich als d64 Versionen finden lassen, erstellte d81. Man kann mit bestimmten Tools, wie etwa "64Copy" oder "DirMaster" auch selbst ein d81 File aus mehreren d64 Files erstellen, indem man die ganzen Files vom einen Diskformat zum anderen hinüberkopiert. Ob dies dann letztendlich funktioniert oder nicht, hängt dann wieder von verschiedenen Faktoren ab, beispielsweise ob die Files in den d64-Directories alle listbar und sichtbar sind und auch, ob unterschiedliche Files gleichen Namens auf den ganzen d64-Files eines Spiels vorhanden sind. Sind sie das, lässt sich so ohne weiteres kein funktionierendes d81 aus den ganzen d64-Images erstellen, da nicht mehrere Files gleichen Namens auf einem d81-Image vorhanden sein können.

Häufige Fragen[Bearbeiten | Quelltext bearbeiten]

Werden Schnelllader unterstützt?[Bearbeiten | Quelltext bearbeiten]

Im allgemeinen nicht, aber ein paar Schnelllader werden mittlerweile unterstützt.
Schnelllader bestehen aus zwei Programmteilen: Einer läuft auf der Seite des C64, der andere auf der Seite des Laufwerks.
Die von sd2iec genutzte Hardware-Plattform bietet nicht genug Ressourcen, um die komplette CPU und die weitere Elektronik und Mechanik einer 1541 mikrosekundengenau zu emulieren. Stattdessen wurde der Weg gewählt, ausgewählte Schnelllader sd2iec-seitig zu erkennen und eine speziell für den jeweiligen Schnelllader neu geschriebene Emulation zu benutzen. Dadurch werden nicht alle möglichen Schnelllader unterstützt; die unterstützten jedoch laufen typischerweise sogar schneller als auf einer originalen 1541 oder z.B. einer 1541 Ultimate.

Wie kompatibel ist sd2iec-Firmware zur 1541?[Bearbeiten | Quelltext bearbeiten]

Normalerweise sollte (mindestens) jede Software, die z.B. in VICE ohne "exakte Floppy-Emulation" läuft, auch per sd2iec funktionieren, wenigstens als D64-Image. In der Gamebase64 lässt sich entsprechende Software z.B. via ihrer erweiterten Suche finden. Auch einige Software, die im VICE die exakte Emulation benötigt, läuft mit sd2iec, da diese mittlerweile zu einigen ausgewählten Schnellladern kompatibel ist, deren Loader integriert wurden. Sprich, man muss es einfach ausprobieren.

Viele "neue" Veröffentlichungen von Spielen und Anwendungen erlauben es beim Start optional, den Schnelllader zu deaktivieren. Diese sollten dann auch mit der sd2iec-Firmware funktionieren. Außerdem gibt es mit znarFs M2I-Liste eine Übersicht über Spiele, die mit sd2iec zusammenarbeiten. Spiele, die aus nur einer Datei bestehen (sogenannte Onefiler), sollten sowieso alle funktionieren, ebenso wie die meisten Programme, die an das IDE64 angepasst wurden.

Generell kann man sagen, dass sich für die meisten Spiele mittlerweile Versionen finden lassen, die mit der sd2iec-Firmware laufen. Anders sieht es hingegen bei nachladenden Demos aus, die fast alle spezielle Loader integriert haben. Hier ist die Kompatibilitätsquote mit sd2iec nur gering, und die meisten lassen sich nicht zum Laufen bewegen. Ausgesprochene Demo-Fans sollten deshalb wohl eher zu einer anderen Hardware, sprich einem vollständigen Floppy-Ersatz, wie etwa der 1541 Ultimate oder dem Turbo Chameleon 64 greifen - Hintergründe siehe Floppy#Kompatibilität.

Wozu das M2I-Format? Wie erzeuge ich M2I-Dateien?[Bearbeiten | Quelltext bearbeiten]

Am besten gar nicht mehr. Das auf der MMC2IEC-Hardware eingeführte M2I-Format wurde früher benutzt, als die Firmware noch keine D64-Dateien beschreiben und nicht mit allen PETSCII-Zeichen in Dateinamen umgehen konnte. Inzwischen ist dies jedoch Geschichte und der m2i-Support wurde bei den neueren Firmware-Versionen aus der sdi2ec-Firmware entfernt. Daher sollten für Nachladeprogramme besser Formate wie D64/D71/D81 oder p00/prg benutzt werden, die im Retro- und Emulatoren-Bereich, im Gegensatz zum M2I Format, eher ein Standard sind. Bereits vorhandene m2i-Dateien können mit bestimmten Tools ("64Copy 4.46b", "m2itopc64" oder "DirMaster") in das p00-Format oder d64-Format umgewandelt und dann auch weiterhin mit sd2iec benutzt werden.

Funktioniert GEOS mit sd2iec?[Bearbeiten | Quelltext bearbeiten]

Ja, seit Version 0.10.1 unterstützt die sd2iec-Firmware den GEOS 2.0-Schnelllader.

Was sind die Unterschiede von sd2iec-basierenden Entwicklungen verglichen mit der 1541-III und der 1541 Ultimate?[Bearbeiten | Quelltext bearbeiten]

1541 Ultimate vs. sd2iec-basierte Designs
  • sd2iec-basierte Hardware ist wesentlich günstiger.
  • Da die 1541 Ultimate die komplette 1541 emuliert, läuft damit so gut wie alles und sie ist wesentlich kompatibler als sd2iec. Allerdings gibt es mittlerweile von fast allen Spielen auch Versionen, die auch mit sd2iec funktionieren. Bei nachladenden Demos, in denen fast immer spezielle Loader zum Einsatz kommen, sieht es hingegen schlecht aus mit sd2iec.
  • sd2iec-basierte Hardware bietet normalerweise keinerlei Sonderfunktionen an (Cartridge/Netzwerk/REU-Emulation).
  • sd2iec ist bei KERNAL-Funktionen schneller als die 1541 Ultimate, da es die Funktionen auf IEC-Ebene emuliert, nicht die komplette 1541 inklusive der (langsameren) Mechanik.
1541-III vs. sd2iec-basierte Designs
  • sd2iec ist wesentlich kompatibler und hat Unterstützung für einige Schnelllader - 20-fache Geschwindigkeit und mehr!
  • sd2iec kann mit einem Bootloader genutzt werden, der die Firmware beim Start von der SD-Karte liest. Entsprechend einfach sind Firmware-Updates.
  • sd2iec benutzt einen ATmega-Controller - Open Source-Compiler sind für diese Plattform verfügbar.

Wie kann man mit einem sd2iec-basierten Gerät Dateien auf/von echte(n) Disketten kopieren?[Bearbeiten | Quelltext bearbeiten]

Zum dateiweisen Kopieren mit einem C64 lässt sich zum Beispiel FCOPY[1] oder DraCopy[2] benutzen. Auch Fast Back'em[3] scheint zu funktionieren, hat aber einen nervigen Reset-Schutz. JiffyDOS hat ebenso eine einfache eingebaute Dateikopierfunktion.

Um D64-Dateien auf eine "echte" 1541/1571/... zu kopieren, lässt sich gunzip.c64[4] benutzen.
Um eine D64-Datei von einer Diskette in einer 1541/... zu erzeugen, lässt sich PuZip[5] benutzen.

Diese Hilfsprogramme sind recht langsam - JiffyDOS hilft. Beide Programme kopieren dateiweise. Um sektorweise zu kopieren, lässt sich z.B. DCOPY.PRG benutzen.

Welche Datei-/Verzeichnis-Navigatoren (Filebrowser) kann ich benutzen?[Bearbeiten | Quelltext bearbeiten]

Als Kopierprogramme und Dateimanager lassen sich z.B. "DraCopy" und CBM-Command benutzen.

Bei den Filebrowsern gibt es inzwischen eine recht grosse Auswahl. Einige dieser Filebrowser, wie etwa SD2BRWSE oder der CBM-Browser, können auch sehr gut mit einem angesteckten Final Cartridge 3 (FC3) und dessen Fastloader kombiniert werden. Dieser bleibt nämlich in den beiden genannten Browsern erhalten, was dazu führt, dass Software per sd2iec dann viel schneller geladen werden kann. Dies geht übrigens auch mit dem JiffyDOS Modul, sowie dem Epyx Fastloader Modul.
Desweiteren hat man bei der Nutzung eines FC3- oder JiffyDOS-Moduls auch noch die F-Tasten-Befehle, die die Benutzung von sd2iec wesentlich bequemer und komfortabler machen. Es müssen dann beispielsweise keine ellenlangen DOS-Befehle mehr von Hand eingetippt werden, um ein Verzeichnis zu wechseln, da man bei der Nutzung eines FC3s dann einfach F8  drückt und nur noch zwei oder drei Buchstaben eintippen muss, je nach Befehl.

Ferner gibt es einen KERNAL mit eingebautem Filebrowser für sd2iec[6] und das sd2iec Wedge 64, das dem DOS Wedge ähnlich ist.

Warum wird LOAD"IMAGE.D64",8,1 zum Öffnen von D64-Dateien nicht unterstützt?[Bearbeiten | Quelltext bearbeiten]

Die alte MMC2IEC-Firmware konnte das noch, allerdings war die Funktionalität ein ziemlicher Hack und hat einige Nebenwirkungen, z.B. konnte man keine D64-Dateien kopieren oder erzeugen.

Wie schnell ist sd2iec?[Bearbeiten | Quelltext bearbeiten]

Getestet wurde mit einer 193 Blöcke großen Datei.

Bei den angegeben Zeiten handelt es sich um von Hand gestoppte LOAD-Zeiten.
Spiele und Anwendungen nutzen häufig nicht LOAD, sondern CHRIN zum Nachladen; CHRIN lässt sich nur mit KERNAL-Erweiterungen beschleunigen.

Speeder C64+1541 C64+sd2iec
Relativ Absolut Relativ Absolut
Kein Schnelllader 1,0× 400 Bytes/s 1,6× 650 Bytes/s
Turbo Disk 5,7× 2.280 Bytes/s 12,6× 5.050 Bytes/s
JiffyDOS (*1) 6,0× 2.400 Bytes/s 21,5× 8.600 Bytes/s
Final Cartridge 3 10,4× 4.150 Bytes/s 20,0× 8.000 Bytes/s
Action Replay 6 14,3× 5.700 Bytes/s (*2) (*2)
SJLOAD (*3) 25,0× 10.000 Bytes/s
Experimenteller Speeder (*4) 38,0× 15.300 Bytes/s

(*1) JiffyDOS beschleunigt auch $EE13/CHRIN, was von vielen Nachladern genutzt wird. Auf einer 1541 erreicht JiffyDOS etwa 10-fache Geschwindigkeit, sofern die Datei auch mit Jiffy vorher (mit für Jiffy passendem Interleave) gespeichert wurde.

(*2) Der Schnelllader des AR6-Moduls ist bislang nicht kompatibel zu sd2iec.

(*3) SJLOAD beschleunigt das Laden von Dateien, aber auch das Anzeigen von Verzeichnissen.

(*4) Mischung aus seltener Synchronisation des Laufwerks mit dem C64 (wie es Turbo Disk macht) und dem schnellen Bitstuffing-Code des Action Replay 6.

Wie man sehen kann, ist die Ladegeschwindigkeit von sd2iec auch ohne die Benutzung eines Schnellladers schon etwas schneller als die eines normalen Diskettenlaufwerks, da keinerlei mechanisch bedingte Verzögerungen auftreten und sd2iec die Daten wesentlich schneller verarbeiten kann. Zu beachten ist hier, dass Schnelllader, die ausschließlich die Datenübertragung über die serielle Schnittstelle beschleunigen, auf Original-Hardware maximal auf eine 6-fache Geschwindigkeit begrenzt sind. Diese Art von Schnellladern läuft mit sd2iec viel schneller, da die wesentlichen begrenzenden Faktoren "Lesegeschwindigkeit" (wie schnell überstreicht der Schreib-/Lesekopf die Diskette) und "Verarbeitungsgeschwindigkeit" des 1541-Diskettenlaufwerks dann praktisch wegfallen.

Die theoretische Maximalgeschwindigkeit des seriellen Busses bei Verwendung eines Laufwerks welches den C64 nie warten lässt liegt bei schätzungsweise 20-25k pro Sekunde.

Unterstützt sd2iec Parallelkabel?[Bearbeiten | Quelltext bearbeiten]

Grundsätzlich ja, allerdings kommt es auf die konkrete Hardware an.

Software[Bearbeiten | Quelltext bearbeiten]

Bootloader[Bearbeiten | Quelltext bearbeiten]

Auf den meisten sd2iec-basierten Geräten kümmert sich ein Bootloader um das Einlesen bzw. Aktualisieren der auf dem Microcontroller abgelegten Firmware.

  • Beim Anschalten liest der Bootloader das Hauptverzeichnis der SD-Karte und prüft jede Datei auf passende Größe und Dateisignatur.
  • Wurde eine passende Firmware-Datei gefunden, deren Version 0 oder größer als die im Moment auf dem Microcontroller abgelegte Version ist, wird der Microcontroller mit der gefundenen Firmware neu programmiert.

Firmware[Bearbeiten | Quelltext bearbeiten]

Siehe die sd2iec-Firmware-Seite.


Anzeige[Bearbeiten | Quelltext bearbeiten]

Die sd2iec-Firmware unterstützt grundsätzlich externe Anzeigen.

Benötigte Hardware[Bearbeiten | Quelltext bearbeiten]

  • funktionsfähige Hardware für sd2iec
  • ATmega1284p
  • HD44780-Kompatibles Display mit 4×20 (oder mehr)
  • Drehpoti
  • 3 Kondensatoren

Benötigte Verbindungen[Bearbeiten | Quelltext bearbeiten]

  • I2C-Verbindung vom sd2iec-AVR zum Display-AVR: Hardware-I2C-Pins des Display-AVR (siehe Datenblatt, SDA und SCL, sollten nebeneinander liegende Pins von Port C oder D sein) mit den passenden Pins des sd2iec-AVRs verbinden (larsp-Hardware: SCL ist PC6, SDA ist PC5; sw2-Hardware: SCL ist PC4, SDA ist PC5).
  • IntRq-Leitung, damit das Display um Aufmerksamkeit betteln kann: PD6 am Display-AVR an den passenden Pin des sd2iec-AVR (larsp: PC7, sw2: PC6).
  • LCD-Steuerleitungen RS, RW, E in dieser Reihenfolge an PA0, PA1, PA2.
  • LCD-Datenleitungen D4-D7 in dieser Reihenfolge an PA4-PA7.
  • Dreh-Encoder-Leitungen A/B an Pins PC2 und PC3 - ggfs. vertauschen, wenn die Steuerung zu spinnen scheint.
  • Taster an PC4.

Source-Anpassung[Bearbeiten | Quelltext bearbeiten]

  • Anpassungen in der config.h: LCD_E2 als 0 definieren, LCD_COLUMNS und LCD_ROWS_TOP passend zum eigenen Display ändern, LCD_ROWS_BOTTOM auf 0 setzen, evtl. LCD_ROWADDR anpassen (muss bei "normalen" vierzeiligen Displays vier Werte enthalten).
  • Anpassungen in der main.c: Die Definition von status_line kürzen, damit sie ins Display passt, die Definition von STATUS_ADDR dazu passend ändern (der Wert ist das Zeichen in status_line, ab dem die beiden "_" für die Adresse stehen, gezählt wie in C üblich ab 0), bei einem nur zweizeiligen Display alle Zugriffe auf lcdline[2] und lcdline[3] sowie den einen Aufruf von set_line() mit 2 als erstem Parameter (bei "case DISPLAY_ERRORCHANNEL:") auf 0 und 1 ändern, damit die nicht in nicht existierende LCD-Zeilen schreiben (wird aber hässlich bis unbrauchbar aussehen).

Layout[Bearbeiten | Quelltext bearbeiten]


Medien-Unterstützung[Bearbeiten | Quelltext bearbeiten]

In unterer Tabelle sind die verschiedenen Medien-Kombinationen (Karten-Typen) aufgelistet, von denen bekannt ist, ob sie mit dem SD2IEC funktionieren oder auch nicht. Sollten Sie in dieser Tabelle etwas ändern, dann tragen Sie "OK" bitte nur dann in die "Boot Loader" Spalte ein, wenn Sie mit derjenigen Karte die Firmware ihres SD2IEC erfolgreich updaten konnten. Das Kürzel "OK" steht für "okay", also "funktioniert", das Kürzel "NOK" für "nicht okay", also "funktioniert nicht".

getestete SD und MMC Karten[Bearbeiten | Quelltext bearbeiten]

Marke Typ Kapazität (MB) Produkt Code Tester getestet mit Version Boot Loader DOS
BlueMedia SD 128 ? Shadowolf 0.6.4 OK OK
Canon MMC 16 ? Shadowolf 0.6.4 OK OK
Canon SD 32 ? Shadowolf 0.6.4 NOK OK
EMTEC SD 2048 ? Retrostyle 0.6.3a OK OK
Formel1 SD 512 6451AE skoe 0.6.4 OK OK
Hama SD 1024 ? ogf 0.6.4 NOK OK
Hynix orig Micro-SD (mit Adapter) 512 HY71UG512M-MP, C20FY0810011 Muarane 0.10.3 ? OK
Kingmax Mini-SD (mit Adapter) 256 ? BlowFish ? NOK NOK
Kingston SD 1024 SD-M01G/TR4924U 1570 0.6.4 OK OK
Kingston SD 128 30352-003.A00 JMP$FCE2 0.8.2 OK OK
Kingston SDHC 16484 ? QUS 0.8.1 OK OK
Panasonic SD 16 ? Shadowolf 0.6.4 OK OK
Philips SD 16384 ? BlowFish ? OK OK
Platinum SD 1024 ? cbmhardware petSD ? OK
Platinum SD 2048 ? Shadowolf 0.6.4 OK OK
PNY SD 2048 ? Asterion 0.10.1 NOK NOK
SanDisk SD 1024 SDSDH-1024-902 Shadowolf 0.6.4 OK OK
SanDisk SD 512 ? ogf 0.6.4 OK OK
SanDisk Micro-SD 1024 SDSDQ-1024-E10M Shadowolf 0.6.4 OK ?
SanDisk Micro-SD 2048 SDSDQ-2048-E10M Shadowolf 0.6.4 OK ?
SanDisk Micro-SDHC 4096 SDSDQ-4096-E11M Shadowolf 0.6.4 NOK OK
SanDisk Mini-SD 2048 SDSDM-2048 Tatsujin 0.93 OK OK
SanDisk Mini-SD 512 SDSDM-512-E10M Shadowolf 0.6.4 OK OK
Transcend Micro-SD mit Adapter 1024 n/a Nilsman80 0.9.3 OK OK
Traxdata SD 2048 I3M2G skoe 0.6.4 OK OK
Verbatim SD 2048 ? LooZee 0.8.1 OK OK
(Beispiel Eintrag) MMC/SD/SDHC 512 1234/? mich 0.6.4 OK/NOK/? OK/NOK

getestete CF Karten[Bearbeiten | Quelltext bearbeiten]

Marke Typ Kapazität (MB) Produkt Code Tester getestet mit Version Boot Loader DOS
AData CF 1024 ? Brain 0.7.2 OK OK
AData "Speedy" CF 4096 ? Rittwage 0.7.2 ? OK
Canon CF 16 FC-16M Vanessa E. 0.8.2, 0.8.3 OK OK
Lexar CF 128 P/N 2250, Rev. A Vanessa E. 0.8.3 OK OK
Lexar CF 128 P/N 2175, Rev. A Vanessa E. 0.8.2, 0.8.3 OK OK
Nikon CF 8 [sic!] EC-8CF ik 0.7.2 NOK NOK
PNY CF 64 ? Brain 0.7.2 OK OK
PQI CF 512 ? saehn 0.8.0 OK OK
SanDisk CF 32 FC-32MH Brain 0.7.2 OK OK
SanDisk CF 4096 SDCFH-004G-A11 Naberezny 0.7.2 OK OK
(Beispiel Eintrag) CF/IDE 512 1234/? mich 0.6.4 OK/NOK/? OK/NOK

Siehe auch[Bearbeiten | Quelltext bearbeiten]

  • MMC2IEC und die Weiterentwicklung SD2IEC - Hardware für die sd2iec-Firmware

Weblinks[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. "HD Utilities Disk" mit FCOPY (Mirror von cottonwood.servebbs.com/wiskow/) Sprache:englisch
  2. Kopierprogramm DraCopy Sprache:deutsch
  3. Kopierprogramm Fast Back'em Sprache:englisch
  4. C64 gunzip Sprache:englisch
  5. PuZip Sprache:englisch
  6. Claus' KERNAL mit Filebrowser für sd2iec