GRAPHICS (TSB)
GRAPHICS (TSB) | |
Syntax: | GRAPHICS |
Parameter | |
keine | |
Einordnung | |
Typ: | Kommando |
Kontext: | Erweiterung des TSB |
Aufgabe: | installiert die Erweiterung High-Speed-Grafik |
Abkürzung: | gR |
Token: | $64 $61 (100 97) |
Verwandte Befehle | |
keine |
Dieser Artikel beschreibt das TSB-Schlüsselwort GRAPHICS (TSB).
Das entsprechende Simons'-Basic-Schlüsselwort lautet ebenfalls GRAPHICS.
Typ: Kommando Syntax: GRAPHICS
GRAPHICS lädt die Grafikerweiterung "High-Speed-Grafik" ("HSG") von Wolfgang Lohwasser aus dem 64'er Sonderheft Grafik 6/1986[1] (in einer ab TSB v2.40.612 stark angepassten Version). Die HSG-Datei muss unter dem Namen "tsb.hsg" auf der im aktuellen Laufwerk befindlichen Diskette sein. Die Erweiterungsbefehle (s.u.) funktionieren wie normale Interpreter-Befehle. Der freie BASIC-Speicher wird durch HSG um 3 KByte verkleinert.
HSG wird im Speicher ab $7400 abgelegt und automatisch eingebunden. Es wird mit dem Befehl COLD abgeschaltet und der Platz wieder freigegeben.
Wird die Datei beim Aufruf von GRAPHICS nicht gefunden, meldet der Interpreter einen ?FILE NOT FOUND ERROR und alles bleibt, wie es vorher war.
HSG arbeitet ausschließlich im Hires-Modus, dafür aber sind seine Zeichenroutinen - vor allem die Kreise - derartig schnell, dass man das Entstehen eines einzelnen Objekts nicht mehr nachvollziehen kann. Das Programmierbeispiel bei CIRCLE ist mit HSG-Befehlen einfach atemberaubend und das animierte Beispielbild auf dieser Seite weiter unten zeigt das sehr eindrücklich.
Zu beachten:
- HSG stellt eigentlich zwei Grafikbildschirme zur Verfügung (einen zum verdeckten Aufbau von Grafik, damit es noch schneller aussieht, wenn etwas erscheint). Dieses Feature wurde in TSB komplett entfernt, da für einen zweiten Grafikbildschirm kein Platz vorhanden ist. Daher können alle Befehle, die einen der Grafikscreens auswählen, jetzt auch ohne diesen Parameter aufgerufen werden (s.u.)
Hinweis: Der Zeichensatz im Normaltextbereich des Splitscreens von HSG kann mit POKE $79E0,21
auf Groß-Grafik gestellt werden, und mit POKE $79E0,23
auf Groß-Klein (Voreinstellung). Der Rastersplit ist außerdem jetzt zum ersten Mal stabil.
HSG-Befehle
Nach dem Aufruf von GRAPHICS erhält man einen Einschalt-Screen und kann jetzt mit mehr Befehlen programmieren:
£h [,1] ⇒ schaltet Grafikscreen ein, ohne zu löschen (wie CSET 2) £e [,1] ⇒ löscht den Screen (wie HIRES, aber ohne Farbangaben) £m [,1] ⇒ Screen anwählen (keine Funktion, aber wegen Speicherstellenüberschneidung erforderlich nach allen Textscreen-Befehlen, z.B. nach FCHR) £c [,1] ,f ⇒ färbt die Grafik (wie MOD) £n ⇒ Grafikscreen ausschalten (wie NRM) £s,x,y ⇒ Grafikcursor auf x,y setzen £d,x,y,m ⇒ zeichnen bis zu Punkt x,y im Modus m (wie DRAW TO) £p,x,y,m ⇒ Punkt setzen im Modus m (wie PLOT) £l,x1,y1,x2,y2,m ⇒ Linie ziehen zwischen x1,y1 und x2,y2 im Modus m (wie LINE) £r,x1,y1,x2,y2,m ⇒ Rechteck zeichnen (wie REC) (beachten: andere Parameter als bei REC!) £b,x1,y1,x2,y2,m ⇒ ausgefülltes Rechteck zeichnen (wie BLOCK) £k,x,y,r1,r2,m ⇒ Kreis, Ellipse zeichnen (wie CIRCLE) £is,top,bottom ⇒ Splitscreen, Grafik zwischen Textzeile <top> und <bottom> (0..25) £i1 ⇒ Splitscreen ein £i0 ⇒ Splitscreen aus £v,var1,var2$ ⇒ numerischen Ausdruck im String <var2$> auswerten und <var1> zuweisen £qa / £qo ⇒ Verknüpfen der Bitmap mit dem Bereich ab $4000 (A: AND-Verknüfung, O: OR-Verknüpfung)
- f = paper+16*ink, z.B. f = $75 (gelb auf grün)
- m:
- =1: zeichnen
- =0: löschen
Vor allem £l, £r und £k sind erheblich schneller als ihre TSB-Pendants.
Beispiel[Bearbeiten | Quelltext bearbeiten]
Programm in HSG:
10 i=10: HIRES i,0: COLOUR i,0 15 REPEAT: £E,1: GET x$ 20 FOR x=5 TO 165 STEP i: £K,159,99,x,165-x,1: NEXT 30 FOR x=5 TO 165 STEP i: £K,159,99,x,165-x,0: NEXT 40 i=INT(RND(ti)*20)+1: j=INT(RND(ti)*14)+1 50 MOD 0,j: COLOUR 0,i 60 FOR x=0 TO 149 STEP 10+i 70 FOR y=189 TO 0 STEP -10-i 80 £L,x,y,310-x,190-y,1 90 NEXT y,x 100 FOR y=189 TO 0 STEP -10-i 110 FOR x=0 TO 149 STEP 10+i 120 £L,x,y,310-x,190-y,0 130 NEXT x,y 140 i=INT(RND(ti)*20)+1: j=INT(RND(ti)*14)+1 150 UNTIL x$>""
Programm mehrmals laufen lassen, es verändert sich.
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Ein schneller "Drawline"-Algorithmus , auf dem HSG aufbaut - aus Projekt 64'er
- 64'er Sonderheft Grafik 6/1986 (HSG) auf archive.org
$$ | %% | AT | CALL | CENTER | CHECK | COLD | COLOR | COPY | CLS | CSET | D! | D!PEEK | D!POKE | DIR | DISK | DISPLAY | DIV | DO | DO NULL | DRAW TO | DUMP | DUP | ELSE | ERROR | EXEC | FETCH | FIND | GRAPHICS | INSERT | INST | JOY | KEY | KEYGET | LIN | MAP | MEMCLR | MEMCONT | MEMDEF | MEMLEN | MEMLOAD | MEMOR | MEMPEEK | MEMPOS | MEMREAD | MEMRESTORE | MEMSAVE | MERGE | MOB ON/OFF | MOBCOL | MOD | MOVE | MULTI | NRM | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PLACE | RENUMBER | RESUME | RETRACE | SCRLD | SCRSV | SOUND | TEXT | TRACE | USE | WAVE | X!