El IBM 5150. Donde comenzó el monopolio



Haga clic aquí para leer la versión rusa.

Todo viejo entusiasta del hardware tiene un fetiche. En el este de Europa a menudo es un clon de Sinclair ZX Spectrum, ya que eran extremadamente populares allí, así como en Gran Bretaña y España. Desafortunadamente, ZX Spectrum dejó muy poco legado. IBM PC 5150 es una bestia diferente. Muchos aman esta computadora por su herencia. Porque eventualmente se convirtió en una PC definitiva. La PC Pero aunque la historia de esta computadora es muy conocida, sorprendentemente, no mucha gente sabe lo que estaba bajo el capó de la primera PC de IBM.

Por ejemplo, muchas personas con las que hablé se sorprendieron al descubrir que la cantidad de RAM que tenía el 5150 no era de 640 KB. En ese momento, 640 KB era una gran cantidad de RAM y era suficiente para cualquiera. La primera revisión de la placa base IBM 5150 podría acomodar no más de 64 KB de RAM. Sí, es cierto, tanto como tu Commodore 64 habría tenido. Y un poco más que una versión de 48K de ZX Spectrum, la más popular. Por supuesto, había tarjetas de actualización de memoria disponibles en el mercado, pero aparecieron después de que IBM comenzó a vender 5150 y, por supuesto, la segunda revisión de la placa base era capaz de manejar hasta 256 KB, pero si hubiera comprado una versión básica de En un IBM 5150 anterior, habría terminado con una computadora IBM de 16 KB. ¿Te imaginas 16 KB de RAM en una PC IBM? No podría ejecutar DOS allí ...

Y no necesitaría: la versión básica no se incluía con ningún tipo de unidad de disquete. De hecho, no se entregó con ninguna unidad, un disco duro ni siquiera estaba presente en la lista de opciones para 5150, y la fuente de alimentación de la primera PC IBM tampoco podía manejar un disco duro. Entonces, ¿cómo habría ejecutado esta computadora? Bueno, tal como lo hiciste con tu Commodore 64 o ZX Spectrum. Lo tendrías encendido y se habría iniciado en ROM Basic. Y, al igual que en un Commodore en ZX Spectrum nuevamente, habría utilizado casetes para guardar y cargar programas básicos. Sí, IBM PC 5150 viene equipado con un puerto de casete estándar. Habiendo dicho eso, debo mencionar que en realidad la PC en sí misma tenía mucho en común con las PC de 8 bits de la época. Sí, IBM PC 5150 tenía una CPU Intel 8088 de 16 bits en su interior, pero el bus de datos de la CPU tenía solo 8 bits de ancho, para ahorrar en costos de componentes. Sí, el bus de direcciones tenía un ancho completo de 20 bits y todos los dispositivos podían usar el espacio de direcciones completo (esta es la razón por la que los primeros MB de RAM son tan importantes para los dispositivos de bus ISA: una ranura ISA solo puede acomodar 20 líneas de dirección, abordando así un máximo de 1 MB), pero todo el intercambio de datos se realizó a través de un bus de datos de 8 bits. Al igual que en tu Commodore 64 o ZX Spectrum. Aún más simple, porque a diferencia de Sinclair Research o Acorn, que usaban ULA personalizados en sus computadoras, o Commodore, propietario de MOS Technology y algunos de los chips utilizados en sus máquinas, se fabricaron exclusivamente para Commodore y no estaban disponibles para otros fabricantes, IBM decidió usar el componentes shlef solo para construir el 5150. Por lo tanto, cualquiera podría construir fácilmente su propio clon de 5150, con la excepción de IBM BIOS que estaba protegido por derechos de autor.

Y al mirar el adaptador de pantalla, la historia solo se vuelve más divertida. IBM PC 5150 se presentó con un adaptador de pantalla monocromático de solo texto (MDA). No era capaz de ningún tipo de gráficos en absoluto. Por otro lado, la calidad del texto mostrado fue excelente. Sin embargo, este adaptador requería un monitor apropiado para enchufar, y era ideal para usuarios comerciales (siempre que se instalara una unidad de disquete opcional para ejecutar aplicaciones de DOS). Después de un tiempo, apareció un Adaptador de gráficos en color (CGA) en la lista de opciones. Este adaptador podía mostrar 4 colores a la vez en modo gráfico y tenía una salida de video compuesto para conectarse a su televisor. Este adaptador de video fue significativamente peor en la visualización de texto, pero fue una buena opción para los usuarios domésticos: no necesitaría un monitor dedicado, y el límite de 4 colores podría romperse con un poco de magia al usar una salida compuesta. Así que, en general, una tarjeta CGA no era tan mala como podría recordar al jugar juegos CGA en una tarjeta de video VGA que emula una CGA. Un televisor se ajustaba mejor.

Ya he tenido una IBM PC 5150 por algún tiempo, pero no la toqué por una simple razón: no se encendió. Al principio, cuando recibí la PC, rápidamente encontré un condensador que estaba en cortocircuito y lo saqué. Estaba sentado en un riel de -12 V y no era esencial para mi uso, por lo que ni siquiera me molesté en reemplazarlo. Pero después de eso descubrí que la PC tenía algunos problemas importantes con su RAM.

Aquí necesito explicar algo primero. La cuestión es que no había ninguna configuración de BIOS en el 5150. El programa de BIOS estaba leyendo 2 bloques de interruptores ubicados en la placa base, SW1 y SW2 para configurar el hardware. La configuración de RAM se estableció en 2 pasos. Primero, necesitaría configurar SW1 para decirle al BIOS cuántos de los 4 bancos de RAM en la placa base estaban ocupados. Luego, configuraría SW2 para indicar la cantidad total de RAM, en la placa base y todas las tarjetas de extensión instaladas que estaban disponibles para la PC.


Puedes ver SW1 y SW2 como 2 ladrillos cian en la imagen

Cada banco de memoria en la placa base contenía 9 chips de memoria: 8 bits y 1 bit de paridad. La primera revisión de la placa base admitió 16 KB por banco, las revisiones posteriores admitieron 64 KB por banco. Aquí es donde comenzaron los problemas. En primer lugar, hay un error en el programa BIOS, que hace que la PC piense que, sin importar la revisión de la placa base, solo hay 16 KB de RAM por banco si algunos de los bancos de la placa base quedan despoblados. Entonces, si por ejemplo instala 192 KB de RAM en una placa base de 256 KB llenando 3 bancos y dejando el cuarto banco vacío, el BIOS solo verá 48 KB. También hay otro error en el BIOS que causaba errores de memoria fantasma en las placas base de revisión posteriores si algunos bancos de la placa base se dejaban despoblados. Estos dos errores me hacen pensar que una revisión posterior de IBM PC 5150 nunca se entregó con menos de 256 KB de memoria, de lo contrario, un cliente se encontraría con errores de encendido y no podría usar toda la memoria instalada en el sistema, cuando la RAM Los precios eran bastante elevados.

Bien, tenía un 5150 con una placa base de revisión tardía y una tarjeta de memoria externa con 256 KB de memoria. Pero al encender, mi PC indicó el error 0800 201 y detuvo el mensaje POST con PARITY CHECK 1.


La búsqueda rápida en Google reveló que este tipo de errores a menudo son causados ​​por configuraciones incorrectas de SW1 y SW2. Empecé experimentos. En primer lugar, eliminé la tarjeta de memoria de extensión y configuré SW2 en consecuencia. Esto no tuvo efecto. Pensé, "Está bien, esto debe ser causado por la memoria interna". Así que decidí eliminar toda la memoria que podría eliminarse. Solo quedaba el banco 0, ya que estaba soldado en el tablero. ¡Y el error desapareció! La computadora arrancó a Basic e informó haber visto 12 KB de memoria.


Mi primer pensamiento fue: "¡Espera un segundo, se supone que tengo 64 KB, ROM Basic no puede comer tanta memoria!" Un lector reflexivo comprendería ahora que esto fue causado por un error de BIOS descrito anteriormente. Pero no lo sabía en ese momento.

Después de pasar bastante tiempo buscando en Google, encontré este increíble sitio web , que se convirtió en una Biblia para PC de IBM para mí y que me ayudaría mucho más en esta historia. Fue allí donde descubrí que mi placa solo podía ver 16 KB si solo se llenaba un banco de memoria, y que el error 0800 201 indicaba una falla en el IC del bit de paridad del banco 0 , que estaba soldado en la placa base, y que el error era ubicado en los 3 / 4s superiores del chip, por lo que no era inteligente para el sistema cuando dirigía solo 16 KB de 64 KB en el banco 0. Para mi pesar, después de desoldar el IC e instalar un zócalo con un nuevo IC, la placa base murió. No mostró signos de vida desde entonces. No encontré ningún daño causado por mi soldadura, pero, dado que estaba usando una pistola de aire caliente para desoldar el chip defectuoso, supuse que algunos otros chips de memoria podrían haberse estropeado, y si hay un error en los primeros 16 KB de RAM, la placa base parece muerta en un IBM 5150. O la ROM podría corromperse por el calor. Para abreviar, esta placa requirió una verificación exhaustiva y no tuve tiempo para eso, así que guardé esta PC por el momento.

Pasó el tiempo y una vez que encontré un libro titulado ZX Spectrum ULA: Cómo diseñar una microcomputadora en uno de los episodios de The Ben Heck Show . Construir un clon ZX Spectrum era mi sueño desde hace bastante tiempo y el libro prometía un diseño 100% compatible basado en circuitos integrados lógicos de la serie 74HC. Estaba interesado Compré el libro y un PCB diseñado por el autor del libro. Sé que esto es trampa, pero tengo una excusa: quería un clon ZX Spectrum que funcionara primero para poder experimentar con él, y comprar un PCB fabricado en fábrica acelera el proceso de manera bastante significativa. Y también fue un precio muy asequible. Después de todo, me gustó tanto el proceso de armar este clon de ZX Spectrum que después de terminarlo comencé a buscar algo más para soldar.

Y encontré ESTO



Sí, esta es una copia extremadamente precisa de una placa madre original IBM PC 5150 de revisión tardía, pero es una PCB completamente nueva, muy bien hecha, de excelente calidad. Encontré muy pocas diferencias entre esta placa de clonación y la original, una de ellas es un chip generador de retraso (utilizado para generar la señal de actualización de RAM, por lo que yo entiendo):


El paquete grande a la izquierda es el IC de generación de retardo original, mientras que un pequeño DIP-8 a la derecha es moderno.

y el enrutamiento de los condensadores de cerámica: mientras que los tantalios usan el mismo pinout de 3 orificios que en el tablero original, el pin del medio está conectado a tierra para que no se puedan colocar de forma incorrecta durante el proceso de ensamblaje, todos los condensadores de cerámica en el tablero clon siguen no se usa el mismo pinout de tierra del techo de 3 agujeros que los tantalios, y en el tablero original no se usa el agujero central de los condensadores de cerámica, y la tierra está en uno de los agujeros exteriores, porque estos condensadores no están polarizados y la orientación no importa para ellos Esto hace que el montaje de una placa de clonación sea un poco más difícil, ya que las patas de los condensadores de cerámica están demasiado juntas en la placa, pero no es gran cosa. Aparte de eso, las placas me parecen idénticas, y la parte más interesante es que el kit incluye todos los chips y componentes pasivos necesarios para ensamblar una placa completamente funcional. Incluyendo una EPROM con BIOS compatible con PC de IBM. Si decide encontrar todos estos chips usted mismo, tenga en cuenta que algunos de ellos son bastante difíciles de obtener hoy en día, y una EPROM también debe programarse, e IBM no utilizó el pinout conmatible JEDEC para esta EPROM. Puede construir un dispositivo de interposición , por supuesto, pero con un dispositivo de interposición el tablero no se ve tan limpio. No todos los chips del kit eran nuevos y viejos, algunos rastros de soldadura vieja eran visibles en algunos de ellos, pero el estado general de todos estos chips era excelente. El kit tenía la sensación de un producto de una calidad excepcional. El principal inconveniente es el precio. Puede comprar 2 o 3 placas base usadas en eBay por este dinero. Pero esto no me impidió comprar el kit, ya tenía una placa base usada en mi PC y no me ayudó mucho. Más importante aún, la alegría de armar un ZX Spectrum aún estaba fresca en mi memoria, y para Spectrum tuve que obtener todas las piezas yo mismo (no fue tan difícil para ser sincero, los chips de la serie 74HC todavía están disponibles a precios muy asequibles). y ya tenía muchos de ellos en mi estante, así como un montón de procesadores Z80). Entonces, un par de noches después, la placa de clonación era indistinguible de la original, y la instalé con un conjunto de EPROM de PC de IBM original para tener un BIOS y un Basic originales a bordo:



Es una verdadera alegría armar un tablero como este, y aunque planeo restaurar el original en algún momento en el futuro, este lo hará por ahora. Ok, entonces después de completar la placa e instalarla en el estuche necesitaremos:

1. Un controlador de disquete:



El PC 5150 original de IBM solo puede escribir discos de doble densidad. Un disco de 5 1/4 pulgadas se adapta a 360 KB de datos, un disco de 3 1/2 pulgadas se adapta a 720 KB. Mi PC viene equipada con una unidad de 5 1/4 pulgadas, y la he conectado a una computadora más moderna (486) para crear un disquete de arranque con IBM PC DOS 3.30 en ella.

2. Alguna memoria adicional:


Mira cuán grande es esta placa en comparación con un teclado moderno.

Esta placa se conecta a una ranura de bus ISA de 8 bits. En el pasado, ISA no era un bus heredado lento, era un bus local para un procesador 8088, y aún más que eso, fue demultiplexado, proporcionando diferentes pines para datos y direcciones, a diferencia del procesador en sí. El bus funcionaba a 4,17 MHz, el mismo reloj que la propia CPU.
La placa de extensión de memoria también alberga un reloj de tiempo real (sí, no había RTC en la placa base), pero el reloj requiere que se cargue un controlador en el inicio. Este controlador sirve para extraer la hora y la fecha del chip y establecer la hora / fecha del DOS en consecuencia. Aparte de eso, la placa está equipada con un puerto serie y uno paralelo, lo cual es útil. Instalé un máximo de 384 KB de memoria en la placa para tener 640 KB de memoria total en el sistema. Sí, esto es un poco excesivo para un 5150, pero con la memoria, cuanto más mejor.

3. Tarjeta de video:

Comencé a probar que el sistema era una buena tarjeta de video VGA diseñada para un bus de 16 bits, pero que funcionaba perfectamente en un bus de 8 bits. VGA es una buena tarjeta, pero no es el período correcto. Una PC IBM solicita una tarjeta CGA o Hercules (no MDA, también quiero algunos gráficos). Como este, por ejemplo:



Todas las capturas de pantalla hasta este momento se realizaron con una tarjeta VGA, y aquí está el CGA:



OK, todo está configurado y funciona, el disquete de arranque del sistema está a la mano, un monitor con una entrada compuesta está listo, ¿podemos comenzar las pruebas? No del todo. También necesitamos un teclado. IBM PC 5150 y PC XT 5160 utilizaron el mismo conector de teclado DIN5, como más tarde lo hizo IBM PC AT. Pero aunque el teclado IBM PC AT es totalmente compatible con los teclados IBM PS / 2 que están ampliamente disponibles (con un adaptador pasivo simple), un teclado IBM PC XT es diferente. No puede conectar un teclado AT a una PC XT; no funcionará. Por supuesto, puedes comprar un teclado antiguo compatible con XT en eBay, pero los vendedores piden precios locos por eso. Y aunque realmente me gusta el teclado Modelo F, no estoy listo para pagar el precio.

Afortunadamente, la solución es simple :


Pequeño PIC MC, 3 resistencias, un diodo y un condensador. Esto es todo lo que necesitas para que tu teclado PS / 2 sea compatible con XT. Y el hecho curioso es que el MC aquí puede funcionar a 20 MHz, proporcionando más potencia computacional que el 5150 al que sirve.

Mi primer encuentro compatible con PC de IBM fue un clon de PC en la oficina de mi madre. Se basó en un procesador 286. Lo usé mucho para jugar Golden Axe, Death Track, Prince of Persia. También tuve cierta experiencia con una máquina basada en 8088 en el pasado. Era un clon soviético llamado Poisk . Jugamos muchos juegos en él, y era una versión extremadamente lenta de un clon de PC de IBM, pero en mi memoria funcionó muy bien.

Pero como siempre, la memoria humana es una fuente poco confiable. El IBM 5150 original era una máquina muy lenta para juegos. Este es el tiempo que tardó en cargar Lemmings desde un disquete (mi conversor de compuesto a VGA no pudo producir color, por lo que la imagen es en blanco y negro):


Así es como se usó realmente la computadora: lo arrancaría desde un disquete del sistema, lo cambiaría por un disquete que funcionara (o compraría una segunda unidad de disquete para usar 2 disquetes a la vez), cargaría un programa. Los discos duros llegaron al público mucho más tarde, y no eran adecuados para la débil unidad de suministro de energía del 5150.

Y es muy tentador intentar integrar un 5150 en una red doméstica TCP / IP. Sin duda, no puedo hacerlo con la configuración de hardware actual: un disquete de 360 ​​KB no cabe en una pila TCP / IP con un controlador de tarjeta de red. Así que tendré que alejarme de la corrección del período una vez más:

4. Este es un adaptador de red:

imagen

Fue diseñado para usar un bus de 16 bits, pero funciona perfectamente en un bus de 8 bits. Tiene un zócalo RJ-45 para cable UTP y tiene todas las posibilidades de ser el dispositivo más rápido en todo el sistema.

++++++++++++

5. La quinta y última ranura de expansión será ocupada por un controlador de disco duro (Sí, IBM 5150 tenía solo 5 ranuras de expansión. IBM 5160 tenía 8, pero también hubo problemas ):



Este es un controlador XT-IDE de código abierto. Desearía tener una unidad MFM para encajar en esta compilación, pero son bastante difíciles de encontrar. Y desafortunadamente este controlador tenía algunos errores extraños cuando se ejecutaba en la CPU AMD 8088 original, la computadora se bloqueaba constantemente mostrando errores de paridad de memoria. Me tomó algunas semanas darme cuenta, pero la actualización a una CPU NEC V20 resolvió estos problemas por completo:



Instalé un disco duro de 2.5 pulgadas solo porque encajaba bien:



¡Los ingenieros de IBM tenían muchas expectativas para reservar la posibilidad de instalar un disco duro de 2.5 pulgadas en un 5150!

¡Y en general, la PC parece un cofre del tesoro de la vieja escuela!



Ok, arrancando desde el disco duro:


He creado un pequeño archivo por lotes que inicia la red. Podría haber puesto todos los comandos en mi autoexec.bat, pero el controlador de paquete de la tarjeta LAN ocupa bastante RAM y no siempre es necesario, así que opté por un lote separado:


Vamos a ver si funciona el acceso a internet:



y si puedo acceder a mi servidor ftp, después de todo, este era el objetivo final de poner todo esto en primer lugar:



Bueno! ¿Y qué hay dentro?



Y finalmente, solo un ejemplo más de lo lento que era un IBM 5150:


Por cierto, tenga en cuenta que definitivamente hay más de 4 colores.

PD: Después de todo, logré restaurar la placa original. Por supuesto, estaba tan seguro de que mis habilidades de soldadura están locas que ni siquiera podía imaginar que dañé la placa mientras desoldaba el bit de paridad IC. Sospeché que algo más estaba dañado por la edad y el calor. Me llevó desoldar todo el banco 0 y comprobar cada chip de memoria para finalmente darme cuenta de que había dañado la capa de metalización que conectaba las trazas del lado superior de la placa base con el lado inferior. Sí, verifiqué la continuidad de todos los rastros tan pronto como la computadora se negó a encender por primera vez, pero tuve mala suerte: verifiqué la señal de escritura de memoria que provenía del IC dañado que solté al Banco 1, pero no al Banco 0. Y estos dos rastros estaban conectados por la capa de metalización que dañé. Por lo tanto, el banco 0 no recibió señal de escritura de memoria desde el tablero y no estaba funcionando. Después de todo, tuve que soldar un cable de puente, y la placa volvió a la vida.

Source: https://habr.com/ru/post/439090/


All Articles