Periféricos Práctica 4: CD-Audio

Documentos relacionados
ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Iniciación a la informática

Vaya a Guardar proyecto y escoja una carpeta y un nombre de fichero para el nuevo proyecto.

Nero InfoTool Manual. Nero AG

Manual de Instrucciones para el uso con un ordenador

Arquitectura (Procesador familia 80 x 86 )

Actividad 1.1 Instalación típica de Windows 2000 Server

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Tema 9 Periféricos de Entrada

2. INSTALACIÓN DEL ADAPTADOR USB-Bluetooth EN EL PC. 3. INSTALACIÓN DEL ADAPTADOR RS232C-Bluetooth Promi

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

SISTEMAS OPERATIVOS Arquitectura de computadores

Guía rápida para gestionar el puerto paralelo del PC

UCLV Mapas conceptuales para la enseñanza de Arquitectura de Computadoras

Guía ARCONTE-Sala (con Gestión)

Equipamiento ADSL» Inalámbrico. Adaptador USB PAUTAS PARA LA VERIFICACION TCP/IP

EL ORDENADOR Y SUS COMPONENTES

TEMA 1: Concepto de ordenador

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

004. Archivos y directorios

DISCOS MAGNETICOS ECP

Introducción. Aparición en los 50, se facilita la comunicación entre el usuario y el ordenador Cualquier persona puede utilizar un ordenador.

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Informática Ingeniería en Electrónica y Automática Industrial

1. DATOS e INFORMACIÓN.

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb?

Tema 1: Arquitectura de ordenadores, hardware y software

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Arquitectura de computadoras

MANUAL PARA CONECTARSE A LA RED WI-FI SISTEMA OPERATIVO WINDOWS XP.

PREPARACION DE UN DISCO

Audacity: guía de edición de sonido

Estructura de los dispositivos de E/S.

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

MINI GUIA: CONEXIÓN SEPAM CON USB WINDOWS - XP

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Manual de usuario de la aplicación

TEMA 3. SISTEMAS OPERATIVOS

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

MEMORIA EJERCICIO 1 EJERCICIO 2

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

MANEJO DEL MOUSE EN LENGUAJE C++

Manipulación de procesos

Qué es un programa informático?

CURSO BÁSICO DE ALFABETIZACIÓN DIGITAL CENTRO INFORMÁTICO EMPEDRADO CONTENIDO: ELEMENTOS BÁSICOS DE

Consideraciones previas a la instalación de sistemas operativos libres y propietarios

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Gestión de Entrada-salida

Estructura de Datos: Archivos

Conceptos de Arquitectura de Computadoras Curso 2015

Todos los comandos de DEBUG se invocan usando una sola letra y son los siguientes:

Práctica 5MODBUS: Bus Modbus

Sinto asistencia radial Manual del usuario

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Funcionamiento del reproductor de MP3

Arquitectura de Computadores. Apellidos, Nombre:

Nombres de archivo. Sistemas Operativos III - ETB EMT - CETP

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Cómo configurar formatos Wiegand personalizados

CESDE ESCUELA DE INFORMÁTICA SISTEMAS OPERACIONALES I CUESTIONARIO MOMENTO 2

PERIODO 3 NOCIONES AVANZADAS DE POWERPOINT

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

1 Acceso al Sistema de Gestión

MODBus RTU en los registradores CAMRegis

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

1 Acceso al Sistema de Sala

ESTÁNDAR DE COMPETENCIA

Organización lógica Identificación de bloque

Sistemas Operativos. Curso 2016 Sistema de Archivos

4.1 Dispositivos y manejadores de dispositivos: device drivers

Dep. Tecnología / MJGM NOCIONES BÁSICAS INFORMATICA 4º ESO. Nociones básicas 1

Introducción a Windows 98

Programación. Práctica Final

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Movistar Imagenio Recarga de Móviles MANUAL DE USUARIO

Definición de Memoria

Instalación de la aplicación

Apuntes de Regulación y Automatización. Prácticas y Problemas.

PROGRAMA FORMATIVO WINDOWS XP PROFESIONAL COMPLETO

INDICE Capitulo 1: Instalación Capitulo 2: Actualización desde Windows 3.x Antes de la Actualización Capitulo 3: La Pantalla de Windows 95

Direccionamiento IP (1ª parte)

Manual de instalación de PVR-TV USB2.0

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Firma de Aceptación / Renuncia de Plaza Erasmus

Creación de un pendrive USB de instalación de SO

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X

FAQS Cert/IBV. Versión /06/15. Cuidamos tu calidad de vida

Componentes de los Ordenadores

Tema 5: La pila, las macros y los procedimientos

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Entrada/Salida. Nano Semelman Maximiliano Geier Maximiliano Sacco. Sistemas Operativos, 2c DC - FCEyN - UBA

Proceso de creación de los 6 CD de audio. (para Windows, Mac y Linux)

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

ORGANIZACION DE LA INFORMACION EN LA COMPUTADORA

Tema 3. Aplicaciones de Tipo Consola

ACCESO A LOS SERVICIOS DEL SISTEMA DE COMPROBANTES FISCALES EN PAPEL. SICOFI Validador de Comprobantes Fiscales en Papel MANUAL DE USUARIO


Objetivos. Conocer los distintos dispositivos de memoria y almacenamiento existentes y valorar ventajas e inconvenientes de cada uno

Transcripción:

Periféricos Práctica 4: CD-Audio Objetivo: Implementación de un reproductor de CDs para MS-DOS. Fundamento teórico: El CD de audio apareció a principios de los años 80 como competencia a los clásicos discos de vinilo. En la actualidad, es el medio más utilizado en la industria musical y ya prácticamente no existe un PC que no disponga de lectora de CD. El primer paso hacia la estandarización de los formatos de los CDs se realizó en 1982 mediante la publicación por parte de los creadores del CD (Sony y Philips) del Libro Rojo, en el que se describe el formato de los CD de audio en todas sus facetas. Posteriormente, a medida que se iban desarrollando nuevas aplicaciones de los CDs, se han ido confeccionando nuevos estándares que han sido recogidos en otros libros. Así, en el Libro Amarillo se especifica el formato de un CD de datos o CD-ROM. Independientemente de su tipo, un CD está físicamente compuesto por una serie de protuberancias y cavidades llamadas pits y lands, que se alinean a lo largo de una única espiral que va desde dentro hacia fuera y cubre todo el CD. CD de Audio Un CD de Audio está concebido para una frecuencia de muestreo de 44.1 KHz con 2 canales (estéreo) utilizando 16 bits para la codificación de cada canal. El CD se divide según el estándar del libro rojo en sectores que corresponden a 1/75 segundos de reproducción. De esta forma, el tamaño en bytes de cada sector es de: 1 s 44100 muestras / s 2 canales / muestra 2 bytes / canal = 2352 bytes 75 La codificación de cada sector en el CD de audio se suele expresar en forma temporal como (minuto,segundo,offset) donde offset va de 0 a 74. En el libro rojo se suele expresar mediante un número de 32 bits de la forma: bits 0..7: offset (de 0 a 74)=número de sector físico dentro del segundo correspondiente bits 7..15: segundo (0 a 59) bits 16..31: minuto CD-ROM El formato de un CD de datos o CD-ROM viene recogido en el libro amarillo y está basado en el libro rojo para CDs de audio. En un CD-ROM no se utilizan todos los 2352 bytes del sector físico como datos sino que se aprovechan parte de estos bytes para la detección y corrección de errores. De esta forma, un sector físico en un CD de datos tiene un tamaño efectivo de 2048 bytes (2KB), que es un tamaño mucho más fácil de manejar para un computador. Para poder acceder a los datos almacenados, no en forma de sectores físicos sino como archivos y directorios, se precisa de un formato lógico. Para ello, existen dos estándares Prácticas de Periféricos 1

sobre el formato lógico de un CD: el High Sierra Group (HSG) y la norma ISO 9660. Pocas son las diferencias entre estos dos estándares, esencialmente el número y tipo de caracteres permitidos para el nombre de un fichero y el formato de la fecha y hora en la entrada de directorio de cada archivo. En un CD-ROM, el sector lógico tiene un tamaño de 2048 bytes (igual que el sector físico efectivo) y se direcciona de tal forma que el sector lógico 0 corresponde al sector físico cuya dirección según el libro rojo es 00000200h, es decir, en el minuto 0, segundo 2 y offset 0. De esta forma, como cada sector físico corresponde a 1/75 segundos de reproducción de un CD de audio, realmente el sector lógico 0 empieza en el sector físico 150 y los primeros 150 sectores físicos de un CD-ROM no pueden direccionarse desde el nivel de formato lógico: Nº Sector Lógico (minuto,segundo,offset) = (minuto*60+segundo)*75-150+offset Acceso al CD a través de MS-DOS Cuando, en 1987, Microsoft empezó a trabajar en un controlador para unidades CD- ROM bajo MS-DOS, se dio cuenta de que el concepto que hasta aquel entonces se tenía de un controlador de dispositivos de bloques no se podía aplicar al nuevo medio. Los CD-ROM no se basan en una estructura de archivos tal y como la conoce el MS- DOS ya que principalmente no poseen ninguna FAT. Como se ha comentado anteriormente, los archivos y directorios en un CD-ROM están almacenados en sectores consecutivos y al ser sólo de lectura no era necesario tener una tabla de localización de ficheros que contuviera la dirección del siguiente cluster a uno dado. Además, en un CD el proceso de lectura se realiza siempre con velocidad lineal constante (y no con velocidad angular constante como es el caso de los discos duros y disquetes) por lo que si el lector óptico tiene que leer un sector alejado de la posición actual se debe esperar a que la velocidad de rotación sea la adecuada para poder acometer el proceso de lectura. Así pues, el driver del CD-ROM bajo MS-DOS no podía definirse como un controlador de dispositivo por bloques y se hubo de inventar una forma de engañar al MS-DOS para poder utilizarlo. Para ello, el driver del CD-ROM (que se carga en el CONFIG.SYS mediante el comando DEVICE) está definido como un controlador de dispositivo de caracteres (igual que el teclado o el vídeo) pero el MS-DOS no asigna el nombre de una unidad (como A:, B:, etc.) para este tipo de dispositivos. Por este motivo, tuvo que utilizarse un segundo programa que creara el vínculo necesario entre el núcleo del DOS y el controlador de CD: MSCDEX.EXE. El programa MSCDEX.EXE (que se carga en el fichero AUTOEXEC.BAT) engaña al MS-DOS creando una unidad ficticia de red (de la que ya obtiene un nombre de unidad) y reencamina todas las llamadas a dicha unidad a través del controlador de CD. Acceso al CD a través de MSCDEX MSCDEX instala en la interrupción 2Fh del MS-DOS una serie de funciones a través de las cuales se puede acceder al CD. Estas funciones se identifican según el valor aue se asigne al registro AX antes de llamar a la interrupción. Algunas de estas funciones son las siguientes: Prácticas de Periféricos 2

INT 2Fh - Determina el número de unidades CD-ROM Entrada: AX = 1500h BX = 0000h Salida: BX = número de unidades gestionadas CX = denominación de la primera unidad (0 = A:, 1 = B:, etc.) Comentarios: Si BX=0 en la salida querrá decir que MSCDEX no está instalado ya que para que MSCDEX esté activo se necesita al menos una unidad de CD-ROM. INT 2Fh - Chequea si una determinada unidad pertenece a una unidad CD-ROM Entrada: AX = 150Bh CX = número de unidad (0 = A:, 1 = B:, etc.) Salida: BX = ADADh si MSCDEX.EXE instalado AX = 0000h: No se trata de una unidad CD-ROM 0000h: Es una unidad de CD-ROM INT 2Fh - Obtiene el número de versión de MSCDEX Entrada: AX = 150Ch Salida: BH = número de versión mayor BL = número de versión menor Comentarios: Si el número de versión de MSCDEX es, por ejemplo 2.95, en registro BH se devuelve el valor 2 y en el registro BL el valor 95. INT 2Fh Acceso al CD a través del controlador de dispositivos Entrada: AX = 1510h CX = Unidad de CD-ROM (0 = A:, 1 = B:, etc) ES:BX Æ Buffer con la función requerida al driver de CD-ROM Comentarios: Mediante esta función MSCDEX ofrece la posibilidad de acceder directamente al controlador de dispositivos que gestiona el CD-ROM asociado a la unidad lógica descrita en el registro CX. El contenido de los campos del buffer al que apuntan los registros ES:BX es distinto según tipo de subfunción que se requiera. En el siguiente apartado se mostrarán las funciones más importantes. Acceso al CD a través del controlador de dispositivos La forma más sencilla de acceder al controlador de dispositivos es a través de la función AX=1510h de la interrupción 2Fh que se acaba de describir. Tal como se ha mencionado anteriormente, esta función usa un buffer para transferir los parámetros y obtener los resultados, cuya dirección se pasa a través de los registros ES y BX. No obstante, la estructura de este buffer difiere dependiendo del tipo de subfunción que se desee ejecutar. A continuación se van a describir las distintas subfunciones a las que se puede acceder a través de la función 1510h, y la estructura adecuada de los correspondientes buffers (Nota: los campos no descritos se pueden rellenar con 0s). Prácticas de Periféricos 3

Subfunción 84h: PLAY AUDIO (Reproducción de Audio) Buffer de la subfunción PLAY AUDIO +00h Tamaño del buffer = 16h 1 byte +01h Subunidad = 0h (la rellena MSCDEX) 1 byte +02h Número de subfunción = 84h 1 byte +0Dh Modo de direccionamiento 1 byte 0 = sector lógico 1 = formato libro rojo +0Eh Primer sector a reproducir (en el formato que 4 bytes se indicó en el campo anterior) +12h Número de sectores lógicos a reproducir 4 bytes +03h Palabra de estado 2 bytes Significado de la palabra de estado (16 bits): bit 15 = 0: No hubo error = 1: Hubo un error. Código de error en los bits 7..0 bit 9 = 1: Controlador ocupado con la reproducción de una pista de audio bits 7..0 Código de error (si bit 15 = 1) 01h Unidad desconocida 02h Unidad no preparada 03h Función desconocida o no soportada 04h CRC error 05h El bloque de datos de parámetros no presenta la longitud correcta 06h Error de búsqueda 07h Tipo de medio desconocido (error en el formato del CD) 08h Sector no encontrado 0Bh Error de lectura 0Ch Error general 0Eh No hay ningún medio introducido Subfunción 85h: STOP AUDIO (Detención de la reproducción de Audio) Buffer de la subfunción STOP AUDIO +00h Tamaño del buffer = 05h 1 byte +01h Subunidad = 0h (la rellena MSCDEX) 1 byte +02h Número de subfunción = 85h 1 byte +03h Palabra de estado 2 bytes Prácticas de Periféricos 4

Subfunción 88h: RESUME AUDIO (Continuar la reproducción de Audio) Mediante esta subfunción se puede retomar la reproducción de una pista tras haber sido interrumpida mediante STOP AUDIO. Buffer de la subfunción RESUME AUDIO +00h Tamaño del buffer = 05h 1 byte +01h Subunidad = 0h (la rellena MSCDEX) 1 byte +02h Número de subfunción = 88h 1 byte +03h Palabra de estado 2 bytes Subfunción 03: IOCTL INPUT (Solicitud de información al controlador) Esta subfunción permite solicitar al controlador de CD diversas informaciones importantes relacionadas con el estado de reproducción del CD, el número de pistas, donde comienza cada pista, etc. Para reconocer el tipo de petición se debe pasar la dirección de un segundo buffer (buffer secundario), cuya estructura difiere según el tipo de información requerida. Buffer de la subfunción IOCTL INPUT +00h Tamaño del buffer = 14h 1 byte +01h Subunidad = 0h (la rellena MSCDEX) 1 byte +02h Número de subfunción = 03h 1 byte +0Eh Puntero FAR al buffer secundario 4 bytes +12h Tamaño (en bytes) del buffer secundario 2 bytes +03h Palabra de estado 2 bytes En la siguiente tabla se describen algunas de las solicitudes que pueden realizarse mediante esta subfunción, junto con el tamaño del buffer secundario correspondiente (el valor que habría que poner en el offset 12h del buffer principal): Identificador de petición Significado Tamaño del buffer de paso 06h Solicitar estado de la unidad 5 bytes 08h Solicitar tamaño del CD 5 bytes 09h Solicitar información sobre el cambio de disco 2 bytes 0Ah Solicitar información sobre el número de pistas del CD 7 bytes 0Bh Solicitar información sobre una pista concreta del CD 7 bytes 0Ch Solicitar información sobre la posición de la cabeza lectora 11 bytes durante la reproducción del CD 0Fh Solicitar información sobre el estado de reproducción del CD 11 bytes A continuación se describe la estructura de los buffers secundarios correspondientes a cada una de las solicitudes previamente mencionadas: Prácticas de Periféricos 5

¾ Solicitud 06h: Estado de la unidad +00h Identificador de petición = 06h 1 byte +01h Estado de la unidad 4 bytes Los bits más importantes de los 32 que devuelve esta función son: bit 0 = 1: Unidad abierta = 0: Unidad cerrada bit 3 = 0: Unidad sólo puede leer = 1: Unidad puede leer y escribir bit 4 = 0: Unidad sólo soporta CDs de datos = 1: Unidad soporta CDs de datos y de audio bit 11 = 0: Se encuentra un CD insertado en la unidad = 1: No hay CD insertado en la unidad ¾ Solicitud 08h: Tamaño del CD +00h Identificador de petición = 08h 1 byte +01h Tamaño ocupado del CD en sectores 4 bytes ¾ Solicitud 09h: Información sobre cambio de disco +00h Identificador de petición = 09h 1 byte +01h Estado 1 byte Si Estado = -1: El CD ha sido cambiado desde la última vez que se llamó a esta función = 0: El controlador no sabe si ha habido un cambio o no desde la última vez = 1: El CD no ha sido cambiado desde la última vez que se llamó a esta función ¾ Solicitud 0Ah: Información sobre el número de pistas del CD +00h Identificador de petición = 0Ah 1 byte +01h Número de la primera pista 1 byte +02h Número de la última pista 1 byte +03h Tiempo de reproducción en formato del libro 4 bytes rojo Prácticas de Periféricos 6

¾ Solicitud 0Bh: Información sobre una pista concreta del CD +00h Identificador de petición = 0Bh 1 byte +01h Número de pista 1 byte +02h Inicio de la pista en formato del libro rojo 4 bytes +06h Información sobre el tipo de pista 1 byte En el campo de información sobre el tipo de pista, lo más importante es el bit 6: bit 6 = 0 pista de audio = 1 pista de datos ¾ Solicitud 0Ch: Posición de la cabeza lectora durante la reproducción del CD Mediante esta solicitud podemos saber qué pista se está reproduciendo actualmente y en qué posición se encuentra la cabeza lectora con respecto a la pista actual y con respecto al tiempo de reproducción total. +00h Identificador de petición = 0Ch 1 byte +01h Información sobre el tipo de pista (igual que en 1 byte la función anterior) +02h Número de pista (si el bit 0 del campo anterior 1 byte es 1 entonces el número está expresado en formato BCD) +03h Reservado 1 byte +04h Minuto dentro de la pista actual 1 byte +05h Segundo dentro de la pista actual 1 byte +06h Offset dentro del minuto y segundo de la pista 1 byte actual (de 0 a 74) +07h Reservado 1 byte +08h Minuto dentro del tiempo de reproducción total 1 byte +09h Segundo dentro del tiempo de reproducción 1 byte total +0Ah Offset dentro del minuto y segundo del tiempo de reproducción total (de 0 a 74) 1 byte ¾ Solicitud 0Fh: Estado de reproducción del CD Estructura del buffer de paso: +00h Identificador de petición = 0Fh 1 byte +01h Estado de audio 2 bytes +03h Sector inicial para el próximo comando 4 bytes RESUME en formato del libro rojo +07h Sector final para el próximo comando RESUME en formato del libro rojo 4 bytes Prácticas de Periféricos 7

Si el bit 0 del Estado de audio vale 1 quiere decir que la reproducción actual se encuentra en estado de pausa. En ese caso, en los siguientes campos podemos saber a partir de qué sector se continuará la reproducción del CD de audio si utilizamos el comando RESUME y en qué sector se parará la reproducción en dicho caso. Realización práctica: Realizar un programa en C para el manejo de un CD de audio. Requisitos mínimos: El programa debe ser capaz de: Comprobar si MSCDEX está instalado, mostrar el número de versión y detectar las unidades de CD-ROM existentes. Mostrar información sobre el estado de la unidad. Si se encuentra un CD insertado en la unidad, mostrar información sobre el número de pistas que contiene, si son de datos o de audio y la duración de cada pista en los tres formatos que se indican en la práctica: libro rojo, sectores y (minuto, segundo, offset). Poder reproducir la pista que el usuario desee (siempre y cuando ésta sea de audio). Requisitos ampliados: Detectar si se ha cambiado el CD de audio, en cuyo caso se deberá volver a leer el contenido del CD. Poder pausar la reproducción y continuarla por donde se dejó. Poder parar la reproducción y volver al inicio de la pista actual. Mostrar el estado de la cabeza lectora durante la reproducción del CD. Poder hacer un avance/retroceso rápido a través de la pista que se esté reproduciendo. Nota: Todas estas funciones sólo son válidas para MS-DOS. Si se ejecutan las llamadas bajo Windows 95 en adelante se debe tener en cuenta que este sistema operativo ya no se basa en el programa MSCDEX para acceder al CD. A pesar de ello, Windows intenta mantener cierta compatibilidad con las funciones aquí mostradas pero ésta no es completa. Resumen de formatos: Un sector del CD codificado en forma temporal como (minuto,segundo,offset, donde offset va de 0 a 74) se expresa como un número de 32 bits de la forma: Según el libro rojo: bits 0..7: offset (de 0 a 74) Prácticas de Periféricos 8

bits 7..15: segundo (0 a 59) bits 16..31: minuto El número de sector lógico se puede calcular como: Nº Sector Lógico (minuto,segundo,offset) = (minuto*60+segundo)*75-150+offset El tamaño de una pista se puede calcular restando el número de sector lógico donde comienza del número de sector lógico donde se inicia la pista siguiente (o del tamaño total del CD, en caso de tratarse de la última pista). Prácticas de Periféricos 9