ZX-ESPectrum emulator tested with ESP32-SBC-FabGL, The Mensch computer with W65C256 got VGA display and Keyboard

https://github.com/EremusOne/ZX-ESPectrum-IDF is the next repository we try with ESP32-SBC-FabGL.

At first it didn’t build but after Twitter consultation the problem appear with PlatformIO which was searching for obsolete version of ESP32 tools, after adding one line in platformio.ini

[env]
platform_packages = toolchain-riscv32-esp @ 8.4.0+2021r2-patch5

the project compiled and show on the screen, there are still some annoying things like menus not working well and no programs in the slots, but I stopped spending time on it 🙂 a little bit more documentation would be helpful though!

Many people asked when W65C265 computer like AgonLight2 will be available and I reply that even now such computer is available: The Mensch W65C265 computer is available at Mouser for EUR 18!

Today I wired Mensch to ESP32-SBC-FabGL access bus following this schematic:

AccessBus.pin1 +5V to Mensch.J5.pin.3
AccessBus.pin3 GND to Mensch.J5.pin.1
AccessBus.pin5 (TX) to Mensch.J5.pin4 (RX)
AccessBus.pin6 (RX) in series with 220 ohm resistor to Mensch.J5.pin5 (TX)

The 220 ohm resistor is necessary as current limiter as Mensch is working on 5V while ESP32 on 3.3V

ESP32-SBC-FabGL is running the standard FabGL ANSI Termainal example with small modification. Mensch sends only CR but not LF. So the FabGL code should be changed when see CR on Serial port to send CR+LF to the terminal. In serialport.cpp this should be add:

void SerialPortTerminalConnector::rxCallback(void * args, uint8_t value, bool fromISR)
{
  auto obj = (SerialPortTerminalConnector *) args;
  if (obj->m_serialPortRXEnabled) {
    obj->m_terminal->write(value, fromISR);
    if (value == 13)
           obj->m_terminal->write(10, false);
  }
}

and we are set 🙂 now Mensch have VGA display and PS2 keyboard!