18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

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.

Rechnergrundlagen Teil 2 - 38 - Prof. Dipl.-Ing. Komar<br />

Die Kommunikationsparameter (Baud-Rate, Anzahl der Stop-Bits etc.) müssen zuvor über den MODE-Befehl eingestellt<br />

werden. DOS gibt sonst als Default-Werte eine Baud-Rate von 2400 bei einem Stop-Bit ohne Paritätsprüfung und einer<br />

Datenlänge von 8 Bits vor.<br />

Anstelle dieser Funktion sollte besser auf die Funktionen des BIOS zum Zugriff auf die serielle Schnittstelle zurückgegriffen<br />

werden. Sie sind über den Interrupt 14h aufrufbar und bieten eine größere Flexibilität als die DOS-Funktionen, zumal mit<br />

ihrer Hilfe auch der Status der seriellen Schnittstelle abgefragt werden kann.<br />

Wird ein Control-C-Zeichen (ASCII-Code 3) ausgegeben, wird der Interrupt 23h aufgerufen.<br />

Der Inhalt der Prozessor-Register wird durch diese Funktion nicht verändert. Dies gilt auch für das Flag-Register.<br />

Interrupt 21h, Funktion 05h Ausgabe auf parallele Schnittstelle<br />

Mit Hilfe dieser Funktion wird ein Zeichen an die parallele Schnittstelle gesandt, wodurch es in der Regel an einen<br />

angeschlossenen Drucker geleitet wird. Sofern nicht durch den MODE-Befehl umgeleitet, wird dabei das Gerät mit der<br />

Bezeichnung LPT1: (identisch mit PRN:) angesprochen.<br />

Eingabe AH = 05h<br />

DL = Code des auzugebenden Zeichens<br />

Ausgabe keine<br />

Das Zeichen wird erst ausgegeben, wenn das Gerät an der parallelen Schnittstelle Empfangsbereitschaft signalisiert. Danach<br />

wird die Kontrolle an das aufrufende Programm zurückgegeben.<br />

Wird ein Control-C-Zeichen (ASCII-Code 3) entdeckt, wird der Interrupt 23h aufgerufen.<br />

Größere Flexibilität bei der Ausgabe von Zeichen auf die parallele Schnittstelle bieten die BIOS-Funktionen, die über den<br />

Interrupt 17h aufgerufen werden können.<br />

Kein Prozessor-Register wird durch diese Funktion verändert. Dies gilt auch für das Flag-Register.<br />

Interrupt 21h, Funktion 06h Direkte Zeichenein-/-ausgabe<br />

Mit Hilfe dieser Funktion können Zeichen auf dem Standard -Ausgabegerät ausgegeben, oder vom Standard -Eingabegerät<br />

eingelesen werden. Das jeweils empfangene oder geschriebene Zeichen wird nicht vom Betriebssystem überprüft, so daß z.B.<br />

bei dem Auftreten <strong>eines</strong> Control-C-Zeichens nichts passiert. Da die Standard -Ein - und -Ausgabe auf andere Geräte oder in<br />

eine Datei umgeleitet werden kann, müssen die ausgegebenen Zeichen nicht auf dem Bildschirm erscheinen, bzw. die<br />

eingelesenen Zeichen müssen nicht von der Tastatur stammen. Wenn allerdings auf eine Datei zugegriffen wird, ist es für das<br />

aufrufende Programm unmöglich festzustellen, ob bereits alle Zeichen aus dieser Datei gelesen wurden, bzw. ob das<br />

Medium, auf dem sich die Datei befindet (Diskette, Festplatte) bereits voll ist.<br />

Bei der Eingabe <strong>eines</strong> Zeichens wird dabei nicht gewartet, bis ein Zeichen bereit steht, sondern in jedem Fall sofort wieder in<br />

das aufrufende Programm zurückgesprungen.<br />

Eingabe AH = 06h<br />

DL = 0 - 254: dieses Zeichen ausgeben<br />

DL = 255: ein Zeichen einlesen<br />

Ausgabe Bei der Zeichenausgabe: keine<br />

Bei der Zeicheneingabe:<br />

Zero -Flag = 1: es steht kein Zeichen bereit<br />

Zero -Flag = 0: eingelesenes Zeichen befindet sich im AL-Register<br />

Werden erweiterte Tastatur-Codes eingelesen, wird zunächst der Code 0 im AL-Register zurückgeliefert. Die Funktion muß<br />

dann erneut aufgerufen werden, um den eigentlichen Code zu lesen.<br />

Das Zeichen mit dem ASCII-Code 255 kann mit Hilfe dieser Funktion nicht ausgegeben werden, da es als Befehl zur<br />

Eingabe <strong>eines</strong> Z eichens verstanden wird.<br />

Der Inhalt der Register AH, BX, CX, DX, SI, DI, BP, CS, DS, SS und ES wird durch diese Funktion nicht verändert.<br />

Interrupt 21h, Funktion 07h Direkte Zeicheneingabe ohne Ausgabe<br />

Ein Zeichen wird vom Standard -Eingabegerät gelesen, ohne allerdings auf dem Standard -Ausgabegerät ausgegeben zu<br />

werden. Steht zum Zeitpunkt des Funktionsaufrufs kein Zeichen zur Verfügung, wartet die Funktion, bis ein Zeichen<br />

verfügbar wird.<br />

Das empfangene Zeichen wird nicht vom Betriebssystem überprüft, so daß z.B. bei dem Auftreten <strong>eines</strong> Control-C-Zeichens<br />

nichts passiert.<br />

Da die Standard -Eingabe auf ein anderes Gerät oder auf eine Datei umgeleitet werden kann, muß das eingelesene Zeichen<br />

nicht unbedingt der Tastatur entstammen. Werden die übergebenen Zeichen einer Datei entnommen, so gibt es für das<br />

aufrufende Programm keine Möglichkeit festzustellen, ob bereits alle Zeichen aus dieser Datei ausgelesen sind, das<br />

Dateiende also schon erreicht ist.<br />

Eingabe AH = 07h<br />

Ausgabe AL = Eingelesenes Zeichen<br />

Werden erweiterte Tastatur-Codes eingelesen, wird zunächst der Code 0 im AL-Register zurückgeliefert. Die Funktion muß<br />

dann erneut aufgerufen werden, um den eigentlichen Code zu lesen.<br />

Der Inhalt der Register AH, BX, CX, DX, SI, DI, BP, CS, DS, SS, ES und des Flag-Registers wird durch diese Funktion<br />

nicht verändert.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!