Hallo Besucher, der Thread wurde 981 mal aufgerufen und enthält 5 Antworten

letzter Beitrag von wattie am

Frage zu FLD Scroller

  • Seit Tagen versuche ich nun schon vergeblich einen Scroller zu programmieren, der sich während des Scrollens variabel nach oben und unten bewegt. Hab's versucht mit einem FLD Effekt hinzubekommen, und mit der Routine unten bekomme ich den Scroller auch problemlos um die 7 möglichen Zeilen über $d011 rauf und runterbewegt.
    Nun möchte ich aber erreichen, das ich mehr als diese 7 Zeilen hinbekomme. Und da komme ich nicht mehr weiter.


    Wenn ich es richtig verstanden habe geht es darum, das Zeichnen einer badline zu verhindern was dann dazu führt, das der Screen von da an nach unten verschoben wird. Hab ich mir da überhaupt das richtige Beispiel herausgesucht? Andere Beispiele zum Thema FLD hab ich leider nicht zum Laufen bekommen. Kann mir jemand mal freundlicherweise nen Tipp geben, wie ich den Bildschirm um x Zeilen nach unten verschoben bekomme?


  • Hi,


    so wie ich das sehe ist da in der FLD Schleife ein kleiner Fehler. Badlines entstehen soweit ich weiss, wenn ($d012 and 7) = ($d011 and 7) ist. Der Trick bei FLD ist der, dass man den Softscrollwert in $d011 so verbiegt, dass diese Kondition niemals eintritt.
    Wenn du in Zeile 11 deines Listings noch n sbc #0 (oder sec, sbc #1) einfügst sollte das eigenlich gehen. Dann ist der Softscrollwert immer um 1 kleiner bzw. um 7 größer (wenn d012 and 7 = 0 ist) .

  • Danke für die Hinweise. Mit meiner Beispielroutine bin ich da leider nicht weitergekommen. Hab mir die aus sauhunds Link nochmal angesehen, die funktioniert allerdings auch nicht so richtig. Hab das ganze mal ein wenig abgeändert, und nun funktionierts. Vielleicht hilfts ja auch jemand anderem mal weiter.


    Eine Frage hab ich aber noch. Um das Verschieben des Screens erst in der Mitte des Bildschirms zu beginnen, warte ich am Anfang der FLD Routine über $d012 auf eine bestimmte Zeile bevor das Verschieben beginnen darf. Funktioniert auch, allerdings springen die Zeichen in beiden Bildschirmhälften unmotiviert auf und ab. Wie kann ich das am besten unterbinden? Rvtl. über die YSCROLL Bits in $d011?



  • Eine Frage hab ich aber noch. Um das Verschieben des Screens erst in der Mitte des Bildschirms zu beginnen, warte ich am Anfang der FLD Routine über $d012 auf eine bestimmte Zeile bevor das Verschieben beginnen darf. Funktioniert auch, allerdings springen die Zeichen in beiden Bildschirmhälften unmotiviert auf und ab. Wie kann ich das am besten unterbinden? Rvtl. über die YSCROLL Bits in $d011?


    Richtig. Du musst vor der ersten Bildschirmzeile $d011 auf einen festen Wert zurücksetzen, damit der Teil oberhalb des FLD nicht rumzittert. Evtl. muss man dann noch n bisschen am Timing rumwerkeln, damit der Übergang zwischen beiden Bildschirmteilen glatt bleibt, wobei es eigentlich reichen sollte, die richtige Rasterzeile für den FLD-Start zu finden.