VC 20 (GV)
Grafik

Supergrafik II

Dieses Programm liefert eine Grafik-Auflösung von 200 mal 256 Punkten und nützt damit den Bildschirm vollständig aus, und dies in der Grundversion des VC 20.

Es handelt sich hier um eine Weiterentwicklung des im 64’er, Ausgabe Mai 1984, Seite 81 abgedruckten Programms. Nach Eingabe der Größe des Koordinatensystems generiert das Programm den Grafen einer Funktion und ihrer Ableitung in verschiedenen Farben. Es ist sicher für viele Besitzer des VC 20, insbesondere für Schüler und Lehrer interessant.

Die Funktionsgleichung wird in Zeile 1 definiert. Das Programm legt den Koordinatenursprung in die Bildschirmmitte und zeichnet den Grafen der Funktion (rot) und ihrer Ableitung (gelb). Nach dem Programmstart wird der Definitionsbereich der Funktion abgefragt (-XMAX ≤ X ≤ XMAX) und der Maßstab für die Hochwert-Achse gewählt (-YMAX ≤ Y ≤ YMAX). Das Programm kann aus Gründen des beschränkten Speicherplatzes zwar »nur« 159 Felder aus jeweils 8 mal 16 Punkten ansprechen, was aber für diese Anwendung vollkommen ausreicht. Um Speicherplatz zu sparen, wurde auf Kommentare im Programm und Grundsätze zur übersichtlichen Programmierung bewußt verzichtet.

(Rudolf Dörr/ev)
Zeile
1 Funktionsgleichung
15 Länge des positiven Teils der X-Achse (XMAX) und der Y-Achse (YMAX)
20 Ändern einiger Speicherinhalte der VIC-Kontrollregister zur Vergrößerung des Bildschirmfensters und Herabsetzen eines Zeigers (Ende Basic) zum Schutz des Zeichenspeichers im Hauptspeicher.
25 Einlesen und Ausführen eines kleinen Maschinenprogramms zur Löschung des Bereichs für die neuen Zeichen.
30 Verlegen des Zeichenspeichers in den Hauptspeicher, Farbe (blau) für den Koordinatenursprung.
90 Zeichnen eines kleinen Achsenkreuzes in der Bildschirmmitte.
97
  • Farbe (rot) für den Funktionsgraphen, Auswahlvariable D (0: Funktion, 1: Ableitung)
  • »Sicherheitsvariable« SH (um Divisionen mit dem Divisor Null vorzubeugen)
  • Schrittweite H zur Berechnung des Differenzquotienten
100-130 Ermitteln der Koordinaten der Punkte des Grafen (XW,YW) und Umrechnen auf Bildschirmkoordinaten (X,Y).
150 Umschalten auf die Ableitungsfunktion (D=1) und Farbe gelb
200 Wartestellung am Ende der Programmausführung
4000-4060 Eigentliches Grafik-Unterprogramm, Berechnung der nötigen Speicherinhalte im Zeichensatz und Ausgabe der Zeichen auf dem Bildschirm
5000 Speicherzelleninhalte für das Maschinenprogramm
Programmaufbau von »Supergrafik II«
1 deffnf(x)=sin(x)
2 print"{clr}**funktion+ableitung**":print"{down}r.doerr":print"gunzenhausen,30.3.1984"
8 print"{down}{down}{down}{down}{rvon}{red}funktion in zeile 1   definieren!{rvon}{blu}{down}{down}"
15 input"xmax";xm:input"ymax";ym
20 p=36864:pokep+3,161:poke55,0:poke56,20:pokep+1,18:pokep,10:pokep+2,153:print"{clr}"
25 poke0,10:poke1,0:fori=828to846:readp:pokei,p:next:poke2,20:sys828
30 poke36869,253:fa=6
90 y=128:forx=96to102:gosub4000:next:x=99:fory=125to131:gosub4000:next
97 fa=2:d=0:sh=0.000001:h=.0001
100 forx=0to199
110 xw=xm*(2*x/199-1):yw=(fnf(xw+d*h+sh)-d*fnf(xw+sh))/((h-1)*d+1):y=(1-yw/ym)*127.5
115 ify<0ory>255.4then130
120 gosub4000
130 next
140 ifd=1then200
150 fa=7:d=1:goto100
200 geta$:ifa$=""then200
210 end
4000 :
4010 y=int(y+.5):x=int(x+.5):xs=int(x/8):ys=int(y/16)
4040 by=y-ys*16:bi=7-x+xs*8:z=7680+xs+25*ys:zf=z+30720
4050 ifpeek(z)=32thenbc=bc+1:pokez,bc:pokezf,fa
4055 ifbc>158then200
4060 bs=peek(z):b=5120+16*bs+by:p=peek(b):p=por2^bi:pokeb,p:return
5000 data162,0,169,0,160,0,145,1,200,208,251,230,2,232,228,0,208,242,96
Listing »Supergrafik II«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →