Tips & Tricks zum C 16
Auch zu Commodores Kleinstem haben wir einige interessante Programmierhinweise für 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)
PRINT "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)