Imagen

Emulación bajo ESP32

Caliban
Mensajes: 5
Registrado: 21 Jun 2023 18:33

Re: Emulación bajo ESP32

Mensaje por Caliban »

Hola a todos, estoy usando la placa TTGO VGA32 v1.4, que por cierto va estupendamente. Con la librería FabGl estoy emulando un PC con DOS. Tengo unos programas que por allá el año 1989 hice con Quick Basic para un proyecto. He podido arrancar el QB perfectamente y ejecutar alguna Demo, pero estos programas míos, tanto la versión .BAS como la .EXE (compilada en su día en QB) dan error. El error hace referencia a que en estos programas uso SCREEN 9 (640 x 350, 16 colores) y parece que no es compatible con la máquina emulada. He hecho funcionar sin problemas estos programas en mi MAC con DOSBox, sin embargo, en el TTGO no hay manera. De hecho, probando en QB un simple programa de una línea con SCREEN (7, 8, 9, 10, …) ya da error, con SCREEN 0, 1 y 2 funciona.
Pienso que se puede deber a los drivers de la pantalla o la configuración del monitor con FabGl. ¿Podéis echarme una mano? Muchas gracias.
Avatar de Usuario
amakuja
Mensajes: 1040
Registrado: 01 Nov 2010 14:42
Ubicación: Santurce Antiguo

Re: Emulación bajo ESP32

Mensaje por amakuja »

Caliban escribió:Hola a todos, estoy usando la placa TTGO VGA32 v1.4, que por cierto va estupendamente. Con la librería FabGl estoy emulando un PC con DOS. Tengo unos programas que por allá el año 1989 hice con Quick Basic para un proyecto. He podido arrancar el QB perfectamente y ejecutar alguna Demo, pero estos programas míos, tanto la versión .BAS como la .EXE (compilada en su día en QB) dan error. El error hace referencia a que en estos programas uso SCREEN 9 (640 x 350, 16 colores) y parece que no es compatible con la máquina emulada. He hecho funcionar sin problemas estos programas en mi MAC con DOSBox, sin embargo, en el TTGO no hay manera. De hecho, probando en QB un simple programa de una línea con SCREEN (7, 8, 9, 10, …) ya da error, con SCREEN 0, 1 y 2 funciona.
Pienso que se puede deber a los drivers de la pantalla o la configuración del monitor con FabGl. ¿Podéis echarme una mano? Muchas gracias.

Pásate por el subforo de Presentaciones, por favor. Es obligatorio.
El que nada emprendió, nada terminará.
Caliban
Mensajes: 5
Registrado: 21 Jun 2023 18:33

Re: Emulación bajo ESP32

Mensaje por Caliban »

Hecho. Gracias.
Avatar de Usuario
ackerman
Mensajes: 525
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Contactar:

Re: Emulación bajo ESP32

Mensaje por ackerman »

Caliban escribió:Pienso que se puede deber a los drivers de la pantalla o la configuración del monitor con FabGl. ¿Podéis echarme una mano? Muchas gracias.
Enhorabuena por pasarte al lado oscuro del ESP32 y el minimalismo. -drinks -drinks
El emulador de Fabrizio Di Vittorio está basado en el 8086Tiny de Adrian Cable, pero reduciendo cosas, en concreto sólo dejando la CGA:

https://jaybertsoftware.weebly.com/8086-tiny-plus.html

Esto te sirve para poder hacer pruebas previas.
De todo el código de fabgl, lo que más te interesa en su github, son los 4 archivos del directorio src/emudevs:

https://github.com/fdivitto/FabGL

Código: Seleccionar todo

graphicsadapter.h
graphicsadapter.cpp
i8086.h
i8086.cpp
Ahi verás que sólo tiene soporte para los modos de video:

Código: Seleccionar todo

 0x01   Texto 40x25
 0x03   Texto 80x25
 0x05   320x200 4 colores
 0x06   640x200 2 colores
 Modo Hercules 720x348
Por tanto, funcionan el modo 0,1 y 2 de qbasic.

Los modos 7,8,9 son de EGA, mirando código rápidamente, se ve que no están soportados, al igual que el modo de 160x100 del paku paku.
La solución es o ponerse en contacto con el autor, o modificar código, que es tan sencillo como interceptar la interrupción de BIOS de modo de video 0x10, y luego dumpear a la zona de video dicho modo a un buffer nuevo o el propio de la CGA, al estilo como se hace con el dumpeo del modo Hercules.

Este emulador consume 2 MB de PSRAM, en concreto 1 MB para la RAM y otro MB para protección de escritura.




Aunque tengo portado el 8086-tiny-plus para ESP32 usando sólo SRAM, la versión que tengo pública, al final la dejé con el port del Fake86, porque se consigue más compatibilidad con el XT:

https://github.com/rpsubc8/ESP32TinyFake86

Aquí si tengo soportado el modo 160x100 del paku paku, pero los modos EGA y VGA los eliminé (ahorrar SRAM), así que tampoco te tirará los modos 7,8 y 9 del qbasic. Es un emulador que centré para sólo SRAM, en concreto el modo 640x200 lo reduce a 320x200 físicamente.
La forma de añadir dicha funcionalidad, es similar a lo contado anteriormente. Todos los emulatas se parecen, está todo inventado.
Caliban
Mensajes: 5
Registrado: 21 Jun 2023 18:33

Re: Emulación bajo ESP32

Mensaje por Caliban »

Muchas gracias por la rápida y excelente respuesta. Voy a investigar un poco a ver si consigo algún resultado.
Responder

Volver a “ESP32 TTGO VGA32”