Új hozzászólás Aktív témák

  • salazol

    őstag

    válasz sonar #21 üzenetére

    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.

Új hozzászólás Aktív témák