Descripción:
El objetivo de esta práctica es desarrollar un driver de acceso
al hardware del PC, con el fin de generar sonidos (las diferentes notas). El driver
debe de poder interactuar con el programa de la práctica 1.
Objetivos:
- Creación de ficheros .com
- Diseño y depuración de programas residentes.
- Instalación/Desinstalación de interrupciones
- Funcionamiento del temporizador, conexión
del altavoz del PC.
- Uso del RTC (Real Time Clock o Reloj de Tiempo Real)
- Manejo de la interrupción 1Ch.
Elementos que se le proporcionan al
alumno
- Creación de ficheros .COM
- Documentación del RTC
Desarrollo del driver. Las especificaciones del driver se definieron en la práctica anterior. Se trata de un programa residente que, básicamente, servirá de puente entre la aplicación de usuario y el hardware.
Al menos, deberá tener las funciones que se
han listado en la práctica anterior.
En lugar de que el driver devuelva 0xEE01, como en el driver entregado en la
práctica 1, deberá devolver el código de la pareja (por ejemplo 1a04, 3b10,
etc)
El driver funcionará de la siguiente forma:
Hay una función "Play nota" que configura la frecuencia del altavoz, activa
el altavoz y que además activa el RTC para que corte el sonido de la nota
automáticamente.
Hay una función de "stop" que desactiva el altavoz y el RTC.
Hay una función que devuelve el estado del driver: Para hacer esta función
el alumno tendrá que añadir en los sitios que considere oportuno una
variable que estará activa cuando esté sonando el altavoz y que está
desactivada cuando se para. La función de estado lo que devuelve es el valor
de la variable.
Otras funciones optativas:
- Que exista una función que devuelve el valor de la última nota que ha
sonado, y en caso de haber sido una frecuencia rara devuelve NOTA CUSTOM
(valor 14 por ejemplo) y en otro sitio el valor de la frecuencia.
- Que en la rutina de interrupción del RTC se puedan hacer esperas más
largas, para que la nota suene más. En el código inicial los valores eran
1,2 y 3. Sería algo como 5,6,7,8,.... y ese control hacerlo implementando
contadores en la rutina.
Dentro del diseño del driver están involucradas tres interrupciones cuyas rutinas de atención son las que componen dicho driver:
Trabajo a realizar en esta práctica.
Plazo de entrega : La presentación y evaluación de esta práctica será según el calendario propuesto. El nombre del fichero o ficheros a entregar será de la forma parejap2.asm, por ejemplo 3a28p2.asm. Si hay más de un fichero, nombrarlo con números sucesivos y añadir un Makefile (¡¡¡ NO UN .BAT!!!!) que los ensamble y linke.(3a28p21.asm, 3a28p22.asm,... 3a28p2.bat)