Supergrafik

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Supergrafik
Der Startbildschirm von Supergrafik
Entwickler Axel Plenge
Firma Data Becker GmbH
Verleger Data Becker GmbH
Release 1986
Lizenz Vollversion
Plattform(en) C64
Genre BASIC-Erweiterung
Steuerung Icon tastatur.png Icon paddle.png Icon joystick.png
Medien Icon disk525.png
Sprache(n) Sprache:englisch, Anleitung Sprache:deutsch

Die BASIC-Erweiterung Supergrafik mit Fokus auf Grafik und Sound deckt mit ihrem Angebot an zusätzlichen Befehlen jene Lücken ab, die das Standard-BASIC-V2 bei all den Fähigkeiten eines C64 hinterlassen wurden. Diese von Axel Plenge entwickelte Erweiterung wurde ab 1986 von Data Becker GmbH vermarktet.

Die hier vorgestellte Version der Supergrafik wurde als Diskette zusammen mit dem SUPERGRAFIK Buch zum Commodore 64 verkauft. Das Programm wurde zuvor bereits von Data Becker ohne das Buch unter dem Namen "Supergrafik 64" angeboten.


Beschreibung[Bearbeiten]

Supergrafik bietet:

  • Zwei unabhängige hochauflösende (320×200) oder Multicolor (160×200) Grafikseiten.
  • Eine Standard-Low-Grafik-Seite (80×50 Punkte) gemeinsam im Textmodus.
  • Verdecktes Zeichnen (z.B. Text sichtbar, Grafikseite 2 wird erstellt, usw.).
  • Bildschirmfensterbehandlung; gleichzeitige Anzeige von Text und Grafik möglich.
  • 2×8 unabhängige und unterschiedliche Sprites gleichzeitig auf dem Bildschirm, und in allen Parametern veränderlich durch Bildschirmfenstertechnik (Windowing).
  • Automatische Unterbrechung des BASIC-Programms bei Kollisionen (Interrupt), Sprung in Unterbrechungsroutine, dann Weiterführung des Hauptprogramms.
  • Joystickunterstützung, Paddleabfrage (A/D-Wandler).
  • Befehlskombinationen durch zusätzlichen Parameter.
  • Durch einfache Befehle zu steuernde Grafikfiguren.
  • Speichern und Laden von Grafik, Farbe und Text auf Diskette (Kassette) (auch verdeckt) in selbst wählbarem Format, dadurch Möglichkeit des Einladens aller "Fremdgrafiken".
  • Sound-Programmierung mit Verstellung aller möglichen Sound-Parameter (Lautstärke, Klang, Filter, Tonhöhe, Tonlänge) unabhängig vom übrigen Programmablauf.
  • Programmier-Set (Utilities).

Starten der Supergrafik[Bearbeiten]

Gestartet wird die BASIC-Erweiterung durch Eingabe folgender Befehle:

LOAD "SUPERGRAPHIK",8
RUN

Die Supergrafik-Befehle[Bearbeiten]

Die folgende Befehlsübersicht soll einen Einblick in die Möglichkeiten der BASIC-Erweiterung geben.
Eine ausführlichere Dokumentation einschließlich der nötigen Parameter gibt es im weiterführenden Artikel Supergrafik Befehle.

Grundbefehle:
 PLOT              : Setzen (Löschen, usw.) eines Punktes
 PLOT ...  TO ...) : Setzen (Löschen, usw.) einer oder mehrerer Linien
 PLOT TO ...)      : Setzen (Löschen, usw.) einer Linie vom Grafikcursor
 CIRCLE            : Setzen (Löschen, usw.) einer Ellipse, eines Kreises oder
                     Setzen (Löschen, usw.) von Kreis-, Ellipsen- oder Vieleck-Bögen
 DRAW              : Setzen (Löschen, usw.) einer frei definierbaren Figur
 FRAME             : Setzen (Löschen, usw.) eines Rahmens definierter Dicke
 FILL              : Setzen (Löschen, usw.) eines Feldes
 TEXT              : Setzen (Löschen, usw.) eines Textes als Grafik	  
 PAINT             : Ausfüllen einer beliebigen geschlossenen Fläche
 GMODE             : Bestimmen von Grafikseite und Grafikmodus
 GCLEAR            : Löschen des Grafikbildschirms bzw. eines Bildschirmfensters
 INVERS            : Invertieren des Grafikbildes oder eines Grafikfensters mit 256 verschieden Masken
 GCOMB             : Verknüpfung beider Grafikseiten, zweier Bildschirmfenster, 
                     Verschiebung eines Grafikfensters 
 TRANS             : Kopieren der Textseite in die Grafik
 GMOVE             : Horizontales Rollen/Verschieben des Bildschirms
 SCALE=            : Rotieren und Vergrößern einer DRAW-Figur
Farbbefehle: COLOR=  : Festlegen der Rahmen- und Hintergrundfarbe SCOL=  : Festlegen der Zeichenfarbe für den gesamten Bildschirm PCOL=  : Festlegen der Zeichenfarbe GSAVE  : Speichern der Grafik, Farbe oder Text GLOAD  : Laden der Grafik, Farbe oder Text HCOPY  : Hardcopy der Grafikanzeige
Sprite-Befehle: SREAD  : Einlesen von 63 Sprite-Daten SDEFINE  : Sprite-Definition-Einschalten/Ausschalten SPOWER  : Abschalten des zweiten Sprite-Satzes SMODE  : Bestimmen der Sprite-Eigenschaften (Farbe, Vergrößerung, Priorität vor Hintergrund) SSET  : Positionieren eines Sprites SSET... TO...  : Bewegen eines Sprites von einer Position zu einer anderen SSET TO...  : Bewegen eines Sprites von der momentanen Position einer anderen SWAIT  : Warten bis Sprite s steht IF# ... THEN ...  : Bedingtes Verzweigen unter definierten Bedingungen (Joystick, Kollision) IRETURN  : Beenden der Unterbrechungsroutine
Ton-Befehle: VOLUME=  : Einstellen der Lautstärke SOUND  : Einstellen des Klangbildes FILTER  : Einstellen der Filter TUNE  : Spielen eines Tones (Tonlänge, Note, Oktave, Verstimmung)
Utlities: DIRECTORY  : Anzeigen des Disketteninhaltsverzeichnisses ohne Programmverlust MERGE  : Anhängen eines BASIC-Programms von Diskette an ein im Speicher befindliches RENUM  : Umnummerierung von Zeilennummern eines BASIC-Programms DTASET  : Setzen des DATA-Zeigers auf eine bestimmte Zeile KEY  : Umprogrammieren der Funktionstasten PADDLE  : Auslesen der A/D-Wandler (Paddle-Werte) POS=  : Positionieren des Text-Cursors

Befehlsabkürzungen und Token[Bearbeiten]

In der folgenden Tabelle ist beim Kürzel die Kleinschreibung die entsprechende Taste ohne und in Großschreibung mit gedrückter Shift -Taste. Zusätzlich findet sich hier auch die verwendeten Token-Codes der jeweiligen Supergrafik-Befehle.

Befehl Kürzel Token
CIRCLE cI $F2
COLORn cO $F5
DIRECTORY dI $D7
DRAW dR $ED
DTASET dT $DA
FILTER fI $E3
FILL fiL $EE
FRAME fR $EF
GCLEAR GVL $EA
GCOMB gC $D9
GLOAD gL $F9
GMODE gN $E9
GMOVE gmoV $EB
GSAVE gS $F8
HCOPY nC $FA
IF# iF $FC
INVERS iN $F0
IRETURN iR $FB
KEY kE $DD
MERGE nE $DB
PADDLE pA $F3
PAINT paI $FD
PCOL= pC $F7
PLOT pL $EC
RENUM rE $DC
SCALE= sC $F4
SCOL= scO $F6
SDEFINE sD $E5
SMODE sM $E8
SOUND sO $E1
SPOWER sP $D8
SREAD sR $E4
SSET sS $E6
SWAIT sW $E7
TEXT tE $F1
TRANS tR $DE
TUNE tU $E0
VOLUME= vO $E2

Speicherbelegung[Bearbeiten]

Übersicht über die Speicherbereiche, die Supergrafik im Computer belegt (gemeint ist stets RAM):

$0000-OOFF: diverse Arbeitsspeicher
$0100-0IFF: normaler Stack 
$0200-03FF: unverändert genutzt 
$0400-07E7: Text-LGR-Speicher 
$0800-	...: BASIC-Speicherbereich 
$7700-9FFF: SuperGrafik - Betriebssystem
$A000-BFFF: Grafikseite 2
$C000-C3FF: Grafikseite 1-Farbe (Videoram)
            Sprite-Vektoren 
$C400-05FF: Hardcopy-Routine 
$C600-C7FF: diverse Speicher
$CC00-COFF: Grafikseite 2-Farbe (Videoram)
$CCOO-CFFF: Grafikseite 2-Farbe (Farbram)
$D000-D1FF: Sprite-Bewegungsregister
$D200-D5FF: Sprite-Definitionen 
$D600-DFFF: diverse Massen-Hilfsspeicher
           (f. RENUMBER/GMOVE/PAINT)
$E000-FFFF: Grafikseite 1
überlagert: $D800-DBFF: originales Farbram 1

Das SUPERGRAFIK Buch zum Commodore 64[Bearbeiten]

Das SUPERGRAFIK Buch zum Commodore 64
Cover/Buchdeckel
Sprache deutsch
Autor(en) Axel Plenge
Verlag Data Becker
Jahr 1986
ISBN ISBN 3-89011-213-7
Neupreis DM 49.- sFr 47.- öS 382.-
Datenträger Icon disk525 1.png
Seitenzahl 726
letzte Auflage 2. Auflage 1988
Genre Programmieren / Grafik
Information





Auf mehr als 720 Seiten erklärt das Supergrafik-Buch nicht nur die Basic-Erweiterung, sondern auch viele Grundlagen der Grafikprogrammierung. Ein besonderer Leckerbissen ist das kommentierte Quellcode-Listing. Das Buch ist eine erweiterte Auflage des Grafikbuchs zum Commodore 64.


Inhaltsverzeichnis (kurz)

Die acht Kapitel des Buches:

  • Einleitung
  • Supergrafik für Einsteiger: Vorstellung der Befehle und Anwendungsbeispiele
  • Anwendungen: diverse allgemeine Grafik-Anwendungen mit und ohne Supergrafik-Unterstützung
  • Hardwaregrundlagen: VIC und andere Grundlagen
  • Supergrafik intern: Grundsätzliche Grafikprogrammierung in BASIC und Maschinensprache
  • Kommentiertes Assembler-Listing der Supergrafik
  • Anhang: Begriffserklärungen und Kurzanleitung der Supergrafik mit Befehlsreferenz
  • Stichwortverzeichnis


Leseprobe[Bearbeiten]

Seite 71: (2.6.2 Kleine Spielereien 2.Beispiel)

Das folgende Programmbeispiel stammt von der Diskette.

Spielereien2-animation.gif
100 REM ************************
110 REM **                    **
120 REM **   SPIELEREIEN II   **
130 REM **                    **
140 REM **  NACH  IDEEN  VON  **
150 REM **   NORBERT TREITZ   **
160 REM **                    **
170 REM ************************
180 REM
190 PI=3.14159265
200 REM
210 REM ***************
220 REM **           **
230 REM **  FIGUR 1  **
240 REM **           **
250 REM ***************
260 REM
270 GMODE 0,1 : GCLEAR : SCOL= 1,7 : COLOR= 2,2
280 R=141
290 A=160 : B=100
300 FOR W=PI/4 TO 3.6 STEP 0.05
310 X=R*COS(W) : Y=R*SIN(W)
320 PLOT ,A+X,B-Y TO A-Y,B-X
330 PLOT ,A-Y,B-X TO A-X,B+Y
340 REM PLOT ,A-X,B+Y TO A+X,B-Y
350 PLOT ,A-X,B+Y TO A+Y,B+X
360 PLOT ,A+Y,B+X TO A+X,B-Y
370 R=R*0.94
380 NEXT W
390 GOSUB 680
400 REM
410 REM ***************
420 REM **           **
430 REM **  FIGUR 2  **
440 REM **           **
450 REM ***************
460 REM
470 FOR N=4 TO 100 STEP 5
480 GCLEAR
490 R1=99 : R2=50
500 DW=PI/N*2
510 FOR I=0 TO 4
520 R3=99-R1 : R4=99-R2
530 FOR W=DW TO 2*PI+DW*2 STEP DW
540 A=160+R3*COS(W)
550 B=100-R3*SIN(W)
560 PLOT ,A,B TO 160+R4*COS(W+DW),100-R4*SIN(W+DW)
570 PLOT ,A,B TO 160+R4*COS(W-DW),100-R4*SIN(W-DW)
580 NEXT W
590 R1=R1/2 : R2=R2/2
600 NEXT I
610 GOSUB 680
620 NEXT N
630 END
640 REM
650 REM
660 REM WARTESCHLEIFE:
670 REM
680 FOR T=1 TO 4000
690 GET A$ : IF A$="" THEN NEXT T
700 RETURN

Die erste dieser Figuren stellt ein sich drehendes Quadrat dar, das sich bis zur Unkenntlichkeit verkleinert. Grundlage dieses Programms ist die Kreisformel mit:

x=r*cos(w)+mx
y=r*sin(w)+my
 
mit x:  x-Koordinate eines Kreispunktes
    y:  y-Koordinate eines Kreispunktes
    w:  Winkel zwischen y-Achse und Linie: Kreispunkt-Mittelpunkt
    r:  Radius
    mx: x-Koordinate Kreismittelpunkt
    my: y-Koordinate Kreismittelpunkt

Die vier Eckpunkte des Quadrates werden als Punkte eines Kreises gesehen, dessen Mittelpunkt im Nullpunkt eines rechtwinkligen Koordinatensystems liegt. Im Laufe der Routine werden a) der Radius verringert b) die Eckpunkte des Quadrats um einen Winkel w um den Mittelpunkt des Kreises gedreht. Wie das ganze genau funktioniert, erfahren Sie im Grundlagenkapitel unter "Kreisberechnung" beim Thema "Achtelkreistechnik". Die zweite Figur (oder die Figuren, denn es werden eine ganze Menge Figuren gezeichnet) zeigt einen hübschen Effekt, der ebenfalls auf der Kreisberechnung basiert (oder auf der Anwendung von Polarkoordinaten, je nachdem, was einem lieber ist). Verändern Sie auch hier ruhig ein paar Parameter, um zu sehen, was passiert.


Die Diskette zum Buch[Bearbeiten]

Inhaltsverzeichnis der Supergrafik-Diskette:

0 "SUPERGRAPHIKBUCH" AP 2A	7    "CIRCLE-DEMOS"     PRG	3    "ANIMATION-1"      PRG
6    "SUPERGRAPHIK"     PRG	2    "TEXT-TEXT-TEXT.." PRG	4    "ANIMATION-2"      PRG
41   "SUPERGRAPHIK.O"   PRG	5    "VERGROESSERUNG"   PRG	6    "SCROLL-ASSEMBLER" PRG
2    "CBM 1526"         PRG	6    "SPIEGELUNG"       PRG	4    "SCROLLING-DEMO"   PRG
2    "7-NADEL"          PRG	2    "DREHUNG"          PRG	42   "BILDSCH.FENSTER"  PRG
2    "GP-700A"          PRG	4    "KUGELPROJEKTION"  PRG	4    "LOW-GRAPIK/PRINT" PRG
2    "PLOT-DEMO"        PRG	6    "SHAPES"           PRG	9    "LOW-GRAPHIK/CHR$" PRG
2    "BLINKER"          PRG	14   "SHAPE-DEMO"       PRG	11   "LOW-GRAPHIK/POKE" PRG
2    "DER RASENDE..."   PRG	4    "SPRITES"          PRG	6    "GRAPHIK-INITROUT" PRG
2    "INVERTIERUNG"     PRG	8    "SMODE-SSET"       PRG	4    "PUNKTBERECHNUNG"  PRG
2    "POSITIONSLICHTER" PRG	5    "SPRITEDEMO"       PRG	9    "SINUSKURVE"       PRG
4    "LGR-SINUSKURVE"   PRG	6    "KOLLISIONEN"      PRG	9    "GERADE"           PRG
6    "SPRINGTEUFEL"     PRG	7    "16 SPRITES"       PRG	8    "ELLIPSE"          PRG
2    "RASTER-SPIELE"    PRG	4    "SCOL-FARBEN..."   PRG	43   "SPRITEFORMER"     PRG
3    "SEITENWECHSEL"    PRG	4    "PCOL-NOCH MEHR.." PRG	12   "SPRITE-BEISPIEL"  PRG
2    "TIEF VERSTECKT.." PRG	13   "136 FARBEN I"     PRG	8    "SPRITE-KOLLISION" PRG
6    "SUPER-SNAKE"      PRG	12   "136 FARBEN II"    PRG	21   "ZEICHENFORMER"    PRG
3    "HAUS V. NIKOLAUS" PRG	4    "INVERSER"         PRG	21   "MULTICOLOR"       PRG
2    "ZEICHENMODI"      PRG	4    "ROLLEN-SCROLLEN"  PRG	34   "ERLAEUTERUNGEN"   PRG
2    "DEMO"             PRG	3    "ROLL-DEMO"        PRG	4    "GRAPHIKABSPEICH." PRG
2    "FUNKTIONSKISTE"   PRG	8    "POSTERHARDCOPY"   PRG	5    "GRAPHIK-HARDCOPY" PRG
5    "SPIELEREIEN"      PRG	2    "QUADRATFUNKTION"  PRG	4    "RASTERZEILEN-IRQ" PRG
5    "SPIELEREIEN II"   PRG	11   "FUNKTIONSPLOTTER" PRG	12   "LIGHTPEN"         PRG
3    "RECHTECKE 1"      PRG	9    "3-D DESIGNER"     PRG	2    "LIGHTPEN-IRQ"     PRG
1    "RECHTECKE 2"      PRG	3    "3-D/Y↑2-X↑2"      PRG	16   "GRAPHIK-PAKET"    PRG
2    "FLAECHEN"         PRG	4    "3-D/Y↑2-X↑2/VERN" PRG	9    "GRAPHIK-P.-DEMO"  PRG
7    "CIRCLE"           PRG	6    "BALKENDIAGRAMM"   PRG	16   "CAD-ZEICHNER 4"   PRG
2    "POLYGONE"         PRG	8    "KUCHENDIAGRAMME"  PRG	3 BLOCKS FREE.
10   "CIRCLE-KOMPLETT"  PRG	20   "LAUFSCHRIFTEN"    PRG	
14   "DIE UHRZEIT..."   PRG	7    "CIRCLE-DEMOS"     PRG

Supergrafik-Diskette

Meinung[Bearbeiten]

Petrus: "Diese Erweiterung füllt gezielt die Lücke, die das BASIC V2 bezüglich der Grafik-, Sound- und Sprite-Befehle hinterlässt. Die Syntax der Befehle ist gelegentlich nicht ganz leicht zu verstehen, bietet aber oft viele Möglichkeiten. Das Buch ist sehr ausführlich und das Programm durch das kommentierte Assembler-Listing hervorragend dokumentiert. Dass Supergrafik von einigen Compilern (Basic 64, Basic-Boss) gut unterstützt wird, rundet den positiven Eindruck ab."

Weblinks[Bearbeiten]