Die beschriebenen BASIC-Befehle sind nur im Applesoft-BASIC verfügbar. Das ist in allen Rechnern seit dem ][plus vorhanden.
HGR | schaltet auf den ersten Grafikbildschirm mit 280x160 Punkten. 4 Zeilen Text bleiben darunter stehen |
HGR2 | schaltet auf den zweiten Grafikbildschirm mit 280x192 Punkten. |
HCOLOR=x | Farbwahl: 0 bis 7 |
HPLOT x,y | zeichnet einen Punkt an der Stelle x, y. |
HPLOT x1,y1 TO x2,y2 | zieht eine Linie |
Der Apple II kennt von Haus aus keine Sprites, sondern arbeitet mit Shapes. Shapes sind Vektorgrafiken. Sie sind zwar längst nicht so schnell wie Sprites, aber sie sind skalierbar.
Die HGR-Befehle zerstören alle Informationen, die im Bereich ihrer Grafikseite liegen. Das kann auch grosse BASIC-Programme betreffen!
HCOLOR=1Die Farben reichen von 0 bis 7. Dabei sind
Nr | Farbe | Nr | Farbe |
---|---|---|---|
0 | schwarz | 4 | schwarz |
1 | grün | 5 | rot |
2 | violett | 6 | blau |
3 | weiss | 7 | weiss |
Da sich schwarz und weiss wiederholen, gibt es eigentlich also 6 Farben.
10 HGR 15 HCOLOR=3 16 U=0 20 FOR I=0 TO 100 30 HPLOT I*2+U,0 TO I*2+U,100 40 NEXTIst in Zeile 16 U=0, entsteht eine violette Fläche. Ist U=1 wird sie gr&uum;n. Wird HCOLOR=7 wird die Fläche blau (U=0) bzw. rot (U=1). HCOLOR=1 und U=0 ergibt schwarz, bei U=1 allerdings violett. Der Grund für diese Erscheinungen ist, dass die Farben dadurch entstehen, welche der beiden Farben weiss an einer geraden oder ungeraden Position steht. Es reduziert sich die X-Auflösung demnach um die Hälfte, wenn man Farbe verwendet.
HPLOT 2,2 HPLOT 2,2 TO 100,100Mit HPLOT wird ein einzelner Punkt gezeichnet. Mit HPLOT TO kann eine Linie gezeichnet werden. Der Nullpunkt liegt links oben. Kreise, Rechtecke und Vergleichbares waren im BASIC des Apple II nicht vorgesehen.
Wenn man in Assembler (oder durch POKE in BASIC) den Speicherbereich von $2000 bis $3FFF auffüllt, stellt man fest, dass die zweite Zeile nicht bei $2118 beginnt (das wäre die Anfangsadresse um 280 Punkte erhöht). Die Position der Zeilen zu verstehen, ist wenig sinnvoll, da man eigentlich nur die Anfangsadresse einer Zeile Y wissen will. Dazu gibt es die Funktion HPOSN ($F411), die mit dem Y-Wert im Y-Register aufgerufen wird.
Da auch der Aufruf dieser Funktion relativ lange dauerte, verwendet man eine Tabelle mit den Adressen aller Zeilen und kann so recht schnell auf die entsprechenden Zeilen zugreifen.
Computer-Oldies Apple II Bedienung und Programmierung |