Beiträge von Milkymalk im Thema „Programm PRINTet mit Leerzeilen dazwischen“

    Also irgendwie blicke ich nicht durch, was da jetzt den Trick macht. Das ; am Ende ist es nicht.

    EDIT: Ah, du springst bei der Grafik die einzelnen Zeilen nochmal an, statt den normalen CRLF vom Print zu verwenden. Ja, das wäre eine Möglichkeit ... Hm, je nachdem wie sich die Ablage der Grafiken im Speicher (oder deren Auslagerung auf Disk) so entwickelt wäre das wirklich besser.

    Ach du meinst die Steuerzeichenvariante, bei der man das letzte Zeichen vorab schreibt und in Position schiebt? Ja, das ginge auch. Dann muss ich aber beim Schreiben der Beschreibungen und anderer Strings immer im Kopf behalten, dass ich das mache, wenn der Text hinten anstößt. Da bin ich auf Dauer zu faul, ich schreibe lieber vorab eine Routine und bin dann sorgenfrei :D

    Code
    10 REM ### SET CURSOR ###
    11 POKE781,CY:POKE782,CX:POKE783,0:SYS65520
    12 IFW$=""THENGOTO20
    14 PRINTLEFT$(W$,LEN(W$)-1):POKE1024+CX+CY*40+LEN(W$)-1,FNSC(ASC(RIGHT$(W$,1)))
    15 POKE55296+CX+CY*40+LEN(W$)-1,12
    19 W$=""
    20 RETURN

    Das ist jetzt die komplette Routine. Ich setze W$ auf den String, den ich PRINTen will, CY und CX auf die Koordinaten, und mache GOSUB 10. Mal schauen, ob ich überhaupt andere Schriftfarben verwende, denn wenn nicht färbe ich die letzte Spalte einmal durchgehend und nehme das dort raus, auch wenn es nur ein paar Millisekunden kostet, das immer wieder zu tun.

    Achso, da steckt hinten noch eine Funktion drin, die PETSCII in Bildschirmcode übersetzt. Das würde jetzt den Rahmen sprengen und beim N3rdroom ist das alles wunderbar erklärt ;)

    Hm, so etwas habe ich jetzt nach ausgiebigem Testen auch befürchtet. Dann schreibe ich am besten eine Subroutine, die den zu PRINTenden String hinten abschneidet und das letzte Zeichen POKEt. Alles zu POKEn habe ich schon ausprobiert, aber das ist dann doch ZU langsam.

    Mir ist das aber auch neu. Bisher dachte ich, logisch verbundene Zeilen kommen nur bei direkter Eingabe zustande. Aber bisher habe ich aus Ästhetikgründen auch immer ein Zeichen ringsum Platz gelassen, darauf habe ich diesmal verzichtet.

    Folgendes passiert:

    1. Die Unterteilungslinien werden gePRINTet

    2. Die Beschreibung oben rechts wird gePRINTet, dabei wird der Cursor per SYS-Befehl an den Anfang der nächsten Zeile gesetzt:

    Code
    POKE781,CY:POKE782,CX:POKE783,0:SYS65520

    3. Der Cursor wird per Steuerzeichen nach oben links versetzt und die PETSCII-Grafik wird per einfacher aufeinanderfolgender PRINT-Befehle ausgegeben.

    Aus irgendeinem Grund überspringt er dabei jede zweite Zeile. Wenn ich dann mit dem Cursor runtergehe und scrolle verschwinden auch immer jeweils zwei Zeilen auf einmal oben aus dem Bild. Meine Vermutung ist, dass das mit der Erkennung zusammenhängender Zeilen zusammenhängt, aber ich bin da absoluter Laie und weiß nicht weiter. Kann mir da jemand helfen?