Új hozzászólás Aktív témák
-
salazol
őstag
Itt egy példa handhake-es párhuzamos kiirásra, primitiv, hibája, hogy ha nem kap választ a hardvertől, akkor végtelen sokáig várakozik (fagy). Mivel állandóan csatlakoztatott kütyühöz van, igy nem foglalkoztam ennek a kiküszöbölésével.
XP és 2000 alatt ez nem működik.
unit DMX;
interface
type
TDMX = class
procedure ByteOut(data : byte) ;
private
procedure portout(addr : word; data : byte);
function portin(addr : word) : byte;
{ Private declarations }
public
{ Public declarations }
end;
const
PPort : word = $378;
Implementation
{$R *.DFM}
procedure TDMX.portout(addr : word; data : byte);
asm
mov al,data
mov dx,addr
out dx,al
end;
function TDMX.portin(addr : word) : byte;
var b : byte;
begin
asm
mov dx,addr
in al,dx
mov b,al
end;
Portin := b;
end;
procedure TDMX.ByteOut (data : byte);
begin
While (PortIn(PPort + 1) And 64) = 0 Do;
PortOut(PPort, data);
PortOut(PPort + 2, 13);
While (PortIn(PPort + 1) And 64) = 64 Do;
PortOut(PPort + 2,12);
end;
end.