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. |