CHARWINDOW - Kleine Grafikfenster im Programm - ----------------------------------------
"Charwindow" ist eine Basic-Erweiterung, die Ihnen hilft, in eigenen Programmen ein kleines, 128x64-Pixel großes Grafik- fenster in den normalen Text einzubauen, um dort z.B. grafische Zusatzinformatio- nen anzugeben. Auf diese Weise wird es Ihnen sehr einfach gemacht, Dinge wie Balken- oder Kuchengrafiken, Diagramme oder Funktionsplotter in eigenen Pro- grammen einzubauen. 1) PROGRAMMSTART Zunächst müssen Sie die Erweiterung mit- tels LOAD"CHARWINDOW .OBJ",8,1 in den Speicher des C64 laden. Geben Sie hier- nach bitte den "NEW"-Befehl ein, um die Ladevektoren zurückzusetzen. Um die Ba- sicerweiterung nun zu aktivieren, geben Sie bitte "SYS49152,farbe" ein. 'farbe' steht hierbei für einen der Farbcodes von 0-15. In der hier angegebenen Farbe werden die Charwindow-Befehle in einem Programmlisting angezeigt, so daß selbi- ge hervorgehoben dargestellt werden. Ist der Programmstart geglückt, so sehen Sie nun die Einschaltmeldung der Erweiterung auf dem Bildschirm. Von nun an stehen Ihnen die neuen Charwindow-Basicbefehle zur Verfügung, die wir weiter unten nä- her besprechen werden. 2) TECHNISCHES Vor Erläuterung der Befehle, noch einige technische Hinweise: Charwindow ist eine in Assembler geschriebene Basicerweite- rung, die den Speicherbereich von $C000-$CFFF belegt. Sie verwaltet insge- samt 15 der 128x64-Pixel großen Grafik- fenster (im Folgenden oft auch "Screen" genannt), die in den Bereichen von $A000-$BFFF, sowie von $E000-$FFFF abge- legt sind. Beachten Sie also bitte, daß Sie die hier angegeben Bereiche nicht mehr für eigene Erweiterungen in Assem- bler verwenden können. Die 15 Grafik- fenster werden mit Nummern von 0 bis 14 bezeichnet, wobei 0 immer für das auf dem Bildschirm sichtbare Fenster steht. Die Nummern 1-14 beziehen sich auf die unsichtbaren Fenster im oberen Speicher, die zur Bildpufferung verwendet werden können. Beachten Sie desweiteren, daß das sich- tabre Grafikfenster durch die inversen Zeichen eines Zeichensatzes ab $0800 dargestellt werden. Sie können dort also auch Änderungen eintragen, um den norma- len Zeichensatz zu verändern. Beachten Sie jedoch auch, daß dieser Zeichensatz nur dann eingeschaltet ist, wenn auch das Charwindow-Fenster auf dem Bild- schirm geöffnet wurde! Da der neue Zei- chensatz am normalen Anfang des Basic- speichers liegt, musste selbiger an Adresse $1000 hochverlegt werden. Beach- ten Sie hier, daß Sie Basic-Programme immer mit ",8" laden, damit sie automa- tisch an die neue Adresse gelangen (mit ",8,1" könnten solche Programme, die nicht unter Charwindow geschrieben wur- den, den Zeichensatz überschreiben). 3) DIE NEUEN BEFEHLE Kommen wir also zu den neuen Befehlen, die Ihnen von Charwindow zusätzlich zu den normalen Basic-V2-Befehlen bereitge- stellt werden. In der nun folgenden Auflistung sehen Sie den Befehlsnamen immer in Großbuchstaben. Ihm folgen ggf. einige Parameter, die als - in Klein- buchstaben geschriebene - Variablen auf- gelistet sind. Dies sind lediglich Refe- renzvariablen für diese Anzeitung, mit denen Ihnen gezeigt wird, welche Parame- ter ein Befehl verlangt. In der Praxis können Sie für numerische Werte natür- lich auch beliebige Basicvariablen oder auch konstante Wertangaben verwenden. Ebenso müssen Strings, die hier in "Gän- sefüßchen" angegeben sind, nicht unbe- dingt in dieser Form erscheinen, sondern es können auch Stingvariablen (z.B. a$, x$, o.ä.) eingesetzt werden. Desweiteren taucht in allen Zeichenfunktionen der Wert "m" auf, der angibt, in welcher Art Charwindow zu zeichnende Pixel auszuge- ben hat. Ist m=0, so sollen die Pixel gelöscht werden. Bei m=1 werden zu zeichnende Pixel gesetzt. Mit m=2 werden die Pixel invertiert, so daß gesetzte Pixel gelöscht werden und umgekehrt. Hier nun also die neuen Befehle: WINDOW(x,y,f) Dieser Befehl öffnet das Grafikfenster in Spalte "x" und Zeile "y" des Text- bildschirms, wobei die Farbe "f" als Zeichenfarbe voreingestellt wird. SCREEN Hiermit wird das Grafikfenster wieder geschlossen und vom Bildschirm entfernt. Dabei wird der, vor dem Öffnen unter dem Fenster liegende, Bildschirminhalt wie- der restauriert (incl. der Farbe). HELP Dieser Befehl listet Ihnen alle neuen Charwindow-Befehle auf. LDGRAF"name",ga Hiermit laden Sie das File "name" vom Gerät "ga" (z.B. 8 für die Floppy) als Grafik in das Grafikfenster. SVGRAF"name",ga Speichert das auf dem Bildschirm sicht- bare Grafikfenster als Grafikfile unter dem Namen "name" auf dem Gerät 'ga'. PAGE sc Hiermit legen Sie fest, auf welchem Gra- fikscreen (= -fenster) gezeichnet werden soll. 'sc' steht dabei für eine der Fensternummern von 0-14. Diese Einstel- lung bezieht sich auf ALLE Zeichenbefeh- le, sowie auf COPY, ZOOM und CLEAR! CLEAR Löscht den durch Page eingestellten Screen. PLOT x,y,m Zeichnet einen Punkt an der Stelle (x/y) im Modus 'm' ('x' zwischen 0 und 127, 'y' zwischen 0 und 63). LINE x1,y1,x2,y2,m Zeichnet eine Line von der Koordinate (x1/y1) nach Koordinate (x2/y2) im Modus 'm'. MOVE x1,y1,m Zeichnet eine Line vom zuletzt gezeich- neten Punkt nach Koordinate (x1/y1) im Modus 'm'. REC x1,y1,x2,y2,m Zeichnet ein Rechteck mit (x1/y1) und (x2/y2) als diagonal gegenüberliegenden Eckpunkten. CIRCLE xm,ym,xr,yr,m Zeichnet einen Kreis (Ellipse) mit den Mittelpunktkoordinaten (xm/ym) und den Radien 'xr' und 'yr' im Modus 'm'. Für Kreise muß xr=yr sein, für Ellipsen müs- sen beide ungleich sein. IN sc Kopiert den sichtbaren Grafikscreen in den mit 'sc' bezeichneten Screen im Hin- tergrund (einer der Screens von 1-14). OUT sc Kopiert den mit 'sc' bezeichneten Hin- tergrundscreen in das sichtbare Grafik- fenster. AREA x1,y1,x2,y2,sc Legt den Bearbeitungsbereich für den COPY-Befehl fest. (x1/y1) steht für die linke obere, (x2/y2) für die rechte un- tere Ecke des zu kopierenden Bereichs. Mit 'sc' wird die Nummer des Quellbild- schirms angegeben. COPY x,y,inv,sp,tr Kopiert den mit AREA festgelegten Be- reich an die Koordinate (x/y) des akti- ven Zeichenschirms. (x/y) gibt dabei die linke, obere Ecke an, an der der AREA- Bereich einkopiert werden soll. Die Pa- rameter 'inv' (Inverieren), 'sp' (Spie- gelung), und 'tr' (Transparenz) sind Zusatzparameter, die mit folgenden Wer- ten belegt werden müssen, um die ent- sprechende Wirkung beim Kopieren zu er- zielen: inv=0: Grafik nicht invertieren =1: Grafik invertieren sp =0: Grafik nicht spiegeln sp =1: Grafik an Y-Achse spiegeln sp =2: Grafik an X-Achse spiegeln sp =3: Grafik an X- und Y-Achse spiegeln tr =0: Grafik normal einkopieren =1: Grafik mit Ziel ODER-verknüpfen ZOOM x1,y1,x2,y2,x3,y3,x4,y4 Vergrößert oder verkleinert den Bereich zwischen den Koordinaten (x1/y1) und (x2/y2), und legt ihn an den Koordinaten zwischen (x3/y3) und (x4/y4) ab. Ist der Quellbereich größer als der Zielbereich, so wird er verkleinert, im anderen Fall vergrößert (Beispiel: ZOOM 0, 0, 20, 20, 0, 0, 40, 40 zum doppelten vergrößern des Bereichs bei 0/0 und 20/20) HARD ga Dieser Befehl druckt den gesamten Bild- schirm (Text und Grafikfenster) auf den seriell angeschlossenen Drucker mit der Gerätenummer 'ga' aus. DRAW x,y,m,f$ Zeichnet ab den Koordinaten (x/y) einen Punktezug, der durch den String 'f$' angegeben wird, im Zeichenmodus 'm'. Legen Sie in f$ eine Folge von Ziffern zwischen 1 und 8 ab, um einen solchen Zug zu zeichnen. Die einzelnen Ziffern bewegen eine Art unsichtbaren Grafikcur- sor, der zu Beginn an die Position (x/y) gesetzt wird, um einen Pixel in eine bestimmte Richtung weiter, wobei dieser Punkt dann im Modus 'm' gesetzt wird. Die einzelnen Ziffen haben folgende Be- deutung: 1: Cursor nach oben u. Pkt. setz. 2: Cursor nach rechts oben u. Pkt. setz. 3: Cursor nach rechts u. Pkt. setz. 4: Cursor nach rechts unten u.Pkt. setz. 5: Cursor nach unten u. Pkt. setz. 6: Cursor nach links unten u. Pkt. setz. 7: Cursor nach links u. Pkt. setz. 8: Cursor nach links oben u. Pkt. setz. Beispiel: f$="3335577711":DRAW 63,31,1,f$ (Zeichnet Quadrat mit 3 Punkten Kan- tenlänge in die Mitte des Grafikfens- ters) TEST(x,y,sc) Dies ist die einzige Funktion, die von Charwindow unterstzützt wird. Sie te- stet, ob ein Pixel an der Position (x/y) auf dem Screen 'sc' gesetzt oder gelöscht ist. Sie liefert einen numeri- schen Wert zurück, und kann somit in IF-Abfragen oder Variablenzuweisungen benutzt werden. Die rückgelieferten Wer- te haben folgende Bedeutungen:
0: Punkt ist gelöscht 1: Punkt ist gesetzt 2: Teststelle ausserhalb d. Fensters
4) HINWEISE Wie Sie sehen bietet Ihnen Charwindow eine Fülle von neuen, teilweise sehr mächtigen Befehlen zum Zeichnen inner- halb des Grafikfensters und ist zudem sehr einfach anzuwenden, wenn man sich mich dem Basic des C64 schon ein wenig auskennt. Wenn Sie sich die Bedienung und Möglichkeiten dieser Erweiterung etwas näher anschauen möchten, so soll- ten Sie die drei Demoprogramme "DEMO 1.BAS", "APFEL.BAS" und "DIA- GRAMM.BAS" auf dieser MD bei eingeschal- teter Erweiterung laden und starten. Anhand der Listings können Sie sich bei Problemen auch Lösungsansätze heraussu- chen. Zugleich sehen Sie, welche Mö- glichkeiten Ihnen Charwindow bietet.
(ub)