30.12.2012 Aufrufe

Untitled

Untitled

Untitled

MEHR ANZEIGEN
WENIGER ANZEIGEN

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:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!