Hola, yo tambien tengo un programita que queria pasar de c a visual c++. espero vuestra ayuda, gracias.
#include <stdio.h>
#include <dos.h>
#define polinomio 0x13
#define PUERTO 0x378
int meter_dato (int numero);
void reset ();
void clk ();
void poner_polinomio ();
void calcular_crc (int numero);
char datos ;
/* *************************************** */
main ()
{
int numero;
numero = 0x80 ;
calcular_crc (numero);
}
/* *************************************** */
void calcular_crc (int numero)
{
int i;
int numero_aux = numero;
poner_polinomio ();
reset();
for (i=0;i<8;i++)
{
numero_aux = meter_dato (numero_aux);
clk ();
}
}
/* **************************************** */
void poner_polinomio ()
{
datos = datos << 4 ;
datos = datos + polinomio;
}
/* ****************************************** */
int meter_dato (int numero)
{
int valor;
int numero_aux = numero;
valor = numero & 0X80 ; /* VBLE */
if (valor == 0 )
{
datos = datos & 0xBF ;
}
else
{
datos = datos | 0X40 ;
}
numero_aux = numero_aux << 1 ;
/* numero_aux = numero_aux & 0x0F ; */
return numero_aux;
}
/* ******************************************* */
void reset ()
{
datos = datos & 0xEF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x10 ;
delay (1000);
outportb (PUERTO,datos);
}
/* ****************************************** */
void clk ()
{
datos = datos & 0xDF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x20;
outportb (PUERTO, datos);
delay(1000);
}
#include <stdio.h>
#include <dos.h>
#define polinomio 0x13
#define PUERTO 0x378
int meter_dato (int numero);
void reset ();
void clk ();
void poner_polinomio ();
void calcular_crc (int numero);
char datos ;
/* *************************************** */
main ()
{
int numero;
numero = 0x80 ;
calcular_crc (numero);
}
/* *************************************** */
void calcular_crc (int numero)
{
int i;
int numero_aux = numero;
poner_polinomio ();
reset();
for (i=0;i<8;i++)
{
numero_aux = meter_dato (numero_aux);
clk ();
}
}
/* **************************************** */
void poner_polinomio ()
{
datos = datos << 4 ;
datos = datos + polinomio;
}
/* ****************************************** */
int meter_dato (int numero)
{
int valor;
int numero_aux = numero;
valor = numero & 0X80 ; /* VBLE */
if (valor == 0 )
{
datos = datos & 0xBF ;
}
else
{
datos = datos | 0X40 ;
}
numero_aux = numero_aux << 1 ;
/* numero_aux = numero_aux & 0x0F ; */
return numero_aux;
}
/* ******************************************* */
void reset ()
{
datos = datos & 0xEF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x10 ;
delay (1000);
outportb (PUERTO,datos);
}
/* ****************************************** */
void clk ()
{
datos = datos & 0xDF ;
outportb (PUERTO,datos);
delay (1000);
datos = datos | 0x20;
outportb (PUERTO, datos);
delay(1000);
}