UART unter DOS

Gast #417621
Lesenswert?

Such dir einen sogenannten FOSSIL Driver. Wurden damals für Modems unter
BBS Software benutzt und erledigte den ganze hässlichen Interrupt-Kram.
Sieht dem entsprechenden aber untauglichen BIOS-Interrupt recht
ähnlich.
Gast #417622
Lesenswert?

>Hallo Leute wisst Ihr vielleicht wie ich unter DOS eine Serielle
>Schnittstelle in C anprechen kann

1. fopen
funktioniert auch unter windows/unix
nimm es wenn du einfach etwas übertragen willst

2. outp, inp
als Adresse die Adresse der seriellen Schnittstelle
dazu sollte man die Portbeschreibung des 16550 haben
funktioniert mit Sicherheit nicht in einem Programm unter Windows

3. int 14
zur Verwendung ist eine Interruptliste recht nützlich
verwendung unter windows fraglich

4. Falls dein "Dos" eine Windowsumgebung unter sich hat Createfile;
üblicher Weg in Windows seit mehr als 10 Jahren

Möglichkeit 2 und 3 kann man hervorragend dazu verwenden, um seine
Lernresistenz und totale Ablehnung neuerer Betriebssysteme zu
demonstrieren...
Gast #417623
Lesenswert?

Also ich habe einen kleinen embedded Rechner (ETX Board).
Darauf wollte ich MSDOS installieren und beim Start eine C-Routine
aufrufen,welche über die Serielle Schnittstelle Dateinamen von Bitmaps
empfängt und diese dann auf dem VGA (Monitor) ausgibt...
Gast #417624
Lesenswert?

Habe mir den FOSSIL Treiber angeschaut iss ganz cool das Teil... Damit
kann ich die Einstellungen unsw. machen damit dass Ding grundsätzlich
läuft, aber wie bekomm ich dann den Zugriff auf die Schnittstelle mit
einem C Progr.
Gast #417628
Lesenswert?

Andersrum. Ein BIOS-Interrupt ist sowas ähnliches wie ein
Betriebssystem-Aufruf. Sieht also je nach Compiler sinngemäss ungefähr
so aus:

int
get_char(void)
{
    union REGS r;
    r.a.xx = 1;      // Parameter für den BIOS-Aufruf
    r.b.yy = 2;
    int(0x14, &r);   // hier wird das BIOS aufgerufen
    return r.c.zz;
}

Das sich der FOSSIL-Treiber als BIOS-Erweiterung tarnt, funktioniert
einfacher serieller Code sowohl mit als auch ohne FOSSIL.
Gast #417632
Lesenswert?

nee iss j auch klar ;)  Ich habe gerade mal im Datenblatt meines
Rechners geschaut... COM 1 Hat IRQ 3... Wie die Parameter des Bios
Aufrufes aussehen steht dann wohl auch in der Compiler Beschreibung
oder ?
Gast #417636
Lesenswert?

Hallo Andreas,

ich habe mal einige Progrmme in C, C++ unter DOS geschrieben.
Vielleicht kannst du was damit anfangen. Die Programme funktionieren
seit Jahren einwandfrei mit dieser Art der Interruptgetriebenen
Schnittstelle. Falls du mehrere Schnittstellen hast, hab ich auch noch
was. Damals hatte ich 2 RS232 mit Interrupt und 2 mit polling. Das ist
mit DOS kein Problem. Wer weiß, wie das mit Windows geht ;-).

Hab da auch noch Code zur Interruptgetriebenen Erfassung der Tastatur.

mfg Alfred
Angehängte Dateien:
Gast #417637
Lesenswert?

Ich hätte da noch einen Tip:

Öffne doch einfach ein File mit dem Dateinamen "COM1" oder "COM2"
oder "LPT1"! Lese- und Schreibzugriffe gehen dann direkt auf die
entsprechende Schnittstelle, das ganze funktioniert sogar unter Windows
3.0 bis WinXP...

Gruss Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren