C64 Handbuch


<<zurück (Seite 176) vor>>
 

Page 176
background image
168
Der erste Schritt zum Erzeugen einer Hi-Res-Grafik besteht darin, das Bit
3 in der Adresse 53272 zu setzen (Zeile 10 des Programms); dadurch
wird bewirkt, daß der Speicherbereich ab 8192 für das "Bitmapping"
benutzt wird. Um diesen Bereich auf den Bildschirm abzubilden, muß nun
noch das Bit 5 in 53265 gesetzt werden (Zeile 20 des Programms), das
den "Bit-map-mode" einschaltet.
Nun besteht noch das Problem, einen vorgegebenen Graphen (also eine
Funktion o.ä.) in ein Bitmuster umzurechnen. Eine einfache Methode,
angewandt auf eine Sinusfunktion, zeigt das folgende Programm. Soll
eine andere Funktion f(x) gezeichnet werden, so muß diese in Zeile 60 in
der Form
Y = INT (f(x))
eingesetzt werden. Dabei sind für x und y folgende Grenzen zu
berücksichtigen:
0 < x < 319 und 0 < y < 199
Bem.: Andere Farbkombinationen lassen sich erzielen, wenn man den
gepokeden Wert in Zeile 25 ändert. Die unteren 4 Bits (unteres Nybble)
bestimmen die Bildschirmfarbe, die oberen 4 Bits (oberes Nybble) die
Farbe des dargestellten Graphen.
5 REM SINUSKURVE
10 POKE53272,PEEK(53272)OR8 :REM BEREICH FUER BITMAPPING AB 8192
20 POKE53265,PEEK(53265)OR32 :REM BITMAPMODE WIRD EINGESCHALTET
25 FORK=0TO999:POKE1024+K,14:NEXT :REM WAHL DER FARBKOMBINATION
27 FORI=0TO7999:POKE8192+I,0:NEXT :REM BILDSCHIRM WIRD GELOESCHT
50 FORX=0TO319
60 Y=INT(100+80*SIN(X*2*{PI}/160)):REM FUNKTION
70 FORN=0TO24
80 IFY>N*8-1ANDY<(N+1)*8THENBY=8192+N*320+8*INT(X/8)+Y-8*N:N=24:GOTO100
85 : :REM NUMMER DES BYTES WIRD BERECHNET
90 NEXTN
100 BI=8*(1+INT(X/8))-X-1 :REM BITMUSTER WIRD BERECHNET
110 IFPEEK(BY)<>0THENPOKEBY,PEEK(BY)OR2^BI
120 IFPEEK(BY)=0THENPOKEBY,2^BI
130 NEXTX
150 GOTO150
ANHANG T
PRINT FRE(0)
Die Variable FRE(0) wird als sog. Ganzzahl- oder Integervariable
abgespeichert und kann deshalb keine Werte annehmen, die größer als
32767 sind. Übersteigt die Größe des freien Speichers diesen Wert, so
erhält man negative Werte.

<<zurück (Seite 176) vor>>