¿Cómo comenzó el monopolio, o un pequeño alboroto con la PC 5150 de IBM?



Para inglés presione One

Todo amante del hierro viejo tiene un fetiche. A menudo en el este (y parte del oeste) de Europa, este es el ZX Spectrum, una computadora maravillosa que, sin embargo, no dejó un legado significativo. Otra cosa es la PC 5150 de IBM. Esta computadora también es amada por muchos trabajadores basura, y muchos la veneran por su influencia en la industria. Por cómo expulsó a todos los competidores del mercado. Pero la historia de esta maravillosa computadora es conocida por todos los escolares, pero resulta que no mucha gente sabe lo que hay dentro de él.

(¡Hay muchas fotos debajo del corte e incluso el video está!)

Por lo tanto, es sorprendente para muchos que no haya 640 KB de RAM en la PC 5150 de IBM. 640KiB en ese momento era realmente una gran cantidad de RAM, y se podían colocar hasta 64 KiB como máximo en la placa base de la primera revisión de la computadora. Sí, solo 64 KiB, como el Commodore 64 casero, por ejemplo, o un poco más que la versión más popular del mencionado Spectrum. Por supuesto, había tarjetas de expansión de memoria, pero aparecieron más tarde, y la segunda revisión de la placa base ya contenía 64 KiB de RAM en la versión básica (una versión muy defectuosa, que creo que no estaba a la venta, pero más sobre eso más adelante), y el máximo ¡podría colocar hasta 256 KiB! Pero, al comprar la primera versión básica, recibió solo 16 KiB. Imagine una PC IBM con 16 KiB de RAM ... DOS no se puede ejecutar en ella.

... Sí, no era necesario, para esta versión: ni siquiera tenía un disco. Y el fabricante no ofreció un disco duro para la PC 5150 de IBM, incluso como una opción. ¿Cómo podría usarse una computadora así? El hecho es que en la ROM de PC de IBM, el intérprete BASIC fue "cosido", que se cargó en ausencia de otra opción de arranque. Es decir, todo funcionó exactamente igual que en las computadoras de 8 bits de esa época: recibió una computadora que, después de encenderla, cargó un intérprete de lenguaje BASIC desde la ROM y tenía de 16 a 64 KiB RAM. ¿Cómo cargar programas sin DOS en él? Usando una grabadora. Sí, la PC 5150 de IBM tenía un puerto para conectar una grabadora de cinta, y un BASIC en ROM podía grabar y cargar programas en / desde cintas. ¡Todo está como en tu Spectrum! Y la computadora misma, en general, era de 8 bits. No, el procesador era completamente de 16 bits, incluso con un bus de direcciones de 20 bits, y se sacó por completo (por cierto, es por eso que el primer megabyte de memoria fue tan importante para el bus ISA todo el tiempo de su existencia, solo 20 fueron asignados a él parte de la dirección, y ella no "vio" nada fuera del primer megabyte). Sin embargo, el bus de datos del procesador se cortó a 8 bits, precisamente para usar el periférico de 8 bits. Y, aunque 20 bits de la dirección permitieron direccionar hasta 1 MiB de RAM, todo el intercambio de información en el IBM PC 5150 se realizó en un bus con un ancho de 8 bits. Como en el Spectrum. Es aún más simple, porque muchas computadoras de esos tiempos ya usaban chips personalizados, como ULA en el ZX-Spectrum o BBC micro, y Commodore adquirió la tecnología MOS para sus necesidades, que producía algunos chips exclusivamente para Commodore, por lo que los clones de estas computadoras eran pesados No es fácil. IBM ensambló su 5150 exclusivamente a partir de componentes ampliamente disponibles, por lo que, en teoría, cualquiera podría ensamblar su clon 5150 de rodillas, excepto, por supuesto, el firmware del BIOS, cuyo código, aunque estaba abierto en las páginas del manual 5150, estaba protegido por derechos de autor .

La exhibición fue aún más divertida. Al principio, la PC 5150 de IBM se ofrecía solo con un adaptador de video monocromático MDA, incapaz de mostrar gráficos. Solo texto monocromo, solo hardcore. Pero el texto se mostró de muy alta calidad. Dicho adaptador requería un monitor especial y era perfecto para usuarios comerciales (con una unidad y expansión de memoria para cargar DOS). Pero un poco más tarde, apareció un adaptador de color CGA en las opciones, que tenía una salida compuesta para conectarse a un televisor, además de una salida digital RGBi para un monitor. Dicha tarjeta mostraba texto mucho peor, ya que tenía una resolución mucho más baja y era poco adecuada para los negocios, incluso con un monitor apropiado. Pero para uso doméstico, fue mucho mejor: el monitor no era necesario, era posible conectarlo a cualquier televisor, y 4 colores en el programa (había dos paletas diferentes, una era más visible que la otra) en el televisor se convirtió mágicamente en un número mayor si el desarrollador sabía cómo usarlo correctamente salida compuesta Y muchos pudieron. En general, CGA no era una tarjeta tan aburrida, ya que muchas personas recuerdan haber jugado en un monitor VGA en modo de emulación CGA. La televisión estaba mejor.

Ya tenía una IBM PC 5150 de este tipo durante bastante tiempo, pero mis manos no la alcanzaron por una simple razón: de alguna manera era problemática. Cuando lo recibí, no se encenderá. Rápidamente encontré un condensador en corto y lo mordí (estaba en la línea de -12 V y no lo necesitaba de todos modos), pero definitivamente había algo muy mal con la memoria de esta computadora.

Aquí deberíamos hacer una pequeña digresión. El hecho es que no hubo configuración de BIOS en el IBM 5150. Al cargar, el BIOS leyó la posición de 2 juegos de microinterruptores en la placa, SW1 y SW2, y a partir de ellos determinó la configuración del hardware: la presencia y la cantidad de unidades, el tipo de adaptador de video, la presencia de un coprocesador matemático y la configuración de la memoria. La configuración de la memoria se estableció de la siguiente manera: 2 interruptores en el primer bloque le dijeron al BIOS cuál de los 4 bancos de memoria directamente en la placa estaban llenos, y los primeros 5 interruptores del bloque 2 le dijeron al BIOS la cantidad total de memoria en el sistema, es decir, la cantidad de memoria en la placa base y las tarjetas de expansión.


Los bloques azul claro SW1 y SW2 son visibles en el tablero

Cada banco constaba de 9 chips (8 bits + bit de paridad) y almacenaba 16 KiB en la primera revisión del tablero y 64 KiB en los siguientes. Aquí es donde comienza el primer problema. Debido a un error en el BIOS, si la placa está configurada para usar no todos los bancos de memoria, es decir, de 1 a 3, entonces el BIOS considera que todos los bancos tienen 16 KiB, incluso en revisiones posteriores, donde el tamaño del banco es de 64 KiB. Por lo tanto, si tiene 3 bancos de 64 KiB en su placa, la computadora "verá" solo 48 KiB de memoria, en lugar de 192. Hay otro error en el BIOS que mostró errores de memoria inexistentes en las placas de revisión tardía si no se instalaron todos los bancos. Son estos dos errores los que me hacen pensar que las computadoras que admiten 256 KiB a bordo siempre se vendieron completamente equipadas con memoria incorporada, porque de lo contrario el usuario habría encontrado errores al encender y la imposibilidad de usar toda la memoria instalada (y era muy costoso).

Entonces, tenía una PC 5150 de IBM con una placa de revisión tardía y una tarjeta de memoria adicional de 256 KiB. Sin embargo, cuando se encendió, generó un error de memoria 0800 201 y detuvo la POST con la inscripción PARITY CHECK 1.


Una búsqueda rápida en Google mostró que tales errores a menudo son causados ​​por interruptores instalados incorrectamente en la placa. Comencé los experimentos. Para empezar, quité la tarjeta de memoria adicional y reorganicé los interruptores en consecuencia. Esto no ayudó. "Sí", pensé: "La cosa está en la memoria interna". Y decidí eliminar toda la memoria que se puede eliminar. Solo queda el banco 0, está soldado en el tablero y no puede ser reemplazado. ¡Y el error se fue! La computadora arrancó en BASIC e informó un poco menos de 12 KiB de memoria.


Mi primer pensamiento fue: “¡Espera, pero tengo 64 KiB! ¿BASIC está comiendo tanto? ¡No puede ser! Por supuesto, el lector atento adivinó que este (e) efecto es una consecuencia del error No. 1 en el BIOS. Pero en ese momento aún no lo sabía.

En general, después de un largo alboroto, me topé con un sitio completamente maravilloso , que desde entonces ha sido la biblia de PC de IBM para mí, y luego me ayudó más de una vez. Fue allí donde descubrí que mi placa solo ve 16 KB si solo está instalado 1 banco de memoria, y que el error 0800 201 significa que el chip responsable del bit de paridad en el banco 0 está defectuoso y el error desapareció cuando se eliminaron otros bancos precisamente porque el BIOS Solo vi los primeros 16 KiB en este caso, y el error fue mayor. Desafortunadamente, el banco 0 está soldado al tablero. Para mi pesar, después de sacar este chip e instalar un bloque en su lugar, la placa dejó de encenderse por completo. A primera vista, no vi ningún daño por la soldadura, pero como soldeé el microcircuito con un secador de pelo, tratando de calentar toda la placa, y no solo el lugar de la soldadura, sospeché que algún otro microcircuito de memoria podría estropearse, y ahora el lugar donde se ubicaron los primeros 16 KiB, porque, en caso de errores en los primeros 16 KiB, la computadora no muestra signos de vida . Y la ROM podría ir mal. O algo mas. En general, era necesario entender, pero no había tiempo. Y pospuse esta computadora hasta tiempos mejores.

Hace mucho tiempo, me encontré con las extensiones de The Ben Heck Show en el libro ZX Spectrum ULA: Cómo diseñar una microcomputadora . Como siempre quise recolectar un clon Spectrum para mí, y aquí prometieron una compatibilidad del 100% con el ULA original en polvo suelto ampliamente disponible, me resultó muy interesante. Al final, compré un libro y, después de leerlo, decidí comprar una pizarra, divorciada por el autor. Sé que esto no es deporte, pero quería tener un Spectrum que funcionara primero, para luego poder personalizarlo, y comprar una placa de fábrica moderna ya preparada acelera mucho el proceso y cuesta mucho. Sin embargo, me gustó tanto el proceso de ensamblaje de la placa que comencé a buscar algo más para ensamblar.

Y la encontré .



Sí, esta es, en la medida de lo posible, una copia exacta de la placa 5150 original, pero solo esta es una placa nueva y moderna. Muy, muy alta calidad. De las diferencias con el original, solo vi otro caso del generador de retraso (según tengo entendido, se usó para las señales de regeneración DRAM):


a la izquierda en el caso grande está el generador de retardo original, a la derecha en DIP-8 es un moderno

y cableado de condensadores cerámicos: en la placa original, como en el clon, todas las plataformas para condensadores son de 3 pines. El hecho es que los electrolitos polares en la placa original (así como en el clon) son de tres pines. El promedio más, y ambos en los bordes: la misma conclusión del menos. Es decir, aunque el condensador es polar, se puede instalar en la placa a ambos lados. Por lo tanto, para electrolitos en el tablero original (y en el clon), el contacto promedio siempre es positivo, y ambos en los bordes son negativos. Para la cerámica, esto no es así. Como las cerámicas no son polares, no necesitan tal protección de un tonto colector, y los condensadores tienen los dos contactos habituales. Todavía hay 3 hoyos en el tablero, pero ahora el promedio es negativo, como uno de sus vecinos, y el otro es positivo. En el clon, la configuración de los agujeros para cerámica es la misma que para electrolitos: más en el medio. Por lo tanto, los contactos de los condensadores cerámicos en el clon están demasiado cerca uno del otro, lo que interfiere ligeramente con el ensamblaje. Aquí es donde terminan las diferencias que veo. Lo más interesante es que el kit incluye todos los chips necesarios para el ensamblaje, incluido el chip con el firmware del BIOS compatible con PC de IBM. Algunos de ellos ahora son bastante difíciles de encontrar, y aún necesita poder flashear un chip BIOS limpio, porque el pinout JEDEC no se usó en el IBM 5150. Puede hacer un adaptador , pero esto no es estéticamente agradable. No todos los microcircuitos en el kit son nuevos, algunos tienen rastros de soldadura apenas perceptibles, pero todos los casos están en excelentes condiciones y, en general, todo parece un producto de muy alta calidad. Contras: el precio. Por el precio de un juego, puedes comprar 2-3 tableros usados ​​originales en ibee. Pero esto no me detuvo: tenía el tablero original usado, no me ayudó mucho. Sí, y la alegría de ensamblar el Spectrum aún no ha pasado, y allí hice todo lo que compré por separado de la placa (bueno, ya tenía el 80 por ciento, ya que era 74HC diferente, y tengo suficientes clones de procesador Z80 en el almacenamiento). En general, después de un par de noches muertas, la placa no se distinguía del original (sí, aunque el BIOS tenía un clon de código abierto con la placa, pero instalé los chips originales de IBM:



Soldar una placa de tan alta calidad es un placer, aunque quiero restaurar la original con el tiempo, pero esta lo hará por primera vez (todo el mundo sabe que no hay nada más permanente que soluciones temporales, ¿verdad?). Entonces, después de ensamblar la placa e instalarla en el estuche, necesitaremos:

1. controlador de disquete:



El IBM 5150 original solo puede leer y escribir en disquetes de doble densidad. 360 KB de datos caben en un disquete de 5,25 pulgadas, 720 KB en el de 3,5 pulgadas. Mi computadora tiene una unidad de 5,25 pulgadas. Para escribir disquetes, lo conecté a una computadora más moderna (486) y grabé un disquete del sistema con PC-DOS 3.30, varios archivadores (calculados para agregar HDD posterior, o su emulación flash), un controlador para una tarjeta de red y varios juegos.

2. un poco más de memoria:


Califique el tamaño de esta placa de circuito integrado ultraalta en comparación con el teclado.

Esta placa se inserta en la ranura del bus ISA, que en ese momento no era un bus obsoleto del freno, sino más bien una extensión del bus local del procesador 8088, ya que este procesador, aunque era de 16 bits, tenía un bus de datos truncado de 8 bits, además multiplexado con el bus de direcciones. La dirección y los datos llegaron al bus ISA por separado, después del demultiplexor. Y el bus funcionaba a una frecuencia de procesador de 4,17 MHz.
Además, esta placa tiene un reloj en tiempo real (sí, no había ninguno en la placa base), sin embargo, necesitan un controlador que extraiga el tiempo de la placa y lo instale en DOS al momento del arranque, y hay una serie y una en paralelo puerto He instalado la memoria aquí para fallar: 384 KiB, para tener el máximo posible de 640 KiB. Esto, por supuesto, es exagerado para el 5150, pero el bolsillo de suministros no tira.

3. Adaptador de video:

Primero, probé una computadora con un adaptador VGA de funcionamiento conocido diseñado para un bus de 16 bits, pero trabajando en un bus de 8 bits. Pero, ¿cuál es el VGA para el IBM 5150? VGA es aproximadamente 386, bueno, tal vez el 286 tardío. También necesita CGA o Hércules (no considero MDA, porque quiero gráficos). Por ejemplo, esto:



Todas las capturas de pantalla y videos hasta ahora, con un adaptador VGA. Pero con CGA:



Entonces, todo está conectado, todo funciona, se crea el disquete del sistema, hay un monitor con una entrada compuesta, ¿puedo comenzar las pruebas? En realidad no Necesito otro teclado. La PC 5150 de IBM y la PC / XT 5160 usaban el mismo conector DIN5 que la PC AT 5170 de IBM, cuyos teclados son totalmente compatibles con el estándar PS / 2 (siempre que se reemplace el conector), que está ampliamente disponible en la actualidad, pero se usan otras señales en las 5150 y 5160. Es decir, si conecta el teclado AT o PS / 2 al 5150, no funcionará. Puedes comprar teclados para 5150 y 5160 en Ibei, pero los piden como el 5150 completo sin teclado. Y no importa cuánto me guste el Modelo F, no estoy listo para pagar tanto por el teclado.

Afortunadamente, hay una salida :


Un pequeño PIC, 3 resistencias, un diodo y un condensador, para tener coraje: todo lo que necesita para convertir su PS / 2 en XT. Ah, y el programador, sí. Curiosamente, la CPU de 8 bits en este microcontrolador puede funcionar a una frecuencia de 20 MHz. Entonces el "adaptador" será más potente que el procesador más central 8088 instalado en 5150.

La primera computadora compatible con PC de IBM que apareció en mi vida fue una especie de clon basado en un procesador 286 de mi madre en el trabajo. Allí me quedé atrapado en Golden Axe, Death Track y Prince. Sin embargo, también había experiencia en el clon 8088: mucho más tarde, apareció un amigo Search , por lo que también pasamos mucho tiempo jugando varios juegos (estudiamos programación, si eso podría llamarse nuestro oficio en BASIC, estamos en Spectrum), y en mi la memoria conserva recuerdos de cómo jugamos sobre el mismo conjunto de juegos en su Búsqueda, es decir, en un clon de PC y, bastante frenando. ¡Y se jugó divertido!

Sin embargo, como en el caso de la Duma en 386, mi memoria me falló. O, más bien, antes de los requisitos para la velocidad de los juegos que tenía mucho más bajo. La PC original de IBM era una computadora muy pausada. Este es el tiempo que lleva cargar el juego Lemmings (la señal compuesta al convertidor VGA no pudo extraer el color de la señal CGA, por lo que la imagen es en blanco y negro):


En general, así fue exactamente el uso de la computadora: arrancó desde un disquete del sistema, insertó uno que funcionaba (sin embargo, a menudo se compraba una segunda unidad para trabajar para no "distorsionar" los disquetes todo el tiempo) y cargaba el programa. Los discos duros aparecieron más tarde, y no fue tan fácil reducir el personal del IBM 5150: la fuente de alimentación no fue diseñada para esto.

Tengo muchas ganas de jugar con la red 5150. Naturalmente, esto no funcionará en esta configuración, un disquete de 360 ​​KB no puede caber en el controlador de red y la pila TCP / IP. Por lo tanto, tienes que romper la tradición. Continuamos completando la computadora:

4. En realidad, la tarjeta de red:

imagen

La placa para el bus de 16 bits, sin embargo, funciona perfectamente en el bus de 8 bits. Tiene un conector para par trenzado de 10Mbps y corre el riesgo de ser el dispositivo más rápido del sistema.

5. La quinta y última ranura de expansión estará ocupada por el controlador del disco duro (Sí, solo hay 5 ranuras en 5150. Ya había 8 en 5160 (IBM PC / XT), aunque había un matiz ):



Este es el XT-IDE de código abierto, ya que los discos MFM en funcionamiento ya son una rareza hoy en día. Desafortunadamente, este controlador funcionó muy mal en el procesador AMD 8088 nativo, y no entendí esto inmediatamente, pero solo después de restaurar la placa base original (ver P.S.). Durante el funcionamiento, la computadora se bloquea constantemente, lo que genera un error de paridad de memoria. Reemplazar el procesador con el NEC V20 resolvió completamente el problema,



pero solo logré entender esto después de algunas semanas de experimentos. Atornillé el formato Winchester a 2,5 pulgadas, para no utilizar adaptadores de granja colectiva:



En general, ¡es bueno que los ingenieros que diseñaron la carcasa 5150 hayan brindado la opción de instalar unidades de 2,5 pulgadas!

Pero en general, ¡el cofre con cuentos de hadas parece muy antiguo!



entonces, arrancando desde el disco duro:


Para iniciar la red, decidí escribir un pequeño archivo bat que carga el controlador de paquete de la placa de red y dhcp.exe del paquete mTCP. No metí todo esto en autoexec.bat, ya que ocupa mucha memoria y no siempre es necesario. Y si es necesario, ejecute el archivo por lotes por un corto tiempo:


necesita verificar si Internet funciona:



bueno, mi ftp, para lo cual todo dependía:



veamos qué hay allí:



bueno, por último, otro ejemplo de lo lento que era el PC 5150 de IBM:


Tenga en cuenta que definitivamente hay más de 4 colores.

PD: Al final, restauré la placa original. Naturalmente, al estar seguro de las habilidades locas en la soldadura, no podría asumir seriamente que dañé el tablero al evaporar el chip del bit de paridad. Sospeché que algún otro chip había salido mal. Después de haber bebido todo el banco cero, revisé cuidadosamente cada chip: todos estaban en orden. Varias veces sonaron todas las pistas, también resultaron estar en orden. Fue solo por casualidad que descubrí que había dañado la metalización de las vías responsables de registrar la señal del bit de paridad del banco 0. Sucedió que, mientras tocaba los contactos, verificaba la conexión de la señal de grabación con el microcircuito vecino que pertenece al primer banco. Y hubo contacto con ella. Por lo tanto, no noté el daño. Y no hubo contacto con el resto del Banco 0, ya que una pista en la capa superior conducía a él. En general, tuve que soldar el cableado,para no soldar el bloque, pero luego la placa volvió a la vida.

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


All Articles