Posts from DP64 in thread "Heute so gecodet..."

    Beispielsweise tippt man sich normalerweise einen Wolf beim Implementieren des INotifyPropertyChanged Interfaces.

    Finde ich nicht. Einmal als Interface-Angabe hinter den Klassenbezeichner, STRG und . gedrückt, mit ENTER bestätigt, ist in Sekunden erledigt.

    Dann nur noch ein Snippet ähnlich dem Folgenden reinkopieren...

    Display Spoiler
    Code
    public event PropertyChangedEventHandler PropertyChanged;
    private void ThrowNotification(string property)
    {
        if (PropertyChanged == null)
            return;
    
        PropertyChanged(this, new PropertyChangedEventArgs(property));
    }

    und voilá...

    Sooo aufwändig, wie jetzt dargestellt ist das nicht, verwende ich in kleinen Applikationen fast nur.

    Alles eine Frage der Gewohnheit ;)

    Ich nutze für Desktop-Anwendungen fast ausschließlich WPF und finde es auch sehr vorteilhaft, dass ich im laufenden Betrieb die XAML anpassen kann.

    Aber für den tatsächlichen C#-Quellcode habe ich das nie genutzt oder wirklich vermisst.

    aber zumindest dann beim nächsten Aufruf des Codes den neuen ausführen.

    Wenn damit gemeint ist, dass während der Ausführung ( Debug ) der Code geändert werden kann, dann ja. Das geht.

    Wie Du aber schreibst, sind die Änderungen erst nach einem erneutem Start wirksam, zumindest im Quellcode. Aber gut... ist halt keine Interpreter-Sprache. :nixwiss:

    XAML hingegen lässt sich live bearbeiten, falls man WPF verwendet.

    Ein wenig meine GUI überarbeitet. Ich stelle die hier mal zur Verfügung, falls jemand Interesse hat.

    Erwartet bitte nicht zu viel, das sollte nur eine kleine Vereinfachung in der Handhabung für mich selber sein. Es passiert im Grunde nichts weiter, als dass die Befehle für das ef3usb.exe Tool ausgeführt werden. Ich habe nur noch ein bisschen die Fehlerbehandlung erweitert, aber mehr ist noch nicht passiert.

    WICHTIG: Treiber für das EasyFlash³ sollten selbstverständlich bereits installiert sein, das wird bei diesem Tool vorausgesetzt!

    Was kann ich über die GUI steuern?

    Obwohl mir aktuell nur die Funktion des Rippens ( von Diskette in 1541 auf PC ) wichtig war, habe ich versucht, alle Möglichkeiten des ef3usb.exe Tools zu übernehmen.

    Bei jeder Funktion wird zuerst immer die Connection getestet, denn bei mir verliert er die nach ein paar Disketten immer, vielleicht ist das bei euch anders.

    Hier ein kurzer Überblick über die Funktionen:

    Please login to see this attachment.

    Start Server on C64 ( ef3usb.exe s )

    Hiermit wird das Server Tool ef3usb.prg an den C64 gesendet und dort gestartet.

    Test Connection ( ef3usb.exe t )

    Hierüber kann ich einfach den Serverstatus abfragen, also ob ein EF³ Cartridge gefunden wurde.

    Format Disk ( ef3usb.exe f )

    Formatiert eine Diskette, die sich in einer am C64 abgeschlossenen 1541 befindet.

    Copy File to Disk ( ef3usb.exe c )

    Kopiert eine .PRG oder .P00 Datei auf die Diskette in einer an den C64 angeschlossenen 1541.

    Es kann auch ein .D64 File ausgewählt werden, woraufhin dann alle .PRG und .SEQ Files aus dem D64 Image auf die Diskette gespeichert werden.

    Copy Image to Disk ( ef3usb.exe w )

    Kopiert ein komplettes D64 Image auf die Diskette in einer am C64 angeschlossenen 1541.

    Bei dieser Aktion gehen im Gegensatz zu Copy File to Disk die kompletten zuvor auf der Diskette gespeicherten Daten verloren!

    File Ripper ( ef3usb.exe x )

    Hiermit wird auf dem C64 das Directory angezeigt und man kann Datei für Datei wählen, welche auf den PC übertragen werden.

    Der Speicherort ist aktuell noch das Verzeichnis der ausführbaren GUI-Datei. Das wird später noch mal auswählbar gemacht.

    Disk Ripper ( ef3usb.exe r )

    Mit dieser Funktion kann man die komplette Disk in einer am C64 angeschlossenen 1541 als D64 Image an den PC senden.

    Ohne die Funktion multi ripping wird gefragt, wo die Datei unter welchem Namen gespeichert werden soll.

    Die Option multi ripping erlaubt mehrere Disketten zu rippen. Hierzu werden ein paar Optionen angeboten, sobald man diese Checkbox aktiviert:

    Please login to see this attachment.

    • file prefix ( default = disk)
      Der Prefix der D64 Images beim Speichern auf dem PC
    • start (default = 1)
      Um Reihenfolgen einhalten zu können, wenn man mal mit Unterbrechungen arbeitet, kann man hier angeben, ab welcher fortlaufender Nummer die D64 Images gespeichert werden sollen.
    • Mit Klick auf die Schaltfläche mit den drei Punkten, kann man den Speicherort wählen, wo die D64 Dateien gespeichert werden sollen.

    Die Standardeinstellungen speichern also die Images nach dem Schema disk001.d64, disk002.d64, disk003.d64, etc.

    Beim multi ripping wird bei jeder neuen Disk zunächst ein Connection Test durchgeführt!

    Execute Programm

    Hiermit kann man ein PRG vom PC direkt an den C64 senden, was dort automatisch gestartet wird.

    Diese Funktion ist ähnlich der von EasyTransfer.

    Ich glaube, das wichtigste ist gesagt, also wer es brauchen kann, soll zuschlagen. :D

    Es ist sicher nicht fehlerfrei und verbesserungsfähig, also gerne Bescheid sagen, was nicht funktioniert oder fehlt.

    Gruß Arne

    Wie lange braucht der denn so pro Diskettenseite, ich habe das nämlich bis jetzt nur anders herum gemacht, also D64 auf Floppy geschrieben mit der EasyTransfer.exe, das geht recht fix, kanpp 40 Sekunden inkl. Verify, wenn ich mich recht erinnere.

    Eben mal gestoppt. Er braucht pro Diskettenseite ca. 2,5 Minuten.

    Ist zwar deutlich länger, wie 40s, aber dafür kann ich das ohne großes Tamtam gut nebenbei machen. Dauert dann halt etwas, aber irgendwann ist alles digitalisiert und ich kann das verwalten, ordnen und und und...

    :D


    Könntest Du deine GUI zum Download zur Verfügung stellen? Hätten bestimmt einige Interesse dran.

    Sorry, gar nicht gesehen. Klar, kann ich machen. Werde aber erst noch ein wenig nacharbeiten, da manche Funktionen noch etwas hängen. Mir war zuerst mal das Ripping wichtig ^^

    Aber kann ich in den nächsten Tagen gerne zur Verfügung stellen.

    Da ich gerade damit anfange, meine ganzen Disketten nach .D64 zu sichern, wollte ich das natürlich so bequem, wie möglich haben und habe mir eine kleine Oberfläche für die EasyFlash³ USB Utilities erstellt:

    Please login to see this attachment.

    Die Möglichkeit des multi ripping war für mich eigentlich ausschlaggebend für die Entscheidung schnell eine kleine Oberfläche zu erstellen.

    Hier wird einfach ein Rip angestoßen und per Mausklick auf OK nach dem Diskettenwechsel einfach der nächste gestartet, bis man per Klick auf Cancel abbricht.

    Please login to see this attachment.

    Funktioniert soweit ausreichend und die Disketten werden so nach und nach auf den Computer übertragen, wo ich sie dann mit Vice und DirMaster später in Ruhe bearbeiten kann.

    :thumbsup:

    Habe mein Repository für den WiC64 heute umgeschrieben und etwas skalierbarer gemacht.

    Damit gibt es jetzt auch einen VC20 Bereich, zu dem ich die verfügbaren Spiele/Programme in den nächsten Tagen veröffentliche.

    Für den C128 werde ich das selbe tun, wenn es dazu dann den entsprechenden Kernal gibt, das bekomme ich nämlich aktuell noch nicht so ganz hin, dazu fehlen mir die entsprechenden Erfahrungen in der Kernal Entwicklung. ^^

    Mich würde mal interessieren, ob die ganzen Downloads auch mit einem MeatLoaf Modul funktionieren?

    Wenn also jemand eins hat, wäre es cool, wenn er das mal testet und mir Feedback gibt. Eine Liste der C64-Downloads findet ihr hier: Please login to see this link.

    Danke

    :thumbup:

    Mal nix mit Retro... Heute mit Please login to see this link. rumgespielt.

    Bei KA nervt mich immer, dass ich nirgends sehen kann, wieviele Anzeigen ich auf der Merkliste habe.

    Mit Tampermonkey ein kleines JS dazugezwirbelt und schon gefällt mir das viel besser:

    Please login to see this attachment.

    Dabei auch gleich einen Button daneben geflanscht, um dafür nicht ganz ans Ende scrollen zu müssen.

    Ob man das braucht, steht auf einem anderen Blatt, ich finds praktisch.

    :P

    Gegen den ! Operator spricht, dass er oft als "Abkürzung" verwendet wird.

    Kannst Du dazu auch ein Beispiel geben, was Du als "Abkürzung" bezeichnest?

    Ich finde bspw. es spricht nichts dagegen, es bei einem boolschen Datentypen wie folgt zu verwenden:

    Code
    if ( !bHasProperties )
        return;

    Aber ob Du das meinst, weiß ich natürlich nicht.

    All das hat nichts mit Code wie a = b++; zu tun -- das ist völlig ok und wohldefiniert.

    Trotzdem sollte man so etwas vermeiden.

    Edit: Genauso wie den Nicht Operator (!) oder den ternären Operator (Ausdruck) ? x : y;

    Jetzt wirds glaube ich sehr subjektiv. Gerade den ternären Operator verwende ich in bestimmten Situationen bevorzugt, anstatt unnötige if/else-Konstrukte zu schreiben. Eine objektive Begründung, warum man das vermeiden sollte fehlt weiterhin.

    Nö, das erste nicht.

    Ich arbeite nicht täglich mit Python, bin aber der Meinung, mich erinnern zu können, dass auch Python b++ oder ++b versteht?

    Die Frage ist halt immer, braucht man solche Konstrukte so haeufig

    Code
    for ( x=0; x<y; x++ )

    wird denke ich mal häufig verwendet...