Wie kann ich von Basic aus hoch bzw runterscrollen?

Eine Richtung ist ja einfach: locate 1,25:print. Aber wie kann ich - ohne Poke und idealerweise ohne Call hoch oder gar seitwärts scrollen (geht letzteres überhaupt?)?

Mein Demo ist schon gut Fortgeschritten mit derzeitig 8 Effekten in “Basic Pur” :slight_smile:

Du kannst Steuer-Code 11 verwenden, um den Cursor nach oben zu bewegen. Wenn das an einer Fenstergrenze passiert, wird der Fensterinhalt (sanft) gescrollt. Wenn du kein Fenster angegeben hast, wird der gesamte Bildschirm gescrollt, falls sich dein Cursor in der ersten Zeile des Bildschirms befindet.

Seitliches Sanft-Scrollen funktioniert (meines Wissens nach) in BASIC nicht, aber du könntest Hardware-Scrolling über die CRTC-Register mit OUT-Befehlen nutzen.

1 „Gefällt mir“

Out-Befehle an die CRTC-Register sind im Allgemeinen der übliche Weg. Ich wüsste nicht, warum das nicht als „reines BASIC“ zählen sollte.

1 „Gefällt mir“

Ist einfach ein “Splin” von mir :wink:
Oder wie sieht es aus mit Peek und Poke?
Ist eigentlich auch noch Basic - und so wird beim C64 auch Sprites usw erklärt.
Aber genau darum geht es mir - zeigen was ohne “rein interne” Routinen möglich ist - also die Dinge, die die Entwickler direkt per Befehl zugreifbar machen.

Out ist da echt ein Zwischending - da es ja ein Mittel zur Kommunikation ist.
Call ist ja ein direkter Aufruf einer internen Routine. Leider komme ich, bis jetzt, nicht ganz darum …

Auf dem C64 kann man POKE auf Register anwenden. Auf dem CPC ändert ein POKE nur Daten im RAM, aber keine Register. Dafür nutzt man OUT.

Klar, es ist immer noch ein BASIC-Befehl, aber wenn du OUT verwendest, pfuschst du direkt in der Hardware herum und musst verstehen, was da passiert, weil BASIC deine Aktionen nicht ausgleicht. Bspw. ändert sich die Bildschirmposition, und ein LOCATE 1,1 befindet sich an einer anderen Stelle auf dem Bildschirm, nachdem du über OUT gescrollt hast. Das habe ich damit gemeint.

Das mit chr 11 klappt super! Damit kann man echt was machen. :slight_smile:

und ein letzter kurzer Tipp: Du kannst STRG+K auf der Tastatur drücken, um den Steuer-Code 11 in einen String einzugeben. Anstelle von print chr$(11) steht dann print “↑” in deinem Code, was ein bisschen schneller als chr$ ist.

1 „Gefällt mir“

Das kommt wahrscheinlich in die Endfassung. Programmiere auf dem PC im Texteditor - da wird das etwas schwerer.
Aber was ich da schon habe sieht interessant aus :slight_smile: