Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2003
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
Leer direccion de memoria

Hola a todos,

el problemilla es simple. Necesito leer el contenido de la direccion de memoria 201h o 513d y guardar su contenido en un archivo. Lo del archivo lo se pero no se como acceder a la direccion especificada.

¿Alguna sugerencia? Gracias desde ya
Responder Con Cita
  #2  
Antiguo 25-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Puedes hacerlo con ensamblador, pero necesitas dos números:
Segmento y Desplazamiento.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 25-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Si se trata de una dirección del mismo proceso, podrías hacer algo así:

Código:
const
  BUFFER_SIZE = 1000;
var
  PData: Pointer absolute $00400000;
begin
  with TFileStream.Create('C:\MEM.DAT', fmCreate) do
    try
      WriteBuffer(PData, BUFFER_SIZE);
    finally
      Free;
    end;
end;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 25-09-2003
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
En realidad lo que necesito es leer un datos que entra por el puerto del joystick y grabarlo

el puerto esta en las direcciones 201h y el largo debe ser de un integer o algo parecido.
estoy utilizando win2000

gracias
Responder Con Cita
  #5  
Antiguo 25-09-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Esto seguro que te sirve

http://www.elrinconcito.com/delphi/trucos/Comu2.htm

Saludos
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #6  
Antiguo 25-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
¿Que te parece este código?

Código:
unit RX2_Util;

interface

uses Windows;

// set address of game port (default '$201')
procedure SetPortAddr(const addr: string);

// get current channel number and signal presence
procedure GetStatus(var chan: Integer; var signal: Boolean);

// push button for t milliseconds
procedure PushButton(t: Integer);

implementation

uses SysUtils;

var
  port_addr: Word;

function ReadPort: Byte;
begin
  asm
    mov dx,port_addr;
    in al,dx
    shr al,4
    mov result,al
  end;
end;

procedure SetPortAddr(const addr: string);
begin
  port_addr := StrToInt(addr);
end;

procedure GetStatus(var chan: Integer; var signal: Boolean);
var
  data: Byte;
const
  chan_no: array[0..7] of Integer = (0,1,2,3,0,4,0,5);
begin
  data := ReadPort;
  signal := data > 8;
  chan := chan_no[data mod 8];
end;

procedure PushButton(t: Integer);
var
  start: Integer;
begin
  start := GetTickCount;
  repeat
    asm
      mov dx,port_addr
      mov al,1
      out dx,al
    end;
  until (GetTickCount - start) >= t;
end;

initialization
  SetPortAddress('$201');

finalization 
end.
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 25-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Recién me doy cuenta que estas hablando de Win2000... dudo que esta plataforma te deje leer directamente el puerto, pero no tengo como probarlo, pues solamente tengo un Win98

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 25-09-2003
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
y ahora? que hacemos?
Responder Con Cita
  #9  
Antiguo 25-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Probalo, y comentanos si te funciona... caso contrario comentanos los errores!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 07:53:28.


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
Copyright 1996-2007 Club Delphi