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
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.