/*Lector de Tarjetas Chip */
/*Autor: Jose Maria Quiroga */
/*mail: chispilinux@gmail.com */
/*bit 7 busy 11 invertido I/O */
/* 6 ack 10 */
/* 5 paper ut 12 S/N */
/* 4 select in 13 */
/* 3 spare-error 15 */
/* */
/* 0 Reset 2 */
/* 1 Clock 3 */
/* 2 R/W 4 */
/* aqui ponga el include de cada uno stdio.h sys/io.h string.h*/
/* xD no me dejaa asi que bueno no tengo ganas de editar eso : P*/
#define PortDatos 888 /*0x378*/
#define PortStatus 889 /*0x379*/
#define PortControl 890 /*0x37a*/
/*----------------------------------------*/
void output(int,int);
int input(int);
/*----------------------------------------*/
void output(int dato,int Puerto)
{
ioperm(Puerto,1,1);
outb(dato,Puerto);
ioperm(Puerto,1,0);
}
/*----------------------------------------*/
int input(int Puerto)
{
int aux;
ioperm(Puerto,1,1);
aux=inb(Puerto);
ioperm(Puerto,1,0);
return(aux);
}
/*----------------------------------------*/
int Datos,aux,i,Cont,aux2;
char Vector[257];
main (int argc,char **argv)
{
system("clear");
FILE *Archivo;
/*Verifica si esta o no la Tarjeta*/
aux=input(PortStatus);
if (aux & 32)
printf("Inserte Tarjeta\n");
else
{
printf("Tarjeta Insertada\n");
/*Reset*/
output(0,PortDatos);
output(2,PortDatos); /*CLOCK*/
output(0,PortDatos);
output(1,PortDatos); /*RESET*/
/*Lectura de los 256 bits*/
for (i=1;i<257;i++)
{
Datos=input(PortStatus);
if (Datos & 128 )
Vector[i]='0';
else
Vector[i]='1';
output(3,PortDatos);
output(1,PortDatos);
}
/*Mostrando tarjeta*/
for (Cont=1;Cont<33;Cont++)
{
printf("%i ",Cont-1);
for (i=1+aux2;i<9+aux2;i++)
{
printf("%c",Vector[i]);
}
aux2=aux2+8;
printf("\n");
}
printf("Tipo de tarjeta:");
for (Cont=9;Cont<=16;Cont++){
printf("%c",Vector[Cont]);
}
printf("\n");
printf("Fabricante:");
for (Cont=33;Cont<=40;Cont++){
printf("%c",Vector[Cont]);
}
printf("\n");
printf("Numero de serie:");
for(Cont=41;Cont<=64;Cont++){
printf("%c",Vector[Cont]);
}
printf("\n");
printf("Cantidad de pulsos:");
for(Cont=65;Cont<=80;Cont++){
printf("%c",Vector[Cont]);
}
printf("\n");
printf("Codigo de pais:");
for(Cont=89;Cont<=96;Cont++){
printf("%c",Vector[Cont]);
}
printf("\n");
}
}
lunes, 12 de enero de 2009
Suscribirse a:
Entradas (Atom)
IRC
#freenode->#usljujuy
Seguidores
Eventos n_n
Tira Ecol Nano,Bilo y Luca
Link's interesantes ^^
Archivo del blog
-
►
2008
(25)
- ► septiembre (4)