Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 29-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
De estas cosas no se pero por curiosidad lo he copiado a ver que hace.
Bueno, los errores que daba se eran mas que nada de escritura, pero quedo uno, el programa compila y corre, pero inmediatamente se detiene y da este error:
Cita:
exception class EPrivilige with message 'Privileged instuction' Process stopped.
Aqui esta el codigo:
Código Delphi [-]
unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  data,status: byte;

const
  base = $3f8;{base address port serial}
  lcr = 3; {line control register}
  dll = 0; {divisor lacht low byte}
  dlh = 1; {divisor lacht high byte}
  lsr = 5; {line status register}

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;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   initserial;
  timer1.enabled:=true;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
   edit1.text:=inttostr(data);
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 ;{ jika bit 0 = 1 then data ready}
 // Receive_Data_Serial;
  edit1.text:=inttostr(data);
end;

end.
Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mi primer trabajo en delphi lucasarts_18 La Taberna 9 24-06-2006 21:14:41
Hacer un programita Delphi REHome OOP 9 26-05-2006 20:21:50
Mi primer contacto con Delphi 2006 mazinger Noticias 1 12-12-2005 14:07:08
soy nuevo y me urge crear un programita en DELPHI ferchmon Impresión 6 01-03-2005 13:19:59
Mi primer programa en delphi el, el .exe en otros ordenadores no va Daltor Varios 3 02-04-2004 15:21:00


La franja horaria es GMT +2. Ahora son las 19:26:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi