UP
UP | |
Syntax: | UPB / W <zl>,<sp>,<bt>,<ho> |
Parameter | |
zl: Bildschirmzeile (0..24) | |
sp: Bildschirmspalte (0..39) | |
bt: Breite (1..40) | |
ho: Höhe (1..25) | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Bildschirmkontrolle |
Aufgabe: | Aufwärtsscrollen eines Bildschirmbereichs |
Abkürzung: | keine (TSB: uP für UPB) |
Token: | $64 $11 (100 17) / $64 $12 (100 18) |
Verwandte Befehle | |
DOWN - LEFT - RIGHT |
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort UP.
Typ: Anweisung Syntax: UPB / W <zl>,<sp>,<bt>,<ho>
UPB bzw. UPW erlaubt es dem Programmierer, Bereiche des Textbildschirms inklusive der Farben zeilenweise nach oben zu scrollen. In der untersten, freiwerdenden Zeile werden je nach Typ des Befehls Leerzeichen aufgefüllt (UPB, das "B" steht für "blank"), was nur einen einzigen kompletten Scrollvorgang erlaubt, oder die oben herausfallenden Zeichen wieder eingefügt (UPW, das "W" steht für "wrap"), was mit dem gleichen Inhalt immer wieder durchgeführt werden kann.
Leider handelt es sich bei diesem Scrolling um ein zeichenweises Scrolling, das in jedem Falle recht ruckelig wirkt. Pixelweises Scrolling ("Smooth Scrolling") ist mit Simons'-Basic-Befehlen nicht möglich.
Bei Über- oder Unterschreitung der zulässigen Werte (siehe Box) meldet der Interpreter die Fehlermeldung ?BAD MODE ERROR.
Beachten: Wenn UPB oder UPW direkt am unteren Bildschirmrand enden (Zeile 24), kann es öfter zu "Geisterzeichen" dort kommen, die sehr störend sein können, allerdings keinen schwerwiegenden Folgefehler verursachen (behoben in TSB).
Beispiel[Bearbeiten | Quelltext bearbeiten]
100 PRINT CHR$(147): COLOUR 11,12: CSET 0 110 FOR X=0 TO 11 120 PRINT AT(X+15,X) CHR$(109) 130 NEXT 140 FOR X=12 TO 23 150 PRINT AT(23-X+15,X) CHR$(110) 160 NEXT 170 PAUSE 2 180 REPEAT: GET X$: UPW 0,15,12,24: UNTIL X$>""
Das Beispiel erzeugt eine wandernde Zickzacklinie. Abbruch ist per Tastendruck möglich. UPW lässt hier den Zickzack nach oben bewegen.
Beispiel übernommen und angepasst aus dem Buch "Das Trainingsbuch zum Simons' Basic".
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE