DirectorySort 1280

  • DirectorySort 1280

    Leider ist irgendwie nichts schickes zum Sortieren von Directorys für den 128'er auf dem 80-Zeichen-Screen zufinden (oder ich habs nur nicht gefunden), daher hab ich mich mal drangesetzt und und etwa Spaghetti-Code gebastelt (ein kleines Grundgerüst war schon vorhanden).

    Bitte gerne Ausprobieren und Meinungen/Verbesserungsvorschläge kundtun.

    Gruß, Gerd

    PS:
    - Rename File/Rename Disk ist noch inaktiv (kommt aber rein)
    - Delete Filename macht genau das wie es sich nennt, nämlich den Dateinamen im Directory löschen. Es werden Blöcke freigegeben, dazu muss ein Validate gemacht werden
    - nicht wundern: an dem Code ist noch nix optimiert oder aufgeräumt :saint:
    Bilder
    • dc1280.jpg

      27,89 kB, 848×288, 34 mal angesehen
    Dateien
    • dir-sort-1280.prg

      (4,68 kB, 6 mal heruntergeladen, zuletzt: )
    Wer andern eine Bratwurst brät braucht ein Bratwurstbratgerät.
  • Kleines Update.

    Neu hinzugekommen:
    - Dateien umbenennen
    - Disketten umbenennen
    - ID ändern
    - erweiterte ID (5 Zeichen) ändern

    Was könnte man noch so einbauen?

    Gruß, Gerd
    Dateien
    • dirsort-1280.prg

      (5,36 kB, 6 mal heruntergeladen, zuletzt: )
    Wer andern eine Bratwurst brät braucht ein Bratwurstbratgerät.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ADAC ()

  • Ich hab es nur ganz kurz im Emu angetestet:

    a) Das Programm findet den Laufwerkstyp heraus, indem per Memory-Read das vorletzte Zeichen der Statusmeldung gelesen wird. Das versagt natürlich bei diversen Speedern und vermutlich auch bei SD2IEC. Besser wäre das Lesen des Formatbytes, das ist das erste Byte aus "$", wenn dieses mit Sekundäradresse > 1 geöffnet wird. Dann bekommt man:

    Quellcode

    1. "a" für 1541/1571
    2. "c" für SFD/8050/8250
    3. "d" für 1581
    4. "h" für CMD Native
    5. CHR$(0) für SD2IEC außerhalb von Images
    Wenn man allerdings wirklich nur das Verzeichnis bearbeiten will, geht es sogar noch einfacher: Man öffnet wie beschrieben "$" mit Sekundäradresse > 1, setzt dann aber per "B-P" den Pointer zurück auf das erste bzw. zweite Byte und liest somit direkt den Linkpointer auf den ersten Verzeichnisblock ((C) Skern). Die eigentlichen Daten liest man danach blockweise per U1.
    Dann muss man den Laufwerkstyp nicht einmal wissen. Zusätzlicher Vorteil: Das Programm funktioniert dann auch in CMD-Unterverzeichnissen.

    b) Ich habe einen Syntax Error in 3340 bekommen; in der Zeile fehlt ein Doppelpunkt.
    Yes, I'm the guy responsible for the ACME cross assembler
  • @Mac
    zu a: da bin ich auch schon drüber gefallen. Das hab ich jetzt erstmal abgestellt und gehe von 1541/71 aus. Hab ich aber auf dem Schirm und kommt wieder rein. Das das so wie es ist nicht mit allem läuft habe ich schon befürchtet...

    zu b: gefixt (schlicht ein Zeichen zuviel weggelöscht)

    Gruß, Gerd
    Wer andern eine Bratwurst brät braucht ein Bratwurstbratgerät.
  • Mac Bacon schrieb:

    Man öffnet wie beschrieben "$" mit Sekundäradresse > 1, setzt dann aber per "B-P" den Pointer zurück auf das erste bzw. zweite Byte und liest somit direkt den Linkpointer auf den ersten Verzeichnisblock ((C) Skern). [...] Das Programm funktioniert dann auch in CMD-Unterverzeichnissen.
    Damit sich niemand bei Experimenten eine Native-Partition zerschießt, hier noch eine Warnung: Mit der obigen Methode kann man zwar Track und Sektor des aktuellen Verzeichnisses finden, aber Directory-Editoren müssen bei CMD-Verzeichnissen noch ein zweites Problem beachten:
    Meines Wissens enthält jedes Unterverzeichnis in seinem Headerblock einen Zeiger zurück auf seinen Verzeichniseintrag im übergeordneten Verzeichnis. Und zwar nicht nur Track+Sektor, sondern auch noch den Byte-Offset innerhalb des Blocks (oder die Eintrags-Nummer von 0 bis 7, weißnichmehr).
    Wenn also beim Sortieren eines Verzeichnisses ein Unterverzeichniseintrag verrutscht, müsste anschließend noch der Rückwärtslink korrigiert werden. Oder man schreibt den Editor so, dass Verzeichniseinträge immer an ihren Platz bleiben müssen.
    Yes, I'm the guy responsible for the ACME cross assembler
  • - zeigt jetzt Datei-Typ und -Größe an (Editieren ist noch angedacht)
    - löschen von Dateien (nicht nur von Dateinamen) ist auch in der Mache

    Wie immer: wer noch Ideen hat, immer her damit :)

    Gruß, Gerd
    Dateien
    • dirsort-1280.prg

      (5,87 kB, 5 mal heruntergeladen, zuletzt: )
    Wer andern eine Bratwurst brät braucht ein Bratwurstbratgerät.
  • Du könntest den Text rechts im Optionsfeld um ein zeichen weiter nach rechts schieben, dann würde das "DEL" nicht so am = kleben.

    Ich würde es übersichtlicher finden wenn die Details gleich rechts neben dem Dateinamen zu sehen wäre. Platz dafür wäre ja offensichtlich genug.
    Das Detailfeld könnte man ja zb. dafür nutzen um anzuzeigen wo sich die ausgewählte Datei auf der Diskette befindet. Wenn das möglich ist.


    Die Farbe zu ändern wäre noch ein nettes Feature.

    -= Neu in meiner Sammlung =-
    -= Modding =-


    Nichts hält länger als ein Provisorium
  • Benutzer online 1

    1 Besucher