sábado, 8 de febrero de 2020

IBM PC 5150

En 1980 IBM, una empresa dedicada a los grandes y caros ordenadores de empresa, decidió entrar en el prometedor mercado de los ordenadores personales y baratos, hasta entonces dominado por empresas como Apple, Tandy Corporation, Commodore International o Atari. Para ello crearon el ordenador IBM 5150 en el corto espacio de un año y comenzaron a comercializarlo en 1981. El diseño estaba influido por el conocimiento adquirido diseñando el System/23 Datamaster. En la web de IBM se puede leer un artículo sobre la historia de la creación de este ordenador.

By Boffy b - Creative Commons Attribution-Share Alike 3.0

En sus ordenadores solían desarrollar ellos todo el software y hardware, y mantenían la información técnica en secreto. Para el 5150, como tenían prisa por tener un ordenador personal lo antes posible, fue todo lo contrario: usaron software y hardware de terceros ya disponible y listo para usar como el sistema operativo PC-DOS de Microsoft o el procesador 8088 de Intel, crearon un bus para tarjetas de ampliación y dieron amplia información técnica para que otras empresas pudieran desarrollar software y hardware compatible.

Incluso empresas como Compaq hicieron ordenadores compatibles con el hardware y software creado para el IBM PC y Microsoft comercializó su sistema operativo para ordenadores compatibles con el nombre de MS-DOS.

Al 5150 le siguieron el IBM PC 5160 XT (eXtended Technology) y el IBM PC 5170 AT (Advanced Technology). El modelo AT dio nombre al estándar de facto "Arquitectura AT" para el desarrollo de ordenadores compatibles entre si. El bus para tarjetas de ampliación también se convirtió en un estándar y pasó a llamarse ISA (Industry Standard Architecture). Más adelante, en 1995, Intel publicó las especificaciones de ATX (Advanced Technology Extended), una evolución de las placas AT que ha definido hasta el día de hoy la arquitectura básica de los ordenadores personales.

Actualmente se puede encontrar alguno de segunda mano, pero por bastante dinero. Así que para escribir sobre este ordenador y los que le siguieron voy a utilizar imágenes de Wikimedia Commons y Flickr, FreeDOS y los emuladores de PCjs Machines (en su web también están disponibles los manuales de los ordenadores).

A continuación se puede ver una imagen de la placa base del 5150 donde se puede ver el BIOS, el procesador, la memoria, las ranuras ISA, el conector del teclado, el conector de la fuente de alimentación y otros componentes. Muchas tecnologías usadas han sido sustituidas actualmente por otras pero básicamente los componentes son los mismos.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El BIOS (Basic Input / Output System) se almacenaba en una memoria ROM de 8 KiB junto a cuatro memorias ROM de 8 KiB del Cassette Basic (un editor e interprete de Microsoft BASIC). Mas abajo hay un zócalo libre para añadir otra memoria ROM con más funciones.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El BIOS es el primer programa que se ejecuta al iniciar el ordenador y se encarga de revisar e inicializar los componentes y ejecutar el programa del primer sector de un disquete. Si no era posible ejecutar ese programa procedía a ejecutar el Cassete Basic. Durante el funcionamiento del ordenador el BIOS proveía una interfaz para comunicarse con los componentes del ordenador.

Los ordenadores compatibles debían tener un BIOS con la misma interfaz para que pudieran funcionar los sistemas operativos o programas que utilizaran dicha interfaz. También se podían programar sistemas operativos y programas que accedieran directamente a los componentes sin utilizar la interfaz del BIOS. Es lo que hacen los sistemas operativos actuales.

Para la configuración del BIOS no había un programa o una memoria donde guardar los valores seleccionados, se utilizaban interruptores DIP.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El procesador 8088 tenía unos 20.000 transistores, casi nada comparado con los millones de transistores que tienen los procesadores actuales pero contenía en unos centímetros la capacidad de proceso que unas décadas antes ocupaba una habitación entera.

Estaba encapsulado en un DIP (paquete en doble línea) de 40 contactos. El 8088 era similar al procesador 8086. Los dos usan registros de 16 bits y tienen el mismo conjunto de instrucciones pero se diferencian principalmente en que el 8088 tiene un bus de datos para comunicarse con los otros componentes de 8 bits mientras que el 8086 lo tiene de 16 bits. IBM eligió el de 8 bits porque era más barato, Intel les podía vender más unidades y se podía integrar con otros circuitos de 8 bits que eran los más usados, probados y baratos en aquella época. Eso les permitía tener rápidamente listo el nuevo ordenador y vender muchas unidades a precios asequibles para el público en general.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

Al procesador le acompañan una serie de circuitos integrados para desempeñar diferentes funciones:


German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

En los ordenadores actuales muchas de esas funciones se incluyen en el procesador o en los circuitos integrados llamados Puente Norte y Puente Sur.

Al lado del procesador se encuentra un zócalo para el coprocesador de coma flotante Intel 8087. Este coprocesador permitía acelerar los cálculos de aritmética de coma flotante. Si el ordenador no era utilizado para este tipo de cálculos se podía prescindir del coprocesador y reducir el coste.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

Otra parte en la que redujeron costes fue en los circuitos necesarios para generar las frecuencias del sistema. Estas son proporcionadas por el generador de reloj Intel 8284, que usaba un cristal de cuarzo de tres veces la frecuencia deseada. El procesador podía funcionar hasta una frecuencia de 5 MHz, por lo que hubiera necesitado un cristal de 15 MHz. Pero por otro lado se necesitaba una frecuencia de 3,579545 MHz para la tarjeta gráfica que usaba el estándar NTSC.

Así que decidieron utilizar un cristal de 14,31818 MHz. Esa frecuencia dividida entre 4 da los 3,579545 MHz necesarios para la tarjeta gráfica y dividida entre 3 da 4,7727267 MHz para el procesador. Decidieron que el procesador funcionara un poco más lento para poder usar un solo cristal para los dos sistemas. En la siguiente foto se puede ver el cristal de cuarzo arriba a la derecha y el generador abajo.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El IBM 5150 no tenía un RTC (Real Time Clock / Reloj en tiempo real), aunque se le podía añadir con una tarjeta de expansión. Al no tener RTC ni memoria volátil donde guardar la configuración de la BIOS no necesitaba una pila que mantuviera funcionando esos sistemas al apagar el ordenador.

El BIOS utilizaba la frecuencia de 18,2065 Hz del temporizador Intel 8253 para llevar la cuenta del tiempo transcurrido desde el encendido del ordenador. El sistema operativo utilizaba ese contador para calcular la fecha, hora y minutos.

El temporizador recibía del generador de reloj 8284 una frecuencia de 1,1931816 MHz, la mitad de los 2,3863633 MHz que daba para la sincronización de periféricos, que a su vez era la mitad de la que recibía el procesador. La frecuencia de 1,1931816 MHz dividida entre 65536 daba los 18,2065 Hz.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

Al no tener un RTC tampoco conservaba la fecha y hora al volver a encender el ordenador. Se iniciaba con la fecha 1-01-1980 y la hora 0:00:00.00 y requería que el usuario introdujera la fecha y hora actual.

El procesador tiene un bus de direcciones de 20 bits, por lo que puede tener hasta 220 = 1048576 direcciones de memoria. Cada dirección de memoria tiene 8 bits / 1 byte como el bus de datos, por lo que puede direccionar hasta 1048576 bytes = 1024 KiB = 1 MiB de memoria.

El equipo usaba memorias Page Mode DRAM en chips de 16 contactos directamente conectados a la placa. Estos chips ocupaban una gran superficie de la placa, por eso en posteriores ordenadores se empezaron a utilizar módulos de memoria con varios chips que permitían usar menos espacio al estar montados verticalmente.

La placa tiene cuatro bancos de memoria de 16 KiB formados por 9 chips de memoria. 8 chips de memoria del sistema y 1 chip para el chequeo de paridad, o lo que es lo mismo, 1 bit de paridad por cada 8 bits / 1 byte de memoria.

El ordenador se vendía con 16 KiB o 64 KiB de RAM en 9 o 36 chips de 16 Kib (2 KiB) cada uno. En la foto de la placa se puede ver como en este caso eran 64 KiB en 36 chips AM9016DPC. Una versión posterior de la placa podía tener hasta 256 KiB.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

Además de la memoria directamente conectada a la placa base también se podía ampliar la memoria mediante tarjetas de ampliación en el bus ISA. Esto tenía sentido ya que el bus ISA estaba directamente conectado al procesador y era de 8 bits y funcionaba a 4,77 MHz igual que este. De esta forma se podía ampliar la memoria hasta los 256 KiB usando tres tarjetas IBM de 64KiB. Con tarjetas de terceros se podía llegar a 640 KiB, aún por debajo del máximo de 1024 KiB que permitía el procesador.

steverenouk [CC BY-SA (https://creativecommons.org/licenses/by-sa/2.0)]

En los ordenadores actuales la velocidad entre el procesador y la memoria es mucho mayor que entre el procesador y los buses de expansión, por lo que tiene menos sentido poner memoria en el bus de expansión.

El procesador se comunica con la memoria y otros dispositivos de entrada/salida mediante el controlador de bus Intel 8288.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

La placa base dispone en total de 5 ranuras ISA de 8 bits en las que se podían instalar las tarjetas de ampliación de memoria u otras como por ejemplo tarjeta gráfica, controladoras de unidades de disquetes o puertos serie, ya que la placa base no disponía de ninguno de estos sistemas como es normal en las placas actuales. La frecuencia de 14,31818 MHz se envía por el bus ISA para que las tarjetas gráficas NTSC puedan dividirla entre tres para crear la frecuencia de 3,579545 MHz.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

Cuando las tarjetas de ampliación u otros componentes de la placa base necesitan que el procesador ejecute una acción para su funcionamiento le envían una señal de interrupción. El IBM 5150 utilizaba el controlador de interrupciones Intel 8259 para recibir las interrupciones y comunicárselo al procesador. Este controlador tiene 8 líneas para conectar 8 dispositivos. Las líneas se enumeran desde IRQ0 a IRQ7.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El bus ISA tiene un bus de datos y un bus de direcciones para que el procesador se comunique con las tarjetas de ampliación. Cada tarjeta tiene una dirección de memoria de entrada/salida. Cuando el procesador selecciona una dirección de memoria, la tarjeta que tiene asignada esa dirección es la que responde al leer y escribir por el bus de datos.

Además las tarjetas de ampliación pueden utilizar el controlador de acceso directo a memoria (en inglés DMA (Direct Access Memory)) Intel 8237 para escribir y leer en la memoria sin usar el procesador.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

La asignación de una IRQ, dirección de memoria de entrada/salida o canal DMA se solía hacer mediante jumpers/interruptores DIP en la tarjeta o configuración por software. En los ordenadores actuales se hace automáticamente mediante sistemas Plug and Play.

Raymangold22 [CC0]

Las líneas IRQ0 e IRQ1 estaban asignadas al temporizador (para la señal de 18,2065 Hz utilizada por el BIOS) y al teclado respectivamente. El resto estaban disponibles para las tarjetas de ampliación. Algunos tipos de tarjetas de ampliación tenían una línea por defecto.

  • IRQ0 - Temporizador
  • IRQ1 - Teclado
  • IRQ2 - Libre
  • IRQ3 - Puerto Serie 2
  • IRQ4 - Puerto Serie 1
  • IRQ5 - Libre
  • IRQ6 - Disquetera
  • IRQ7 - Puerto Paralelo Impresora

El ordenador se vendía con dos modelos de tarjeta gráfica a las que se conectaba un monitor o televisor CRT: Monochrome Display Adapter (MDA) y Color Graphics Adapter (CGA).

La MDA tiene un conector DE-9 para monitor monocromo TTL y un puerto paralelo para conectar una impresora. Era normal que las tarjetas tuvieran varias funciones para aprovechar mejor las limitadas ranuras. Tenía solo un modo de texto 80x25 caracteres con una alta resolución de 720x350 puntos. No es posible indicarle a la pantalla que encienda un punto determinado, solo el carácter completo que debe mostrar.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

Los caracteres que puede mostrar están indicados por la página de códigos 437 integrada en la ROM de la tarjeta.

MattGiuca (talk · contribs) (Log) [Public domain]

Además de los caracteres ASCII y caracteres internacionales para otros idiomas distintos al inglés como la "ñ", tiene otros como ╠, ▼ o ▒ que sirven para dibujar gráficos simples que permiten crear un interfaz gráfico basado en texto.

La alta resolución, el puerto para impresora y su menor precio la hacía muy indicada para trabajos de oficina. Junto a los de edición de texto uno de los programas más usados en los ordenadores personales eran las aplicaciones de hoja de calculo como VisiCalc (en el emulador de PCjs Machines se puede probar).

La CGA tiene un conector DE-9 para monitor color RGBi TTL y una salida de vídeo compuesto con conector RCA para conectar a un televisor o monitor con entrada de vídeo compuesto.

Mister_rf [CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)]

Si el televisor no tenía entrada de vídeo compuesto se podía conectar un modulador RF para utilizar la entrada de antena. Esto era muy útil para el mercado doméstico porque permitía ver la imagen en un televisor y ahorrarse el gasto en un monitor dedicado al ordenador. Esta tarjeta era más cara y tenía dos modos de texto y dos de gráficos con algo menos de resolución, solo hasta 640x200 puntos.

By Fried Dough

Además de esas tarjetas con sistemas creados por IBM se crearon tarjetas de terceros como la exitosa Hercules Graphics Card. Esta tarjeta era compatible con el sistema MDA y además permitía un modo gráfico monocromo de 720×348 puntos. También se crearon emuladores de CGA usando esta tarjeta. Aún no teniendo color tuvo éxito por su bajo precio y por tener una resolución de gráficos mayor que el sistema CGA.

© Rainer Knäpper

Tanto el sistema MDA como el CGA (RGBI) son sistemas digitales que utilizan señales TTL (0 V para indicar 0 y 5 V para indicar 1). El sistema CGA utiliza el modelo de color RGB en el que los colores se forman mezclando el rojo, el verde y el azul.

En el caso del MDA por cada punto de la pantalla se mandan dos señales a través de dos pines del conector DE-9: Vídeo e intensidad, 2 bits por punto que permiten hasta 4 niveles de intensidad.

En el sistema CGA (RGBI) por cada punto de la pantalla se mandan cuatro señales a través de cuatro pines del conector DE-9: tres para los colores rojo, verde y azul, y otra para la intensidad. Un bit por color más un bit de intensidad, en total 4 bits por punto que permiten 8 colores con dos intensidades (con la excepción del amarillo, que en lugar de amarillo oscuro se muestra marrón), en total 16 colores.

Posteriormente, en 1987, se creó el sistema VGA (Video Graphics Array) para poder utilizar muchos más colores. También usa el modelo RGB pero ya no es binario sino analógico. Las señales de los colores tienen un valor entre 0 V y 0,7V que indican su intensidad. Los nuevos sistemas DVI y HDMI vuelven a ser digitales.

Otra tarjeta de ampliación muy importante era la de la controladora de disquetera de 5¼ pulgadas. El IBM 5150 se vendía sin disco duro y tanto para ejecutar el sistema operativo como guardar información se empleaban disquetes. Por eso sistemas operativos como PC-DOS (Personal Computer Disk Operating System) recibían ese nombre, "Sistema Operativo de Disco", porque estaban en un disco o varios de ellos.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El ordenador también permitía grabar y leer datos desde una unidad de casetes pero este sistema fue muy poco utilizado ya que casi todos los ordenadores fueren vendidos con disquetera, que ofrecía más velocidad y acceso aleatorio a los datos.

Los disquetes de 5¼ pulgadas de mayor capacidad, los de alta densidad, tenían 80 pistas y podían almacenar 1,2 MiB. Este tamaño de disquete sustituyó a los de 8 pulgadas y a su vez fue sustituido por los de 3½ pulgadas que se utilizaron hasta el siglo XXI. A continuación se muestra una foto de una disquetera 5¼ con un disco del sistema operativo PC-DOS a medio introducir.

Swtpc6800 en:User:Swtpc6800 Michael Holley [Public domain]

Las disqueteras se conectan a la controladora con una faja de 34 cables. Tanto en la controladora (atrás) como en la disquetera (atrás-derecha) se pueden ver las conexiones de 17 contactos por cara, 34 en total.

Las disqueteras de 5¼ generalmente usaban un conector distinto a las de 3½. A continuación se muestra una foto de una faja con los dos tipos de conectores, muy común cuando los ordenadores llevaban disqueteras de 3½ aunque hiciera muchos años que ya no se usaban las de 5¼.

El conector más grande es el de disquetera de 5¼ y el más pequeño de disquetera de 3½. La faja tiene dos conectores de cada tipo para poder conectar dos disqueteras. En PC-DOS y Windows reciben los nombres de unidad A: y unidad B:. Para reducir costes las disqueteras venían preconfiguradas de fábrica como B:. La faja tiene los cables que identifican una disquetera como A: o B: cruzados al final para que la disquetera conectada al final tenga la configuración contraria a la preconfigurada de fábrica, es decir A:. El conector inicial se conecta a la controladora o placa base.

Los disquetes se componen de un disco flexible de material magnético y una funda de plástico con papel de protección por dentro para evitar que el disco se ralle al girar. En el centro tiene un agujero por donde sujeta el disco la disquetera para hacerlo girar y abajo tiene una abertura por donde se produce la lectura y escritura. A la derecha del agujero central se encuentra el "agujero índice", que sirve para detectar el inicio de las pistas. Arriba a la derecha se encuentra la muesca de permiso de escritura, cuando está tapada no se puede escribir en el disco.

Armedblowfish (talk|mail|contribs) [BSD (http://opensource.org/licenses/bsd-license.php)]

Para casi todo tipo de conexión eran necesarias tarjetas de ampliación, las únicas dos conexiones que estaban integradas en la placa base eran la del teclado y la de lectora / grabadora de casetes mediante conectores DIN de 5 pines. Debajo de los conectores se encuentra un relé que sirve para controlar el motor de la lectora / grabadora de casetes.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

El teclado tenía mas o menos las mismas teclas de los teclados utilizados hoy día pero en distinta posición. Tenía solo 83 teclas, las teclas de función estaban a la izquierda en lugar de arriba, no tenía teclas de dirección independientes, teclas como bloqueo mayúsculas, control o escape estaban en distinta posición y no tenía teclas de Windows ya que este sistema operativo aún no existía.

steverenouk [CC BY-SA (https://creativecommons.org/licenses/by-sa/2.0)]

Para leer la entrada del teclado se usaba el interfaz programable de periféricos Intel 8255. Este chip también se usaba para leer los interruptores DIP de configuración.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

En varias partes de la placa base, principalmente arriba a la derecha, se encuentran un gran número de circuitos integrados de la serie 7400, y algunos de otro tipo, que sirven para interconectar los componentes principales con la lógica necesaria para completar el funcionamiento del ordenador.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

La fuente de alimentación se conectaba mediante dos cables de 6 contactos y proveía voltajes de +5 V, + 12 V, -5V y -12 V.

German [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)]

La fuente de alimentación se encendía y apagaba con un interruptor situado en la propia fuente, no se podía apagar mediante software. Si se accionaba el interruptor el ordenador se apagaba y se perdía la información que no se hubiera guardado.

By  Steve Lee

Las fuentes actuales siguen el estándar ATX y utilizan un pulsador que informa al sistema operativo que se desea apagar el ordenador y es este el que apaga el ordenador después de terminar lo que esté haciendo, cerrar las aplicaciones, guardar los datos en disco y pedir la confirmación del usuario si fuera necesario.

Al IBM PC 5150 le sigue el IBM PC 5160 XT (eXtended Technology) con mejoras como más memoria y un disco duro.

No hay comentarios:

Publicar un comentario