Tabla de contenido:
- Paso 1: Instale el soporte ESP32 para Arduino (opcional)
- Paso 2: Agregar la biblioteca FabGL al IDE
- Paso 3: Agregar una biblioteca de tarjetas SD adicional utilizada por RunCPM
- Paso 4: descargue el proyecto RunCPM modificado
- Paso 5: Abra y revise el programa RunCPM y compile
- Paso 6: Cree una tarjeta SD lista para iniciar su RunCPM desde
- Paso 7: conecte un monitor y un teclado VGA
- Paso 8: Problema con la tarjeta SD en el módulo VGA32
Video: Emulador retro CP / M Stand Alone: 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Este proyecto utiliza el módulo VGA32 ESP v1.4 para ejecutar una combinación o RunCPM y FabGL para proporcionar una computadora independiente que ejecuta un sistema equivalente a CP / M 2.2. Popular durante la década de 1980 como sistema operativo para computadoras pequeñas. Puede retroceder en el tiempo y volver a visitar software antiguo como Wordstar, Supercalc, Adventure y Zork.
Es una cortesía independiente del proyecto FabGL que proporcionó el software para ejecutar un monitor VGA estándar y un teclado PS / 2.
El sistema operativo principal es una versión modificada de RunCPM, se ha bifurcado del trabajo original en Github y he agregado la biblioteca FabGL para permitir su uso en una pantalla en lugar de en una consola en serie.
Solo me gustaría dar las gracias a ambos proyectos. ¡Sigan con el buen trabajo!
El software se ha probado en al menos dos versiones de hardware. Uno, el VGA32 ESP v1.4 (como se vende listo para usar). En segundo lugar, mi versión anterior, la construí a partir de un módulo Wroom ESP32 y deseché bits de computadoras viejas.
El sitio de Github a continuación contiene información importante sobre estas configuraciones, así como el software modificado listo para instalar.
Este proyecto trata sobre la instalación del software, no sobre el hardware.
Suministros:
Un módulo VGA32 ESP V1.4 (probado). Encontrado en eBay / aliexpress / amazon, etc.
El IDE de Arduino instalado en una computadora, supongo que si estás leyendo esto, ya lo tienes.
Instale el paquete de soporte ESP32 para Arduino IDE. https://github.com/espressif/arduino-esp32 Vea el paso 1
La biblioteca FabGL https://www.fabglib.org/ no necesita descargar nada, el IDE de arduino puede hacer esto por nosotros, vea el paso 2.
Descargue una copia del RunCPM modificado de
Paso 1: Instale el soporte ESP32 para Arduino (opcional)
Es posible que ya lo haya hecho, si lo ha hecho, puede omitir este paso.
visite https://github.com/espressif/arduino-esp32 y siga las instrucciones sobre la instalación usando el administrador de placas, así:
Instrucciones de instalación usando Arduino IDE Boards Manager ========================================= ===============
Enlace de versión estable:
Instale el IDE actual de Arduino ascendente en el nivel 1.8 o posterior. La versión actual está en el sitio web de Arduino.
Inicie Arduino y abra la ventana Preferencias.
Ingrese uno de los enlaces de publicación anteriores en el campo URL adicionales del administrador del tablero. Puede agregar varias URL, separándolas con comas.
Abra Boards Manager desde Tools> Board menu e instale la plataforma esp32 (y no olvide seleccionar su placa ESP32 desde Tools> Board menu después de la instalación).
Paso 2: Agregar la biblioteca FabGL al IDE
Usando un boceto en blanco en el IDE de Arduino, asegúrese de haber seleccionado su Tablero ESP en el menú Herramientas, Tableros. (En el momento de escribir este artículo, el VGA32 ESP no estaba en la lista, elijo una placa Dev Kit genérica).
En el menú Sketch, elija Incluir biblioteca, luego elija Administrador de biblioteca.
En el diálogo de búsqueda, escriba FabGL y espere a que aparezca en la lista de abajo, ahora haga clic en el botón Instalar.
finalizado
Paso 3: Agregar una biblioteca de tarjetas SD adicional utilizada por RunCPM
Esto es casi lo mismo que el paso anterior, pero en lugar de la búsqueda FabGL de SDFat
En el menú Sketch, elija Incluir biblioteca, luego elija Administrador de biblioteca. En el diálogo de búsqueda, escriba SDFat y espere a que aparezca en la lista de abajo, probablemente tendrá que desplazarse hacia abajo en la lista.
Puede elegir entre dos versiones:
1, SdFat por Bill Greiman
2, SdFat - Tenedor Adafruit
He probado ambos, ambos parecen funcionar bien. Pero el proyecto RunCPM recomendó la segunda opción "Adafruit Fork", sin embargo, en las últimas notas ahora dice:
Todos los tableros ahora usan la biblioteca SdFat, desde aquí:
Así que ahora elijo la primera opción para este proyecto.
finalizado
Paso 4: descargue el proyecto RunCPM modificado
Visite el sitio de Github, Haga clic en el botón CÓDIGO y descárguelo como un archivo ZIP
Guarde este archivo en algún lugar (normalmente en un directorio llamado Arduino.
Descomprima el archivo en la misma ubicación, producirá una carpeta llamada RunCPM-master
finalizado
Paso 5: Abra y revise el programa RunCPM y compile
Ahora puede usar el menú Abrir Arduino IDE File. Navega a la carpeta que subiste arriba.
Dentro de esta carpeta hay otra llamada RunCPM. Abra la carpeta.
Dentro de esa carpeta hay un archivo.ino llamado RunCPM.ino. Este es el archivo principal del proyecto, ábralo.
Ahora puede ver el proyecto, leer los comentarios, etc. Realice cambios si necesita hacer coincidir su versión de VGA32 -ESP. Debe estar preconfigurado para V1.4 de la placa.
Ahora puede hacer clic en compilar y cargar, suponiendo que tenga su VGA32 ESP conectado, cargará el emulador en su dispositivo.
IMPORTANTE: El VGA32 puede tener un problema con la tarjeta SD en este punto, así que no lo conecte para saberlo. Consulte el último paso a continuación para obtener más información.
Paso 6: Cree una tarjeta SD lista para iniciar su RunCPM desde
Este es quizás el paso más engañoso. Le sugiero que lea el archivo README.md del sitio de Github sobre cómo hacer esto. Aquí está mi lista de qué hacer:
Supongo que tiene una tarjeta SD en blanco o no está interesado en guardar ningún archivo en la que tiene, esto lo borrará.
1, formatee la tarjeta SD como FAT-32
2, cree algunas carpetas llamadas A, B, C D, etc. (hasta P, estas serán las unidades de disco cuando ejecute CP / M). Tenga en cuenta que son mayúsculas.
3, en cada carpeta que cree Cree otra carpeta llamada 0 (eso es un cero) y opcionalmente 1, 2, 3, etc. (hasta 15) Luego, las carpetas son áreas de usuario en la emulación CP / M. Solo necesitas la carpeta 0 para comenzar.
4, desde la carpeta del proyecto descargado en el directorio arduino, busque la carpeta llamada CCP. Contiene varias versiones del procesador de consola de mando CP / M. Copie el llamado CCP-DR.60K a la raíz de su tarjeta SD.
5, ahora busque la carpeta en el directorio del proyecto llamado DISK, contiene un archivo A. ZIP, necesita descomprimir este archivo en el directorio llamado A / 0 / en su tarjeta SD. (también vea el archivo 1streadme para más información). Desafortunadamente, no tiene el "0" en la lista de carpetas, por lo que primero debe descomprimirlo en una carpeta temporal y luego copiar el contenido de la carpeta A en A / 0 / en la tarjeta SD.
6, cuando haya realizado los pasos anteriores, tendrá una tarjeta SD con una estructura como esta:
F: CCP-DR.60K
/ A / 0
/1STREAD. ME
/ASM. COM
/…. etc
/ B / 0
/ C / 0
etc
Si obtiene errores sobre no se puede cargar CCP, etc.cuando intenta arrancar desde la tarjeta SD, ¡verifique que tenga todo al ritmo correcto!
En un intento de hacer esta etapa un poco más fácil, he subido una versión lista para usar de lo anterior, con el software cp / m adicional y también lo descargo desde aquí https://github.com/coopzone-dc/RunCPM/blob / master /… y simplemente descomprímalo en la raíz de una tarjeta SD formateada. Debería ayudarte a empezar y luego podrás crear el tuyo propio más tarde.
También te recomiendo que leas la guía de configuración en Github Repo, tiene una descripción de las carpetas que necesitas.
Paso 7: conecte un monitor y un teclado VGA
Desconecte la alimentación de la tarjeta VGA32 ESP.
Conecte su monitor VGA
Conecte un teclado PS / 2 Vuelva a conectar la alimentación a la tarjeta VGA32 ESP, debería ver parpadear las luces del teclado y, aproximadamente 10 segundos después, aparecerá una imagen en la pantalla con un mensaje CP / M.
Importante: El VGA32 tiene un problema al usar la tarjeta SD y el reinicio por software, por eso es importante APAGAR LA CORRIENTE como el primer paso anterior. Consulte el último paso para obtener más información.
Lejos te vas …
Paso 8: Problema con la tarjeta SD en el módulo VGA32
La foto de arriba muestra mi segunda tarjeta ESP32 (hecha en casa), esto funciona bien y no tiene el problema a continuación. Entonces sé que no es un problema de software, lea a continuación sobre la versión VGA32.
En mi módulo VG32 ESP (v1.4), la tarjeta SD usa GPIO12, esto no es recomendado por Espressif Systems ya que este pin se usa al encender para detectar el voltaje de trabajo para la memoria interna. ¡Ojalá alguien le hubiera dicho al tipo que hizo esta tarjeta VGA32! Puede que sea diferente al tuyo, así que es de esperar que no tengas este problema.
Los problemas son:
1, no se puede cargar un boceto cuando la tarjeta está enchufada.
2, después de presionar el botón de reinicio, se bloquea hasta que se retira la tarjeta SD. Luego se inicia en una pantalla de error que dice que no hay tarjeta SD. Puede colocar la tarjeta y reiniciar nuevamente y funcionará la segunda vez.
Este problema se puede solucionar (pero tiene un riesgo) consulte el archivo README.md en
o siempre puede hacer un apagado / encendido duro para iniciar la placa. Por alguna razón, esto parece funcionar bien. Además, si necesita volver a cargar el software RunCPM, primero debe quitar la tarjeta SD.
Este es un extracto del archivo README. MD que explica el problema. He utilizado la solución y funciona bien, PERO debido a su naturaleza, el riesgo es suyo, siga leyendo …
Sin embargo, la configuración del VGA32 ESP parece tener un conflicto con la configuración GPIO de la tarjeta SD.
Funciona, pero para cargar debe quitar la tarjeta SD y, después de un reinicio suave, debe quitar la tarjeta SD y luego reemplazarla, seguida de otro reinicio. Funciona bien desde un encendido o un reinicio completo. Si puede ayudarme a solucionar este problema, hágamelo saber. ACTUALIZACIÓN 11Oct2020: El VGA32 ESP v1.4 usa GPIO12 (MTDI, leer al encender / reiniciar). Este pin determina el voltaje para la RAM, voltaje del LDO interno (VDD_SDIO). Cuando la tarjeta SD está presente, tira de este pin hacia arriba y el ESP32 cree que el voltaje de la RAM debe ser de 1.8V, sin la tarjeta SD, este pin tiene un menú desplegable interno para establecer el voltaje de la RAM en 3.3V. En realidad, esto se menciona en las notas de los ejemplos proporcionados en el proyecto FABGL, para citar: notas sobre GPIO 2 y 12 - GPIO2: puede causar problemas en la programación. GPIO2 también debe dejarse desconectado / flotante, o estar bajo, para ingresar al cargador de arranque en serie. En el modo de arranque normal (GPIO0 alto), GPIO2 se ignora. - GPIO12: debe evitarse. Selecciona el voltaje del flash. Para usarlo, desactive la configuración de detección GPIO12 con: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V ¡ADVERTENCIA! Bueno para ESP32 con voltaje de 3.3V (ESP-WROOM-32). Esto bloqueará su ESP32 si el flash no es de 3.3V NOTA1: reemplace "/dev/cu. SLAB_USBtoUART" con su puerto serie NOTA2: espefuse.py se puede descargar desde
Esto señala además que GPIO12 debe evitarse, ¡una lástima que nadie le haya dicho al fabricante de la tarjeta VGA32 ESP!
CORREGIDO: He probado la opción de configurar el voltaje del flash para anular el uso de GPIO12 y puedo confirmar en mi vga32 ESP, ¡funciona! Problema solucionado no más problemas con la tarjeta SD. Le insto a que compruebe, vuelva a comprobar y piense detenidamente en la creación de un LADRILLO si decide probarlo también. No lo recomiendo como acción, pero para mí funcionó.
Recomendado:
Cómo instalar, ejecutar y conectar un controlador a un emulador: 7 pasos
Cómo instalar, ejecutar y conectar un controlador a un emulador: ¿Alguna vez has estado sentado y recuerdas tu infancia como jugador joven y, a veces, deseaste poder volver a visitar esas viejas gemas del pasado? Bueno, hay una aplicación para eso … más específicamente, hay una comunidad de jugadores que hacen programas
Stand Alone Arduino ATmega328p: 7 pasos (con imágenes)
Stand Alone Arduino ATmega328p: Todo comenzó cuando vi el instructivo " Juego binario " por Keebie81https: //www.instructables.com/id/Binary-Game/ Pero he pensado que una versión independiente en lugar de una placa Arduino, habría sido mejor para liberar el
Instrucciones del emulador de juegos Raspberry Pi: 7 pasos
Instrucciones del emulador de juegos Raspberry Pi: a todos les encanta jugar. Incluso cuando hacemos un trabajo serio. Y es natural porque todo el mundo merece descanso, ocio o tiempo libre. Y, por supuesto, difícilmente podemos negarnos a haber jugado nuestro juego favorito. Recuerdo el momento en que algún tipo
Convierta la batería de X-box Rock Band en una batería electrónica Midi Stand Alone .: 4 pasos (con imágenes)
Convierta la batería de X-box Rock Band en una batería electrónica Midi Stand Alone: tuve la suerte de conseguir una batería x-box usada, tiene una forma un poco rugosa y no tiene paleta, pero nada que no se pueda arreglar. conviértalo en una batería eléctrica independiente. Leyendo el valor analógico del sensor piezoeléctrico y convertirlo en comando MIDI
Raspberry Pi 3: Emulador de arcade retro: 7 pasos
Raspberry Pi 3: Retro Arcade Emulator: Mi motivación para hacer esto es la falta de conocimientos tecnológicos en el mundo actual. Incluso con la abundancia de computadoras y dispositivos pequeños, las personas todavía son muy ignorantes sobre las funciones básicas de las cosas que usan todos los días. Creo que esto hará