Charlie Birks Boots Windows 1.0 on Pimoroni PicoVision with Custom Emulator

Apps & Games / Desktop / Windows / Charlie Birks Boots Windows 1.0 on Pimoroni PicoVision with Custom Emulator
26 Jun 2024

Programmer and tinker Charlie Birks has recently achieved a unique feat by booting Windows 1.0 on modern computing hardware using a Pimoroni PicoVision and a custom-coded emulator.

Breaking Down the Pimoroni PicoVision

We’ve previously discussed the Pimoroni PicoVision, a budget-friendly device that features a Raspberry Pi Pico W and a second RP2040 SoC on the back of the board. In this setup, the RP2040 from the Raspberry Pi Pico W serves as the CPU and provides Wi-Fi connectivity, while the second RP2040 acts as the GPU for the development board.

The Emulator: Probably Average Computer Emulator (PACE)

Birks utilized a PC emulator, known as Probably Average Computer Emulator (PACE), to accomplish this task. The emulator boasts a “mostly complete 8088 CPU core,” which is essential for running the original version of Windows 1.0 released in 1985.

PACE also offers basic chipset support for various components, including:

  • Peripheral Interface Controllers
  • Programmable Interrupt Timers
  • Programmable Peripheral Interfaces

While Direct Memory Access (DMA) support is limited, the emulator includes CGA graphics, floppy controller support, and compatibility with fixed disk adapters.

Memory Constraints and Software Requirements

Despite the PicoVision’s 16MB of PSRAM, the emulator only supports 640KB of memory, aligning with Windows 1.0’s minimum RAM requirement of 256KB. To run Windows, Birks is using MS-DOS 3.3 and Windows 1.01, with keyboard support implemented over USB HID.

Getting Started with Pimoroni PicoVision

For those interested in trying out this unique setup, the Pimoroni PicoVision is readily available, and Birks has made his emulator accessible under a permissive MIT license on GitHub.

Update: 26 Jun 2024