MSX88: Una Herramienta para la Enseñanza de la Estructura y Funcionamiento de los Ordenadores.

Rubén de Diego Martínez

Universidad Politécnica de Madrid. E.U.I.T. de Telecomunicación.
Departamento de Ingeniería y Arquitecturas Telemáticas.
Carretera de Valencia Km 7, 28031 MADRID.
Tel.: (91) 336 78 02, FAX: (91) 336 78 17
Correo Electrónico: rdiego@diatel.upm.es

Abstract.- To teach about basic computer architecture presents several difficulties. Main difficulty is based in the necessity to offer to the student dynamics models that permit to understand the computer structure and operation.

MSX88 is a tool that partially solves the problem because it is a graphical simulator of a didactic computer based on the Intel 8086 family, that shows the different information flows presents in it. MSX88 is a tool oriented to both: teachers and students. Teachers may use it as a didactic resource in combination with transparency and video projectors. Students have to use it at the laboratory in a guide way or at home in a free way.

  1. INTRODUCCIÓN
  2. MSX88 no es una herramienta nueva, se dispone de una amplia experiencia en su utilización dentro de la enseñanza reglada impartida por el Departamento de Ingeniería y Arquitecturas Telemáticas de la E.U.I.T. de Telecomunicación de la U.P.M. y en diversos cursos de formación, siempre combinada con prácticas sobre hardware real. Están disponibles varias versiones de la herramienta, incluyendo versiones de demostración.

    El MSX88 nace en la antigua Cátedra de Ordenadores de la E.U.I.T. de Telecomunicación de la UPM en 1988 cuando el ordenador personal (PC) hace su irrupción en el mundo informático a precios asequibles y es posible dotar un aula completa para la realización de prácticas.

    Figura 1

    Con la llegada del PC es prácticamente obligado realizar un cambio de CPU, pasando de la CPU 8085, con la que hasta el momento se soportaba la docencia, a la Intel 8086/88 [1], con el correspondiente incremento de complejidad. Había, y hay, un problema didáctico importante: abordar el estudio de una CPU comercial de 16 bits como el 8086 de forma global es algo muy difícil. Era necesario plantear una simplificación que permitiera afrontar el problema de forma parcial, sin enfrentarse a toda la complejidad del 8086 desde el momento inicial.

    Por otra parte existía, y existe, el problema de aportar visibilidad a lo que ocurre dentro de la CPU, y en última instancia dentro del ordenador.

    MSX88 resuelve parcialmente ambos problemas, dado que conceptualmente es una simplificación del 8088 y permite mostrar además los flujos de datos y variaciones de señales en él existentes.

    Como cualquier programa el MSX88 ha sufrido una notable evolución, dado que desde la versión 1.0, en la que únicamente se ofrecía la visión de la CPU y memoria, se ha pasado a la versión 3.0 en la que el MSX88 es ya un completo ordenador que incorpora una periferia y admite diversos conexionados y configuraciones, tal como se verá más adelante.

    Desde sus primeras versiones el MSX88 está diseñado de forma que sus elementos tengan un equivalente lo mas parecido posible en CPUs y periféricos de la familia iAPX86/88, o al menos, con la idea que el alumno, al pasar a trabajar sobre elementos reales, sólo tenga que añadir, nunca quitar u olvidar, a lo aprendido sobre el MSX88. Igualmente su diseño estuvo presidido por la máxima de conseguir una herramienta para 'hacer visible lo invisible'.

  3. EL CONJUNTO DE HERRAMIENTAS DEL ENTORNO MSX88
  4. En la versión 3.0 el MSX88 está formado por el siguiente conjunto de programas:

    Tras arrancarlo en la pantalla aparece la denominada pantalla principal o pantalla 0 (figura 8), donde se muestra la CPU, el bloque de memoria, un bloque de periféricos y la ventana de comunicación con el usuario que se comporta como la pantalla de un ordenador. El MSX88 posee además los siguientes periféricos:

    Estos periféricos admiten diversos conexionados, siendo la mayor parte de ellos totalmente programables.

  5. DESCRIPCION DEL MSX88.
  6. Tratando de distinguir grandes bloques en el MSX88, se podría decir que lo integran los siguientes elementos: CPU SX88, memoria, periféricos y programa monitor.

    1. CPU SX88
    2. Se puede sintetizar el esfuerzo de diseño de la CPU diciendo que es similar a un 8088 en el que se bastare la Unidad de Interfaz con los Buses (BIU), asimilándola a una interfaz más simplificada en la que se elimina la cola de instrucciones y los registros de segmento. La EU se ve también simplificada, eliminando los registros BP, DI y SI y definiendo una arquitectura clásica con un Registro de Instrucción (RI) un decodificador y un secuenciador.

      Se ha elegido el 8088 como base, en vez del 8086, debido a que su arquitectura de 8/16 bits se considera, didácticamente, más completa.

      1. Conjunto de Instrucciones
      2. El siguiente conjunto de instrucciones se ha demostrado suficiente para resolver los sencillo algoritmos necesarios para conseguir los objetivos que se pretenden con el MSX88. Su código máquina es como el del 8086/88. En la versión 3.0 se han definido las siguientes instrucciones:

        • Transferencia de Datos: MOV, IN, OUT, PUSH, POP, PUSHF y POPF.
        • Aritmético-Lógicas: ADD, ADC, SUB, SBB, AND, OR, XOR, NOT y NEG.
        • Incremento-Decremento: INC y DEC.
        • Comparación: CMP.
        • Flujo de Programa: JMP, JZ, JNZ, JS, JNS, JC, JNC, JO, JNO, CALL y RET.
        • Gestión de las Interrupciones: INT, IRET, INTO, STI y CLI.
        • Control: NOP y HLT.

        Los lectores no familiarizados con la CPU 8086/88 y/o su lenguaje de ensamble, en [2], [4] y [5] podrán encontrar información complementaria.

    3. LA MEMORIA DEL MSX88
    4. El MSX88 posee un total de 64 Kbytes de memoria direccionados linealmente. El usuario tiene disponibles un total de 32Kbytes desde la posición 0 a la 7FFFH, memoria en la que cabrá holgadamente cualquier programa pensado para el MSX88.

    5. LOS PERIFÉRICOS DEL MSX88
    6. figura 2

      El MSX88, aparte de la pantalla principal, tiene la posibilidad de proporcionar una segunda visión de su estructura, denominada pantalla 1, centrada ésta en el estudio de los periféricos, tal como se ilustra en la figura 2.

      La mencionada figura representa en la parte superior izquierda el conjunto CPU-Memoria junto con la lógica de selección de la periferia y la generación de las señales de lectura/escritura. En la parte superior derecha se pueden ver el PIC y el Timer. En la parte central de la pantalla se observa el PIO conectado a una barra de LEDS y microconmutadores.

      Esta configuración se corresponde con el denominado conexionado 0, que sería el conexionado más simple.

      En el conexionado 1 se sustituyen las barras de LEDs y microconmutadores por una impresora con una interfaz centronics, que el alumno deberá implementar.

      En el conexionado 2, se mantiene la impresora pero ahora conectada al dispositivo que hace handshaking, implementando igualmente la interfaz centronics necesario para conectarse a la impresora.

      En el conexionado 3 (figura 3), último por el momento, aparece el CDMA conectado al Hand. Por supuesto no es un buen ejemplo de utilización de un CDMA y así se debe hacer ver a los alumnos, pero toda la problemática relacionada con la programación de estos dispositivos aparece en este conexionado, con lo que quedan cubiertos, tal como se pretende, los aspectos didácticos.

    7. EL PROGRAMA MONITOR DEL MSX88.
    8. Ofrece la posibilidad de ejecutar diversos comandos e incluso soporta algunas utilidades, equivalentes a las llamadas al sistema presentes en cualquier S.O., que permiten a un programa de usuario realizar operaciones de entrada/salida sobre el teclado y la pantalla de usuario.

      Los comandos del monitor son los equivalentes a los de cualquier programa depurador, adaptados a la filosofía MSX88.

      1. Modos de ejecución.
      2. figura 3

        Como se ha comentado la característica que resume al MSX88 es la de 'hacer visible lo invisible'. De lo expuesto hasta el momento el MSX88 no es sino un emulador de un ordenador sin característica alguna que lo diferencie de cualquier depurador gráfico. Estas diferencias aparecen en el momento que se habla de los distintos modos en los que el MSX88 puede ejecutar los programas: modo rápido y modo lento.

        En el modo rápido el comportamiento del MSX88 no es diferente al de un depurador gráfico: es capaz de cargar programas contenidos en un fichero, modificar el contenido de los registros y de las posiciones de memoria, ejecutar programas con puntos de ruptura, instrucción a instrucción...

        Cuando se elige el modo lento el MSX88 manifiesta sus cualidades didácticas diferenciadoras. A partir de este momento el MSX88 empieza a mostrar los flujos de información de los buses y señales existentes (figuras 8 y 9). Los buses y líneas se van rellenando, de forma continua, con colores distintos a los que tienen cuando no están activados.

        Cuando se cambia de la pantalla principal a la de la periferia, obviamente cambian los objetivos de estudio, y con ellos los elementos y señales que interesa visualizar. Así, en la pantalla de periferia se ofrecen otros posibles modos de visualización donde se filtra de diferentes formas la información ofrecida en modo lento, para permitir centrarse únicamente en el estudio de las señales que interesen. El monitor ofrece los siguientes comandos para variar los modos de visualización:

        • +F: El ciclo de búsqueda de la instrucción queda reducido a un único acceso a memoria. La representación que se hace en los buses es equivalente a que todas las instrucciones sean de un único octeto. +P: Se visualizan únicamente aquellas señales relacionadas con la periferia y las escrituras y lecturas de los puertos, junto con el contenido de los registros y posiciones de memoria.
        • +L: Se visualizan únicamente las líneas de control asociadas a los periféricos y el contenido de los registros y posiciones de memoria.
        • +R: Se visualiza únicamente la variación del contenido de los registros y posiciones de memoria.

  7. CONCLUSIONES Y TRABAJOS PRESENTES Y FUTUROS
  8. Hasta el momento el MSX88 se ha mostrado como una eficaz herramienta para abordar el estudio de la estructura y funcionamiento de los ordenadores. El efecto producido tanto en profesores como en alumnos que han trabajado sobre la pantalla principal, única disponible en versiones anteriores, ha sido valorado como altamente favorable.

    La utilización de la periferia ha sido también probada parcialmente durante el curso 93/94 en la asignatura Arquitecturas de Ordenadores I para ilustrar el tema de Acceso Directo a Memoria, siendo igualmente evaluados los resultados como favorables.

    Pese a que por su estructura el MSX88 puede cubrir, sin necesidad de acudir a otras máquinas, los contenidos de cualquier asignatura básica de Arquitectura de Ordenadores o Microprocesadores, es aconsejable usarlo como introducción a arquitecturas reales las cuales no tienen por qué ser de la familia iAPx86.

    El desarrollo del MSX88 no se ha detenido. A parte de en mejorar todas aquellas partes con un funcionamiento no óptimo, actualmente se están realizando fundamentalmente trabajos en las siguientes áreas:

    Los dos primeros puntos estarán concluidos hacia finales de 1994, el tercero se estima estará finalizado en el plazo de un año.

  9. REFERENCIAS
  10. [1] Intel. "The 8086 Family User's Manual". Intel Corporation 1980.

    [2] Intel. "iAPX 86/88, 186/188 User's Manual, Programmer's Reference". Intel Corporation 1985

    [3] Intel. "iAPX 86/88, 186/188 User's Manual, Hardware Reference". Intel Corporation 1985

    [4] M.A. Rodríguez-Rosello. "8088-8086, 8087 : programación ensamblador en entorno MS DOS". Anaya Multimedia. Madrid, 1987

    [5] J. Uffenbeck. "The 8086/8088 family: design, programing, and interfacing". Prentice-Hall International London, 1987

    [6] J.M. Angulo Usátegui. " Microprocesadores 8086, 80286, 80386". Paraninfo, 1990

    [7] J. Carracedo, C. Ramos &  R. de Diego. "Author System for creating educational programmes". Second biennal meeting of the Community of Mediterranean Universities on Microcomputers and their applications.Malta, October 1988. Education and Application of Computer Technology.