Zeilenvorschub bei Texteingabe

On Wednesday the 03.07.2019 the forum will have a longer downtime due to the software conversion. Thanks for your understanding

  • Hallo,

    Zeilenvorschub verhindern ist natürlich eins der Basic-Standard-Themen.


    Versuchs mal mit:

    poke214,23:print"text";:


    Grundsätzlich prüft das Basic Speicherstelle 214. Wenn man sich in Zeile 24 befindet findet kein Rollen statt, wenn man dem Betriebssystem vortäusscht, daß es sich in einer niederigeren Zeile befindet.


    Schönen Gruß.

  • Oha, vielen Dank, aber ich meinte nicht das scrollen nach unten in Zeile 25 oder so.


    Ich dachte eher an einen Texteditor in Assembler für Scrolltexte etc., in dem man z.B. einen Ausgangs-Bildschirm voll gefüllt mit "@"´s vorfindet.


    Wenn ich die Seite editiere (mit $ffcf), wird ja beim überschreiten des Zeilenendes jeder zweiten Zeile (80 Zeichen halt) der komplette Bildschirm unterhalb des Cursors um eine Zeile runtergescrollt und eine Leerzeile erzeugt.


    Das möchte ich gerne unterbinden.

  • Wenn ich die Seite editiere (mit $ffcf), wird ja beim überschreiten des Zeilenendes jeder zweiten Zeile (80 Zeichen halt) der komplette Bildschirm unterhalb des Cursors um eine Zeile runtergescrollt und eine Leerzeile erzeugt.


    Das möchte ich gerne unterbinden.

    Ich glaub, das kannst Du gepflegt vergessen. Wenn es nur um die jeweils aktuelle Zeile ginge, könnte man da wohl was mit einer Manipulation der Zeilenverknüpfungstabelle erreichen: Also wenn man vor der Ausgabe des letzten Zeichens dafür sorgt, dass die nächste Zeile bereits offiziell eine Erweiterung der aktuellen ist, würde ja keine Leerzeile eingefügt.

    Aber da Du $ffcf benutzt, geht das nicht: Da kann der Benutzer ja z.B. auch CLEAR drücken, das löscht die Verknüpfungstabelle.


    Um eine eigene Eingabe/Ausgaberoutine wirst Du wohl nicht herum kommen - dafür hast Du dann aber auch keine Probleme mit dem Quote-Modus und ähnlichem Kram.


    Eine Mischform wäre noch dies: In einer Schleife via $ffe4 Tasten abfragen, evtl. Sondercodes ausfiltern, druckbare Zeichen selbst zu Screencode wandeln, diesen per $ea13 ausgeben (A=Screencode, X=Farbe) und danach immer noch ein CURSORRIGHT per $ffd2 senden, um den Cursor ein Zeichen weiter zu bewegen. Zeilen werden dann nicht mehr eingefügt, CURSORRIGHT tut das ja nicht (bis auf Zeile 25 natürlich).