GRAPHICS (TSB)

Aus C64-Wiki
Wechseln zu: Navigation, Suche
GRAPHICS (TSB)
Format: GRAPHICS
Parameter
keine
Einordnung
Typ: Kommando
Kontext: Erweiterung des TSB
Aufgabe: installiert die Erweiterung High-Speed-Grafik
Abkürzung: gR
Verwandte Befehle
keine


Dieser Artikel beschreibt das 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 (in einer für TSB 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 noch einmal um 4 KByte verkleinert.

HSG wird im Speicher ab $7000 abgelegt und automatisch eingebunden. HSG wird mit dem Befehl COLD wieder abgeschaltet.

Wird die Datei nicht gefunden, meldet der Interpreter einen ?FILE NOT FOUND ERROR und alles bleibt, wie es vorher war.

HSG arbeitet ausschließlich im Hires-Modus (kein Multicolor!), dafür aber sind seine Zeichenroutinen - vor allem die Kreise - derartig schnell, dass man das Entstehen eines einzelnen Objekts nicht mehr nachvollziehen kann (was bei TSB und Simons' Basic immer geht). Das Programmierbeispiel bei CIRCLE ist mit HSG-Befehlen einfach atemberaubend.

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 aus Platzmangel deaktiviert. Der gültige Screen hat die Nummer 1 und sollte einmal am Anfang des Programms mit £m, £h oder £e definiert werden (sonst sieht man nichts).

Hinweis: Der Zeichensatz im Normaltextbereich des Splitscreens kann mit POKE $7658,21 auf Groß-Grafik gestellt werden, und mit POKE $7658,23 auf Groß-Klein.


HSG-Befehle


Nach dem Aufruf von GRAPHICS erhält einen Einschalt-Screen und kann jetzt mit mehr Befehlen programmieren:

£h,1              ⇒  schaltet Grafikscreen ein, ohne zu löschen (s. HIRES)
£e,1              ⇒  löscht den Screen (s. HIRES)
£m,1              ⇒  Screen anwählen (beachte: immer 1 wählen!) 
£c,1,f            ⇒  färbt die Grafik (s. MOD)
£n                ⇒  Grafikscreen ausschalten (s. CSET)
£s,x,y            ⇒  Grafikcursor auf x,y setzen
£d,x,y,m          ⇒  zeichnen bis zu Punkt x,y im Modus m
£p,x,y,m          ⇒  Punkt setzen im Modus m (s. PLOT)
£l,x1,y1,x2,y2,m  ⇒  Linie ziehen zwischen x1,y1 und x2,y2 im Modus m (s. LINE)
£r,x1,y1,x2,y2,m  ⇒  Rechteck zeichnen (s. REC) (beachte: andere Parameter als bei REC!)
£b,x1,y1,x2,y2,m  ⇒  ausgefülltes Rechteck zeichnen (s. BLOCK)
£k,x,y,r1,r2,m    ⇒  Kreis, Ellipse zeichnen (s. CIRCLE)
£is,top,bottom    ⇒  Splitscreen, Grafik zwischen Rasterline <top> und <bottom>
£i1               ⇒  Splitscreen ein
£i0               ⇒  Splitscreen aus
£v,var1,var2$     ⇒  numerischen Ausdruck im String <var2$> auswerten und <var1> zuweisen
  • f = paper+16*ink
  • m:
    • =1: zeichnen
    • =0: löschen

Vor allem £l, £r und £k sind erheblich schneller als ihre TSB-Pendants.


Beispiel:

Unglaublich viele Ellipsen in unglaublich kurzer Zeit.

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]