Commodore manía

Otros sistemas de Commodore => Commodore VIC-20 => Mensaje iniciado por: Papalapa en Agosto 30, 2019, 13:54:41

Título: Cartuchos ampliación memoria
Publicado por: Papalapa en Agosto 30, 2019, 13:54:41
Esto de la memoria en el VIC-20 creo que es más complicado de lo que parecía o yo no lo he acabado de entender...

En los ordenadores "normales" cuando amplías memoria los programas que antes no corrían por falta de memoria ya corren (hasta aquí normal) pero los que antes corrían con menos memoria obviamente siguen corriendo. Si he entendido bien lo que he leído por ahí, en el VIC-20 hay programas para el VIC pelado y para amplicaciones de 3K, 8K y 16K respectivamente. También he leído que un programa escrito para +3K por ejemplo no corre con una ampliación de 16K. ¿Es esto cierto?

Si es así, ¿por qué las ampliaciones oficiales (VIC-1111, VIC-1110...) no llevan switches selectores para configurar una memoria u otra como las de otros fabricantes? ¿Si compro una de 16K me quedo sin el software para +3K y +8K?

Resumiendo, ¿qué cartucho de memoria me recomendaís para el VIC-20 y que abarque la mayoría de software posible? (la de McLeod_Ideafix no eh, que esto de poner un IC encima de otro no lo veo claro..)
Título: Re:Cartuchos ampliación memoria
Publicado por: mjj en Agosto 30, 2019, 17:43:07
Aquí tienes un resumen de la organización de la memoria con las distintas expansiones y sin expandir:

 [ Invalid Attachment ]

La incompatibilidad entre la expansión de 3K y la de 8K/16K es que la memoria de vídeo y el inicio del BASIC se reorganizan para que el BASIC siempre disponga de la mayor cantidad de memoria, que además DEBE ser contigua.

Si te fijas en el VIC-20 sin expandir, el BASIC empieza en $1000 y la memoria de vídeo en $1E00. La expansión de 3K se coloca en $0400, así que el BASIC se mueve a $0400 y la memoria de vídeo sigue donde estaba, en $1E00. Sin embargo, las expansiones de 8K y 16K se colocan a partir del bloque 1 ($2000) de modo que, para que el BASIC sea contiguo, es necesario mover la RAM de vídeo a $1000, el BASIC empezaría en $1200 y de ahí surgen las incompatibilidades.

En su día también pedí consejo sobre expansiones y por aquí me recomendaron dos cartuchos: el "Final Expansion 3" y el "Penutimate Cartridge". Al final acabé comprándome el FE3. Es una expansión RAM configurable por software que además incluye un SD2IEC. Creo que es lo más completo que hay para el VIC-20.
Título: Re:Cartuchos ampliación memoria
Publicado por: javierglez en Agosto 30, 2019, 18:42:19
http://www.amibay.com/showthread.php?93265-VIC20-FULL-RAM-expansion-cartridge-37K-RAM-with-RESET! (http://www.amibay.com/showthread.php?93265-VIC20-FULL-RAM-expansion-cartridge-37K-RAM-with-RESET!)

Este es muy bueno, 37k, tiene 2k en la zona de I/O donde se puede ubicar un corto fastloader que tarda muy poco en cargarse y luego las imágenes de cartucho se cargan muy rápido.

Como es muy pequeño no sobresale de la carcasa y no se flexiona (la ranura de cartuchos de VIC es problemática en ese aspecto).

Creo que el fastloader también se puede poner en otras direcciones de memoria y por tanto vale para ampliaciones de 35k también, pero tendrás algo más de trabajo separando los programas según qué parte de la memoria ocupen.
Título: Re:Cartuchos ampliación memoria
Publicado por: Papalapa en Agosto 31, 2019, 17:54:20
Gracias a los dos, al final he pillado la ampliacion 40K de Wilco2009 que está muy bien de precio e incluye los DIP switches para configurar la memoria.
Título: Re:Cartuchos ampliación memoria
Publicado por: Papalapa en Septiembre 16, 2019, 20:21:26
Ya he acabado de mecanizar el cartucho vacío para alojar la placa de extensión de memoria. He aprovechado para incluir un botón de Reset para no cargarme el interruptor del VIC-20 encendiendo y apagando. También una "chuleta" adhesiva con las posiciones de los switches dependiendo de la cantidad de memoria que queramos utilizar.

(https://i.imgur.com/C1uyC27.jpg)

(https://i.imgur.com/ELXblUO.jpg)

Mecanizar no es lo mío y se nota, pero estoy contento de como ha quedado finalmente

Por cierto, he conseguido unos cuantos juegos en formato .prg y hay algunos que añaden lo que creo es la posición de memoria al final del nombre. (battlezone-6000.prg, apple panic-a000.prg, etc...) e incluso hay ficheros con el mismo nombre pero con los dígitos esos distintos.

¿Para qué sirven exacatamente? ¿Se han de cargar de alguna manera especial?
Título: Re:Cartuchos ampliación memoria
Publicado por: josepzin en Septiembre 16, 2019, 22:21:00
Quedó genial!!
Título: Re:Cartuchos ampliación memoria
Publicado por: marcos64 en Septiembre 16, 2019, 22:24:50

Por cierto, he conseguido unos cuantos juegos en formato .prg y hay algunos que añaden lo que creo es la posición de memoria al final del nombre. (battlezone-6000.prg, apple panic-a000.prg, etc...) e incluso hay ficheros con el mismo nombre pero con los dígitos esos distintos.

¿Para qué sirven exacatamente? ¿Se han de cargar de alguna manera especial?


Indican en que banco (o direccion de memoria) hay que cargar cada ROM. Los juegos con dos ficheros tienen que cargarse cada uno en el sitio que indica.
Título: Re:Cartuchos ampliación memoria
Publicado por: Papalapa en Septiembre 17, 2019, 08:33:02
Indican en que banco (o direccion de memoria) hay que cargar cada ROM. Los juegos con dos ficheros tienen que cargarse cada uno en el sitio que indica.

Bufff eso suena complicado, ¿cómo puede hacerse desde una Pi1541?
Título: Re:Cartuchos ampliación memoria
Publicado por: marcos64 en Septiembre 17, 2019, 09:48:44
Tienen que ser PRGs. Lo unico que tienes que hacer es un LOAD y luego un reset, o un RUN  ;)

Si son 2 PRGs entoces LOAD uno detras del otro y reset.

Puede variar si han sido crackeados pero con eso te deberian funcionar la mayoria.
Título: Re:Cartuchos ampliación memoria
Publicado por: Papalapa en Septiembre 17, 2019, 12:02:47
Tienen que ser PRGs. Lo unico que tienes que hacer es un LOAD y luego un reset, o un RUN  ;)

Si son 2 PRGs entoces LOAD uno detras del otro y reset.

Puede variar si han sido crackeados pero con eso te deberian funcionar la mayoria.

¿Y cómo hago para cargar en una u otra posición de memoria? ¿O el address del título del juego es meramente indicativo y se carga él solo donde corresponde?
Título: Re:Cartuchos ampliación memoria
Publicado por: marcos64 en Septiembre 17, 2019, 15:56:17
Si es un PRG te lo carga automaticamente, el formato del PRG incluye una cabecera con la direccion de carga. El que añadan en los PRGs en el nombre la direccion de carga es para identificar cada parte.
Título: Re:Cartuchos ampliación memoria
Publicado por: javierglez en Septiembre 17, 2019, 20:03:44
Se carga en la dirección que toca si se pone el "coma 1", LOAD"apple panic-a000.prg",8,1
Seguro que lo sabe casi todo el mundo pero no está de más recordarlo.
Una vez estén cargadas las Roms (1 o 2 ficheros según el caso como dice marcos64) hay que hacer Reset que es Sys64802.
Normalmente se requiere un hard reset, al menos los de 2 partes.
No sé si se consigue instalando un botón de reset pero en cualquier caso se puede sustituir por una fila de pokes.
Esos pokes están en el foro de vic20.
Título: Re:Cartuchos ampliación memoria
Publicado por: javierglez en Septiembre 18, 2019, 01:00:55
Aquí pongo por ejemplo un cargador para que el filebrowser fbvic abra el ms pacman

1 ON A GOTO 4,5
3 A=1:LOAD"MSPACMAN60.PRG",8,1
4 A=2:LOAD"MSPACMANA0.PRG",8,1
5 POKE37138,0:POKE37139,0:POKE37154,0:POKE37155,0:POKE37150,127:POKE37166,127:SYS64802

Creo que tuve que recortar los nombres de las ROM  pero no lo recuerdo seguro, el fb creo que no tiene ese problema.
La carga va a ser mucho más rápida si antes se carga el sjload.
Se podrían meter las instrucciones directamente en el prompt pero va a ser mucho más pesado claro
LOAD"MSPACMAN60.PRG",8,1

LOAD"MSPACMANA0.PRG",8,1

POKE37138,0:POKE37139,0:POKE37154,0:POKE37155,0:POKE37150,127:POKE37166,127

SYS64802
Título: Re:Cartuchos ampliación memoria
Publicado por: Papalapa en Septiembre 18, 2019, 08:39:41
Gracias a los dos por la información. Aquí todavía quedaba uno que no sabía para que servía el ",1"  ;D, y eso que ya lo utilizaba hace muuuchos años con un CBM8032 y una doble disketera 4040.

Por lo que veo la carga de .PRG es más complicada con el VIC-20 que con el Commodore 64. En este útimo lo tengo casi todo en formato disco D64 y una vez "dentro" con el browser FB64 ya cargas el PRG directamente sin parámetros ni resets ni nada raro...

Voy a probar de meter las instrucciones, pokes y tal en un fichero LST y cargarlo desde el browser a ver si funciona....
Título: Re:Cartuchos ampliación memoria
Publicado por: marcos64 en Septiembre 18, 2019, 09:46:27
En principio las cargas de PRGs son iguales en C64 y VIC20 con la excepcion de que te tienes que asegurar de tener la ampliacion de memoria correspondiente (si es necesaria) en el VIC20.

Los problemas que tienes tu son por cargar volcados de cartuchos, ROMs que se insertan en un PRG para facilitar las cosas. Esto en un C64 ni siquiera es posible. Asi que yo diria que no es mas complicado en el VIC20 sino que tienes mas opciones que no tienes con el C64.

Yo uso un browser con el VIC20 que me funciona de maravilla con el SD2IEC, aunque no se exactamente como se llama, en el directorio aparece como SJ (este verano me peto el disco duro y el adaptador que lee las SD... imposible ahora encontrar nada). Te carga los PRGs reales y los volcados en PRG de un solo fichero sin tener que hacer nada mas que elegirlo con el browser, dentro o fuera de un D64.
Título: Re:Cartuchos ampliación memoria
Publicado por: javierglez en Septiembre 18, 2019, 10:50:21
El listado que he puesto es un programa basic (que cargas y ejecutas para que te cargue las 2 imagenes rom y haga el reset).
El archivo .lst que yo sepa es para poner varios nombres de imagenes de disco en programas multidisco y cambiar de disco pulsando los botoncitos del sd2iec.
No sabia que el fb funcionase con la pi1541.
Puedes empezar probando juegos de una sola Rom y hacer el reset con sys64802 sin los pokes que creo que la mayoría arrancan. Puse el caso más complicado que es el del cartucho con 2 partes que no arranca con el sys64802 (que es el equivalente al sys64738 del c64 por cierto).