Eine Linie mit variabler Höhe printen
Verfasst: 30.07.2025 09:51
Hallo liebe kreative Gemeinde.
Wir bewegen uns in der Assembler-Welt!
Die Frage hört sich erstmal simpel an.
Ich möchte eine Linie auf den BS printen. Die Linie fängt immer auf der gleichen Höhe an (z.B.) Mitte des Bildschirmes und hat die Höhe x.
Der wert x wird am Anfang ausgelesen und bestimmt die Höhe der Linie. Bei jedem Durchgang ändert sich x und die Höhe der Linie variiert entsprechend. Klingt erstmal einfach mit einer entsprechenden Schleife und Rücksprung bis der Wert x erreicht wurde.
Aber so will ich es nicht machen!
Ich möchte Zeit sparen und will auf eine Schleife mit Sprung usw. verzichten.
Der Wert soll tatsächlich immer direkt in den BS-Speicher geprintet werden, und zwar x-Mal. Die Print-Kette müsste also so lang sein, wie x maximal sein kann (bzw. der Bildschirmoberrand erreicht wird) und dann aber in Abhängigkeit von x aufhört (z.B. mit einem RTS).
Meine 2 Ideen:
1. Idee: Nach jedem Print folgt ein NOP - mittels selbstmodifizierenden Codes speichert man ein RTS (in Abhängigkeit von x) an die richtig Stelle.
Könnte aufwendiger und langsamer für kleine x im Vergleich zur Schleife werden.
2. Idee: (Sehr Speicherintensiv). Für jeden möglichen x-Wert eine eigene Routine, die dann in Abhängigkeit von x klein bzw. recht groß sein kann. Ich rechne mit einem maximalen x-Wert von etwa 30-35.
Gibt es noch schnellere und bessere Wege bzw. Ideen??
Grüße
Peter
Wir bewegen uns in der Assembler-Welt!
Die Frage hört sich erstmal simpel an.
Ich möchte eine Linie auf den BS printen. Die Linie fängt immer auf der gleichen Höhe an (z.B.) Mitte des Bildschirmes und hat die Höhe x.
Der wert x wird am Anfang ausgelesen und bestimmt die Höhe der Linie. Bei jedem Durchgang ändert sich x und die Höhe der Linie variiert entsprechend. Klingt erstmal einfach mit einer entsprechenden Schleife und Rücksprung bis der Wert x erreicht wurde.
Aber so will ich es nicht machen!
Ich möchte Zeit sparen und will auf eine Schleife mit Sprung usw. verzichten.
Der Wert soll tatsächlich immer direkt in den BS-Speicher geprintet werden, und zwar x-Mal. Die Print-Kette müsste also so lang sein, wie x maximal sein kann (bzw. der Bildschirmoberrand erreicht wird) und dann aber in Abhängigkeit von x aufhört (z.B. mit einem RTS).
Meine 2 Ideen:
1. Idee: Nach jedem Print folgt ein NOP - mittels selbstmodifizierenden Codes speichert man ein RTS (in Abhängigkeit von x) an die richtig Stelle.
Könnte aufwendiger und langsamer für kleine x im Vergleich zur Schleife werden.
2. Idee: (Sehr Speicherintensiv). Für jeden möglichen x-Wert eine eigene Routine, die dann in Abhängigkeit von x klein bzw. recht groß sein kann. Ich rechne mit einem maximalen x-Wert von etwa 30-35.
Gibt es noch schnellere und bessere Wege bzw. Ideen??
Grüße
Peter