Hello, Guest the thread was called1.7k times and contains 13 replays

last post from Rayne at the

sd2iec 1.0.0

  • Hi!


    Mit den aktuellen Änderungen scheint mir ein Wechsel auf Versionsnummer 1.0.0 endlich sinnvoll zu sein. Im einzelnen sind dies:

    • 6502-Emulation
    • Parallelkabel-Support
    • SDIO-WLAN-Support
    • Portierung auf eine zweite CPU-Architektur: ARM Cortex M3, spezifisch die NXP LPC176x-Reihe
    • Lokales grafisches LCD mit Touchscreen
    • Rückportierung des newboot-SD-Codes für leicht verbesserte Kompatibilität mit einigen Billigkarten
    • Neue erkannte Fastloader: Edge of Disgrace, Andropolis, Mekanix, Deus ex Machina (und evtl. weitere dazu kompatible), ELoad (von skoe für EasyProg)
    • Alternative RTC: DS3231


    Leider reicht der Speicher auf dem ATmega644 beim besten Willen nicht mehr, auf diesem gibts daher als neues Feature lediglich den Parallekabel-Support und die neuen Loader.


    Burstmode-Support wurde auf die nächste Version verschoben, da der bisherige Patch Probleme hat und die Beseitigung dieser darauf warten muss, dass ich den Fehler in der Takterzeugung meines zur Entwicklung verwendeten C128DCR beseitigt habe.


    Die Features im einzelnen:


    6502-Support: Funktioniert sowohl auf ARM als auch AVR, allerdings muss der AVR dafür mit einem 32MHz-Takt gefüttert werden, was natürlich eine starke Übertaktung ist. 24 würden wahrscheinlich auch noch reichen, leider kann der interne Prescaler aber nur in Zweierpotenzen teilen und daher würde das Timing der Assemblerroutinen nicht stimmen. Der AVR testet mit einem kleinen Trick beim Starten seinen Takt[1] und schaltet die 6502-Emulation nur frei wenn genug Rechenleistung da ist. Bevor jetzt aber grosser Freudentaumel über die "1541U-Light" ausbricht: Im Augenblick wird nahezu keine 1541-Hardware mitemuliert - es funktionieren lediglich Drivecodes, die die Jobqueue oder eine kleine Zahl von handverlesenen Rom-Routinen zum Diskettenzugriff verwenden und nichts was direkt mit GCR rumspielt (deswegen auch noch kein .G64-Support). Selbstverständlich funktioniert das ganze nur wenn ein D64-Image gemountet wurde.


    Parallelkabel-Support: SpeedDos (manche Versionen) und DolphinDos, evtl. auch ProfessionalDos. Die Belegung zum Bau eines Parallelkabels findet sich in doc/parallel.txt im Quellcodearchiv (oops, das landet ab dem nächsten Release auch im Binary-Archiv). Auf dem uIEC/SD wird es überhaupt nicht unterstützt weil keine vernünftig lötbaren Pins rausgeführt sind, auf dem uIEC/CF ist es extrem einfach weil eine Pfostenleiste für den Parallelanschluss vorgesehen ist, für alle anderen Hardwarevarianten ist etwas externe 74xx-Logik notwendig um mit den vorhandenen freien Pins auszukommen.


    SDIO-WLAN-Support: Eines dieser lustigen "Spassprojekte" die entstehen weil einem zufälligerweise die passende Hardware in die FInger gekommen ist. =) Wenn man statt einer SD-Karte eine "Kodak Wi-Fi card" (FCC ID PA4050499) einsetzt kann sd2iec sich mit einem 802.11b-kompatiblen WLAN ohne oder mit WEP-Verschlüsselung (für WPA reichen die Resourcen nicht) verbinden und dann via UDP mit einem Serverprogramm auf dem PC reden um Dateien vom PC zu lesen. Der Quelltext des Servertools ist in sd2iec-server-0.1.tar.gz zu finden, compiliert prima unter Linux, Windowsanpassung macht bestimmt irgendjemand. Die Daten des WLANs (SSID, Key, IP-Adressen) werden per XL gesetzt, Details siehe README. Ich habe keine Ahnung ob andere SDIO-WLAN-Karten auch funktionieren würde bzw. wo man die Kodak-Karte heutzutage noch beziehen könnte.


    Portierung auf Cortex M3: Hatte ich IIRC im Forum schon mal erwähnt - die Chips sind ziemlich leistungsfähig (100MHz, 512K Flash, 64K Ram, USB Host/Client, 100MBit-Ethernet, ...) und kaum teurer als ein 128KB-AVR (aktuell bei Digikey 6.50EUR für einen ATmega1284, 9,14EUR für einen LPC1768). Leider konnte ich mich immer noch nicht dazu aufraffen, endlich mal die Schaltung dafür fertig zu entwerfen und layouten, daher gibts im Augenblick auch noch kein Binär-Release dafür.


    Lokales grafisches LCD mit Touchscreen: Weil ich die Empörung im Forum liebe wenn ein Stück Hardware mal mehr als 10 Euro kosten soll habe ich als lokales LCD nicht einfach irgendein HD4470-Teil genommen sondern das hier. =) Ausserdem hat es den Vorteil nur wenige Pins zu benötigen (zwei Select-Leitungen, der Rest wird mit der SD-Karte geteilt) und die Bedienelemente gleich mitzuliefern. Die bisherigen Next/Prev-Buttons funktionieren natürlich weiterhin, bei angeschlossenem Display kann ihre Funktion (abgesehen von den beiden Startup-Features zum SD-Slot-Test und des Config-Resets) aber auch über den Touchscreen ausgelöst werden. Anschlussinfos in der localdisplay.txt im Quellcodearchiv.


    neuer SD-Code: Dazu gibts nicht viel anzumerken - der für newboot geschriebene SD-Code ist sauberer und etwas kompatibler als der bisherige, ausserdem sind damit die letzten Reste von MMC2IEC aus sd2iec rausgeflogen.


    neue Fastloader: Ein paar Demos weil ich jemandem diese vorführen wollte und keine Lust hatte neben dem C64 noch eine 1541 mitzuschleppen. =) Von skoe kommt ausserdem noch ELoad, ein in EasyProg integrierter Fastloader.


    neue RTC: Die DS3231 ist eine ziemlich teure, aber auch extrem genaue RTC - irgendjemand hatte sich ja beschwert, dass die PCF8583 ziemlich ungenau wäre (weil jemand anderes im Layout den Trimmkondensator weggelassen hat...). Beim Start wird automatisch erkannt welcher der beiden Chips angeschlossen ist, falls beide vorhanden sind wird die DS3231 bevorzugt verwendet.



    Download wie üblich unter http://www.sd2iec.de



    [1] Der Watchdog-Timer hat eine eigene Taktquelle und braucht daher für einen Timeout immer eine bekannte absolute Zeit. Die Taktquelle ist zwar nicht sonderlich genau, aber es reicht auf um zwischen 8 und 32MHz CPU-Takt unterscheiden zu können.

  • Super, auf die 6502 Emulation habe ich schon lange gewartet. Jetzt kann ich endlich auf meine 1541u verzichten. :thumbsup:



    Gerade geflashed, funktioniert super!!! Man benötigt allerdings den neuen 2564 Controller, im 1284 habe ich nicht alle features Platz?!


    Bei 32MHz wird der aber schön warm, brauch ich jetzt einen Kühlkörper?

  • klingt alles recht schön.


    Und was alles kann jetzt auf dem LCD dargestellt werden?


    Für mich hört sich das alles nach einer komplett neuen Hardware an.
    Läuft das noch auf einem Shadowolf SD2IEC?


    Was ist ein uIEC/SD und was ein uIEC/CF?


    http://www.sd2iec.de <-- down?

  • Wäre das nicht so dick aufgetragen gewesen, wären einige mehr reingefallen :)


    Welcher Teil war dir denn zu dick? =)


    Quote

    Aber ernsthaft: Fastloadersupport für diverse Demos wäre wirklich nicht schlecht....


    Für zwei der genannten Demos (EoD und DEM) weiss ich wie das Protokoll funktioniert, es fehlte bisher nur mal an der Geduld es zu beschreiben und zu implementieren. Auf Dauer ist es allerdings reichlich lästig, für diverse Demos immer wieder einen Sonderfall zu bauen.

  • Nun, ein "Lokales grafisches LCD mit Touchscreen:" wäre natürlich schon cool gewesen! 8)


    Nun, es gibt dieses Video eines ersten Versuchs und ein weiteres mit verbesserter Framerate (aber weniger sichtbarem Hintergrund). Das Display hing allerdings am LPC1768, weil der einen deutlich höheren SPI-Takt schafft. Wie "bedienbar" das ganze am Ende tatsächlich wird ist schwer zu sagen, da für Menus ja nicht immer das ganze Display aktualisiert werden muss und man die notwendige Datenrate evtl. noch durch einen Modus mit weniger Farben reduzieren kann.


    Disclaimer: Ich weiss nicht ob ich das jemals für sd2iec fertigstelle, die Videos waren nur ein paar Experimente mit dem Display.