El proyecto FRANK 386 permite que el microcontrolador Raspberry Pi Pico 2 (RP2350) funcione como un emulador completo de PC i386, admitiendo software heredado como Windows 3.x, Windows 95 y Linux. Al portar el motor Tiny386 al RP2350, el proyecto permite a los usuarios ejecutar entornos de computación antiguos en una plataforma de microcontrolador moderna y de bajo costo equipada con salida VGA/HDMI y almacenamiento en tarjeta SD.

Una representación visual de la plataforma del proyecto FRANK 386.
El proyecto FRANK 386 proporciona una plataforma para ejecutar software heredado en el microcontrolador RP2350.github.com

Esta imagen representa la plataforma del proyecto para emular entornos de PC i386.

Emulación central y soporte de hardware

FRANK 386 proporciona una suite de emulación completa para la arquitectura i386, incluyendo soporte para periféricos como el 8259 PIC, 8254 PIT, el controlador de teclado 8042 y VGA. Está diseñado para funcionar con las capacidades de hardware específicas del RP2350, como su capacidad para conectarse con memoria externa y salidas de pantalla.

El proyecto admite una variedad de dispositivos de audio, incluyendo el PC Speaker, Tandy, Covox y Disney Sound Source. Los gráficos son compatibles tanto en modos de texto como en modos gráficos hasta una resolución de 640x480 a través de conexiones VGA o HDMI.

“Emulador de PC i386 para RP2350 (Raspberry Pi Pico 2) con salida VGA/HDMI, almacenamiento en tarjeta SD, teclado/ratón PS/2 y USB, mando NES y salida de audio.”

— GitHub - rh1tech/frank-386: Tiny386 port to RP2350

Mecanismos de almacenamiento y entrada

El sistema utiliza una tarjeta SD en modo SPI para proporcionar almacenamiento para imágenes de disquete, disco duro y CD-ROM. Un gestor de discos de tiempo de ejecución dedicado, accesible mediante el atajo Win+F12, permite a los usuarios insertar o extraer estas imágenes sin reiniciar el sistema.

Una captura de pantalla de una tabla que muestra carpetas y archivos en el emulador.
Una captura de pantalla que muestra el sistema de archivos y la estructura de carpetas soportada por el emulador.github.com

Esta captura de pantalla ilustra las capacidades de gestión de archivos del proyecto FRANK 386.

La entrada se gestiona a través de múltiples métodos: conexiones nativas de teclado y ratón PS/2, o soporte moderno USB HID. Para placas específicas como la Waveshare Z2, el sistema puede utilizar una implementación PIO-USB para manejar funciones de host USB.

Arquitectura de memoria y compromisos de rendimiento

Para alcanzar los requisitos de memoria de los sistemas heredados, FRANK 386 soporta hasta 8MB de RAM utilizando un chip PSRAM QSPI externo. Esta PSRAM debe conectarse a pines GPIO específicos (XIP CS1) para compartir el bus con la memoria flash.

Existe una restricción técnica con respecto a las velocidades de acceso a la memoria. Aunque el RP2350 es significativamente más rápido que los chips 386 originales, acceder a la memoria más allá de la SRAM interna puede introducir un retraso de acceso de 40 ciclos. Esto podría causar posibles tartamudeos en ciertas circunstancias cuando el software emulado accede frecuentemente a la PSRAM externa.

Qué dicen los lectores de Hacker News

  • Nota técnica: Un comentarista expresó su preocupación por que la arquitectura de memoria del RP2350 pudiera causar problemas de rendimiento, señalando que acceder a la memoria más allá de los primeros 640kb podría resultar en retrasos de ciclo significativos y tartamudeos durante la emulación. comentario ↗
  • Alternativa: Un comentarista señaló que ya existe un proyecto similar que se ejecuta en un ESP32. comentario ↗
  • Pregunta abierta: Un lector preguntó si el proyecto emula puertos de hardware específicos como RS232 o impresoras, lo cual sería necesario para reutilizar equipos embebidos antiguos. comentario ↗

Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗