6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
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.