📈 GH Trending Explorer 🎲 Surprise me

← all repos

ages2001 / WINUSB

git clone https://github.com/ages2001/WINUSB.git v1.0 · 5d ago

Universal USB driver for DOS, Windows 1.0x/2.xx/3.xx and Windows 95/98/ME

+13
stars, 24h · #2,823
+53
stars, 7 days · #3,854
+53
stars, 30 days · #12,003
53
★ total · +53% this week
1
forks · 3 open issues

Star history (as recorded here)

2026-10-22 · 40 ★ 2026-10-23 · 53 ★
LanguageC
LicenseGPL-3.0
Created2026-10-17 (5d ago)
Last push5d ago
Watchers0
OwnerUser

Links

README excerpt
# WINUSB 1.0 — USB driver for DOS, Windows 1.0x/2.xx/3.xx and Windows 95/98/ME
WINUSB is a USB stack written from scratch for MS-DOS 5 / 6, Windows 1.0x, 2.x, 3.0, 3.1 /
Windows for Workgroups 3.11 and Windows 95 / 98 / ME:
* **Host controllers:** UHCI, OHCI, EHCI (USB 2.0), xHCI (USB 3.x)
* **Mass storage:** Bulk-Only (BOT) and **UAS** (USB Attached SCSI; with streams on USB 3,
 without on USB 2), 4K-sector devices, write protection, media change
* **HID:** keyboard (LEDs, typematic, Pause / PrintScreen), mouse (5 buttons, **wheel**,
 horizontal wheel) and **absolute pointers** (USB tablets, touch screens, graphics
 tablets, the "usb-tablet" of virtual machines)
* **PS/2 keyboard and mouse** inside the driver: the mouse in IntelliMouse Explorer mode
 (wheel, buttons 4 and 5); on Windows 95/98/ME it replaces Windows' own PS/2 mouse driver;
 the PS/2 keyboard's LEDs follow the lock keys of the USB keyboards too
* **Back / forward buttons** (4th and 5th mouse buttons, as Alt+Left / Alt+Right) and
 **autoscroll** (click the wheel and move the mouse to scroll, with a scroll cursor) on
 all Windows versions (§3)
* **Multi-partition USB disks:** every partition (MBR, extended, GPT) gets its own letter;
 4 letter slots by default, more when the disks plugged in at boot have more partitions
* **Touchpads** on every system (DOS, Windows 1.0x–3.11, 95/98/ME): USB and **I2C**
 precision touchpads (HID over I2C: ACPI `PNP0C50` / `ACPI0C50`, Intel LPSS and AMD I2C
 controllers, the HID descriptor address from `_DSM`, the `GpioInt` interrupt line),
 **PS/2** touchpads (Synaptics, ELAN) and **SMBus** touchpads (Synaptics InterTouch / RMI4,
 ELAN); **two-finger scrolling** (vertical and horizontal), tap to click, two-finger tap =
 right click, clickpads, TrackPoint (§4a)
* **USB cameras** (UVC 1.0–1.5; YUY2, NV12, Motion-JPEG; isochronous and bulk) and
 **WINCAM.EXE**: live picture, photos (BMP), video (AVI) (§5a)
* **USB Audio 1.0 / 2.0** sound cards, headsets, DACs and **USB MIDI** output (through
 **WINSOUND.DRV** on Windows 3.0 MME / 3.1; §5)
* **USB4 / Thunderbolt** host support (§4b): host router / NHI driver, software connection
 manager for USB4 and Thunderbolt 1–3 devices, Intel firmware connection manager (ICM);
 **NVMe** disks behind **PCIe tunnels** (read / write, hot plug, drive letters) and the xHCI
 controllers of docks, **USB3 tunnels** (hubs and devices on USB4 links); PCIe hot plug
 under DOS (bus and BAR assignment)
* **USB CD/DVD drives** in DOS through MSCDEX (`WINUCD.SYS`) and on Windows 95/98/ME
* **Dynamic drive letters**, hot plug and **safe removal**
* **USBTREE.EXE** (Windows) and **WININFO.EXE** (DOS): detailed USB tree and descriptors
* DOS, Windows 1.0x / 2.x, Windows 3.0 **Real Mode**, **Standard Mode** and **386 Enhanced
 Mode** (VxD)
* **Windows 95 / 98 / ME**: Plug and Play device driver (`WINUSB.VXD`, installed from INF
 files through Device Manager), USB devices in their own Device Manager classes (USB,
 Keyboard, Mouse, HID,