Viene de LINK
Como la Flash no funcionó en la Amiga por razones más misteriosas que la úbicación de la Atlantida, el siguiente paso fue probar la memoria en una C64 haciendo un 'cartucho'.
En la C64 hay 3 tipos basicos de cartuchos (más tipos con mappers incluidos en el mismo cartucho):
- Tipo Ultimax. Son cartuchos que fueron originalmente concebidos para la Commodore Ultimax (aka VC-10 o Max Machine), los cartuchos son de 8K y se mapean desde $E000 a $FFFF, tomando el lugar que normalmente ocupa el Kernal.Este modo se activa mandando a 0 la entrada -GAME del puerto de expansión. La C64 desactiva toda la RAM y ROM interna con excepción de los 4KBytes inferiores y la ROM de caracteres.
- Tipo standard 8K bytes. Estos cartuchos son de 8Kbytes (sorpresa!) y en los 8K justo debajo de la ROM del BASIC, entre $8000 y $9FFF quitando 8K de RAM al BASIC. Este modo se activa mandano a 0 la linea -EXROM del puerto de expansión. Estos cartuchos pueden autoarrancar si se encuentra el texto 'CBM80' (en PETSCII) en el offset $0004 de la ROM. Si se encuentra ese encabezado entonces el Kernal transfiere los vectores de Reset y NMI a las direcciones $8000 y $8002 respectivamente.
- Tipo standard 16K bytes. Igual que el anterior solo que de 16K, los 8K adicionales toman el lugar del interprete BASIC entre $A000 y $BFFF. Este modo se activa mandando a 0 a las lineas -GAME y -EXROM a la vez.
Más información sobre cartuchos:
LINKBueno, elegí una de las ultimas 2 opciones para tipo de cartucho porque si llegara a fallar la máquina arrancaría con BASIC en los de 8K y daria pantalla con los de 16K.
Buscando que grabar elegí el River Raid, de 16K.
Despues de verificar y asegurar las conexiones del engendro que me habia hecho hace mucho tiempo para conectar desde el puerto de expansión de la 64 al protoboard (sacrifiqué el único cartucho de family que tenia) grabe el juego a la flash y conecté todo.
Resultado 1: Nada, pantalla vacia con borde. (Kernal arranca pero no encuentra un cartucho autoejecutable, y como no hay interprete BASIC queda en el limbo).
Dejo de mandar -GAME a 0 para ver al menos si se puede leer la memoria desde BASIC
Resultado 2: Arranca BASIC con 8K libres menos, hasta ahí todo bien. Hago un programita de 1 linea para volcar la Flash a pantalla. Solo salen valores medio al azar.
Resulto que al conectar el adaptador al puerto de expansión, se habia forzado algunos de los cables y habian quedado sin hacer contacto en el protoboard. Hecho el ajuste y vuelta a mandar a 0 la linea -GAME ya arrancó el RiverRaid:
Y el no tan enjambre de cables:
Esto es algo muy sencillo, pero muestra que la Flash funciona.
Claro que usar una Flash de 512K para guardar 1 solo juego no tiene mucho sentido, por eso esto espero convertirlo en un cartucho multijuegos (se pueden poner otras cosas aparte de juegos obvio), y con la posibilidad de que el usuario puede cambiar el contenido de la Flash.
PD1: Gracias telefonica por permitirme navegar a la impresionantemente no apta para cardiacos velocidad de 5KB/s
>:(
PD2: Jugar al River Raid en una máquina real no tiene comparación. QUE LINDO!!!! :D