lunes, 21 de junio de 2021

Apple II y II+

El primer ordenador de Apple se comercializó en 1976 y constaba de una placa con procesador y otros circuitos electrónicos. El usuario debía añadirle carcasa, fuente de alimentación, teclado y monitor. Dado el éxito que tuvieron con este primer ordenador decidieron ir más allá y crear un ordenador completo que pudiera utilizar cualquier usuario sin conocimientos de electrónica. Este segundo ordenador recibió el nombre de Apple II y se crearon diferentes versiones que se vendieron entre 1977 y 1993.

Actualmente es posible encontrar estos ordenadores de segunda mano aunque por bastante dinero, así que para realizar este artículo voy a utilizar el manual de referencia, el emulador Apple II JS e imágenes tomadas de Wikimedia Commons. En el manual se explica el diseño y funcionamiento del ordenador. Las fotos del ordenador son de la versión original y de la siguiente, la Plus.

RKevin Burkett from Philadelphia, Pa., USA, CC BY-SA 2.0 <https://creativecommons.org/licenses/by-sa/2.0>, via Wikimedia Commons

El ordenador tiene integrado un teclado de 52 teclas. Algunas teclas sirven para escribir distintos caracteres pulsando a la vez CONTROL, SHIFT o ambas. Al pulsarse una tecla sola o en combinación con CONTROL o SHIFT se escribe en una dirección de memoria determinada que ha habido una pulsación de tecla y el código ASCII del carácter escrito. Los lenguajes de programación pueden leer esta dirección de memoria para implementar sus funciones de entrada de teclado. Los programas también pueden acceder directamente a esa dirección de memoria. La tecla RESET arriba a la derecha no genera un código ASCII, está conectada directamente al procesador para reiniciar el ordenador. Abajo a la izquierda se encuentra la luz POWER que indica que el ordenador está encendido.

Rama & Musée Bolo, CC BY-SA 2.0 FR <https://creativecommons.org/licenses/by-sa/2.0/fr/deed.en>, via Wikimedia Commons

Al ordenador se podía conectar un monitor o televisor con entrada de vídeo compuesto y una grabadora de casetes para grabar y leer datos. En el lado izquierdo de la parte de atrás de la carcasa se encuentra el conector de vídeo compuesto y dos conectores para la entrada y salida de cualquier grabadora de casetes. También se podía conectar un televisor sin entrada de vídeo compuesto utilizando un modulador como el Sup'R'Mod.

Rama & Musée Bolo, CC BY-SA 2.0 FR <https://creativecommons.org/licenses/by-sa/2.0/fr/deed.en>, via Wikimedia Commons

Pocos meses después del lanzamiento del ordenador, en 1978, desarrollaron el sistema Disk II para poder utilizar discos de 5,25 pulgadas que permitían mayor velocidad y acceso aleatorio a los datos. Para usar este sistema crearon el sistema operativo de disco Apple DOS. El uso de disquetes junto a otras características como la cantidad de memoria RAM permitieron al ordenador ejecutar software como Visicalc y ser muy utilizado en empresas.

http://www.allaboutapple.com/, CC BY-SA 2.5 IT <https://creativecommons.org/licenses/by-sa/2.5/it/deed.en>, via Wikimedia Commons

Para conectar las disqueteras al ordenador se usaba una tarjeta de ampliación a la que se conectaban los cables de las disqueteras. A diferencia de las tarjetas de los ordenadores actuales, las del Apple II no se atornillaban a la carcasa y no tenían conectores al exterior. El ordenador tenía en la parte de atrás unas rendijas por las que se introducían los cables que se conectaban a las tarjetas en el interior del ordenador.

Erkaha, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons
Rama & Musée Bolo, CC BY-SA 2.0 FR <https://creativecommons.org/licenses/by-sa/2.0/fr/deed.en>, via Wikimedia Commons

Al levantar la tapa de la carcasa se puede ver a la izquierda la fuente de alimentación y a la derecha la placa base con las tarjetas de ampliación conectadas. En el fondo se ven las rendijas por donde salen los cables conectados a las tarjetas. La fuente de alimentación es conmutada, lo que permite que sea más pequeña y genere menos calor y no necesite ventilador.

Nynexman4464, CC BY-SA 2.5 <https://creativecommons.org/licenses/by-sa/2.5>, via Wikimedia Commons

En el lado derecho de la parte de atrás de la carcasa están el conector para el cable de alimentación y el interruptor de encendido/apagado de la fuente de alimentación.

Rama & Musée Bolo, CC BY-SA 2.0 FR <https://creativecommons.org/licenses/by-sa/2.0/fr/deed.en>, via Wikimedia Commons

En 1983 Apple comenzó a vender para los ordenadores Apple II un monitor monocromo de 12 pulgadas, fabricado por Sanyo, con el nombre Apple Monitor II.

Ben_Boldt (talk) (Uploads), Public domain, via Wikimedia Commons
http://www.allaboutapple.com/, CC BY-SA 2.5 IT <https://creativecommons.org/licenses/by-sa/2.5/it/deed.en>, via Wikimedia Commons
Rama & Musée Bolo, CC BY-SA 2.0 FR <https://creativecommons.org/licenses/by-sa/2.0/fr/deed.en>, via Wikimedia Commons

En la siguiente foto de la placa base del Apple II Plus se pueden ver los componentes electrónicos que constituyen el núcleo del ordenador.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

El procesador es el MOS 6502. Tiene un bus de datos de 8 bits y un bus de direcciones de 16 bits, por lo que puede acceder a 216 = 65536 direcciones de 8 bits = 65536 bytes = 64 KiB.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Debajo del procesador se encuentran seis memorias ROM de 2 KiB (12 KiB en total). El ordenador debe tener al menos 2 KiB de memoria ROM para los sistemas básicos de inicialización, configuración, entrada/salida y lectura/escritura en grabadora de casetes. En el resto de memorias se encuentra software para desarrollar aplicaciones, principalmente el interprete de BASIC. En la versión original el interprete de BASIC es Integer BASIC, que solo puede realizar operaciones con números enteros entre -32768 y 32767. También se incluye software adicional para desarrollar aplicaciones.

En la versión Plus se añade la posibilidad de arrancar directamente desde disquetes Disk II. El interprete de BASIC y el resto de software para desarrollo es reemplazado por Applesoft BASIC, basado en un interprete de BASIC de Microsoft. Applesoft es un interprete más completo y que permite realizar operaciones de coma flotante.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Al iniciarse el ordenador se ejecuta el software llamado "System Monitor", incluido en los sistemas básicos de la memoria ROM. Este software permite programar en código máquina, hacer operaciones con la memoria del ordenador, inspeccionar los registros del procesador, interactuar con las tarjetas de ampliación y ejecutar el interprete de BASIC. Para ver su funcionamiento podemos utilizar el emulador Apple II JS seleccionando el modo Apple II original en la configuración. En la siguiente imagen se muestra el contenido de los registros del procesador pulsando Control-E + Enter. A continuación se ejecuta Control-B + Enter para ejecutar Integer BASIC, se escribe un programa de ejemplo y se ejecuta con el comando RUN.

En el emulador podemos probar además software de disquetes seleccionando un disco en una de las dos disqueteras. Por ejemplo podemos probar el sistema operativo de disco Apple DOS. El Apple II original no permite el arranque desde disquetes. Para arrancar el disquete es necesario escribir la ranura de ampliación donde está la tarjeta controladora de las disqueteras (generalmente la 6) y presionar Control-P + Enter. Esto hace que se ejecute el software de la memoria ROM de la tarjeta y este arranque el sistema operativo del disquete. Las siguientes imágenes muestran el inicio del sistema operativo y el listado de archivos del disco con el comando CATALOG. Si en la configuración seleccionamos el modo Apple II Plus podremos arrancar directamente desde los disquetes.


Más abajo de la memoria ROM hay tres bancos de memoria RAM. Cada banco se compone de 8 chips, por cada byte de memoria se utiliza un bit de cada uno de los chips. Al menos uno de los bancos debe tener sus 8 chips instalados para proporcionar memoria RAM al sistema. Los chips pueden ser de 0,5 o 2 KiB. Todos los chips del banco deben ser del mismo tamaño, por lo que los bancos pueden tener 4 o 16 KiB. Este sistema permite las siguientes combinaciones:

           4 =  4 KiB
      4 +  4 =  8 KiB
 4 +  4 +  4 = 12 KiB
          16 = 16 KiB  
      4 + 16 = 20 KiB
 4 +  4 + 16 = 24 KiB
     16 + 16 = 32 KiB
 4 + 16 + 16 = 36 KiB
16 + 16 + 16 = 48 KiB

En esta placa los tres bancos tienen 16 KiB con chips de 2 KiB, alcanzado el máximo de memoria posible de 48 KiB. Se utilizan tres modelos de chips: 12 HM4716A-3, 8 UPD416C-1 y 4 TMS4116-20NL.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons
Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons
Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons
Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

La placa tiene tres zócalos para configurar la memoria instalada. Mediante la unión de pares de sus pines se debe indicar la cantidad de memoria en cada uno de los bancos y asignarle una dirección. Es necesario realizar la misma configuración en los tres zócalos. Para facilitar esta tarea Apple distribuía unas piezas con las uniones necesarias para diferentes combinaciones. En esta placa se puede ver como están conectadas a los zócalos tres de estas piezas con el texto "16K 16K 16K", indicando que los tres bancos tienen 16 KiB de memoria.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Entre la memoria ROM y la RAM suman 60 KiB (12 KiB + 48 KiB). Los 4 KiB restantes que puede direccionar el procesador se usan para direcciones de entrada/salida para la comunicación con componentes del ordenador y tarjetas de ampliación. En la parte de arriba de la placa se encuentran 8 ranuras para tarjetas de ampliación numeradas del 0 al 7. La ranura 0 es especial y está reservada para tarjetas de ampliación de RAM o ROM. Las otras 7 tienen asignado un espacio de memoria de entrada/salida para la comunicación con la tarjeta y otro espacio de entrada/salida para una memoria ROM en la tarjeta con software para su funcionamiento. Las ranuras de ampliación están conectadas a los buses del procesador y permiten el uso de interrupciones y acceso directo a memoria (DMA).

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Se crearon múltiples tarjetas de ampliación de memoria RAM para sobrepasar el límite de 64 KiB direccionables por el procesador. Utilizaban diferentes sistemas de "bank switching", algunas no era necesario instalarlas en la ranura 0. La tarjeta de la siguiente foto permite añadir 16 KiB hasta alcanzar los 64 KiB de RAM. La tarjeta tiene un cable con un conector de 16 pines para conectar en un zócalo de memoria. En la tarjeta se pueden alojar 9 chips de 2 KiB = 18 KiB. El chip que es necesario quitar de la placa para poder conectar el cable se puede conectar a la tarjeta. De esta forma en la placa hay 46 KiB y en la tarjeta 18 KiB, en total 64 KiB. A la derecha de la tarjeta, con el texto "16 K", se encuentra lo que parece ser una pieza de configuración, es posible que también se pudiera configurar la tarjeta para utilizar chips de 0,5 KiB.

Erkaha, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons
Erkaha, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons

A la derecha de las ranuras se encuentran los conectores de entrada/salida para la grabadora de casetes y el conector de vídeo compuesto NTSC para el monitor o televisor. A diferencia de otros ordenadores no hay un chip dedicado a la generación del vídeo compuesto, se utilizan varios chips de la serie 7400 y otros componentes electrónicos repartidos por la placa base.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

La información para la generación de la imagen se guarda en la memoria RAM y hay tres modos de imagen:

  • Texto con 40 x 24 caracteres
  • Gráfico de baja resolución con 40 x 48 bloques y 16 colores
  • Gráfico de alta resolución con 280 x 192 puntos y 6 colores

Cada modo tiene dos espacios de memoria RAM para contener la información de dos imágenes, de esta forma es posible cambiar de una imagen a otra instantáneamente, lo que es muy útil para evitar parpadeos. Los modos texto y gráfico de baja resolución comparten dos espacios de 1 KiB y el modo gráfico de alta resolución tiene dos espacios de 8 KiB.

En cada imagen es posible mezclar el modo texto con el modo gráfico y mostrar cuatro líneas de texto abajo de la pantalla reemplazando 8 líneas de bloques del modo de baja resolución o 32 líneas de puntos del modo de alta resolución.

Los programas escriben en los espacios de memoria RAM la información para crear las imágenes que quieren mostrar y seleccionan el modo y una de las dos imágenes. El sistema de generación de vídeo compuesto se encarga de leer la información de la imagen seleccionada y procesarla según el modo elegido para crear la imagen y codificarla como vídeo compuesto. En el modo texto se utiliza un generador de caracteres RO-3-2513 que solo permite letras mayúsculas.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

La selección de modos e imágenes así como otros parámetros de configuración del sistema se realiza mediante lo que llaman en el manual "interruptores software". Con el acceso a una determinada dirección de memoria se activa o desactiva un parámetro. La activación de un parámetro puede desactivar otro parámetro.

Para no interferir con el acceso a memoria del procesador el sistema de generación de video compuesto accede a la memoria en la mitad del ciclo del procesador en la que este no está accediendo a la memoria.

La subportadora de crominancia del sistema NTSC debe tener una frecuencia de 3,579545 MHz. Para conseguir esta frecuencia se utiliza un resonador de 14,31818 MHz y se divide su frecuencia entre 4. A partir de este resonador se derivan el resto de frecuencias usadas en el ordenador. Por ejemplo la frecuencia usada por el procesador es 1,022727 MHz, 1/14 de la frecuencia del resonador.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Debajo del conector externo de vídeo compuesto se encuentra un conector auxiliar con la señal de vídeo compuesto en uno de sus cuatro pines. Los otros tres pines proveen 12 V, -5 V y conexión a tierra. Mas abajo se encuentra un potenciómetro que sirve para regular el nivel de la señal de vídeo compuesto del conector externo entre 0 y 1 V. El nivel del conector auxiliar no es regulable. Algo más abajo hay un condensador regulable para ajustar el color.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons
Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Entre el conector auxiliar y el potenciómetro se encuentra un punto, rodeado por un cuadrado blanco, en el que se puede soldar un cable para sacar la misma señal de vídeo compuesto del conector auxiliar. Según el manual este punto de conexión se incluye para conectar tarjetas gráficas que conviertan la señal de vídeo a los sistemas PAL o SECAM. Las tarjetas gráficas se conectan en la ranura 7 ya que esta ranura es la única que recibe la señal de sincronización del vídeo compuesto y la frecuencia de la subportadora de crominancia.

Para que las tarjetas gráficas PAL y SECAM funcionen correctamente es necesario hacer dos modificaciones en la placa base. Más abajo del ajuste de color hay 5 conexiones. Cuando solo están unidas las dos con forma de "X" la placa está configurada para NTSC y cuando solo están unidas las tres con forma de "O" la placa está configurada para PAL o SECAM. La segunda modificación necesaria es cambiar el resonador de 14,31818 MHz. Para el sistema PAL hay que sustituirlo por uno de 14,25045 MHz.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Para poder utilizar más de 40 caracteres de texto por línea se crearon tarjetas de ampliación como la mostrada en la siguiente imagen. Esta tarjeta usa el chip HD6845SP y permite mostrar 80 caracteres por fila, lo que es muy útil para escribir textos.

Erkaha, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons
Erkaha, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons

El teclado está compuesto por una matriz de pistas y a cada tecla llegan dos pistas. Cuando se pulsa una tecla se unen las dos pistas y se cierra un circuito de la matriz. Escaneando las combinaciones de pistas se puede saber cuales están unidas y por tanto que tecla ha sido pulsada.

El teclado tiene integrado un chip codificador de teclado MM5740 al que están conectadas las pistas y se encarga de realizar el escaneo para detectar la tecla pulsada. Las teclas CONTROL y SHIFT no forman parte de la matriz sino que están directamente conectadas al chip. A partir de la combinación de tecla y modificadores CONTROL y SHIFT pulsados el chip genera el código ASCII correspondiente. La tecla RESET queda fuera de este sistema ya que se conecta directamente al procesador para reiniciar el equipo.

En la placa base se encuentra un zócalo para conector el teclado. 7 pines se utilizan para recibir el código ASCII de 7 bits. Otro pin se usa para conectar la tecla RESET. Además el zócalo proporciona 5 y -12 V al teclado.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Arriba a la derecha de la placa hay otro zócalo para conectar mandos de videojuegos u otros dispositivos. El zócalo tiene 4 pines de salida binarios, 3 pines de entrada binarios y 4 pines de entrada analógicos. Los pines binarios pueden tener dos valores, activo o inactivo. Los pines analógicos se deben conectar a un potenciómetro de 150 Kohm y su valor va a variar según la resistencia seleccionada. Los pines binarios de salida se pueden usar por ejemplo para encender luces o hacer vibrar el mando, los pines binarios de entrada para los botones y los pines analógicos para mandos como joysticks, volantes o pedales que tienen un rango de posiciones entre dos puntos. Estos pines de entrada y salida también pueden servir para interactuar con otros aparatos electrónicos como sensores, aparatos de medida, relés, etc.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Para poder conectar una impresora era necesario instalar una tarjeta de ampliación con un puerto paralelo. También se desarrollaron tarjetas con puertos serie.

Erkaha, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons

Arriba a la izquierda de la placa se haya el conector de 6 pines para la fuente de alimentación por el que esta suministra a la placa base los voltajes 5, -5, 12 y -12. Los otros 2 pines son la conexión a tierra.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Por último abajo a la derecha se encuentra el conector para el altavoz interno del ordenador, que se encuentra a la izquierda, delante de la fuente de alimentación y debajo de la carcasa del teclado. El altavoz tiene asignada una dirección de memoria y cuando se accede a ella el altavoz emite un "click". Para generar un tono de una determinada frecuencia es necesario acceder a la dirección de memoria con esa frecuencia. Por ejemplo para emitir un tono con la nota D5 (Re quinta octava) se debe acceder con una frecuencia de 587,33 veces por segundo = 587,33 Hz.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

En la siguiente imagen podemos ver la placa base indicando la posición de los componentes más importantes vistos hasta ahora.

Sckop, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons

Otra tarjeta de ampliación muy utilizada fue la creada por Microsoft con un procesador Zilog Z80, compatible con el Intel 8080, para poder ejecutar en el Apple II software creado por Microsoft para dicho procesador. Esta tarjeta permitía ejecutar todo tipo de software creado para el Intel 8080 como el sistema operativo CP/M.

OlivierBerger, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons
OlivierBerger, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons

Aquí termina este pequeño repaso de las características del ordenador. Para profundizar más y conocer cualquier detalle lo mejor es leer el manual de referencia donde se describe la arquitectura y funcionamiento. En Wikimedia Commons se pueden ver más imágenes del ordenador y en el emulador Apple II JS probar el software.

No hay comentarios:

Publicar un comentario