Ir al contenido

**** ****


Nerdxculture Latino

El pi1541 punga parte 2


pi1541 ranura parte 2

En esta segunda parte voy a contarles cómo conecté la pantalla, cómo configuré el pi1541 y el funcionamiento del dispositivo.
Encontrarás la parte 1 aquí.

Versión con pantalla

pantalla OLED

El uso sin pantalla es posible aunque no es recomendable. La versión para pi zero no tiene posibilidad de visualizar mediante hdmi como la versión pi 3, por lo tanto si tenés pantalla OLED es mucho mejor.
Primero le puse una pantalla que tomé prestada de otro proyecto para hacer una segunda versión del prototipo:

prototipo 1 pi1541 con pantalla desacoplable
un prototipo que hice con pantalla OLED desacoplable 128×64 como para probar

Para conectar la pantalla deben soldar GND y 3.3 VCC a los correspondientes pines de la pantalla OLED, y los pines SDA al pin 27 del Raspberry Pi, y SCL al pin 28 del Raspberry.

Luego fui a comprar una pantallita para dejarla definitiva y la conecté…

pantallita conexion definitiva
quise conectarla sin los pines que trae soldados por default y casi me mando una cagada ya que esos pines están soldados de una forma especial y es muy difícil desoldarlos sin joderla. Pero finalmente pude rescatarla y sacarla andado.
MORALEJA: NO HAGAN ESTA CAGADA EN SUS CASAS. DEJEN EN SU LUGAR LOS MALDITOS PINES
Si molestan para el armado es mejor cortarlos con un alicate
pi 1541 pantalla funcionando
Segunda versión armada con pantallita, si ya se la desprolijidad continúa, qué le vamos a hacer.
pi1541 ranura
Cuando le puse la pantalla no me entró ni por casualidad en la cajita, así que tuve que ponerle dos cajitas pegadas. observen la ranura de la tarjeta micro sd, queda un poco adentro, hay que tener uñita para sacar la tarjetita y además se puede caer adentro y quedar rebotando por ahí 😀 qué se le va hacer… el hágalo usted mismo es así.

Configuración

  1. Para que todo funcione tenemos que tener nuestra tarjeta micro SD formateada como FAT32 y agregarle algunos archivos.
  2. Entramos al sitio de Steve White https://cbm-pi1541.firebaseapp.com bajamos el archivo Pi1541.zip en la parte de DOWNLOAD y luego la última versión del kernel para pi 0 kernel.zip
  3. Copiamos los archivos a la tarjeta SD, así nos tendría que quedar la raíz:
root de la sd card pi1541

4. MUY IMPORTANTE: Luego reemplazamos el kernel que trae por defecto por el kernel para pi 0.

5. Adentro de la carpeta 1541 vamos a poner las imágenes de disco con los juegos, programas, demos, etc. Ese va a ser el “root” cuando iniciemos el pi1541.
Allí también recomiendo poner el filebrowser fb64 que también se baja desde el sitio de Steve.
Se puede incluso configurar para que se auto-monte la imagen fb.d64 o bien podés sacar los prg de adentro del d64 y tirarlos directamente adentro de la carpeta 1514.


6. Luego editamos el archivo config.txt para darle un overclock de 10% al raspberry zero, aparentemente es necesario para que funcione todo bien:

kernel_address=0x1f00000
arm_freq=1100
over_voltage=8
sdram_freq=500
sdram_over_voltage=2
force_turbo=1
boot_delay=1


7. Luego vamos a subirle este archivo options.txt. Por supuesto que esto va a cambiar según las opciones (si le ponen buzzer, si usan pantalla, y si la pantalla que usaste es de otro tamaño, etc.) pero este es el que funciona para mi configuración:

//deviceID = 9
//ROM2 = Jiffy.bin
//ROM3 = d1541II
OnResetChangeToStartingFolder = 1
//DisableSD2IECCommands = 1
//SoundOnGPIO = 1
LowercaseBrowseModeFilenames = 1
i2cBusMaster = 0
LCDName = ssd1306_128x64

Steve nos da el archivo options.txt modelo con todo el choclazo de opciones que tenemos para habilitar o deshabilitar.

Botonera

Así quedó la disposición de botones en mi versión. Se que me llevé intuitividad a marzo, lo ideal sería que la disposición sea vertical con respecto a la dirección de lectura de la pantalla.
Número de botónFunción
1Monta imagen de disco / ingresa en carpeta / ejecuta archivo / ingresa o sale del modo emulación.
2Selecciona archivo o carpeta superior.
3Selecciona archivo o carpeta inferior.
4Sale al directorio / sube a carpeta nivel superior.
5Marca archivo y lo agrega al orden de imágenes a montar
Puede que no sea del todo necesario instalar los 5 botones, eso queda a criterio de cada quién y al uso que le va a dar.

Funcionamiento sin pantalla

Si por algún motivo no pudiste conectarle una pantallita podés tener bastante funcionalidad igualmente.

El pi1541 tiene dos “modos”. Ni bien lo encendemos está en modo “navegación” que funciona similar a un SD2IEC, y mediante un programa llamado “filebrowser” permite navegar por los archivos y montar carpetas con los ejecutables o imágenes que tengan. Pero una vez montada una imagen de disco o al correr un ejecutable pasa a modalidad “emulación”, imitando una disquetera 1541. Eso implica que si yo monto una imagen y luego quiero salir y montar otra, por ej. simulando un cambio de disco, debo salir de la emulación, seleccionar la otra imagen y montarla. Esto es fácil usando pantalla, pero si deseo prescindir de ella lo que debo hacer es indicarle de alguna manera al pi1541 qué imágenes quiero que tenga ya “listas” en fila para que con sólo apretar un botón me pase a la siguiente.

Para empezar nos conviene tener en la carpeta 1541 de la tarjeta micro SD, el filebrowser, y te recomiendo que renombres el ejecutable a algo corto y fácil de tipear, por ej. en vez de fb64.prg renombrarlo a f (sin extensión).

ACLARACION: si utilizás un cartucho fastloader esta modalidad no es compatible, en ese caso debes auto-montar la imagen fb.d64 agregando al archivo options.txt AutoMountImage = fb.d64

Entonces en ese caso al encender el pi1541 lo que haríamos es escribir

LOAD"F",8,1
RUN
filebrowser 1
filebrowser 2

Luego ingresamos al filebrowser:

filebrowser 4
con las flechas de dirección del teclado de la Commodore nos desplazamos por los archivos y carpetas
filebrowser 5
con RETURN ingresamos a una carpeta o montamos una imagen de disco.

Aquí nos detendremos, notarán que tengo una demo que requiere dos discos (o dos caras) y por lo tanto tiene 2 imágenes de disco UNCENSORED_1.D64 y UNCENSORED_2.D64 y un archivo AUTOSWAP.LST
Este no es más que un archivo de texto en el que vamos a poner una lista en orden con los nombres de las imágenes de archivo que van a formar parte de una sucesión de discos que yo después voy a querer montar, por ej.:

uncensored_1.d64
uncensored_2.d64

Entonces lo que hago es posicionarme sobre el archivo AUTOSWAP.LST y presiono RETURN. Esto hace que el pi1541 monte la primera imagen de disco y “recuerde” que la segunda imagen va a ser UNCENSORED_2.D64
Lo mismo sería si tuviera 3, 4, 5, o la cantidad de imágenes que sean, va a respetar el orden de la lista.

filebrowser 6
el filebrowser me va a mostrar el contenido del listado de directorio del disco montado, en esta instancia puedo salir del filebrowser (tecla Q) porque ya la imagen está montada
filebrowser 7
hago un load normal como si tuviera un disco puesto
filebrowser 8
corre la demo
filebrowser 10
en un momento me va a pedir que cambie de disco, entonces presiono el botón 3
filebrowser 11
reconoce el segundo disco y sigue reproduciendo la demo como campeona

NOTA IMPORTANTE: Conviene no utilizar nombres de archivos muy largos. Evitar caracteres raros, muchos guiones, o mayúsculas. Conviene renombrar todo con letras minúsculas y números y nombres relativamente cortos, 10 caracteres o similar.
De otro modo puede no montar alguna imagen.

Funcionamiento con pantalla OLED

Cuando tenemos pantalla no necesitamos utilizar el filebrowser. Directamente navegamos por las carpetas e imágenes utilizando la botonera.

conpantalla 1
Una vez encendemos el pi1541 aparece mostrándonos el contenido de la carpeta 1541
conpantalla 2
Navegamos por las subcarpetas o imágenes que le hayamos puesto usando los botones 2 y 3, si queremos entrar en una carpeta o montar una imagen usamos el botón 1
conpantalla 3
aquí entro en mi carpeta de demos que tiene a su vez una carpeta para cada demo
con pantalla 4
ingreso en la carpeta de una demo que quiero ver, aunque está el archivo Autoswap.lst, al tener la pantalla no lo necesitamos
puedo definir el orden en que quiero me ordene las imágenes moviéndome encima de la imagen y presionando el botón 5, así la imagen queda “marcada” y numerada, en este caso:
0>Uncensored_1.d64
1>Uncensored_2.d64
conpantalla 07
Una vez ya numeradas las imágenes, presiono el botón 1 y el pi1541 montará la primera
conpantalla09
Procedo a cargar el disco con LOAD”*”,8,1 como haría con un disco real

Cuando el progama me pida que cambie de disco simplemente presiono el botón 3 para pasar a la imagen siguiente que yo ya había definido.

Salir de la emulación

Normalmente cuando terminemos de jugar o ejecutar el programa que habíamos cargado, podemos apagar la Commodore y el pi1541, volver a encender y todo volvería a comenzar de cero. Pero esto a veces es un poco tedioso y muchas Commodore traen la posibilidad de ser reseteadas manteniendo el pi1541 encendido.

Al resetear la commodore y si el pi1541 continúa alimentado, seguirá emulando el último disco que le dejamos. Para salir de ese modo es necesario presionar el botón 1. Luego con el botón 4 salimos de la imagen de disco y de la carpeta en la que estamos para poder elegir otra imagen que cargar.

Esto también es útil cuando por ejemplo estamos trabajando con algún software de creación de contenido, música, gráficos y queremos guardar archivos en imágenes de disco distintas, salimos de la emulación con botón 1, navegamos por las carpetas con los botones 2, 3 y 4, y volvemos a entrar a la emulación presionando botón 1 cuando encontramos la imagen adecuada.

No es más que un hasta luego, no es más que un nuevo adiós…

Considero que el proyecto pi1541 de Steve White es un antes y un después en la comunidad commodore. En el mercado existían pocos dispositivos que realmente emularan una disquetera 1541 de forma completa, y estos eran difíciles de fabricar por su hardware custom, además de caros y difíciles de conseguir.

Como alternativa teníamos el SD2IEC que cualquiera podía armarse (ver mis anteriores tutoriales al respecto) que no deja de ser un buen dispositivo pero flaquea a la hora de correr cualquier ejecutable que deshabilite el kernel de la C64 (como muchas de las demos de la demoscene y algunos juegos), lo cual es un gran limitante.

Hace algunos años nos veníamos preguntando en la comunidad y sabíamos que existía la posibilidad de programar un emulador de 1541 exacto para raspberry pi, pero nunca nadie había podido hacerlo funcionar.
Finalmente fue posible gracias a la generosidad de Steve en hacer público el kernel y su código fuente ya pulido y funcional para que la comunidad haga pruebas, esto luego motivó a que otro desarrollador, Alex Martinelle, lo adaptara para funcionar en el pi 0. En Rebelion Digital nos gusta ese espíritu de compartir el conocimiento con libertad.

Finalmente, este artículo no pretendió ser “un tutorial sobre -la forma- en que se debe armar un pi1541”, es más bien mi manera de hacerlo con aciertos y errores y tal vez un puntapié inicial para que encuentres tu manera de armarlo a tu gusto, cumpliendo los fines para los que lo vayas a utilizar. Tampoco cubre todas las opciones de configuración ni de funcionalidades avanzadas con las que cuenta el proyecto.
Desde ese lugar espero que te haya resultado útil, hasta la próxima.


Categoria: pvm blog | retro computing | tutoriales


Un comentario

  1. […] En la parte 2 vamos a ver cómo se conecta la pantalla, cómo configurarlo y hacerlo funcionar… […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *