Untitled
Untitled
Untitled
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
48 Der User-Port<br />
kann entweder als Eingang oder als Ausgang<br />
programmiert werden. Es ist also<br />
moglich, die Pins mit logischen Spannungen<br />
zu belegen, oder es konnen die aul3en<br />
anliegenden logischen Werte in den Rechner<br />
eingelesen werden. Der Baustein reagiert<br />
dabei genau wie die in Kapitel 1<br />
vorgestellten TTL-Gatter. Spannungen<br />
nahe 0 Volt ergeben logisch 0 oder LOW,<br />
Spannungen nahe 5 Volt logisch 1 bzw.<br />
HIGH.<br />
2.2.1.1 Das Datenrichtungsregister<br />
Die Festlegung, welche Leitung Eingang<br />
und welche Ausgang sein soll, geschieht<br />
uber das Datenrichtungsregister. Fur den<br />
User-Port (PB) mal3geblich ist das Register<br />
Nummer 3. In ihm steht jedes Bit fur<br />
eine bestimmte Leitung. Bit 0 steuert PBO,<br />
Bit 1 PBI und so weiter. 1st ein Bit gesetzt<br />
(1), so wird die entsprechende Leitung<br />
zum Ausgang, ein gelOschtes Bit programmiert<br />
sie auf Eingang.<br />
Die Basisadresse des CIA # 2, der auch<br />
den User-Port bedient, ist $0000, also<br />
dezimal 56576. Urn Register 3 anzusprechen,<br />
addieren wir einfach drei zu dieser<br />
Adresse. Ein Befehl, der alle acht Portlei<br />
tungen auf Ausgabe setzt, lautet also<br />
POKE 56576+3,255 ,<br />
denn 255 ist die grol3te mit 8 Bit darstellbare<br />
Zahl, bei der somit alle Bits den<br />
Wert 1 haben.<br />
2.2.1 .2 Das Datenregister<br />
Ganz analog sind die Bits des Datenregisters<br />
den einzelnen Leitungen zugeordnet.<br />
Das Datenregister hat die Nummer I. Wir<br />
erreichen es also durch Addition von 1 zur<br />
Basisadresse von CIA # 2. Jedes gesetzte<br />
Bit erzeugt hier auf der entsprechenden<br />
Ausgabeleitung eine Spannung mit<br />
HIGH-Pegel (nahe +5 Volt), jedes geloschte<br />
Bit jedoch LOW-Pegel (nahe<br />
o Volt).<br />
Wollen wir beispielsweise die Leitung PBO<br />
auf HIGH-Pegel setzen, alle anderen Leitungen<br />
sollen aber auf LOW gehen, dann<br />
lautet die Anweisung dazu:<br />
POKE 56576+1,1 ,<br />
denn die Dezimalzahl 1 wird durch die<br />
Dualkombination<br />
0 0 0 0 0 0 0 1<br />
dargestellt (siehe Kapitel 1 und Anhang<br />
E). Die 0 ganz links steht dabei fUr PB7,<br />
man sagt auch das hochstwertige Bit (englisch<br />
Most Significant Bit: MSB), die ganz<br />
rechts fur PBO, das niederwertigste Bit<br />
(Least Significant Bit: LSB).<br />
Natiirlich mussen dazu alle Leitungen als<br />
Ausgange definiert sein. Macht man sie<br />
durch LOschen aller Datenrichtungsbits<br />
mit<br />
POKE 56576+3,0<br />
ausnahmslos zu Eingangen, dann kann<br />
man die jeweils aul3en am User-Port anliegenden<br />
aktuellen logischen ZusUinde per<br />
Programm abfragen, indem man mit<br />
PEEK (56576+1)<br />
das Datenregister einliest.<br />
Ein kleines BASIC-Programm zum Abfragen<br />
der Portieitungen ist also schnell<br />
geschrieben und lautet zum Beispiel: