back to article It's 2021 and someone's written a new Windows 3.x mouse driver. Why now?

Two thousand and twenty-one might not seem the obvious year – or century – to give the world a new mouse driver for Windows 3.1, but a developer named Calvin Buckley has written one nonetheless. His motivation apparently is to ensure rapid and reliable rodent operations when Microsoft's venerable OS runs as a virtual machine. …

  1. Binraider Silver badge

    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.

    1. DJV Silver badge

      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!

      1. Mage Silver badge
        Big Brother

        Re: "when the security of the old ones is actually better"

        The Internet existed, sort of, before win 1.0. Web Sites added to existing Internet (FTP, Gopher, POP SMTP, NTTP) about 1992.

        But the HID mode of USB is a security disaster. It's why Lenovo currently sells something with PS/2 ports for keyboard and mouse that has no USB ports.

    2. Blackjack Silver badge

      Most of Windows 3.x software runs on Windows 95/98/98 SE and that one is more VM friendly, unfortunately there is always the odd thing that refuses to work right unless is in Windows 3.x.

    3. StargateSg7

      You could have ALSO polled one of the PC BIOS serial port interrupts which Windows 3.11 AND later versions have ALL either passed directly to the upper OS or emulated as an internal call.

      About 300 lines of code and you are done and that's mostly to do with translating display absolute coordinates to relative window and any relative child graphics user interface objects such as buttons, panels, etc. I did this in the 1980's!

      To make mouse programming easier once you had the RS-232 or PS/2 ADB port mouse driver installed you could call a "Fake Interrupt" INT 33h to get the mouse coordinates and mouse button presses via register values.

  2. karlkarl Silver badge

    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:

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

    1. Wanting more

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

      1. Paul Crawford Silver badge

        We had DOS software I wrote around 1992 still in use controlling hardware, but now using dosemu on Linux as that also allows you to permit direct hardware I/O if you want.

        Many years ago we also submitted a patch for dosemu so it could be configured to mirror the host Linux time, which is then nice and accurate due to NTP. DOS is still ~55ms steps, but good to see it is always within 60ms of true time.

    2. Mage Silver badge

      NT 3.51 looks very similar

      NT 3.51 is simply NT 3.5 with the "fake" 32 bit API calls that MS added to win 95 so that office 95 wouldn't run on Win3.11/WFWG with Win32s. Ironically Office 95 isn't even fully 32 bit. So maybe you are thinking of NT 3.1, but I don't believe IBM ported NT 3.5 or NT 3.51 to Power PC or anything else. They were working on OS/2. By 1991 OS/2 had the Display Manager that looked like MS Program Manager.

      MS had an MS OS/2 in 1989, briefly after parting company with IBM. I thought NT 3.51 came out in 1995 (because of Win95) and just had a few APIs added. NT 3.5 (sept 1994)was the release after NT 3.1 (1993). It ran on IA-32 (x86), Alpha, MIPS, PowerPC from launch. We used it. The NT 3.1 was for IA-32, Alpha, MIPS, no Power PC. However I'd be surprised if IBM did the NT3.5 addition of Power PC.

      You can also run NT 3.51 Program Manager and File Manager on NT 4.0, and there was an Explorer Shell Preview for NT 3.51. NT 4.0 is also notable for having a 64 bit Alpha version and the first Clustering using any pair of ordinary NT servers. You did need a minimum of two external mirrored SCSI shelves, two SCSI host controllers in each server with SCSI repeaters in addition to whatever booted the local boot drive.

      Indeed NT3.5 and NT3.51 look similar to Win3.11/WFWG3.11 but it's only skin deep. Not remotely the same.

      1. karlkarl Silver badge

        Re: NT 3.51 looks very similar

        My main source for the "bug fixes due to waiting on IBM" is here:

        "After Daytona was completed, we basically sat around for 9 months fixing bugs while we waited for IBM to finish the Power PC hardware. But because of this, NT 3.51 was a solid release, and our customers loved it." - David Thompson, Vice President of the Windows Server Product Group.

        Though you are correct; the similarities are fairly cosmetic. However if it is the usability / workflow of Windows 3.11 that people like, then this is a good option, especially since the NT kernel is slightly easier to virtualise (even though it is more complex than the MS-DOS based 3.1).

        I do have a particular interest in Windows NT 3.51 due to Citrix WinFrame. It has a slightly bodged RDP implementation that once I hacked around in rdesktop provides remote desktop with any resolution. Even widescreen. This makes it one of the oldest operating systems allowing for HD resolutions :)

        1. StargateSg7

          Re: NT 3.51 looks very similar

          The Windows NT Kernel had a HAL (Hardware Abstraction Layer) which let us run Windows 2000 on PowerPC, MIPS, DEC Alpha, Intel x86, Intel Itanium and a few other CPUs. It was the first type of OS to do compile a single source code base to many hardware platforms.

          We even ran a Windows 2000 hybrid 32/64-bit OS (YES! There was a 64-bit version of Windows 2000!) on one of the first military-grade MANY-CORE CPUs in the world (i.e. hundreds of MIPS RISC cores) back in about 2002 at 200 MHz per core!

          It was equivalent to a modern gamer GPU in actual calculation performance BUT at that time it could do real-time terrain-following imaging and autonomous at-tree-top-level flight control which NO ONE ELSE could do at the time! Can you say YF-24? Oooops! Did I just say that in public?

          I remember Microsoft custom-fixed us a thread-counter / system manager and CPU CORE manager that let us see all 512 cores and 512 threads on one machine! Cost the parent company a pretty penny to have Microsoft do that!

          P.S. AND it all worked on a VME buss multi-module interconnect!


          1. Mage Silver badge

            Re: Intel Itanium

            The 1st 64 bit XP (NT 5.1) was for Itanium. I don't think Win2K (NT 5.0) supported Itanium. Also was the Itanium version of XP the shortest lived NT for support since NT 3.5 or even the start, NT 3.1?

            1. James Turner

              Re: Intel Itanium

              The first properly released 64bit Windows XP. But that doesn’t mean MS didn’t have a version of 2000 internally which they decided not to release. You can find things like which talk about what MS had.

              In the same vein there are beta versions of Windows 2000 for DEC Alpha floating around. But it never got to the full release as Compaq killed that processor.

              1. jtaylor Bronze badge

                Re: Intel Itanium

                I have a beta of Windows NT 5 somewhere, which I think supported Alpha.

        2. Mage Silver badge

          Re: NT 3.51 looks very similar

          Ah, waiting for IBM HW isn't the same as waiting for IBM SW.

          1. karlkarl Silver badge

            Re: NT 3.51 looks very similar

            Yeah, it was sloppy english on my behalf.

            I should have said "whilst waiting for IBM, before they could finish their port"

  3. thondwe


    MASM - God I'm old!

    1. Simon Harris

      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.

    2. david 12

      Re: MASM

      "surprisingly easy, considering I didn't know x86 assembly before"

      Having programmed many different microprocessor families now: x86 assembler is the one that is surprisingly easy to learn and use.

  4. Andy The Hat Silver badge

    Need a copy of this ...

    Oh, and a 5 1/4 drive to run the examples :-)

    1. PRR

      Re: Need a copy of this ...

      > Need a copy of this ...

      I had that. I thought of it the instant I saw the headline. I remember buying it in NYC. Like much MS documentation, it told you part of what you needed to know, and was not error-free.

    2. HildyJ Silver badge

      Re: Need a copy of this ...

      I've actually got a 5 1/4" drive that I pulled out of one of my old computers. Now all I have to do is figure out a way to connect it.

      I wonder if Windows 10 still retains the 5 1/4" drivers? Finally a use for my A: drive.

      1. david 12

        Re: Need a copy of this ...

        You don't need a special Win10 driver: you need either a USB storage driver and a usb drive, or a M/B with the 5 1/4 pin header and a bios with 5 1/4 support .

        Also, you need a 5 1/4 drive where the heads haven't de-magnetised.

      2. Mage Silver badge

        Re: Need a copy of this ...

        3", 3.5", 5.25" and 8" will all work on the same floppy controller. An Apple 5.25" won't work and an Amiga 3.5" may not work.

        I have a CP/M subsystem / z80 emulator and Joyce Simulation all working on Linux on a 64 bit mobo, one of the last with a floppy port.

        The 3.5" & 5.25" are 1:1, just different connectors and adaptors exist. The 3" uses less wires and you can make up an IDC plug to suit. The +5V and +12V are reversed on the power connector. You can swap two wires by release using a mapping pin, but put a LARGE WARNING label.

        The 8" use either a 37 way D-Connector or a larger IDC. Not all drives work.

        MS formatted disks can be read direct. CP/M used very many formats and most can be read on DOS using 22Nice or Nice22 and on the CP/M distro for Linux.

        Various tape formats are a bigger headache.

  5. Luiz Abdala

    I remember a buddy of mine...

    [first of all, we need a new icon - I AM TOO OLD FOR THIS - Vintage, - Back in the Day - Use a reel-to-reel IBM tower as the image.]

    He had a rental business. A game cartridge rental, back in the Genesis/ Mega Drive and SNES era. He had a custom made app for Windows 3.x to track rentals, dues, fees, that sorta of thing. It ran in Access, and pretty fast at that. It saved after every completed operation, as expected.

    He then bought a new machine, a Pentium 4. It booted and opened Windows 3.11 in under 15 seconds. If it crashed, it could reboot, and still register your request without waiting.

    I never found quite an app better tailored to his needs, including pictures of the cover of the titles and means to capture them.

    I could see him running that same app, 25 years later, in a VM on a much more powerful, up to date machine that would let him alt-tab into Doom Eternal, as he did back then, with another PC running Doom.

    And using that driver.

    1. Captain Scarlet

      Re: I remember a buddy of mine...

      hmm getting an Access file to run that quickly takes careful planning of the front end and backend, however they are easiest to keep working under newer versions of Access (Not that Microsoft has put any development effort in since it dropped Access for Web).

      I still always use Access for a front end only with a SQL backend for your data so I don't have to worry about some of the limitations of the Jet database (Such as users going meh it didn't refresh in a nanosecond lets terminate the process).

      I wonder if he used the option to compile into Binary ADE files (If that was available).

      1. Annihilator Silver badge

        Re: I remember a buddy of mine...

        That assumes there was a front-end and back-end. It sounds more like a one-PC job rather than any level of file share.

        1. Luiz Abdala

          Re: I remember a buddy of mine...

          It was definitely a one-man job.

          The guy locked the code, compiled into a single executable and done.

          Eons later, I saw a tutorial on how to build the exact same software, and it was that.

          Quick and dirty, but very efficient and single purpose.

    2. Fred Daggy

      Re: I remember a buddy of mine...

      A picture of the computer they used in The Goodies would be good. But any of the computers from Pertwee era Who would do just as nicely.

      1. John Brown (no body) Silver badge

        Re: I remember a buddy of mine...

        Or this ----------->

  6. John Robson Silver badge

    Not an obvious century?

    It's hardly the obvious millenium for the task... whether that's started in 2000 or 2001...

  7. Nugry Horace

    And I see there's already a feature request for earlier Windowses back to 1.0...

  8. Mage Silver badge

    Win95 & Apple

    Even Win95 had no USB support initially. It was only on NT4.0 (1996) on a cancelled Service pack previewed around 2000 or 2001.

    I think win 3.11 was still supported even when win 98 was released. Apple had USB before win95 did, as a replacement for AppleTalk, which maybe was based on RS422.

    Hence USB 1.0 was slow. It was meant for mice, joysticks and keyboards. Not scanners and HDDs.

    1. Missing Semicolon Silver badge

      Re: Win95 & Apple

      Hang on - wasn't USB part of "this is not a miracle, this is Windows 95"?

      I seem to remember a scanner being involved on the infamous BSD BillG demo.

  9. msobkow Silver badge

    Sweet! Congrats! Nothing like getting closer to the metal like you had to with those old systems. :)

  10. Anonymous Coward
    Anonymous Coward


    This is pretty nice. I normally work around it by using OS/2 and it’s 3.1-compatible Win-OS/2.

  11. Stuart Castle Silver badge

    I had OS/2 Warp for a while. Thanks to buying an Escom PC. I had been a happy Amiga owner who saw no real point in getting a PC up until then, but I started a degree and needed a PC for quote a lot of it. I went for Escom partly because they were cheap, and partly because they didn't use Windows (I've always been slightly contrary).

    I loved OS/2, and, TBH, given the choice, I'd choose it over Windows now.

    1. Down not across Silver badge

      I loved OS/2, and, TBH, given the choice, I'd choose it over Windows now.

      Hear hear. It was a lot more reliable for running Windows programs than native Windows ever was.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2022