> Microsoft basically invented the hardware-agnostic software platform
Digital Research did that. You could run a CP/M program on any CP/M-capable computer. Microsoft tried that with MSX (and failed) and then with MS-DOS (and succeeded on a different hardware platform). Only then, different graphics cards and printers became relevant.
> Other than that, I don't think Microsoft invented much
Visual Basic is one thing that comes to mind. I don't remember anything like it before. Hypercard and Toolbook were huge and heavy in comparison. VB allowed BASIC programmers to write compact Windows programs. That more or less doomed DOS.
To be more precise, MS-DOS (and 86-DOS before that) tried to copy CP/M on that area (the original platform for SCP 86-DOS which MS bought and renamed MS-DOS was SCP's S-100 8086 cards which existed before the IBM PC), but MS bought SCP in the first place because they needed an OS to sell to IBM for their 8088-based PC, and so of course it first shipped on the IBM PC, and what happened was that the DOS calls was too limited and slow, so apps used the BIOS and even direct hardware access. So in the US full IBM PC hardware and BIOS compatiblity ended up being needed. (In Japan it was a different story)
Digital Research did that. You could run a CP/M program on any CP/M-capable computer. Microsoft tried that with MSX (and failed) and then with MS-DOS (and succeeded on a different hardware platform). Only then, different graphics cards and printers became relevant.
> Other than that, I don't think Microsoft invented much
Visual Basic is one thing that comes to mind. I don't remember anything like it before. Hypercard and Toolbook were huge and heavy in comparison. VB allowed BASIC programmers to write compact Windows programs. That more or less doomed DOS.