Hello, Guest the thread was called21k times and contains 311 replays

last post from Pusti64 at the

DT64 Native-Copy Test für MP64

  • Du hast aber schon mitbekommen, dass beim verschieben dann zusätzlich noch das File auf der Startdiskette gelöscht wird ?

    Der Unterschied zwischen: Kopieren und Verschieben ist mir bekannt.


    Darum auch die Frage nach einstellbar, so das man auswählen kann:


    - ob man gefragt werden will
    - gleich kopiert wird
    - gleich verschoben wird


    Gruss C=Mac.

  • Darum auch die Frage nach einstellbar, so das man auswählen kann:

    Ich hab da mit TD128 mal etwas herumgespielt:


    An der Stelle $5858 in 128_DESKTOP_AB.s scheint ja der Einsprung für Drag'n'Drop zu sein.
    Bei $589a steht JSR DoDlgBox_Rout -> 20 39 22


    An der Stelle hab ich mich in VICE mal in den TopDesk eingeklinkt und mal kurz was programmiert...
    Dafür brauch ich etwas Platz, 34Bytes. Da ich die im laufenden TopDesk nicht freischaufeln kann und nicht weiß wo man da was rausquetschen kann, hab ich mir vom Kernal was geborgt. Ohne SuperCPU gibts da ein paar freie Bytes für solche Tests :)


    Dann hab ich in VICE an die freie Stelle die folgenden Bytes geschrieben (genaue Adresse ge-X-ed, nicht das jemand auf die Idee kommt den freien Speicher für Programme zu nutzen :bgdev ) :

    Code
    1. > $XXc0 20 5c c2 a9 09 8d 00 dc ac 01 dc 20 5f c2 c0 cf f0 0a c0 6f f0 09 20 39 22 4c 9d 58 4c a4 58 4c ad 58


    Der Befehl legt dann ab der Adresse $XXc0 ein paar Bytes in den Speicher. Wer das oben nicht lesen kann:


    Zuletzt muss ich noch den TopDesk dazu bringen den Code auch auszuführen. Daher:

    Code
    1. > $589a 4c c0 XX ;JMP $XXc0 -> Ersatz für DoDlgBox_Rout...


    Was soll das ganze jetzt?
    Damit kann man Dateien kopieren oder verschieben ohne das die DialogBox erscheint :D



    Das funktioniert hier zumindest mal rudimentär auf den ersten Blick. Hab das jetzt aber nur am TD128 getestet. Dürfte beim TD64 ähnlich funktionieren. Aber da fehlen mir die Einsprungadressen.


    Falls die Datei auf dem Ziel vorhanden ist kommt trotzdem noch die Meldung mit "Überschreiben"...


    Ist nur so eine Idee... ;)
    Markus

  • P.S. Funktioniert auch mit TopDesk64. Ich hab da die Version vom 19.10. verwendet. Zum Test hab ich mir den Stack ausgeborgt. Sollte man für einen Patch aber nicht machen. :whistling:

    Code
    1. > $0100 20 5c c2 a9 7d 8d 00 dc ac 01 dc 20 5f c2 c0 cf f0 0a c0 6f f0 09 20 95 20 4c cb 53 4c d2 53 4c db 53


    Code
    1. > $53c8 4c 00 01 ;JMP $0100 -> Ersatz für DoDlgBox_Rout...
  • Sorry, aber Datensatz $00 (1) ist bis zum letzten Byte voll mit Code und hier einfach mal 34 Byte rausquetschen ist schon recht anspruchsvoll ;-)
    Zudem stellt sich bei diesem Aufwand die Frage. Ob es den geneigten User dann nicht wieder nervt, nun noch zwei Tasten mehr drücken zu müssen ;-)


    Pusti64

  • Sorry, aber Datensatz $00 (1) ist bis zum letzten Byte voll mit Code und hier einfach mal 34 Byte rausquetschen ist schon recht anspruchsvoll

    Das hab ich mir schon gedacht. Und hinten anhängen geht auch nicht? Der Code ist ja frei verschiebbar.


    Zudem stellt sich bei diesem Aufwand die Frage. Ob es den geneigten User dann nicht wieder nervt, nun noch zwei Tasten mehr drücken zu müssen

    Die Frage stellt sich doch gar nicht... drückt man keine Taste bleibt doch alles beim alten. Im Prinzip funktioniert das unter Windows/KDE ähnlich. Auch da *kann* man Tasten drücken um das Verhalten zu beinflussen.


    Aber mir ist schon klar das man sowas erstmal unterbringen muss. War ja auch nur eine Idee...

  • Das hab ich mir schon gedacht. Und hinten anhängen geht auch nicht? Der Code ist ja frei verschiebbar.
    Die Frage stellt sich doch gar nicht... drückt man keine Taste bleibt doch alles beim alten. Im Prinzip funktioniert das unter Windows/KDE ähnlich. Auch da *kann* man Tasten drücken um das Verhalten zu beinflussen.
    Aber mir ist schon klar das man sowas erstmal unterbringen muss. War ja auch nur eine Idee...

    Datensatz $00 für TD128 z.B. geht von $0400 bis $6779. Bis $6998 wird aber schon intern von TD128 für bestimmte Aufgaben genutzt. Ab $6999 bis max $7fff wird dann schon der jeweilige Datensatz $01 bis $0c geladen. Okay, zwei davon werden an eine andere Stelle geladen. Ab $8000 bis $a000 wird zum kopieren usw. genutzt ........


    C mac möchte aber eigentlich eine Voreinstellung haben. Sprich separate Dialogbox und Ergebnisablage ggf im Infoblock. Damit diese Userspezifische Einstellung bei einem Neustart mit geladen wird. Da kommt man bekanntlich mit ein paar freien Bytes nicht weit ;-)


    Pusti64

  • Da kommt man bekanntlich mit ein paar freien Bytes nicht weit

    Musst Du mir nicht sagen ;) Aber ich sehe Du hast Dir den TopDesk schon sehr genau angeschaut :)


    Für mich OK... war aber trotzdem nicht umsonst da ich das für GeoDOS3 evtl. auch gebrauchen kann. Ich werd da das aber dann Standardmäßig mit kopieren (ohne lästigen Dialog) und verschieben mit C= oder SHIFT machen. Überleg ich mir noch. Bei DualTop und GeoDOS gibt's das ja gar nicht (ich habs daher aber auch nie vermisst).

  • Musst Du mir nicht sagen ;) Aber ich sehe Du hast Dir den TopDesk schon sehr genau angeschaut :)
    Für mich OK... war aber trotzdem nicht umsonst da ich das für GeoDOS3 evtl. auch gebrauchen kann. Ich werd da das aber dann Standardmäßig mit kopieren (ohne lästigen Dialog) und verschieben mit C= oder SHIFT machen. Überleg ich mir noch. Bei DualTop und GeoDOS gibt's das ja gar nicht (ich habs daher aber auch nie vermisst).

    Man kann es ja zumindest im Hinterkopf behalten ;-) Vielleicht ist am Ende eine entsprechende Anpassung doch leichter als gedacht. Aber andere Sachen bzw. Probleme sind da jetzt vielleicht noch wichtiger.


    Pusti64

  • ob die 2017-Änderung von Dir wirklich nur in DS 2 gemacht wurde

    Das ist ja der Trick ;-) .


    Die Validate-Funktion vom TD hat mich gestört, da ich da (ich glaube das war noch mit 64NET ;-) ; lang lang ist es her ...) irgendwann Probleme beim Validate von D81 festgestellt hatte. Also habe ich eine Routine gesucht, die das Problem nicht hatte. Das war die aus GeoDOS V2.95. Also rein damit in TD ;-) . Dann kam ich auf die Idee, den Bootsektor in der BAM zu schützen.
    Ergebnis: Zuerst wird Validiert. Dabei wird auch wieder der Bootsektor in der BAM freigegeben. Nach dem Validieren wird direkt auf vorhandenen Bootsektor geprüft und wenn vorhanden in der BAM wieder belegt. Alles in DS2.


    Da ich damals noch nicht mit Native gearbeitet habe, habe ich den Fehler auf CMD-Lfw. nicht bemerkt. Deshalb die Änderung im 128 TD von 2017.


    Gruß
    Werner

  • Genau, wie immer die super Luxusvariante. ^^


    Richtig, es gibt wichtigeres.
    War nur so eine Idee von mir.


    Gruss C=Mac.

    Na jaaaaa, wenn man dann eventuell das Verschieben-Icon weglässt hätte man schon mal 124 Byte übrig. Dann noch darkvision's Routine abgewandelt z.B. shiftL damit die Konfigurationsbox für generell kopieren oder verschieben aufpoppt. Wird aber verdammt eng ...... :gruebel


    Pusti64

  • Na jaaaaa, wenn man dann eventuell das Verschieben-Icon weglässt hätte man schon mal 124 Byte übrig. Dann noch darkvision's Routine abgewandelt z.B. shiftL damit die Konfigurationsbox für generell kopieren oder verschieben aufpoppt. Wird aber verdammt eng ......

    Ob man sich diesen Aufwand antuen will?


    Anscheinend hat es nur mich gestört und es fällt halt im Moment negativ auf, wo viel kopiert wird für die Testerei. :rolleyes:
    Warum Grimm dies nicht einstellbar gemacht hat, wird er sicherlich selber am besten wissen.


    Ist wahrscheinlich eher eine Idee für den GD Desktop für den C64 und C128 :whistling: *duckundweg* :D


    Gruss C=Mac.

  • War ja nur 'ne Idee... hatte 'ne schlaflose Nacht und wollte die Zeit sinnvoller nutzen ;)


    Was wäre denn wenn man das "VERSCHIEBEN"-Icon durch einen geänderten Dialog "eliminiert"? Dann reichen die 124Bytes locker.


    Dateien kopieren mit "OK"(mit extra Text "Dateien kopieren". Zum verschieben der Dateien "JA"(mit extra Text "Dateien verschieben") anklicken. Abbrechen mit "Abbruch". Dann verwendet man nur System-Icons und hätte Deine 124Bytes frei abzüglich ein paar Bytes für den Dialogbox Text.


    MockUp:


    OK/JA absichtlich versetzt, dann muss man die Maus bewegen. Zusätzliche die Option mit C= oder SHIFT-L für die Power-User...


    Aber ich halt mich da jetzt raus, war ja nur eine Idee. Pusti64 kennt sich im TopDesk besser aus. Ich musste mir ja Kernal-Space borgen um das überhaupt hinzubekommen...



    Ist wahrscheinlich eher eine Idee für den GD Desktop für den C64 und C128 *duckundweg*

    Vorsicht 64er Only :bgdev
    Nein, ich glaube nicht mal das W.G. da etwas extra "nicht einstellbar" gemacht hat. Das war es einfach noch nie. Da müsste man mal den Original-TD raus suchen. Aber mit Sicherheit ein Grund warum das für mich einfach immer zu umständlich war. Die Frage ist ob man sowas voreinstellbar machen sollte.
    Ich würde ***NIE*** verschieben und automatisch hinterher die Quelldatei löschen (ausser der Anwender will es). Zu oft hat man als Entwickler hinterher eine BAD BAM und dann ist das Original weg. Never ever. :thumbdown:
    Mit der Option kann der User, wenn er weiß was er will, den Dialog umgehen. Für den Normal-User kommt der Dialog. Evtl. reicht der Platz noch für "SHIFT-L / C=" als Hinweis...

  • Dann könnte man ja auf dieser Basis nachträglich noch ein Patch erstellen.


    Wie ist eigentlich Deine Meinung zum Thema kopieren und verschieben?


    Pusti64

  • Meine Meinung dazu: Echte Unterverzeichnisse anlegen zu können würde mir viel mehr bringen als die Option, jene Kopier-Nachfrage abstellen zu können.

  • Keinen Plan. Aber eigentlich brauchst Du im wesentlichen nur Platz für einen Code, der den eigentlichen Code in den Buffer, der für das Kopieren verwendet wird, nachlädt. Der Buffer dürfte eigentlich frei sein, wenn man im Menü "Verzeichnis anlegen" (wie ich immer das genau heißt, sitze gerade nicht vor einem C64) und zum Verzeichnis anlegen auch nicht benötigt werden - zumindet nicht in voller Größe, denn so viele Daten fallen dabei einfach nicht an.


    War ja schon immer bei den Desktopvarianten so, dass nicht immer der gesamte Code geladen ist.