Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Función PORT. para puerto LPT en XP (https://www.clubdelphi.com/foros/showthread.php?t=36435)

vicruffo 11-10-2006 19:23:40

Función PORT. para puerto LPT en XP
 
Puerto
Tengo una duda, antes en PASCAL al usar PORT[NUM_PUERTO], ya accesabamos al puerto por ejemplo el de la impresora, con Pascal y MsDos para un puerto lpt ->

puerto:=port[$03db];
if puerto=67 then
........
// con esto basta para leer el valor del puerto
_______________________________________________________________
Y en Delphi y XP COMO SERIA ???


?????????????


------------------------
DE ANTEMANO MUCHAS GRACIAS POR SU AYUDA.

dec 11-10-2006 19:26:07

Hola,

No dejes de buscar en los Foros por "puerto paralelo".

jesusomarsanche 09-03-2007 23:21:09

espero te sirva
 
Código Delphi [-]
{*********************************************************
* Función......: Escribepuerto
* Descripción...: Escribe en un puerto un valor dado de 8 bits 0 a 255
* Parámetros....: direccion.- la direccion del puerto a escribir
* : valor.- valor a escribir en el puerto 0-255 (8 bits)
* Devuelve......:
* Fecha.........: 10-Marzo-2006
* Autor.........: basado en doc. de internet Juan Axelson's Parallel port FAQ
*********************************************************
* Resumen de modificaciones
* 15-03-2006 cambia parametro de smallint a word
*********************************************************}
Procedure TForm1.Escribepuerto(Direccion:Word;Valor:byte);
var
  lbvalor : byte  ;
begin
  lbvalor := byte(valor);
  asm                     {Empieza codigo en ensamblador}
    push dx               {graba el contenido del registro en DX}
    mov dx,direccion      {Grava el valor en el puerto}
    mov al,lbvalor
    out dx,al
    pop dx                {regresa el valor inicial al puerto}
  end;                    {termina codigo ensamblador}
end;
{*********************************************************
* Función......: Leepuerto
* Descripción...: Lee el valor que hay en un puerto
* Parámetros....: direccion.- la direccion del puerto a leer
* Devuelve......: smallin(lbvalor) and $00ff
* Fecha.........: 10-Marzo-2006
* Autor.........: basado en doc. de internet Juan Axelson's Parallel port FAQ
*********************************************************
* Resumen de modificaciones
* 15-03-2006 cambia parametro de smallint a word
*********************************************************}
Function TForm1.leepuerto(direccion:word):byte;
var
  lbvalor:byte;
begin
  asm                     {inicia codigo ensamblador}
    push dx               {conserva el valor del registro en dx}
    mov dx,direccion      {lee el valor que tiene el puerto}
    in al,dx
    mov lbvalor,al
    pop dx                {restaura el contenido de dx}
  end;
  leepuerto := byte(lbvalor) and $00FF;
end;


La franja horaria es GMT +2. Ahora son las 17:17:45.

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