Witam, napisałem 2 programy. Służą one do przesyłania danej z jednego komputera na drugi. Chce opanować przesyłanie danych przez potr Com. Program 1 ma wysyłać wartość znaku naciśniętego na klawiaturce, a program 2 ma go odebrać i napisać na ekranie. Użyłem tam przerwania.. tylko czy prawidłowo. Proszę o weryfikacje, bo ni jak nie chce to działać mi a powinno. być może to wina kabla, bo jest home-made z kawałków długopisu i drutu nawojowego. Ktoś może obadać czy to działa?? albo napisać jakie widzi błędy...
Program 1 :
Program 2 (odbierający...)
Jeden komputer to athlonik 2600 32 bitowy, a drugi to 486 100MHZ-laptop stary[/code]
Program 1 :
uses dos,crt;
var regs:registers;
var out:char;
begin
regs.AH := 0; {01h}
regs.DX := 0; {COM1}
regs.AL := 3; {110 b/s, brak parzystosci, 1 bit stopu, 8 bit˘w danych}
Intr($14, regs);
out:=readkey;
regs.AL := ord(out);
regs.AH := 1;
regs.DX := 1;
Intr($14, regs);
end.Program 2 (odbierający...)
uses dos, crt;
var regs:registers;
stary:pointer;
procedure przerwanie; Interrupt;
begin;
regs.AH := 2;
regs.DX := 1;
Intr($14, regs);
Write(char(regs.AL),regs.AL);
end;
begin
regs.AH := 0; {01h}
regs.DX := 0; {COM1}
regs.AL := 3; {110 b/s, brak kontroli parzystosci, 8 bit˘w danych, 1 bit stopu}
Intr($14, regs);
getintvec($0C,stary);
setintvec($0C,addr(przerwanie));
{ Wlaczenie przerwania IRQ4 }
asm
in al, 21h
and al, 239
out 21h, al
end;
repeat
until keypressed;
{ Wyylczenie przerwania IRQ4 - COM1 }
asm
in al, 21h
or al, 16
out 21h, al
end;
setintvec($0C,stary);
end.Jeden komputer to athlonik 2600 32 bitowy, a drugi to 486 100MHZ-laptop stary[/code]