Hola amigos.
Estoy tratando de copilar este programita y me da tres errores.
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
public
end;
var
Form1: TForm1;
data,status:byte;
const
base = $3f8;
lcr = 3;
dll = 0;
dlh = 1;
lsr = 5;
implementation
{$R *.dfm}
Procedure Initserial;
begin
asm
mov dx,base+lcr; {address line control register}
mov al,$80 ; {10000000b = access bit divisor lacht}
out dx,al;
mov dx,base+dll; {address divisor lacht low byte}
mov al,$30 ; {DLLB = 30h}
out dx,al;
mov dx,base+dlh; {address divisor lacht high byte}
mov al,$00 ; {DLLH = 00h}
out dx,al;
{In this case Port Serial have};
{ baud rate = 2400 bps}
mov dx,base+lcr;{address line control register}
mov al,$03 ; {00000011b =}
out dx,al ; {bit 7=0, access to Rx buffer & Tx;
{bit 6=0, set break disable;
{bit 5-4-3=000, no parity;
{bit 2=0, one stop bit;
{bit 1-0=11,data lenght 8 bit}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
initserial;
timer1.enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Repeat
asm
mov dx,base+lsr; { address line status register }
in al,dx
and al,$01 ; {LSR = 00000001b, deteksi bit 0}
mov status,al ; {bit 0 = data ready}
end;
until status = $01 ;
Receive_Data_Serial;
edit1.text:=inttostr(data);
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
edit1.text:=inttostr(data);
end;
end.
Creo que tengo algunas cosas fuera de lugar.Cuales son?
Gracias por la ayuda.