So, um alx zu ärgern weil ich gerade keinen Bug mehr finde gibts ein neues sd2iec-Release.
Es sieht im Augenblick danach aus, als ob es das letzte Release wäre was auf dem ATmega32 lauffähig ist - es sind noch 866 Byte Flash frei (plus 2K für den Bootloader wenn man direkt programmiert) und beim Ram müsste mal jemand eine genaue Analyse machen wie gross der Stackverbrauch maximal werden kann. Ein paar Tests mit Protokollfunktionen lieferte eine maximale Belegung von 254 Byte, allerdings mit aktiven UART-Debugging (ist im Release nicht drin) und auf einem mega644 (weil der Code mit Instrumentierung >32K ist). Solche Tests sind allerdings bestenfalls ein Indiz, der tatsächliche Maximalverbrauch könnte höher liegen - sofern das nicht mehr als ca. 40 Byte sind passt es aber noch.
Die Archive haben ein neues Namensschema, da ich mein Makefile umgebaut habe - larsp sollte klar sein, sw1 sind Shadowolfs MMC2IEC 1.x-Platinen, sw2 sind seine sd2iec 1.x-Platinen. Von allen drei Varianten gibts im Augenblick nur Compilate für die typischerweise verwendeten CPUs, sollte jemand Bedarf für ein mega644-Binary für sw1- oder larsp-Hardware haben bitte selber bauen oder freundlich fragen.
Bugfixes in 0.6:
- B-R und B-W funktionieren jetzt so wie von Commodore dokumentiert - damit funktioniert jetzt Pirates einwandfrei. Interessanterweise behauptet fast jede Sekundärliteratur zu den Laufwerken, dass B-R/B-W defekt und/oder nutzlos wären... Ein wenig mehr Details zu dem Thema gibts hier.
- I schliesst alle offenen Kanäle - Drazpaint verlässt sich auf dieses Verhalten
- Beim Schliessen von Kanal 15 wird eine neue Fehlermeldung generiert - keine Ahnung ob irgendeine Software sich darauf verlässt, aber da das nötig ist um nur den numerischen Fehlercode auslesen zu können wird es bestimmt Kandidaten geben.
- Ungültige Track-/Sektornummern bei D64-Behandlung werden angemeckert - auf vielfache Bitte eines Einzelnen.
Neue Features in 0.6:
- Einige Umstrukturierungen im Quellcode (die wirklich grossen kommen aber noch)
- M-R liefert Daten zurück - damit stimmt der Faktor beim 64'er Speed Test in diesem Punkt jetzt auch, leider nur 0.97x weil mein IEC-Code einen Tick langsamer als das Orginal ist
- Geräteadresse ist via U0> änderbar, wie bei der 1571/1581 auch
- Geräteadresse wird bei XW im EEPROM gespeichert - dadurch ändert sich das EEPROM-Format und mit 0.5 erstellte Einträge werden nicht mehr erkannt. Erkennung alter Configeinträge ist für Version 1.1 geplant.
- E-R/E-W: Jemand aus dem VicePlus-Team fragte, ob er Zugriff auf das EEPROM des Atmels bekommen könnte, um darin die Konfiguration seines (unfertigen) Filebrowsers ablegen zu können. Die Syntax beider Befehle ist identisch zu M-R und M-W, die Länge beim Lesen ist allerdings durch die Grösse des Fehlerpuffers (35 Byte) beschränkt. Ich empfehle die Einrichtung einer Arbeitsgruppe um ein Protokoll auszuarbeiten damit sich mehrere Programme dieses Features bedienen können ohne ihre Daten gegenseitig zu überschreiben. Es sind zur Zeit 512 Byte Speicher verfügbar, die sd2iec-Konfiguration ist über diese Befehle nicht erreichbar.
- FAT-Verzeichnisse die mit . anfangen werden ausgeblendet, sind aber noch sichtbar wenn man versteckte Dateien (*=H) anzeigen lässt
- Lange Dateinamen auf FAT - M2Is sind teilweise obsolet. Dank Jim Brain kennt die FatFs-Library jetzt auch lange Dateinamen und nach einigen Tagen Fehlersuche hoffe ich, dass diese Version von FatFs auch keinen Karteninhalt mehr shreddert. Aus Speicherplatzgründen werden Dateien mit Namen länger als 16 Zeichen trotzdem mit ihrem 8.3-Filenamen angezeigt, ausserdem ist die Zeichenkonvertierung (VFAT verwendet Unicode) gemogelt, so dass Sonderzeichen komisch aussehen können.
Wegen der neuen Fat-Library empfehle ich bei dieser Version besonders darauf zu achten, dass von allen wichtigen Daten auf der Karte Backups existieren - wenn ein Schreibzugriff danebengeht können auch Daten beschädigt werden die man eigentlich gar nicht angerührt hat!
JiffyDos ist in dieser Version per Default abgeschaltet weil mir gerade aufgefallen ist, dass ich vergessen habe das noch vor dem Release zu ändern. ^^; Einfach mit @"XJ+" einschalten und mit @"XW" die Einstellungen speichern.
Eine im EEPROM gespeicherte Geräteadresse wird nur verwendet, wenn die Adressen-Jumper genauso eingestellt sind wie zum Speicherzeitpunkt - es besteht also kein Risiko, dass man auf einmal einen Satz auf 8 konfigurierter Platinen hat und die einzeln an den Rechner hängen muss um die Adresse ändern zu können. Man kann sich das Feature im Prinzip auch so vorstellen, dass es die Bedeutung der aktuellen Adressen-Jumper-Einstellung ändert falls diese Beschreibung nicht zu "unhandlich" ist.
Ach ja, sd2iec ist jetzt auch in einer uIEC-Konfiguration (uIEC v2, mit mega128) compilierbar und da Jim keinen Patch nachgeschoben hat ist die vermutlich sogar lauffähig - wegen sehr
geringer Verbreitung gibts aber erstmal kein Binary dafür.
Juhu, mal wieder die URLs vergessen:
- http://snowcat.de/sd2iec/ für Quellcode+Binaries
- http://snowcat.de/sd2iec/sd2iec.git zum Repository-Cloning via git
- http://snowcat.de/cgi-bin/gitweb.cgi/sd2iec.git um die Entwicklungskatastrophen via Browser zu begutachten
- "cvs -d :pserver:anonymous@snowcat.de:/sd2iec.git co master" für CVS-Fans