como supervitaminar un Vic20

Si sabes cómo hacer algo, prepara un tutorial y ayuda a tus compañeros

como supervitaminar un Vic20

Notapor wilco2009 » 28/01/2014 22:30

Imagen

Pues eso, como reza el título voy a contaros cómo he aumentado la capacidad de mi Vic20 hasta el límite máximo posible, 40Kb de RAM.

Lo primero comentaros que he seguido este esquema publicado en la página "Ruud's Commodore site".
Esta es una página que os recomiendo encarecidamente a los amantes de commodore, ya que hay un montón de proyectos hardware para C64 y Vic20.

También quiero dar las gracias a mccleod por su estupendo post sobre la ampliación del vic20 a 16Kb que me ha permitido conocer un poco más la memoria del Vic20.

Para empezar hay que decidirse si se quiere hacer una ampliación interna o externa. A mí me costó decidirme ya que, aunque las ventajas de hacerla interna son muchas, me daba palo modificar mi vic20, violando su arquitectura original.

Por un lado la ampliación interna hace la ampliación más portable, no teniendo que llevar a todas partes una incómoda mochila, además de que así se queda disponible el bus para conectar cartuchos o cualquier otro interface y no es necesario fabricarse un conector edge para el circuito.

Por el lado contrario una ampliación interna te obliga a modificar la carcasa para sacar los microinterruptores que permiten anular la ampliación, además de que hay que meterle mano al vic20 con el soldador y buscar un sistema de anclaje interior para la placa.

Al final me he decidido por la ampliación interna y aquí paso a exponeros los resultados.

Los microinterruptores son necesarios ya que la ampliación de memoria se pega de leches con algunos cartuchos :( , por lo que es necesario poder desactivarla entera o parcialmente en estos casos.

El Vic20 viene de fábrica con 5Kb de RAM, de los cuales 3583 bytes están disponibles para el usuario, ya que el resto estaba usado para la pantalla y variables del sistema.
La memoria del Vic20 es un poco enrevesada, de hecho pienso que el diseñador del VIC-20 iba cargado de sustancias alucinógenas cuando la diseñó. -507 :P
Resulta que, no acabo de entender bien con que fin, el Vic-20 divide la memoria en huecos de 8Kb numerados como BLK0....BLK7. En total los 64Kb que puede direccionar el 6502, por lo que no se gana mucho dividiendo en bloques la memoria. Al menos no en mi opinión.

Cuando tenemos un Vic20 nuevo de "Trinqui", tenemos vacíos los bloques BLK1, BLK2, BLK3 y BLK5, por lo que sobre estos bloques podemos añadir más RAM.
Por otro lado, se ve que los amigos de Commodore, volvieron a tomarse un tripi a la hora de seleccionar la RAM a poner en su cacharro, porque en lugar de poner 4Kb u 8Kb, dijeron ni pa ti ni pa mi, y pusieron 5 flamantes Kb de RAM en el BLK0, y después de eso se fueron a dormir la mona, descojonandose de todos los que después iban a preguntarse porqué cojones han puestos precisamente 5Kb de RAM en un Vic20. :D
Las malas lenguas dicen (y esto no es cachondeo) que es que tenían chips de sobra de memoria RAM estática de 1Kbx4bits, por lo que debieron hacer una división de lo que les sobraba por los equipos que querían fabricar y así de inteligentemente debieron de actuar para repartir la memoria. -507 -507
Debido a que pusieron 5 y no 8 Kb, dejaron disponibles 3Kb adicionales más en BLK0, por lo que al final tenemos posibilidad de aumentar en 8*4=32Kb (BLK1..BLK5) + 3Kb en BLK0 35KB, que unidos a los 5Kb que vienen de fábrica se quedan en 40Kb.

Pues bien, como los amigos de Commodore aun no estaban contentos con la cosa, dijeron ¿porqué no la liamos un poco más y hacemos que el CBM basic no pueda acceder a BLK5?.
De esa forma podemos tener hasta 40Kb pero lo máximo a lo que podemos aspirar a que aparezca como disponible en la pantalla inicial es 28259bytes o 27,5Kb.

Imagen

Bueno, pues una vez contado todo este rollo comenzamos con el tema. Según el esquema de Ruud necesitamos los siguientes componentes:

- 1 placa de prototipos.
- 1 chip de RAM estática de 8K x 8 bits (6264)
- 1 chip de RAM estática de 32K x 8 bits (62256)
- 8 resistencias de 10K (o una red de 8 resistencias)
- 1 chip de 2 puertas AND de 4 entradas (74LS21)
- 1 bloque de 8 microinterruptores
- Algo de cable.

Imagen

Si observáis el esquema, el bus de direcciones del vic20 solo dispone de 13 líneas, por lo que en principio sólo podemos direccionar 8Kb que corresponde con el tamaño de bloque. El resto lo seleccionamos con las señales BLK1, BLK2, BLK3 y BLK5.

10 /BLK 1 Memory block 1 Chip select for block 1; active-low, if address on bus is within $2000-$3FFF.
11 /BLK 2 Memory block 2 Chip select for block 2; active-low, if address on bus is within $4000-$5FFF.
12 /BLK 3 Memory block 3 Chip select for block 3; active-low, if address on bus is within $6000-$7FFF.
13 /BLK 5 Memory block 5 Chip select for block 5; active-low, if address on bus is within $A000-$BFFF.

El bloque 0 (BLK0) no está presente en el bus, pero aun así pueden aprovecharse los 3Kb que nos faltan por rellenar mediante 3 señales extra (RAM1, RAM2, y RAM3) que permiten acceder a cada bloque de 1Kb de los que tenemos libres en el bloque 0.
14 /RAM 1 RAM 1 Chip select for RAM (memory area $0400 - $07FF)
15 /RAM 2 RAM 2 Chip select for RAM (memory area $0800 - $0BFF)
16 /RAM 3 RAM 3 Chip select for RAM (memory area $0C00 - $0FFF)

Como veis es de locos. :o Con lo sencillo que hubiera sido dar acceso al direccionamiento completo. ;?

Pues bien, como os he dicho antes usamos dos chips de RAM. El de 32Kb lo usaremos para rellenar los bloques BLK1, 2, 3 y 5 y el de 8Kb lo usaremos para rellenar los 3Kb que nos faltan del bloque 0.

Adicionalmente necesitaremos un chip de puertas AND para gestionar las señales de control de acceso a memoria y un bloque de 8 microswitches para permitirnos desactivar o activar cada bloque de memoria por razones de compatibilidad.

Empezaremos soldando zócalos y demás componentes.

Imagen

Seguiremos soldando la maraña de cables correspondiente, siguiendo el esquema y comprobando con el polímetro todo el cableado para asegurarnos que está OK.

Imagen

Metemos los chips en sus correspondientes zócalos:

Imagen

Y pasamos a abrir el Vic20.

Imagen

Como podéis ver la caja está medio vacía, por lo que tenemos sitio de sobra para colocar la placa.

El acceso al bus también es bastante sencillo, por lo que podremos soldar sin problemas.

Imagen

Este podría se un buen sitio para colocar la placa, por lo que después de interponer un trozo de material aislante para evitar problemas, pasamos a fijarlo con adhesivo "Muntack".

Imagen

Imagen

Para llevar las señales hasta el bus necesitaremos un cable plano de 44 hilos. Como no tengo ninguno de tantos hilos he utilizado dos trozos.

Imagen

Soldamos todos los cables......

Imagen

Y antes de cerrar la caja pasamos a probar, dejando los 8 switches en on.

Imagen

Eureka!!!. :D Como era de esperar conociendo mi gran pericia con el soldador -507 tenemos 28159 bytes libres disponibles para el basic osea 32Kb - 1,5Kb que se reserva el sistema, ya que BLK no puede verlo el basic ya que no es un bloque contiguo de memoria, aunque sí cualquier programa en código máquina.

NOTA: jejeje, es lo que tiene hacer las cosas en diferido, os he ahorrado ni se sabe la de repasos a la placa -507 -507

Para comprobar que también funciona BLK5 echaremos mano de algunos POKES y PEEKS a las direcciones de memoria donde debería de estar la RAM.

Imagen

Disculpad el cambio de método de visualización pero es que mi PC lo tenía ocupado mi hijo con sus deberes. jejejeje -507

Como podéis comprobar hago un poke en dos posiciones de memoria correspondientes a BLK5 y al hacer un PEEK a sus correspondientes posiciones de memoria leo los mismos valores, por lo que también funciona dicho bloque. :D

Llegados a este punto hay una cosa que debo cambiar en el circuito, y es que he soldado los microswitches a la placa y debería haberlos sacado fuera para dejarlos accesibles, por lo que los desueldo y con la ayuda de otro cable plano de 16 hilos los saco fuera de la caja.

Imagen

Cerramos la caja y a disfrutar de la nueva memoria de nuestro queridisimo ordenador. :D
Los retrocacharros de Wilco
Djurkwhad: ¿Como te llamaba tu mamaita?
Roger: Un Error. Pero mis amigos me llaman Roger. Roger Wilco.
Avatar de Usuario
wilco2009
Veterano
Veterano
 
Mensajes: 591
Registrado: 07/01/2013 15:47

Re: como supervitaminar un Vic20

Notapor javidoom » 29/01/2014 15:29

Moola!

Pedazo de tuto para el que necesite ampliárselo! :)

Ahora... hehe... no mucho haré yo con el VIC20 :lol: No tengo creo que ningún juego... y programar para él... como que no...

Nos vemos!!
Avatar de Usuario
javidoom
Leyenda
Moderador | Leyenda
 
Mensajes: 2980
Registrado: 20/10/2010 22:51

Re: como supervitaminar un Vic20

Notapor mike_01 » 29/01/2014 15:30

Gracias por el tutorial Wilco!

Yo tengo el cartucho de ampliación de 16K, pero con esta plaquita veo que aún podría tener más memoria y probar algún software que la necesite.

Me han hecho gracia los "misterios" de Commodore :D.

Saludos!
Avatar de Usuario
mike_01
Recién llegado
Recién llegado
 
Mensajes: 35
Registrado: 25/05/2013 17:10
Ubicación: Valencia

Re: como supervitaminar un Vic20

Notapor wilco2009 » 29/01/2014 19:14

javidoom escribió:Moola!

Pedazo de tuto para el que necesite ampliárselo! :)

Ahora... hehe... no mucho haré yo con el VIC20 :lol: No tengo creo que ningún juego... y programar para él... como que no...

Nos vemos!!

Creo que estás en un error compañero, jejeje. Tengo en mi SD2IEC unos juegos de Vic20 que no se de donde los conseguí, pero diría que vienen de la compilación para la SD2IEC que me pasaste tú.

O quizás me los bajé yo de otro lado???,. En fin no estoy seguro.

mike_01 escribió:Gracias por el tutorial Wilco!

Yo tengo el cartucho de ampliación de 16K, pero con esta plaquita veo que aún podría tener más memoria y probar algún software que la necesite.

Me han hecho gracia los "misterios" de Commodore :D.

Saludos!


Según tengo entendido, casi todo el software funciona con 16Kb, pero por si hay alguno que no, aquí esta esto. ;)
Los retrocacharros de Wilco
Djurkwhad: ¿Como te llamaba tu mamaita?
Roger: Un Error. Pero mis amigos me llaman Roger. Roger Wilco.
Avatar de Usuario
wilco2009
Veterano
Veterano
 
Mensajes: 591
Registrado: 07/01/2013 15:47


Volver a Tutoriales

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron