C 16, Plus/4
Tips & Tricks

Tips & Tricks zum C 16 und Plus/4

Das gute Basic des C 16 erlaubt mit nur sechs Programmzeilen eine verblüffende 3D-Grafik. Darüber hinaus bringen wir ein paar neue PEEKs & POKEs und einen Artikel über den User-Port des Plus/4.

Zu Beginn ein paar allgemeine Informationen: — Die meisten C 128-Grafik-Listings (Rubrik »Tips & Tricks zum C 128«), die in reinem Basic geschrieben sind, lassen sich auch auf dem C 16 und Plus/4 verwenden. Lediglich die Befehle zum Einstellen der Bildschirmfarben und die »SCNCLR«-Funktion müssen angepaßt werden. Die herrlichen Grafik-Demos aus der Ausgabe 1/86 der 64'er lassen sich zum Beispiel durch genannte Änderungen für den C 16 und Plus/4 verwenden.

— Für diejenigen, die es noch nicht wissen sollten: Beim Zeitschriftenhändler liegt unser Sonderheft 8/86 mit dem Thema »C 16, Plus/4« für Sie bereit! Für die Datasetten-Besitzer gibt es alle Programme dieses Sonderheftes auch auf Kassette zu kaufen. 5

— Unsere C 16-Kiste schreit immer noch nach Tips & Tricks-Futter! Da wir eine Zeitschrift zum Mitmachen sind, sind wir auch auf Ihre Beiträge angewiesen, um diese Rubrik weiter auszubauen. Vergessen Sie nicht: Es geht weniger darum, daß Sie einen brandheißen, bahnbrechenden Trick entdeckt haben. Vielmehr legen wir Wert auf eine leicht verständliche Beschreibung Ihres Beitrages. Sie helfen vielen C 16-Einsteigern sehr mit Tips, kurzen Unterprogrammen'oder Grafik-Listings, die vielleicht für Sie als selbstverständlich gelten. Und: Jeder veröffentlichte Beitrag wird natürlich angemessen honoriert.

(tr)

Tolle 3D-Grafik

Mit wenigen Programmzeilen (siehe Listing 1) läßt sich eine erstaunliche Grafik erzeugen. Etwas experimentieren mit den einzelnen Zahlenwerten lohnt sich. In Zeile 1 wird die Funktion eingesetzt. Durchschnittliche Zeichengeschwindigkeit zirka vier Minuten. Maximaldauer bei sehr komplizierten Funktionen bis zirka 12 Minuten. Einige Beispielfunktionen: DEFFNA(Z)=30%C0S(7*%Z/15)

(Georg Polivka/tr)
DEFFNA(Z)=30*COS(π*Z/15)
DEFFNA(Z)=-COS(π*Z/90)*TAN(π*Z/320+1)+1
DEFFNA(Z)=X (guter Effekt!)
DEFFNA(Z)=INT(Z)-110.
1 color0,1:color4,1:color1,2,5:graphic1,1:deffna(z)=30*cos(~*z/15)
2 g=160:k=150:forx=-100to0:l=-60:h=5*int(sqr(10000-x*x)/5)
3 fory=hto-hstep-5:z=25+fna(sqr(x*x+y*y))-.6*y
4 ifz>lthenl=z:draw1,g+x,k-z:draw1,g-x,k-z
5 nexty,x
6 getkeye$:graphic0
Listing 1. »3D-Grafik« auf den C 16

Peeks & Pokes

Ich habe für den C 16 einige PEEKS und POKES ausgetüftelt:

POKE 1343,0 Schaltet die Tastatur aus
POKE 1343,10 Schaltet die Tastatur wieder ein (natürlich nur vom Programm aus)
POKE 1345,X Verlangsamt die Repeat-Funktion
PEEK (151) Anzahl der offenen Dateien
POKE 788,11 Absturz-POKE
PEEK (1339) Zeichenfarbe
schwarz = 80 rot = 82
purpur = 84 blau = 86
orange = 88 gelb/grün = 90
blau/grün = 92 dunkelblau = 94
weiß = 81 zyan = 83
grün = 85 gelb = 87
braun = 89 rosa = 91
hellblau = 93

Beispiel:

10 Color 1,3,5
20 PRINTPEEK (1339)

ergibt 82

(Ingo Krüger/tr)

Der User-Port des Plus/4

Im Plus/4 wird ein 6529 Single Port Chip verwendet, der sich in Aufbau und Anwendung doch etwas vom 6522 des C 64 unterscheidet. Beim 6529 fehlt das Datenrichtungsregister und die Handshake-Leitungen CB1 und CB2. Jede Leitung kann als Aus- und Eingang gleichzeitig verwendet werden.

Programmierung:

POKE 64784, byte: Jede binäre 0 in diesem Byte schaltet den entsprechenden Ausgang auf 0 V (- 6 mA), eine 1 legt ihn (durch einen passiven Pull-Up-Widerstand) auf 5 V (600 uA), wobei die jeweils angegebenen Ströme fließen dürfen. PEEK (64784:) liefert ein Bitmuster, das den tatsächlichen Pegeln an den Ports entspricht. Bei Verwendung einer Portleitung als Ausgang könnte ein zusätzlicher Pull-Up-Widerstand von 1 bis 4,7 kQ nützlich sein, um auch im High-Pegel ausreichende Ströme zu erhalten. Bei Verwendung als Eingang sollte mindestens 1 mA geliefert werden, damit die Leitung sicher auf 0V gezogen werden kann.

Die technischen Angaben stammen von Commodore Österreich. Da sich die Pinbelegung vom C 64 unterscheidet, habe ich nachfolgend eine Vergleichstabelle zusammengestellt. Hier nun die unterschiedliche Pinbelegung.

(H. Haberfellner/tr)

User-Port

PIN PLUS/4 VC 20 C 64
1 GND GND GND
2 +5 V +5 V +5 V
3 Reset Reset Reset
4 P 2 Joy 0 CNT 1
5 P 3 Joy 1 SP 1
6 P 4 Joy 2 CNT 2
7 P 5 Lightpen SP 2
8 R*C Cass.Sw. PC 2
9 ATN ATN ATN
10 9 V AC 9 V AC 9 V AC
11 9 V AC 9 V AC 9 V AC
12 GND GND GND
A GND GND GND
B P 0 CB 1 Flag 2
C S IN PB 0 PB 0
D RTS PB 1 PB 1
E DTR PB 2 PB 2
F P 7 (RI) PB 3 PB 3
H DCD PB 4 PB 4
J P 6 PB 5 PB 5
K P 1 (CTS) PB 6 PB 6
L DSR PB 7 PB 7
M S OUT CB 2 PA 2
N GND GND GND

Tip zu INPUT

Durch Eingabe dieses kleinen Assemblerprogrammes mit dem Monitor des C 16 kann die Input-Anweisung verbessert werden. Gesperrt werden nun die Tasten <ESC>, <CLR/HOME>, <CRSR DOWN>, <CRSR UP> und <CTRL>

a 0400 bit $81
a 0402 bmi $0407
a 0404 jmp $db7a
a 0407 ldx #$04
a 0409 cmp $0418,x
a 040c beq $0418
a 040e dex
a 040f bne $0409
a 0411 lda #$04
a 0413 bit $0543
a 0416 beq $0404
a 0418 rts

Nach der Eingabe der beiden folgenden Zeilen ist die verbesserte INPUT-Anweisung aktiviert.

>0419  34  39  2b  28
>0545  00  04
(Daniel Neukomm/tr)
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →