Announcement

Collapse
No announcement yet.

Nullmodemverbindung mit Delphi/TP

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nullmodemverbindung mit Delphi/TP

    Hallo Leute,<br>
    ich möchte von meinem DOS-Laptop (286er Commodore, aber noch rüstig...) Date(i)en zu meinem PC und umgekehrt übertragen. Gibt es in Delphi eine Möglichkeit, eine Nullmodemverbindung aufzubauen? Wenn ja, wie? Der Code müsste natürlich portabel sein... (Delphi->TP)<br>
    Im Voraus vielen Dank,<br>
    Leonhardt<br><br>
    Quelltexte bitte mailen an:
    [email protected]

  • #2
    Schau mal unter http://www.turbopower.com. Dort gibt es AsyncPro. Die älteren Versionen müßten auch für DOS/TP geeignet sein

    Comment


    • #3
      Danke für den Tip Bernhard,
      aber da das Programm $395 kostet und es anscheinend keine Sharewareversion gibt, lasse ich es lieber. Trotzdem vielen Dank, und falls jemand ein <b>Quellcodebeispiel</b> hat, ich freue mich über Unterstützung<br>
      Gruß, Leonhard

      Comment


      • #4
        Hi in Pascal ist dein Problem zimlich Easy
        siehe unten

        unit trans1;
        {copyright by Sven Wallin,Programm Werkstatt}
        interface
        uses crt,dos,fens;
        const
        t_300=384;
        t_1200=96;
        t_2400=48;
        t_4800=24;
        t_9600=12;
        t_19200=6;

        l7_bit=2;{Datenl„nge}
        l8_bit=3;

        l1_stop= 4;
        l1_5stop=0;{Stopbit}

        l_keine=0;
        l_ungrade=8;
        l_grade=24;

        var porteinst:byte;
        baudei:word;
        compo:byte;
        sek,zah,max:word;
        tisout:boolean;
        portad:word; {adresse vom comport als word also 3F8 = 1016}

        Function setzeeinstell(baud1:longint;dlaenge :byte;sbite:byte;paritaet:byte;compor:byte):boolea n;
        procedure holecom(comport:word;parame:byte);
        function lese:byte;
        function schreibe(wert:byte):boolean;
        function timeout:boolean;
        function teste(comport:word):boolean;
        procedure zu;
        implementation
        var dcomport:word;

        function timeout:boolean;
        var dst,dmi,dsek,dmsek :word;
        wx,wy:word;
        begin
        wx:=wherex;
        wy:=wherey;
        gotoxy(60,25);
        gettime(dst,dmi,dsek,dmsek);
        if sek<>dsek then
        begin
        inc(zah);
        sek:=dsek;
        end;
        if zah>=max then
        begin
        timeout:=true;
        tisout:=true;
        teste(dcomport);
        end
        else
        begin
        timeout:=false;
        tisout:=false;
        end;
        cu_a;
        write(zah,':',max);
        gotoxy(wx,wy);

        end;

        Function setzeeinstell(baud1:longint;dlaenge :byte;sbite:byte;paritaet:byte;compor:byte):boolea n;
        var d:word;
        begin
        dcomport:=compor;
        setzeeinstell:=false;
        porteinst:=0;
        d:=0;
        case baud1 of
        300:d:=t_300;
        1200:d:=t_1200;
        2400:d:=t_2400;
        4800:d:=t_4800;
        9600:d:=t_9600;
        19200:d:=t_19200;
        else
        begin
        exit;
        end;
        end;
        baudei:=d;
        d:=0;
        case dlaenge of
        7:d:=l7_bit;
        8:d:=l8_bit;
        else
        begin
        exit;
        end;
        end;
        case sbite of
        1:d:=d+l1_stop;
        2:d:=d+l1_5stop;
        else
        begin
        exit;
        end;
        end;
        case paritaet of
        0:d:=d+l_keine;
        1:d:=d+l_ungrade;
        2:d:=d+l_grade;
        else
        begin
        exit;
        end;
        end;
        porteinst:=porteinst+d;
        d:=0;
        compo:=compor-1;
        setzeeinstell:=true;
        end;

        procedure holecom;
        var dumi:byte;
        begin
        port[portad+3]:=128;
        port[portad]:=baudei;
        port[portad+1]:=0;
        port[portad+3]:=porteinst;
        port[portad+4]:=3;
        dumi:=port[portad];
        end;

        function teste(comport:word):boolean;
        begin

        end;

        function lese:byte;
        var erg:byte;
        feh:byte;
        tes:boolean;
        begin
        zah:=0;
        repeat
        {if timeout=true then
        exit;}
        if keypressed then exit;
        until (((Port [portad+5] and 1) = 1)); { Abfrage, ob Zeichen empfangen }
        feh := Port [portad]; { Byte vom Empfangspuffer lesen }
        lese:=feh;
        if paramcount > 0 then
        write(chr(feh));
        end;

        function schreibe(wert:byte):boolean;
        var erg:byte;
        feh:byte;
        tes:boolean;
        begin
        repeat
        until Port [portad+5] and 32 = 32; { Abfrage, ob Sendepuffer leer }
        Port [portad]:= (Wert); { Byte an Sendepuffer ausgeben }
        end;

        procedure zu;
        begin
        Port [portad+4]:= 0; { DTR = 0, CTS = 0 }
        end;

        end.

        Ein recht gutes Buch ist :
        Messen Steuern Regeln
        RS232
        Franzis Verlag
        isbn : 3-7723-6058-

        Comment

        Working...
        X