(FAQ - Assem...) Serielle Schnittstelle (DOS) per IN und OUT
-
[TASM]
intel syntaxja ich möchte mal unter DOS die Serielle schnittstelle benutzen (wenn die antworten gut sind könnte es ja auch in die FAQ weil dort steht ja nur das zum Paralelen
3F8h...3FFh (COM1)
2F8h...2FFh (COM2)
sind die Standard adressendie Funktionen
IN DEST, PORT
OUT PORT,SOURCEnur welche parameter brauche ich für die die Leitungen
TxD
RTS
CTSRxD
DCD
RIDTR
DSR
GND (MASSE)tja also
OUT 3F8h,?
-
TxD einschalten:
in al, 0x3fb
or al, 64
out 0x3fb, alTxD ausschalten:
in al, 0x3fb
xor al, 64
out 0x3fb, alDTR einschalten:
in al, 0x3fc
or al, 1
out 0x3fc, alDTR ausschalten:
in al, 0x3fc
xor al, 1
out 0x3fc, alRTS ein/ausschalten:
genauso wie DTR, nur anstatt mit 1 mit 2 verknüpfenCTS, DSR, RI, DCD überprüfen:
Adresse 0x3fe
Testen, ob folgende Bits gesetzt sind:
CTS 16
DSR 32
RI 64
DCD 128Mit Aus meine ich den Zustand -12V, mit An den Zustand +12V.
Keine Garantie auf das oben, ich habe es nicht ausprobiert, wenn ich aber keinen groben Denkfehler gemacht habe, sollte es funzen
Ach ja, ich habe nur die Befehle für COM1 hingeschrieben, für COM2 funktioniert das genauso, nur dass halt die anderen Adressen verwendet werden.
-
cool, danke
hätte nicht so schnell mit ner antwort gerechnet, ich teste es heute oder morgen noch ausachso wie teste ich ob einzelne bits gesetzt sind?
-
Das geht mit cmp, test, bt... uvm.
Hier wuerde ich "test" empfehlen.
Um zu testen, ob Bit4 von al gesetzt ist:
test al,16
Wenn das Bit gesetzt ist, ist ZF=0.
-
Wenn's funzt, kann es ja in die FAQ
-
Ich hab zwar (noch) fast keine Ahnung aber, hier ein auszug aus einem Buch:
Serielle Schnittstelle (COM1)
Zeichen einlesen (INT 21h Funktion 3):
Eingabe: AH = 3
Ausgabe: AL = ASCII-Code des ZeichensZeichen Schreiben (INT 21h Funktion 4):
Eingabe: AH = 4
Ausgabe: DL = ASCII-Code des ZeichensmfG IDK
-
schonmal nachgeacht dass int21 nur unter dos/win verfügbar ist
die methode mit in und out ist plattformunabhängig
wenns nur um dos geht gibts ja den interrubt 14h
-
Wie auch immer, scheint ja zu funktionieren. Kommt das nicht in die FAQ?
-
Jup, die Haelfte.