mirror of
https://github.com/felixrieseberg/windows95.git
synced 2026-05-14 02:21:59 +00:00
Three layers: v86 — src/vmware.js gains the legacy text-clipboard backdoor commands (GETSELLENGTH/GETNEXTPIECE/SETSELLENGTH/SETNEXTPIECE, 6–9). The host stages bytes via the vmware-clipboard-host bus event; the guest pushes via 8/9 and the device emits vmware-clipboard-guest when the buffer fills. Same wire protocol as open-vm-tools' pre-RPC copy/paste. Committed on the windows95-base fork branch; libv86.js rebuilt here. renderer — src/renderer/clipboard.ts polls Electron's clipboard (no change event exists), translates host UTF-8/LF ↔ guest CP-1252/CRLF, and bounces bytes through the two bus events. Echo-suppressed so a value we just wrote does not come back as a change. guest — guest-tools/agent/W95TOOLS.EXE is a 22 KB hidden-window agent that joins the Win32 clipboard-viewer chain (push-on-copy) and polls the backdoor on a 250 ms timer (pull-from-host). Win9x runs ring-3 with the I/O bitmap wide open, so a plain IN EAX,DX from a user process reaches the port — no driver needed. Named for growth: time sync and host-initiated shutdown will live here too. Built with Open Watcom v2 inside Docker (Makefile + Dockerfile alongside the source); subsystem 4.0, no msvcrt, runs on Win95 RTM. Install: copy \\HOST\TOOLS\agent\W95TOOLS.EXE into the guest and drop a shortcut in StartUp. Text only, 64 KB cap.
44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# guest-tools
|
||
|
||
Files and folders in this directory are exposed read-only inside the VM at
|
||
`\\HOST\TOOLS` (alongside the synthetic `_MAPZ.BAT` and `README.TXT`).
|
||
Drop drivers and utilities here that you want available from within
|
||
Windows 95.
|
||
|
||
## mouse-driver/ — seamless mouse (VBADOS)
|
||
|
||
`VBMOUSE.EXE` (DOS TSR) + `VBMOUSE.DRV` (Windows 3.x/9x driver) from
|
||
[VBADOS](https://git.javispedro.com/cgit/vbados.git/) by Javier S. Pedro,
|
||
GPLv2. Talks to v86's VMware mouse backdoor (port 0x5658) so the Windows
|
||
95 cursor tracks the host cursor pixel-for-pixel without pointer lock.
|
||
|
||
Install inside the guest:
|
||
|
||
1. Copy `\\HOST\TOOLS\mouse-driver\VBMOUSE.EXE` to `C:\` and add a
|
||
`C:\VBMOUSE.EXE` line to `C:\AUTOEXEC.BAT`.
|
||
2. Windows Setup (or Control Panel → Mouse → General → Change → Have
|
||
Disk) → browse to `\\HOST\TOOLS\mouse-driver` → pick **VBMouse int33
|
||
absolute mouse driver**.
|
||
3. Reboot. The app detects the driver and stops grabbing pointer lock;
|
||
ESC still toggles lock for games that want raw relative input.
|
||
|
||
## agent/ — W95TOOLS guest agent
|
||
|
||
`W95TOOLS.EXE` is a hidden-window agent that talks to the emulator over
|
||
the VMware backdoor (port 0x5658). Currently it does one thing: bridges
|
||
Windows 95's `CF_TEXT` clipboard to the host (legacy backdoor commands
|
||
6–9; host side is `src/renderer/clipboard.ts`, which polls Electron's
|
||
clipboard). It's also where time sync, host-initiated shutdown, and a
|
||
tray icon will live when those land.
|
||
|
||
Install inside the guest:
|
||
|
||
1. Copy `\\HOST\TOOLS\agent\W95TOOLS.EXE` to `C:\WINDOWS\`.
|
||
2. Drop a shortcut to it in
|
||
`C:\WINDOWS\Start Menu\Programs\StartUp` so it runs on login.
|
||
|
||
Copy text on either side and it appears on the other within ~250 ms.
|
||
Text only; conversion is Windows-1252 ↔ UTF-8 with CRLF ↔ LF, capped at
|
||
64 KB. Built from `w95tools.c` with Open Watcom v2 — `make -C
|
||
guest-tools/agent` (needs Docker).
|