Estructura y Tecnologia de Computadores II

Universidad Autonoma de Madrid - Curso 2005/2006



Indice
1. Introducción
2. Entorno de trabajo
3. Calificaciones
4. Programas
5. FAQs / News
6. Enlaces de la asignatura

1. Introducción

En esta página encontramos una serie de programas de ejemplo para facilitar la realización de la práctica. El objetivo de la práctica es programar el programa TRON en ensamblador y aprender a combinar el lenguaje C con el ensamblador. Para ello se han propuesto una serie de objetivos a cumplir durante el curso, dichos objetivos se muestran en la página principal de la asignatura, mantenida por el profesor Guillermo González de Rivera Peces. El alumno podrá utilizar este código siempre y cuando lo entienda, ya que podrá ser objeto de evaluación.

2. Entorno de trabajo

En los laboratorios de la Escuela encontraremos una partición con MSDOS con todas las herramientas necesarias para hacer la práctica. Todos los trabajos de los alumnos se corregirán en clase en dicho entorno. Opcionalmente existe la posibilidad de utilizar los emuladores de MSDOS para poder trabajar en casa sin necesidad de instalar el MSDOS.

  • Para la plataforma LINUX podemos usar el dosemu junto con el freedos. En Debian se pueden instalar dichos programas usando:
    apt-get install dosemu
    apt-get install dosemu-freedos

    Si todo ha ido bien, con ejecutar dosemu -X nos debería salir una ventana con MSDOS. Inincialmente el Prompt nos señala el disco virtual C, en el cual no podemos trabajar. Por el contrario, si tecleamos d: veremos nuestro directorio home de linux, a partir del cual podemos colocar nuestros directorios de trabajo. Por ejemplo el directorio /home/user/mi_dir lo veremos como d:\mi_dir.

    La configuración del Dosemu puede ser más o menos complicada según lo que queramos hacer. Por ejemplo entre las opciones están el activar los puertos serie, cambiar la tipografía, la configuración de memoria y otras muchas. Aquí podeis encontrar el fichero /etc/dosemu/dosemu.conf que yo estoy utilizando.
    Si necesitais editar el AUTOEXEC.BAT o el CONFIG.SYS los encontraréis en el directorio /usr/lib/freedos (instalación en Debian Sarge). Por si acaso aquí os pongo mis dos archivos de configuración: AUTOEXEC.BAT y CONFIG.SYS

  • Para la plataforma Windows podemos usar el programa DOSBOX qur también es gratuito. En el directorio de instalación encontraremos un fichero de configuración que al igual que en linux podemos cambiar para activar diferentes opciones del emulador. Una de las posibilidades de dicho archivo es utilizarlo como Autoexec.bat ya que al final del todo podemos colocar instrucciones que se ejecutarán a continuación del AUTOEXEC.BAT. En dicho archivo además habrá que indicar que directorio vamos a usar como unidad de disco de desarrollo.

  • El compilador de Ensamblador que vamos a usar es el TASM y el de C es el Turbo C, ambos de Borland, del que podemos encontrar una versión gratuita en la web de Borland. Otra opción es copiar los directorios TC, TD y TASM de los ordenadores del laboratorio. Recordad que luego tendreis que configurar el entorno indicando cuales son las nuevas rutas a las librerías y a los ficheros include.
    Además en el AUTOEXEC.BAT conviene poner en el PATH la ruta a los archivos binarios que vamos a usar:
    TASM (compilador de Ensamblador)
    TC (Compilador de C)
    TLINK (Enlazador o común;mente Linker)
    TLIB (generador de librerías)
    TD (Depurador)

    3. Grupos y Calificaciones

    Grupo 2a: Martes de 14:00 a 16:00
    Grupo 2c: Jueves de 15:00 a 17:00

    4. Programas de Ejemplo

    Programa Descripción Enlace Última actualización
    Cursor Programa que mueve un caracter por la pantalla. Acceso directo al modo texto. Teclas O,P,Q,A,'.' para salir cursor.asm 7-nov-06
    Makefile Ejemplo de fichero Makefile sencillo. El programa que compila se llama driver.asm Makefile 7-nov-06
    Prueba Driver Ejemplo de programa que verifica que hay un driver instalado en la INT61H driver.asm 7-nov-06
    Efecto Programa que rota un caracter en la esquina superior derecha. No usa interrupciones.Optimizado para CPU 386sx efecto.asm 13-ene-05
    Sonido Programa que muestra como usar el tercer timer para generar sonidos sonido.asm 08-dic-04
    Timer Programa que usa las interrupciones del Timer0 para rotar un caracter timer.asm 08-dic-04
    RTC Programa que usa las interrupciones del RTC para rotar un caracter. Este es el mecanismo a seguir en la practica 3 rtc.asm 13-ene-05
    Driver Ejemplo de estructura basica del driver. Preparado para generacion de archivo .COM drvmio.asm 07-dic-04
    Paralelo Programa ejemplo de envio de datos por el puerto paralelo. Hace parpadear un LED por espera activa. (Optimizado para CPU 386) paralelo.asm 13-ene-05
    Paralelo-I Programa ejemplo de envio de datos por el puerto paralelo. Hace parpadear un LED mediante el RTC paralelo1.asm 13-ene-05
    Paralelo-II Programa que enciende un LED cuando detecta que se ha apretado un pulsador. Ejemplo de envío y recepción en el puerto paralelo. paralelo2.asm 13-ene-05

    5. FAQs & News

    El Bit 5 (Bidireccional On/Off) no me funciona. (23-ene-2005)
    En algunos ordenadores el bit del registro de control que controla la Bi-direccionalidad del puerto no es el bit 5. Por ejemplo en los ordenadores Toshiba modelo T2000SX es el bit 7. En los ordenadores del Laboratorio es el bit 5.

    ¿ Para que sirve el LED rojo ?. (20-ene-2005)
    La placa hardware tiene un LED rojo que se enciende cuando tiene la alimentación correcta y no se debería de apagar salvo que quitemos la alimentación. Si al leer o escribir datos del puerto paralelo veis que esa luz parpadea entonces teneis un problema en la alimentación. En ese caso teneis que utilizar pilas o algún transformador externo. En los ordenadores del Laboratorio en modo escritura suele funcionar sin alimentación externa pero en modo escritura suele fallar. Por eso os recomiendo que useis 4 pilas tipo AA para alimentar la tarjeta.

    ¿ Debo copiar los programas tal cual ? (14-ene-2005)
    Recomiendo que el alumno los entienda y que haga sus propias rutinas. Adaptándolas a la práctica 3 y mejorando el código. Por en los códigos de recibir y enviar dato del puerto paralelo se muestra la secuencia pero no se ha respetado el acceso ordenado a los bits del registro de control del puerto paralelo. Es decir, si lo que queremos es activar un solo bit, lo que hay que hacer es leer el registro de control modificar el bit sin tocar el resto y volverlo a escribir al registro de control.

    No me funciona el modo EPP en los laboratorios. (13-ene-2005)
    En los ordenadores del laboratorio no disponemos del modo EPP, por eso hay que utilizar el modo bidireccional del puerto paralelo. En los ejemplos PARALELO1 y PARALELO2 encontrareis las rutinas para enviar y leer datos de la tarjeta electrónica. Cuando los probeis es importante que tengais en cuenta varias cosas:
    *) Para configurar el modo Bidireccional hay que tocar la BIOS y no en todos los ordenadores funciona.
    *) Los programas que hay en esta página se han probado en un portatil Toshiba 2000SX (386sx) y en los ordenadores del Laboratorio. Los programas que realizan las pausas con espera activa (Efecto) pueden funcionar de forma diferente en función de la frecuencia de la CPU.

    6. Enlaces de la asignatura


    IEA ROBOTICS Página de inicio
    Andrés Prieto-Moreno Torres Página Personal

    Ultima modificacion: 17-nov-2005