Tips & Tricks zum C 16
Auch zu Commodores Kleinstem haben wir einige interessante Programmierhinweise fiir Sie herausgesucht. Neben einigen nützlichen POKEs finden Sie ein Programm, um den Zeichensatz nach Ihren Wünschen zu ändern.
Der Zeichensatz besteht beim C 16 aus nur 128 Zeichen. Die anderen 128 Zeichen sind die inverse Darstellung der ersten 128 Zeichen. Ein Zeichensatz kann also alle 1024 Bytes stehen (zum Beispiel ab den Adressen 12288, 13312, 14336, 15360).
Nun die Befehle, um ihn zu verändern:
- »POKE 65298, PEEK (65298) AND NOT 4«
- »POKE 65299, Anfang Zeichensatz/256«
Nach einer Fehlermeldung sind allerdings keine Zeichen mehr zu erkennen. Sie erscheinen erst dann wieder, wenn wieder ein Befehl eingegeben wird.
Listing 1 zeigt ein Programm zum Kopieren des Zeichensatzes vom ROM ins RAM. Startadresse des Zeichensatzes ist 15360.
10 fort=0to56 20 reada 30 poke15000+t,a 40 next 80 sys15000 62900 data 169,0,141,248,7,133,208,133 62910 data 210,169,208,133,209,169,60,133 62920 data 211,141,19,255,160,0,177,208 62930 data 145,210,200,208,249,230,209,230 62940 data 211,165,211,201,64,208,237,169 62950 data 192,141,18,255,169,59,133 62960 data 52,133,56 62970 data 169,246,133,51,133,55,96
Farben auf den Farbtasten verändern
Die Farben der Farbtasten (CTRL- oder Commodore-Taste zusammen mit einer Zahlentaste) sind in den Adressen 275 bis 290 gespeichert. Sie können beliebig geändert werden. Die entsprechenden Steuerzeichen bleiben allerdings gleich!
Beispiel: POKE 275,69.
Statt Schwarz liegt auf der ersten Farbtaste jetzt Grün.
Wiederholfunktion der Tasten
| POKE 1344,0 | Wiederholfunktion aus, nur »CRSR«, »SPACE«, »INST/DEL« haben Wiederholfunktion |
| POKE 1344,64 | keine Taste hat Wiederholfunktion |
| POKE 1344,128 | alle Tasten haben Wiederholfunktion (Normalzustand) |
Tastaturpuffer
Die Adressen 1319 bis 1328 enthalten die Codes der Tasten, die nicht unmittelbar ausgeführt werden können.
239 enthält den Zähler für den Tastaturpuffer, der angibt, wieviel Codes im Tastaturpuffer abgelegt sind.
Hier ein Beispiel, bei dem ein Programm nachgeladen wird (in einem Programm)
POKE 1319,13 : POKE 1320,13 : POKE 239,2
PRINT "DLOAD" : CHR$ (34)
PHINT "RUN"
Tastaturabfrage
In der Adresse 198 wird der Code der gerade gedrückten Taste abgelegt. Wenn keine Taste gedrückt wird, ist PEEK (198) gleich 64. Mit PEEK (198) können auch die Funktionstasten abgefragt werden.
Abfragen der »SHIFT«-, »Commodore«- und »CTRL«-Tasten Mit PEEK (1347) können diese Tasten abgefragt werden.
(Ulrich Käfferbitz/tr)Nützliche Speicherstellen
- WAIT 1,192 wartet darauf, daß eine Taste am Recorder gedrückt wird.
- Der Funktionstastenspeicher steht in den Adressen $0567 bis $05E6
- Die Einsprungadresse für die USR-Funktion steht in #1281/1282 = $0501/0502
Basic-Start 43/44 (Low-/Highbyte) Anfang der Variablen 45/46 (Low-/Highbyte) Anfang der Felder 47/48 (Low-/Highbyte) Ende der Felder 49/50 (Low-/Highbyte) Stringspeicher Ende 51/52 (Low-/Highbyte) Anfang der Strings 53/54 (Low-/Highbyte) Basicspeicher Ende 55/56 (Low-/Highbyte) - Der Ton-Chip des C 16 läßt sich in Assembler wie folgt programmieren: Soundregister ist Adresse 65297. Jedem Bit kommt eine bestimmte Steuerfunktion zu:
Bit 0 bis 2 #0 bis #7 Lautstärke = VOL 0 bis VOL 6 Bit 3 #8 volle Lautstärke (wenn Bit 3 gesetzt ist, sind Bit 0-2 ohne Bedeutung) Bit 4 #16 Stimme 1 an (=1) / aus (=0) Bit 5 #32 Stimme 2 an (=1) / aus (=0) Bit 6 #64 Stimme 2 Rauschen (=1) Bit 7 #128 Bit gesetzt = kein Ton Der Ton ist in 10 Bits codiert: mögliche Werte: #0 bis #1023
Frequenzen Low-Byte High-Byte (0,1) Stimme 1 65294 65298 Stimme 2 65295 65296
(Frank Plachetta/tr)Register 65286: Durch Löschen der Bits 0/1 lässt sich der Bildschirm um bis zu drei Rasterzeilen nach oben verschieben. Bit 2 gesetzt: Bildschirm vier Rasterzeilen nach unten Bit 3 gelöscht: Bildschirm vier Rasterzeilen nach unten Bit 4 gelöscht: Bildschirm ausgeblendet Bit 5 gesetzt: Char-Speicher verschoben Bit 6 gesetzt: kein Cursor sichtbar Register 65287: Bit 0/1 setzen: Verschieben des Bildschirms um bis zu drei Rasterzeilen nach rechts. Bit 4 gesetzt: Mehrfarbmodus ein Bit 5 gesetzt: Videochip stoppt (keine Bilderzeugung mehr) Bit 6 gesetzt: Programmierbare Bildstörung Bit 7 gesetzt: 38 Zeichen/Zeile POKE 65290, 162 sperrt Tastatur POKE 65290, 163 entriegelt Tastatur Register 65301 Hintergrundfarbe (Bit 0—3 (Low-Nibble) Farbe) Register 65305 Rahmenfarbe (Bit 4—6 (High-Nibble) Intensität)