Ampliación interna a 16K para ZX81

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5269
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 4 veces
Gracias recibidas: 26 veces
Contactar:

Ampliación interna a 16K para ZX81

Mensajepor mcleod_ideafix » 06 Ago 2013, 22:53

Aprovechando el arreglo de un ZX81, su dueño pidió que se lo ampliara a 16K. Las ampliaciones externas (RAMPack) tienen el consabido problema de las malas conexiones y correspondientes cuelgues. Además, el RAMPack oficial de Sinclair no admite HRG a menos que se le haga un apaño al propio RAMPack.

La ampliación a 16K que he hecho aquí es interna. Cabe perfectamente dentro de la carcasas del ZX81, no necesita componentes difíciles o caros, es compatible con HRG, y se puede desconectar desde fuera por cualquier expansión que haga uso de la línea RAMCS (tal como el ZXPand). Es basicamente la que se describe aquí:
http://www.zx81.de/english/32k-rame.htm

Salvo que no he hecho todo el mod, sino que me he quedado en los 16K. Es decir, el esquema que aparece en esa página se ha simplificado hasta éste otro:
Imagen

Por lo que sólo necesitaremos: una memoria RAM tipo 62256 (SRAM 32K x 8 bits), un zócalo de 28 pines, y una resistencia de 10K (aunque luego vereis que yo no he usado precisamente esa)
Imagen

Esta placa monta todos sus chips en zócalos. Eso facilita un poco la cosa, en el sentido de que sólo tengo que desoldar zócalos, no chips.
Imagen

Esta es la zona en la que se va a trabajar. Se van a retirar los dos chips de RAM, y se desoldarán los dos zócalos. En rigor, sólo haría falta desoldar el zócalo de la derecha (el que coincide en huella con el zócalo de 28 pines) pero he preferido quitar ambos para trabajar un poco más cómodo con el chip grandote que pondremos, y también para aprovechar la señal de GND que hay en el zócalo retirado.
Imagen

Al desoldar chips de un ZX81, y en general al trastear con el soldador mientras la placa está con la cara de componentes expuesta, tenemos que tener cuidado de las salpicaduras de estaño que se produzcan, ya que la placa por esta cara no tiene "solder mask", es decir, la capa de barniz que protege las pistas. Es muy fácil que un pad tenga un poco más de estaño de la cuenta y toque alguna pista de las que discurren entre pad y pad. Mucho cuidado con esto porque cuando pongamos el zócalo de 28 pines encima de esos pads, dejaremos de ver si hemos cometido algún error, y encontrarlo después con el zócalo puesto es muuuuy doloroso.
Imagen

Una vez cercionados de que toda la superficie está limpia de restos de estaño, ponemos el zócalo y lo soldamos. Atención a la muesca, que coincida con la de la huella.
Imagen

Según el esquema, si queremos que nuestro ZX81 expandido sea compatible con HRG (gráficos de alta resolución) hay que soldar una resistencia desde el pin 27 al 28. Puede usarse una resistencia común, como la de la primera foto, cuidando de aislar las patitas metálicas de la misma. Yo aquí por pura comodidad he preferido soldar una pequeña resistencia SMD 0805 de 10K, que cabe justo entre los dos pads, quedando la mar de discreta.
Imagen

Ahora pasamos a preparar el chip 62256. Este chip es de 32K, pero sólo usaremos 16K (el que quiera hacer el mod completo y aprovechar la memoria completa no tiene más que seguir los pasos de la página web enlazada al principio). La preparación consiste sencillamente en levantar un poco los pines 1,2,22,23, y 26 como se muestra en la foto.
Imagen

La idea es que cuando pongamos el chip en su zócalo, estos pines que hemos doblado se queden fuera y no hagan contacto con el zócalo (ni con ninguna otra cosa)
Imagen

Antes de seguir, es buen momento para poner un puente soldando entre sí los dos contactos del puente marcado como LK2. Si usaste una resistencia normal de 10K te habrá sobrado alambre de las patitas de esa resistencia, así que puedes usar eso.
Imagen

Esta es quizás la parte más delicada: las cinco patillas que se han quedado al aire hay que irlas conectando a puntos estratégicos de la placa del ZX81. Para este tipo de cosas siempre uso hilo de wire-wrapping. Es muy fino, pero no tanto como para que se rompa con mirarlo, y es monofiliar (solo tiene un pelo de alambre, no varios, con lo que no hay que retorcer ni estañar el cable al final para no dejarse pelillos de cobre sueltos), y muy resistente. Para facilitar la cosa es conveniente estañar previamente la superficie de los pines que vamos a soldar.

Tanto en la foto como en el esquema del principio del artículo se muestra a dónde va soldado cada pin. El 1 (marcado como A14) y el 22 se conectarán a masa (GND). Para ello he usado dos puntos que hay en el zócalo que quité antes. El pin 2,23 y 26 van conectados a ciertas líneas de dirección del Z80. El sitio más cercano para acceder a estas líneas son los cátodos de los diodos D3,D1 y D5 (respectivamente).

En la foto, esos diodos son los que se ven a la izquierda, de arriba a abajo, son los "barrilitos" de color naranja. El de más arriba es D1, y de ahí para abajo. El cátodo es el terminal del diodo más cercano al zócalo de 28 pines, que además está marcado con un anillo ancho de color negro.
Imagen

Repasa todas las soldaduras, cuidado con las salpicaduras al soldar en los cátodos de los diodos. Si todo tiene buena pinta, coge la placa tal cual y enchúfala para ver cómo arranca en el monitor. Si la ampliación ha ido bien, lo que se observa nada más encenderlo es que se queda la pantalla en blanco por unos 2-3 segundos, y a continuación aparecer el cursor K. El por qué tarda ahora más en aparecer el cursor se debe a que el ZX81 tiene que testear 16 veces más memoria de lo que necesitaba antes, y eso lleva un tiempo.

Con el teclado conectado es hora de comprobar que realmente tenemos 16K. Para ello tecleamos:
Imagen

Para un 16K, el resultado debe ser 32768. Si da otro valor, es casi seguro de que alguno de los cables que van a los diodos no está bien puesto, o el cable que va desde el pin 1 a GND.
Imagen

Hora de probar las nuevas capacidades de un ZX81 ampliado a 16K con soporte de HRG. Vamos a cargar...
Imagen

... la demo SLC (versión de 16K)
Imagen
Imagen

O podemos echar una partidita al Manic Miner para ZX81...
Imagen

O alucinar con la demo No Limits... (¿¿¿ eso puede hacerlo un ZX81 ???)
Imagen
Imagen
Imagen



O incluso ver un anuncio publicitario en video en la propia pantalla del ZX81:
http://www.mobypicture.com/user/zxproje ... w/15759924
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Davidgs
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 584
Registrado: 28 Abr 2011, 00:17

Re: Ampliación interna a 16K para ZX81

Mensajepor Davidgs » 07 Ago 2013, 09:36

Pues me viene de fábula, tengo mi ZX81 el cual se vé perfecto gracias al Mod que me hizo Javu, y ahora me faltaba Ram, (es que con 1K :boxeo: ) creo que hasta yo podré hacerlo :---)
¡Gracias por el tutorial
Que en mi tumba escriban..."Game Over"
http://www.va-de-retro.com

Avatar de Usuario
JoJo
Amiga 1200
Amiga 1200
Mensajes: 1041
Registrado: 03 Feb 2008, 22:45
Sistema Favorito: PC
primer_sistema: PC
consola_favorita: Nintendo SNES
Primera consola: (Otro)
Gracias dadas: 9 veces
Gracias recibidas: 29 veces

Re: Ampliación interna a 16K para ZX81

Mensajepor JoJo » 07 Ago 2013, 09:56

Fantastico mod :)
PCP, el microcomputador de proposito general de 32 bits.
http://www.vieju.net

Avatar de Usuario
UFO
Atari 1040 STf
Atari 1040 STf
Mensajes: 784
Registrado: 19 Feb 2010, 15:16
Sistema Favorito: PC
primer_sistema: MSX
consola_favorita: Sega Genesis/Megadrive
Primera consola: Nintendo GameBoy
Ubicación: San Fernando (Cádiz)
Gracias dadas: 17 veces
Gracias recibidas: 1 vez
Contactar:

Re: Ampliación interna a 16K para ZX81

Mensajepor UFO » 07 Ago 2013, 11:53

¡Cuánto se aprende contigo, mcleod!

Avatar de Usuario
flopping
Amiga 1200
Amiga 1200
Mensajes: 1141
Registrado: 20 Jul 2010, 01:26
Ubicación: Valencia
Contactar:

Re: Ampliación interna a 16K para ZX81

Mensajepor flopping » 07 Ago 2013, 19:42

¿Se podría ampliar fácilmente a 64k internos?, se que poderse, se puede, pero quizá lleve algo mas de electrónica que ese mod tan sencillo de 16 o 32k, ¿no?, o ¿Existe una forma fácil de ampliarlo a mas de 32k?, quizá tampoco tenga mucho sentido, pues poca cosa abra de mas de 16 k en ZX81, pero quedaría curioso.
Expulsado por violación reiterada de las normas.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5269
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 4 veces
Gracias recibidas: 26 veces
Contactar:

Re: Ampliación interna a 16K para ZX81

Mensajepor mcleod_ideafix » 07 Ago 2013, 19:47

flopping escribió:¿Se podría ampliar fácilmente a 64k internos?, se que poderse, se puede, pero quizá lleve algo mas de electrónica que ese mod tan sencillo de 16 o 32k, ¿no?, o ¿Existe una forma fácil de ampliarlo a mas de 32k?, quizá tampoco tenga mucho sentido, pues poca cosa abra de mas de 16 k en ZX81, pero quedaría curioso.


A lo más que puedes ampliar un ZX81 es a 56K ya que los otros 8K hasta 64K son la ROM. Obviamente lleva más electrónica, pero no mucho más. Basicamente tienes que decodificar cuándo se está accediendo a una dirección entre 8K y 64K y entonces activar el chip select de esa memoria RAM, pero si el acceso es para leer una instrucción (M1 = 0) entonces tienes que hacer que A15 y A14 en la memoria sean 0, para que lo que se acceda sean siempre los primeros 16K, donde debe estar la pantalla.

Para poder usar el espacio entre 8K y 16K, hay que deshabilitar la ROM, porque si no, se sigue accediendo a ella. Eso significa que el decodificador cuando detecte un acceso entre 8K y 16K, debe llevar la línea ROMCS a nivel alto. Si no, debe dejarla en alta impedancia. Si añades aún más electrónica, en forma de un registro de 1 bit accesible por un puerto de E/S, puedes hacer que ROMCS esté a 1 todo el rato, deshabilitando permanentemente a la ROM y permitiendo de esa forma llenar incluso esos 8K con RAM. Pero claro, ya sería algo que no usaría ningún juego o utilidad presentes. En todo caso, te podría servir, no sé, para poner tu propio SO en el ZX81.

Practicamente todo el software que conozco usa no más de 16K. Alguna cosa he visto con 24K, y según dicen los que entienden del ZX81, si quieres hacer "networking serio" con el ZX81, necesitas 48K de RAM. No sé a qué se referirán con eso... Ahí lo dejo ;)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Taller”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado