Hallo Besucher, der Thread wurde 1,5k mal aufgerufen und enthält 7 Antworten

letzter Beitrag von cbmhardware am

Softscroll

  • Ich habe mich jetzt mal mit den TED-Registern beschäftigt und eine kleine Scroll-Routine geschrieben. $ff07 (X-Scrollposition: 0-7) habe ich wie beim C64: $D016 verwendet. Die Verzögerung, damit es nicht viel zu schnell wird, habe ich mit Zählen der Rasterdurchläufe gelöst. Mit den Rückwärtszählern wurde es etwas hakelig.


    Ist es das oder geht da noch etwas ?



  • Ich hab es nur einmal kurz mit xplus4 ausprobiert, aber Softscrolling sehe ich da nicht. Das scrollt doch zeichenweise?!


    EDIT: Ok, nach einem Blick auf den Source:
    1. Das Hauptprogramm läuft direkt in den Interrupt-Handler hinein, da fehlt RTS oder JMP *.
    2. Im Bereich "softscroll" wird ein Zähler solange inkrementiert und ins TED-Register geschrieben, bis er Null ist. Dann wird er auf $ff gesetzt => In jedem Durchlauf wird Null ins Register geschrieben, da tut sich also nichts.

  • Ich habe die zwei Dusseligkeiten kurz (oben) nachgebessert - danke ! :)


    Sieht aber immer noch etwas ruppig aus.


    Edit: auf einem echten Plus/4 läuft es schneller und etwas flüssiger.

  • $0a wird immer noch in jedem Durchlauf auf einen festen Wert gesetzt:

    Wie wäre es mit:

    Code
    1. dec $0a
    2. lda $0a
    3. and #$07
    4. sta $0a
    5. sta $ff07
    6. cmp #$07
    7. bne skip_hardscroll
    8. ; hardscroll:
  • Wie wäre es mit:

    Danke, das sieht ganz gut aus. Ich hatte versucht, das Register abzuarbeiten und danach den Hardscroll durchzuführen. Mit mehreren Durchläufen löst sich da wahrscheinlich ein weiteres Problem. Der C16 (P/4) ist etwas schneller. Da dürfen die Verzögerungen nicht zu groß werden, sonst baut man sich auch selbst noch das Ruckeln rein.


    So läuft es schon einigermaßen geschmeidig ...

  • Da sieht man immer noch kein Softscrolling, denn $0a wird immer noch konstant gesetzt.

    Code
    1. . 1068 a9 08 lda #$08
    2. . 106a 85 0a sta $0a

    Nimm diese beiden Befehle raus, und Du hast Softscrolling.

  • Ops, übersehen. :anonym Danke für Deine Hilfe, jetzt ist es perfekt:


  • Habe noch kurz die Vertikale getestet und das funktioniert auch prima. Den Source muss ich noch aufräumen und einige Labels einfügen, sonst blickt da kein Mensch durch. :)


    PRG hängt an. Der Text hüpft lustig hoch und runter.