diff --git a/docs/windows-xp.md b/docs/windows-xp.md new file mode 100644 index 00000000..40771fa4 --- /dev/null +++ b/docs/windows-xp.md @@ -0,0 +1,75 @@ +*Most of this document also applies to Windows 2000.* + +You can download Windows 2000 from [WinWorld](https://winworldpc.com/download/413638c2-8d18-c39a-11c3-a4e284a2c3a5). + +Use QEMU to create `winxp.img`: + +``` +qemu-img create winxp.img 2G +qemu-system-x86_64 -m 512 -drive file=winxp.img,format=raw -cdrom en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso +``` + +Follow setup instructions. + +The next step fixes `Uncaught RangeError: Maximum call stack size exceeded` in Chrome during Windows 2000/XP boot in v86. + +After installation change computer type to "Standard PC" as described [here](http://web.archive.org/web/20220528021535/https://www.scm-pc-card.de/file/manual/FAQ/acpi_uninstallation_windows_xp_english.pdf): +Start > RightClick "My Computer" > Manage > +Device Manager > Computer > RightClick "ACPI Uniprocessor PC" > Update Driver... > +No, not this time > Next > Install from a list or specific location (Advanced) > Next > +Don't search. I will choose the driver to install. > Next > Standard PC > Next > Finish. +Restart the VM, follow multiple "Found New Hardware Wizard" dialogs with default options. + +Now `winxp.img` is ready for v86. You can use [the website](https://copy.sh/v86/) to run it: +Specify `winxp.img` as a hard drive and optionally set memory size to 512 MB. +Or run it in a custom html file as described below. + +Get seabios.bin and vgabios.bin from [here](https://github.com/copy/v86/tree/master/bios), +get libv86.js and v86.wasm from [releases](https://github.com/copy/v86/releases/tag/latest). +Create `winxp.htm` with this content (assuming all the files are in the same folder): + +```html + + + + + +
+
+ +
+``` + +To open this html file locally a HTTP server is needed. The standard Python server `python -m http.server` doesn't support HTTP range requests. +You can use [http-server](https://www.npmjs.com/package/http-server) or [devd](https://github.com/cortesi/devd). +Start the server (from the same folder as `winxp.htm`): +``` +npx http-server +``` +Open http://localhost:8080/winxp.htm in the browser. + +Windows XP load time (until start button becomes responsive) in Chromium on my computer: +* 3 min second time +* 4 min (first time or if cache is disabled) +* 12 min second time if Network tab in Developer Tools is open +* 17 min (first time or if cache is disabled) and Network tab in Developer Tools is open + +Sometimes Windows XP hangs after boot (before it is interactive) in v86, +displaying only desktop wallpaper without taskbar or desktop icons.