[elektro-etc] soros kommunikáció TP
otto
ottomail at t-online.hu
Tue Dec 4 08:06:39 CET 2007
Hello!
Móczik Gábor írta:
Igen. :-)
Közben most látom,hogy a listára "nem ment ki" tegnap a kérdéses program,így
jogos a kérdés!
Tehát az alábbi program nem jól működik,de nem tudom,hogy miért:
----------------------------------------------------------------------------
const
PortBufSize = 2000;
buf: array[0..portbufsize] of byte;
----------------------------------------------------------------------------
procedure RSelesztese;
begin
regs.AX:=(128+64+32+0+0+0+0+2+1); {11100011 9600 baud,nincs
par,8bit}
{Set up for setting baud rate of serial port}
regs.DX:=0; {for com1, DX := 0 com1 port megadása}
intr($14,regs); {Set baud rate, etc. for port az előzőek
kiküldése}
getintvec($0C,com1); {Save old interrupt for com1}
hd:=0; tl:=0; {A buffer paraméterei a kezdet és vég}
Holdint := port[$21]; {Save initial status of interrupt enables.}
setintvec($0C, at input); {Redirect input from Com1 to procedure Input}
port[$21]:=port[$21] and $EF; {11101111 Enable interrupts for Com1}
base:=memw[$40:$00]; {memória terület a Com1 részére jó címzés?}
port[base+3]:=port[base+3] and $7F; {amit beállítottam,hogy tudjak
beolvasni}
port[base+1]:=$01; {vett adat érvényes megszakítás engedélyezése}
port[base+4]:=$09; {out2 invertált vezérlése;DTR invertált
vezérlése}
{ennélkül nem müködik}
xRS:=port[base]; {nem látom az értelmét!}
port[$20]:=$20; {Read from port to initialize
and clear port 20}
end;
--------------------------------------------------------------------------
procedure input(flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP: word);
interrupt;
begin
if port[base+5] and 1=1 then {Ha a "0." bit =1 akkor valami jött a
portra}
Begin
buf[hd]:=port[base]; {új karaktert tesz com1 a buffer-be}
inc(hd); {a következő cellára mutat}
hxxflag:=1; {jelzi,hogy volt megszakítás}
if hd >= portbufsize then hd := 0;
End;
port[$20]:=$20; {megszakítás törlése}
end;
{----------------------------------------------------}
procedure RSkilep; {ha elhagyom az RS rutint!}
begin
port[$21]:= Holdint; {azzal lépek ki amellyel bejöttem}
(* port[$21]:=$31;*)
port[base+3]:=port[base+3] and $7F; {01111111 adat regiszter
kiválasztása}
{hexa7F=127}
port[base+1]:=$0; {megszakítás engd.regiszter}
port[base+4]:=$0; {modem vezérlő regiszter}
setintvec($0C,com1); {DOS parancs $0C=12}
(* setintvec($0B,com2);*)
end;
{------------------------------------------------------}
----- Original Message -----
From: "Moczik Gabor" <pm_levlista at progzmaster.hu>
To: <elektro-etc at tesla.hu>
Sent: Monday, December 03, 2007 4:39 PM
Subject: Re: [elektro-etc] soros kommunikáció TP
otto wrote:
> Van a listán olyan aki, soros kommunikációra írt már programot
TurboPascal-ban és hajlandó segíteni?
> Ahhoz lenne néhány kérdésem.
Igen. :-)
--
((( Móczik Gábor )))--((( E~Mail: pm-junk ~@~ progzmaster ~.~ hu )))
((( Skype: moczik )))
More information about the Elektro-etc
mailing list