Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

V24 Schnittstelle

Danni_KA / 9 Antworten / Flachansicht Nickles

Hallo,


ich bin newby und habe ein ziemlich grosses Problem mit dem Übersetzten eines alten Turbo C++ Codes!


In diesem älternen Programm werden Daten mit einer DOS-Applikation über die serielle Schnittstelle an ein externes Gerät geschickt, welches als Antwort ebenfalls Daten zurückgibt.


z.B. Senden:


unsigned send ( char ch )


byte buf[2];


int int_ch;


int_ch = ch;


send14_std ( &int_ch, ss );


void send14_std (int *value, int channel)


{


union REGS r;


r.x.ax = *value;


r.h.ah = 1;


r.x.dx = channel;


int86 (0x14, &r, &r);


*value = r.x.ax;


daneben wird dann noch syncronisiertund aufs Echo gewartet!


Mein Problem ist, das ich nicht verstehe, was, wann und welche Zeichen bzw. Zahlen über die Schnittstelle geschickt werden! Mein Hyperterminal zeigt irgendwie nichts gescheites an!


Kann mir jemand weiterhelfen oder ein Tipp geben um das ganze zu verstehen?


Hab leider keine Beschreibung für den Controller im externen Gerät; außer die Anforderungen an Baud, Stopbits usw.


Bin über jeden Hinweis dankbar.


Liebe Grüsse


Danni

bei Antwort benachrichtigen
Andreas42 Danni_KA „V24 Schnittstelle“
Optionen

Hi!

Ich weiss nicht, ob ich dir wirklich helfen kann, da du nicht genau beschreibst, wo das Problem beim Verstehen des Codes liegt. Da du die Routine zum Senden angegeben hast, denke ich du willst wissen, was da passiert.

Hier wird für jedes Zeichen die Interupt $14 im BIOS eines PCs aufgerufen. Das ist der Interupt, der zur Ansteuerung der seriellen Schnittstelle dient.

Der Inreupt $14 wird hier mit die Funktionsnummer im Register AH übergeben und in DX die Nummer der seriellen Schnittstelle. Das zu sendene Zeichen steht im Register AL.

Im Prinzip sollte das Programm so arbeiten:

Die serielle Schnittstelle wird über einen Aufruf von Int$14 mit Funktion 00 initialisiert. dann werden die Zeichen einzelnd über die Funktion 01 übertragen. Über Funktion 02 werden zeichen eingelesen und Funktion 03 dient zum Abfragen des Status der Schnittstelle.

Dokumentationen darüber hab' ich aus meinem alten Buch "PC Intern 4" von Michael Tischer. Ich denke, dass man alle nötigen Details zu den Interupts und den Funktionen auch in Ralf Browns Interuptliste finden wird (jupp, ist so: http://www.ctyme.com/rbrown.htm).

Wenn du die serielle Schnittstelle unter Windows nutzen willst, dann hilft dir evtl. dieser Link weiter, der ein Beispiel für Delphi 2.0 enthält. Die Sprache ist allerdings hier nicht wirklich wichtig, da es um die verwendeten WinAPI-Funktionen geht, die man verwenden muss:

http://www.developers.demon.co.uk/serial.html

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen