Drei Zeilen Code und das Ding rennt sofort los. Cool. ![]()
Edit:
In Mikes POKE-Listing auf Seite 2 fährt er eine sich 2x wiederholende (für sauberes Loopen) lange im RAM liegende Textzeile entlang mit einem 40-Zeichen-Sichtfenster, das per Print Befehl ausgegeben wird. Der Pointer (A) wird zwar umgebogen auf die neue "Cursor-Position" durch die POKEs in Zeile 19, das Basic denkt aber immer noch, a$ ist 40 Zeichen lang, daher klappt das mit den Ausschnitten. Mike setzt das Ende des Basic-Listings auf Adresse 16384 durch die POKEs in die Adressen 46 und 45 ganz zu Beginn. Dadurch setzt Basic den String-Start auf 16387, was Mike weiß und in seinem Code schon fest eingeplant hat durch Definition A=16387.
Der CLR-Befehl am Anfang ist zwingend nötig, warum weiß ich nicht. Ich habe nur ausprobiert, dass das Programm ohne diesen Befehl nicht läuft.
On- (Bedingung) Goto13:Goto14
heißt, dass bei Nichterfüllen der Bedingung der Interpreter hinter dem Doppelpunkt weitermacht. Dadurch kommt es zu der Kopieraktion ins RAM, von der ich zwar gewusst habe dass sie stattfinden muss, aber nirgendes eine funktionierende Schleife dazu entdeckt hatte, weil ich die BASIC Syntax "On-" nicht kannte.
Ich habe eben jetzt erst wirklich verstanden was das Programm macht. Ich dachte davor an so Sachen wie "Mike schreibt in die Bitplane" wegen der Adressen die er benutzt hat. und mich dann gewundert warum er ohne Grafikmodus auskommt. Naja, Anfänger-Schnellschuss-Denken.
Ich schreibe diese Zeilen auch für oobdoo und alle anderen, die offen von sich sagen, dass sie hier und da noch dazulernen wollen, weil sie noch nicht alles wissen. Wer weiß wer von den Mitlesern noch in ähnliche Denkfallen getappt ist.