SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: calvo en Viernes 2 de Abril de 2004, 02:40
-
:scream: hola chavos, espero me puedan ayudar a resolver un problema. Necesito hacer un programa que interrumpa el teclado, el monitor y el floppy, cada uno por separado y dirigido por un menu. Necesita estar controlado y que cada interrupcion dure aproximadamente 10 seg.
-
Y especificamente en que quieres que te ayudemos?
-
Con que te interrumpa que quieres decir, que deshabilite las interrupciones?
-
:scream: El programa tiene que por medio de interupciones del bios desabilitar el teclado por 10 seg, asi con el monitor, etc
mi problema es que no se como habilitar y desabilitar las interupciones
-
Hola, bueno, supongo que lo que quieres hacer es deshabilitar cierta linea de interrupcion. Primero lo que tienes que hacer es saber que IRQ corresponde a cada dispositivo. Una vez lo sepas tienes que modificar el puerto 21h del controlador de interrupciones (8259) que corresponde a la mascara de interrupcion.
Por ejemplo si quieres habilitar la IRQ1 (teclado):
outport(21h,inportb(IMR_8259)|2)
Evitamos tocar lo que ya habia en el registro :) con la OR.
Lo demas ya es programacion, no se si quieres hacer esperas activas o bien contar mediante la RSI de reloj.
En estas paginas hay mas informacion, por si no me he acabado de explicar bien
Saludos
http://www.iro.umontreal.ca/~feeley/cours/...embly/8259.html (http://www.iro.umontreal.ca/~feeley/cours/ift2240/doc/assembly/8259.html)
http://www.iro.umontreal.ca/~feeley (http://www.iro.umontreal.ca/~feeley)