como supervitaminar un Vic20

Cursos, reparaciones, fichas, tutoriales, etc.

Moderador: Fundadores

Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

como supervitaminar un Vic20

Mensaje por wilco2009 »

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ñó. :)) :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. :)) :))
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 BLK 0, 1, 2, 3 y el de 8Kb para BLK5.

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 :)) 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 :)) :))

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 :))

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
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9974
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 124 times
Contactar:

Re: como supervitaminar un Vic20

Mensaje por flopping »

Estupendo tutorial, creo que tengo un Víc-20 por algún sitio, luego te lo acerco y me lo amplias, JAJAJAAJA.....

Ahora a disfrutarlo campeón.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: como supervitaminar un Vic20

Mensaje por Sinclair »

+1 ;)
Imagen
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Re: como supervitaminar un Vic20

Mensaje por wilco2009 »

flopping escribió:Estupendo tutorial, creo que tengo un Víc-20 por algún sitio, luego te lo acerco y me lo amplias, JAJAJAAJA.....

Ahora a disfrutarlo campeón.
Ayyyy, que siempre tengo que estar sacándote las castañas del fuego. :)) :))

A ver, trae por aquí ese Vic20 a ver que se puede hacer. Ahora que llevártelo ya no sé si te lo llevarás. :))
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9974
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 124 times
Contactar:

Re: como supervitaminar un Vic20

Mensaje por flopping »

Si, te lo llevo y me lo conviertes en un C128, te pago unas cervezas, jejeejejee.....viendo las cosas que haces, no creo que te sea muy complicado, :D :D :D
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
tacha Uruguay
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3167
Registrado: 04 Abr 2013, 20:22
Ubicación: Montevideo, Uruguay
Has thanked: 52 times
Been thanked: 35 times
Contactar:

Re: como supervitaminar un Vic20

Mensaje por tacha »

wilco2009, tio, que me dejas perplejo al ver tus hilos... :-*
66 6C 6F 70 70 69 6E 67 20 6D 61 73 63 61 20 50 30 6C 6C 34 / 6D 61 73 20 63 6F 74 69 6C 6C 61 20 73 65 72 E1 73 20 74 75 20 49 7A 61 72 6F 20 3A 70
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: como supervitaminar un Vic20

Mensaje por Bubu »

Tremendísimo, wilco2009, eso es cacharreo en estado puro y lo demás es rollo pollo, AJJAjajaja. Y el VIC20 es un ordeñador que nunca he visto y desconozco bastante. Lo único que sé es que es el precursor del Commodore C64. Y por lo que veo la resolución gráfica es bajísima, ¿nor? Mencannnnnta.
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Re: como supervitaminar un Vic20

Mensaje por wilco2009 »

Pues no se puede decir que tenga alta resolución, pero 176x184 a 8 colores/pixel para haber salido en 1981 no lo veo nada mal.
Tenia poca memoria y unos caracteres del tamaño de un poster eso si, pero he visto algunos juegos, entre ellos el jetpac y se ven pero que muy bien.
Ademas tenia un chip de sonido de 3 canales de musica y uno de ruido con 128 notas cada uno.
El teclado me encanta. Identico al del C64. Y soportaba unidades de 5.25" como las del C64. :D
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: como supervitaminar un Vic20

Mensaje por Bubu »

¡¡Qué guay, leñe!! Cómo me gustan los cacharros con pocos recursos, y cuantos menos más me gustan. Acabo de ver un vidrio del JetPac que comentas:



y veo varias cosas:

- efestivamente el sonido tié buena pinta
- ¡¡el attribute clash del Spectrum!! ¿Cómo es eso, seguro lo de 8 colores por píxel?
- veo que lo primero que hace el del vidrio es aumentar la memoria RAM, ¿nor? ¿a 8 KB?
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Re: como supervitaminar un Vic20

Mensaje por wilco2009 »

[BBvideo 560,340][/BBvideo]

¿Como le llamas a esto?. Fíjate en Mario, en la zona de la mano tienes, cyan, marron y naranja.

Y mira esto otro.

[BBvideo 560,340][/BBvideo]

Lo del Jetpac será probablemente un port semiautomático.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Responder

Volver a “Cursos y Tutoriales”