Hallo Besucher, der Thread wurde 4,9k mal aufgerufen und enthält 8 Antworten

letzter Beitrag von Diddl am

1541-Emul - Betatest

  • Dieser Beitrag ist für:

    • Ankündigung neue Versionen, neue Features, Fixes
    • allgemeine Fragen zum Betatest
    • Bug Einmeldung



    Aktuelle Betaversion: v-.--.--


    Download link: klick


    Zum flashen der Firmware in das Discovery ist nur ein USB Kabel und die kostenlose Flash Software von ST (ST-Link Utility) erforderlich. Die Software bekommkt man auf dieser Seite (auf der zweiten Lasche sind die downloads für Treiber, Utility und Doku): klick



    Offene Bugs:

    • -



    Gefixte Bugs:

    • -
  • Eines möchte ich voraus schicken:


    Ich benötige die Betatester dringend um das 1541_Emul zur Reife zu führen! Alleine bin ich dazu kaum in der Lage. Auf das Feedback bin ich angewiesen, damit es ein vernünftiges Produkt werden kann. Ich mach den Betatest dieses mal öffentlich, es gibt keinen eingeschränkten Kreis.


    Die Betatester müssen aber geduldig sein und dürfen keine große Erwartungshaltung haben. Ich will nichts verschönen, bis das Teil ordentlich Nutzen bringt, wird es wohl noch einige Monate dauern. Es ist sehr komplex und daher nur sehr schwer fehlerfrei zu bekommen.


    Die erste Beta kann noch nicht viel, sie verhält sich eben wie eine 1541. Und das vermutlich noch nicht einmal ganz richtig. Ein SD2IEC ist dem Emu im Moment voll überlegen, und das wird auch noch einige Zeit so bleiben.


    Aber es sieht sehr vielversprechend aus, das Endprodukt wird ein sehr hohes Mass an Kompatibilität mitbringen, vielleicht sogar die U2 einholen (was die Floppy Emulation betrifft). Die ganzen Dinge die ein SD2IEC kann, wird das 1541-Emul mit der Zeit auch können. Kurzfristig fest eingeplante Features sind:

    • Kommandokanal wie beim U2 als eigenes IEC Gerät (#9).
    • Emu Status vom #9
    • Emu Kommando: Grundeinstellungen setzen und abfragen (Schreibsperre, Gerätenummern, Image writeback, Automount, Autoload ...)
    • Emu Kommando: Verzeichnis setzen (CD)
    • Emu Kommando: Verzeichnis erstellen (MD)
    • Emu Kommando: Image mounten, unmounten (LI)
    • Emu Kommando: Image zurückschreiben (FI), wenn die Automatik deaktiviert ist
    • Emu Kommando: Image erstellen (CI)
    • Datei löschen (C64 Dateien und Images)
    • Datei erstellen (C64 Dateien)
    • Direkter Zugriff auf Dateien (mit definierter Datei Erweiterung) der SD Karte über #9. (LOAD, SAVE, OPEN, GET#, PRINT#)


    Was darüber hinaus geht, kann in der Wunschliste eingetragen werden. Wir diskutieren gemeinsam über sinnvolle Erweiterungen im 1541-Emul. Wenn Wünsche machbar sind und fest eingeplant werden, trage ich sie im ersten Beitrag in eine Liste ein.


    --------


    Für den Betabetrieb des 1541-Emul benötigt man die Hardware, die man sich selbst bauen kann. Je nach Fähigkeiten des Tester macht man alles selbst oder verwendet schon vorgefertigte Teile. Im einafchsten Fall langt dazu: ein ARM2IEC (ohne CPU!) + ein STM32F4 Discovery core board + ein paar Drähte.


    Damit der Emulator laufen kann, müssen sich auf der SD Karte zwei oder mehr Dateien befinden: mindestens ein D64 + ein Binary des 1541 DOS. Das Binary muss exakt 16384 Byte lang sein (Binary ohne Ladeadresse). Getestet ist das DOS der 1541 und der 1541-II.

  • Das Discovery hat 4 LED drauf (rot, grün, orange, blau).


    Wenn die 1541-Emul firmware drauf ist werden die LED zur Signalisierung bestimmter Zustände verwendet:

    • die grüne LED zeigt das normale 1541 Laufwerks LED
    • das orange LED zeigt dass der Laufwerksmotor ein ist.
    • das blaue LED zeigt Interrupt Tätigkeit an.
    • das rote LED zeigt dass Daten geschrieben werden (am virtuellen Kopf der 1541)


    Wenn ein grundsätzliches Problem besteht, warum der Emulator nicht starten kann, dann blinken die LED im Kreise. Das kann sein, weil das IEC loopback fehlt, das SD Interface nicht läuft oder kein DOS gefunden wird.



    Nach ca. einer Sekunde sollte die blaue LED "flackern". Alle anderen LED sind aus. Da bei der 1541 fast alles im Interrupt geschieht, flackert die blaue LED immer. Wenn die virtuelle CPU auf der Diskette schreibt oder liest, dann flackert die LED heller, weil die CPU hauptsächlich im Interruptcode arbeitet. Im Stillstand ist das Flackern nur sehr dunkel zu sehen, weil die CPU die meiste Zeit außerhalb des Interrupt ist.


    .

  • Kurzer Zwischenbericht: OpenCBM d64copy funktioniert in allen Modi (CBM, S1, S2, Waarp, Turbo) tadellos. hab es hunderte Male durchlaufen, keine Probleme mehr.



    Wird es von dem Emulator auch den Quellcode geben? Ich würde gern im Rahmen meiner Möglichkeiten beitragen.


    Es wird den Quellcode geben, allerdings erst nach der Beta Phase. Danach wird es bei jedem Release auch den Quellcode geben. Ich möchte die Beta Phase noch selbst abschliessen.



    Discovery-Board hab ich. Ein IEC interface werde ich mir selber Basteln. Hast du irgendwo schon geschrieben welche gpio's du für welche Leitung nimmst?


    Ich habe leider noch kein Schaltbild. Aber eine Lochraster Skizze findest du hier.


    Die Lochraster Skizze basiert auf einem Discovery 32F4 + einem ARM2IEC. Du findest den Schaltplan des ARM2IEC auf der Web Page von Unseen: klick


    Du kannst gerne die Hardware Leitung übernehmen. Das ist etwas was ich nicht gut kann, deshalb habe ich mich am ARM2IEC gehalten. Ich fände es genial wenn man alles auf einer Paltine hätte. Oder wenn es eine Platine gäbe wo ein beliebiges Core Board direkt aufsteckbar ist.


    Die GPIO Leitungen die verwendet wurden sind:



    Die SDCARD ist an den SDIO Pins des F4 angeschlossen. Wenn du was eigenes machst, gerne auch eine 4 Bit Lösung!! Das ARM2IEC ist halt eine 1 BIT Lösung, softwaremäßig ist das nur ein #define.


    Die restlichen IO die noch kommen werden (Taster, Dip Switch, ...) sind unkritisch und können ziemlich frei gewählt werden.


    Da wäre noch der USART2 zu erwähnen. Das ist der Debug Kanal der Wahl. Mit dem Usart3 hatte ich Probleme, habe das noch nicht näher angeguckt.