Hallo Besucher, der Thread wurde 81k mal aufgerufen und enthält 735 Antworten

letzter Beitrag von skern am

DT128-Native-Copy Test für MegaPatch128

  • Hab ich eine andere Version wie Du? Bei 4f34 finde ich einen JMP-Befehl.

    Ohne es böse zu meinen, das ist ein Problem. Ich werde definitiv nichts am Quelltext probieren, wenn ich nicht die aktuelle Version habe ;-) ....

    denn wenn die "Schmale Anzeige" aktiviert wird (wer macht das freiwillig?!?) sind es ja 10 Icons.

    Ich!!!! :winke:


    Ich finde das bei MP3-128 gut. Bis zu 11 Dateien (Icon-Modus) in einer Zeile bei voller Fensterbreite.


    Gruß

    Werner

  • Ohne es böse zu meinen, das ist ein Problem. Ich werde definitiv nichts am Quelltext probieren, wenn ich nicht die aktuelle Version habe ;-) ....

    Ich glaub so war das auch nicht gemeint...


    Ich!!!! :winke:

    128er-Hardcore-user... das ist doch ein GUI-SuperGAU ;)


    Pusti64 : Falls Du selbst eine einfache Lösung findest... auch gut. Ich glaub bei 5120/5124 gibt es ein Byte je Fenster für Anzahl Icons je Zeile/Seite. Zusammen mit $0514 für die Datei an erster Stelle im Fenster lässt sich da eine Abfrage einbauen. Ich hab da mal wieder etwas an andere Stelle reingefummelt:

    Code
    1. .C:4f24 20 90 08 JSR $0890
    2. .C:4f27 D0 FA BNE $4F23
    3. .C:4f29 EA NOP
    4. .C:4f2a EA NOP
    5. .C:4f2b EA NOP
    Code
    1. .C:0890 AE 2F 04 LDX $042F
    2. .C:0893 BD 1C 05 LDA $051C,X
    3. .C:0896 18 CLC
    4. .C:0897 7D 14 05 ADC $0514,X
    5. .C:089a DD 20 51 CMP $5120,X
    6. .C:089d 90 03 BCC $08A2
    7. .C:089f A9 00 LDA #$00
    8. .C:08a1 60 RTS
    9. .C:08a2 A9 FF LDA #$FF
    10. .C:08a4 60 RTS

    Wo Du den Code bei $0890 unterbringst bleibt Dir überlassen... Der addiert die Anzahl der angezeigten Icons mit der ersten Position und vergleicht das mit der Anzahl Icons je Zeile. Die Addition ist notwendig weil das erste Icon nicht die Nr#1 sein muss. Ist mir beim testen mal passiert.


    Damit wird zumindest bei weniger als X Dateien das ScrollUp verhindert. Bei mehreren Dateien scrollt das ganz normal.

  • Pusti64 : Falls Du selbst eine einfache Lösung findest... auch gut. Ich glaub bei 5120/5124 gibt es ein Byte je Fenster für Anzahl Icons je Zeile/Seite. Zusammen mit $0514 für die Datei an erster Stelle im Fenster lässt sich da eine Abfrage einbauen. Ich hab da mal wieder etwas an andere Stelle reingefummelt:

    Code
    1. .C:4f24 20 90 08 JSR $0890
    2. .C:4f27 D0 FA BNE $4F23
    3. .C:4f29 EA NOP
    4. .C:4f2a EA NOP
    5. .C:4f2b EA NOP
    Code
    1. .C:0890 AE 2F 04 LDX $042F
    2. .C:0893 BD 1C 05 LDA $051C,X
    3. .C:0896 18 CLC
    4. .C:0897 7D 14 05 ADC $0514,X
    5. .C:089a DD 20 51 CMP $5120,X
    6. .C:089d 90 03 BCC $08A2
    7. .C:089f A9 00 LDA #$00
    8. .C:08a1 60 RTS
    9. .C:08a2 A9 FF LDA #$FF
    10. .C:08a4 60 RTS

    Wo Du den Code bei $0890 unterbringst bleibt Dir überlassen... Der addiert die Anzahl der angezeigten Icons mit der ersten Position und vergleicht das mit der Anzahl Icons je Zeile. Die Addition ist notwendig weil das erste Icon nicht die Nr#1 sein muss. Ist mir beim testen mal passiert.


    Damit wird zumindest bei weniger als X Dateien das ScrollUp verhindert. Bei mehreren Dateien scrollt das ganz normal.

    Dein Code funktioniert wie meiner leider nur Zeilenweise aber nicht Seitenweise :-(

    Ist aber vom Ansatz her scheinbar platzsparender als meiner. :-)


    Trotzdem vielen Dank für die schnelle Antwort

    Pusti64

  • Dein Code funktioniert wie meiner leider nur Zeilenweise aber nicht Seitenweise :-(

    Ist aber vom Ansatz her scheinbar platzsparender als meiner. :-)

    Hm... nuja... bin ja kein TopDesk-Profi ;)


    Damit ich verstehe was Du meinst:

    Ich hab ein Laufwerk mit 15Dateien.

    Fenster ist so groß das drei Dateien je Zeile und zwei Zeilen angezeigt werden.

    Ich stehe am Anfang der Liste und drücke CURSOR Links (Seite zurück).

    Ich stehe Bei Position #10. Das ist MAX-3*2.

    Ich drücke CLR/HOME und stehe auf der letzten Seite.

    CURSOR Links bringt mich zu Psoition #7 (Das ist Max-3+1-3*2).

    Maxmimiere ich das Fenster dann geht CLR/HOME zum Ende = Position #11.

    CURSOR Left bringt mich zu Position #1. OK... Hier hängt es dann denn ein weiterer CURSOR Links bringt mich wieder zu Pos. 252. Ich glaube fehlt nur noch eine Kleinigkeit um zur letzten Position -X zu springen.


    P.S.

    Wenn Du statt CMP $5120,X (Icons je Zeile) ein CMP $5124,X (Icons je Seite) verwendest... klappt es dann? Hier scheint das besser zu funktionieren. CURSOR rechts versucht zwar trotzdem zu blättern, aber das kann man verschmerzen.

  • Hast Du schon Cursor(rechts) + Shift probiert? Damit erscheint dann aber wieder die 253 bei mir.


    Pusti64

  • Hast Du schon Cursor(rechts) + Shift probiert? Damit erscheint dann aber wieder die 253 bei mir.

    Aktuell ja... entweder ich verstehe nicht was Du meinst (wie viele Dateien und was ist Position#1) oder aber ich teste was anderes wie Du ;)

    Code
    1. .C:0890 AE 2F 04 LDX $042F
    2. .C:0893 BD 1C 05 LDA $051C,X
    3. .C:0896 18 CLC
    4. .C:0897 7D 14 05 ADC $0514,X
    5. .C:089a DD 24 51 CMP $5124,X
    6. .C:089d 90 03 BCC $08A2
    7. .C:089f A9 00 LDA #$00
    8. .C:08a1 60 RTS
    9. .C:08a2 A9 FF LDA #$FF
    10. .C:08a4 60 RTS
  • Hast Du schon Cursor(rechts) + Shift probiert? Damit erscheint dann aber wieder die 253 bei mir.

    Aktuell ja... entweder ich verstehe nicht was Du meinst (wie viele Dateien und was ist Position#1) oder aber ich teste was anderes wie Du ;)

    Code
    1. .C:0890 AE 2F 04 LDX $042F
    2. .C:0893 BD 1C 05 LDA $051C,X
    3. .C:0896 18 CLC
    4. .C:0897 7D 14 05 ADC $0514,X
    5. .C:089a DD 24 51 CMP $5124,X
    6. .C:089d 90 03 BCC $08A2
    7. .C:089f A9 00 LDA #$00
    8. .C:08a1 60 RTS
    9. .C:08a2 A9 FF LDA #$FF
    10. .C:08a4 60 RTS

    Sorry ich hatte Probleme mit meinem System und kann jetzt erst Antworten.

    Mit CMP $5124,X (Icons je Seite) funktioniert es einwandfrei.

    Mit der schmalen Anzeige sogar auch.


    Perfekt!


    Vielen Dank!

    Pusti64

  • Sorry ich hatte Probleme mit meinem System und kann jetzt erst Antworten.

    Nur kein Streß... ;)

    Prima das es zu funktionieren scheint... :thumbup: Ich würde das aber vorher ausgiebig testen, nicht das es doch noch Probleme an anderer Stelle gibt...

    Außerdem muss ich noch schauen, wie ich diese 18Byte am effizientesten unterbringen kann.


    Danke und Gruß Pusti64

  • Vielen Dank!

    Ein kleiner Hinweis dazu noch: Die verlinkten Quellcodes des TD V1 sind irgendwie eine "Zwischenversion". Beide tragen als Klasse V1.3. Der originale TD64 und der aus Geos 64 V2.5 sind V1.2.


    Und speziell die 64er-Version hat ein paar Fehler. Einzelheiten und ein Patch dazu hier: originale GEOS-Applikationen jungfräulich


    Gruß

    Werner

  • Wenn ich das jetzt richtig verstanden habe, müsste es ja eigentlich reichen dieses bne durch ein beq zu ersetzen. Oder übersehe ich da noch etwas anderes?


    Pusti64

  • Welche bne willst Du da durch beq ersetzen? Zeile 4 und 27? Dann wird bei 1541/81 und Native auf ein/doppelseitig getestet. Nein, das scheint schon so zu passen.


    In Zeile 28 wird nur bei einer einseitigen formatieren und bei einer 1571 wieder in den doppelseitigen/1571-Modus geschaltet.


    Ich TopDesk1 code ist das auch so vorhanden.


    Ging es darum das eine 1541-Disk nicht nach 1571 formatiert werden kann? Ich hab jetzt gefühlt 1000 Versuche unter VICE128 gebraucht (Ständige Abstürze bzw. Laufwerkshänger...). Aber es hat dann doch geklappt. Danach hat TopDesk das D71, das zuvor 166Kb angezeigt hat, mit 332Kb frei angezeigt.


    Ich weiß nicht ob es am I-Befehl im Anschluss an U0>M1 hängt. Den hatte ich jetzt mal abgeschaltet.


    Pusti64 : Wenn Du den Format-Fehler bei Dir reproduzieren kannst, dann ändere doch mal ab $6EA9 den U0>Mx-Befehl so ab:

    Code
    1. >C:6ea9 55 30 3e 4d 31 00

    Das $00 Byte ersetzt ein $0D. Damit wird der I-Befehl nicht an das Laufwerk gesendet.


    Was macht denn die 1571 wenn eine 1541-Disk im Laufwerk liegt, der Anwender auf 1571 geschaltet hat und dann Initialize an das Laufwerk sendet? Die 1571 ließt doch dann die Disk neu ein, stellt fest es ist eine 1541... landet die 1571 dann automatisch wieder im 1541-Modus? Da fehlt mir das Wissen dazu...


    Ohne das entfernen des I-Befehls bin ich bei Versuch zu formatieren direkt wieder im DeskTop gelandet, da wurde gar nichts formatiert. Gab aber auch keinen Fehler.