Mysteriöses Verhalten Serieller Ports?

Auswahl, Einrichtung und Betrieb von Rechnern und Komponenten
Antworten
Benutzeravatar
Xaar
617K-Frei-Haber
Beiträge: 318
Registriert: Di 22. Jan 2008, 14:57
Wohnort: Łužyca

Mysteriöses Verhalten Serieller Ports?

Beitrag von Xaar »

Hallo!

Nach einiger Zeit habe ich gestern Abend mal wieder meinen alten Soemtron PC 286 in Betrieb genommen. Eigentlich wollte mir ein Bekannter behilflich sein, mal SLIP zu testen, aber irgendwie hat der Rechner ein Problem mit den seriellen Schnittstellen.

Zunächst einmal zum System: Es ist ein 12MHz 286er mit 1MB RAM, einem IDE-FDD-Kombi-Kontroller, der auch zwei serielle und eine parallele Schnittstelle sowie einen Gameport enthält. Die Grafikkarte ist eine ZyMOS Poach VGA mit 256kB RAM. Weiterhin hängen zwei Diskettenlaufwerke (3,5" HD und 5,25" HD) am Kombi-Kontroller und eine 41MB große Conner CP3044. Als weitere Erweiterungskarten sind noch eine Intel EtherExpress 16 LAN und eine Joystickkarte mit zwei digitalen Joystickports verbaut. Ebenso gehört in das System noch ein ITT 287-12, den ich aber zur Fehlersuche - wie auch die Ethernet- und die Joystickkarte - ausgebaut habe.

Folgendes: Zur simplen Überprüfung der Nullmodemverbindung zwischen dem 286er und meinem Linux-Notebook habe ich einerseits auf den Linux-Notebook PuTTY als Serielles Terminal am Laufen, andererseits auf dem 286er unter DOS 6.20 einfach mit dem Befehl

Code: Alles auswählen

echo test > com1
das Wort "test" über die serielle Schnittstelle ausgeben wollen. In der Theorie sollte nun das besagte Wort auf dem Terminal erscheinen - tut es leider in der Praxis jedoch nicht.

Um auszuschließen, dass das Kabel nicht das Problem verursacht, habe ich den selben Versuch an meinem 486er (DOS 6.22) und meinem Robotron EC1834 (8086, XT-kompatibel, DOS 3.30) durchgeführt. Wenn vorher per

Code: Alles auswählen

MODE COM1:9600,N,8,1,P
die serielle Schnittstelle auf die entsprechende Konfiguration eingestellt wurde, erscheint auch das Wort "test" auf dem Terminal. Ohne die Formatierung erscheint nur Kauderwelsch - was normal sein sollte aufgrund der verschiedenen Baud-Raten.

Bei dem 286er sind die seriellen Schnittstellen auch so eingestellt, dass COM1 an der entsprechenden Adresse liegt und COM2 ebenso an der passenden Adresse. Die Kabel zum Kombikontroller sind auch die Richtigen.

Was passiert nun am 286er, wenn ich den weiter oben genannten Befehl eintippe? Offensichtlich erstmal nichts, denn es erscheint umgehend wieder der Prompt (so sollte es auch sein - nur auf dem Terminal erscheint nichts). Versuche ich nun etwas über COM2 auszugeben (wobei an COM2 nichts angeschlossen ist), erhalte ich eine Fehlermeldung (Sinngemäß "Schreibfehler auf COM2"). Stecke ich das Nullmodemkabel an COM2 an und wiederhole den Versuch, kommt keine derartige Fehlermeldung sondern gleich wieder der Prompt. Bei COM1 ist es ebenso - und bei COM3 und 4 (es gibt nur zwei serielle Schnittstellen im System) kommt auch gleich der Prompt.

Das Spielchen hab ich mit diversen DOS-Versionen ausprobiert, keine davon brachte eine Ausgabe auf dem Terminal hervor.

Um nun auszuschließen, dass der Kombikontroller defekt ist, habe ich ihn gegen einen anderen ausgetauscht - das Resultat blieb unverändert. Ich hab es auch noch mit mehreren anderen probiert (u. A. auch mit einer separaten Schnittstellenkarte), immer mit dem gleichen Ergebnis.

Da ich mit meinem Latein hier irgendwie am Ende angekommen bin, frage ich an dieser Stelle mal in die Runde: Hat jemand eine Idee, was das Problem sein könnte? Die einzige Vermutung, die ich noch habe, wäre das Mainboard, da sich dort vor einiger Zeit mal ein NiCd-Akku entleert hat und doch einige Leiterzüge etwas abgehoben sind (aber mechanisch noch nicht unterbrochen).

Hat jemand eine Idee?

Grüße, Xaar.
Atari PC3 - Compaq Portable III & 386 - IBM 5140 & 5155 & 5160 & 5162 & 5170 - IBM PS/2 30 & 55sx & 56 486SLC2 & 70 386 & 76i & 77 486 & 80 - Robotron A7100 & CM1910 & EC1834 - Soemtron PC286
freecrac
DOS-Guru
Beiträge: 836
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von freecrac »

Xaar hat geschrieben:Hallo!

Nach einiger Zeit habe ich gestern Abend mal wieder meinen alten Soemtron PC 286 in Betrieb genommen. Eigentlich wollte mir ein Bekannter behilflich sein, mal SLIP zu testen, aber irgendwie hat der Rechner ein Problem mit den seriellen Schnittstellen.

Zunächst einmal zum System: Es ist ein 12MHz 286er mit 1MB RAM, einem IDE-FDD-Kombi-Kontroller, der auch zwei serielle und eine parallele Schnittstelle sowie einen Gameport enthält. Die Grafikkarte ist eine ZyMOS Poach VGA mit 256kB RAM. Weiterhin hängen zwei Diskettenlaufwerke (3,5" HD und 5,25" HD) am Kombi-Kontroller und eine 41MB große Conner CP3044. Als weitere Erweiterungskarten sind noch eine Intel EtherExpress 16 LAN und eine Joystickkarte mit zwei digitalen Joystickports verbaut. Ebenso gehört in das System noch ein ITT 287-12, den ich aber zur Fehlersuche - wie auch die Ethernet- und die Joystickkarte - ausgebaut habe.

Folgendes: Zur simplen Überprüfung der Nullmodemverbindung zwischen dem 286er und meinem Linux-Notebook habe ich einerseits auf den Linux-Notebook PuTTY als Serielles Terminal am Laufen, andererseits auf dem 286er unter DOS 6.20 einfach mit dem Befehl
Ich kenne PuTTY nur als Telnet- und SSH-Client für Windows und dafür braucht man bei Linux einen SSH-Server.
Von einem PuTTY welches unter Linux als serielles Terminal läuft habe ich noch nie etwas gelesen/gehört.
Habe ich hierbei eine Wissenslücke?

Code: Alles auswählen

echo test > com1
das Wort "test" über die serielle Schnittstelle ausgeben wollen. In der Theorie sollte nun das besagte Wort auf dem Terminal erscheinen - tut es leider in der Praxis jedoch nicht.

Um auszuschließen, dass das Kabel nicht das Problem verursacht, habe ich den selben Versuch an meinem 486er (DOS 6.22) und meinem Robotron EC1834 (8086, XT-kompatibel, DOS 3.30) durchgeführt. Wenn vorher per

Code: Alles auswählen

MODE COM1:9600,N,8,1,P
die serielle Schnittstelle auf die entsprechende Konfiguration eingestellt wurde, erscheint auch das Wort "test" auf dem Terminal. Ohne die Formatierung erscheint nur Kauderwelsch - was normal sein sollte aufgrund der verschiedenen Baud-Raten.

Bei dem 286er sind die seriellen Schnittstellen auch so eingestellt, dass COM1 an der entsprechenden Adresse liegt und COM2 ebenso an der passenden Adresse. Die Kabel zum Kombikontroller sind auch die Richtigen.

Was passiert nun am 286er, wenn ich den weiter oben genannten Befehl eintippe? Offensichtlich erstmal nichts, denn es erscheint umgehend wieder der Prompt (so sollte es auch sein - nur auf dem Terminal erscheint nichts). Versuche ich nun etwas über COM2 auszugeben (wobei an COM2 nichts angeschlossen ist), erhalte ich eine Fehlermeldung (Sinngemäß "Schreibfehler auf COM2"). Stecke ich das Nullmodemkabel an COM2 an und wiederhole den Versuch, kommt keine derartige Fehlermeldung sondern gleich wieder der Prompt. Bei COM1 ist es ebenso - und bei COM3 und 4 (es gibt nur zwei serielle Schnittstellen im System) kommt auch gleich der Prompt.

Das Spielchen hab ich mit diversen DOS-Versionen ausprobiert, keine davon brachte eine Ausgabe auf dem Terminal hervor.

Um nun auszuschließen, dass der Kombikontroller defekt ist, habe ich ihn gegen einen anderen ausgetauscht - das Resultat blieb unverändert. Ich hab es auch noch mit mehreren anderen probiert (u. A. auch mit einer separaten Schnittstellenkarte), immer mit dem gleichen Ergebnis.

Da ich mit meinem Latein hier irgendwie am Ende angekommen bin, frage ich an dieser Stelle mal in die Runde: Hat jemand eine Idee, was das Problem sein könnte? Die einzige Vermutung, die ich noch habe, wäre das Mainboard, da sich dort vor einiger Zeit mal ein NiCd-Akku entleert hat und doch einige Leiterzüge etwas abgehoben sind (aber mechanisch noch nicht unterbrochen).

Hat jemand eine Idee?

Grüße, Xaar.
Habe ich es richtig verstanden: Mit

Code: Alles auswählen

MODE COM1:9600,N,8,1,P
geht es auf dem 80486, aber nicht auf dem 80286?

Das kann ich mir auch nicht erklären. Es sind doch alles RS-232, oder?

Sind Adressen und IRQs richtig eingestellt?

* COM1: I/O port 0x3F8, IRQ 4
* COM2: I/O port 0x2F8, IRQ 3
* COM3: I/O port 0x3E8, IRQ 4
* COM4: I/O port 0x2E8, IRQ 3

So wie ich es in Errinerung habe muss man die Adressen für COM3 + COM4 selber in die BDA eintragen, damit man diese COM-Ports(wenn vorhanden) überhaupt unter DOS benutzen kann.

BIOS Data Area (BDA)

Code: Alles auswählen

0x0400 (4 words) 	 IO ports for COM1-COM4 serial (each address is 1 word, zero if none) 
Um die Adressen für COM3 + COM4 einzutragen habe ich eine kleine ausführbare *.com-Datei mit Debug und folgenden Befehlen erstellt, die für uns die beiden Adressen im BDA eintragen:

Code: Alles auswählen

mov ax, 40
mov es, ax
mov di, 4
mov ax, 3E8
stosw
add di, 2
dec ah
stosw
ret
Mit allen 4 Adressen sollte es so aussehen:

Code: Alles auswählen

0040:0000  F8 03 F8 02 E8 03 E8 02
...

Vieleicht hilft diese Seite über: Resolving IRQ/COM port conflicts
http://service1.symantec.com/SUPPORT/pc ... enDocument

Dirk
Benutzeravatar
Xaar
617K-Frei-Haber
Beiträge: 318
Registriert: Di 22. Jan 2008, 14:57
Wohnort: Łužyca

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von Xaar »

Hallo!

Also die I/O-Ports sind richtig eingestellt, das funktioniert. Ich hab auch spaßeshalber mal eine serielle Maus an die jeweiligen Ports drangehangen - der Maustreiber erkennt dort auch die Maus (wenn keine dran hängt, tut er dies nicht, da kommt nur eine Fehlermeldung sinngemäß "Keine Maus gefunden"). Kurioserweise kann man die Maus aber nicht benutzen bzw. bewegt sich nichts, wenn man die Maus bewegt. Die Maus an sich ist in Ordnung (funktioniert am 486er tadellos).

Die Schnittstellen sind RS-232, wie auch schon geschrieben hab ich mehrere Controller ausprobiert, es ändert sich aber leider nichts daran :(

Und wegen PuTTY:

Bild

PuTTY kann auch seriell :) Sieht bei Linux fast genauso aus, nur die Schnittstelle heißt anders. Aber kann schon sein, dass diese Funktion erst später hinzugefügt wurde. Die aktuelle PuTTY-Version (0.61 wars glaube ich) kann das jedenfalls :)

Grüße, Xaar.
Atari PC3 - Compaq Portable III & 386 - IBM 5140 & 5155 & 5160 & 5162 & 5170 - IBM PS/2 30 & 55sx & 56 486SLC2 & 70 386 & 76i & 77 486 & 80 - Robotron A7100 & CM1910 & EC1834 - Soemtron PC286
freecrac
DOS-Guru
Beiträge: 836
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von freecrac »

Xaar hat geschrieben:Hallo!

Also die I/O-Ports sind richtig eingestellt, das funktioniert. Ich hab auch spaßeshalber mal eine serielle Maus an die jeweiligen Ports drangehangen - der Maustreiber erkennt dort auch die Maus (wenn keine dran hängt, tut er dies nicht, da kommt nur eine Fehlermeldung sinngemäß "Keine Maus gefunden"). Kurioserweise kann man die Maus aber nicht benutzen bzw. bewegt sich nichts, wenn man die Maus bewegt. Die Maus an sich ist in Ordnung (funktioniert am 486er tadellos).

Die Schnittstellen sind RS-232, wie auch schon geschrieben hab ich mehrere Controller ausprobiert, es ändert sich aber leider nichts daran :(
Das hört sich sehr sonderbar an, wenn die Onboard Com-ports nicht richtig funktionieren und auch andere funktionstüchtige Controler dort reingesteckt auch nicht richtig funktionieren. Ich kenne mich mit der Hardware nicht wirklich aus.
Möglichewrweise laufen die COM-Ports über den ISA/PCI-Bus und dort gibt es einen Fehler in der Hardware?
Und wegen PuTTY:

Bild

PuTTY kann auch seriell :) Sieht bei Linux fast genauso aus, nur die Schnittstelle heißt anders. Aber kann schon sein, dass diese Funktion erst später hinzugefügt wurde. Die aktuelle PuTTY-Version (0.61 wars glaube ich) kann das jedenfalls :)

Grüße, Xaar.
Ah, also gibt es putty auch für Linux. Das kannte ich noch nicht.

Dirk
elianda
DOS-Übermensch
Beiträge: 1035
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von elianda »

Mir fallen da zwei Sachen ein:
- Mal mit ^Z die Daten abschliessen (CTRL-Z).
- Es koennte Unterschiede im BIOS geben bei INT 14 ?!?
- Was passiert bei Nutzung eines richtigen Terminalprogramms?
(Terminate / Term90/95 etc.)
Diverse Retro-Computer vorhanden.
freecrac
DOS-Guru
Beiträge: 836
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von freecrac »

elianda hat geschrieben:Mir fallen da zwei Sachen ein:
- Mal mit ^Z die Daten abschliessen (CTRL-Z).
- Es koennte Unterschiede im BIOS geben bei INT 14 ?!?
- Was passiert bei Nutzung eines richtigen Terminalprogramms?
(Terminate / Term90/95 etc.)
Mit Terminalprogramm testen ist die beste Idee.

Int 14: Uff, da gibt es viel zu lesen.
RBIL->inter61a.zip->Interrup.b
Der Anfang davon:

Code: Alles auswählen

--------S-14---------------------------------
INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
InstallCheck:	determine whether the "~DOSXAM~" character device exists
Index:	installation check;Digiboard DigiCHANNEL
--------S-1400-------------------------------
INT 14 - SERIAL - INITIALIZE PORT
	AH = 00h
	AL = port parameters (see #00300)
	DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
Return: AH = line status (see #00304)
	    FFh if error on Digiboard XAPCM232.SYS
	AL = modem status (see #00305)
....geht seitenweise so weiter...

Dirk
kleinwusel
HELP.COM-Benutzer
Beiträge: 27
Registriert: So 1. Apr 2012, 17:51
Wohnort: Werben

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von kleinwusel »

Hallo

Die Serielle Karte schon mal getauscht?

MfG Kleinwusel
Benutzeravatar
Xaar
617K-Frei-Haber
Beiträge: 318
Registriert: Di 22. Jan 2008, 14:57
Wohnort: Łužyca

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von Xaar »

Ja, habe ich - ist auch im Ersten Beitrag erwähnt:
Xaar hat geschrieben: Um nun auszuschließen, dass der Kombikontroller defekt ist, habe ich ihn gegen einen anderen ausgetauscht - das Resultat blieb unverändert. Ich hab es auch noch mit mehreren anderen probiert (u. A. auch mit einer separaten Schnittstellenkarte), immer mit dem gleichen Ergebnis.
Das mit dem Terminalprogramm ist so eine Sache - ich hatte irgendwo mal TERM90/95 gehabt, aber ich find die einfach nicht x( Aber wo wir gerade dabei sind: Das Terminal von Windows 3.1 (jaa, ist kein DOS, ich weiß), sollte es doch aber auch tun, oder? Ist nicht schön, aber hatte an einem 486er Portable mir mal ganz gut als Terminal gedient..

Ich werds mal mit dem Windows-Terminal probieren - viel erhoffe ich mir davon aber auch nicht - zumal die Maus auf den seriellen Ports auch nicht funktioniert. Irrwitzigerweise wird sie aber erkannt. Ohne Maus dran meckert der Maustreiber rum, dass keine Maus dran wäre.

Grüße, Karsten.
Atari PC3 - Compaq Portable III & 386 - IBM 5140 & 5155 & 5160 & 5162 & 5170 - IBM PS/2 30 & 55sx & 56 486SLC2 & 70 386 & 76i & 77 486 & 80 - Robotron A7100 & CM1910 & EC1834 - Soemtron PC286
freecrac
DOS-Guru
Beiträge: 836
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Mysteriöses Verhalten Serieller Ports?

Beitrag von freecrac »

Xaar hat geschrieben:Das mit dem Terminalprogramm ist so eine Sache - ich hatte irgendwo mal TERM90/95 gehabt, aber ich find die einfach nicht.
Ist es vileicht dieses (noch nicht überprüft):
http://www.elexs.de/modulbus/technik/dl.html
http://www.elexs.de/modulbus/technik/term95.zip

Dirk
Antworten