etc-ii apm-octubre-2007 universidad autónoma de madrid escuela politécnica superior etc-ii...

14
APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de Computadores Proyecto Piano

Upload: alisa-remedios

Post on 21-Apr-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Universidad Autónoma de Madrid

Escuela Politécnica Superior

ETC-II

APM-Septiembre-2009

Laboratorio de Estructura y Tecnología de Computadores

Proyecto Piano

Page 2: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Introducción

Programar en Ensamblador x86 un Teclado electrónico para MSDOS

Objetivos:Aprender a programar el entorno 8086 Aprender a realizar un driverAprender la interacción con los recursos hardwareAprender la interacción entre C y Lenguaje ensamblador

Conocimientos:Programación y depuración 8086Funcionamiento de interrupciones softwareComunicación con programas residentesTimer del PC (interrupción 0x1C , generación de sonidos)RTCUso de la pila para paso de parámetros

APM-Septiembre-2009

Page 3: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Introducción

Generación de un sonido mediante el altavoz del PC:

• El altavoz del PC está conectado al bit 1 del Puerto 61H (xxxx-xxox)• Cambiando el estado del bit a ciertas frecuencias se produce una señal audible.• Según la frecuencia, tenemos un sonido (nota) u otro.• Dos opciones:

• Bucle con espera activa y acceso directo al altavoz • Usar el Timer 0 para generar la señal cuadrada automáticamente

APM-Septiembre-2009

Onda sonoraSeñal Eléctrica conectada al altavoz

PC

Page 4: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Escala musical temperada

APM-Septiembre-2009

Nota Frec Hz Tecla

1 DO 261,626 C

2 DO# 277,183 C#

3 RE 293,665 D

4 RE# 311,127 D#

5 MI 329,628 E

6 FA 349,228 F

7 FA# 369,994 F#

8 SOL 391,995 G

9 SOL# 415,305 G#

10 LA 440 A

11 LA# 466,164 A#

12 SI 493,883 B

13 DO 523,251

f 2f

12

2Relación entre una nota y la siguiente

Page 5: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Estructura Proyecto

Driver INT 61H

Generador Notas musicales por TMR y RTC

Practica 3

Programa en C para

leer canciones de fichero

Librería en ASM que hace de interfaz

entre C y el driver

APM-Septiembre-2009

Teclado Electrónico

Práctica 2

Práctica 1

Mandamos la nota

Servicios Int 61H

Mandamos la nota

Page 6: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1

Práctica 1: Diseño del teclado

Hacer un programa en ensamblador que dibuja un teclado en la pantalla (modo QVGA / VGA) y que detecta las teclas introducidas por el usuario.

Este programa llamará al driver ‘driver.com’ que se encargará de reproducir las notas por el altavoz. Este driver se proporcionará a los alumnos.

APM-Septiembre-2009

Page 7: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1 objetivos

Práctica 1: Objetivos

1. Detectar instalación correcta del driver:1. Vector interrupción distinto de cero.2. Comprobación palabra clave.3. Comprobación Identificador del driver.

1. Dibujar el teclado (Texto o QVGA)2. Leer teclas asignadas y mandar orden al simulador3. Leer el estado del simulador para mostrar el estado del teclado4. Implementar funciones duración y tono.5. Usar Makefile y Depurador (TD)

Opcional: Melodías pre-seleccionadasTeclado ampliadoSonidos a otras escalasEfectos…

APM-Septiembre-2009

Page 8: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1 Ejemplo

APM-Septiembre-2009

Estado nota

Lo gestiona el simulador pero lo lee el programa

Driver en memoria

Page 9: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1 entregables

Práctica 1: Entregables

Programa: piano.asmFichero: MakefileLibrerias: Opcionales (VGA/Texto , Teclado, …)

Simulador

driver.com(INT 61H)

Generador Notas musicales

Práctica 1

Teclado Electrónico

APM-Septiembre-2009

Page 10: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1: Estructura Driver

APM-Septiembre-2009

1. Se accede mediante interrupción software: INT61H

2. Nos ofrece servicios, seleccionables por el registro AH

3. Resto de registro para paso de parámetros

1.Configura vector2.Deja parte residente en memoria

Estructura Driver

Parte 1: Instalación

Parte 2: Residente en memoria

Palabra de seguridad 0FECAH

Page 11: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1: Servicios del Driver

APM-Septiembre-2009

Servicios Driver Parámetros entrada Salida

INT 61H AH AL CX Salida

Identificación 0 --- --- AX = 0EE01H

Desinstalar 1 --- --- AH = 00H

Play Nota 2 Nota (1..13) --- AH = 00H

Play Frec 3 --- Frec (*) AH = 00H

Stop 4 --- --- AH = 00H

Duración 51 rápido2 normal3 lento

--- AH = 00H

Escala 61 aguda2 normal3 grave

--- AH = 00H

Estado 7 --- ---AH = 00H

AL = 01 suenaAL = 0 no suena

Page 12: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 1: Comprobación Driver

APM-Septiembre-2009

Offset

Segmento

Int #0

Int #1

Int #61H

2 bytes

0

2

4

6

184H

186H

Tabla Interrupciones

0FECAH +3

IRET

Servicios Driver

MOV AH, 0INT 61HCMP 0EE01H

3º Comprobamos Servicio Identificación

Comprobamos que hay algo en memoria Memoria

Page 13: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 2

Práctica 2: Diseño driver generador de notas

Hacer un driver que use el TMR2 y el RTC para generar un tono a la frecuencia de cada nota musical. Este driver sustituirá al proporcionado en la práctica anterior.

Opcional: Que el driver saque sonidos por el puerto paralelo

Práctica 2Driver

INT 61H

Generador Notas musicales por TMR y RTC

Práctica 1

Teclado Electrónico

APM-Septiembre-2009

Page 14: ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II APM-Septiembre-2009 Laboratorio de Estructura y Tecnología de

ETC-II

APM-Octubre-2007

Práctica 3

Práctica 3: Interacción de Ensamblador con el Lenguaje C

Hacer un programa en C y una librería intermedia que llame al driver anterior y reproduzca canciones escritas en un fichero.

Opcional: Tener un teclado y poder reproducir y guardar canciones.

Driver INT 61H

Generador Notas musicales por TMR y RTC

Practica 3

Programa en C para

leer canciones de fichero

Librería en ASM que hace de interfaz

entre C y el driver

APM-Septiembre-2009