Mundo Viejuno

Contenido retro servido desde un 286 a 16mhz con 4mb de ram / Retro stuff served from a 286 ;)

Modding a un Atari PC-1 —

Buenas a todos! Cuanto tiempo sin actualizar el blog :)

Bien, hoy voy a comentar un tema del que llevaba ya tiempo detras de hacer, lo que es un modeo completo al modelo que fue mi primer ordenador, el Atari PC-1

El PC-1 fue el primer intento de Atari de meterse en el mundo de los PC compatibles.


Un PC-1 de fabrica corriendo el Monkey Island

Este estaba planteado para hacer frente a IBM, ofreciendo un producto mejor que su PC/XT, e incluso ofrecer una alternativa economica a su PC/AT. He aqui sus caracteristicas:

  • CPU Intel 8088 a 8 mhz
  • 512kb de ram
  • Tarjeta grafica EGA
  • Disketera de 5 1/4

    El equipo venia en una carcasa muy similar a la del Atari Mega ST4 y podia usar su mismo raton, disketeras y discos duros externos. Asi tenian pensamiento de compartir perifericos a la vez que se metian en el mercado de los compatibles PC.

    En resumen, un clon del PC/XT pero en una carcasa de diseño y muuucho mas delgada que a lo que estabamos acostumbrados en el mundo del pc, donde abundan las carcasas mucho mas grandes (algo mas que un 5 1/4 doble altura mientras que este Atari seria algo mas que un 5 1/4 simple altura).

    La desventaja de esto? Las posibilidades de expansion. Con una carcasa tan fina ya podemos imaginar que no hay posibilidad de pinchar tarjetas ISA, pero menos aun cuando vemos la placa base:


    No hay slots ISA por ningun sitio!

    Efectivamente no hay slots isa, asi que salvo ampliar la memoria y ponerle un coprocesador 8087... no hay forma de mejorar el equipo... o si?

    Modding parte 1: Inclusion de ranuras ISA

    En la parte superior izquierda vemos dos conectores de 50 pines misteriosos. Parece ser que eran unos conectores para un disco duro externo, el cual iba en una carcasa similar a la del Atari, se ponia encima de ella y contenia un disco MFM de 20mb. Esta fue la unica posibilidad de expansion 'interna' que tenia el equipo...


    Los conectores misteriosos J2 y J8, que seran?

    Pensando en como posiblemente en esos conectores estuviera, si no todo el set, al menos un subconjunto de señales del bus ISA que me permitiera conectar mas hardware al Atari me puse en contacto con Curt Vendel de AtariAge. Por suerte, Curt tenia los esquemas originales del Atari PC-1 y fue tan amable de enviarmelos. Muchas gracias Curt!


    Esquemas originales del PC-1!

    Efectivamente en esos dos conectores estaba todo el juego de señales del bus isa, con lo que, al menos en teoria, podriamos conectar tarjetas ISA estandar al PC-1 :)

    Teniendo esto en mente comence la fabricacion de un adaptador para que, ademas de poder añadir tarjetas al Atari, pudiera conservar su carcasa original. Para ello comence con un risercard de 16 bits IBM al que le hice 'adelgazar' para adaptarlo a 8 bits y que no fuera demasiado alto:


    Risercard de 16 bits...


    ... convertido en uno de 8

    Despues, se trata de adaptar el riser a los conectores J2 y J8, para ello vamos a usar unas tiras de cable flexible que soldamos a este risercard...


    Risercard personalizado!

    ... identificamos pin a pin cada una de las señales de los ISA del risercard...


    Paciencia y tiempo....

    ... y ya solo resta conectar cada uno de esos pines a cada uno de los pines de J2 y J8, con lo que en teoria estara el sistema listo... pero, que vamos a meterle al Atari?

    Una cosa estaba clara, un disco duro le hacia falta, que en su dia lo eche muchisimo de menos, y ya de paso podriamos mejorar el sonido... dicho y hecho, una controladora XT-IDE y una Sound Blaster Pro 2:


    Las dos tarjetas para el Atari :)

    Conectamos todo...


    Primera prueba de los nuevos slots ISA!

    Y bingo! Funciona perfectamente!

    Para ahorrar espacio como disco duro usamos una tarjeta Compact Flash con un adaptador a IDE. Concretamente aqui he usado una CF de 256mb, que para un equipo asi es mas que suficiente.

    Modding parte 2: Ampliacion de memoria

    Esta parte es sin duda la que ha sido mas sencilla en todo el proceso de modding. Ha consistido unicamente en poblar estos zocalos vacios con las memorias correspondientes...


    Zocalos para ampliarle la memoria

    Modding parte 3: Overclock

    He aqui una de mis grandes dudas: Como seria de overclokeable este modelo de PC?

    Tras una rapida inspeccion, podemos ver en la fotografia anterior como hay dos osciladores cerca del 8088, uno a 24mhz y otro a 14.318mhz. Sabiendo que la velocidad 'turbo' del PC-1 son 8 mhz y que la estandard son 4.77 mhz... y viendo que la frecuencia de esos osciladores es justo el tercer multiplo... pues esta claro. Un oscilador controla el bus isa y la cpu cuando esta en modo normal (el de 14mhz) y otro la cpu en modo turbo. Se trata pues de cambiar este oscilador.

    Tras pruebas con varios osciladores decido quedarme con uno de 32 mhz, que resulta en una frecuencia efectiva de 32/3 = 10.66 mhz. Valores mayores solo conseguian que el sistema se volviera inestable o ni siquiera arrancara.

    Bien, pues 2.66 mhz mas, no esta mal, pero ahora hay un problema extra, hay un chip de apoyo que se calienta en exceso, el controlador DMA 8237


    El 8237 del Atari dessoldado

    Dado que es un integrado con encapsulado plastico no disipa tan bien como uno ceramico, asi que lo intercambio por uno de estos ultimos...


    Un 8237 ceramico :)

    Y le añado un disipador hecho a medida:


    8237 ceramico con disipador

    Solo falta encontrar una cpu que funcione bien a estos 10.66 mhz, y de paso intercambiar el 8088 por su equivalente Nec, usaremos un v20hl, que permite hasta 16mhz:


    v20hl

    Una vez instalado y funcionando el sistema es completamente estable, y dado que el v20hl esta preparado para trabajar a 16mhz a 10.66 ni se calienta, no hace falta ponerle disipador.


    Overclocking completo!

    Modding parte 4: Coprocesador 8087

    Ya nos vamos quedando sin cosas que añadir al Atari PC-1, pero aun nos queda el zocalo del coprocesador matematico 8087 libre, asi que vamos a adaptarle uno.

    Como hemos aumentado la velocidad del sistema a mas de 10mhz es necesario buscar un modelo concreto de coprocesador, ya que solo uno se diseño para funcionar a 10mhz, el 8087-1


    v20hl y 8087-1 en sus zocalos

    Dado que esta diseñado para trabajar a 10mhz y aqui lo estamos llevando a 10.66mhz estamos forzandolo un poco.. De hecho se calienta bastante y con varios minutos de funcionamiento el sistema se vuelve inestable...

    ... cosa que solucionamos haciendo un nuevo disipador a medida:


    Todos los disipadores instalados!

    Una vez instalado el sistema es estable:


    v20 y 8087 funcionando ambos a 10.7 mhz

    Modding parte 5: Final

    Tras todas las modificaciones solo nos queda encajar y aislar todo...


    Todo encajado!

    Y ya pasamos a cerrar la carcasa y poner los tornillos...


    No sobresale nada! Comprobado!

    Parece increible que todo quepa ahi con lo fina que es la cpu :)

    Tras instalarlo y cambiar su monitor fosforo amarillo original por uno EGA en color asi se ven juegos como Cobra Mission...


    Cobra Mission!

    ... Catacomb Abyss 3d...


    Catacomb Abyss

    Y ya hasta me anime y me puse a instalar Windows 3.0, que en EGA alta resolucion tambien se ve muy bien :)


    Una partidita al solitario?

    Bien, y eso es todo, ahora es una autentica gozada el disfrutar de este equipo. Es mas agil, tiene mas memoria, disco duro, mejor sonido, monitor en color... un cambio bastante importante... en todo caso espero que os haya gustado todo el proceso. Un saludo!


  • Poniendo en solfa un XT Imc! —

    Gracias a scelbi8h he conseguido este PC/XT de la marca Imc, antigua marca 'propia' de Galerias Preciados, el cual tiene una historia interesante.

    Fue encontrado en un edificio que iba a ser demolido por un amigo suyo guardia civil, concretamente una cafeteria que llevaba cerrada desde 1991. Externamente el equipo esta un poco amarilleado...


    Foto original de Scelbi8h

    Pero internamente el equipo esta impoluto! Parece no haber sido usado nunca!


    Ni una mota de polvo señora!

    Asi, antes de encenderlo siquiera, fui a ver de que equipo estabamos hablando... entre las tarjetas de expansion nos encontramos una controladora de dos floppies de 720k... una controladora de dos joysticks estandard IBM y una CGA bifrecuencia con puerto paralelo:


    Controladora de FDD y de joystick...


    La tarjeta de video CGA con su puerto paralelo incluido

    Ya desde el principio de abrirlo, viendo el tamaño de las tarjetas y de la poca logica que se veia en la placa (a simple vista una clonica XT), parecia un equipo bastante moderno. Solo hay que comparar el tamaño de los componentes clasicos con los que se vieron en esta ultima etapa de los XTs:


    Comparacion entre esta CGA y una clasica... y encima la clasica no tiene ni puerto paralelo...

    Asi, me esperaba un XT potente, sobre todo despues de ver esto:


    De CPU tenemos un V20 a 8mhz, esto promete...

    Bien, tras cambiarle la disketera, que tiene algun problema con el motor, el equipo arranca y veo esto:


    Un V20 a 12Mhz!

    El monitor es color como ya esperaba, pero encima veo que el V20 a 8mhz viene overclokeado de fabrica a ni mas ni menos que a 12mhz! Un equipo interesante definitivamente :)

    Este Imc ha resultado ser un XT muy interesante, que uso le vamos a dar? IRC? Juegos de la primera o segunda etapa? Si fuera un 8088 a 4 o 8 mhz me lo plantearia, pero siendo un V20 podria mover perfectamente los juegos de la ultima etapa XT y no solo en CGA :)

    Vamos a ver que posibilidades de expansion tenemos:


    La placa base pelada completamente

    El Imc viene en una caja sobremesa de unas 2U de altura, por tanto las tarjetas ISA vienen en un risercard, dejando un total de 4 tarjetas maximo. Podria pasar del risercard, montar la placa en una sobremesa 4U o en una minitorre y asi usar las 7 ranuras ISA, pero perderia su caja original. No, mejor limitarnos a 4 tarjetas y conservar su aspecto original.


    Las 4 tarjetas elegidas!

    He decidido usar las siguentes tarjetas:

  • Controladora de discos IDE/AT ADP/50l (Mucho mas rapida que XT-IDE)
  • Su controladora de FDD original
  • Tarjeta grafica VGA/EGA/CGA/HGC/MDA Cirrus Logic
  • Sound Blaster Pro 2

    Mencion especial a la tarjeta grafica, ya que sin ella no seria posible utilizar este monitor en modos EGA:


    Multigrafica Cirrus Logic

    Esta Cirrus nos permite configurar la tarjeta para funcionar en monitores analogicos HD15 o TTL DB9 y funcionar en cualquiera de los modos que comentaba. La podemos configurar como una VGA, como una EGA, una CGA...y sobre todo, ademas nos permite especificar el tipo de monitor usado. Asi puedo configurar una hercules a funcionar en un monitor EGA, una EGA en un monitor CGA, que es justo lo que vamos a hacer.

    Dado que la EGA tiene una resolucion nativa de 640x350 y nuestro monitor solo permite un maximo de 640x200, configuramos la tarjeta en modo EGA con monitor CGA y lo tenemos hecho :)

    Por supuesto estaremos limitados a esa resolucion maxima, pero dado que el 95% del software para EGA no usa mas de 640x200 no hay problema :)

    Ensamblamos todo, ampliamos de paso la memoria de 512k de fabrica a 640k y cerramos la caja:


    Como HDD usamos una CF y la dejamos accesible a traves de la ranura de la segunda disketera :)

    Y aqui esta el sistema terminado, con EGA, SoundBlaster y la memoria ampliada al maximo:


    Challenge of the Ancient Empires a todo color en un monitor CGA!

    Y ya para rematar, un gamepad al puerto de joystick de la soundblaster y una partidita al Commander Keen 4:


  • Restauracion de un IBM PS/1 —

    Dado que en Zona de Pruebas estan de mudanzas, y ante la posibilidad de que una joya asi se pierda, he hecho un volcado del post que DistWave hizo alli, explicando paso a paso como restauro un PS/1 averiado y lo amplio a niveles que nadie diria que son posibles :)

    Restaurando un IBM PS/1:RTC/CRT/RAM/OPL3/FDD/486/RED

    Como ya comenté en el otro hilo me hice con un IBM PS/1 por un módico precio. Por desgracia el paso del tiempo, el transporte y quizás alguno de sus dueños no lo han tratado muy bien y requiere ciertas reparaciones. Empiezo por la más sencilla y común: RTC

    - Dallas DS1287 RTC

    IBM y otros fabricantes durante finales de los 80 y principios de los 90 utilizaron en sus ordenadores PC el RTC de Dallas DS1287. Es un chip RTC al que le han añadido una pila y lo han recubierto de epoxy, de manera que la pila no se puede sustituir. Aunque la vida de esta pila supera en ocasiones los 10 años, que es un tiempo de vida útil razonable para un ordenador PC, los fabricantes no contaban con que pasado ese tiempo habría un colectivo de entusiastas que los seguirían utilizando.

    La pila de este RTC también alimento a la memoria CMOS donde se almacenan los datos de configuración de la BIOS, por lo que una vez gastada el equipo no solo es incapaz de conservar la hora y la fecha, tampoco puede retener su configuración. A efectos prácticos, el IBM PS/1 2011 muestra estos síntomas:
    - Los errores 161 y 163 en cada reinicio, con la petición de pulsar F1 para arrancar.
    - Errores de lectura en disketes: aunque el programa configur.exe, equivalente al SETUP de la BIOS, muestra la disketera como de 1,44 MB la realidad es que no funciona bien.
    - Perdida de la fecha / hora

    La solución sencilla a priori es sustituir este RTC por otro nuevo, pero a parte de no ser muy utilizado a día de hoy tenemos la limitación de que no se pueden reutilizar los RTC de otras máquinas o comprar uno NOS (New Old Stock) porque tendrán el mismo problema: la pila está gastada. Por suerte, podemos modificar un DS1287 con la pila gastada para alimentarlo externamente con 3 voltios, y así lo he hecho yo (siguiendo el mismo método explicado en otras páginas y foros)



    Mirando el integrado DS1287 vemos que le faltan patas. En realidad las patas están, pero en lugar de salir del encapsulado están dobladas "hacia arriba". Así que sólo tenemos que excavar para buscarlas. He utilizado una lima pequeña hasta encontrar el metal y luego un cutter para terminar de quitar epoxy sin dañar nada.



    Ahora viene la parte más delicada, cortar las dos patas para desconectarlas de la pila interna, pero dejando suficiente metal como para poder soldar en él. He pegado encima del integrado un portapilas extraído de una placa base rota y lo he soldado respetando la polaridad.



    Un poco de cinta aislante para sujetar el cable y proteger los contactos y ya está listo para instalar.



    Misión completada! Sólo tenemos que ajustar la fecha y hora, ejecutar las aplicaciones configur.exe y customiz.exe para ajustar los parámetros de la BIOS y comprobar que los datos se retienen tras reiniciar.



    - Reajuste del monitor CRT

    Una de las incógnitas acerca del equipo era si el monitor era VGA en blanco y negro como el de mi primer PS/1, o color. Esperaba que fuera este segundo modelo ya que es más común pero como el vendedor de eBay no facilitaba información alguna no quedaba más remedio que esperar a recibirlo y comprobarlo por mi mismo. Sin embargo me encontré con esto:




    Imagen a color, pero completamente torcida! Además los pixeles presentaban los colores desalineados...



    Hasta el momento no me las había visto con un monitor, siempre les he tenido respeto por los altos voltajes a los que funcionan y no he tenido necesidad de reparar uno, con sustituirlo me ha solucionado la papeleta. Pero en este caso, el monitor contiene la fuente de alimentación de todo el ordenador, por lo que no es prescindible. Así que con mucha precaución y los consejos del forero genocho me puse manos a la obra.



    Al principio intenté ajustar los anillos que hay al final del tubo, ya que no estaban bien sellados con silicona y sospechaba que se habrían movido durante el transporte. Además tenian una marca transversal, marcando un ajuste de fábrica como referencia, y alguno de estos anillos estaba desplazado. Todo esto con el monitor apagado y empujando los aros con un rotulador de plástico.


    Sin embargo, los cambios que se producían eran mínimos por lo que empecé a darme cuenta de que se trataba de algo más "importante".



    Echando un ojo un poco más adentro, vi que el bobinado se había desplazado y el armazón de plástico no estaba en contacto con la silicona cuyo objetivo era fijarlo a la base. Pero no se encontraba suelto, porque no volvía a su sitio... tuve que soltar la abrazadera para devolverlo a su posición original.

    En vcforums también sugirieron que esto podía ser la causa (sin siquiera verlo). Y acertaron





    -Memoria RAM

    El PS/1 2011 se vendió con varias configuraciones. Variaba el monitor a color o en blanco y negro, la presencia o ausencia de disco duro y el tamaño de la memoria RAM, pudiendo tener 512 KB o 1 MB.

    Estos 512 KB básicos se encontraban integrados en la placa base, mientras que los 512 KB opcionales se añadían mediante una tarjeta especial que se introducía en el frontal del equipo.



    Por desgracia el PS/1 que adquirí no incluye esta expansión y 512 KB de RAM se quedan muy cortos. Ya tenía un nuevo reto

    Examinando a simple vista dicha tarjeta, se aprecia que lo único que contiene son 4 integrados 41256, muy comunes de la época. Con la ayuda de un multímetro no fue muy difícil descubrir la correspondencia de los pines de los módulos de memoria RAM instalados en la placa base con los pines del conector de expansión. Una de las cosas que me sorprendió fue que había una linea de direccionamiento adicional (A9) en el conector, por lo que en teoría se podría instalar una ampliación de 2 MB adicionales en lugar de la ampliación de 512 KB standard. Así que en lugar de utilizar chips 414256 para obtener 512KB, usé unos 414400 para aprovechar esa línea extra. Los chips los extraje de dos módulos SIMM de 1 MB sin paridad:



    Tras diseñar la placa de doble cara y construirla (menuda paliza, odio las placas de 2 caras) este fue el resultado:



    Sólo quedaba instalarla y comprobar su funcionamiento. El sistema arrancó y el programa de SETUP mostró los cambios:



    Buenas y malas noticias: el sistema reconoce la expansión, pero no hace uso de la línea extra, seguramente por falta de soporte en la BIOS o algún otro detalle que desconozco (en el conector de expansión había 2 pines que no descubrí su función). Así que de las 2 MB sólo utiliza 512 KB además de los integrados en la placa base. Ha merecido la pena de todas formas



    ACTUALIZACIÓN:
    No conforme con el resultado, seguía dándole vueltas al tema... encontré que IBM sí fabricó un módulo de 2MB, con referencia 92F9935. Así que el misterio tenía que estar en esos dos pines cuyo cometido desconocía.

    Multímetro en mano, descarté el primero porque leía valores cambiantes. Además estaba situado entre los pines de control /WR, /RAS, etc indicando que podría ser alguna línea adicional. El otro en cambio, estaba situado cerca de uno de los extremos del conector, el multímetro lee 5V constantes y no esta conectado directamente a la línea +VCC de 5 voltios (la resistencia a tierra es mayor). Tras conectar ese pin a tierra...



    512 + 2048 = 2560 KB.



    -Sonido OPL3 (Adlib)

    Una de las mayores frustraciones con mi primer PS/1 a principios de los 90 fue la imposibilidad de añadirle una tarjeta de sonido. Teóricamente era posible y comercialmente había dos posibilidades:

    * Adapter Card Unit (ACU): El PS/1 se diseño con el objetivo de ser compacto, dificultando sus posibilidades de expansión. Pese a tener una arquitectura ISA, la CPU no dispone de slots de expansión ISA. En caso de querer utilizar tarjetas ISA, IBM vendía una expansión llamada Adapter Card Unit, y venía a ser una caja del mismo tamaño de la CPU que se acoplaba en la parte superior de ésta, con un riser y 3 slots ISA. No permitía usar tarjetas full length, pero cabían las más normales. Aquí una foto de un PS/1 con el ACU y la otra expansión, la disketera de 5 1/4:



    En su día pregunté por el ACU en todas las tiendas de informática que conocía de mi ciudad, pero ninguna sabían qué era. Hasta la fecha no he visto ningu ACU que no sea el de la foto de arriba y mucho menos en venta.

    * IBM PS/1 Audio card

    Otro fantasma. Muchos juegos de Sierra permiten seleccionar como tarjeta de sonido la "IBM PS/1 Audio Card", pero en mi primer PS/1 no sonaba nada si la escogía. Recuerdo que durante una época los PS/1 traían de regalo la "Disney Sound Source", que es un básicamente un DAC de puerto paralelo con una silueta de Mickey Mouse, así que supuse que la "PS/1 Audio Card" se refería a la "Disney Sound Source". Pero no.

    En este hilo del foro vogons hablan sobre la auténtica "PS/1 Audio Card" y hay fotos de ella. Por lo visto es similar al sistema de sonido de los Tandy y PCjr, pero incompatible con ellas. Y al igual que el ACU, imposible de adquirir a día de hoy... por lo que aún era peor solución.

    Si quería mejorar el apartado sonoro del PS/1 sólo me quedaba una posibilidad... construir algo a medida.

    * Mi solución



    La placa base del PS/1 tiene dos conectores en su parte central. El marron con aspecto de slot PCI o MCA es en realidad donde se engancha el riser del ACU. Es decir, ese conector tiene todas las señales del bus ISA... pero son 112 pines sin documentación alguna y la labor de identificarlos a base de prueba y error puede ser eterna. Al lado de ese slot, hay un header de 34 pines de color gris, idéntico a otro donde está enganchada la disketera. Siempre había sospechado que la expansión con la disketera de 5 1/4 iría enganchada ahí, pero tras conseguir el manual del PS/1 resulta que ambas disketeras se enchufan al mismo header, con un cable especial. Entonces... ¿para qué sirve?

    La respuesta la hallé en el hilo de vogons... es el conector para la "PS/1 Audio Card". Con un multímetro y aplicando la lógica conseguí identificar los 8 bits del bus de datos, los 10 bits de menor peso del bus de direcciones, las líneas de control /IOR, /IOW y las líneas de alimentación de +5v, +12v y -12v. No fuí capaz de encontrar líneas de interrupción o de DMA, por lo que no podría conectar una Sound Blaster... pero era suficiente para enchufar al bus una Adlib, por ejemplo. El siguiente problema era que no tenía una Adlib

    Por suerte, conservaba unos cuantos integrados de una Sound Blaster Pro que dejó de funcionar hace tiempo. Entre ellos estaba la pareja YMF262 / YAC512, que son el sintetizador FM OPL3 y el DAC para el mismo. Como no estaba dispuesto a pagar lo que se pide hoy en día por una Adlib, decidí construir una tarjeta de sonido a partir de estos chips. El OPL3 sólo necesita un reloj de entrada de 14.313 MHz, el DAC y un par de operacionales para producir sonido. Encontré un diseño de PCB con todo ésto en el proyecto midibox FM y lo tomé como base. Sólo tenía que añadirle la lógica de selección para que el PC pudiera acceder al OPL3 en el puerto 0x388. Y este fué el resultado:





    Tras un par de pequeñas correcciones en el diseño empezó a sonar como debía. Todos los juegos con soporte Adlib que probé sonaban a la perfección. El OPL3 es compatible con el OPL2, el sintetizador de la Adlib, y añade nuevas características como el sonido Stereo. Por desgracia no es posible aprovecharlo, ya que al ubicar el OPL3 en el puerto 0x388 (el mismo que utiliza la Adlib) todo el software accede al OPL3 como si fuera un OPL2. Si lo configuro en otro puerto, el software no puede detectar el OPL3 y no suena. De todas formas me quedo más que satisfecho, la mejora respecto al sonido PC Speaker es sustancial.

    La guinda fue encontrar un pin en el header que iba al conector del monitor... el multímetro leía 0v, por lo que podría ser una entrada. Conecté la salida del OPL3 a ese pin y BINGO! Ahora suena por el altavoz integrado del monitor, se puede regular con el control de volumen del mismo y mediante la salida de auriculares se pueden conectar unos altavoces externos, obteniendo una mezcla del sonido del OPL3 y del PC Speaker (nunca había sonado tan bien el Golden Axe)


    Y por fin... EL VIDEO! (recomendable verlo a 720p)





    -Disquetera

    IBM utilizó en sus gamas PS/1 y PS/2 unas disqueteras de 3 1/2 no standard. Algunos modelos llevan conector de 34 pines, otros de 40 pines y alguno incluso un conector de placa PCB para conectar la faja. Lo que más llama la atención es que no tienen conector de alimentación, esta es proporcionada a través del propio cable de datos.

    En varios sitios había leído que el interfaz de estas disqueteras era similar al standard pero se había invertido la lógica de algunas señales. Como no se me había muerto ninguna unidad, no había investigado mucho el tema... pero recordé que el compañero airsoft había logrado sustituir la disquetera defectuosa de su PS/2 por una standard, aunque con algunos problemas. Hoy ha muerto una de mis disqueteras, así que ya era hora de investigar un poco

    En el hilo que abrió airsoft el forero joemorgan apuntaba a un hilo de los siempre útiles foros de vintage computer donde se narraba cómo conectar una disquetera standard a un PS/2 model 30. La modificación es muy sencilla, se usa un cable de disketera standard y hay que cortar 3 hilos de la faja de datos para sacar la alimentación, el resto del cable se deja tal cual. Esto no cuadraba con lo que había leído sobre las señales invertidas, así que lo primero fue documentarme sobre dichas señales:


    Se me olvidó desactivar el corrector ortográfico de Openoffice

    No había tales señales invertidas, todas coinciden excepto los pines 3, 4 y 6. Del pin 3 obtenemos los +5v, del 6 los +12v, la masa la podemos tomar de cualquier pin impar (salvo el 3) y el pin 4 selecciona el tipo de disquetera.

    Así que tras un rato cortando y soldando, construí el cable, pero no funcionaba bien. El equipo detectaba la unidad como 5 1/4 1,2 MB y no era capaz de leer correctamente ningún disco (los de HD daban errores aleatorios, los de DD ni siquiera permitía listar el directorio). El problema estaba en el pin 4 del cable. Si lo dejamos sin conectar o a +5v, el equipo detecta la unidad como 5 1/4 1,2 MB. Si lo conectamos a masa, la detecta como 3 1/2 1,44 MB. Tras esta última modificación todos los discos se leen sin problemas.

    Puestos a investigar, conecté una segunda unidad de 3 1/2 al mismo cable y para mi sorpresa, la detectó sin problema alguno. Ambas funcionan como si fueran originales.

    Una foto del cable con las dos disqueteras:


    Y por último el equipo con las dos unidades instaladas (el embellecedor frontal no encaja, una lástima)





    -Microprocesador

    El PS/1 2011 utiliza como procesador principal un 80286 a 10 MHz, y por desgracia no es suficiente para mover ciertos juegos. Me propuse como objetivo darle un empujón a la frecuencia de funcionamiento, pero encontré un handicap: el procesador viene soldado a la placa base:



    Así que lo primero era quitarlo de ahí y poner en su lugar un zócalo que permitiese cambiar el procesador con facilidad. Así quedó:



    Una vez comprobado que el sistema seguía funcionando, necesitaba un procesador de mayor velocidad. En eBay conseguí 80286 a 16 Mhz por 3€.



    Tras instalarlo el sistema seguia funcionando a 10 Mhz ya que el generador de reloj de la placa seguía intacto. La placa base tiene dos osciladores de cuarzo, uno a 48 MHz y otro a 40 MHz. A simple vista, el de 40 MHz parece el encargado de hacer funcionar al procesador, ya que su velocidad es un mútiplo de 4. Algo no cuadra, ya que la señal de reloj que necesita el 80286 debe de ser el doble de frecuencia de la que va a funcionar finalmente, es decir, debería ser de 20 MHz. Mirando las pistas de la placa, el oscilador no va directamente al procesador sino que primero "pasa" por un gran circuito integrado de IBM que debe ser el corazón del chipset. Seguramente se utilizará la señal para generar algúna otra dependiente de la frecuencia principal y de paso se divirá por dos para adecuarla al procesador.
    Como la única forma de corroborar esta hipótesis era sustituir el oscilador de 40 Mhz por otro diferente y observar los cambios, me puse manos a la obra. Primero lo sustituí por uno de 24 Mhz y el ordenador arrancó a 6 Mhz. Exactamente el comportamiento esperado. Luego instalé otro de 14.318 y entonces arrancó a 3.5 MHz (posiblemente el PC 286 más lento de la historia ). Sin embargo a esta velocidad el teclado fallaba perdiendo alguna pulsación, lo cual hacía sospechar de que el controlador de teclado 8042 utilizaba como frecuencia de reloj otra derivada de la frecuencia del procesador (o quizás la misma).

    El objetivo era hacer el ordenador más rápido, pero de momento sólo había probado con cristales inferiores a 40 Mhz ya que no tenía ninguno superior a mano. Haciendo una regla de tres, necesitaba estos cristales osciladores para hacer pruebas y ver si el sistema era estable a mayor velocidad:
    12 MHz -> 48 MHz
    16 MHz -> 64 MHz

    Tras buscar, encontré uno de 66.666 MHz. Con esta frecuencia obtendría una velocidad de reloj de 16.666 MHz, un poco superior a la soportada por el nuevo procesador... pero nunca viene mal un poco de overclocking



    Una vez instalado era el momento de hacer los tests. Mi mayor temor era que un aumento tan grande de velocidad (nada más y nada menos que un 60%) pudiera ser un problema para la memoria RAM o incluso para el chipset de la placa. Pero no fue así :D Aquí van unos benchmarks:








    Pese a ser totalmente estable y notarse una barbaridad el aumento del 60% en la velocidad de funcionamiento, esta modificación ha añadido un pequeño problema: Durante el arranque, algunas veces aparece el error 301 de teclado:



    Seguramente se deberá al aumento de velocidad en el controlador de teclado 8042, quizás algún test de la bios dependiente de la velocidad obtiene un resultado no esperado y lo da como erróneo. Por suerte el teclado funciona perfectamente y todo se soluciona pulsando F1.



    -Microprocesador 486SLC2

    Hace unos meses encontré información acerca de unas actualizaciones de procesador para los IBM PS/2 que traen de serie un procesador 80286. Estas ampliaciones son una placa que integra un chip 486SLC2, que en realidad es un procesador muy similar al 386SX pero con una memoria caché mucho mayor, que soporta las instrucciones de los 486 y además funciona a 50 MHz internamente (y a 25 MHz externamente). Por suerte pude hacerme con una de ellas (Viele Danke, Christian!) y tiene esta pinta:




    Unos benchmarks una vez instalada:





    Como el bus sigue siendo de 16 bits y el resto de componentes del equipo (memoria, disco duro, gráfica, etc) siguen funcionando a la velocidad que fueron diseñados, el aumento de rendimiento no llega ni siquiera al de un buen 386 DX... pero es notable. Juegos como Golden Axe o Body Blows van tremendamente fluidos y además ahora puedo ejecutar multitud de programas que requerían 386 o memoria EMS.

    No obstante, al cargar el controlador EMM386.EXE el rendimiento cae estrepitosamente, quedandose al nivel del procesador 286 a 10 Mhz original.




    -Tarjeta de red

    Ya empiezo a quedarme sin ideas, lo último que se me ocurrió fue conectar el PS/1 al IRC, y para ello necesitaba una tarjeta de red. Encontré una 3Com 509B por ahí tirada y me propuse conectarla... el problema es que no hay slots ISA. Sin embargo, ya había estudiado el conector de la Audio Card y contiene las señales básicas para acceder a los puertos de la tarjeta de expansión, y buscando más a fondo encontré la línea de IRQ7 (estas tarjetas de red necesitan una interrupción). Así que manos a la obra, hice un riser para adaptar el conector Audio Card a un slot pseudo ISA de 8 bits




    Faltan las líneas de direccionamiento superiores, las de memoria, todas las de DMA, todas las de IRQ salvo la 7 y unas cuantas de control más. Por suerte es suficiente para hacer funcionar la tarjeta de red.

    Así queda instalado junto a la tarjeta de red:




    Y la parte trasera de la CPU. El hueco de la Audio Card coincide a la perfección con los conectores de la tarjeta de red.




    Probando el navegador Arachne:




    Próximamente, otro capítulo (si se me ocurre algo más que hacerle)

    Debian Sarge en un 386! —

    Recientemente he conseguido en ZonaDePruebas un coprocesador 80387, y tenia ganas de montar algo con un 386...

    En un principio pense en hacer unos benchs de la FPU, o poner alguna version antigua de autocad, pero llevaba tiempo queriendo montar un linux moderno en un sistema tan antiguo como este, y ver si realmente el kernel puede modificarse tanto como para hacer que una distro que requiere gran cantidad de memoria pudiera funcionar en un sistema con solo 8mb de ram.


    El 386dx-40 con su 387dx-40 :)

    Partiendo de una instalacion limpia de Debian Sarge, la cual llevada a su minima expresion, necesita de 32 megas de ram, tal y como podemos ver aqui; vamos a compilar un nuevo kernel 2.4.27 (Sarge es de la epoca de la migracion a 2.6, con lo que tiene para elegir kernels base de la 2.4 y de la 2.6, usaremos el 2.4, ya que es el que tiene todos los drivers para ISA, todo eso desaparecio en la rama 2.6), dejando unicamente lo necesario...


    386!

    Desactivamos todas las optimizaciones para Pentium, Pentium 2... y dejamos que unicamente genere codigo i386...


    387!

    Una de las ventajas de tener montado un 387 es que no necesitamos cargar la emulacion 387, que nos ocuparia 70kb extra...


    Controladora IDE, MFM o RLL

    ... y unicamente dejamos los drivers necesarios, en este caso la controladora IDE estandard.

    Una vez terminado resulta un initrd de poco mas de 2 megas y un kernel de poco mas de 500kb, perfecto para un sistema con 8mb de ram...

    Desgraciadamente, 8 megas son insuficientes para cargar todo con lo que Sarge viene de fabrica, el maild, el crond... asi que en la ultima parte del arranque, cuando va a cargar todo esto, da un error y nos lanza a una consola de recuperacion. No pasa nada, creamos nosotros un mini init que pone todo en solfa para que podamos trabajar y movernos agusto por el fs :)

    De verdad, me ha sorprendido lo bien que va, y hasta el vi, que esta en su version 'vim' (la mas pesada y que ocupa unos 8 megas, y tiene activo el syntax highlight), funciona muy decentemente :)


    Mundo Viejuno v2 —

    Hace poco mas de una semana, el antiguo servidor de Mundo Viejuno, que habia estado funcionando 24/7 desde finales de 2007 dijo adios. La fuente AT que lo alimentaba y que ya tenia unos 20 años dejo de funcionar.

    Tras tanto tiempo sin actualizar el contenido del servidor, creo que era el momento adecuado para darle mas vidilla a esto.

    Desde el principio tenia claro que queria que el contenido siguiera siendo servido por algun ordenador antiguo, pero el 286 a 12Mhz que usaba anteriormente ya parecia bastante insuficiente: en cuanto entraban unas pocas personas al servidor el rendimiento caia de forma espectacular...

    Estuve planteandome el usar un 386 con linux o bsd, pero creo que con eso perderia un poco el espiritu del sitio... Asi, tenia que seguir siendo un 286 con DOS, pero tenia que sacarle mas chicha.

    Comence montando un 286 a 16 mhz con 4mb de ram con 0 estados de espera, de lo mas rapido que un 286 puede ofrecer...


    Mundo Viejuno v2 al completo!!

    El sistema consta de:
  • Placa 286
  • Una VGA estandard de 256kb (mas que nada por poder usar un KVM generico, la grafica no se utiliza para nada...)
  • Ethernet 10mbps con chip Realtek
  • Multi I/O estandard
  • CF de 256mb como disco duro IDE

    Un sistema realmente muy comun, salvo por la cantidad de memoria y la velocidad de la misma...


    Todos los bancos SIMM llenos al maximo

    Asi, el sistema funcionaba mucho mas rapido que anteriormente, pero lo que seguia matandole eran los accesos a disco. Tras probar varias combinaciones de EMS, XMS y cache de disco, use una solucion radical. Todo el HTTPD y sus documentos funcionarian bajo un disco ram. Teniendo 4MB podia crear un disco de 3MB, cargar el DOS en alta, junto con el driver de la tarjeta de red y la pila TCP/IP, dejando la memoria baja libre casi al 100% y servirlo todo desde la ram.


    El 80286 de Mundo Viejuno :)

    Asi se consigue el rendimiento que se puede ver, incluso habiendo varias peticiones a la vez. No obstante, para no sobrecargar el servidor en exceso, todos los elementos pesados, como las imagenes, se sirven desde ViejuNET


    Mundo Viejuno funcionando en el 'datacenter'

    Y ahi esta, funcionando. Esperemos que por mucho, mucho tiempo :)


  • Blog en marcha!! —

    El blog ya funciona! Partiendo de un wordpress modificado y un el tema que teneis en pantalla esto ya esta listo para empezar :)


    ¡Hola mundo! —

    Bienvenidos a esta nueva epoca en Mundo Viejuno, en breve mas novedades por aqui ;)