It's 2021 and someone's written a new Windows 3.x mouse driver. Why now?
- Reference: 1638169089
- News link: https://www.theregister.co.uk/2021/11/29/a_new_windows_3x_mouse/
- Source link:
Buckley's day job is developing software for IBM's i platform. A [1]bio states he once ported the .NET framework Mono to help IBM i developers run .NET programs on i.
Nice.
[2]
Buckley also codes as GitHub's [3]NattyNarwhal , and in that capacity seems to have spent the Thanksgiving holiday posting a project titled "vmwmouse" that offers a VMware mouse driver for Windows 3.x.
[4]
[5]
"Running Windows 3.1 in VMware …. but annoyed by having to grab and ungrab the cursor manually?" Buckley asks in the [6]project's README . "Wish you could just move the cursor in and out like a modern OS (one with USB tablet support or VMware Tools drivers), with no Ctrl+Alt dancing? Or want to control your cursor at all under the ESXi web UI?"
His answer to those questions is: "With this driver, now you can." The video below displays the driver in action.
[7]
[8]Youtube Video
The driver does its magic by using [9]VMware tools – a collection of utilities Virtzilla offers to help vAdmins, and by replacing the existing PS/2 mouse driver.
Buckley explains that writing a mouse driver poses considerable challenges.
[10]
"Normally, mice work by sending a delta of their movements. You'd have to trap the mouse inside of the guest for this to work; any tracking difference would result in a very hard to control cursor. Being able to send the absolute coordinates would be great, because you can know the exact point when the cursor hits the edge."
But Buckley observes there was no way to send those coordinates until USB came along, and Windows 3.x comes from a time before USB.
[11]'Father of the Xbox' Seamus Blackley issues Twitter apology to AMD over last-minute switch to Intel CPUs
[12]New GNOME Human Interface Guidelines now official – and obviously some people hate it
[13]QEMU brings back its one-OS-a-day virtual advent calendar
Buckley's post goes into considerable detail about the fine art of plotting mouse positions, how Windows 3.x and VMware handle mouse input, the vagaries of Intel's '286 and '386 processors, and the Microsoft Macro Assembler (MASM).
He rated the project "surprisingly easy, considering I didn't know x86 assembly before".
"I only implemented this in a day – with lots of struggling against MASM and typos."
Those of us who spent the weekend overeating salute you, Mr Buckley. ®
Get our [14]Tech Resources
[1] https://www.seidengroup.com/about-calvin-buckley/
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/personaltech&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YaSy7Kt7Qy7AZrBKlr0oQAAAANQ&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[3] https://github.com/NattyNarwhal
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/personaltech&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YaSy7Kt7Qy7AZrBKlr0oQAAAANQ&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/personaltech&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YaSy7Kt7Qy7AZrBKlr0oQAAAANQ&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[6] https://github.com/NattyNarwhal/vmwmouse
[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/personaltech&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YaSy7Kt7Qy7AZrBKlr0oQAAAANQ&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[8] https://user-images.githubusercontent.com/3161292/143529005-8bedce21-109d-43d1-96c9-8c958a613bd6.mp4
[9] https://docs.vmware.com/en/VMware-Tools/index.html
[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_onprem/personaltech&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YaSy7Kt7Qy7AZrBKlr0oQAAAANQ&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[11] https://www.theregister.com/2021/10/14/xbox_sorry_amd/
[12] https://www.theregister.com/2021/08/09/gnome_human_interface_guidelines/
[13] https://www.theregister.com/2020/12/02/qemu_advent_calendar/
[14] https://whitepapers.theregister.com/
Re: "when the security of the old ones is actually better"
Ah, you mean they are so old that they have absolutely no inkling about the internet whatsoever.
Yep, that's pretty good security!
Nice! Many virtualization (and emulation) solutions seem to leave old platforms behind which seems sad since one of the main use-cases for them is to keep old stuff running. Unfortunately there is relatively little money in digital preservation so commercial interests tend to flitter elsewhere.
Another driver people might be interested in is here: https://bearwindows.zcm.com.au/
It is basically a VESA driver for older Windows that allows for a high resolution display.
It is Win9x and NT only but if you like Windows 3.11, then Windows NT 3.51 looks very similar and is extremely rock solid because Microsoft spent a whole year touching it up and fixing bugs whilst waiting for IBM to make a port (to PowerPC I believe).
We're still running some DOS applications that talk to a OMR scanner on the parallel port. I managed to get them working in a 64bit version of DOSBox running on Windows 10. So they'll be around for a long while yet (until they can't find parts for the physical scanner on eBay).
MASM
MASM - God I'm old!
Re: MASM
Gosh - I haven’t used that since the 80s.
Then I switched to TASM and finally the GNU assembler to add low level stuff into my GCC code.
I haven’t actually written any new Intel assembly code in almost 20 years though.
Need a copy of this ...
https://www.wob.com/en-gb/books/microsoft-press/microsoft-mouse-programmer-s-reference/9781556151910
Oh, and a 5 1/4 drive to run the examples :-)
While not exactly a VM I need often, 3.1 is still one I keep a copy round for. A handful of ancient tools that were never redeveloped that still have uses exist on the platform. Old flow computer interfaces for example; which are likely to be around another 20 years or until the hardware dies.
I’d say get a new interface, but when the security of the old ones is actually better, and the hardware isn’t cheap (Think north of 20k for a good one) the decision to swap isn’t quite so simple.