24-mar-2007, 13:06
|
#11 |
|
Marciano
|
Recuerda, Bubu, que el interfaz del puerto paralelo no es exactamente el mismo que temnemos en tutoriales., Así lo dice manofwar, que yo de electrónica entiendo lo mismo que de cohetes espaciales, así que de las diferencias entre ambos, yo ni papa, pero convendría, algún altruista de sabiduría que explicase a los no-iniciados, como se construye ese sistema.
Bueno, a lo mejor ya esta bien...y soy yo el que necesita ponerse. Un saludo a todos. |
24-mar-2007, 14:01
|
#12 |
|
Marciano
|
Es una de las mejores noticias del año, creo. Bubu, ArcaDos va a ser la leche con esta nueva posibilidad!!
|
25-mar-2007, 14:06
|
#13 |
|
Editor Marciano
|
Hay una cosa que no entiendo. En la péich del invento aparece un pequeño pograma en C que es el que lee el puerto y envía letras:
Code:
#include <stdio.h>
#include <dos.h>
#include <conio.h>
int main(void)
{
int port = 0x378; // LPT1
int i,j,k,l,m;
clrscr();
outportb(port+2,0x04); // 4 extra inputs
outportb(port,0xFF); // all out high
for (i=0;i<30000;i++)
{
m=0xFE; // start with 1st js
for (j=0;j<7;j++) // js1-7
{
outportb (port,m); // active js to low
m<<=1; // shift the low signal
m=m | 0x1;
k=inportb(port+1);
l=inportb(port+2);
gotoxy(1,(j+1));
printf("js%d: ",(j+1));
if (!(k & 16)) printf("up "); // Select B4
if (!(k & 32)) printf("down "); // PaperEnd B5
if (!(k & 64)) printf("left "); // -ACK B6
if ((k & 128)) printf("right "); // Busy B7
if (!(k & 8)) printf("F1 "); // -Error B3
if ((l & 2)) printf("F2 "); // -AutoFeed C1
if (!(l & 4)) printf("F3 "); // -SelectIn C2
if ((l & 8)) printf("F4 "); // Init C3
if ((l & 1)) printf("F5 "); // -Strobe C0
printf(" \r"); // clearing the line
}
}
return 0;
}
|
25-mar-2007, 22:24
|
#14 |
|
Usuario registrado
|
para mi que eso es el driver en si, pero sin compilar.
Gran descubrimiento este, voy a estudiarmelo a ver que saco en claro. |
26-mar-2007, 00:00
|
#15 |
|
Editor Marciano
|
No creo que sea el driver. Ten en cuenta que eso lo que hace es leer el puerto, y sacar por pantalla lo que has pulsado. Parece que es un tester más bien, ¿no?
|
26-mar-2007, 10:29
|
#16 |
|
Marciano
|
Como dice Bubu eso es un programilla para comprobar el funcionamiento. Dos o tres líneas más arriba hay unos enlaces a dos programas ya compilados, uno comprueba el funcionamiento del LPT1 y otro para el LPT2.
Este fin de semana he estado haciendo un driver con ese código y funciona bien mientras no ejecute otro programa. Cuando ejecuto algo me devuelve un error el EMM386 de problemas con los privilegios o problemas de memoria, el error es el número 9. A ver si alguien me puede ayudar con esto y lo terminamos. El driver es un TSR programado en ensamblador. Saludos |
26-mar-2007, 17:10
|
#17 |
|
Editor Marciano
|
Me lo temía, es un pograma para tú añadirlo a otro que estés haciendo y quieras controlar por el puerto paralelo, pero lo que buscamos es algo que se instale, y en segundo plano (mediante interrupciones) esté continuamente leyendo el puerto y responda en consecuencia. No sé yo si al final esto es válido... Habría que catarlo bien.
|
26-mar-2007, 17:20
|
#18 | |
|
Marciano
|
Quote:
Un poco más arriba manofwar, has dicho que podemos asignar eventos con esos valores de acción.¿? No van por ahí los tiros.....?? para que más necesitamos un driver? Editado por sebastia2000 en 26-mar-2007 a las 18:00. |
|
26-mar-2007, 23:36
|
#19 |
|
Marciano
|
No es necesario un driver para advmenu o advmame, pero si para otros emuladores que puede lanzar el advmenu. Es por esto mi intención de hacer el programa residente (TSR) o driver si preferis llamarlo así.
¿Alguien puede decirme algo sobre el error del EMM386? Saludos |
26-mar-2007, 23:41
|
#20 |
|
Administrador
|
Habla con D_Skywalk que a lo mejor te puede ayudar.
Un saludo. |